@vpxa/aikit 0.1.351 → 0.1.353
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/packages/blocks-core/dist/index.mjs +949 -118
- package/packages/core/dist/index.d.ts +3 -0
- package/packages/core/dist/index.js +1 -1
- package/packages/present/dist/annotation-layer.js +48 -74
- package/packages/present/dist/index.html +977 -153
- package/packages/server/dist/bin.js +1 -1
- package/packages/server/dist/index.js +288 -109
- package/packages/server/dist/prelude-DetbWo8R.js +1 -0
- package/packages/server/dist/prelude-hfAEi93R.js +2 -0
- package/packages/server/dist/sampling-CWjnUevo.js +2 -0
- package/packages/server/dist/sampling-CnE3owSt.js +1 -0
- package/packages/server/dist/{server-Dc2XtS92.js → server-D5eu57oU.js} +150 -148
- package/packages/server/dist/{server-Ct4BK2hi.js → server-D7gZ4K_H.js} +150 -148
- package/packages/server/dist/{server-http-DBmzukZH.js → server-http-AarbD3gm.js} +1 -1
- package/packages/server/dist/{server-http-BNC9qZBj.js → server-http-wnYmWFkC.js} +1 -1
- package/packages/server/dist/{server-stdio-JHWimdo9.js → server-stdio-BWoMqXU8.js} +1 -1
- package/packages/server/dist/{server-stdio-DkDdZI98.js → server-stdio-CBGO6XiO.js} +1 -1
- package/packages/server/viewers/canvas.html +944 -127
- package/packages/server/viewers/code-review-viewer.html +352 -0
- package/packages/server/viewers/report-template.html +918 -101
- package/packages/server/viewers/task-plan-static.html +1 -1
- package/packages/server/viewers/tour-viewer.html +919 -102
- package/packages/tools/dist/index.js +82 -82
- package/scaffold/dist/definitions/skills/c4-architecture.mjs +1 -1
- package/scaffold/dist/definitions/skills/docs.mjs +19 -3
- package/scaffold/dist/definitions/skills/present.mjs +317 -13
- package/scaffold/dist/generated/block-docs.mjs +18 -64
- package/packages/server/dist/prelude-Clxlztkk.js +0 -1
- package/packages/server/dist/prelude-Dn7jTsqe.js +0 -2
- package/packages/server/dist/sampling-giGWyrcO.js +0 -1
- package/packages/server/dist/sampling-nivAea83.js +0 -2
|
@@ -61,6 +61,11 @@
|
|
|
61
61
|
cursor: pointer;
|
|
62
62
|
}
|
|
63
63
|
|
|
64
|
+
.bk-multi-select {
|
|
65
|
+
max-height: 2.25rem;
|
|
66
|
+
min-width: 8rem;
|
|
67
|
+
}
|
|
68
|
+
|
|
64
69
|
.bk-text-submit { display: flex; gap: var(--dt-space-2); align-items: center; }
|
|
65
70
|
.bk-input { min-height: 2.25rem; padding: 0 var(--dt-space-3); border: 1px solid var(--dt-border-default); border-radius: var(--dt-radius-md); background: var(--dt-bg-primary); color: var(--dt-text-primary); font: inherit; font-size: var(--dt-font-size-sm); flex: 1; min-width: 200px; transition: border-color var(--dt-transition-fast); }
|
|
66
71
|
.bk-input:focus { outline: none; border-color: var(--dt-accent-emphasis); box-shadow: 0 0 0 2px var(--dt-accent-subtle); }
|
|
@@ -71,7 +76,54 @@
|
|
|
71
76
|
.bk-form-label { font-size: var(--dt-font-size-sm); font-weight: 500; color: var(--dt-text-secondary); }
|
|
72
77
|
.bk-action-feedback { font-size: var(--dt-font-size-sm); color: var(--dt-text-secondary); padding: var(--dt-space-2) 0; }
|
|
73
78
|
.bk-action-feedback[data-feedback-state="sent"] { color: var(--dt-success-fg); }
|
|
74
|
-
`;function f(t,r){return`<div class="bk-actions">${u(t.value).map(t=>{let r=n(t.id);if(t.type===`select`){let n=(t.options??[]).map(t=>{let n=typeof t==`string`?t:t.value,r=typeof t==`string`?t:t.label;return`<option value="${e(n)}">${e(r)}</option>`}).join(``);return`<label class="bk-select-wrap"><span class="bk-visually-hidden">${e(t.label)}</span><select class="bk-select" data-action-id="${r}"><option value="" selected disabled>${e(t.label)}</option>${n}</select></label>`}if(t.type===`text-submit`)return`<div class="bk-text-submit" data-action-id="${r}"><input type="text" class="bk-input" placeholder="${e(t.label)}" data-action-id="${r}" /><button type="button" class="bk-action bk-action--primary" data-action-id="${r}">Send</button></div>`;if(t.type===`form-submit`&&t.schema){let n=t.schema;return`<form class="bk-form" data-action-id="${r}"><fieldset>${Object.entries(n).map(([t,n])=>{let r=n.description??t,i=n.type===`number`?`number`:`text`;return`<label class="bk-form-field"><span class="bk-form-label">${e(r)}</span><input type="${i}" class="bk-input" name="${e(t)}" placeholder="${e(r)}" /></label>`}).join(``)}<button type="submit" class="bk-action bk-action--primary">${e(t.label)}</button></fieldset></form>`}return`<button type="button" class="bk-action bk-action--${e(t.variant??`default`)}" data-action-id="${r}">${e(t.label)}</button>`}).join(``)}<div class="bk-action-feedback" style="display:none;font-size:0.875rem;color:var(--dt-text-secondary);padding:var(--dt-space-2) 0;" data-feedback-state="pending">💬 Feedback sent</div></div>`}var p=`
|
|
79
|
+
`;function f(t,r){return`<div class="bk-actions">${u(t.value).map(t=>{let r=n(t.id);if(t.type===`select`){let n=(t.options??[]).map(t=>{let n=typeof t==`string`?t:t.value,r=typeof t==`string`?t:t.label;return`<option value="${e(n)}">${e(r)}</option>`}).join(``);return`<label class="bk-select-wrap"><span class="bk-visually-hidden">${e(t.label)}</span><select class="bk-select" data-action-id="${r}" data-action-row="single"><option value="" selected disabled>${e(t.label)}</option>${n}</select></label>`}if(t.type===`text-submit`)return`<div class="bk-text-submit" data-action-id="${r}" data-action-row="multi"><input type="text" class="bk-input" placeholder="${e(t.label)}" data-action-id="${r}" /><button type="button" class="bk-action bk-action--primary" data-action-id="${r}">Send</button></div>`;if(t.type===`multi-select`){let n=(t.options??[]).map(t=>{let n=typeof t==`string`?t:t.value,r=typeof t==`string`?t:t.label;return`<option value="${e(n)}">${e(r)}</option>`}).join(``);return`<label class="bk-select-wrap"><span class="bk-visually-hidden">${e(t.label)}</span><select class="bk-select bk-multi-select" data-action-id="${r}" data-action-row="single" multiple size="1">${n}</select></label>`}if(t.type===`form-submit`&&t.schema){let n=t.schema;return`<form class="bk-form" data-action-id="${r}" data-action-row="multi"><fieldset>${Object.entries(n).map(([t,n])=>{let r=n.description??t,i=n.type===`number`?`number`:`text`;return`<label class="bk-form-field"><span class="bk-form-label">${e(r)}</span><input type="${i}" class="bk-input" name="${e(t)}" placeholder="${e(r)}" /></label>`}).join(``)}<button type="submit" class="bk-action bk-action--primary">${e(t.label)}</button></fieldset></form>`}return`<button type="button" class="bk-action bk-action--${e(t.variant??`default`)}" data-action-id="${r}" data-action-row="single">${e(t.label)}</button>`}).join(``)}<div class="bk-action-feedback" style="display:none;font-size:0.875rem;color:var(--dt-text-secondary);padding:var(--dt-space-2) 0;" data-feedback-state="pending">💬 Feedback sent</div></div>`}var p=`
|
|
80
|
+
/* ── Entrance: fade-in + slide-up for cards, metrics, checklist, findings ── */
|
|
81
|
+
@keyframes aikit-enter-fade {
|
|
82
|
+
from { opacity: 0; transform: translateY(8px); }
|
|
83
|
+
to { opacity: 1; transform: translateY(0); }
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/* ── Progress bar: 0% → target width fill ── */
|
|
87
|
+
@keyframes aikit-progress-fill {
|
|
88
|
+
from { width: 0%; }
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
/* ── Checklist/completed state: scale bounce ── */
|
|
92
|
+
@keyframes aikit-check-bounce {
|
|
93
|
+
0% { transform: scale(0); }
|
|
94
|
+
50% { transform: scale(1.2); }
|
|
95
|
+
100% { transform: scale(1); }
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
/* ── Chart: stroke draw for line/area/sparkline ── */
|
|
99
|
+
@keyframes aikit-chart-draw {
|
|
100
|
+
to { stroke-dashoffset: 0; }
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
/* ── Chart: bar grow from baseline ── */
|
|
104
|
+
@keyframes aikit-chart-grow {
|
|
105
|
+
from { transform: scaleY(0); }
|
|
106
|
+
to { transform: scaleY(1); }
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
/* ── Chart: area reveal from bottom ── */
|
|
110
|
+
@keyframes aikit-chart-reveal {
|
|
111
|
+
from { clip-path: inset(100% 0 0 0); }
|
|
112
|
+
to { clip-path: inset(0 0 0 0); }
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
/* ── Chart: pie/donut fade-in + rotation ── */
|
|
116
|
+
@keyframes aikit-pie-enter {
|
|
117
|
+
from { opacity: 0; transform: rotate(-20deg); }
|
|
118
|
+
to { opacity: 1; transform: rotate(0deg); }
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
/* ── Loading shimmer for skeleton states ── */
|
|
122
|
+
@keyframes aikit-shimmer {
|
|
123
|
+
0% { background-position: -200px 0; }
|
|
124
|
+
100% { background-position: calc(200px + 100%) 0; }
|
|
125
|
+
}
|
|
126
|
+
`,m=`
|
|
75
127
|
.bk-cards {
|
|
76
128
|
display: grid;
|
|
77
129
|
grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
|
|
@@ -87,6 +139,8 @@
|
|
|
87
139
|
background: var(--dt-bg-secondary);
|
|
88
140
|
box-shadow: var(--dt-shadow-sm);
|
|
89
141
|
transition: transform var(--dt-transition-normal), box-shadow var(--dt-transition-normal), border-color var(--dt-transition-normal);
|
|
142
|
+
animation: aikit-enter-fade 400ms cubic-bezier(0.16, 1, 0.3, 1) both;
|
|
143
|
+
animation-delay: calc(var(--i, 0) * 60ms);
|
|
90
144
|
}
|
|
91
145
|
|
|
92
146
|
.bk-card:hover {
|
|
@@ -126,7 +180,26 @@
|
|
|
126
180
|
letter-spacing: 0.02em;
|
|
127
181
|
white-space: nowrap;
|
|
128
182
|
}
|
|
129
|
-
|
|
183
|
+
|
|
184
|
+
/* ── Compact cards on mobile ── */
|
|
185
|
+
@media (max-width: 480px) {
|
|
186
|
+
.bk-cards {
|
|
187
|
+
gap: var(--dt-space-3);
|
|
188
|
+
}
|
|
189
|
+
.bk-card {
|
|
190
|
+
padding: var(--dt-space-4);
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
@media (max-width: 320px) {
|
|
195
|
+
.bk-card {
|
|
196
|
+
padding: var(--dt-space-3);
|
|
197
|
+
}
|
|
198
|
+
.bk-card-title {
|
|
199
|
+
font-size: var(--dt-font-size-base);
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
`;function h(t,n){return`<div class="bk-cards">${l(t).map((t,n)=>{let r=t.badge?`<span class="bk-card-badge">${e(t.badge)}</span>`:``,i=t.body?`<div class="bk-card-body">${e(t.body)}</div>`:``,a=t.description?`<div class="bk-card-description">${e(t.description)}</div>`:``;return`<article class="bk-card" data-tone="${c(t.status)}" style="--i: ${n}" aria-label="${e(t.title)}">${r?`<div class="bk-card-header"><div class="bk-card-title">${e(t.title)}</div>${r}</div>`:`<div class="bk-card-header"><div class="bk-card-title">${e(t.title)}</div></div>`}${i}${a}</article>`}).join(``)}</div>`}var g=[`#45c8a8`,`#c89bff`,`#f5b342`,`#6baef8`,`#2bd47c`,`#f56a6a`,`#f472b6`,`#38bdf8`],_=new Set([`line`,`area`,`bar`,`horizontal-bar`,`pie`,`donut`,`sparkline`,`heatmap`]),v=500,y=300,ee=300,te=100,ne=30,re=`
|
|
130
203
|
.bk-chart {
|
|
131
204
|
display: grid;
|
|
132
205
|
gap: var(--dt-space-3);
|
|
@@ -149,6 +222,7 @@
|
|
|
149
222
|
width: 100%;
|
|
150
223
|
height: auto;
|
|
151
224
|
overflow: visible;
|
|
225
|
+
animation: aikit-enter-fade 500ms ease-out both;
|
|
152
226
|
}
|
|
153
227
|
|
|
154
228
|
.bk-chart-svg .bk-chart-grid {
|
|
@@ -236,7 +310,64 @@
|
|
|
236
310
|
border-bottom: 1px solid var(--dt-border-muted);
|
|
237
311
|
text-align: left;
|
|
238
312
|
}
|
|
239
|
-
`;function ne(e,t){let n=re(e),r=de(n.headers,n.data);if(n.data.length===0||!g.has(n.chartType))return fe(n.note,r);let i=ie(n);if(!i)return fe(n.note,r);let a=n.chartType===`pie`||n.chartType===`donut`?[]:n.yKeys;return`<div class="bk-chart"><div class="bk-chart-surface">${i}</div>${a.length>1?me(a):``}${pe(r)}</div>`}function re(t){let n=i(t.value),r=Array.isArray(n?.data)?n.data:[],a=String(n?.chartType??t.chartType??`bar`),o=g.has(a)?a:`bar`,s=e(a),c=he(r,String(n?.xKey??`label`)),l=Array.isArray(n?.yKeys)?n.yKeys.filter(e=>typeof e==`string`):[],u=l.length>0?l:[`value`];if(l.length===0&&r.length>0&&r[0]!=null){let e=r[0];if(!(`value`in e&&typeof e.value==`number`)){let t=Object.keys(e).filter(t=>t!==c&&typeof e[t]==`number`);t.length>0&&(u=t)}}let d=[c,...u.filter((e,t)=>e!==c&&u.indexOf(e)===t)];return{chartType:o,data:r,xKey:c,yKeys:u,headers:d,note:s}}function ie(e){switch(e.chartType){case`line`:case`area`:return ae(e,e.chartType===`area`);case`bar`:return oe(e);case`horizontal-bar`:return se(e);case`pie`:return ce(e,!1);case`donut`:return ce(e,!0);case`sparkline`:return le(e);case`heatmap`:return ue(e);default:return``}}function ae(t,n){let r=_e(t.data,t.xKey,t.yKeys),i=r.flatMap(e=>e.values).filter(Number.isFinite);if(i.length===0)return``;let a=S(i),o=x(_,v,{left:60,right:20,top:20,bottom:40}),s=r.map((e,t)=>Se(t,r.length,o.left,o.right)),c=t.yKeys.map((e,t)=>{let i=h[t%h.length],c=r.map((e,n)=>{let r=s[n],i=C(e.values[t],a,o.bottom,o.top);return`${O(r)},${O(i)}`}),l=r.map((e,n)=>{let r=s[n],c=C(e.values[t],a,o.bottom,o.top);return`<circle cx="${O(r)}" cy="${O(c)}" r="3" fill="${i}" />`}).join(``),u=`<polyline fill="none" stroke="${i}" stroke-width="2.5" stroke-linejoin="round" stroke-linecap="round" points="${c.join(` `)}" />`;return n?`<polygon fill="${i}" fill-opacity="0.16" points="${[`${O(s[0])},${O(o.bottom)}`,...c,`${O(s[s.length-1])},${O(o.bottom)}`].join(` `)}" />${u}${l}`:`${u}${l}`}).join(``);return`<svg class="bk-chart-svg" viewBox="0 0 ${_} ${v}" width="100%" preserveAspectRatio="xMidYMid meet" role="img" aria-label="${e(`${t.chartType} chart`)}">${ve(o,a)}${be(o)}${xe(r,s,o.bottom+18)}${c}</svg>`}function oe(e){let t=_e(e.data,e.xKey,e.yKeys),n=t.flatMap(e=>e.values).filter(Number.isFinite);if(n.length===0)return``;let r=S(n,{includeZero:!0}),i=x(_,v,{left:60,right:20,top:20,bottom:40}),a=i.width/t.length,o=Math.max(4,Math.min(28,(a-12-4*(e.yKeys.length-1))/e.yKeys.length)),s=e.yKeys.length*o+(e.yKeys.length-1)*4,c=C(0,r,i.bottom,i.top),l=t.map((e,t)=>{let n=i.left+t*a+(a-s)/2;return e.values.map((e,t)=>{let a=h[t%h.length],s=n+t*(o+4),l=C(e,r,i.bottom,i.top),u=Math.min(l,c),d=Math.max(1,Math.abs(c-l));return`<rect x="${O(s)}" y="${O(u)}" width="${O(o)}" height="${O(d)}" rx="3" fill="${a}" />`}).join(``)}).join(``),u=t.map((e,t)=>i.left+t*a+a/2);return`<svg class="bk-chart-svg" viewBox="0 0 ${_} ${v}" width="100%" preserveAspectRatio="xMidYMid meet" role="img" aria-label="bar chart">${ve(i,r)}${be(i)}${xe(t,u,i.bottom+18)}${l}</svg>`}function se(t){let n=_e(t.data,t.xKey,t.yKeys),r=n.flatMap(e=>e.values).filter(Number.isFinite);if(r.length===0)return``;let i=S(r,{includeZero:!0}),a=x(_,v,{left:110,right:20,top:20,bottom:36}),o=a.height/n.length,s=Math.max(4,Math.min(18,(o-8-4*(t.yKeys.length-1))/t.yKeys.length)),c=t.yKeys.length*s+(t.yKeys.length-1)*4,l=C(0,i,a.left,a.right),u=n.map((t,n)=>{let r=a.top+n*o+(o-c)/2,u=a.top+n*o+o/2+4;return`${`<text class="bk-chart-label" x="${O(a.left-8)}" y="${O(u)}" text-anchor="end">${e(t.label)}</text>`}${t.values.map((e,t)=>{let n=h[t%h.length],o=r+t*(s+4),c=C(e,i,a.left,a.right),u=Math.min(l,c),d=Math.max(1,Math.abs(c-l));return`<rect x="${O(u)}" y="${O(o)}" width="${O(d)}" height="${O(s)}" rx="3" fill="${n}" />`}).join(``)}`}).join(``);return`<svg class="bk-chart-svg" viewBox="0 0 ${_} ${v}" width="100%" preserveAspectRatio="xMidYMid meet" role="img" aria-label="horizontal bar chart">${ye(a,i)}<line class="bk-chart-axis" x1="${O(l)}" y1="${O(a.top)}" x2="${O(l)}" y2="${O(a.bottom)}" />${u}</svg>`}function ce(t,n){let r=ge(t.data,t.xKey,t.yKeys),i=t.data.map(e=>({label:T(e[t.xKey]),value:E(e[r])})).filter(e=>e.value>0);if(i.length===0)return``;let a=i.reduce((e,t)=>e+t.value,0);if(a<=0)return``;let o=y/2,s=n?88*.6:0,c=-90,l=[],u=[];i.forEach((t,r)=>{let i=h[r%h.length],d=t.value/a*360,f=c+d,p=t.value/a*100,m=n?we(o,140,88,s,c,f):Ce(o,140,88,c,f);l.push(`${m?`<path d="${m}" fill="${i}" stroke="var(--dt-bg-secondary)" stroke-width="2" />`:`<circle cx="${o}" cy="140" r="88" fill="${i}" />`}`);let g=w(o,140,108,c+d/2);u.push(`<text class="bk-chart-slice-label" x="${O(g.x)}" y="${O(g.y)}" text-anchor="${g.x>=o?`start`:`end`}">${e(t.label)} ${e(D(p))}%</text>`),c=f});let d=n?`<circle cx="${o}" cy="140" r="${O(s-1)}" fill="var(--dt-bg-secondary)" />`:``;return`<svg class="bk-chart-svg" viewBox="0 0 ${y} ${y}" width="100%" preserveAspectRatio="xMidYMid meet" role="img" aria-label="${n?`donut chart`:`pie chart`}">${l.join(``)}${d}${u.join(``)}</svg>`}function le(e){let t=ge(e.data,e.xKey,e.yKeys),n=e.data.map(e=>E(e[t]));if(n.every(e=>e===0))return``;let r=S(n),i=n.map((e,t)=>{let i=Se(t,n.length,0,ee),a=C(e,r,b-2,2);return`${O(i)},${O(a)}`});return`<svg class="bk-chart-svg" viewBox="0 0 ${ee} ${b}" width="100%" height="${b}" preserveAspectRatio="none" role="img" aria-label="sparkline"><polyline fill="none" stroke="${h[0]}" stroke-width="2.25" stroke-linejoin="round" stroke-linecap="round" points="${i.join(` `)}" /></svg>`}function ue(t){let n=t.data.map(e=>({label:T(e[t.xKey]),values:t.yKeys.map(t=>E(e[t]))})),r=n.flatMap(e=>e.values).filter(Number.isFinite);if(r.length===0)return``;let i=S(r),a=x(_,v,{left:80,right:20,top:42,bottom:20}),o=a.width/t.yKeys.length,s=a.height/n.length;return`<svg class="bk-chart-svg" viewBox="0 0 ${_} ${v}" width="100%" preserveAspectRatio="xMidYMid meet" role="img" aria-label="heatmap chart">${t.yKeys.map((t,n)=>`<text class="bk-chart-label" x="${O(a.left+n*o+o/2)}" y="28" text-anchor="middle">${e(t)}</text>`).join(``)}${n.map((t,n)=>{let r=a.top+n*s+s/2+4;return`<text class="bk-chart-label" x="${O(a.left-8)}" y="${O(r)}" text-anchor="end">${e(t.label)}</text>`}).join(``)}${n.map((e,t)=>e.values.map((e,n)=>{let r=a.left+n*o,c=a.top+t*s;return`<rect x="${O(r)}" y="${O(c)}" width="${O(o-4)}" height="${O(s-4)}" rx="4" stroke="var(--dt-border-muted)" style="fill: ${Te(e,i)}" />`}).join(``)).join(``)}</svg>`}function de(t,n){return`<div class="bk-chart-table-wrap"><table class="bk-chart-table"><thead><tr>${t.map(t=>`<th>${e(t)}</th>`).join(``)}</tr></thead><tbody>${n.map(n=>`<tr>${t.map(t=>`<td>${e(r(n[t]))}</td>`).join(``)}</tr>`).join(``)}</tbody></table></div>`}function fe(e,t){return`<div class="bk-chart"><div class="bk-chart-note">Chart fallback (${e}) rendered as a data table.</div>${t}</div>`}function pe(e){return`<details class="bk-chart-details"><summary>Show data</summary>${e}</details>`}function me(t){return`<div class="bk-chart-legend">${t.map((t,n)=>`<span class="bk-chart-legend-item"><span class="bk-chart-legend-swatch" style="background:${h[n%h.length]}"></span>${e(t)}</span>`).join(``)}</div>`}function he(e,t){if(e.length===0||t in e[0])return t;for(let t of e){let e=Object.keys(t).find(e=>typeof t[e]==`string`);if(e)return e}return t}function ge(e,t,n){let r=n.find(n=>n!==t&&e.some(e=>Ee(e[n])));if(r)return r;for(let n of e){let e=Object.keys(n).find(e=>e!==t&&Ee(n[e]));if(e)return e}return n[0]??`value`}function _e(e,t,n){return e.map(e=>({label:T(e[t]),values:n.map(t=>E(e[t]))}))}function ve(t,n){return Array.from({length:5},(r,i)=>{let a=i/4,o=n.max-a*(n.max-n.min),s=t.top+a*t.height;return`<line class="bk-chart-grid" x1="${O(t.left)}" y1="${O(s)}" x2="${O(t.right)}" y2="${O(s)}" /><text class="bk-chart-label" x="${O(t.left-8)}" y="${O(s+4)}" text-anchor="end">${e(D(o))}</text>`}).join(``)}function ye(t,n){return Array.from({length:5},(r,i)=>{let a=i/4,o=n.min+a*(n.max-n.min),s=t.left+a*t.width;return`<line class="bk-chart-grid" x1="${O(s)}" y1="${O(t.top)}" x2="${O(s)}" y2="${O(t.bottom)}" /><text class="bk-chart-label" x="${O(s)}" y="${O(t.bottom+18)}" text-anchor="middle">${e(D(o))}</text>`}).join(``)}function be(e){return`<line class="bk-chart-axis" x1="${O(e.left)}" y1="${O(e.top)}" x2="${O(e.left)}" y2="${O(e.bottom)}" /><line class="bk-chart-axis" x1="${O(e.left)}" y1="${O(e.bottom)}" x2="${O(e.right)}" y2="${O(e.bottom)}" />`}function xe(t,n,r){return t.map((t,i)=>`<text class="bk-chart-label" x="${O(n[i])}" y="${O(r)}" text-anchor="middle">${e(t.label)}</text>`).join(``)}function x(e,t,n){return{left:n.left,top:n.top,right:e-n.right,bottom:t-n.bottom,width:e-n.left-n.right,height:t-n.top-n.bottom}}function S(e,t){let n=Math.min(...e),r=Math.max(...e);if(t?.includeZero&&(n=Math.min(n,0),r=Math.max(r,0)),n===r){let e=n===0?1:Math.abs(n)*.1||1;n-=e,r+=e}return{min:n,max:r}}function Se(e,t,n,r){return t<=1?(n+r)/2:n+e/(t-1)*(r-n)}function C(e,t,n,r){return n+(e-t.min)/(t.max-t.min)*(r-n)}function Ce(e,t,n,r,i){if(Math.abs(i-r)>=359.999)return``;let a=w(e,t,n,r),o=w(e,t,n,i),s=+(i-r>180);return`M ${O(e)} ${O(t)} L ${O(a.x)} ${O(a.y)} A ${O(n)} ${O(n)} 0 ${s} 1 ${O(o.x)} ${O(o.y)} Z`}function we(e,t,n,r,i,a){if(Math.abs(a-i)>=359.999)return``;let o=w(e,t,n,i),s=w(e,t,n,a),c=w(e,t,r,a),l=w(e,t,r,i),u=+(a-i>180);return[`M ${O(o.x)} ${O(o.y)}`,`A ${O(n)} ${O(n)} 0 ${u} 1 ${O(s.x)} ${O(s.y)}`,`L ${O(c.x)} ${O(c.y)}`,`A ${O(r)} ${O(r)} 0 ${u} 0 ${O(l.x)} ${O(l.y)}`,`Z`].join(` `)}function w(e,t,n,r){let i=(r-90)*Math.PI/180;return{x:e+n*Math.cos(i),y:t+n*Math.sin(i)}}function Te(e,t){let n=18+Math.max(0,Math.min(1,(e-t.min)/(t.max-t.min)))*64;return`color-mix(in srgb, var(--dt-bg-secondary) ${O(100-n)}%, var(--dt-accent-fg) ${O(n)}%)`}function T(e){return e==null?``:String(r(e))}function E(e){if(typeof e==`number`&&Number.isFinite(e))return e;if(typeof e==`string`&&e.trim()!==``){let t=Number(e);if(Number.isFinite(t))return t}return 0}function Ee(e){return typeof e==`number`?Number.isFinite(e):typeof e==`string`&&e.trim()!==``&&Number.isFinite(Number(e))}function D(e){return String(r(Number(e.toFixed(2))))}function O(e){return Number(e.toFixed(2)).toString()}var De=`
|
|
313
|
+
|
|
314
|
+
/* ── Compact chart on mobile ── */
|
|
315
|
+
@media (max-width: 480px) {
|
|
316
|
+
.bk-chart-surface {
|
|
317
|
+
padding: var(--dt-space-2);
|
|
318
|
+
}
|
|
319
|
+
.bk-chart-legend {
|
|
320
|
+
gap: var(--dt-space-1) var(--dt-space-3);
|
|
321
|
+
}
|
|
322
|
+
.bk-chart-legend-item {
|
|
323
|
+
font-size: 0.75rem;
|
|
324
|
+
}
|
|
325
|
+
.bk-chart-legend-swatch {
|
|
326
|
+
width: 0.625rem;
|
|
327
|
+
height: 0.625rem;
|
|
328
|
+
}
|
|
329
|
+
.bk-chart-table th,
|
|
330
|
+
.bk-chart-table td {
|
|
331
|
+
padding: var(--dt-space-2) var(--dt-space-3);
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
@media (max-width: 320px) {
|
|
336
|
+
.bk-chart {
|
|
337
|
+
gap: var(--dt-space-2);
|
|
338
|
+
}
|
|
339
|
+
.bk-chart-surface {
|
|
340
|
+
padding: var(--dt-space-1);
|
|
341
|
+
border-radius: var(--dt-radius-md);
|
|
342
|
+
}
|
|
343
|
+
.bk-chart-note {
|
|
344
|
+
font-size: 0.6875rem;
|
|
345
|
+
}
|
|
346
|
+
.bk-chart-table th,
|
|
347
|
+
.bk-chart-table td {
|
|
348
|
+
padding: var(--dt-space-1) var(--dt-space-2);
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
`;function ie(e,t){let n=ae(e),r=pe(n.headers,n.data);if(n.data.length===0||!_.has(n.chartType))return me(n.note,r);let i=oe(n);if(!i)return me(n.note,r);let a=n.chartType===`pie`||n.chartType===`donut`?[]:n.yKeys;return`<div class="bk-chart"><div class="bk-chart-surface">${i}</div>${a.length>1?ge(a):``}${he(r)}</div>`}function ae(t){let n=i(t.value),r=Array.isArray(n?.data)?n.data:[],a=String(n?.chartType??t.chartType??`bar`),o=_.has(a)?a:`bar`,s=e(a),c=_e(r,String(n?.xKey??`label`)),l=Array.isArray(n?.yKeys)?n.yKeys.filter(e=>typeof e==`string`):[],u=l.length>0?l:[`value`];if(l.length===0&&r.length>0&&r[0]!=null){let e=r[0];if(!(`value`in e&&typeof e.value==`number`)){let t=Object.keys(e).filter(t=>t!==c&&typeof e[t]==`number`);t.length>0&&(u=t)}}let d=[c,...u.filter((e,t)=>e!==c&&u.indexOf(e)===t)];return{chartType:o,data:r,xKey:c,yKeys:u,headers:d,note:s}}function oe(e){switch(e.chartType){case`line`:case`area`:return se(e,e.chartType===`area`);case`bar`:return ce(e);case`horizontal-bar`:return le(e);case`pie`:return ue(e,!1);case`donut`:return ue(e,!0);case`sparkline`:return de(e);case`heatmap`:return fe(e);default:return``}}function se(t,n){let r=b(t.data,t.xKey,t.yKeys),i=r.flatMap(e=>e.values).filter(Number.isFinite);if(i.length===0)return``;let a=S(i),o=x(v,y,{left:60,right:20,top:20,bottom:40}),s=r.map((e,t)=>Ce(t,r.length,o.left,o.right)),c=t.yKeys.map((e,t)=>{let i=g[t%g.length],c=r.map((e,n)=>{let r=s[n],i=C(e.values[t],a,o.bottom,o.top);return`${D(r)},${D(i)}`}),l=r.map((e,n)=>{let r=s[n],c=C(e.values[t],a,o.bottom,o.top);return`<circle cx="${D(r)}" cy="${D(c)}" r="3" fill="${i}" />`}).join(``),u=`<polyline fill="none" stroke="${i}" stroke-width="2.5" stroke-linejoin="round" stroke-linecap="round" points="${c.join(` `)}" />`;return n?`<polygon fill="${i}" fill-opacity="0.16" points="${[`${D(s[0])},${D(o.bottom)}`,...c,`${D(s[s.length-1])},${D(o.bottom)}`].join(` `)}" />${u}${l}`:`${u}${l}`}).join(``);return`<svg class="bk-chart-svg" viewBox="0 0 ${v} ${y}" width="100%" preserveAspectRatio="xMidYMid meet" role="img" aria-label="${e(`${t.chartType} chart`)}">${ye(o,a)}${xe(o)}${Se(r,s,o.bottom+18)}${c}</svg>`}function ce(e){let t=b(e.data,e.xKey,e.yKeys),n=t.flatMap(e=>e.values).filter(Number.isFinite);if(n.length===0)return``;let r=S(n,{includeZero:!0}),i=x(v,y,{left:60,right:20,top:20,bottom:40}),a=i.width/t.length,o=Math.max(4,Math.min(28,(a-12-4*(e.yKeys.length-1))/e.yKeys.length)),s=e.yKeys.length*o+(e.yKeys.length-1)*4,c=C(0,r,i.bottom,i.top),l=t.map((e,t)=>{let n=i.left+t*a+(a-s)/2;return e.values.map((e,t)=>{let a=g[t%g.length],s=n+t*(o+4),l=C(e,r,i.bottom,i.top),u=Math.min(l,c),d=Math.max(1,Math.abs(c-l));return`<rect x="${D(s)}" y="${D(u)}" width="${D(o)}" height="${D(d)}" rx="3" fill="${a}" />`}).join(``)}).join(``),u=t.map((e,t)=>i.left+t*a+a/2);return`<svg class="bk-chart-svg" viewBox="0 0 ${v} ${y}" width="100%" preserveAspectRatio="xMidYMid meet" role="img" aria-label="bar chart">${ye(i,r)}${xe(i)}${Se(t,u,i.bottom+18)}${l}</svg>`}function le(t){let n=b(t.data,t.xKey,t.yKeys),r=n.flatMap(e=>e.values).filter(Number.isFinite);if(r.length===0)return``;let i=S(r,{includeZero:!0}),a=x(v,y,{left:110,right:20,top:20,bottom:36}),o=a.height/n.length,s=Math.max(4,Math.min(18,(o-8-4*(t.yKeys.length-1))/t.yKeys.length)),c=t.yKeys.length*s+(t.yKeys.length-1)*4,l=C(0,i,a.left,a.right),u=n.map((t,n)=>{let r=a.top+n*o+(o-c)/2,u=a.top+n*o+o/2+4;return`${`<text class="bk-chart-label" x="${D(a.left-8)}" y="${D(u)}" text-anchor="end">${e(t.label)}</text>`}${t.values.map((e,t)=>{let n=g[t%g.length],o=r+t*(s+4),c=C(e,i,a.left,a.right),u=Math.min(l,c),d=Math.max(1,Math.abs(c-l));return`<rect x="${D(u)}" y="${D(o)}" width="${D(d)}" height="${D(s)}" rx="3" fill="${n}" />`}).join(``)}`}).join(``);return`<svg class="bk-chart-svg" viewBox="0 0 ${v} ${y}" width="100%" preserveAspectRatio="xMidYMid meet" role="img" aria-label="horizontal bar chart">${be(a,i)}<line class="bk-chart-axis" x1="${D(l)}" y1="${D(a.top)}" x2="${D(l)}" y2="${D(a.bottom)}" />${u}</svg>`}function ue(t,n){let r=ve(t.data,t.xKey,t.yKeys),i=t.data.map(e=>({label:De(e[t.xKey]),value:T(e[r])})).filter(e=>e.value>0);if(i.length===0)return``;let a=i.reduce((e,t)=>e+t.value,0);if(a<=0)return``;let o=ee/2,s=n?88*.6:0,c=-90,l=[],u=[];i.forEach((t,r)=>{let i=g[r%g.length],d=t.value/a*360,f=c+d,p=t.value/a*100,m=n?Te(o,140,88,s,c,f):we(o,140,88,c,f);l.push(`${m?`<path d="${m}" fill="${i}" stroke="var(--dt-bg-secondary)" stroke-width="2" />`:`<circle cx="${o}" cy="140" r="88" fill="${i}" />`}`);let h=w(o,140,108,c+d/2);u.push(`<text class="bk-chart-slice-label" x="${D(h.x)}" y="${D(h.y)}" text-anchor="${h.x>=o?`start`:`end`}">${e(t.label)} ${e(E(p))}%</text>`),c=f});let d=n?`<circle cx="${o}" cy="140" r="${D(s-1)}" fill="var(--dt-bg-secondary)" />`:``;return`<svg class="bk-chart-svg" viewBox="0 0 ${ee} ${ee}" width="100%" preserveAspectRatio="xMidYMid meet" role="img" aria-label="${n?`donut chart`:`pie chart`}">${l.join(``)}${d}${u.join(``)}</svg>`}function de(e){let t=ve(e.data,e.xKey,e.yKeys),n=e.data.map(e=>T(e[t]));if(n.every(e=>e===0))return``;let r=S(n),i=n.map((e,t)=>{let i=Ce(t,n.length,0,te),a=C(e,r,ne-2,2);return`${D(i)},${D(a)}`});return`<svg class="bk-chart-svg" viewBox="0 0 ${te} ${ne}" width="100%" height="${ne}" preserveAspectRatio="none" role="img" aria-label="sparkline"><polyline fill="none" stroke="${g[0]}" stroke-width="2.25" stroke-linejoin="round" stroke-linecap="round" points="${i.join(` `)}" /></svg>`}function fe(t){let n=t.data.map(e=>({label:De(e[t.xKey]),values:t.yKeys.map(t=>T(e[t]))})),r=n.flatMap(e=>e.values).filter(Number.isFinite);if(r.length===0)return``;let i=S(r),a=x(v,y,{left:80,right:20,top:42,bottom:20}),o=a.width/t.yKeys.length,s=a.height/n.length;return`<svg class="bk-chart-svg" viewBox="0 0 ${v} ${y}" width="100%" preserveAspectRatio="xMidYMid meet" role="img" aria-label="heatmap chart">${t.yKeys.map((t,n)=>`<text class="bk-chart-label" x="${D(a.left+n*o+o/2)}" y="28" text-anchor="middle">${e(t)}</text>`).join(``)}${n.map((t,n)=>{let r=a.top+n*s+s/2+4;return`<text class="bk-chart-label" x="${D(a.left-8)}" y="${D(r)}" text-anchor="end">${e(t.label)}</text>`}).join(``)}${n.map((e,t)=>e.values.map((e,n)=>{let r=a.left+n*o,c=a.top+t*s;return`<rect x="${D(r)}" y="${D(c)}" width="${D(o-4)}" height="${D(s-4)}" rx="4" stroke="var(--dt-border-muted)" style="fill: ${Ee(e,i)}" />`}).join(``)).join(``)}</svg>`}function pe(t,n){return`<div class="bk-chart-table-wrap"><table class="bk-chart-table"><thead><tr>${t.map(t=>`<th>${e(t)}</th>`).join(``)}</tr></thead><tbody>${n.map(n=>`<tr>${t.map(t=>`<td>${e(r(n[t]))}</td>`).join(``)}</tr>`).join(``)}</tbody></table></div>`}function me(e,t){return`<div class="bk-chart"><div class="bk-chart-note">Chart fallback (${e}) rendered as a data table.</div>${t}</div>`}function he(e){return`<details class="bk-chart-details"><summary>Show data</summary>${e}</details>`}function ge(t){return`<div class="bk-chart-legend">${t.map((t,n)=>`<span class="bk-chart-legend-item"><span class="bk-chart-legend-swatch" style="background:${g[n%g.length]}"></span>${e(t)}</span>`).join(``)}</div>`}function _e(e,t){if(e.length===0||t in e[0])return t;for(let t of e){let e=Object.keys(t).find(e=>typeof t[e]==`string`);if(e)return e}return t}function ve(e,t,n){let r=n.find(n=>n!==t&&e.some(e=>Oe(e[n])));if(r)return r;for(let n of e){let e=Object.keys(n).find(e=>e!==t&&Oe(n[e]));if(e)return e}return n[0]??`value`}function b(e,t,n){return e.map(e=>({label:De(e[t]),values:n.map(t=>T(e[t]))}))}function ye(t,n){return Array.from({length:5},(r,i)=>{let a=i/4,o=n.max-a*(n.max-n.min),s=t.top+a*t.height;return`<line class="bk-chart-grid" x1="${D(t.left)}" y1="${D(s)}" x2="${D(t.right)}" y2="${D(s)}" /><text class="bk-chart-label" x="${D(t.left-8)}" y="${D(s+4)}" text-anchor="end">${e(E(o))}</text>`}).join(``)}function be(t,n){return Array.from({length:5},(r,i)=>{let a=i/4,o=n.min+a*(n.max-n.min),s=t.left+a*t.width;return`<line class="bk-chart-grid" x1="${D(s)}" y1="${D(t.top)}" x2="${D(s)}" y2="${D(t.bottom)}" /><text class="bk-chart-label" x="${D(s)}" y="${D(t.bottom+18)}" text-anchor="middle">${e(E(o))}</text>`}).join(``)}function xe(e){return`<line class="bk-chart-axis" x1="${D(e.left)}" y1="${D(e.top)}" x2="${D(e.left)}" y2="${D(e.bottom)}" /><line class="bk-chart-axis" x1="${D(e.left)}" y1="${D(e.bottom)}" x2="${D(e.right)}" y2="${D(e.bottom)}" />`}function Se(t,n,r){return t.map((t,i)=>`<text class="bk-chart-label" x="${D(n[i])}" y="${D(r)}" text-anchor="middle">${e(t.label)}</text>`).join(``)}function x(e,t,n){return{left:n.left,top:n.top,right:e-n.right,bottom:t-n.bottom,width:e-n.left-n.right,height:t-n.top-n.bottom}}function S(e,t){let n=e.reduce((e,t)=>e<t?e:t,1/0),r=e.reduce((e,t)=>e>t?e:t,-1/0);if(t?.includeZero&&(n=Math.min(n,0),r=Math.max(r,0)),n===r){let e=n===0?1:Math.abs(n)*.1||1;n-=e,r+=e}return{min:n,max:r}}function Ce(e,t,n,r){return t<=1?(n+r)/2:n+e/(t-1)*(r-n)}function C(e,t,n,r){return n+(e-t.min)/(t.max-t.min)*(r-n)}function we(e,t,n,r,i){if(Math.abs(i-r)>=359.999)return``;let a=w(e,t,n,r),o=w(e,t,n,i),s=+(i-r>180);return`M ${D(e)} ${D(t)} L ${D(a.x)} ${D(a.y)} A ${D(n)} ${D(n)} 0 ${s} 1 ${D(o.x)} ${D(o.y)} Z`}function Te(e,t,n,r,i,a){if(Math.abs(a-i)>=359.999)return``;let o=w(e,t,n,i),s=w(e,t,n,a),c=w(e,t,r,a),l=w(e,t,r,i),u=+(a-i>180);return[`M ${D(o.x)} ${D(o.y)}`,`A ${D(n)} ${D(n)} 0 ${u} 1 ${D(s.x)} ${D(s.y)}`,`L ${D(c.x)} ${D(c.y)}`,`A ${D(r)} ${D(r)} 0 ${u} 0 ${D(l.x)} ${D(l.y)}`,`Z`].join(` `)}function w(e,t,n,r){let i=(r-90)*Math.PI/180;return{x:e+n*Math.cos(i),y:t+n*Math.sin(i)}}function Ee(e,t){let n=18+Math.max(0,Math.min(1,(e-t.min)/(t.max-t.min)))*64;return`color-mix(in srgb, var(--dt-bg-secondary) ${D(100-n)}%, var(--dt-accent-fg) ${D(n)}%)`}function De(e){return e==null?``:String(r(e))}function T(e){if(typeof e==`number`&&Number.isFinite(e))return e;if(typeof e==`string`&&e.trim()!==``){let t=Number(e);if(Number.isFinite(t))return t}return 0}function Oe(e){return typeof e==`number`?Number.isFinite(e):typeof e==`string`&&e.trim()!==``&&Number.isFinite(Number(e))}function E(e){return String(r(Number(e.toFixed(2))))}function D(e){return Number(e.toFixed(2)).toString()}var ke=`
|
|
352
|
+
/* ===== Base Styles ===== */
|
|
353
|
+
@keyframes strike-through {
|
|
354
|
+
from { width: 0; }
|
|
355
|
+
to { width: 100%; }
|
|
356
|
+
}
|
|
357
|
+
|
|
358
|
+
@keyframes slide-in {
|
|
359
|
+
from { opacity: 0; transform: translateX(-20px); }
|
|
360
|
+
to { opacity: 1; transform: translateX(0); }
|
|
361
|
+
}
|
|
362
|
+
|
|
363
|
+
@keyframes hover-pulse {
|
|
364
|
+
0% { transform: scale(1); }
|
|
365
|
+
25% { transform: scale(1.03); }
|
|
366
|
+
50% { transform: scale(0.98); }
|
|
367
|
+
75% { transform: scale(1.02); }
|
|
368
|
+
100% { transform: scale(1); }
|
|
369
|
+
}
|
|
370
|
+
|
|
240
371
|
.bk-checklist {
|
|
241
372
|
display: grid;
|
|
242
373
|
gap: var(--dt-space-2);
|
|
@@ -254,6 +385,7 @@
|
|
|
254
385
|
border-radius: var(--dt-radius-lg);
|
|
255
386
|
background: var(--dt-bg-secondary);
|
|
256
387
|
transition: border-color var(--dt-transition-fast), background var(--dt-transition-fast);
|
|
388
|
+
animation: slide-in 400ms ease-out both;
|
|
257
389
|
}
|
|
258
390
|
|
|
259
391
|
.bk-checklist-item:hover {
|
|
@@ -261,6 +393,7 @@
|
|
|
261
393
|
background: var(--dt-bg-tertiary);
|
|
262
394
|
}
|
|
263
395
|
|
|
396
|
+
/* ===== Icon Styles ===== */
|
|
264
397
|
.bk-checklist-icon {
|
|
265
398
|
display: inline-flex;
|
|
266
399
|
align-items: center;
|
|
@@ -279,15 +412,126 @@
|
|
|
279
412
|
.bk-checklist-item[data-checked='true'] .bk-checklist-icon {
|
|
280
413
|
background: var(--dt-success-subtle);
|
|
281
414
|
color: var(--dt-success-fg);
|
|
415
|
+
animation: aikit-check-bounce 400ms cubic-bezier(0.34,1.56,0.64,1) 500ms both;
|
|
282
416
|
}
|
|
283
417
|
|
|
418
|
+
/* ===== Label Styles ===== */
|
|
284
419
|
.bk-checklist-label {
|
|
285
420
|
color: var(--dt-text-primary);
|
|
286
421
|
font-size: var(--dt-font-size-sm);
|
|
287
422
|
line-height: 1.5;
|
|
288
423
|
padding-top: 1px;
|
|
289
424
|
}
|
|
290
|
-
|
|
425
|
+
|
|
426
|
+
.bk-checklist-item[data-checked='true'] .bk-checklist-label {
|
|
427
|
+
position: relative;
|
|
428
|
+
color: var(--dt-text-tertiary);
|
|
429
|
+
}
|
|
430
|
+
|
|
431
|
+
.bk-checklist-item[data-checked='true'] .bk-checklist-label::after {
|
|
432
|
+
content: '';
|
|
433
|
+
position: absolute;
|
|
434
|
+
left: 0;
|
|
435
|
+
top: 50%;
|
|
436
|
+
height: 1px;
|
|
437
|
+
background: currentColor;
|
|
438
|
+
animation: strike-through 300ms ease-out 700ms forwards;
|
|
439
|
+
}
|
|
440
|
+
|
|
441
|
+
/* ===== Hover Pulse for Unchecked Items ===== */
|
|
442
|
+
.bk-checklist-item[data-checked='false'] {
|
|
443
|
+
cursor: pointer;
|
|
444
|
+
}
|
|
445
|
+
|
|
446
|
+
.bk-checklist-item[data-checked='false']:hover {
|
|
447
|
+
animation: hover-pulse 600ms ease-in-out 0ms none;
|
|
448
|
+
}
|
|
449
|
+
|
|
450
|
+
/* Stagger via inline --i (rendered from index) instead of nth-child */
|
|
451
|
+
.bk-checklist-item {
|
|
452
|
+
animation-delay: calc(var(--i, 0) * 50ms);
|
|
453
|
+
}
|
|
454
|
+
|
|
455
|
+
/* ── Compact checklist on mobile ── */
|
|
456
|
+
@media (max-width: 480px) {
|
|
457
|
+
.bk-checklist-item {
|
|
458
|
+
padding: var(--dt-space-2) var(--dt-space-3);
|
|
459
|
+
gap: var(--dt-space-2);
|
|
460
|
+
}
|
|
461
|
+
.bk-checklist-icon {
|
|
462
|
+
width: 1.25rem;
|
|
463
|
+
height: 1.25rem;
|
|
464
|
+
font-size: 0.625rem;
|
|
465
|
+
}
|
|
466
|
+
}
|
|
467
|
+
|
|
468
|
+
@media (max-width: 320px) {
|
|
469
|
+
.bk-checklist-item {
|
|
470
|
+
padding: var(--dt-space-2);
|
|
471
|
+
}
|
|
472
|
+
.bk-checklist-label {
|
|
473
|
+
font-size: 0.75rem;
|
|
474
|
+
}
|
|
475
|
+
}
|
|
476
|
+
`;function Ae(t,n){return`<ul class="bk-checklist">${l(t).map((t,n)=>{let r=!!t.checked;return`<li class="bk-checklist-item" data-checked="${String(r)}" role="checkbox" aria-checked="${String(r)}" tabindex="0" style="--i: ${n}"><span class="bk-checklist-icon" aria-hidden="true">${r?`✓`:`×`}</span><span class="bk-checklist-label">${e(t.label)}</span></li>`}).join(``)}</ul>`}var je=`
|
|
477
|
+
.bk-code .bk-hljs-keyword {
|
|
478
|
+
color: var(--dt-purple-fg);
|
|
479
|
+
}
|
|
480
|
+
|
|
481
|
+
.bk-code .bk-hljs-string,
|
|
482
|
+
.bk-code .bk-hljs-attr-value {
|
|
483
|
+
color: var(--dt-success-fg);
|
|
484
|
+
}
|
|
485
|
+
|
|
486
|
+
.bk-code .bk-hljs-comment {
|
|
487
|
+
color: var(--dt-text-tertiary);
|
|
488
|
+
font-style: italic;
|
|
489
|
+
}
|
|
490
|
+
|
|
491
|
+
.bk-code .bk-hljs-number {
|
|
492
|
+
color: var(--dt-info-fg);
|
|
493
|
+
}
|
|
494
|
+
|
|
495
|
+
.bk-code .bk-hljs-builtin {
|
|
496
|
+
color: var(--dt-accent-fg);
|
|
497
|
+
}
|
|
498
|
+
|
|
499
|
+
.bk-code .bk-hljs-operator {
|
|
500
|
+
color: var(--dt-warning-fg);
|
|
501
|
+
}
|
|
502
|
+
|
|
503
|
+
.bk-code .bk-hljs-punctuation {
|
|
504
|
+
color: var(--dt-text-secondary);
|
|
505
|
+
}
|
|
506
|
+
|
|
507
|
+
.bk-code .bk-hljs-function {
|
|
508
|
+
color: var(--dt-accent-fg);
|
|
509
|
+
}
|
|
510
|
+
|
|
511
|
+
.bk-code .bk-hljs-class-name {
|
|
512
|
+
color: var(--dt-accent-fg);
|
|
513
|
+
font-weight: 500;
|
|
514
|
+
}
|
|
515
|
+
|
|
516
|
+
.bk-code .bk-hljs-tag {
|
|
517
|
+
color: var(--dt-accent-fg);
|
|
518
|
+
}
|
|
519
|
+
|
|
520
|
+
.bk-code .bk-hljs-attr-name {
|
|
521
|
+
color: var(--dt-warning-fg);
|
|
522
|
+
}
|
|
523
|
+
|
|
524
|
+
.bk-code .bk-hljs-variable {
|
|
525
|
+
color: var(--dt-text-primary);
|
|
526
|
+
font-weight: 400;
|
|
527
|
+
}
|
|
528
|
+
|
|
529
|
+
.bk-code .bk-hljs-property {
|
|
530
|
+
color: var(--dt-text-primary);
|
|
531
|
+
}
|
|
532
|
+
`,Me={javascript:{keywords:`async.await.break.case.catch.class.const.continue.debugger.default.delete.do.else.export.extends.false.finally.for.function.if.import.in.instanceof.let.new.null.of.return.static.super.switch.this.throw.true.try.typeof.undefined.var.void.while.with.yield`.split(`.`),builtins:[`console`,`Math`,`JSON`,`Promise`,`Array`,`Object`,`String`,`Number`,`Boolean`,`Map`,`Set`,`Symbol`,`RegExp`,`Date`,`Error`,`Proxy`,`Reflect`,`Buffer`,`setTimeout`,`setInterval`,`fetch`,`process`,`globalThis`,`Intl`,`BigInt`],types:[`string`,`number`,`boolean`,`symbol`,`bigint`,`undefined`,`null`,`any`,`void`,`never`,`unknown`],commentSingle:`//`,commentMultiOpen:`/*`,commentMultiClose:`*/`,stringDelims:[`"`,`'`,"`"],operators:`+\\-*/%=<>!&|^~?:`},typescript:{keywords:`async.await.break.case.catch.class.const.continue.debugger.default.delete.do.else.enum.export.extends.false.finally.for.function.if.import.in.implements.infer.instanceof.interface.is.keyof.let.new.null.of.readonly.return.static.super.switch.satisfies.this.throw.true.try.typeof.type.undefined.using.var.void.while.with.yield`.split(`.`),builtins:`console.Math.JSON.Promise.Array.Object.String.Number.Boolean.Map.Set.Symbol.RegExp.Date.Error.Proxy.Reflect.Buffer.setTimeout.setInterval.fetch.process.globalThis.Intl.BigInt.Partial.Required.Readonly.Pick.Omit.Record.Exclude.Extract.NonNullable.Parameters.ReturnType.InstanceType.Awaited`.split(`.`),types:[`string`,`number`,`boolean`,`symbol`,`bigint`,`undefined`,`null`,`any`,`void`,`never`,`unknown`,`object`],commentSingle:`//`,commentMultiOpen:`/*`,commentMultiClose:`*/`,stringDelims:[`"`,`'`,"`"],operators:`+\\-*/%=<>!&|^~?:`},python:{keywords:`False.None.True.and.as.assert.async.await.break.class.continue.def.del.elif.else.except.finally.for.from.global.if.import.in.is.lambda.nonlocal.not.or.pass.raise.return.try.while.with.yield`.split(`.`),builtins:`print.len.range.type.int.str.float.list.dict.set.tuple.bool.map.filter.zip.enumerate.reversed.sorted.open.input.isinstance.issubclass.hasattr.getattr.setattr.delattr.super.object.property.staticmethod.classmethod.self.cls.Exception.ValueError.TypeError.KeyError.IndexError.StopIteration`.split(`.`),types:[`int`,`float`,`str`,`bool`,`bytes`,`list`,`dict`,`set`,`tuple`,`None`,`Any`],commentSingle:`#`,stringDelims:[`"`,`'`],hashStrings:!0,operators:`+\\-*/%=<>!&|^~`},json:{keywords:[`true`,`false`,`null`],stringDelims:[`"`],operators:`:`,commentSingle:`//`,commentMultiOpen:`/*`,commentMultiClose:`*/`},yaml:{keywords:[`true`,`false`,`yes`,`no`,`on`,`off`,`null`,`~`],commentSingle:`#`,stringDelims:[`"`,`'`],operators:`:\\-`},html:{keywords:[`!DOCTYPE`],commentMultiOpen:`\x3C!--`,commentMultiClose:`-->`,stringDelims:[`"`,`'`],operators:`=`},css:{keywords:[`import`,`media`,`keyframes`,`font-face`,`supports`,`charset`,`namespace`,`page`,`layer`,`container`],builtins:[`red`,`blue`,`green`,`white`,`black`,`transparent`,`currentcolor`,`inherit`,`initial`,`unset`,`revert`],commentMultiOpen:`/*`,commentMultiClose:`*/`,stringDelims:[`"`,`'`],operators:`:;`},shell:{keywords:[`if`,`then`,`else`,`elif`,`fi`,`for`,`while`,`do`,`done`,`case`,`esac`,`in`,`function`,`return`,`exit`,`break`,`continue`,`select`,`until`,`declare`,`local`,`export`,`readonly`,`unset`],builtins:`echo,printf,read,source,.,cd,pwd,ls,cat,grep,awk,sed,find,xargs,sort,uniq,wc,cut,tr,head,tail,tee,test,[,eval,exec,shift,type,command,let,mapfile,readarray,mkdir,rm,cp,mv,chmod,chown,docker,npm,node,git`.split(`,`),commentSingle:`#`,stringDelims:[`"`,`'`],operators:`=|<>`}},Ne={js:`javascript`,ts:`typescript`,py:`python`,sh:`shell`,bash:`shell`,zsh:`shell`,html:`html`,htm:`html`,css:`css`,json:`json`,yml:`yaml`};function Pe(e){return e?Me[Ne[e.toLowerCase()]??e.toLowerCase()]??null:null}function O(e,t){let n=[],r=0;for(;r<e.length;){let i=e[r];if(t.stringDelims.includes(i)&&i!=="`"){let a=i;if(t.hashStrings&&e.slice(r,r+3)===a+a+a){n.push({type:`string`,value:a+a+a}),r+=3;let t=e.indexOf(a+a+a,r);t===-1?(n.push({type:`string`,value:e.slice(r)}),r=e.length):(n.push({type:`string`,value:e.slice(r,t)}),n.push({type:`string`,value:a+a+a}),r=t+3);continue}let o=a;for(r++;r<e.length;){if(e[r]===`\\`&&r+1<e.length){o+=e[r]+e[r+1],r+=2;continue}if(e[r]===a){o+=a,r++;break}o+=e[r],r++}n.push({type:`string`,value:o});continue}if(t.stringDelims.includes("`")&&i==="`"){let t="`";for(r++;r<e.length;){if(e[r]===`\\`&&r+1<e.length){t+=e[r]+e[r+1],r+=2;continue}if(e[r]==="`"){t+="`",r++;break}t+=e[r],r++}n.push({type:`string`,value:t});continue}if(t.commentSingle&&e.startsWith(t.commentSingle,r)){n.push({type:`comment`,value:e.slice(r)}),r=e.length;continue}if(t.commentMultiOpen&&t.commentMultiClose&&e.startsWith(t.commentMultiOpen,r)){let i=t.commentMultiClose,a=e.indexOf(i,r+t.commentMultiOpen.length);a===-1?(n.push({type:`comment`,value:e.slice(r)}),r=e.length):(n.push({type:`comment`,value:e.slice(r,a+i.length)}),r=a+i.length);continue}if(i===`0`&&r+1<e.length&&/[xXbB]/.test(e[r+1])&&t.commentSingle!==`#`){let t=e.slice(r).match(/^0[xX][0-9a-fA-F]+/);if(t){n.push({type:`number`,value:t[0]}),r+=t[0].length;continue}}if(/[0-9]/.test(i)||i===`.`&&r+1<e.length&&/[0-9]/.test(e[r+1])){let t=e.slice(r).match(/^\d+(?:\.\d+)?(?:[eE][+-]?\d+)?/);if(t){n.push({type:`number`,value:t[0]}),r+=t[0].length;continue}}if(/[a-zA-Z_$]/.test(i)||i===`@`){let i=e.slice(r).match(/^[@]?[a-zA-Z_$][a-zA-Z0-9_$]*/);if(i){let a=i[0],o=e=>e?e.includes(a):!1;if(o(t.keywords))n.push({type:`keyword`,value:a});else if(o(t.types))n.push({type:`keyword`,value:a});else if(o(t.builtins))n.push({type:`builtin`,value:a});else{let t=r+a.length;t<e.length&&e[t]===`(`?n.push({type:`function`,value:a}):n.push({type:`variable`,value:a})}r+=a.length;continue}}if(i===`<`&&t===Me.html)if(r+1<e.length&&e[r+1]===`/`){let t=e.indexOf(`>`,r+2);if(t!==-1){n.push({type:`punctuation`,value:`</`}),n.push({type:`tag`,value:e.slice(r+2,t)}),n.push({type:`punctuation`,value:`>`}),r=t+1;continue}}else{let t=e.indexOf(`>`,r+1);if(t!==-1){n.push({type:`punctuation`,value:`<`});let i=e.slice(r+1,t),a=i.match(/^[a-zA-Z][a-zA-Z0-9_-]*/);if(a){n.push({type:`tag`,value:a[0]});let e=a[0].length;for(;e<i.length;){if(i[e]===` `||i[e]===` `){e++;continue}let t=i.slice(e).match(/^[a-zA-Z_-][a-zA-Z0-9_-]*(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s>]+))?/);if(t){let r=t[0],i=r.indexOf(`=`);if(i!==-1){n.push({type:`variable`,value:r.slice(0,i).trim()}),n.push({type:`operator`,value:`=`});let e=r.slice(i+1).trim();e.startsWith(`"`)&&e.endsWith(`"`)||e.startsWith(`'`)&&e.endsWith(`'`)?n.push({type:`string`,value:e}):n.push({type:`attr-value`,value:e})}else n.push({type:`attr-name`,value:r});e+=t[0].length;continue}break}}else n.push({type:`variable`,value:i});n.push({type:`punctuation`,value:`>`}),r=t+1;continue}}if(t.operators&&!t._opRegex&&(t._opRegex=RegExp(`[${t.operators}]`)),t._opRegex?.test(i)){let t=i,a=i+(e[r+1]||``);[`=>`,`==`,`!=`,`<=`,`>=`,`&&`,`||`,`++`,`--`,`+=`,`-=`,`*=`,`/=`,`::`,`?.`,`??`,`?:`,`??=`].includes(a)?(t=a,r++):i+e.slice(r+1,r+3)===`...`&&(t=`...`,r+=2),n.push({type:`operator`,value:t}),r++;continue}if(/[{}()[\];,:.]/.test(i)){n.push({type:`punctuation`,value:i}),r++;continue}let a=e.slice(r).match(/^[^\s]+/);a?(n.push({type:`variable`,value:a[0]}),r+=a[0].length):(n.push({type:`variable`,value:i}),r++)}return n}var Fe={keyword:`bk-hljs-keyword`,string:`bk-hljs-string`,comment:`bk-hljs-comment`,number:`bk-hljs-number`,builtin:`bk-hljs-builtin`,operator:`bk-hljs-operator`,punctuation:`bk-hljs-punctuation`,tag:`bk-hljs-tag`,"attr-name":`bk-hljs-attr-name`,"attr-value":`bk-hljs-attr-value`,function:`bk-hljs-function`,variable:`bk-hljs-variable`};function Ie(t){if(!t.length)return``;let n=[],r=null,i=``,a=()=>{if(!i)return;let t=e(i);r&&!/^\s+$/.test(i)?n.push(`<span class="${r}">${t}</span>`):n.push(t),i=``,r=null};for(let o of t){let t=Fe[o.type];if(/^\s+$/.test(o.value)||!t){i&&a(),n.push(e(o.value));continue}r===t?i+=o.value:(a(),r=t,i=o.value)}return a(),n.join(``)}function Le(t,n){let r=Pe(n);if(!r)return``;let i=t.split(`
|
|
533
|
+
`),a=[],o=!1;for(let t of i){if(o&&r.commentMultiClose){let n=r.commentMultiClose,i=t.indexOf(n);if(i!==-1){o=!1;let s=t.slice(0,i+n.length),c=t.slice(i+n.length),l=`<span class="bk-hljs-comment">${e(s)}</span>`;c.trim()&&(l+=Ie(O(c,r))),a.push(l);continue}a.push(`<span class="bk-hljs-comment">${e(t)}</span>`);continue}if(r.commentMultiOpen&&r.commentMultiClose){let n=t.indexOf(r.commentMultiOpen);if(n!==-1&&t.indexOf(r.commentMultiClose,n+r.commentMultiOpen.length)===-1){o=!0;let i=t.slice(0,n),s=``;i.trim()&&(s+=Ie(O(i,r))),s+=`<span class="bk-hljs-comment">${e(t.slice(n))}</span>`,a.push(s);continue}}a.push(Ie(O(t,r)))}return a.join(`
|
|
534
|
+
`)}var Re=`
|
|
291
535
|
.bk-code {
|
|
292
536
|
margin: 0;
|
|
293
537
|
padding: var(--dt-space-5);
|
|
@@ -305,13 +549,62 @@
|
|
|
305
549
|
font-size: var(--dt-font-size-sm);
|
|
306
550
|
line-height: 1.7;
|
|
307
551
|
}
|
|
308
|
-
|
|
552
|
+
|
|
553
|
+
/* Token spans inherit code font properties */
|
|
554
|
+
.bk-code code .bk-hljs-string,
|
|
555
|
+
.bk-code code .bk-hljs-comment,
|
|
556
|
+
.bk-code code .bk-hljs-keyword,
|
|
557
|
+
.bk-code code .bk-hljs-builtin,
|
|
558
|
+
.bk-code code .bk-hljs-number,
|
|
559
|
+
.bk-code code .bk-hljs-operator,
|
|
560
|
+
.bk-code code .bk-hljs-punctuation,
|
|
561
|
+
.bk-code code .bk-hljs-function,
|
|
562
|
+
.bk-code code .bk-hljs-class-name,
|
|
563
|
+
.bk-code code .bk-hljs-tag,
|
|
564
|
+
.bk-code code .bk-hljs-attr-name,
|
|
565
|
+
.bk-code code .bk-hljs-attr-value,
|
|
566
|
+
.bk-code code .bk-hljs-variable,
|
|
567
|
+
.bk-code code .bk-hljs-property {
|
|
568
|
+
font-family: inherit;
|
|
569
|
+
font-size: inherit;
|
|
570
|
+
line-height: inherit;
|
|
571
|
+
background: none;
|
|
572
|
+
text-shadow: none;
|
|
573
|
+
}
|
|
574
|
+
|
|
575
|
+
/* ── Compact code on mobile ── */
|
|
576
|
+
@media (max-width: 480px) {
|
|
577
|
+
.bk-code {
|
|
578
|
+
padding: var(--dt-space-4);
|
|
579
|
+
}
|
|
580
|
+
.bk-code code {
|
|
581
|
+
font-size: 0.75rem;
|
|
582
|
+
line-height: 1.5;
|
|
583
|
+
}
|
|
584
|
+
}
|
|
585
|
+
|
|
586
|
+
/* ── Ultra-compact code on 320px ── */
|
|
587
|
+
@media (max-width: 320px) {
|
|
588
|
+
.bk-code {
|
|
589
|
+
padding: var(--dt-space-3);
|
|
590
|
+
tab-size: 1;
|
|
591
|
+
}
|
|
592
|
+
.bk-code code {
|
|
593
|
+
font-size: 0.6875rem;
|
|
594
|
+
}
|
|
595
|
+
}
|
|
596
|
+
|
|
597
|
+
${je}
|
|
598
|
+
`;function ze(t,r){let i=t.language?` language-${n(String(t.language))}`:``,a=t.value??``,o=typeof a==`object`&&a?JSON.stringify(a,null,2):String(a),s=(t.language?Le(o,String(t.language)):``)||e(o);return`<pre class="bk-code"><code class="${i.trim()}">${s}</code></pre>`}function Be(e){if(!e||typeof e!=`object`)return!1;let t=e,n=t.items;return typeof t.title==`string`&&Array.isArray(n)&&n.every(e=>typeof e==`string`)}function Ve(e){let t=i(e);return Array.isArray(t)?t.filter(Be):t&&typeof t==`object`&&Array.isArray(t.columns)?t.columns.filter(Be):[]}function He(e){let t=new Set,n=[];for(let r of e)for(let e of r.items)t.has(e)||(t.add(e),n.push(e));return n}function Ue(e,t){if(e.length<2||t.length===0)return!1;let n=!1,r=!1;for(let i of t){let t=e.filter(e=>e.items.includes(i)).length;if(t>1&&(n=!0),t>0&&t<e.length&&(r=!0),n&&r)return!0}return!1}var We=`
|
|
599
|
+
/* ── Comparison grid (CSS Grid for equal-height columns) ──────────────── */
|
|
309
600
|
.bk-comparison {
|
|
310
601
|
display: grid;
|
|
311
602
|
grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
|
|
312
603
|
gap: var(--dt-space-4);
|
|
604
|
+
align-items: stretch;
|
|
313
605
|
}
|
|
314
606
|
|
|
607
|
+
/* ── Column card ────────────────────────────────────────────────────────── */
|
|
315
608
|
.bk-comparison-column {
|
|
316
609
|
display: grid;
|
|
317
610
|
gap: var(--dt-space-3);
|
|
@@ -320,8 +613,36 @@
|
|
|
320
613
|
border-radius: var(--dt-radius-lg);
|
|
321
614
|
background: var(--dt-bg-secondary);
|
|
322
615
|
box-shadow: var(--dt-shadow-sm);
|
|
616
|
+
position: relative;
|
|
617
|
+
min-width: 0;
|
|
323
618
|
}
|
|
324
619
|
|
|
620
|
+
/* Recommended column — accent border + glow */
|
|
621
|
+
.bk-comparison-column[data-recommended="true"] {
|
|
622
|
+
border-color: var(--dt-accent-fg);
|
|
623
|
+
box-shadow: var(--dt-shadow-md), 0 0 0 1px var(--dt-accent-fg);
|
|
624
|
+
}
|
|
625
|
+
|
|
626
|
+
/* ── "Recommended" badge / ribbon ──────────────────────────────────────── */
|
|
627
|
+
.bk-comparison-recommended-badge {
|
|
628
|
+
position: absolute;
|
|
629
|
+
top: 0;
|
|
630
|
+
left: 50%;
|
|
631
|
+
transform: translate(-50%, -50%);
|
|
632
|
+
background: var(--dt-accent-fg);
|
|
633
|
+
color: var(--dt-accent-foreground);
|
|
634
|
+
font-size: var(--dt-font-size-xs);
|
|
635
|
+
font-weight: 700;
|
|
636
|
+
text-transform: uppercase;
|
|
637
|
+
letter-spacing: 0.05em;
|
|
638
|
+
padding: var(--dt-space-1) var(--dt-space-3);
|
|
639
|
+
border-radius: var(--dt-radius-pill);
|
|
640
|
+
white-space: nowrap;
|
|
641
|
+
line-height: 1.4;
|
|
642
|
+
z-index: 1;
|
|
643
|
+
}
|
|
644
|
+
|
|
645
|
+
/* ── Column title ───────────────────────────────────────────────────────── */
|
|
325
646
|
.bk-comparison-title {
|
|
326
647
|
color: var(--dt-text-primary);
|
|
327
648
|
font-size: var(--dt-font-size-lg);
|
|
@@ -331,21 +652,83 @@
|
|
|
331
652
|
border-bottom: 1px solid var(--dt-border-muted);
|
|
332
653
|
}
|
|
333
654
|
|
|
655
|
+
/* ── Item list ──────────────────────────────────────────────────────────── */
|
|
334
656
|
.bk-comparison-items {
|
|
335
657
|
display: grid;
|
|
336
658
|
gap: var(--dt-space-2);
|
|
337
659
|
margin: 0;
|
|
338
660
|
padding: 0;
|
|
339
|
-
|
|
661
|
+
list-style: none;
|
|
340
662
|
color: var(--dt-text-secondary);
|
|
341
663
|
font-size: var(--dt-font-size-sm);
|
|
342
664
|
line-height: 1.6;
|
|
343
665
|
}
|
|
344
666
|
|
|
345
667
|
.bk-comparison-items li {
|
|
346
|
-
padding
|
|
668
|
+
padding: var(--dt-space-1) var(--dt-space-2);
|
|
669
|
+
border-radius: var(--dt-radius-sm);
|
|
347
670
|
}
|
|
348
|
-
|
|
671
|
+
|
|
672
|
+
/* ── Diff indicators ────────────────────────────────────────────────────── */
|
|
673
|
+
/* Item present in this column but missing from at least one other */
|
|
674
|
+
.bk-comparison-item-diff-present {
|
|
675
|
+
background: var(--dt-success-subtle);
|
|
676
|
+
color: var(--dt-success-emphasis);
|
|
677
|
+
}
|
|
678
|
+
|
|
679
|
+
.bk-comparison-item-diff-present::before {
|
|
680
|
+
content: "\\2713\\00a0\\00a0";
|
|
681
|
+
font-weight: 700;
|
|
682
|
+
color: var(--dt-success-fg);
|
|
683
|
+
}
|
|
684
|
+
|
|
685
|
+
/* Item absent from this column but present in at least one other */
|
|
686
|
+
.bk-comparison-item-diff-absent {
|
|
687
|
+
background: var(--dt-danger-subtle);
|
|
688
|
+
color: var(--dt-text-tertiary);
|
|
689
|
+
}
|
|
690
|
+
|
|
691
|
+
.bk-comparison-item-diff-absent::before {
|
|
692
|
+
content: "\\2717\\00a0\\00a0";
|
|
693
|
+
font-weight: 700;
|
|
694
|
+
color: var(--dt-danger-fg);
|
|
695
|
+
}
|
|
696
|
+
|
|
697
|
+
/* ── Responsive: stack vertically on mobile ── */
|
|
698
|
+
@media (max-width: 640px) {
|
|
699
|
+
.bk-comparison {
|
|
700
|
+
grid-template-columns: 1fr;
|
|
701
|
+
}
|
|
702
|
+
.bk-comparison-column {
|
|
703
|
+
padding: var(--dt-space-4);
|
|
704
|
+
}
|
|
705
|
+
}
|
|
706
|
+
|
|
707
|
+
@media (max-width: 360px) {
|
|
708
|
+
.bk-comparison-column {
|
|
709
|
+
padding: var(--dt-space-3);
|
|
710
|
+
}
|
|
711
|
+
.bk-comparison-items {
|
|
712
|
+
font-size: 0.75rem;
|
|
713
|
+
}
|
|
714
|
+
.bk-comparison-title {
|
|
715
|
+
font-size: var(--dt-font-size-base);
|
|
716
|
+
}
|
|
717
|
+
}
|
|
718
|
+
|
|
719
|
+
@media (max-width: 320px) {
|
|
720
|
+
.bk-comparison {
|
|
721
|
+
gap: var(--dt-space-3);
|
|
722
|
+
}
|
|
723
|
+
.bk-comparison-column {
|
|
724
|
+
padding: var(--dt-space-3) var(--dt-space-2);
|
|
725
|
+
}
|
|
726
|
+
.bk-comparison-recommended-badge {
|
|
727
|
+
font-size: 0.625rem;
|
|
728
|
+
padding: 2px var(--dt-space-2);
|
|
729
|
+
}
|
|
730
|
+
}
|
|
731
|
+
`;function Ge(t,n){let r=Ve(t.value),i=He(r),a=Ue(r,i);return`<div class="bk-comparison">${r.map(t=>{let n=t.recommended===!0,r;if(a){let n=new Set(t.items);r=i.map(t=>`<li class="${n.has(t)?`bk-comparison-item-diff-present`:`bk-comparison-item-diff-absent`}">${e(t)}</li>`).join(``)}else r=t.items.map(t=>`<li>${e(t)}</li>`).join(``);return`<section class="bk-comparison-column"${n?` data-recommended="true"`:``}>${n?`<div class="bk-comparison-recommended-badge">Recommended</div>`:``}<div class="bk-comparison-title">${e(t.title)}</div><ul class="bk-comparison-items">${r}</ul></section>`}).join(``)}</div>`}function Ke(e){let t=i(e);if(t&&typeof t==`object`){let e=t;return{name:typeof e.name==`string`?e.name:`Untitled component`,description:typeof e.description==`string`?e.description:void 0,type:typeof e.type==`string`?e.type:void 0,technology:typeof e.technology==`string`?e.technology:void 0,responsibilities:Array.isArray(e.responsibilities)?e.responsibilities.map(String).filter(Boolean):[],interfaces:Array.isArray(e.interfaces)?e.interfaces:[],dependencies:Array.isArray(e.dependencies)?e.dependencies:[],metrics:e.metrics&&typeof e.metrics==`object`?e.metrics:void 0,codeLinks:Array.isArray(e.codeLinks)?e.codeLinks:[]}}return{name:`Untitled component`}}function qe(t){return t.length===0?``:`<details class="bk-component-detail-section" open><summary class="bk-component-detail-summary">Responsibilities</summary><ul class="bk-component-detail-list">${t.map(t=>`<li>${e(t)}</li>`).join(``)}</ul></details>`}function Je(t){return t.length===0?``:`<details class="bk-component-detail-section" open><summary class="bk-component-detail-summary">Interfaces</summary><div class="bk-component-detail-table-wrap"><table class="bk-component-detail-table"><thead><tr><th>Name</th><th>Type</th><th>Description</th></tr></thead><tbody>${t.map(t=>`<tr><td class="bk-component-detail-code">${e(t.name)}</td><td class="bk-component-detail-code">${e(t.type)}</td><td>${e(t.description??``)}</td></tr>`).join(``)}</tbody></table></div></details>`}function Ye(t){return t.length===0?``:`<details class="bk-component-detail-section" open><summary class="bk-component-detail-summary">Dependencies</summary><ul class="bk-component-detail-dependencies">${t.map(t=>`<li class="bk-component-detail-dependency"><span class="bk-component-detail-dependency-name">${e(t.name)}</span>${t.relationship?`<span class="bk-component-detail-dependency-relationship">${e(t.relationship)}</span>`:``}</li>`).join(``)}</ul></details>`}function Xe(t){let n=Object.entries(t??{});return n.length===0?``:`<details class="bk-component-detail-section" open><summary class="bk-component-detail-summary">Metrics</summary><div class="bk-component-detail-metrics">${n.map(([t,n])=>`<div class="bk-component-detail-metric"><span class="bk-component-detail-metric-label">${e(t)}</span><strong class="bk-component-detail-metric-value">${e(String(n))}</strong></div>`).join(``)}</div></details>`}function Ze(n){let r=Array.isArray(n.codeLinks)?n.codeLinks:[];return r.length===0?``:`<details class="bk-component-detail-section" open><summary class="bk-component-detail-summary">Code Links</summary><div class="bk-component-detail-links">${r.map(n=>`<a class="bk-component-detail-link" href="${t(n.href)}">${e(n.label)}</a>`).join(``)}</div></details>`}var Qe=`
|
|
349
732
|
.bk-component-detail {
|
|
350
733
|
display: grid;
|
|
351
734
|
gap: var(--dt-space-4);
|
|
@@ -549,7 +932,7 @@
|
|
|
549
932
|
padding-bottom: var(--dt-space-3);
|
|
550
933
|
}
|
|
551
934
|
}
|
|
552
|
-
`;function
|
|
935
|
+
`;function $e(t,n){let r=Ke(t.value),i=r.description?`<p class="bk-component-detail-description">${e(r.description)}</p>`:``,a=r.type?`<span class="bk-component-detail-badge">${e(r.type)}</span>`:``,o=r.technology?`<span class="bk-component-detail-tech">${e(r.technology)}</span>`:``,s=[qe(r.responsibilities??[]),Je(r.interfaces??[]),Ye(r.dependencies??[]),Xe(r.metrics),Ze(r)].join(``);return`<article class="bk-component-detail"><header class="bk-component-detail-header"><div class="bk-component-detail-heading"><h4 class="bk-component-detail-name">${e(r.name)}</h4>${a}${o}</div>${i}</header><div class="bk-component-detail-body">${s}</div></article>`}function et(e){let t=i(e);if(t&&typeof t==`object`){let e=t;return{name:typeof e.name==`string`?e.name:`unnamed_schema`,description:typeof e.description==`string`?e.description:void 0,fields:Array.isArray(e.fields)?e.fields:[],indexes:Array.isArray(e.indexes)?e.indexes:[]}}return{name:`unnamed_schema`,fields:[]}}function tt(e){return Array.isArray(e.constraints)&&e.constraints.includes(`primary-key`)}function nt(r){return r.startsWith(`foreign-key:`)?`<a class="bk-data-table-schema-badge bk-data-table-schema-badge--link" href="${t(`#${n(r.slice(12).replace(/\./g,`_`))}`)}">${e(r)}</a>`:`<span class="bk-data-table-schema-badge${r===`primary-key`?` bk-data-table-schema-badge--primary`:``}">${e(r)}</span>`}function rt(t){return t.length===0?``:`<section class="bk-data-table-schema-indexes"><h5 class="bk-data-table-schema-subtitle">Indexes</h5><div class="bk-data-table-schema-index-grid">${t.map(t=>`<article class="bk-data-table-schema-index"><div class="bk-data-table-schema-index-name">${e(t.name)}</div><div class="bk-data-table-schema-index-columns">${e(t.columns.join(`, `))}</div><div class="bk-data-table-schema-index-meta">${t.unique?`Unique`:`Standard`}</div></article>`).join(``)}</div></section>`}var it=`
|
|
553
936
|
.bk-data-table-schema {
|
|
554
937
|
display: grid;
|
|
555
938
|
gap: var(--dt-space-4);
|
|
@@ -672,91 +1055,298 @@
|
|
|
672
1055
|
color: var(--dt-text-primary);
|
|
673
1056
|
font-weight: 700;
|
|
674
1057
|
}
|
|
675
|
-
`;function
|
|
1058
|
+
`;function at(t,r){let i=et(t.value),a=i.description?`<p class="bk-data-table-schema-description">${e(i.description)}</p>`:``;if(!Array.isArray(i.fields)||i.fields.length===0)return`<section class="bk-data-table-schema"><header class="bk-data-table-schema-header"><h4 class="bk-data-table-schema-title">${e(i.name)}</h4>${a}</header><p class="bk-data-table-schema-empty">No schema fields available.</p></section>`;let o=i.fields.map(t=>{let r=Array.isArray(t.constraints)?t.constraints:[],a=r.length>0?r.map(e=>nt(e)).join(``):`<span class="bk-data-table-schema-badge">none</span>`;return`<tr class="bk-data-table-schema-row${tt(t)?` bk-data-table-schema-row--primary`:``}" id="${n(`${i.name}_${t.name}`)}"><td class="bk-data-table-schema-code">${e(t.name)}</td><td class="bk-data-table-schema-code">${e(t.type)}</td><td class="bk-data-table-schema-required">${t.required?`✓`:`—`}</td><td><div class="bk-data-table-schema-constraints">${a}</div></td><td class="bk-data-table-schema-code">${e(t.default??`—`)}</td><td>${e(t.description??``)}</td></tr>`}).join(``);return`<section class="bk-data-table-schema"><header class="bk-data-table-schema-header"><h4 class="bk-data-table-schema-title">${e(i.name)}</h4>${a}</header><div class="bk-data-table-schema-wrap"><table class="bk-data-table-schema-table"><thead><tr><th>Field Name</th><th>Type</th><th>Required</th><th>Constraints</th><th>Default</th><th>Description</th></tr></thead><tbody>${o}</tbody></table></div>${rt(i.indexes??[])}</section>`}var k=`
|
|
676
1059
|
.bk-diagram {
|
|
677
|
-
border: 1px solid var(--dt-border-default
|
|
678
|
-
border-radius: var(--dt-radius-lg
|
|
1060
|
+
border: 1px solid var(--dt-border-default);
|
|
1061
|
+
border-radius: var(--dt-radius-lg);
|
|
679
1062
|
overflow: hidden;
|
|
1063
|
+
box-shadow: var(--dt-shadow-sm);
|
|
1064
|
+
transition: box-shadow var(--dt-transition-normal);
|
|
1065
|
+
}
|
|
1066
|
+
.bk-diagram:hover {
|
|
1067
|
+
box-shadow: var(--dt-shadow-md);
|
|
680
1068
|
}
|
|
681
|
-
.bk-diagram summary {
|
|
682
|
-
padding: var(--dt-space-3
|
|
1069
|
+
.bk-diagram.bk-diagram-has-viz summary {
|
|
1070
|
+
padding: var(--dt-space-2) var(--dt-space-3);
|
|
683
1071
|
cursor: pointer;
|
|
684
1072
|
font-weight: 600;
|
|
685
|
-
font-size: var(--dt-font-size-sm
|
|
686
|
-
background: var(--dt-bg-secondary
|
|
687
|
-
border-bottom: 1px solid var(--dt-border-default
|
|
1073
|
+
font-size: var(--dt-font-size-sm);
|
|
1074
|
+
background: var(--dt-bg-secondary);
|
|
1075
|
+
border-bottom: 1px solid var(--dt-border-default);
|
|
688
1076
|
user-select: none;
|
|
1077
|
+
color: var(--dt-text-secondary);
|
|
1078
|
+
transition: background var(--dt-transition-fast);
|
|
1079
|
+
}
|
|
1080
|
+
.bk-diagram.bk-diagram-has-viz summary:hover {
|
|
1081
|
+
background: var(--dt-bg-tertiary);
|
|
689
1082
|
}
|
|
690
|
-
.bk-diagram[open] summary {
|
|
691
|
-
border-bottom: 1px solid var(--dt-border-default
|
|
1083
|
+
.bk-diagram.bk-diagram-has-viz[open] summary {
|
|
1084
|
+
border-bottom: 1px solid var(--dt-border-default);
|
|
692
1085
|
margin-bottom: 0;
|
|
693
1086
|
}
|
|
694
|
-
.bk-diagram-content {
|
|
695
|
-
padding: var(--dt-space-3
|
|
1087
|
+
.bk-diagram .bk-diagram-content {
|
|
1088
|
+
padding: var(--dt-space-3);
|
|
696
1089
|
}
|
|
697
1090
|
.bk-diagram table {
|
|
698
1091
|
width: 100%;
|
|
699
1092
|
border-collapse: collapse;
|
|
700
|
-
font-size: var(--dt-font-size-sm
|
|
1093
|
+
font-size: var(--dt-font-size-sm);
|
|
701
1094
|
}
|
|
702
1095
|
.bk-diagram th, .bk-diagram td {
|
|
703
|
-
padding: var(--dt-space-1
|
|
1096
|
+
padding: var(--dt-space-1) var(--dt-space-2);
|
|
704
1097
|
text-align: left;
|
|
705
|
-
border-bottom: 1px solid var(--dt-border-subtle
|
|
1098
|
+
border-bottom: 1px solid var(--dt-border-subtle);
|
|
706
1099
|
}
|
|
707
1100
|
.bk-diagram th {
|
|
708
1101
|
font-weight: 600;
|
|
709
|
-
color: var(--dt-text-secondary
|
|
710
|
-
font-size: var(--dt-font-size-xs
|
|
1102
|
+
color: var(--dt-text-secondary);
|
|
1103
|
+
font-size: var(--dt-font-size-xs);
|
|
711
1104
|
text-transform: uppercase;
|
|
712
1105
|
letter-spacing: 0.5px;
|
|
713
1106
|
}
|
|
714
1107
|
.bk-diagram .bk-diagram-meta {
|
|
715
1108
|
display: grid;
|
|
716
1109
|
grid-template-columns: auto 1fr;
|
|
717
|
-
gap: var(--dt-space-1
|
|
718
|
-
font-size: var(--dt-font-size-sm
|
|
719
|
-
margin-bottom: var(--dt-space-3
|
|
1110
|
+
gap: var(--dt-space-1) var(--dt-space-3);
|
|
1111
|
+
font-size: var(--dt-font-size-sm);
|
|
1112
|
+
margin-bottom: var(--dt-space-3);
|
|
720
1113
|
}
|
|
721
1114
|
.bk-diagram .bk-diagram-meta dt {
|
|
722
1115
|
font-weight: 600;
|
|
723
|
-
color: var(--dt-text-secondary
|
|
1116
|
+
color: var(--dt-text-secondary);
|
|
724
1117
|
}
|
|
725
1118
|
.bk-diagram .bk-diagram-meta dd {
|
|
726
1119
|
margin: 0;
|
|
727
1120
|
}
|
|
728
1121
|
.bk-diagram ul {
|
|
729
|
-
margin: var(--dt-space-2
|
|
730
|
-
padding-left: var(--dt-space-4
|
|
1122
|
+
margin: var(--dt-space-2) 0;
|
|
1123
|
+
padding-left: var(--dt-space-4);
|
|
731
1124
|
}
|
|
732
1125
|
.bk-diagram li {
|
|
733
|
-
font-size: var(--dt-font-size-sm
|
|
1126
|
+
font-size: var(--dt-font-size-sm);
|
|
734
1127
|
line-height: 1.6;
|
|
735
1128
|
}
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
.bk-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
.bk-
|
|
754
|
-
|
|
755
|
-
|
|
1129
|
+
|
|
1130
|
+
/* After mini-mermaid renders — hide border, show clean SVG */
|
|
1131
|
+
.bk-diagram[data-mini-mermaid-rendered] {
|
|
1132
|
+
border: 1px solid var(--dt-border-default);
|
|
1133
|
+
border-radius: var(--dt-radius-lg);
|
|
1134
|
+
overflow: hidden;
|
|
1135
|
+
box-shadow: var(--dt-shadow-sm);
|
|
1136
|
+
background: var(--dt-bg-canvas);
|
|
1137
|
+
}
|
|
1138
|
+
.bk-diagram[data-mini-mermaid-rendered]:hover {
|
|
1139
|
+
box-shadow: var(--dt-shadow-md);
|
|
1140
|
+
}
|
|
1141
|
+
.bk-diagram[data-mini-mermaid-rendered] .bk-diagram-viz {
|
|
1142
|
+
display: block;
|
|
1143
|
+
padding: var(--dt-space-4);
|
|
1144
|
+
background: var(--dt-bg-canvas);
|
|
1145
|
+
}
|
|
1146
|
+
.bk-diagram[data-mini-mermaid-rendered] .bk-diagram-fallback {
|
|
1147
|
+
display: none;
|
|
1148
|
+
}
|
|
1149
|
+
.bk-diagram-viz {
|
|
1150
|
+
display: block;
|
|
1151
|
+
overflow-x: auto;
|
|
1152
|
+
}
|
|
1153
|
+
.bk-diagram-viz svg {
|
|
1154
|
+
display: block;
|
|
1155
|
+
margin: 0 auto;
|
|
1156
|
+
max-width: 100%;
|
|
1157
|
+
height: auto;
|
|
1158
|
+
}
|
|
1159
|
+
`,ot={frontend:`🖥️`,backend:`⚙️`,database:`🗄️`,storage:`💾`,cloud:`☁️`,external:`🔗`,security:`🔒`,messagebus:`📨`,person:`👤`,actor:`👤`,system:`🏛️`,"start-end":`●`,automated:`🤖`,manual:`👆`,decision:`🔀`,branch:`🔀`,infrastructure:`📦`},st=`📋`;function ct(e){return ot[e]??st}var lt={frontend:`fill:var(--dt-agent-frontend,#38bdf8)`,backend:`fill:var(--dt-accent-subtle,#14b8a6)`,database:`fill:var(--dt-purple-subtle,#c084fc)`,storage:`fill:var(--dt-purple-subtle,#c084fc)`,cloud:`fill:var(--dt-info-subtle,#bae6fd)`,external:`fill:var(--dt-bg-tertiary,#64748b)`,security:`fill:var(--dt-danger-subtle,#fecaca)`,messagebus:`fill:var(--dt-warning-subtle,#fde68a)`,decision:`fill:var(--dt-danger-subtle,#fecaca)`,automated:`fill:var(--dt-success-subtle,#bbf7d0)`,manual:`fill:var(--dt-warning-subtle,#fde68a)`,person:`fill:var(--dt-accent-subtle,#ccfbf1)`,actor:`fill:var(--dt-accent-subtle,#ccfbf1)`,system:`fill:var(--dt-info-subtle,#bae6fd)`,infrastructure:`fill:var(--dt-bg-tertiary,#e2e8f0)`},ut={person:{open:`([`,close:`])`},actor:{open:`([`,close:`])`},database:{open:`[(`,close:`)]`},storage:{open:`[(`,close:`)]`},decision:{open:`{`,close:`}`},branch:{open:`{`,close:`}`},external:{open:`{{`,close:`}}`},system:{open:`{{`,close:`}}`},start:{open:`((`,close:`))`},end:{open:`((`,close:`))`}},dt={open:`[`,close:`]`};function ft(e){return ut[e]??dt}function A(e,t){return e.replace(/[^a-zA-Z0-9_]/g,`_`).replace(/^_+|_+$/g,``).replace(/_+/g,`_`)||(t===void 0?`node`:`node_${t}`)}function j(e){return e.replace(/"/g,`#quot;`).replace(/\[/g,`#91;`).replace(/\]/g,`#93;`).replace(/\(/g,`#40;`).replace(/\)/g,`#41;`).replace(/\{/g,`#123;`).replace(/\}/g,`#125;`).replace(/`/g,`#96;`).replace(/\n/g,` `).replace(/\r/g,``)}function M(t,n){let r=t.value;if(!r||typeof r!=`object`)return`<div class="bk-diagram"><p class="bk-diagram-empty">No diagram data</p></div>`;let i=t.type??`unknown`,a=i.startsWith(`architecture`)?`architecture`:i.startsWith(`workflow`)?`workflow`:i.startsWith(`sequence`)?`sequence`:i.startsWith(`dataflow`)?`dataflow`:i.startsWith(`lifecycle`)?`lifecycle`:String(r.diagram_type??`unknown`),o=r.meta,s=String(o?.title??`Diagram`),c=pt(r.components??r.nodes??r.participants??r.states??[]),l=pt(r.connections??r.edges??r.messages??r.flows??r.transitions??[]),u=[`graph TD`],d=new Set,f=new Map,p=0;for(let e of c){let t=A(String(e.id??e.label??e.name??`node`),p);if(p++,d.has(t))continue;d.add(t),f.set(t,e);let n=String(e.label??e.name??t),r=String(e.type??String(e.kind??``)),i=ct(r),a=e.technology?`<br><small>${j(String(e.technology))}</small>`:``,o=lt[r]??`fill:var(--dt-bg-secondary,#1e293b)`,s=ft(r),c=`${i} ${j(n)}`;u.push(` ${t}${s.open}"${c}${a}"${s.close}`),u.push(` style ${t} ${o}`)}for(let e of l){let t=String(e.from??e.source??``),n=String(e.to??e.target??``),r=A(t),i=A(n);if(!d.has(r)||!d.has(i))continue;let a=e.label?` -- "${j(String(e.label))}" --> `:` --> `;u.push(` ${r}${a}${i}`)}let m=d.size>0,h=u.join(`
|
|
1160
|
+
`),g=[`<dt>Type</dt><dd>${e(a)}</dd>`,`<dt>Components</dt><dd>${c.length}</dd>`,`<dt>Relationships</dt><dd>${l.length}</dd>`];r.schema_version!==void 0&&g.push(`<dt>Schema</dt><dd>v${String(r.schema_version)}</dd>`);let _=``;c.length>0&&(_=`<table><thead><tr><th>Component</th><th>Type</th></tr></thead><tbody>${c.slice(0,30).map(t=>{let n=String(t.label??t.name??`(unnamed)`),r=String(t.type??String(t.kind??`-`));return`<tr><td>${e(n)}</td><td>${e(r)}</td></tr>`}).join(``)}</tbody></table>${c.length>30?`<p class="bk-diagram-truncated">… and ${c.length-30} more</p>`:``}`);let v=``;return l.length>0&&(v=`<h4>Relationships</h4><ul>${l.slice(0,20).map(t=>{let n=String(t.from??t.source??`-`),r=String(t.to??t.target??`-`),i=t.label?`: ${e(String(t.label))}`:``;return`<li><strong>${e(n)}</strong> → <strong>${e(r)}</strong>${i}</li>`}).join(``)}</ul>${l.length>20?`<p class="bk-diagram-truncated">… and ${l.length-20} more relationships</p>`:``}`),m?`<div class="${`bk-diagram${m?` bk-diagram-has-viz`:``}`}">
|
|
1161
|
+
<pre class="bk-diagram-viz mermaid">${e(h)}</pre>
|
|
1162
|
+
<details class="bk-diagram-fallback">
|
|
1163
|
+
<summary>${e(s)} <small>(${a}, ${c.length} components)</small></summary>
|
|
1164
|
+
<div class="bk-diagram-content">
|
|
1165
|
+
<dl class="bk-diagram-meta">${g.join(``)}</dl>
|
|
1166
|
+
${_}
|
|
1167
|
+
${v}
|
|
1168
|
+
</div>
|
|
1169
|
+
</details>
|
|
1170
|
+
</div>`:`<div class="bk-diagram">
|
|
1171
|
+
<details open>
|
|
1172
|
+
<summary>${e(s)} <small>(${e(a)}, ${c.length} components)</small></summary>
|
|
1173
|
+
<div class="bk-diagram-content">
|
|
1174
|
+
<dl class="bk-diagram-meta">${g.join(``)}</dl>
|
|
1175
|
+
${_}
|
|
1176
|
+
${v}
|
|
1177
|
+
</div>
|
|
1178
|
+
</details>
|
|
1179
|
+
</div>`}function pt(e){return Array.isArray(e)?e:[]}var mt=`
|
|
1180
|
+
/* ── Diff Container ── */
|
|
1181
|
+
.bk-diff {
|
|
1182
|
+
overflow-x: auto;
|
|
1183
|
+
font-family: var(--dt-font-mono);
|
|
1184
|
+
font-size: var(--dt-font-size-sm);
|
|
1185
|
+
border: 1px solid var(--dt-border-default);
|
|
1186
|
+
border-radius: var(--dt-radius-lg);
|
|
1187
|
+
position: relative;
|
|
1188
|
+
}
|
|
1189
|
+
|
|
1190
|
+
/* ── Diff Toolbar (copy / expand) ── */
|
|
1191
|
+
.bk-diff-toolbar {
|
|
1192
|
+
display: flex;
|
|
1193
|
+
justify-content: flex-end;
|
|
1194
|
+
gap: var(--dt-space-1);
|
|
1195
|
+
padding: var(--dt-space-1) var(--dt-space-2);
|
|
1196
|
+
background: var(--dt-bg-secondary);
|
|
1197
|
+
border-bottom: 1px solid var(--dt-border-default);
|
|
1198
|
+
}
|
|
1199
|
+
|
|
1200
|
+
.bk-diff-btn {
|
|
1201
|
+
display: inline-flex;
|
|
1202
|
+
align-items: center;
|
|
1203
|
+
gap: 4px;
|
|
1204
|
+
padding: 2px 8px;
|
|
1205
|
+
font-size: var(--dt-font-size-xs);
|
|
1206
|
+
font-family: var(--dt-font-sans);
|
|
1207
|
+
color: var(--dt-text-tertiary);
|
|
1208
|
+
background: transparent;
|
|
1209
|
+
border: 1px solid var(--dt-border-muted);
|
|
1210
|
+
border-radius: var(--dt-radius-sm);
|
|
1211
|
+
cursor: pointer;
|
|
1212
|
+
transition: color var(--dt-transition-fast), border-color var(--dt-transition-fast);
|
|
1213
|
+
}
|
|
1214
|
+
|
|
1215
|
+
.bk-diff-btn:hover {
|
|
1216
|
+
color: var(--dt-text-primary);
|
|
1217
|
+
border-color: var(--dt-accent-muted);
|
|
1218
|
+
}
|
|
1219
|
+
|
|
1220
|
+
.bk-diff-btn:active {
|
|
1221
|
+
transform: scale(0.96);
|
|
1222
|
+
}
|
|
1223
|
+
|
|
1224
|
+
/* ── 44px touch targets on mobile ── */
|
|
1225
|
+
@media (max-width: 640px) {
|
|
1226
|
+
.bk-diff-btn {
|
|
1227
|
+
min-width: 2.75rem;
|
|
1228
|
+
min-height: 2.75rem;
|
|
1229
|
+
padding: var(--dt-space-1) var(--dt-space-3);
|
|
1230
|
+
justify-content: center;
|
|
1231
|
+
}
|
|
1232
|
+
}
|
|
1233
|
+
|
|
1234
|
+
@media (max-width: 320px) {
|
|
1235
|
+
.bk-diff {
|
|
1236
|
+
font-size: 0.75rem;
|
|
1237
|
+
}
|
|
1238
|
+
.bk-diff-line {
|
|
1239
|
+
padding: 0 8px;
|
|
1240
|
+
}
|
|
1241
|
+
.bk-diff-ln {
|
|
1242
|
+
min-width: 3ch;
|
|
1243
|
+
max-width: 3ch;
|
|
1244
|
+
padding: 0 4px;
|
|
1245
|
+
}
|
|
1246
|
+
}
|
|
1247
|
+
|
|
1248
|
+
.bk-diff-btn[data-copied="true"] {
|
|
1249
|
+
color: var(--dt-success-fg);
|
|
1250
|
+
border-color: var(--dt-success-muted);
|
|
1251
|
+
}
|
|
1252
|
+
|
|
1253
|
+
/* ── Diff Table ── */
|
|
1254
|
+
.bk-diff-table {
|
|
1255
|
+
width: 100%;
|
|
1256
|
+
border-collapse: collapse;
|
|
1257
|
+
}
|
|
1258
|
+
|
|
1259
|
+
/* ── Line Number Cells ── */
|
|
1260
|
+
.bk-diff-ln {
|
|
1261
|
+
color: var(--dt-text-tertiary);
|
|
1262
|
+
padding: 0 8px;
|
|
1263
|
+
text-align: right;
|
|
1264
|
+
user-select: none;
|
|
1265
|
+
width: 4ch;
|
|
1266
|
+
min-width: 4ch;
|
|
1267
|
+
max-width: 4ch;
|
|
1268
|
+
white-space: nowrap;
|
|
1269
|
+
border-right: 1px solid var(--dt-border-default);
|
|
1270
|
+
font-variant-numeric: tabular-nums;
|
|
1271
|
+
}
|
|
1272
|
+
|
|
1273
|
+
/* ── Content Cells ── */
|
|
1274
|
+
.bk-diff-line {
|
|
1275
|
+
padding: 0 12px;
|
|
1276
|
+
white-space: pre-wrap;
|
|
1277
|
+
word-break: break-all;
|
|
1278
|
+
}
|
|
1279
|
+
|
|
1280
|
+
/* ── Hunk Headers (@@ … @@) ── */
|
|
1281
|
+
.bk-diff-hunk td {
|
|
1282
|
+
background: var(--dt-info-subtle);
|
|
1283
|
+
color: var(--dt-info-fg);
|
|
1284
|
+
padding: 4px 12px;
|
|
1285
|
+
font-style: italic;
|
|
1286
|
+
}
|
|
1287
|
+
|
|
1288
|
+
/* ── Added Lines (+) ── */
|
|
1289
|
+
.bk-diff-add td {
|
|
1290
|
+
background: var(--dt-success-subtle);
|
|
1291
|
+
}
|
|
1292
|
+
|
|
1293
|
+
/* ── Removed Lines (-) ── */
|
|
1294
|
+
.bk-diff-del td {
|
|
1295
|
+
background: var(--dt-danger-subtle);
|
|
1296
|
+
}
|
|
1297
|
+
|
|
1298
|
+
/* ── Header Lines (--- / +++) ── */
|
|
1299
|
+
.bk-diff-header td {
|
|
1300
|
+
font-family: var(--dt-font-mono);
|
|
1301
|
+
color: var(--dt-accent-fg);
|
|
1302
|
+
padding: 4px 12px;
|
|
1303
|
+
background: var(--dt-bg-secondary);
|
|
1304
|
+
}
|
|
1305
|
+
|
|
1306
|
+
/* ── Inline Word-Level Highlights ── */
|
|
1307
|
+
.bk-diff-word-del {
|
|
1308
|
+
background: var(--dt-danger-subtle);
|
|
1309
|
+
text-decoration: line-through;
|
|
1310
|
+
border-radius: 2px;
|
|
1311
|
+
padding: 0 1px;
|
|
1312
|
+
}
|
|
1313
|
+
|
|
1314
|
+
.bk-diff-word-add {
|
|
1315
|
+
background: var(--dt-success-subtle);
|
|
1316
|
+
border-radius: 2px;
|
|
1317
|
+
padding: 0 1px;
|
|
1318
|
+
}
|
|
1319
|
+
|
|
1320
|
+
/* ── Expand/Collapse ── */
|
|
1321
|
+
.bk-diff-body {
|
|
1322
|
+
transition: max-height 300ms ease;
|
|
1323
|
+
overflow: hidden;
|
|
1324
|
+
}
|
|
1325
|
+
|
|
1326
|
+
.bk-diff-body[data-collapsed="true"] {
|
|
1327
|
+
max-height: 480px;
|
|
1328
|
+
position: relative;
|
|
1329
|
+
}
|
|
1330
|
+
|
|
1331
|
+
.bk-diff-body[data-collapsed="true"]::after {
|
|
1332
|
+
content: '';
|
|
1333
|
+
position: absolute;
|
|
1334
|
+
bottom: 0;
|
|
1335
|
+
left: 0;
|
|
1336
|
+
right: 0;
|
|
1337
|
+
height: 48px;
|
|
1338
|
+
background: linear-gradient(transparent, var(--dt-bg-canvas));
|
|
1339
|
+
pointer-events: none;
|
|
1340
|
+
}
|
|
1341
|
+
|
|
1342
|
+
.bk-diff-body[data-expanded="true"] {
|
|
1343
|
+
max-height: none;
|
|
1344
|
+
}
|
|
1345
|
+
`;function ht(e){if(typeof e==`string`)return e;if(e&&typeof e==`object`){let t=e;if(typeof t.content==`string`)return t.content;if(typeof t.before==`string`&&typeof t.after==`string`)return gt(t.before,t.after)}return``}function gt(e,t){let n=e.split(`
|
|
756
1346
|
`),r=t.split(`
|
|
757
|
-
`),i=[
|
|
758
|
-
`)}function
|
|
759
|
-
`),a=0,o=0,s=[];for(let t of i)if(t.startsWith(`@@`)){let n=t.match(/@@ -(\d+)/);if(n){a=parseInt(n[1],10)-1;let e=t.match(
|
|
1347
|
+
`),i=[`--- a/previous`,`+++ a/current`];for(let e of n)i.push(`-${e}`);for(let e of r)i.push(`+${e}`);return i.join(`
|
|
1348
|
+
`)}function _t(t,n){let r=t.slice(1),i=n.slice(1);if(r===i)return{oldHtml:e(t),newHtml:e(n)};let a=0;for(;a<r.length&&a<i.length&&r[a]===i[a];)a++;let o=0,s=r.length-a,c=i.length-a;for(;o<s&&o<c&&r[r.length-1-o]===i[i.length-1-o];)o++;let l=e(r.slice(0,a)),u=e(r.slice(a,r.length-o)),d=e(i.slice(a,i.length-o)),f=e(r.slice(r.length-o));return{oldHtml:u.length>0?`-${l}<span class="bk-diff-word-del">${u}</span>${f}`:`-${l}${f}`,newHtml:d.length>0?`+${l}<span class="bk-diff-word-add">${d}</span>${f}`:`+${l}${f}`}}function vt(t,n){let r=ht(t.value);if(!r)return`<div class="bk-diff"></div>`;let i=r.split(`
|
|
1349
|
+
`),a=0,o=0,s=[],c=[];function l(){for(let t of c)s.push(`<tr class="bk-diff-del"><td class="bk-diff-ln">${t.oldLnVal}</td><td class="bk-diff-ln"></td><td class="bk-diff-line">${e(t.line)}</td></tr>`);c.length=0}for(let t of i)if(t.startsWith(`@@`)){l();let n=t.match(/@@ -(\d+)/);if(n){a=parseInt(n[1],10)-1;let e=t.match(/\+\s*(\d+)/);o=e?parseInt(e[1],10)-1:0}s.push(`<tr class="bk-diff-hunk"><td colspan="3">${e(t)}</td></tr>`)}else if(t.startsWith(`---`)||t.startsWith(`+++`))l(),s.push(`<tr class="bk-diff-header"><td colspan="3">${e(t)}</td></tr>`);else if(t.startsWith(`+`))if(c.length>0){let e=c.shift();o++;let{oldHtml:n,newHtml:r}=_t(e.line,t);s.push(`<tr class="bk-diff-del"><td class="bk-diff-ln">${e.oldLnVal}</td><td class="bk-diff-ln"></td><td class="bk-diff-line">${n}</td></tr>`),s.push(`<tr class="bk-diff-add"><td class="bk-diff-ln"></td><td class="bk-diff-ln">${o}</td><td class="bk-diff-line">${r}</td></tr>`)}else o++,s.push(`<tr class="bk-diff-add"><td class="bk-diff-ln"></td><td class="bk-diff-ln">${o}</td><td class="bk-diff-line">${e(t)}</td></tr>`);else if(t.startsWith(`-`))a++,c.push({line:t,oldLnVal:a});else{l(),a++,o++;let n=t.startsWith(` `)?t:` ${t}`;s.push(`<tr class="bk-diff-context"><td class="bk-diff-ln">${a}</td><td class="bk-diff-ln">${o}</td><td class="bk-diff-line">${e(n)}</td></tr>`)}l();let u=i.length>25;return`<div class="bk-diff">${`<div class="bk-diff-toolbar">${u?`<button class="bk-diff-btn bk-diff-expand" data-expand-text="▼ Expand" data-collapse-text="▲ Collapse">▼ Expand</button>`:``}${`<button class="bk-diff-btn bk-diff-copy" data-diff="${encodeURIComponent(r)}">\uD83D\uDCCB Copy</button>`}</div>`}<script>(function(){var c=document.currentScript;if(!c)return;var d=c.parentElement;if(!d)return;var b=d.querySelector('.bk-diff-body');if(!b)return;var e=d.querySelector('.bk-diff-expand');if(e){e.addEventListener('click',function(){var l=b.dataset.collapsed==='true';b.dataset.collapsed=l?'false':'true';b.dataset.expanded=l?'true':'false';e.textContent=l?e.dataset.collapseText:e.dataset.expandText;})}var p=d.querySelector('.bk-diff-copy');if(p&&navigator.clipboard){p.addEventListener('click',function(){navigator.clipboard.writeText(decodeURIComponent(p.dataset.diff)).then(function(){p.dataset.copied='true';setTimeout(function(){delete p.dataset.copied},2000)})})}})();<\/script><div class="bk-diff-body"${u?` data-collapsed="true"`:``}><table class="bk-diff-table">${s.join(``)}</table></div></div>`}function yt(e){let t=i(e);return Array.isArray(t)?t:t&&typeof t==`object`&&Array.isArray(t.files)?t.files:[]}var bt=`
|
|
760
1350
|
.bk-docs-browser {
|
|
761
1351
|
display: grid;
|
|
762
1352
|
gap: var(--dt-space-3);
|
|
@@ -801,7 +1391,7 @@
|
|
|
801
1391
|
font-size: var(--dt-font-size-xs);
|
|
802
1392
|
font-weight: 700;
|
|
803
1393
|
}
|
|
804
|
-
`;function
|
|
1394
|
+
`;function xt(t,n){return`<div class="bk-docs-browser">${yt(t.value).map(t=>{let n=c(t.status),r=t.title?`<div class="bk-doc-title">${e(t.title)}</div>`:``,i=t.content?`<pre class="bk-doc-content">${e(t.content)}</pre>`:``;return`<article class="bk-doc-entry"><div class="bk-doc-header"><div>${r}<div class="bk-doc-path">${e(t.path)}</div></div><span class="bk-doc-status" style="background:var(--dt-${n}-subtle);color:var(--dt-${n}-fg);">${e(t.status??`current`)}</span></div>${i}</article>`}).join(``)}</div>`}function St(e){let t=i(e);if(t&&typeof t==`object`){let e=t;return{title:typeof e.title==`string`?e.title:void 0,description:typeof e.description==`string`?e.description:void 0,pages:Array.isArray(e.pages)?e.pages:[]}}return{pages:[]}}function Ct(e){switch(e){case`draft`:return`warning`;case`deprecated`:return`danger`;default:return`accent`}}function wt(n){let r=n.href?`a`:`article`,i=n.href?` href="${t(n.href)}"`:``,a=n.icon?`<span class="bk-docs-hub-card-icon" aria-hidden="true">${e(n.icon)}</span>`:``,o=n.description?`<p class="bk-docs-hub-card-description">${e(n.description)}</p>`:``,s=n.category?`<span class="bk-docs-hub-card-category">${e(n.category)}</span>`:``,c=n.status?`<span class="bk-docs-hub-card-status" data-tone="${Ct(n.status)}"><span class="bk-docs-hub-card-status-dot" aria-hidden="true"></span>${e(n.status)}</span>`:``;return`<${r} class="bk-docs-hub-card"${i}><div class="bk-docs-hub-card-head">${a}<div class="bk-docs-hub-card-copy"><div class="bk-docs-hub-card-title">${e(n.title)}</div>${o}</div></div><div class="bk-docs-hub-card-meta">${s}${c}</div></${r}>`}var Tt=`
|
|
805
1395
|
.bk-docs-hub {
|
|
806
1396
|
display: grid;
|
|
807
1397
|
gap: var(--dt-space-4);
|
|
@@ -937,7 +1527,7 @@
|
|
|
937
1527
|
grid-template-columns: minmax(0, 1fr);
|
|
938
1528
|
}
|
|
939
1529
|
}
|
|
940
|
-
`;function
|
|
1530
|
+
`;function Et(t,n){let r=St(t.value),i=r.title?`<h4 class="bk-docs-hub-title">${e(r.title)}</h4>`:``,a=r.description?`<p class="bk-docs-hub-description">${e(r.description)}</p>`:``,o=Array.isArray(r.pages)?r.pages:[];return`<section class="bk-docs-hub"><div class="bk-docs-hub-header">${i}${a}</div>${o.length>0?`<div class="bk-docs-hub-grid">${o.map(e=>wt(e)).join(``)}</div>`:`<p class="bk-docs-hub-empty">No documentation pages available.</p>`}</section>`}function Dt(e){let t=i(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}}var Ot=`
|
|
941
1531
|
.bk-finding {
|
|
942
1532
|
display: grid;
|
|
943
1533
|
gap: var(--dt-space-3);
|
|
@@ -984,7 +1574,7 @@
|
|
|
984
1574
|
line-height: 1.7;
|
|
985
1575
|
font-size: var(--dt-font-size-sm);
|
|
986
1576
|
}
|
|
987
|
-
`;function
|
|
1577
|
+
`;function kt(t,n){let r=Dt(t),i=c(r.severity),o=r.detail===void 0?``:a(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">${e(r.title)}</div><span class="bk-finding-severity" style="background:var(--dt-${i}-subtle);color:var(--dt-${i}-fg);">${e(r.severity??`info`)}</span></div><div class="bk-finding-detail">${o}</div></article>`}function At(e){return typeof e==`object`&&!!e}function N(e){return At(e)?{name:typeof e.name==`string`?e.name:``,total:typeof e.total==`number`?e.total:0,self:typeof e.self==`number`?e.self:void 0,children:Array.isArray(e.children)?e.children.map(N).filter(e=>e!==null):[]}:null}function jt(e){let t=[],n=[{node:e,depth:0}];for(;n.length>0;){let e=n.shift();if(!e)continue;let{node:r,depth:i}=e;t[i]||(t[i]=[]),t[i].push(r);for(let e of r.children??[])n.push({node:e,depth:i+1})}return t}function Mt(e){let t=[`#e24d28`,`#e8602a`,`#edad2a`,`#f5c842`,`#fce94f`,`#c4a000`,`#e07028`,`#d45500`];return t[e%t.length]}var Nt=`
|
|
988
1578
|
.bk-flame {
|
|
989
1579
|
display: grid;
|
|
990
1580
|
gap: 1px;
|
|
@@ -1029,10 +1619,10 @@
|
|
|
1029
1619
|
font-size: 10px;
|
|
1030
1620
|
}
|
|
1031
1621
|
}
|
|
1032
|
-
`;function
|
|
1622
|
+
`;function Pt(t,n){let r=i(t.value);if(!At(r))return`<div class="bk-flame"></div>`;let a=At(r.profile)?N(r.profile):N(r);if(!a)return`<div class="bk-flame"></div>`;let o=jt(a),s=Math.max(a.total,1);return`<div class="bk-flame">${o.map((t,n)=>`<div class="bk-flame-row">${t.map(t=>{let r=Math.max(.5,t.total/s*100),i=r<8?` bk-flame-bar-label--muted`:``,a=(t.children?.length??0)>0,o=t.self===void 0?`${e(t.name)}: ${t.total}`:`${e(t.name)}: ${t.total} (self: ${t.self})`;return`<div class="bk-flame-bar" style="width:${r}%;background:${Mt(n)}" title="${o}" data-has-children="${a}">
|
|
1033
1623
|
<span class="bk-flame-bar-label${i}">${e(t.name)} (${t.total})</span>
|
|
1034
1624
|
</div>`}).join(``)}</div>`).join(`
|
|
1035
|
-
`)}</div>`}function
|
|
1625
|
+
`)}</div>`}function Ft(e){return String(e??``).replace(/"/g,`\\"`)}var It=`
|
|
1036
1626
|
.bk-graph {
|
|
1037
1627
|
margin: 0;
|
|
1038
1628
|
padding: var(--dt-space-4);
|
|
@@ -1045,8 +1635,8 @@
|
|
|
1045
1635
|
font-size: var(--dt-font-size-sm);
|
|
1046
1636
|
line-height: 1.6;
|
|
1047
1637
|
}
|
|
1048
|
-
`;function
|
|
1049
|
-
`))}</pre>`}var
|
|
1638
|
+
`;function Lt(t,r){let a=i(t.value),o=[`graph ${[`TD`,`LR`,`RL`,`BT`].includes(String(t.direction??`TD`))?String(t.direction??`TD`):`TD`}`];for(let e of a?.nodes??[]){let t=n(String(e.id??e.name??`node`)),r=Ft(e.label??e.name??t);o.push(` ${t}["${r}"]`)}for(let e of a?.edges??[]){let t=n(String(e.from??e.source??`from`)),r=n(String(e.to??e.target??`to`)),i=e.label?`|${Ft(e.label)}|`:``;o.push(` ${t} -->${i} ${r}`)}return`<pre class="bk-graph mermaid">${e(o.join(`
|
|
1639
|
+
`))}</pre>`}var Rt=`
|
|
1050
1640
|
.bk-heading {
|
|
1051
1641
|
margin: 0;
|
|
1052
1642
|
color: var(--dt-text-primary);
|
|
@@ -1061,7 +1651,7 @@
|
|
|
1061
1651
|
.bk-heading--4 { font-size: var(--dt-font-size-xl); }
|
|
1062
1652
|
.bk-heading--5,
|
|
1063
1653
|
.bk-heading--6 { font-size: var(--dt-font-size-base); letter-spacing: normal; }
|
|
1064
|
-
`;function
|
|
1654
|
+
`;function zt(t,n){let r=Number(t.level??2),i=Number.isFinite(r)?Math.max(1,Math.min(r,6)):2;return`<h${i} class="bk-heading bk-heading--${i}">${e(String(t.value??t.title??``))}</h${i}>`}function Bt(e){return Array.isArray(e)?e.flatMap(e=>{if(!e||typeof e!=`object`)return[];let t=e;return[{key:r(t.key),value:r(t.value)}]}):e&&typeof e==`object`?Object.entries(e).map(([e,t])=>({key:e,value:r(t)})):[]}var Vt=`
|
|
1065
1655
|
.bk-kv {
|
|
1066
1656
|
display: grid;
|
|
1067
1657
|
grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr));
|
|
@@ -1093,7 +1683,7 @@
|
|
|
1093
1683
|
font-size: var(--dt-font-size-sm);
|
|
1094
1684
|
line-height: 1.5;
|
|
1095
1685
|
}
|
|
1096
|
-
`;function
|
|
1686
|
+
`;function Ht(e,t){return`<dl class="bk-kv">${Bt(e.value).map(e=>`<div class="bk-kv-entry"><dt class="bk-kv-key">${a(e.key)}</dt><dd class="bk-kv-value">${a(e.value)}</dd></div>`).join(``)}</dl>`}var Ut=164,Wt=84,Gt=44,Kt=32,qt=28;function Jt(e){let t=i(e);if(t&&typeof t==`object`){let e=t;return{title:typeof e.title==`string`?e.title:void 0,steps:Array.isArray(e.steps)?e.steps:[],edges:Array.isArray(e.edges)?e.edges:[]}}return{steps:[],edges:[]}}function Yt(e){switch(e){case`completed`:return`success`;case`error`:return`danger`;case`pending`:return`slate`;default:return`accent`}}function Xt(e,t){let n=e.trim().split(/\s+/).filter(Boolean);if(n.length===0)return[``];let r=[],i=``;for(let e of n){let n=i?`${i} ${e}`:e;if(n.length<=t||i.length===0){i=n;continue}if(r.push(i),i=e,r.length===1)break}return i&&r.push(i),r.length>2?r.slice(0,2):(r.length===2&&n.join(` `).length>r[0].length+r[1].length&&(r[1]=`${r[1].slice(0,Math.max(0,t-1))}…`),r)}function Zt(e){return e.type===`decision`?{width:112,height:112}:{width:Ut,height:Wt}}function Qt(e){let t=Kt;return e.map(e=>{let{width:n,height:r}=Zt(e),i={step:e,x:t,y:qt,width:n,height:r,centerX:t+n/2,centerY:qt+r/2};return t+=n+Gt,i})}function $t(t){let r=Xt(t.step.label,t.step.type===`decision`?12:16),i=t.step.description?Xt(t.step.description,t.step.type===`decision`?12:18).slice(0,1):[],a=t.centerY-(r.length+i.length-1)*18/2,o=[...r.map((n,r)=>`<text class="bk-lifecycle-flow-label" x="${t.centerX}" y="${a+r*18}">${e(n)}</text>`),...i.map((n,i)=>`<text class="bk-lifecycle-flow-description" x="${t.centerX}" y="${a+(r.length+i)*18}">${e(n)}</text>`)].join(``),s=`<rect class="bk-lifecycle-flow-shape" x="${t.x}" y="${t.y}" width="${t.width}" height="${t.height}" rx="18" ry="18" />`;t.step.type===`start`||t.step.type===`end`?s=`<rect class="bk-lifecycle-flow-shape" x="${t.x}" y="${t.y}" width="${t.width}" height="${t.height}" rx="40" ry="40" />`:t.step.type===`decision`&&(s=`<polygon class="bk-lifecycle-flow-shape" points="${`${t.centerX},${t.y}`} ${`${t.x+t.width},${t.centerY}`} ${`${t.centerX},${t.y+t.height}`} ${`${t.x},${t.centerY}`}" />`);let c=t.step.type===`parallel`?`<g class="bk-lifecycle-flow-parallel-mark"><line x1="${t.x+18}" y1="${t.y+18}" x2="${t.x+18}" y2="${t.y+t.height-18}" /><line x1="${t.x+t.width-18}" y1="${t.y+18}" x2="${t.x+t.width-18}" y2="${t.y+t.height-18}" /></g>`:``;return`<g class="bk-lifecycle-flow-node bk-lifecycle-flow-node--${t.step.type??`step`} bk-lifecycle-flow-node--${Yt(t.step.status)}" id="${n(t.step.id)}">${s}${c}${o}</g>`}function en(t,n){let r=n.get(t.from),i=n.get(t.to);if(!r||!i)return``;let a=r.x+r.width,o=r.centerY,s=i.x,c=i.centerY,l=Math.round((a+s)/2);return`${`<path class="bk-lifecycle-flow-edge" d="M ${a} ${o} C ${l} ${o} ${l} ${c} ${s} ${c}" marker-end="url(#bk-lifecycle-flow-arrow)" />`}${t.label?`<text class="bk-lifecycle-flow-edge-label" x="${l}" y="${Math.min(o,c)-12}">${e(t.label)}</text>`:``}`}function tn(e,t){return Array.isArray(t)&&t.length>0?t:e.slice(1).map((t,n)=>({from:e[n].id,to:t.id}))}var nn=`
|
|
1097
1687
|
.bk-lifecycle-flow {
|
|
1098
1688
|
display: grid;
|
|
1099
1689
|
gap: var(--dt-space-3);
|
|
@@ -1187,7 +1777,7 @@
|
|
|
1187
1777
|
.bk-lifecycle-flow-node--slate {
|
|
1188
1778
|
color: var(--dt-text-secondary);
|
|
1189
1779
|
}
|
|
1190
|
-
`;function
|
|
1780
|
+
`;function rn(t,n){let r=Jt(t.value),i=Array.isArray(r.steps)?r.steps.filter(e=>e?.id):[];if(i.length===0)return`<div class="bk-lifecycle-flow"><p class="bk-docs-hub-empty">No lifecycle steps available.</p></div>`;let a=Qt(i),o=new Map(a.map(e=>[e.step.id,e])),s=tn(i,r.edges),c=Math.max(320,(a.at(-1)?.x??0)+(a.at(-1)?.width??0)+Kt);return`<figure class="bk-lifecycle-flow">${r.title?`<figcaption class="bk-lifecycle-flow-title">${e(r.title)}</figcaption>`:``}<div class="bk-lifecycle-flow-frame"><svg class="bk-lifecycle-flow-svg" viewBox="0 0 ${c} 172" role="img" aria-label="${e(r.title??`Lifecycle flow`)}"><defs><marker id="bk-lifecycle-flow-arrow" markerWidth="10" markerHeight="10" refX="9" refY="5" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" fill="var(--dt-border-default)" /></marker></defs><g class="bk-lifecycle-flow-edges">${s.map(e=>en(e,o)).join(``)}</g><g class="bk-lifecycle-flow-nodes">${a.map(e=>$t(e)).join(``)}</g></svg></div></figure>`}var an=`
|
|
1191
1781
|
.bk-list {
|
|
1192
1782
|
display: grid;
|
|
1193
1783
|
gap: var(--dt-space-2);
|
|
@@ -1216,16 +1806,16 @@
|
|
|
1216
1806
|
box-shadow: 0 0 0 3px var(--dt-accent-subtle);
|
|
1217
1807
|
transform: translateY(-50%);
|
|
1218
1808
|
}
|
|
1219
|
-
`;function
|
|
1220
|
-
${
|
|
1809
|
+
`;function on(e,t){return`<ul class="bk-list">${(Array.isArray(e.value)?e.value:[]).map(e=>`<li class="bk-list-item">${a(String(e??``))}</li>`).join(``)}</ul>`}var sn=`
|
|
1810
|
+
${Rt}
|
|
1221
1811
|
.bk-markdown {
|
|
1222
1812
|
color: var(--dt-text-primary);
|
|
1223
1813
|
font-size: var(--dt-font-size-base);
|
|
1224
1814
|
line-height: 1.7;
|
|
1225
1815
|
}
|
|
1226
|
-
`,
|
|
1227
|
-
`))}</code></pre>`),o=!1,s=[],c=``}continue}if(o){s.push(t);continue}if(!n){l();continue}let r=n.match(
|
|
1228
|
-
`))}</code></pre>`)}return`<div class="bk-markdown">${i.join(``)}</div>`}var
|
|
1816
|
+
`,cn=/^(#{1,6})\s+(.+)$/,ln=/^(?:(?:-\s*){3,}|(?:\*\s*){3,}|(?:_\s*){3,})$/;function un(e){return e.length?`<p>${e.map(e=>a(e)).join(`<br>`)}</p>`:``}function dn(t,n){let r=String(t.value??``);if(r.trimStart().startsWith(`<`))return`<div class="bk-markdown">${r}</div>`;let i=[],a=[],o=!1,s=[],c=``,l=()=>{let e=un(a);e&&(i.push(e),a.length=0)};for(let t of r.split(/\r?\n/)){let n=t.trim();if(n.startsWith("```")){if(!o)l(),o=!0,c=n.slice(3).trim(),s=[];else{let t=c?` class="${e(c)}"`:``,n=s.join(`
|
|
1817
|
+
`),r=(c?Le(n,c):``)||e(n);i.push(`<pre class="bk-code"><code${t}>${r}</code></pre>`),o=!1,s=[],c=``}continue}if(o){s.push(t);continue}if(!n){l();continue}let r=n.match(cn);if(r){l();let[,t,n]=r,a=t.length;i.push(`<h${a} class="bk-heading bk-heading--${a}">${e(n)}</h${a}>`);continue}if(ln.test(n)){l(),i.push(`<hr>`);continue}a.push(t)}if(l(),o&&s.length>0){let t=c?` class="${e(c)}"`:``,n=s.join(`
|
|
1818
|
+
`),r=(c?Le(n,c):``)||e(n);i.push(`<pre class="bk-code"><code${t}>${r}</code></pre>`)}return`<div class="bk-markdown">${i.join(``)}</div>`}var fn=`
|
|
1229
1819
|
.bk-mermaid {
|
|
1230
1820
|
margin: 0;
|
|
1231
1821
|
padding: var(--dt-space-4);
|
|
@@ -1254,7 +1844,20 @@ ${bt}
|
|
|
1254
1844
|
max-width: 100%;
|
|
1255
1845
|
height: auto;
|
|
1256
1846
|
}
|
|
1257
|
-
|
|
1847
|
+
|
|
1848
|
+
@media (max-width: 480px) {
|
|
1849
|
+
.bk-mermaid {
|
|
1850
|
+
padding: var(--dt-space-3);
|
|
1851
|
+
}
|
|
1852
|
+
}
|
|
1853
|
+
|
|
1854
|
+
@media (max-width: 320px) {
|
|
1855
|
+
.bk-mermaid {
|
|
1856
|
+
padding: var(--dt-space-2);
|
|
1857
|
+
font-size: 0.75rem;
|
|
1858
|
+
}
|
|
1859
|
+
}
|
|
1860
|
+
`;function pn(t,n){return`<pre class="bk-mermaid mermaid">${e(String(t.value??``))}</pre>`}function mn(t){if(t==null||t===``)return``;let n=r(t);if(/^[↑↓→]/.test(n))return`<span class="bk-metric-trend">${e(n)}</span>`;let i=Number(String(t).replace(/[^0-9.-]/g,``));return`<span class="bk-metric-trend">${Number.isNaN(i)?``:i>0?`↑ `:i<0?`↓ `:`→ `}${e(n)}</span>`}var hn=`
|
|
1258
1861
|
.bk-metrics {
|
|
1259
1862
|
display: grid;
|
|
1260
1863
|
grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr));
|
|
@@ -1270,6 +1873,8 @@ ${bt}
|
|
|
1270
1873
|
background: var(--dt-bg-secondary);
|
|
1271
1874
|
box-shadow: var(--dt-shadow-sm);
|
|
1272
1875
|
transition: transform var(--dt-transition-normal), box-shadow var(--dt-transition-normal), border-color var(--dt-transition-normal);
|
|
1876
|
+
animation: aikit-enter-fade 400ms cubic-bezier(0.16, 1, 0.3, 1) both;
|
|
1877
|
+
animation-delay: calc(var(--i, 0) * 80ms);
|
|
1273
1878
|
}
|
|
1274
1879
|
|
|
1275
1880
|
.bk-metric:hover {
|
|
@@ -1297,14 +1902,45 @@ ${bt}
|
|
|
1297
1902
|
color: var(--dt-text-tertiary);
|
|
1298
1903
|
font-size: var(--dt-font-size-sm);
|
|
1299
1904
|
}
|
|
1300
|
-
|
|
1905
|
+
|
|
1906
|
+
/* ── Compact metrics on mobile ── */
|
|
1907
|
+
@media (max-width: 480px) {
|
|
1908
|
+
.bk-metrics {
|
|
1909
|
+
gap: var(--dt-space-3);
|
|
1910
|
+
}
|
|
1911
|
+
.bk-metric {
|
|
1912
|
+
padding: var(--dt-space-4);
|
|
1913
|
+
}
|
|
1914
|
+
.bk-metric-value {
|
|
1915
|
+
font-size: var(--dt-font-size-2xl);
|
|
1916
|
+
}
|
|
1917
|
+
}
|
|
1918
|
+
|
|
1919
|
+
@media (max-width: 320px) {
|
|
1920
|
+
.bk-metric {
|
|
1921
|
+
padding: var(--dt-space-3);
|
|
1922
|
+
}
|
|
1923
|
+
.bk-metric-value {
|
|
1924
|
+
font-size: var(--dt-font-size-xl);
|
|
1925
|
+
}
|
|
1926
|
+
}
|
|
1927
|
+
`;function gn(t,n){return`<div class="bk-metrics">${l(t).map((t,n)=>`<article class="bk-metric" data-tone="${c(t.status)}" style="--i: ${n}"><div class="bk-metric-label">${e(t.label)}</div><div class="bk-metric-value">${e(r(t.value))}</div>${mn(t.trend)}</article>`).join(``)}</div>`}var _n=`
|
|
1301
1928
|
.bk-paragraph {
|
|
1302
1929
|
margin: 0;
|
|
1303
1930
|
color: var(--dt-text-primary);
|
|
1304
1931
|
font-size: var(--dt-font-size-base);
|
|
1305
1932
|
line-height: 1.7;
|
|
1306
1933
|
}
|
|
1307
|
-
`;function
|
|
1934
|
+
`;function vn(t,n){return`<p class="bk-paragraph">${e(String(t.value??t.text??``))}</p>`}function yn(e){let t=i(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[]}var bn=`
|
|
1935
|
+
@keyframes glow-pulse {
|
|
1936
|
+
0%, 100% {
|
|
1937
|
+
box-shadow: inset 0 1px 0 rgba(255,255,255,0.15), 0 0 12px var(--bar-glow);
|
|
1938
|
+
}
|
|
1939
|
+
50% {
|
|
1940
|
+
box-shadow: inset 0 1px 0 rgba(255,255,255,0.15), 0 0 22px var(--bar-glow);
|
|
1941
|
+
}
|
|
1942
|
+
}
|
|
1943
|
+
|
|
1308
1944
|
.bk-progress {
|
|
1309
1945
|
display: grid;
|
|
1310
1946
|
gap: var(--dt-space-4);
|
|
@@ -1338,10 +1974,18 @@ ${bt}
|
|
|
1338
1974
|
min-width: 0;
|
|
1339
1975
|
border-radius: inherit;
|
|
1340
1976
|
background: var(--dt-accent-emphasis);
|
|
1341
|
-
box-shadow: inset 0 1px 0 rgba(255,
|
|
1342
|
-
|
|
1977
|
+
box-shadow: inset 0 1px 0 rgba(255,255,255,0.15), 0 0 12px var(--bar-glow, transparent);
|
|
1978
|
+
animation:
|
|
1979
|
+
aikit-progress-fill 800ms cubic-bezier(0.16,1,0.3,1) forwards,
|
|
1980
|
+
glow-pulse 2s ease-in-out infinite;
|
|
1981
|
+
animation-delay: calc(var(--i, 0) * 100ms), calc(var(--i, 0) * 100ms + 800ms);
|
|
1982
|
+
}
|
|
1983
|
+
|
|
1984
|
+
/* Cap at 10 items to avoid excessive delays */
|
|
1985
|
+
.bk-progress-item:nth-child(n+11) .bk-progress-bar {
|
|
1986
|
+
animation-delay: 0ms, 800ms;
|
|
1343
1987
|
}
|
|
1344
|
-
`;function
|
|
1988
|
+
`;function xn(t,n){return`<div class="bk-progress">${yn(t.value).map((t,n)=>{let r=Math.max(1,Number(t.max)||100),i=Math.max(0,Number(t.value)||0),a=Math.round(Math.min(i/r*100,100)),o=c(t.color);return`<div class="bk-progress-item" style="--i: ${n}"><div class="bk-progress-meta"><span>${e(t.label)}</span><span>${a}%</span></div><div class="bk-progress-track"><span class="bk-progress-bar" role="progressbar" aria-valuenow="${i}" aria-valuemin="0" aria-valuemax="${r}" aria-label="${e(t.label)}" style="width:${a}%;background:var(--dt-${o}-emphasis);--bar-glow:var(--dt-glow-${o});"></span></div></div>`}).join(``)}</div>`}function Sn(e){if(typeof e==`string`)return e;try{return JSON.stringify(e,null,2)}catch{return String(e??``)}}var Cn=`
|
|
1345
1989
|
.bk-prompt {
|
|
1346
1990
|
margin: 0;
|
|
1347
1991
|
padding: var(--dt-space-4);
|
|
@@ -1355,13 +1999,13 @@ ${bt}
|
|
|
1355
1999
|
line-height: 1.6;
|
|
1356
2000
|
white-space: pre-wrap;
|
|
1357
2001
|
}
|
|
1358
|
-
`;function
|
|
2002
|
+
`;function wn(t,n){return`<pre class="bk-prompt">${e(Sn(t.value))}</pre>`}var Tn=`
|
|
1359
2003
|
.bk-separator {
|
|
1360
2004
|
margin: var(--dt-space-6) 0;
|
|
1361
2005
|
border: 0;
|
|
1362
2006
|
border-top: 1px solid var(--dt-border-default);
|
|
1363
2007
|
}
|
|
1364
|
-
`;function
|
|
2008
|
+
`;function En(e,t){return`<hr class="bk-separator">`}function Dn(e){let t=i(e);return Array.isArray(t)?t:t&&typeof t==`object`&&Array.isArray(t.items)?t.items:[]}var On=`
|
|
1365
2009
|
.bk-status-board {
|
|
1366
2010
|
display: grid;
|
|
1367
2011
|
gap: var(--dt-space-4);
|
|
@@ -1419,13 +2063,23 @@ ${bt}
|
|
|
1419
2063
|
.bk-status-description {
|
|
1420
2064
|
color: var(--dt-text-secondary);
|
|
1421
2065
|
}
|
|
1422
|
-
`;function
|
|
2066
|
+
`;function kn(t,n){return`<div class="bk-status-board">${Dn(t.value).map(t=>{let n=t.items.map(t=>{let n=c(t.status),r=t.description?`<div class="bk-status-description">${e(t.description)}</div>`:``;return`<div class="bk-status-item"><span class="bk-status-pill" style="background:var(--dt-${n}-subtle);color:var(--dt-${n}-fg);">${e(t.status??`pending`)}</span><div class="bk-status-copy"><div class="bk-status-label">${e(t.label??t.name??``)}</div>${r}</div></div>`}).join(``);return`<section class="bk-status-category"><div class="bk-status-category-title">${e(t.category)}</div><div class="bk-status-items">${n}</div></section>`}).join(``)}</div>`}function An(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function jn(e){let t=(e??[]).map(e=>{if(An(e)){let t=typeof e.key==`string`?e.key:String(e.label??``);return{key:t,label:typeof e.label==`string`?e.label:t}}let t=String(e);return{key:t,label:t}});return{headers:t.map(e=>e.label),keys:t.map(e=>e.key)}}function Mn(e){if(Array.isArray(e.columns)){let{headers:t,keys:n}=jn(e.columns),r=Array.isArray(e.rows)?e.rows:[];return r.length>0&&Array.isArray(r[0])?{headers:t,keys:n,rows:r.map(e=>Object.fromEntries(n.map((t,n)=>[t,e[n]??``])))}:r.length>0&&typeof r[0]==`object`&&r[0]!==null?{headers:t,keys:n,rows:r}:{headers:t,keys:n,rows:[]}}let t=i(e.value);if(Array.isArray(t)){if(t.length>0&&typeof t[0]==`object`&&t[0]!==null&&!Array.isArray(t[0])){let n=t,r=Array.isArray(e.headers)?e.headers.map(String):Object.keys(n[0]??{});return{headers:r,keys:r,rows:n}}if(t.length>0&&Array.isArray(t[0])){let[n,...r]=t,i=Array.isArray(e.headers)?e.headers.map(String):n.map(String);return{headers:i,keys:i,rows:r.map(e=>Object.fromEntries(i.map((t,n)=>[t,e[n]])))}}}if(t&&typeof t==`object`){let n=Array.isArray(e.headers)?e.headers.map(String):Array.isArray(t.headers)?t.headers.map(String):[],r=Array.isArray(t.rows)?t.rows:[];if(r.length>0&&Array.isArray(r[0]))return{headers:n,keys:n,rows:r.map(e=>Object.fromEntries(n.map((t,n)=>[t,e[n]])))};if(r.length>0&&typeof r[0]==`object`&&r[0]!==null)return{headers:n,keys:n,rows:r}}if(Array.isArray(e.headers)){let t=e.headers.map(String);return{headers:t,keys:t,rows:[]}}if(Array.isArray(e.columns)){let{headers:t,keys:n}=jn(e.columns);return{headers:t,keys:n,rows:[]}}return{headers:[],keys:[],rows:[]}}var Nn=`
|
|
2067
|
+
/* ── Scroll fade mask (indicates overflow) ── */
|
|
1423
2068
|
.bk-table-wrap {
|
|
1424
2069
|
overflow-x: auto;
|
|
1425
2070
|
border: 1px solid var(--dt-border-default);
|
|
1426
2071
|
border-radius: var(--dt-radius-lg);
|
|
1427
2072
|
background: var(--dt-bg-secondary);
|
|
1428
2073
|
box-shadow: var(--dt-shadow-sm);
|
|
2074
|
+
/* Fade at right edge when content overflows */
|
|
2075
|
+
mask-image: linear-gradient(to right, black 85%, transparent 98%);
|
|
2076
|
+
-webkit-mask-image: linear-gradient(to right, black 85%, transparent 98%);
|
|
2077
|
+
mask-mode: alpha;
|
|
2078
|
+
}
|
|
2079
|
+
|
|
2080
|
+
.bk-table-wrap:not([data-scrollable]) {
|
|
2081
|
+
mask-image: none;
|
|
2082
|
+
-webkit-mask-image: none;
|
|
1429
2083
|
}
|
|
1430
2084
|
|
|
1431
2085
|
.bk-table {
|
|
@@ -1457,8 +2111,30 @@ ${bt}
|
|
|
1457
2111
|
text-transform: uppercase;
|
|
1458
2112
|
font-size: var(--dt-font-size-xs);
|
|
1459
2113
|
color: var(--dt-text-secondary);
|
|
2114
|
+
user-select: none;
|
|
1460
2115
|
}
|
|
1461
2116
|
|
|
2117
|
+
/* ── Sort indicator span ── */
|
|
2118
|
+
.bk-table-sort-icon {
|
|
2119
|
+
display: inline-block;
|
|
2120
|
+
margin-left: var(--dt-space-1);
|
|
2121
|
+
font-size: 0.6rem;
|
|
2122
|
+
opacity: 0.3;
|
|
2123
|
+
vertical-align: middle;
|
|
2124
|
+
transition: opacity var(--dt-transition-fast);
|
|
2125
|
+
}
|
|
2126
|
+
|
|
2127
|
+
th:hover .bk-table-sort-icon {
|
|
2128
|
+
opacity: 0.8;
|
|
2129
|
+
}
|
|
2130
|
+
|
|
2131
|
+
th[aria-sort="ascending"] .bk-table-sort-icon,
|
|
2132
|
+
th[aria-sort="descending"] .bk-table-sort-icon {
|
|
2133
|
+
opacity: 1;
|
|
2134
|
+
color: var(--dt-accent-fg);
|
|
2135
|
+
}
|
|
2136
|
+
|
|
2137
|
+
/* ── Row hover + even-row styling ── */
|
|
1462
2138
|
.bk-table tbody tr {
|
|
1463
2139
|
transition: background var(--dt-transition-fast);
|
|
1464
2140
|
}
|
|
@@ -1478,7 +2154,72 @@ ${bt}
|
|
|
1478
2154
|
.bk-table tbody tr:last-child td {
|
|
1479
2155
|
border-bottom: none;
|
|
1480
2156
|
}
|
|
1481
|
-
|
|
2157
|
+
|
|
2158
|
+
/* ── Sticky first column (tablet) ── */
|
|
2159
|
+
@media (max-width: 768px) {
|
|
2160
|
+
.bk-table th:first-child,
|
|
2161
|
+
.bk-table td:first-child {
|
|
2162
|
+
position: sticky;
|
|
2163
|
+
left: 0;
|
|
2164
|
+
z-index: 2;
|
|
2165
|
+
background: inherit;
|
|
2166
|
+
}
|
|
2167
|
+
.bk-table thead th:first-child {
|
|
2168
|
+
z-index: 3;
|
|
2169
|
+
background: var(--dt-bg-tertiary);
|
|
2170
|
+
}
|
|
2171
|
+
.bk-table tbody tr td:first-child {
|
|
2172
|
+
box-shadow: inset -6px 0 6px -6px rgba(0,0,0,0.1);
|
|
2173
|
+
}
|
|
2174
|
+
.bk-table-wrap[data-scrolled-past-first] tbody tr td:first-child {
|
|
2175
|
+
box-shadow: inset -8px 0 8px -8px rgba(0,0,0,0.15);
|
|
2176
|
+
}
|
|
2177
|
+
}
|
|
2178
|
+
|
|
2179
|
+
/* ── Compact table on mobile ── */
|
|
2180
|
+
@media (max-width: 480px) {
|
|
2181
|
+
.bk-table {
|
|
2182
|
+
font-size: var(--dt-font-size-xs);
|
|
2183
|
+
}
|
|
2184
|
+
.bk-table th,
|
|
2185
|
+
.bk-table td {
|
|
2186
|
+
padding: var(--dt-space-2) var(--dt-space-3);
|
|
2187
|
+
}
|
|
2188
|
+
}
|
|
2189
|
+
|
|
2190
|
+
/* ── Ultra-compact table on 320px ── */
|
|
2191
|
+
@media (max-width: 320px) {
|
|
2192
|
+
.bk-table thead th {
|
|
2193
|
+
white-space: normal;
|
|
2194
|
+
word-break: break-word;
|
|
2195
|
+
}
|
|
2196
|
+
.bk-table th,
|
|
2197
|
+
.bk-table td {
|
|
2198
|
+
padding: var(--dt-space-1) var(--dt-space-2);
|
|
2199
|
+
}
|
|
2200
|
+
.bk-table th {
|
|
2201
|
+
font-size: 0.625rem;
|
|
2202
|
+
}
|
|
2203
|
+
}
|
|
2204
|
+
|
|
2205
|
+
/* ── Empty state ── */
|
|
2206
|
+
.bk-table-empty {
|
|
2207
|
+
display: flex;
|
|
2208
|
+
flex-direction: column;
|
|
2209
|
+
align-items: center;
|
|
2210
|
+
justify-content: center;
|
|
2211
|
+
padding: var(--dt-space-10) var(--dt-space-4);
|
|
2212
|
+
color: var(--dt-text-tertiary);
|
|
2213
|
+
font-size: var(--dt-font-size-sm);
|
|
2214
|
+
font-style: italic;
|
|
2215
|
+
gap: var(--dt-space-2);
|
|
2216
|
+
}
|
|
2217
|
+
|
|
2218
|
+
.bk-table-empty-icon {
|
|
2219
|
+
font-size: 1.5rem;
|
|
2220
|
+
opacity: 0.5;
|
|
2221
|
+
}
|
|
2222
|
+
`;function Pn(t,n){let{headers:i,keys:a,rows:o}=Mn(t);if(i.length===0)return`<div class="bk-table-wrap"><table class="bk-table"><tbody></tbody></table></div>`;let s=n=>{let r=t.sorted===n,i=r&&t.sortDir!==`desc`,a=i?`▲`:r?`▼`:`⇅`;return`<th${r?` aria-sort="${i?`ascending`:`descending`}"`:``}>${e(n)}<span class="bk-table-sort-icon">${a}</span></th>`},c=`<thead><tr>${i.map(e=>s(e)).join(``)}</tr></thead>`,l=o.length>0&&a.length>2?` data-scrollable="true"`:``,u;return u=o.length===0?`<tr><td colspan="${i.length}"><div class="bk-table-empty"><span class="bk-table-empty-icon" aria-hidden="true">📋</span>No data</div></td></tr>`:o.map(t=>`<tr>${a.map(n=>`<td>${e(r(t[n]))}</td>`).join(``)}</tr>`).join(``),`<div class="bk-table-wrap"${l}><table class="bk-table">${c}<tbody>${u}</tbody></table></div>`}function Fn(e){let t=i(e);return Array.isArray(t)?t:t&&typeof t==`object`&&Array.isArray(t.items)?t.items:[]}var In=`
|
|
1482
2223
|
.bk-tags {
|
|
1483
2224
|
display: flex;
|
|
1484
2225
|
flex-wrap: wrap;
|
|
@@ -1496,13 +2237,13 @@ ${bt}
|
|
|
1496
2237
|
font-weight: 600;
|
|
1497
2238
|
letter-spacing: 0.02em;
|
|
1498
2239
|
}
|
|
1499
|
-
`;function
|
|
2240
|
+
`;function Ln(t,n){return`<div class="bk-tags">${Fn(t.value).map(t=>{let n=typeof t==`string`?t:String(t.text??t.label??``),r=c(typeof t==`string`?void 0:t.status??t.tone??t.color);return`<span class="bk-tag" style="background:var(--dt-${r}-subtle);color:var(--dt-${r}-fg);">${e(n)}</span>`}).join(``)}</div>`}var Rn=`
|
|
1500
2241
|
.bk-text {
|
|
1501
2242
|
color: var(--dt-text-primary);
|
|
1502
2243
|
font-size: var(--dt-font-size-base);
|
|
1503
2244
|
line-height: 1.7;
|
|
1504
2245
|
}
|
|
1505
|
-
`;function
|
|
2246
|
+
`;function zn(e,t){return`<div class="bk-text">${a(String(e.value??``)).replace(/\n/g,`<br>`)}</div>`}var Bn=`
|
|
1506
2247
|
.bk-timeline {
|
|
1507
2248
|
display: grid;
|
|
1508
2249
|
gap: var(--dt-space-4);
|
|
@@ -1552,7 +2293,27 @@ ${bt}
|
|
|
1552
2293
|
font-size: var(--dt-font-size-xs);
|
|
1553
2294
|
line-height: 1.5;
|
|
1554
2295
|
}
|
|
1555
|
-
|
|
2296
|
+
|
|
2297
|
+
/* ── Compact timeline on mobile ── */
|
|
2298
|
+
@media (max-width: 480px) {
|
|
2299
|
+
.bk-timeline-item {
|
|
2300
|
+
padding-left: calc(var(--dt-space-5) + var(--dt-space-1));
|
|
2301
|
+
}
|
|
2302
|
+
}
|
|
2303
|
+
|
|
2304
|
+
@media (max-width: 320px) {
|
|
2305
|
+
.bk-timeline {
|
|
2306
|
+
gap: var(--dt-space-3);
|
|
2307
|
+
}
|
|
2308
|
+
.bk-timeline-item {
|
|
2309
|
+
padding-left: var(--dt-space-5);
|
|
2310
|
+
}
|
|
2311
|
+
.bk-timeline-dot {
|
|
2312
|
+
width: 0.5rem;
|
|
2313
|
+
height: 0.5rem;
|
|
2314
|
+
}
|
|
2315
|
+
}
|
|
2316
|
+
`;function Vn(t,n){return`<div class="bk-timeline">${l(t).map(t=>{let n=c(t.status),r=t.description?`<div class="bk-timeline-description">${e(t.description)}</div>`:``,i=t.timestamp?`<div class="bk-timeline-timestamp">${e(t.timestamp)}</div>`:``;return`<article class="bk-timeline-item" data-tone="${n}"><span class="bk-timeline-dot" style="background:${`var(--dt-${n}-emphasis)`};box-shadow:0 0 0 6px var(--dt-glow-${n});"></span><div class="bk-timeline-title">${e(t.title)}</div>${r}${i}</article>`}).join(``)}</div>`}function P(t,n){if(Array.isArray(t)){let r=t.map(e=>P(e)).join(``);return n?`<details class="bk-tree-node" open><summary>${e(n)}</summary><div class="bk-tree-children">${r}</div></details>`:`<div class="bk-tree-children">${r}</div>`}if(t&&typeof t==`object`){let r=t,i=typeof r.name==`string`?r.name:typeof r.label==`string`?r.label:typeof r.title==`string`?r.title:void 0;if(i!==void 0)return P(r.children??[],i);let a=Object.entries(r).map(([e,t])=>P(t,e)).join(``);return n?`<details class="bk-tree-node" open><summary>${e(n)}</summary><div class="bk-tree-children">${a}</div></details>`:`<div class="bk-tree-children">${a}</div>`}let i=e(r(t));return n?`<div class="bk-tree-leaf"><span class="bk-tree-key">${e(n)}</span><span class="bk-tree-value">${i}</span></div>`:`<div class="bk-tree-leaf">${i}</div>`}var Hn=`
|
|
1556
2317
|
.bk-tree {
|
|
1557
2318
|
display: grid;
|
|
1558
2319
|
gap: var(--dt-space-2);
|
|
@@ -1584,7 +2345,8 @@ ${bt}
|
|
|
1584
2345
|
.bk-tree-key {
|
|
1585
2346
|
color: var(--dt-text-primary);
|
|
1586
2347
|
}
|
|
1587
|
-
`;function
|
|
2348
|
+
`;function Un(e,t){return`<div class="bk-tree">${P(i(e.value))}</div>`}var F={actions:d,cards:m,chart:re,checklist:ke,code:Re,"architecture-diagram":k,"workflow-diagram":k,"sequence-diagram":k,"dataflow-diagram":k,"lifecycle-diagram":k,diff:mt,comparison:We,"component-detail":Qe,"data-table-schema":it,"docs-browser":bt,"docs-hub":Tt,finding:Ot,"flame-graph":Nt,graph:It,heading:Rt,kv:Vt,"lifecycle-flow":nn,list:an,markdown:sn,mermaid:fn,metrics:hn,paragraph:_n,progress:bn,prompt:Cn,separator:Tn,"status-board":On,table:Nn,tags:In,text:Rn,timeline:Bn,tree:Hn},Wn=`
|
|
2349
|
+
${p}
|
|
1588
2350
|
.bk-section {
|
|
1589
2351
|
display: grid;
|
|
1590
2352
|
gap: var(--dt-space-3);
|
|
@@ -1602,6 +2364,27 @@ ${bt}
|
|
|
1602
2364
|
line-height: 1.3;
|
|
1603
2365
|
}
|
|
1604
2366
|
|
|
2367
|
+
/* ── Responsive section titles ── */
|
|
2368
|
+
@media (max-width: 480px) {
|
|
2369
|
+
.bk-section-title {
|
|
2370
|
+
font-size: var(--dt-font-size-lg);
|
|
2371
|
+
}
|
|
2372
|
+
.bk-section {
|
|
2373
|
+
gap: var(--dt-space-2);
|
|
2374
|
+
margin: 0 0 var(--dt-space-4);
|
|
2375
|
+
}
|
|
2376
|
+
}
|
|
2377
|
+
|
|
2378
|
+
@media (max-width: 320px) {
|
|
2379
|
+
.bk-section-title {
|
|
2380
|
+
font-size: var(--dt-font-size-base);
|
|
2381
|
+
}
|
|
2382
|
+
.bk-section {
|
|
2383
|
+
gap: var(--dt-space-1);
|
|
2384
|
+
margin: 0 0 var(--dt-space-3);
|
|
2385
|
+
}
|
|
2386
|
+
}
|
|
2387
|
+
|
|
1605
2388
|
.bk-text,
|
|
1606
2389
|
.bk-markdown,
|
|
1607
2390
|
.bk-paragraph,
|
|
@@ -1708,20 +2491,54 @@ blockquote {
|
|
|
1708
2491
|
border-radius: 0 var(--dt-radius-sm) var(--dt-radius-sm) 0;
|
|
1709
2492
|
color: var(--dt-text-secondary);
|
|
1710
2493
|
}
|
|
1711
|
-
|
|
1712
|
-
|
|
1713
|
-
|
|
1714
|
-
|
|
2494
|
+
`,Gn=`
|
|
2495
|
+
@media print {
|
|
2496
|
+
.aikit-header,.aikit-footer,.aikit-toolbox,.aikit-toolbox-toggle,.aikit-toolbox-menu,
|
|
2497
|
+
.aikit-theme-toggle,.aikit-copy-status,.aikit-glow-primary,.aikit-glow-secondary {
|
|
2498
|
+
display: none !important;
|
|
2499
|
+
}
|
|
2500
|
+
html,body { background: #fff !important; color: #000 !important; }
|
|
2501
|
+
main,.bk-section,.bk-section-title,.bk-text,.bk-markdown,.bk-paragraph,.bk-fallback,
|
|
2502
|
+
.bk-prompt,.bk-heading,.bk-kv,.bk-list,.bk-table-wrap,.bk-table,.bk-data-table-schema,
|
|
2503
|
+
.bk-docs-browser,.bk-docs-hub,.bk-actions,.bk-comparison,.bk-component-detail,
|
|
2504
|
+
.bk-status-board,.bk-progress,.bk-lifecycle-flow,.bk-timeline,.bk-tree,.bk-flame,
|
|
2505
|
+
.bk-tags,.bk-cards,.bk-metrics,.bk-chart,.bk-code,.bk-mermaid,.bk-graph,.bk-checklist,
|
|
2506
|
+
.bk-finding,.aikit-glass,.aikit-glass-solid {
|
|
2507
|
+
background: #fff !important; color: #000 !important; border-color: #ccc !important;
|
|
2508
|
+
}
|
|
2509
|
+
.bk-table thead th { background: #f5f5f5 !important; color: #000 !important; border-bottom: 2px solid #ccc !important; }
|
|
2510
|
+
.bk-table td { border-bottom: 1px solid #ddd !important; }
|
|
2511
|
+
.bk-code { page-break-inside: avoid; break-inside: avoid; }
|
|
2512
|
+
.bk-code code { white-space: pre-wrap !important; word-break: break-all !important; }
|
|
2513
|
+
table { page-break-inside: auto; }
|
|
2514
|
+
thead { display: table-header-group; }
|
|
2515
|
+
tbody tr { page-break-inside: avoid; }
|
|
2516
|
+
.bk-mermaid { overflow: visible !important; page-break-inside: avoid; }
|
|
2517
|
+
.bk-mermaid svg { max-width: 100% !important; height: auto !important; overflow: visible !important; }
|
|
2518
|
+
*,*::before,*::after { box-shadow: none !important; text-shadow: none !important; animation: none !important; animation-duration: 0s !important; transition: none !important; }
|
|
2519
|
+
a { color: #000 !important; text-decoration: underline; }
|
|
2520
|
+
blockquote { border-left-color: #000 !important; background: #fafafa !important; }
|
|
2521
|
+
hr { border: none !important; border-top: 1px solid #ccc !important; background: none !important; }
|
|
2522
|
+
a[href^="http"]::after { content: " (" attr(href) ")"; font-size: 0.8em; font-weight: normal; color: #555 !important; text-decoration: none; }
|
|
2523
|
+
a[href^="#"]::after, a[href^="javascript:"]::after { content: none !important; }
|
|
2524
|
+
html, body { page-break-before: auto; page-break-after: auto; }
|
|
2525
|
+
.bk-text,.bk-markdown,.bk-paragraph,.bk-finding { widows: 3; orphans: 3; }
|
|
2526
|
+
::selection { background: #ccc !important; color: #000 !important; }
|
|
2527
|
+
}
|
|
2528
|
+
`;function Kn(e){let t=[Wn,Gn],n=new Set;for(let r of e)!n.has(r)&&F[r]&&(n.add(r),t.push(F[r]));return t.join(`
|
|
2529
|
+
`)}function qn(){return Kn(Object.keys(F))}var I={header:`aikit-header`,brand:`aikit-header-brand`,title:`aikit-header-title`,titleText:`aikit-header-title-text`,subtitle:`aikit-header-subtitle`,actions:`aikit-header-actions`,themeToggle:`aikit-theme-toggle`,themeToggleIcon:`aikit-theme-toggle-icon`,themeToggleIconSun:`aikit-theme-toggle-icon--sun`,themeToggleIconMoon:`aikit-theme-toggle-icon--moon`,toolbox:`aikit-toolbox`,toolboxToggle:`aikit-toolbox-toggle`,toolboxMenu:`aikit-toolbox-menu`,toolboxItem:`aikit-toolbox-item`,footer:`aikit-footer`,footerMeta:`aikit-footer-meta`,footerText:`aikit-footer-text`,footerBrand:`aikit-footer-brand`,footerTimestamp:`aikit-footer-timestamp`,footerSlot:`aikit-footer-slot`,footerBadge:`aikit-footer-badge`},Jn=`<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z"/></svg>`,Yn=`<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M23 19a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4l2-3h6l2 3h4a2 2 0 0 1 2 2z"/><circle cx="12" cy="13" r="4"/></svg>`,Xn=`<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/><polyline points="7 10 12 15 17 10"/><line x1="12" y1="15" x2="12" y2="3"/></svg>`,Zn=`<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="12" cy="12" r="5"/><line x1="12" y1="1" x2="12" y2="3"/><line x1="12" y1="21" x2="12" y2="23"/><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"/><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"/><line x1="1" y1="12" x2="3" y2="12"/><line x1="21" y1="12" x2="23" y2="12"/><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"/><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"/></svg>`,Qn=`<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"/></svg>`,$n=[{kind:`shared-chrome-action`,id:`copy-image`,label:`Copy as Image`,icon:Yn,onclick:`screenshotPage()`},{kind:`shared-chrome-action`,id:`download-image`,label:`Download as PNG`,icon:Xn,onclick:`downloadPng()`}];function er(t){return[` <button type="button" class="${I.toolboxItem}" role="menuitem" data-shared-chrome-action="${e(t.id)}" aria-label="${e(t.label)}">`,` <span aria-hidden="true">${t.icon}</span>`,` <span>${e(t.label)}</span>`,` </button>`].join(`
|
|
2530
|
+
`)}function tr(e,t=[],n=!0){if(!n)return``;let r=t.filter(e=>e.kind===`shared-chrome-action`);return r.length===0?``:[` <div class="${I.toolbox}">`,` <button type="button" class="${I.toolboxToggle}" aria-label="Open tools menu" aria-haspopup="menu" aria-expanded="false" aria-controls="aikit-toolbox-menu">`,` ${Jn}`,` </button>`,` <div id="aikit-toolbox-menu" class="${I.toolboxMenu}" role="menu" hidden>`,...r.map(e=>er(e)),` </div>`,` </div>`].join(`
|
|
2531
|
+
`)}function nr(e){return e?.trim()?e.trim():``}function rr(e){if(!e)return null;let t=new Date(e);return Number.isNaN(t.getTime())?{display:e}:{dateTime:t.toISOString(),display:new Intl.DateTimeFormat(void 0,{month:`long`,day:`numeric`,year:`numeric`,hour:`numeric`,minute:`2-digit`}).format(t)}}function ir(t){let n=t.brand??`AI KIT`,r=t.showToolbox??!0,i=t.sharedChromeActions??(r?$n:[]),a=[nr(t.actionsHtml),tr(t.transport,i,r),t.showThemeToggle===!1?``:[` <button type="button" class="${I.themeToggle}" aria-label="Switch to dark theme" aria-pressed="false">`,` <span class="${I.themeToggleIcon} ${I.themeToggleIconSun}" aria-hidden="true">${Zn}</span>`,` <span class="${I.themeToggleIcon} ${I.themeToggleIconMoon}" aria-hidden="true">${Qn}</span>`,` </button>`].join(`
|
|
1715
2532
|
`)].filter(Boolean).join(`
|
|
1716
|
-
`);return[` <header class="${
|
|
1717
|
-
`)}function
|
|
1718
|
-
`)}function
|
|
2533
|
+
`);return[` <header class="${I.header}">`,` <div class="${I.brand}">${e(n)}</div>`,` <div class="${I.title}">`,` <span class="${I.titleText}">${e(t.title)}</span>`,...t.subtitle?[` <span class="${I.subtitle}">${e(t.subtitle)}</span>`]:[],` </div>`,` <div class="${I.actions}">`,a,` </div>`,` </header>`].join(`
|
|
2534
|
+
`)}function ar(t={}){let n=rr(t.generatedAt),r=t.showInstallGuide??!1,i=t.installUrl??`https://vpxa.io/ai-kit`,a=n?[`Generated by `,`<span class="${I.footerBrand}">AI KIT</span>`,` at `,n.dateTime?`<time class="${I.footerTimestamp}" datetime="${e(n.dateTime)}">${e(n.display)}</time>`:`<span class="${I.footerTimestamp}">${e(n.display)}</span>`].join(``):`Generated by <span class="${I.footerBrand}">AI KIT</span>`,o=nr(t.contentHtml),s=r?`<span class="${I.footerSlot}"><a href="${e(i)}" target="_blank" rel="noopener" style="color:inherit;text-decoration:underline;text-underline-offset:2px;text-decoration-color:var(--aikit-border)">Get AI Kit →</a></span>`:``;return[` <footer class="${I.footer}">`,` <div class="${I.footerMeta}">`,` <span class="${I.footerText}">${a}</span>`,...o?[` <span class="${I.footerSlot}">${o}</span>`]:[],s,` </div>`,` </footer>`].join(`
|
|
2535
|
+
`)}function or(e){let t={COMMENT:[],DELETION:[],GLOBAL_COMMENT:[]};for(let n of e)t[n.type in t?n.type:`COMMENT`].push(n);return t}function sr(t){let r=n(t.id),i=[];return t.author&&i.push(`<span class="bk-annotation-author">${e(t.author)}</span>`),t.createdAt&&i.push(`<time class="bk-annotation-time">${e(t.createdAt)}</time>`),`<li class="bk-annotation-item" data-block-id="${r}" data-annotation-type="${t.type}">
|
|
1719
2536
|
<p class="bk-annotation-body">${e(t.body)}</p>
|
|
1720
2537
|
${i.length>0?`<div class="bk-annotation-meta">${i.join(``)}</div>`:``}
|
|
1721
|
-
</li>`}function
|
|
1722
|
-
<h4 class="bk-annotation-group-title">${e(
|
|
1723
|
-
<ol class="bk-annotation-list">${n.map(
|
|
1724
|
-
</div>`).join(``)||`<p class="bk-text-secondary">No annotations</p>`}</div>`}function
|
|
2538
|
+
</li>`}function cr(e){switch(e){case`COMMENT`:return`Comments`;case`DELETION`:return`Deletions`;case`GLOBAL_COMMENT`:return`General Notes`;default:return e}}function lr(t,n){let r=or(Array.isArray(t.value)?t.value:[]);return`<div class="bk-annotations">${Object.entries(r).filter(([,e])=>e.length>0).map(([t,n])=>`<div class="bk-annotation-group">
|
|
2539
|
+
<h4 class="bk-annotation-group-title">${e(cr(t))}</h4>
|
|
2540
|
+
<ol class="bk-annotation-list">${n.map(sr).join(``)}</ol>
|
|
2541
|
+
</div>`).join(``)||`<p class="bk-text-secondary">No annotations</p>`}</div>`}function ur(e){if(typeof e!=`object`||!e)return!1;let t=e;return typeof t.prompt==`string`&&Array.isArray(t.options)}function dr(t,r){let i=t.blockId?n(t.blockId):void 0,a=ur(t.value)?t.value:{prompt:``,options:[]},o=a.prompt?`<p class="bk-approval-prompt">${e(a.prompt)}</p>`:``,s=a.options.map(t=>`<label class="bk-approval-option" data-option-id="${n(t.id)}">
|
|
1725
2542
|
<input type="radio" name="approval" value="${n(t.id)}" role="radio" />
|
|
1726
2543
|
<span class="bk-approval-option-label">${e(t.label)}</span>
|
|
1727
2544
|
${t.description?`<span class="bk-approval-option-desc">${e(t.description)}</span>`:``}
|
|
@@ -1732,9 +2549,9 @@ ${t.description?`<span class="bk-approval-option-desc">${e(t.description)}</span
|
|
|
1732
2549
|
${o}
|
|
1733
2550
|
<fieldset class="bk-approval-options">${s}</fieldset>
|
|
1734
2551
|
${c}
|
|
1735
|
-
</div>`}var
|
|
1736
|
-
`)}function
|
|
1737
|
-
`);return[{type:`heading`,value:e.path},{type:`paragraph`,value:`${e.status} | +${e.additions} / -${e.deletions}`},{type:`code`,language:`diff`,value:t}]}var pr={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=>ur(e).flatMap(fr),hydration:[],supportedTransports:sr},mr=[`mcp-app`,`browser`,`export`];function hr(e){return typeof e==`object`&&!!e}function gr(e){return hr(e)&&typeof e.type==`string`}function _r(e){return Array.isArray(e)&&e.every(gr)}function vr(e){if(!hr(e))return{sections:[]};let t=Array.isArray(e.sections)?e.sections.flatMap(e=>{if(!hr(e)||typeof e.heading!=`string`)return[];let t=typeof e.content==`string`||_r(e.content)?e.content:``;return[{heading:e.heading,content:t}]}):[];return{title:typeof e.title==`string`?e.title:void 0,sections:t}}function yr(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)}var br={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=vr(e),n=[];t.title&&n.push({type:`heading`,value:t.title});for(let e of t.sections)n.push(...yr(e));return n},hydration:[],supportedTransports:mr},xr=[`mcp-app`,`browser`,`export`];function Sr(e){return typeof e==`object`&&!!e}function Cr(e){return Sr(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`}}var wr={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=Cr(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:xr};function I(e){return typeof e==`object`&&!!e}function Tr(e){return Array.isArray(e)?e.flatMap(e=>!I(e)||typeof e.name!=`string`||typeof e.label!=`string`?[]:[{name:e.name,label:e.label,type:typeof e.type==`string`?e.type:void 0,required:typeof e.required==`boolean`?e.required:void 0,placeholder:typeof e.placeholder==`string`?e.placeholder:void 0,default:typeof e.default==`string`?e.default:void 0,options:Array.isArray(e.options)?e.options.filter(e=>typeof e==`string`||I(e)&&typeof e.label==`string`&&typeof e.value==`string`):void 0,value:typeof e.value==`string`||typeof e.value==`boolean`?e.value:void 0}]):[]}var Er={id:`form@1`,label:`Form`,description:`Browser-only form template rendered as a heading and table of field metadata.`,inputSchema:{type:`object`,properties:{title:{type:`string`},fields:{type:`array`,items:{type:`object`,required:[`name`,`label`],properties:{name:{type:`string`},label:{type:`string`},type:{type:`string`},required:{type:`boolean`},placeholder:{type:`string`},default:{type:`string`},options:{type:`array`,items:{anyOf:[{type:`string`},{type:`object`,required:[`label`,`value`],properties:{label:{type:`string`},value:{type:`string`}},additionalProperties:!1}]}},value:{type:[`string`,`boolean`]}},additionalProperties:!1}}},required:[`fields`],additionalProperties:!1},defaultLayout:{},blocksFromData:e=>{let t={title:I(e)&&typeof e.title==`string`?e.title:`Form`,fields:I(e)?Tr(e.fields):[]};return[{type:`heading`,value:t.title},{type:`table`,value:{headers:[`Label`,`Name`,`Type`,`Required`,`Default/Placeholder`],rows:t.fields.map(e=>[e.label||e.name,e.name,e.type||`text`,e.required?`Yes`:`No`,e.placeholder||e.default||``])}}]},hydration:[`form`],supportedTransports:[`browser`]},Dr=[`mcp-app`,`browser`];function Or(e){return typeof e==`object`&&!!e}function kr(e){if(!Array.isArray(e))return;let t=e.flatMap(e=>!Or(e)||typeof e.id!=`string`||typeof e.label!=`string`?[]:[{id:e.id,label:e.label}]);return t.length>0?t:void 0}function Ar(e){return Array.isArray(e)?e.flatMap(e=>!Or(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 jr(e){return Or(e)?{categories:kr(e.categories),items:Ar(e.items)}:{items:[]}}function Mr(e){return{title:e.label,body:e.id,description:e.tags&&e.tags.length>0?e.tags.join(`, `):void 0}}function Nr(e,t){return t.length===0?[]:[{type:`heading`,value:e},{type:`cards`,value:t.map(Mr)}]}var Pr={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=jr(e),n=[];if(t.categories&&t.categories.length>0){let e=new Set(t.categories.map(e=>e.id)),r=[];for(let e of t.categories){let n=Nr(e.label,t.items.filter(t=>t.category===e.id));n.length>0&&r.push(n)}let i=Nr(`Other`,t.items.filter(t=>!t.category||!e.has(t.category)));return i.length>0&&r.push(i),n.push(...r.flatMap((e,t)=>t>0?[{type:`separator`},...e]:e)),n}return t.items.length>0&&n.push({type:`cards`,value:t.items.map(Mr)}),n},hydration:[`picker`],supportedTransports:Dr},Fr=[`mcp-app`,`browser`,`export`];function L(e){return typeof e==`object`&&!!e}function Ir(e){return L(e)&&typeof e.type==`string`}function Lr(e){return Array.isArray(e)&&e.every(Ir)}function Rr(e){return L(e)&&typeof e.label==`string`&&(typeof e.value==`string`||typeof e.value==`number`)}function zr(e){return Array.isArray(e)?e.flatMap(e=>{if(!L(e)||typeof e.heading!=`string`)return[];let t=typeof e.content==`string`||Lr(e.content)?e.content:``;return[{heading:e.heading,content:t}]}):[]}function Br(e){return Array.isArray(e)?e.flatMap(e=>L(e)?[{title:typeof e.title==`string`?e.title:void 0,value:e.value,headers:Array.isArray(e.headers)?e.headers.filter(e=>typeof e==`string`):void 0,rows:Array.isArray(e.rows)?e.rows.filter(e=>Array.isArray(e)):void 0}]:[]):[]}function Vr(e){let t=[{type:`heading`,value:e.heading}];return typeof e.content==`string`?(t.push({type:`paragraph`,value:e.content}),t):(t.push(...e.content),t)}function Hr(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}var Ur={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:L(e)&&typeof e.title==`string`?e.title:`Report`,metrics:L(e)&&Array.isArray(e.metrics)?e.metrics.filter(Rr):void 0,sections:L(e)?zr(e.sections):[],tables:L(e)?Br(e.tables):void 0},n=[{type:`heading`,value:t.title}];t.metrics&&t.metrics.length>0&&n.push({type:`metrics`,value:t.metrics});for(let e of t.sections)n.push(...Vr(e));for(let e of t.tables??[])n.push(Hr(e));return n},hydration:[],supportedTransports:Fr},Wr=[`mcp-app`,`browser`];function R(e){return typeof e==`object`&&!!e}function Gr(e){return Array.isArray(e)?e.filter(e=>typeof e==`string`):[]}function Kr(e){return Array.isArray(e)?e.flatMap(e=>{if(!R(e)||typeof e.id!=`string`||typeof e.body!=`string`)return[];let t=e.type;if(t!==`COMMENT`&&t!==`DELETION`&&t!==`GLOBAL_COMMENT`)return[];let n=R(e.anchor)?e.anchor:{};return[{id:e.id,type:t,body:e.body,anchor:{blockId:n.blockId},author:typeof e.author==`string`?e.author:void 0,createdAt:typeof e.createdAt==`string`?e.createdAt:void 0}]}):[]}function qr(e){return Array.isArray(e)?e.flatMap(e=>{if(!R(e)||typeof e.id!=`string`||typeof e.label!=`string`)return[];let t=e.outcome;return t!==`approved`&&t!==`rejected`&&t!==`changes-requested`&&t!==`deferred`?[]:[{id:e.id,label:e.label,outcome:t,description:typeof e.description==`string`?e.description:void 0}]}):[]}var Jr={id:`review@1`,label:`Review`,description:`Review surface with criteria checklist, annotation items, and approval controls.`,inputSchema:{type:`object`,properties:{title:{type:`string`},criteria:{type:`array`,items:{type:`string`}},annotations:{type:`array`,items:{type:`object`,required:[`id`,`body`,`type`,`anchor`],properties:{id:{type:`string`},type:{type:`string`,enum:[`COMMENT`,`DELETION`,`GLOBAL_COMMENT`]},body:{type:`string`},anchor:{type:`object`,properties:{blockId:{type:`string`},contextHash:{type:`string`}}},author:{type:`string`},createdAt:{type:`string`}},additionalProperties:!1}},approval:{type:`object`,properties:{prompt:{type:`string`},options:{type:`array`,items:{type:`object`,required:[`id`,`label`,`outcome`],properties:{id:{type:`string`},label:{type:`string`},outcome:{type:`string`,enum:[`approved`,`rejected`,`changes-requested`,`deferred`]},description:{type:`string`}},additionalProperties:!1}},requireComment:{type:`boolean`}},required:[`prompt`,`options`]},comment:{type:`string`}},required:[`title`,`criteria`],additionalProperties:!1},defaultLayout:{},blocksFromData:e=>{let t=[];if(!R(e))return t;let n=typeof e.title==`string`?e.title:`Review`;t.push({type:`heading`,value:n});let r=Gr(e.criteria);r.length>0&&t.push({type:`checklist`,value:r.map(e=>({label:e,checked:!1}))});let i=Kr(e.annotations);i.length>0&&t.push({type:`annotation`,value:i});let a=e.approval;if(R(a)){let e=qr(a.options);e.length>0&&t.push({type:`approval`,value:{prompt:typeof a.prompt==`string`?a.prompt:``,options:e,requireComment:typeof a.requireComment==`boolean`?a.requireComment:!1}})}let o=typeof e.comment==`string`?e.comment:void 0;return o&&t.push({type:`markdown`,value:o}),t},hydration:[`checklist`],supportedTransports:Wr},Yr=[`mcp-app`,`browser`,`export`];function z(e){return typeof e==`object`&&!!e}function Xr(e){return Array.isArray(e)?e.flatMap(e=>{if(!z(e)||typeof e.category!=`string`||!Array.isArray(e.items))return[];let t=e.items.flatMap(e=>!z(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 Zr(e){return e.map(e=>({title:e.label,status:e.status,badge:e.badge}))}var Qr={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=z(e)?Xr(e.categories):[],n=[];for(let e of t)n.push({type:`heading`,value:e.category}),n.push({type:`cards`,value:Zr(e.items)});return n},hydration:[],supportedTransports:Yr},$r=[`mcp-app`,`browser`,`export`];function ei(e){return typeof e==`object`&&!!e}function ti(e){return Array.isArray(e)?e.flatMap(e=>!ei(e)||typeof e.title!=`string`?[]:[{title:e.title,description:typeof e.description==`string`?e.description:void 0,timestamp:typeof e.timestamp==`string`?e.timestamp:void 0,status:typeof e.status==`string`?e.status:void 0}]):[]}function ni(e){return Array.isArray(e)?{entries:ti(e)}:ei(e)?{entries:ti(e.entries??e.events??e.items),title:typeof e.title==`string`?e.title:void 0}:{entries:[]}}var B={type:`array`,items:{type:`object`,required:[`title`],properties:{title:{type:`string`},description:{type:`string`},timestamp:{type:`string`},status:{type:`string`}},additionalProperties:!1}},ri={id:`timeline@1`,label:`Timeline`,description:`Static timeline events rendered as a timeline block.`,inputSchema:{oneOf:[B,{type:`object`,properties:{title:{type:`string`},entries:B,events:B,items:B},anyOf:[{required:[`entries`]},{required:[`events`]},{required:[`items`]}],additionalProperties:!1}]},defaultLayout:{},blocksFromData:e=>{let{entries:t,title:n}=ni(e),r=[];return n&&r.push({type:`heading`,value:n}),r.push({type:`timeline`,value:t}),r},hydration:[],supportedTransports:$r},ii=[`mcp-app`,`browser`,`export`];function V(e){return typeof e==`object`&&!!e}function ai(e){return V(e)&&typeof e.label==`string`}function oi(e){return{name:e.label,children:Array.isArray(e.children)?e.children.filter(ai).map(oi):[]}}function si(e){if(!V(e))return{};let t=e.root;return ai(t)?oi(t):V(t)?t:e}var ci={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:si(e)}],hydration:[`tree`],supportedTransports:ii},H=new Zn;H.register(Jr),H.register(er),H.register(pr),H.register(br),H.register(Pr),H.register(Ur),H.register(ri),H.register(ci),H.register(or),H.register(wr),H.register(Er),H.register(Qr);var li=3e3,ui=2e3;function U(e){let t=e.querySelector(`.bk-action-feedback`);t&&(t.style.display=`block`,t.setAttribute(`data-feedback-state`,`sent`),setTimeout(()=>{t.style.display=`none`},li));let n=e.querySelectorAll(`button.bk-action`);for(let e of n)e.disabled=!0;setTimeout(()=>{for(let e of n)e.disabled=!1},ui)}function di(e,t){let n=[],r=new WeakSet;for(let i of Array.from(e.querySelectorAll(`.bk-text-submit`))){let a=i.getAttribute(`data-action-id`);if(!a)continue;r.add(i);let o=i.querySelector(`.bk-input`),s=i.querySelector(`.bk-action--primary`);if(!o||!s)continue;r.add(o),r.add(s);let c=()=>{t(a,o.value),U(e)};s.addEventListener(`click`,c),n.push(()=>s.removeEventListener(`click`,c))}for(let i of Array.from(e.querySelectorAll(`.bk-form`))){let a=i.getAttribute(`data-action-id`);if(!a)continue;r.add(i);for(let e of i.querySelectorAll(`[data-action-id]`))r.add(e);let o=n=>{n.preventDefault();let r=new FormData(i),o={};r.forEach((e,t)=>{o[t]=String(e)}),t(a,JSON.stringify(o)),U(e)};i.addEventListener(`submit`,o),n.push(()=>i.removeEventListener(`submit`,o))}for(let i of Array.from(e.querySelectorAll(`[data-action-id]`))){if(r.has(i))continue;let a=i.getAttribute(`data-action-id`);if(!a)continue;if(i.tagName===`SELECT`){let r=i,o=()=>{t(a,r.value),U(e)};r.addEventListener(`change`,o),n.push(()=>r.removeEventListener(`change`,o));continue}let o=()=>{t(a),U(e)};i.addEventListener(`click`,o),n.push(()=>i.removeEventListener(`click`,o))}return()=>{for(let e of n)e()}}var fi=`
|
|
2552
|
+
</div>`}var fr={actions:f,annotation:lr,approval:dr,cards:h,chart:ie,checklist:Ae,code:ze,comparison:Ge,"architecture-diagram":M,"workflow-diagram":M,"sequence-diagram":M,"dataflow-diagram":M,"lifecycle-diagram":M,diff:vt,"component-detail":$e,"data-table-schema":at,"docs-browser":xt,"docs-hub":Et,"flame-graph":Pt,finding:kt,graph:Lt,heading:zt,kv:Ht,"lifecycle-flow":rn,list:on,markdown:dn,mermaid:pn,metrics:gn,paragraph:vn,progress:xn,prompt:wn,separator:En,"status-board":kn,table:Pn,tags:Ln,text:zn,timeline:Vn,tree:Un};function pr(t,r,a){let o={...t,value:i(t.value)},s=fr[o.type],c=s?s(o,r):hr(o);return o.title&&![`heading`,`finding`].includes(o.type)&&(c=`<section class="bk-section bk-section--${e(o.type)}"><h3 class="bk-section-title">${e(o.title)}</h3>${c}</section>`),`<div data-block-id="${n(o.blockId??`block-${a??0}`)}">${c}</div>`}function mr(e,t){return e.map((e,n)=>pr(e,t,n)).join(`
|
|
2553
|
+
`)}function hr(t){if(t.value===void 0||t.value===null)return``;if(typeof t.value==`string`)return`<p class="bk-paragraph">${e(t.value)}</p>`;try{return`<pre class="bk-fallback">${e(JSON.stringify(t.value,null,2))}</pre>`}catch{return`<pre class="bk-fallback">${e(String(t.value))}</pre>`}}var gr=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()]}},_r=[`mcp-app`,`browser`];function vr(e){return typeof e==`object`&&!!e}function yr(e){return Array.isArray(e)?e.flatMap(e=>!vr(e)||typeof e.label!=`string`?[]:[{label:e.label,checked:!!e.checked}]):[]}var br={id:`checklist@1`,label:`Checklist`,description:`Checklist with optional title and checklist hydration metadata.`,inputSchema:{type:`object`,properties:{title:{type:`string`},items:{type:`array`,items:{type:`object`,required:[`label`,`checked`],properties:{label:{type:`string`},checked:{type:`boolean`}},additionalProperties:!1}}},required:[`items`],additionalProperties:!1},defaultLayout:{},blocksFromData:e=>{let t=[],n=vr(e)&&typeof e.title==`string`?e.title:void 0,r=vr(e)?yr(e.items):[];return n&&t.push({type:`heading`,value:n}),t.push({type:`checklist`,value:r}),t},hydration:[`checklist`],supportedTransports:_r},xr=[`mcp-app`,`browser`,`export`];function L(e){return typeof e==`object`&&!!e}function Sr(e){return L(e)&&typeof e.label==`string`&&(typeof e.value==`string`||typeof e.value==`number`)}function Cr(e){return L(e)&&typeof e.key==`string`&&typeof e.label==`string`}function wr(e){return Array.isArray(e)?e.filter(L):[]}function Tr(e,t){if(Array.isArray(e)){let t=e.filter(Cr);if(t.length>0)return t}return Object.keys(t[0]??{}).map(e=>({key:e,label:e}))}var Er={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=L(e)?wr(e.rows):[],n=L(e)?Tr(e.columns,t):[],r=n.map(e=>e.label),i=t.map(e=>n.map(t=>e[t.key])),a=[];if(L(e)&&Array.isArray(e.stats)){let t=e.stats.filter(Sr);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:xr},Dr=[`mcp-app`,`browser`,`export`];function R(e){return typeof e==`object`&&!!e}function Or(e){return Array.isArray(e)?e.flatMap(e=>!R(e)||typeof e.type!=`string`||typeof e.content!=`string`?[]:[{type:e.type,content:e.content}]):[]}function kr(e){return Array.isArray(e)?e.flatMap(e=>!R(e)||typeof e.header!=`string`?[]:[{header:e.header,changes:Or(e.changes)}]):[]}function Ar(e){return!R(e)||!Array.isArray(e.files)?[]:e.files.flatMap(e=>!R(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:kr(e.hunks)}])}function jr(e){return e===`add`?`+`:e===`delete`?`-`:` `}function Mr(e){let t=e.hunks.flatMap(e=>[e.header,...e.changes.map(e=>`${jr(e.type)}${e.content}`)]).join(`
|
|
2554
|
+
`);return[{type:`heading`,value:e.path},{type:`paragraph`,value:`${e.status} | +${e.additions} / -${e.deletions}`},{type:`code`,language:`diff`,value:t}]}var Nr={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=>Ar(e).flatMap(Mr),hydration:[],supportedTransports:Dr},Pr=[`mcp-app`,`browser`,`export`];function z(e){return typeof e==`object`&&!!e}function Fr(e){return z(e)&&typeof e.type==`string`}function Ir(e){return Array.isArray(e)&&e.every(Fr)}function Lr(e){if(!z(e))return{sections:[]};let t=Array.isArray(e.sections)?e.sections.flatMap(e=>{if(!z(e)||typeof e.heading!=`string`)return[];let t=typeof e.content==`string`||Ir(e.content)?e.content:``;return[{heading:e.heading,content:t}]}):[];return{title:typeof e.title==`string`?e.title:void 0,sections:t}}function Rr(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)}var zr={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=Lr(e),n=[];t.title&&n.push({type:`heading`,value:t.title});for(let e of t.sections)n.push(...Rr(e));return n},hydration:[],supportedTransports:Pr},Br=[`mcp-app`,`browser`,`export`];function Vr(e){return typeof e==`object`&&!!e}function Hr(e){return Vr(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`}}var Ur={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=Hr(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:Br};function B(e){return typeof e==`object`&&!!e}function Wr(e){return Array.isArray(e)?e.flatMap(e=>!B(e)||typeof e.name!=`string`||typeof e.label!=`string`?[]:[{name:e.name,label:e.label,type:typeof e.type==`string`?e.type:void 0,required:typeof e.required==`boolean`?e.required:void 0,placeholder:typeof e.placeholder==`string`?e.placeholder:void 0,default:typeof e.default==`string`?e.default:void 0,options:Array.isArray(e.options)?e.options.filter(e=>typeof e==`string`||B(e)&&typeof e.label==`string`&&typeof e.value==`string`):void 0,value:typeof e.value==`string`||typeof e.value==`boolean`?e.value:void 0}]):[]}var Gr={id:`form@1`,label:`Form`,description:`Browser-only form template rendered as a heading and table of field metadata.`,inputSchema:{type:`object`,properties:{title:{type:`string`},fields:{type:`array`,items:{type:`object`,required:[`name`,`label`],properties:{name:{type:`string`},label:{type:`string`},type:{type:`string`},required:{type:`boolean`},placeholder:{type:`string`},default:{type:`string`},options:{type:`array`,items:{anyOf:[{type:`string`},{type:`object`,required:[`label`,`value`],properties:{label:{type:`string`},value:{type:`string`}},additionalProperties:!1}]}},value:{type:[`string`,`boolean`]}},additionalProperties:!1}}},required:[`fields`],additionalProperties:!1},defaultLayout:{},blocksFromData:e=>{let t={title:B(e)&&typeof e.title==`string`?e.title:`Form`,fields:B(e)?Wr(e.fields):[]};return[{type:`heading`,value:t.title},{type:`table`,value:{headers:[`Label`,`Name`,`Type`,`Required`,`Default/Placeholder`],rows:t.fields.map(e=>[e.label||e.name,e.name,e.type||`text`,e.required?`Yes`:`No`,e.placeholder||e.default||``])}}]},hydration:[`form`],supportedTransports:[`browser`]},Kr=[`mcp-app`,`browser`];function V(e){return typeof e==`object`&&!!e}function qr(e){if(!Array.isArray(e))return;let t=e.flatMap(e=>!V(e)||typeof e.id!=`string`||typeof e.label!=`string`?[]:[{id:e.id,label:e.label}]);return t.length>0?t:void 0}function Jr(e){return Array.isArray(e)?e.flatMap(e=>!V(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 Yr(e){return V(e)?{categories:qr(e.categories),items:Jr(e.items)}:{items:[]}}function Xr(e){return{title:e.label,body:e.id,description:e.tags&&e.tags.length>0?e.tags.join(`, `):void 0}}function Zr(e,t){return t.length===0?[]:[{type:`heading`,value:e},{type:`cards`,value:t.map(Xr)}]}var Qr={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=Yr(e),n=[];if(t.categories&&t.categories.length>0){let e=new Set(t.categories.map(e=>e.id)),r=[];for(let e of t.categories){let n=Zr(e.label,t.items.filter(t=>t.category===e.id));n.length>0&&r.push(n)}let i=Zr(`Other`,t.items.filter(t=>!t.category||!e.has(t.category)));return i.length>0&&r.push(i),n.push(...r.flatMap((e,t)=>t>0?[{type:`separator`},...e]:e)),n}return t.items.length>0&&n.push({type:`cards`,value:t.items.map(Xr)}),n},hydration:[`picker`],supportedTransports:Kr},$r=[`mcp-app`,`browser`,`export`];function H(e){return typeof e==`object`&&!!e}function ei(e){return H(e)&&typeof e.type==`string`}function ti(e){return Array.isArray(e)&&e.every(ei)}function ni(e){return H(e)&&typeof e.label==`string`&&(typeof e.value==`string`||typeof e.value==`number`)}function ri(e){return Array.isArray(e)?e.flatMap(e=>{if(!H(e)||typeof e.heading!=`string`)return[];let t=typeof e.content==`string`||ti(e.content)?e.content:``;return[{heading:e.heading,content:t}]}):[]}function ii(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 ai(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 oi(e){let t={type:`table`};if(e.title&&(t.title=e.title),e.value!==void 0)t.value=e.value;else if(e.headers||e.rows){let n={};e.headers&&(n.headers=e.headers),e.rows&&(n.rows=e.rows),t.value=n}return t}var si={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(ni):void 0,sections:H(e)?ri(e.sections):[],tables:H(e)?ii(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(...ai(e));for(let e of t.tables??[])n.push(oi(e));return n},hydration:[],supportedTransports:$r},ci=[`mcp-app`,`browser`];function U(e){return typeof e==`object`&&!!e}function li(e){return Array.isArray(e)?e.filter(e=>typeof e==`string`):[]}function ui(e){return Array.isArray(e)?e.flatMap(e=>{if(!U(e)||typeof e.id!=`string`||typeof e.body!=`string`)return[];let t=e.type;if(t!==`COMMENT`&&t!==`DELETION`&&t!==`GLOBAL_COMMENT`)return[];let n=U(e.anchor)?e.anchor:{};return[{id:e.id,type:t,body:e.body,anchor:{blockId:n.blockId},author:typeof e.author==`string`?e.author:void 0,createdAt:typeof e.createdAt==`string`?e.createdAt:void 0}]}):[]}function di(e){return Array.isArray(e)?e.flatMap(e=>{if(!U(e)||typeof e.id!=`string`||typeof e.label!=`string`)return[];let t=e.outcome;return t!==`approved`&&t!==`rejected`&&t!==`changes-requested`&&t!==`deferred`?[]:[{id:e.id,label:e.label,outcome:t,description:typeof e.description==`string`?e.description:void 0}]}):[]}var fi={id:`review@1`,label:`Review`,description:`Review surface with criteria checklist, annotation items, and approval controls.`,inputSchema:{type:`object`,properties:{title:{type:`string`},criteria:{type:`array`,items:{type:`string`}},annotations:{type:`array`,items:{type:`object`,required:[`id`,`body`,`type`,`anchor`],properties:{id:{type:`string`},type:{type:`string`,enum:[`COMMENT`,`DELETION`,`GLOBAL_COMMENT`]},body:{type:`string`},anchor:{type:`object`,properties:{blockId:{type:`string`},contextHash:{type:`string`}}},author:{type:`string`},createdAt:{type:`string`}},additionalProperties:!1}},approval:{type:`object`,properties:{prompt:{type:`string`},options:{type:`array`,items:{type:`object`,required:[`id`,`label`,`outcome`],properties:{id:{type:`string`},label:{type:`string`},outcome:{type:`string`,enum:[`approved`,`rejected`,`changes-requested`,`deferred`]},description:{type:`string`}},additionalProperties:!1}},requireComment:{type:`boolean`}},required:[`prompt`,`options`]},comment:{type:`string`}},required:[`title`,`criteria`],additionalProperties:!1},defaultLayout:{},blocksFromData:e=>{let t=[];if(!U(e))return t;let n=typeof e.title==`string`?e.title:`Review`;t.push({type:`heading`,value:n});let r=li(e.criteria);r.length>0&&t.push({type:`checklist`,value:r.map(e=>({label:e,checked:!1}))});let i=ui(e.annotations);i.length>0&&t.push({type:`annotation`,value:i});let a=e.approval;if(U(a)){let e=di(a.options);e.length>0&&t.push({type:`approval`,value:{prompt:typeof a.prompt==`string`?a.prompt:``,options:e,requireComment:typeof a.requireComment==`boolean`?a.requireComment:!1}})}let o=typeof e.comment==`string`?e.comment:void 0;return o&&t.push({type:`markdown`,value:o}),t},hydration:[`checklist`],supportedTransports:ci},pi=[`mcp-app`,`browser`,`export`];function W(e){return typeof e==`object`&&!!e}function mi(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 hi(e){return e.map(e=>({title:e.label,status:e.status,badge:e.badge}))}var gi={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)?mi(e.categories):[],n=[];for(let e of t)n.push({type:`heading`,value:e.category}),n.push({type:`cards`,value:hi(e.items)});return n},hydration:[],supportedTransports:pi},_i=[`mcp-app`,`browser`,`export`];function vi(e){return typeof e==`object`&&!!e}function yi(e){return Array.isArray(e)?e.flatMap(e=>!vi(e)||typeof e.title!=`string`?[]:[{title:e.title,description:typeof e.description==`string`?e.description:void 0,timestamp:typeof e.timestamp==`string`?e.timestamp:void 0,status:typeof e.status==`string`?e.status:void 0}]):[]}function bi(e){return Array.isArray(e)?{entries:yi(e)}:vi(e)?{entries:yi(e.entries??e.events??e.items),title:typeof e.title==`string`?e.title:void 0}:{entries:[]}}var G={type:`array`,items:{type:`object`,required:[`title`],properties:{title:{type:`string`},description:{type:`string`},timestamp:{type:`string`},status:{type:`string`}},additionalProperties:!1}},xi={id:`timeline@1`,label:`Timeline`,description:`Static timeline events rendered as a timeline block.`,inputSchema:{oneOf:[G,{type:`object`,properties:{title:{type:`string`},entries:G,events:G,items:G},anyOf:[{required:[`entries`]},{required:[`events`]},{required:[`items`]}],additionalProperties:!1}]},defaultLayout:{},blocksFromData:e=>{let{entries:t,title:n}=bi(e),r=[];return n&&r.push({type:`heading`,value:n}),r.push({type:`timeline`,value:t}),r},hydration:[],supportedTransports:_i},Si=[`mcp-app`,`browser`,`export`];function K(e){return typeof e==`object`&&!!e}function Ci(e){return K(e)&&typeof e.label==`string`}function wi(e){return{name:e.label,children:Array.isArray(e.children)?e.children.filter(Ci).map(wi):[]}}function Ti(e){if(!K(e))return{};let t=e.root;return Ci(t)?wi(t):K(t)?t:e}var Ei={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:Ti(e)}],hydration:[`tree`],supportedTransports:Si},q=new gr;q.register(fi),q.register(br),q.register(Nr),q.register(zr),q.register(Qr),q.register(si),q.register(xi),q.register(Ei),q.register(Er),q.register(Ur),q.register(Gr),q.register(gi);var Di=3e3,Oi=2e3;function J(e){let t=e.querySelector(`.bk-action-feedback`);t&&(t.style.display=`block`,t.setAttribute(`data-feedback-state`,`sent`),setTimeout(()=>{t.style.display=`none`},Di));let n=e.querySelectorAll(`button.bk-action`);for(let e of n)e.disabled=!0;setTimeout(()=>{for(let e of n)e.disabled=!1},Oi)}function ki(e,t){let n=[],r=new WeakSet;for(let i of Array.from(e.querySelectorAll(`.bk-text-submit`))){let a=i.getAttribute(`data-action-id`);if(!a)continue;r.add(i);let o=i.querySelector(`.bk-input`),s=i.querySelector(`.bk-action--primary`);if(!o||!s)continue;r.add(o),r.add(s);let c=()=>{t(a,o.value),J(e)};s.addEventListener(`click`,c),n.push(()=>s.removeEventListener(`click`,c))}for(let i of Array.from(e.querySelectorAll(`.bk-form`))){let a=i.getAttribute(`data-action-id`);if(!a)continue;r.add(i);for(let e of i.querySelectorAll(`[data-action-id]`))r.add(e);let o=n=>{n.preventDefault();let r=new FormData(i),o={};r.forEach((e,t)=>{o[t]=String(e)}),t(a,JSON.stringify(o)),J(e)};i.addEventListener(`submit`,o),n.push(()=>i.removeEventListener(`submit`,o))}for(let i of Array.from(e.querySelectorAll(`[data-action-id]`))){if(r.has(i))continue;let a=i.getAttribute(`data-action-id`);if(!a)continue;if(i.tagName===`SELECT`){let r=i,o=()=>{t(a,r.value),J(e)};r.addEventListener(`change`,o),n.push(()=>r.removeEventListener(`change`,o));continue}let o=()=>{t(a),J(e)};i.addEventListener(`click`,o),n.push(()=>i.removeEventListener(`click`,o))}return()=>{for(let e of n)e()}}var Ai=`
|
|
1738
2555
|
.bk-checklist-progress {
|
|
1739
2556
|
margin-bottom: var(--dt-space-3);
|
|
1740
2557
|
color: var(--dt-text-secondary);
|
|
@@ -1748,8 +2565,8 @@ ${c}
|
|
|
1748
2565
|
margin: 0;
|
|
1749
2566
|
accent-color: var(--dt-accent-fg);
|
|
1750
2567
|
}
|
|
1751
|
-
`;function pi(e){let t=e.createElement(`style`);return t.textContent=fi,t}function mi(e,t){let n=t.filter(e=>e.getAttribute(`data-checked`)===`true`).length,r=t.length;return e.textContent=`${n}/${r} complete`,{complete:n,total:r}}function hi(e,t={}){let n=Array.from(e.querySelectorAll(`.bk-checklist-item`));if(n.length===0)return()=>{};let r=e.ownerDocument,i=pi(r),a=r.createElement(`div`);a.className=`bk-checklist-progress`,e.parentElement?.insertBefore(a,e),r.head?.appendChild(i);let o=[];for(let[e,i]of n.entries()){let s=i.querySelector(`.bk-checklist-icon`),c=i.querySelector(`.bk-checklist-label`)?.textContent?.trim()??``,l=r.createElement(`input`);l.type=`checkbox`,l.className=`bk-checklist-box`,l.checked=i.getAttribute(`data-checked`)===`true`;let u=()=>{i.setAttribute(`data-checked`,String(l.checked));let r=mi(a,n);t.onAction?.(`checklist`,JSON.stringify({index:e,label:c,checked:l.checked,complete:r.complete,total:r.total}))};l.addEventListener(`change`,u),o.push(()=>{l.removeEventListener(`change`,u)}),s?s.replaceWith(l):i.insertBefore(l,i.firstChild)}return mi(a,n),()=>{for(let e of o)e();a.remove(),i.remove();for(let e of n){let t=e.querySelector(`.bk-checklist-box`);if(!t)continue;let n=r.createElement(`span`);n.className=`bk-checklist-icon`,n.textContent=e.getAttribute(`data-checked`)===`true`?`✓`:`×`,t.replaceWith(n)}}}var W=`data-sort-label`,G=`data-sort-dir`,gi=new Intl.Collator(void 0,{numeric:!0,sensitivity:`base`});function K(e){let t=e.getAttribute(W);if(t!==null)return t;let n=e.textContent?.trim()??``;return e.setAttribute(W,n),n}function _i(e,t,n){for(let[r,i]of e.entries())i.textContent=K(i),r===t?(i.setAttribute(G,n),i.append(` ${n===`asc`?`▲`:`▼`}`)):i.removeAttribute(G)}function vi(e,t){return e.querySelectorAll(`td`)[t]?.textContent?.trim()??``}function yi(e){let t=Array.from(e.querySelectorAll(`thead th`)),n=e.querySelector(`tbody`);if(!n||t.length===0)return()=>{};let r=Array.from(n.querySelectorAll(`tr`)),i=e.parentElement,a=null,o=`asc`,s=``,c=null,l=[],u=()=>{let e=[...r];if(a!==null){let t=a;e.sort((e,n)=>{let r=gi.compare(vi(e,t),vi(n,t));return o===`asc`?r:-r})}for(let t of e){n.appendChild(t);let e=t.textContent?.toLowerCase()??``;t.hidden=s.length>0&&!e.includes(s)}_i(t,a,o)};for(let[e,n]of t.entries()){K(n);let t=()=>{a===e?o=o===`asc`?`desc`:`asc`:(a=e,o=`asc`),u()};n.style.cursor=`pointer`,n.addEventListener(`click`,t),l.push(()=>{n.removeEventListener(`click`,t)})}if(r.length>5&&i){c=i.ownerDocument.createElement(`input`),c.className=`bk-table-filter`,c.placeholder=`Filter...`;let t=()=>{s=c?.value.toLowerCase().trim()??``,u()};i.insertBefore(c,e),c.addEventListener(`input`,t),l.push(()=>{c?.removeEventListener(`input`,t),c?.remove(),c=null})}return u(),()=>{for(let e of l)e();for(let e of t)e.textContent=K(e),e.removeAttribute(G),e.removeAttribute(W),e.style.removeProperty(`cursor`);for(let e of r)e.hidden=!1}}function bi(e){for(let t of Array.from(e.children))if(t.tagName===`SUMMARY`)return t;return null}function xi(e){let t=e.closest(`details`);if(!t)return null;let n=t.parentElement;for(;n;){if(n.tagName===`DETAILS`)return bi(n);n=n.parentElement}return null}function Si(e){return Array.from(e.querySelectorAll(`summary`))}function q(e){return e.open||e.hasAttribute(`open`)}function J(e,t){e.open=t,t?e.setAttribute(`open`,``):e.removeAttribute(`open`)}function Y(e,t){e.textContent=t.every(e=>q(e))?`Collapse all`:`Expand all`}function Ci(e){let t=Array.from(e.querySelectorAll(`details`));if(t.length===0)return()=>{};let n=e.ownerDocument.createElement(`button`);n.type=`button`,n.className=`bk-tree-toggle-all`,e.insertBefore(n,e.firstChild);let r=()=>{let e=t.some(e=>!q(e));for(let n of t)J(n,e);Y(n,t)},i=()=>{r()};n.addEventListener(`click`,i);let a=t.map(e=>{let r=()=>{Y(n,t)};return e.addEventListener(`toggle`,r),()=>{e.removeEventListener(`toggle`,r)}}),o=Si(e).map(t=>{t.tabIndex=0;let n=n=>{let r=Si(e),i=r.indexOf(t);if(i===-1)return;let a=t.closest(`details`);if(n.key===`ArrowDown`){r[i+1]?.focus(),n.preventDefault();return}if(n.key===`ArrowUp`){r[i-1]?.focus(),n.preventDefault();return}if(n.key===`ArrowRight`){if(a&&!q(a))J(a,!0);else{let e=r[i+1];e&&a?.contains(e)&&e.focus()}n.preventDefault();return}n.key===`ArrowLeft`&&(a&&q(a)?J(a,!1):xi(t)?.focus(),n.preventDefault())};return t.addEventListener(`keydown`,n),()=>{t.removeEventListener(`keydown`,n)}});return Y(n,t),()=>{n.removeEventListener(`click`,i);for(let e of a)e();for(let e of o)e();n.remove()}}var X=`data-hydrated`;function Z(e,t){let n=[];return e.matches(t)&&n.push(e),n.push(...Array.from(e.querySelectorAll(t))),n}function Q(e,t,n){e.push(()=>{n(),t.removeAttribute(X)})}function wi(e={}){let t=e.container??document.body,n=[];for(let e of Z(t,`.bk-table`))e.hasAttribute(X)||(e.setAttribute(X,``),Q(n,e,yi(e)));for(let e of Z(t,`.bk-tree`))e.hasAttribute(X)||(e.setAttribute(X,``),Q(n,e,Ci(e)));for(let r of Z(t,`.bk-checklist`))r.hasAttribute(X)||(r.setAttribute(X,``),Q(n,r,hi(r,e)));for(let r of Z(t,`.bk-actions`))if(!r.hasAttribute(X)){if(r.setAttribute(X,``),e.onAction){Q(n,r,di(r,e.onAction));continue}n.push(()=>{r.removeAttribute(X)})}return()=>{for(let e of n)e();n.length=0}}var Ti=`aikit-report-theme`,Ei=e,Di=t,Oi=`aikit-report-block-styles`,ki=`<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><circle cx="12" cy="12" r="5"/><path d="M12 1v2M12 21v2M4.22 4.22l1.42 1.42M18.36 18.36l1.42 1.42M1 12h2M21 12h2M4.22 19.78l1.42-1.42M18.36 5.64l1.42-1.42"/></svg>`,Ai=`<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"/></svg>`;function ji(e){if(e.getElementById(Oi))return;let t=e.createElement(`style`);t.id=Oi,t.textContent=On(),e.head.appendChild(t)}function Mi(e){return e.flatMap(e=>Ni(e))}function Ni(e){if(e.type===`section`)return[{...e,type:`heading`,level:Number(e.level)||2,value:e.value??e.title}];if(e.type===`stacked-bar`){let t=Array.isArray(e.segments)?e.segments:[];return[{type:`progress`,title:e.title,value:t.map(e=>{let t=e;return{label:String(t.label??``),value:Number(t.percent)||0,max:100,color:t.color}})}]}if(e.type===`summary`){let t=Array.isArray(e.children)?Mi(e.children):[];return[...e.title?[{type:`heading`,id:e.id,level:Number(e.level)||2,value:e.title}]:[],...t]}return e.type===`grid`?(Array.isArray(e.children)?e.children:[]).flatMap(e=>{let t=e;return[...t.title?[{type:`heading`,level:3,value:t.title}]:[],...Mi(Array.isArray(t.blocks)?t.blocks:[])]}):e.type===`chart`&&e.value===void 0?[{...e,value:{chartType:e.chartType,data:e.data,xKey:e.xKey,yKeys:e.yKeys}}]:e.type===`progress`&&e.value===void 0&&e.items?[{...e,value:{items:e.items}}]:e.type===`table`&&e.value===void 0&&(e.headers||e.rows)?[{...e,value:{headers:e.headers,rows:e.rows}}]:e.type===`tags`&&e.value===void 0&&e.items?[{...e,value:{items:e.items}}]:[e]}function Pi(e,t,n,r){ji(r),e.innerHTML=Yn(Mi(t),{mode:`standalone`,theme:n}),wi({container:e})}function Fi(e){return e??(typeof window<`u`?window.localStorage:void 0)}function Ii(e){return e||(typeof window<`u`&&typeof window.matchMedia==`function`?e=>window.matchMedia(e):()=>({matches:!1}))}function Li(e){return e===`light`||e===`dark`?e:null}function Ri(e=document,t,n){let r=Li(Fi(t)?.getItem(`aikit-report-theme`))??(Ii(n)(`(prefers-color-scheme: light)`).matches?`light`:`dark`);return e.documentElement.setAttribute(`data-theme`,r),r}function zi(e,t,n){return e.documentElement.setAttribute(`data-theme`,t),n?.setItem(Ti,t),t}function Bi(e,t){return zi(e,(Li(e.documentElement.getAttribute(`data-theme`))??`dark`)===`dark`?`light`:`dark`,t)}function Vi(e){if(!e)return new Date().toLocaleString();let t=new Date(String(e));return Number.isNaN(t.getTime())?String(e):t.toLocaleString(void 0,{dateStyle:`medium`,timeStyle:`short`})}function Hi(e,t){e.setAttribute(`aria-label`,t===`dark`?`Switch to light theme`:`Switch to dark theme`),e.innerHTML=t===`dark`?ki:Ai}function $(e,t,n=!1){let r=e.querySelector(`.aikit-toolbox-toggle`),i=e.querySelector(`.aikit-toolbox-menu`);!r||!i||(i.hidden=!t,r.setAttribute(`aria-expanded`,String(t)),t?e.querySelector(`.aikit-toolbox-item`)?.focus():n&&r.focus())}function Ui(e,t){return zn({title:e.title||`Report`,subtitle:e.subtitle,transport:`browser`,actionsHtml:t?`<button class="report-menu-toggle" type="button" aria-expanded="false">Sections</button>`:void 0})}function Wi(e,t,n){let r=n.getComputedStyle(e),i=Array.from(r).map(e=>`${e}:${r.getPropertyValue(e)}${r.getPropertyPriority(e)?` !important`:``};`).join(``);t.setAttribute(`style`,i);for(let r=0;r<e.children.length;r+=1){let i=e.children[r],a=t.children[r];i&&a&&Wi(i,a,n)}}async function Gi(e){let t=e.defaultView;if(!t)throw Error(`Window unavailable`);let n=Math.max(e.documentElement.scrollWidth,e.documentElement.clientWidth,e.body?.scrollWidth??0),r=Math.max(e.documentElement.scrollHeight,e.documentElement.clientHeight,e.body?.scrollHeight??0),i=t.devicePixelRatio||1,a=e.createElement(`canvas`);a.width=Math.max(1,Math.ceil(n*i)),a.height=Math.max(1,Math.ceil(r*i));let o=a.getContext(`2d`);if(!o)throw Error(`Canvas context unavailable`);o.scale(i,i);let s=e.documentElement.cloneNode(!0);if(!(s instanceof Element))throw Error(`Document clone failed`);s.setAttribute(`xmlns`,`http://www.w3.org/1999/xhtml`),s.querySelectorAll(`script`).forEach(e=>{e.remove()}),Wi(e.documentElement,s,t);let c=[`<svg xmlns="http://www.w3.org/2000/svg" width="${n}" height="${r}" viewBox="0 0 ${n} ${r}">`,`<foreignObject width="100%" height="100%">${new XMLSerializer().serializeToString(s)}</foreignObject>`,`</svg>`].join(``),l=new Blob([c],{type:`image/svg+xml;charset=utf-8`}),u=t.URL.createObjectURL(l);try{await new Promise((e,i)=>{let a=new t.Image;a.onload=()=>{o.drawImage(a,0,0,n,r),e()},a.onerror=()=>i(Error(`ForeignObject render failed`)),a.src=u})}finally{t.URL.revokeObjectURL(u)}let d=await new Promise(e=>a.toBlob(e,`image/png`));if(!d)throw Error(`PNG export failed`);let f=t.URL.createObjectURL(d),p=e.createElement(`a`),m=new Date().toISOString().replace(/[.:]/g,`-`);p.href=f,p.download=`aikit-screenshot-${m}.png`,e.body?.appendChild(p),p.click(),p.remove(),t.URL.revokeObjectURL(f)}function Ki(e,t,n={}){let r=n.document??e.ownerDocument??document,i=Fi(n.storage),a=Li(r.documentElement.getAttribute(`data-theme`))??Ri(r,i,n.matchMedia),o=r.defaultView,s=Array.isArray(t.sidebar)&&t.sidebar.length>0,c=s?t.sidebar??[]:[],l=Ui(t,s),u=Bn({generatedAt:Vi(t.timestamp??t.generatedAt),badge:t.badge});e.innerHTML=`<div class="report-shell"><div class="report-header-shell">${l}</div><div class="report-body${s?` has-sidebar`:``}">${s?`<aside class="report-sidebar"><nav class="report-sidebar__nav" aria-label="Report sections">${c.map(e=>`<a class="report-sidebar__link" href="${Di(e.href)}">${Ei(e.label)}</a>`).join(``)}</nav></aside>`:``}<main class="report-main"><div class="report-main__content"></div></main></div><div class="report-footer-shell">${u}</div><button class="report-overlay" type="button" aria-label="Close navigation"${s?``:` hidden`}></button></div>`;let d=e.querySelector(`.report-shell`),f=e.querySelector(`.report-menu-toggle`),p=e.querySelector(`.report-overlay`),m=e.querySelector(`.aikit-toolbox-toggle`),h=e.querySelector(`.aikit-toolbox-item`),g=e.querySelector(`.aikit-theme-toggle`),_=e.querySelector(`.report-main__content`);if(!(!d||!g||!_)&&(Hi(g,a),Pi(_,t.blocks,a,r),o&&(o.screenshotPage=async()=>{let t=o.scrollX,n=o.scrollY;$(e,!1),o.scrollTo(0,0),await new Promise(e=>o.requestAnimationFrame(()=>e()));try{await Gi(r)}finally{o.scrollTo(t,n)}}),m?.addEventListener(`click`,()=>{$(e,!!e.querySelector(`.aikit-toolbox-menu`)?.hidden)}),m?.addEventListener(`keydown`,t=>{(t.key===`ArrowDown`||t.key===`Enter`||t.key===` `)&&(t.preventDefault(),$(e,!0))}),h?.addEventListener(`click`,()=>{o?.screenshotPage?.()}),g.addEventListener(`click`,()=>Hi(g,Bi(r,i))),f?.addEventListener(`click`,()=>{let e=!d.classList.contains(`is-sidebar-open`);d.classList.toggle(`is-sidebar-open`,e),f.setAttribute(`aria-expanded`,e?`true`:`false`)}),r.addEventListener(`click`,t=>{let n=e.querySelector(`.aikit-toolbox`),r=t.target;n&&r&&n.contains(r)||$(e,!1)}),p?.addEventListener(`click`,()=>{d.classList.remove(`is-sidebar-open`),f?.setAttribute(`aria-expanded`,`false`)}),s)){for(let t of e.querySelectorAll(`.report-sidebar__link`))t.addEventListener(`click`,()=>{d.classList.remove(`is-sidebar-open`),f?.setAttribute(`aria-expanded`,`false`)});r.addEventListener(`keydown`,t=>{t.key===`Escape`&&($(e,!1,!0),d.classList.remove(`is-sidebar-open`),f?.setAttribute(`aria-expanded`,`false`))})}}var qi=document.getElementById(`report-root`);if(qi){Ri();let e=window.REPORT_DATA;e&&Array.isArray(e.blocks)&&(document.title=e.title||`Report`,Ki(qi,e))}</script>
|
|
1752
|
-
<style rel="stylesheet" crossorigin>:root{--dt-bg-canvas:#0c0c0f;--dt-bg-primary:#131316;--dt-bg-secondary:#1c1c21;--dt-bg-tertiary:#25252b;--dt-text-primary:#f0efe7;--dt-text-secondary:#a8a69e;--dt-text-tertiary:#6b6a65;--dt-border-default:#2a2a30;--dt-border-muted:#35353c;--dt-border-subtle:#1f1f24;--dt-glass-bg:#131316b8;--dt-glass-blur:16px;--dt-glass-border:#ffffff0f;--dt-glass-hover-border:#45c8a814;--dt-glass-shadow:0 0 0 1px #ffffff0a, 0 2px 8px #00000040, 0 8px 32px #00000026;--dt-accent-fg:#45c8a8;--dt-accent-emphasis:#0f766e;--dt-accent-foreground:#fff;--dt-accent-muted:#45c8a84d;--dt-accent-subtle:#45c8a81a;--aikit-accent:var(--dt-accent-subtle);--dt-success-fg:#2bd47c;--dt-success-emphasis:#22b86b;--dt-success-muted:#2bd47c4d;--dt-success-subtle:#2bd47c1a;--dt-danger-fg:#f56a6a;--dt-danger-emphasis:#e54848;--dt-danger-muted:#f56a6a4d;--dt-danger-subtle:#f56a6a1a;--dt-warning-fg:#f5b342;--dt-warning-emphasis:#e89e2e;--dt-warning-muted:#f5b3424d;--dt-warning-subtle:#f5b3421a;--dt-info-fg:#6baef8;--dt-info-emphasis:#5090e8;--dt-info-muted:#6baef84d;--dt-info-subtle:#6baef81a;--dt-purple-fg:#c89bff;--dt-purple-emphasis:#b07ef0;--dt-purple-muted:#c89bff4d;--dt-purple-subtle:#c89bff1a;--dt-agent-researcher:#818cf8;--dt-agent-implementer:#34d399;--dt-agent-frontend:#f472b6;--dt-agent-reviewer:#fbbf24;--dt-agent-debugger:#f87171;--dt-agent-security:#fb923c;--dt-agent-explorer:#38bdf8;--dt-agent-documenter:#c084fc;--dt-agent-refactor:#2dd4bf;--dt-agent-planner:#a78bfa;--dt-agent-orchestrator:#94a3b8;--dt-status-pending:#94a3b8;--dt-status-in-progress:#60a5fa;--dt-status-done:#4ade80;--dt-status-blocked:#f87171;--dt-font-sans:Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--dt-font-mono:"JetBrains Mono", "Geist Mono", "Fira Code", "SF Mono", Consolas, monospace;--dt-font-size-xs:.75rem;--dt-font-size-sm:.8125rem;--dt-font-size-base:.875rem;--dt-font-size-lg:1rem;--dt-font-size-xl:1.25rem;--dt-font-size-2xl:1.5rem;--dt-font-size-3xl:2rem;--dt-font-size-4xl:2.5rem;--dt-space-1:.25rem;--dt-space-2:.5rem;--dt-space-3:.75rem;--dt-space-4:1rem;--dt-space-5:1.25rem;--dt-space-6:1.5rem;--dt-space-8:2rem;--dt-space-10:2.5rem;--dt-space-12:3rem;--dt-radius-xs:4px;--dt-radius-sm:6px;--dt-radius-md:8px;--dt-radius-lg:12px;--dt-radius-xl:16px;--dt-radius-pill:999px;--dt-shadow-sm:0 0 0 1px #ffffff05, 0 1px 3px #0000004d;--dt-shadow-md:0 0 0 1px #ffffff08, 0 2px 6px #00000059, 0 4px 12px #0003;--dt-shadow-lg:0 0 0 1px #ffffff0a, 0 2px 8px #0006, 0 8px 32px #00000040;--dt-glow-primary:radial-gradient(circle at 50% 50%, #45c8a81f, #6baef80d 45%, transparent 70%);--dt-glow-secondary:radial-gradient(circle at 50% 50%, #c89bff0f, transparent 50%);--dt-glow-accent:#45c8a859;--dt-glow-success:#2bd47c59;--dt-glow-danger:#f56a6a59;--dt-glow-warning:#f5b34259;--dt-glow-info:#6baef859;--dt-glow-purple:#c89bff59;--dt-annotation-comment:#45c8a8;--dt-annotation-comment-bg:#45c8a826;--dt-annotation-deletion:#f56a6a;--dt-annotation-deletion-bg:#f56a6a26;--dt-annotation-hover:#ffffff0a;--dt-transition-fast:.12s cubic-bezier(.25, .46, .45, .94);--dt-transition-normal:.2s cubic-bezier(.25, .46, .45, .94);--dt-transition-slow:.3s cubic-bezier(.16, 1, .3, 1);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-theme=light]{--dt-bg-canvas:#f5f4ee;--dt-bg-primary:#faf9f4;--dt-bg-secondary:#f0efe8;--dt-bg-tertiary:#fff;--dt-text-primary:#1a1a17;--dt-text-secondary:#6b6a65;--dt-text-tertiary:#a8a69e;--dt-border-default:#e3e2da;--dt-border-muted:#d6d5cd;--dt-border-subtle:#eeede6;--dt-glass-bg:#faf9f4c7;--dt-glass-border:#0000000f;--dt-glass-hover-border:#0f8f7a14;--dt-glass-shadow:0 0 0 1px #00000005, 0 2px 8px #0000000a, 0 8px 24px #00000008;--dt-accent-fg:#0f8f7a;--dt-accent-emphasis:#0f766e;--dt-accent-foreground:#fff;--dt-accent-muted:#0f8f7a33;--dt-accent-subtle:#0f8f7a12;--aikit-accent:var(--dt-accent-subtle);--dt-success-fg:#16a34a;--dt-success-emphasis:#15803d;--dt-success-muted:#16a34a33;--dt-success-subtle:#16a34a12;--dt-danger-fg:#dc2626;--dt-danger-emphasis:#b91c1c;--dt-danger-muted:#dc262633;--dt-danger-subtle:#dc262612;--dt-warning-fg:#d97706;--dt-warning-emphasis:#b45309;--dt-warning-muted:#d9770633;--dt-warning-subtle:#d9770612;--dt-info-fg:#2563eb;--dt-info-emphasis:#1d4ed8;--dt-info-muted:#2563eb33;--dt-info-subtle:#2563eb12;--dt-purple-fg:#7c3aed;--dt-purple-emphasis:#6d28d9;--dt-purple-muted:#7c3aed33;--dt-purple-subtle:#7c3aed12;--dt-shadow-sm:0 0 0 1px #00000005, 0 1px 3px #0000000f;--dt-shadow-md:0 0 0 1px #00000008, 0 2px 6px #0000000d, 0 4px 12px #00000008;--dt-shadow-lg:0 0 0 1px #00000008, 0 2px 8px #0000000f, 0 8px 32px #0000000a;--dt-glow-primary:radial-gradient(circle at 50% 50%, #0f8f7a12, #c89bff08 50%, transparent 70%);--dt-glow-secondary:radial-gradient(circle at 50% 50%, #f5b3420d, transparent 50%);--dt-annotation-comment:#0f8f7a;--dt-annotation-comment-bg:#0f8f7a1a;--dt-annotation-deletion:#dc2626;--dt-annotation-deletion-bg:#dc26261a;--dt-annotation-hover:#0000000a;--dt-glow-accent:#0f8f7a59;--dt-glow-success:#16a34a59;--dt-glow-danger:#dc262659;--dt-glow-warning:#d9770659;--dt-glow-info:#2563eb59;--dt-glow-purple:#7c3aed59;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}.aikit-header,.aikit-toolbox-menu,.aikit-copy-status,.aikit-footer{--aikit-background:var(--background,var(--dt-bg-primary));--aikit-foreground:var(--foreground,var(--dt-text-primary));--aikit-muted:var(--muted,var(--dt-bg-secondary));--aikit-muted-foreground:var(--muted-foreground,var(--dt-text-secondary));--aikit-border:var(--border,var(--dt-border-default));--aikit-accent:var(--accent,var(--dt-accent-subtle));--aikit-accent-foreground:var(--accent-foreground,var(--dt-accent-fg));--aikit-card:var(--card,var(--dt-bg-secondary));--aikit-card-foreground:var(--card-foreground,var(--dt-text-primary));--aikit-header-min-height:3.5rem;--aikit-header-padding-x:var(--dt-space-6);--aikit-header-padding-y:var(--dt-space-2);--aikit-header-gap:var(--dt-space-4);--aikit-header-actions-gap:var(--dt-space-2);--aikit-header-min-height-mobile:3rem;--aikit-header-padding-x-mobile:var(--dt-space-4);--aikit-header-padding-y-mobile:var(--dt-space-2);--aikit-header-gap-mobile:var(--dt-space-2);--aikit-header-actions-gap-mobile:var(--dt-space-1);--aikit-footer-padding:var(--dt-space-6) var(--dt-space-6) var(--dt-space-8);--aikit-footer-padding-mobile:var(--dt-space-4) var(--dt-space-4) var(--dt-space-6);--aikit-footer-padding-mobile-sm:var(--dt-space-4) var(--dt-space-3) var(--dt-space-6);--aikit-toolbox-menu-max-width-mobile:calc(100vw - 2rem)}.aikit-header{z-index:100;justify-content:space-between;align-items:center;gap:var(--aikit-header-gap);min-height:var(--aikit-header-min-height);padding:var(--aikit-header-padding-y) var(--aikit-header-padding-x);border-bottom:1px solid var(--aikit-border);background:color-mix(in srgb, var(--aikit-background) 85%, transparent);-webkit-backdrop-filter:blur(12px);display:flex;position:sticky;top:0}.aikit-header-brand,.aikit-header-actions{flex:none;min-width:0}.aikit-header-brand{color:var(--aikit-muted-foreground);font-family:var(--dt-font-mono);font-size:var(--dt-font-size-xs);letter-spacing:.14em;text-transform:uppercase;opacity:.8;align-items:center;font-weight:600;display:flex}.aikit-header-title{align-items:baseline;gap:var(--dt-space-2);flex:auto;justify-content:flex-start;min-width:0;min-height:0;display:flex}.aikit-header-title-text{min-width:0;color:var(--aikit-foreground);font-size:var(--dt-font-size-lg);white-space:nowrap;text-overflow:ellipsis;flex:auto;font-weight:600;line-height:1.2;overflow:hidden}.aikit-header-subtitle{min-width:0;color:var(--aikit-muted-foreground);font-size:var(--dt-font-size-sm);white-space:nowrap;text-overflow:ellipsis;flex:0 auto;line-height:1.2;overflow:hidden}.aikit-header-actions{justify-content:flex-end;align-items:center;gap:var(--aikit-header-actions-gap);min-width:max-content;display:flex}.aikit-header-actions>*{flex:none}.aikit-toolbox{position:relative}.aikit-theme-toggle,.aikit-toolbox-toggle{border:1px solid var(--aikit-border);border-radius:var(--dt-radius-md);min-width:2.25rem;height:2.25rem;color:var(--aikit-muted-foreground);cursor:pointer;font:inherit;transition:background var(--dt-transition-fast), border-color var(--dt-transition-fast), color var(--dt-transition-fast);background:0 0;justify-content:center;align-items:center;padding:0;display:inline-flex;position:relative}.aikit-theme-toggle:hover,.aikit-toolbox-toggle:hover{background:var(--aikit-muted);color:var(--aikit-foreground);border-color:var(--aikit-border)}.aikit-theme-toggle:focus-visible,.aikit-toolbox-toggle:focus-visible,.aikit-toolbox-item:focus-visible{outline:2px solid var(--aikit-accent-foreground);outline-offset:2px}.aikit-theme-toggle-icon{transition:opacity var(--dt-transition-normal), transform var(--dt-transition-normal);justify-content:center;align-items:center;display:inline-flex;position:absolute;inset:0}.aikit-theme-toggle-icon--sun{opacity:1;transform:scale(1)rotate(0)}.aikit-theme-toggle-icon--moon{opacity:0;transform:scale(.65)rotate(-40deg)}html[data-theme=dark] .aikit-theme-toggle-icon--sun{opacity:0;transform:scale(.65)rotate(40deg)}html[data-theme=dark] .aikit-theme-toggle-icon--moon{opacity:1;transform:scale(1)rotate(0)}.aikit-toolbox-menu{top:calc(100% + var(--dt-space-2));gap:var(--dt-space-1);min-width:11rem;padding:var(--dt-space-2);border:1px solid var(--aikit-border);border-radius:var(--dt-radius-lg);background:var(--aikit-background);background:color-mix(in srgb, var(--aikit-background) 98%, transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:var(--dt-shadow-lg);z-index:120;transform-origin:100% 0;animation:.15s cubic-bezier(.16,1,.3,1) aikit-menu-enter;display:grid;position:absolute;right:0}@keyframes aikit-menu-enter{0%{opacity:0;transform:scale(.95)translateY(-4px)}to{opacity:1;transform:scale(1)translateY(0)}}.aikit-toolbox-menu[hidden]{animation:none;display:none}.aikit-toolbox-item{align-items:center;gap:var(--dt-space-2);width:100%;min-height:2.25rem;padding:0 var(--dt-space-3);border-radius:var(--dt-radius-sm);color:var(--aikit-foreground);cursor:pointer;font:inherit;text-align:left;transition:background var(--dt-transition-fast), border-color var(--dt-transition-fast);background:0 0;border:1px solid #0000;display:inline-flex}.aikit-toolbox-item:hover{background:var(--aikit-muted);border-color:var(--aikit-border)}.aikit-toolbox-item svg{opacity:.7;flex:none}.aikit-copy-status{right:var(--dt-space-4);bottom:var(--dt-space-4);z-index:1000;max-width:min(28rem, calc(100vw - var(--dt-space-8)));padding:var(--dt-space-3) var(--dt-space-4);border:1px solid var(--aikit-border);border-radius:var(--dt-radius-md);background:var(--aikit-background);background:color-mix(in srgb, var(--aikit-background) 98%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--aikit-foreground);box-shadow:var(--dt-shadow-lg);font-size:var(--dt-font-size-sm);line-height:1.4;position:fixed}.aikit-copy-status[data-tone=error]{border-color:var(--dt-danger-muted);color:var(--dt-danger-fg)}.aikit-footer{z-index:1;padding:var(--aikit-footer-padding);border-top:1px solid var(--aikit-border);color:var(--aikit-muted-foreground);font-size:var(--dt-font-size-xs);justify-content:center;align-items:center;margin-top:auto;display:flex;position:relative}.aikit-footer-meta{justify-content:center;align-items:center;gap:var(--dt-space-2);text-align:center;flex-wrap:wrap;display:inline-flex}.aikit-footer-text{justify-content:center;align-items:center;gap:.35rem;min-width:0;display:inline-flex}.aikit-footer-brand{color:var(--aikit-foreground);font-family:var(--dt-font-mono);letter-spacing:.1em;text-transform:uppercase;opacity:.8;font-weight:600}.aikit-footer-timestamp,.aikit-footer-slot{min-width:0}.aikit-footer-slot{align-items:center;gap:.35rem;display:inline-flex}@supports not (background:color-mix(in srgb, white 50%, transparent)){.aikit-header,.aikit-toolbox-menu,.aikit-copy-status{background:var(--aikit-background)}}@media (width<=640px){.aikit-header-brand{display:none}.aikit-header{gap:var(--aikit-header-gap-mobile);padding-left:var(--aikit-header-padding-x-mobile);padding-right:var(--aikit-header-padding-x-mobile);min-height:var(--aikit-header-min-height-mobile)}.aikit-toolbox-menu{min-width:auto;max-width:var(--aikit-toolbox-menu-max-width-mobile);left:auto;right:0}.aikit-footer{padding:var(--aikit-footer-padding-mobile)}}@media (width<=400px){.aikit-header-actions{gap:var(--aikit-header-actions-gap-mobile)}.aikit-footer{padding:var(--aikit-footer-padding-mobile-sm)}.aikit-toolbox-menu{border-radius:var(--dt-radius-xl) var(--dt-radius-xl) 0 0;min-width:auto;max-width:100%;position:fixed;inset:auto 0 0;box-shadow:0 -4px 24px #0003}}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--dt-bg-primary);min-height:100vh;color:var(--dt-text-primary);font-family:var(--dt-font-sans);font-size:var(--dt-font-size-base);margin:0;line-height:1.6}body:before,body:after{content:"";pointer-events:none;position:fixed;inset:0}body:before{background:radial-gradient(circle at top right, var(--dt-accent-subtle), transparent 34%), radial-gradient(circle at bottom left, var(--dt-purple-subtle), transparent 32%)}body:after{background:linear-gradient(90deg, var(--dt-border-subtle) 1px, transparent 1px), linear-gradient(var(--dt-border-subtle) 1px, transparent 1px);background-size:var(--dt-space-16) var(--dt-space-16);opacity:.35;-webkit-mask-image:linear-gradient(#0000,#000 10% 90%,#0000);mask-image:linear-gradient(#0000,#000 10% 90%,#0000)}a{color:var(--dt-accent-fg);text-decoration:none}a:hover{color:var(--dt-accent-emphasis);text-decoration:underline}button,input,select,textarea{font:inherit}code,pre,kbd,samp{font-family:var(--dt-font-mono)}#report-root{min-height:100vh}.report-shell{z-index:1;grid-template-rows:auto 1fr auto;min-height:100vh;display:grid;position:relative}.report-header-shell,.report-footer-shell{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:color-mix(in srgb, var(--dt-bg-primary) 88%, transparent)}.report-header-shell{z-index:20;border-bottom:1px solid var(--dt-border-muted);position:sticky;top:0}.report-footer-shell{border-top:1px solid var(--dt-border-muted)}.report-header-shell .aikit-header,.report-main,.report-footer-shell .aikit-footer{width:min(calc(100% - (var(--dt-space-4) * 2)), 1400px);margin:0 auto}.report-header-shell .aikit-header{-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border-bottom:0;padding-left:0;padding-right:0;position:static}.report-header-shell .aikit-header-title{align-items:baseline}.report-header-shell .aikit-header-title-text{font-size:clamp(var(--dt-font-size-2xl), 3vw, var(--dt-font-size-3xl));letter-spacing:-.04em;line-height:1.05}.report-header-shell .aikit-header-subtitle{display:inline}.report-footer-shell .aikit-footer{border-top:0;min-height:64px;padding-left:0;padding-right:0}.report-menu-toggle{min-height:2.5rem;padding:0 var(--dt-space-3);border:1px solid var(--border,var(--dt-border-default));background:var(--card,var(--dt-bg-secondary));color:var(--card-foreground,var(--dt-text-primary));cursor:pointer;font:inherit;transition:background var(--dt-transition-fast), border-color var(--dt-transition-fast), color var(--dt-transition-fast);border-radius:999px;justify-content:center;align-items:center;display:inline-flex}.report-menu-toggle:hover{background:var(--muted,var(--dt-bg-tertiary))}.report-menu-toggle:focus-visible{outline:2px solid var(--accent-foreground,var(--dt-accent-fg));outline-offset:2px}.report-body{grid-template-columns:minmax(0,1fr);display:grid}.report-body.has-sidebar{width:min(calc(100% - (var(--dt-space-4) * 2)), 1400px);grid-template-columns:250px minmax(0,1fr);margin:0 auto}.report-sidebar{height:calc(100vh - 120px);padding:var(--dt-space-6) var(--dt-space-4) var(--dt-space-6) 0;align-self:start;position:sticky;top:92px}.report-sidebar__nav{gap:var(--dt-space-2);padding-right:var(--dt-space-4);border-right:1px solid var(--dt-border-muted);display:grid}.report-sidebar__link{color:var(--dt-text-secondary);align-items:center;display:inline-flex}.report-main{padding:var(--dt-space-8) 0}.report-body.has-sidebar .report-main{width:auto;padding-left:var(--dt-space-6);margin:0}.report-main__content{gap:var(--dt-space-6);display:grid}.report-main__content>*{min-width:0}.report-overlay{z-index:10;background:color-mix(in srgb, var(--dt-bg-canvas) 74%, transparent);opacity:0;pointer-events:none;border:0;padding:0;position:fixed;inset:0}.report-shell.is-sidebar-open .report-overlay{opacity:1;pointer-events:auto}@media (width<=1080px){.report-body.has-sidebar{grid-template-columns:minmax(0,1fr);width:auto;margin:0}.report-sidebar{inset:88px auto var(--dt-space-4) var(--dt-space-4);z-index:15;width:min(280px, calc(100vw - (var(--dt-space-4) * 2)));height:auto;transform:translateX(calc(-100% - var(--dt-space-4)));transition:transform var(--dt-transition-fast);padding:0;position:fixed}.report-sidebar__nav{padding:var(--dt-space-4);border:1px solid var(--dt-border-muted);border-right:1px solid var(--dt-border-muted);border-radius:var(--dt-radius-lg);background:var(--dt-bg-secondary);box-shadow:var(--dt-shadow-lg)}.report-shell.is-sidebar-open .report-sidebar{transform:translate(0)}.report-body.has-sidebar .report-main{padding-left:0}}@media (width<=720px){.report-header-shell .aikit-header-subtitle{display:none}}
|
|
2568
|
+
`;function ji(e){let t=e.createElement(`style`);return t.textContent=Ai,t}function Mi(e,t){let n=t.filter(e=>e.getAttribute(`data-checked`)===`true`).length,r=t.length;return e.textContent=`${n}/${r} complete`,{complete:n,total:r}}function Ni(e,t={}){let n=Array.from(e.querySelectorAll(`.bk-checklist-item`));if(n.length===0)return()=>{};let r=e.ownerDocument,i=ji(r),a=r.createElement(`div`);a.className=`bk-checklist-progress`,e.parentElement?.insertBefore(a,e),r.head?.appendChild(i);let o=[];for(let[e,i]of n.entries()){let s=i.querySelector(`.bk-checklist-icon`),c=i.querySelector(`.bk-checklist-label`)?.textContent?.trim()??``,l=r.createElement(`input`);l.type=`checkbox`,l.className=`bk-checklist-box`,l.checked=i.getAttribute(`data-checked`)===`true`;let u=()=>{i.setAttribute(`data-checked`,String(l.checked));let r=Mi(a,n);t.onAction?.(`checklist`,JSON.stringify({index:e,label:c,checked:l.checked,complete:r.complete,total:r.total}))};l.addEventListener(`change`,u),o.push(()=>{l.removeEventListener(`change`,u)}),s?s.replaceWith(l):i.insertBefore(l,i.firstChild)}return Mi(a,n),()=>{for(let e of o)e();a.remove(),i.remove();for(let e of n){let t=e.querySelector(`.bk-checklist-box`);if(!t)continue;let n=r.createElement(`span`);n.className=`bk-checklist-icon`,n.textContent=e.getAttribute(`data-checked`)===`true`?`✓`:`×`,t.replaceWith(n)}}}var Pi=`data-sort-label`,Fi=`data-sort-dir`,Ii=new Intl.Collator(void 0,{numeric:!0,sensitivity:`base`});function Li(e){let t=e.getAttribute(Pi);if(t!==null)return t;let n=e.textContent?.trim()??``;return e.setAttribute(Pi,n),n}function Ri(e,t,n){for(let[r,i]of e.entries())i.textContent=Li(i),r===t?(i.setAttribute(Fi,n),i.append(` ${n===`asc`?`▲`:`▼`}`)):i.removeAttribute(Fi)}function zi(e,t){return e.querySelectorAll(`td`)[t]?.textContent?.trim()??``}function Bi(e){let t=Array.from(e.querySelectorAll(`thead th`)),n=e.querySelector(`tbody`);if(!n||t.length===0)return()=>{};let r=Array.from(n.querySelectorAll(`tr`)),i=e.parentElement,a=null,o=`asc`,s=``,c=null,l=[],u=()=>{let e=[...r];if(a!==null){let t=a;e.sort((e,n)=>{let r=Ii.compare(zi(e,t),zi(n,t));return o===`asc`?r:-r})}for(let t of e){n.appendChild(t);let e=t.textContent?.toLowerCase()??``;t.hidden=s.length>0&&!e.includes(s)}Ri(t,a,o)};for(let[e,n]of t.entries()){Li(n);let t=()=>{a===e?o=o===`asc`?`desc`:`asc`:(a=e,o=`asc`),u()};n.style.cursor=`pointer`,n.addEventListener(`click`,t),l.push(()=>{n.removeEventListener(`click`,t)})}if(r.length>5&&i){c=i.ownerDocument.createElement(`input`),c.className=`bk-table-filter`,c.placeholder=`Filter...`;let t=()=>{s=c?.value.toLowerCase().trim()??``,u()};i.insertBefore(c,e),c.addEventListener(`input`,t),l.push(()=>{c?.removeEventListener(`input`,t),c?.remove(),c=null})}return u(),()=>{for(let e of l)e();for(let e of t)e.textContent=Li(e),e.removeAttribute(Fi),e.removeAttribute(Pi),e.style.removeProperty(`cursor`);for(let e of r)e.hidden=!1}}function Vi(e){for(let t of Array.from(e.children))if(t.tagName===`SUMMARY`)return t;return null}function Hi(e){let t=e.closest(`details`);if(!t)return null;let n=t.parentElement;for(;n;){if(n.tagName===`DETAILS`)return Vi(n);n=n.parentElement}return null}function Ui(e){return Array.from(e.querySelectorAll(`summary`))}function Y(e){return e.open||e.hasAttribute(`open`)}function Wi(e,t){e.open=t,t?e.setAttribute(`open`,``):e.removeAttribute(`open`)}function Gi(e,t){e.textContent=t.every(e=>Y(e))?`Collapse all`:`Expand all`}function Ki(e){let t=Array.from(e.querySelectorAll(`details`));if(t.length===0)return()=>{};let n=e.ownerDocument.createElement(`button`);n.type=`button`,n.className=`bk-tree-toggle-all`,e.insertBefore(n,e.firstChild);let r=()=>{let e=t.some(e=>!Y(e));for(let n of t)Wi(n,e);Gi(n,t)},i=()=>{r()};n.addEventListener(`click`,i);let a=t.map(e=>{let r=()=>{Gi(n,t)};return e.addEventListener(`toggle`,r),()=>{e.removeEventListener(`toggle`,r)}}),o=Ui(e).map(t=>{t.tabIndex=0;let n=n=>{let r=Ui(e),i=r.indexOf(t);if(i===-1)return;let a=t.closest(`details`);if(n.key===`ArrowDown`){r[i+1]?.focus(),n.preventDefault();return}if(n.key===`ArrowUp`){r[i-1]?.focus(),n.preventDefault();return}if(n.key===`ArrowRight`){if(a&&!Y(a))Wi(a,!0);else{let e=r[i+1];e&&a?.contains(e)&&e.focus()}n.preventDefault();return}n.key===`ArrowLeft`&&(a&&Y(a)?Wi(a,!1):Hi(t)?.focus(),n.preventDefault())};return t.addEventListener(`keydown`,n),()=>{t.removeEventListener(`keydown`,n)}});return Gi(n,t),()=>{n.removeEventListener(`click`,i);for(let e of a)e();for(let e of o)e();n.remove()}}var X=`data-hydrated`;function Z(e,t){let n=[];return e.matches(t)&&n.push(e),n.push(...Array.from(e.querySelectorAll(t))),n}function Q(e,t,n){e.push(()=>{n(),t.removeAttribute(X)})}function qi(e={}){let t=e.container??document.body,n=[];for(let e of Z(t,`.bk-table`))e.hasAttribute(X)||(e.setAttribute(X,``),Q(n,e,Bi(e)));for(let e of Z(t,`.bk-tree`))e.hasAttribute(X)||(e.setAttribute(X,``),Q(n,e,Ki(e)));for(let r of Z(t,`.bk-checklist`))r.hasAttribute(X)||(r.setAttribute(X,``),Q(n,r,Ni(r,e)));for(let r of Z(t,`.bk-actions`))if(!r.hasAttribute(X)){if(r.setAttribute(X,``),e.onAction){Q(n,r,ki(r,e.onAction));continue}n.push(()=>{r.removeAttribute(X)})}return()=>{for(let e of n)e();n.length=0}}var Ji=`aikit-report-theme`,Yi=e,Xi=t,Zi=`aikit-report-block-styles`,Qi=`<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><circle cx="12" cy="12" r="5"/><path d="M12 1v2M12 21v2M4.22 4.22l1.42 1.42M18.36 18.36l1.42 1.42M1 12h2M21 12h2M4.22 19.78l1.42-1.42M18.36 5.64l1.42-1.42"/></svg>`,$i=`<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"/></svg>`;function ea(e){if(e.getElementById(Zi))return;let t=e.createElement(`style`);t.id=Zi,t.textContent=qn(),e.head.appendChild(t)}function ta(e){return e.flatMap(e=>na(e))}function na(e){if(e.type===`section`)return[{...e,type:`heading`,level:Number(e.level)||2,value:e.value??e.title}];if(e.type===`stacked-bar`){let t=Array.isArray(e.segments)?e.segments:[];return[{type:`progress`,title:e.title,value:t.map(e=>{let t=e;return{label:String(t.label??``),value:Number(t.percent)||0,max:100,color:t.color}})}]}if(e.type===`summary`){let t=Array.isArray(e.children)?ta(e.children):[];return[...e.title?[{type:`heading`,id:e.id,level:Number(e.level)||2,value:e.title}]:[],...t]}return e.type===`grid`?(Array.isArray(e.children)?e.children:[]).flatMap(e=>{let t=e;return[...t.title?[{type:`heading`,level:3,value:t.title}]:[],...ta(Array.isArray(t.blocks)?t.blocks:[])]}):e.type===`chart`&&e.value===void 0?[{...e,value:{chartType:e.chartType,data:e.data,xKey:e.xKey,yKeys:e.yKeys}}]:e.type===`progress`&&e.value===void 0&&e.items?[{...e,value:{items:e.items}}]:e.type===`table`&&e.value===void 0&&(e.headers||e.rows)?[{...e,value:{headers:e.headers,rows:e.rows}}]:e.type===`tags`&&e.value===void 0&&e.items?[{...e,value:{items:e.items}}]:[e]}function ra(e,t,n,r){ea(r),e.innerHTML=mr(ta(t),{mode:`standalone`,theme:n}),qi({container:e})}function ia(e){return e??(typeof window<`u`?window.localStorage:void 0)}function aa(e){return e||(typeof window<`u`&&typeof window.matchMedia==`function`?e=>window.matchMedia(e):()=>({matches:!1}))}function oa(e){return e===`light`||e===`dark`?e:null}function sa(e=document,t,n){let r=oa(ia(t)?.getItem(`aikit-report-theme`))??(aa(n)(`(prefers-color-scheme: light)`).matches?`light`:`dark`);return e.documentElement.setAttribute(`data-theme`,r),r}function ca(e,t,n){return e.documentElement.setAttribute(`data-theme`,t),n?.setItem(Ji,t),t}function la(e,t){return ca(e,(oa(e.documentElement.getAttribute(`data-theme`))??`dark`)===`dark`?`light`:`dark`,t)}function ua(e){if(!e)return new Date().toLocaleString();let t=new Date(String(e));return Number.isNaN(t.getTime())?String(e):t.toLocaleString(void 0,{dateStyle:`medium`,timeStyle:`short`})}function da(e,t){e.setAttribute(`aria-label`,t===`dark`?`Switch to light theme`:`Switch to dark theme`),e.innerHTML=t===`dark`?Qi:$i}function $(e,t,n=!1){let r=e.querySelector(`.aikit-toolbox-toggle`),i=e.querySelector(`.aikit-toolbox-menu`);!r||!i||(i.hidden=!t,r.setAttribute(`aria-expanded`,String(t)),t?e.querySelector(`.aikit-toolbox-item`)?.focus():n&&r.focus())}function fa(e,t){return ir({title:e.title||`Report`,subtitle:e.subtitle,transport:`browser`,actionsHtml:t?`<button class="report-menu-toggle" type="button" aria-expanded="false">Sections</button>`:void 0})}function pa(e,t,n){let r=n.getComputedStyle(e),i=Array.from(r).map(e=>`${e}:${r.getPropertyValue(e)}${r.getPropertyPriority(e)?` !important`:``};`).join(``);t.setAttribute(`style`,i);for(let r=0;r<e.children.length;r+=1){let i=e.children[r],a=t.children[r];i&&a&&pa(i,a,n)}}async function ma(e){let t=e.defaultView;if(!t)throw Error(`Window unavailable`);let n=Math.max(e.documentElement.scrollWidth,e.documentElement.clientWidth,e.body?.scrollWidth??0),r=Math.max(e.documentElement.scrollHeight,e.documentElement.clientHeight,e.body?.scrollHeight??0),i=t.devicePixelRatio||1,a=e.createElement(`canvas`);a.width=Math.max(1,Math.ceil(n*i)),a.height=Math.max(1,Math.ceil(r*i));let o=a.getContext(`2d`);if(!o)throw Error(`Canvas context unavailable`);o.scale(i,i);let s=e.documentElement.cloneNode(!0);if(!(s instanceof Element))throw Error(`Document clone failed`);s.setAttribute(`xmlns`,`http://www.w3.org/1999/xhtml`),s.querySelectorAll(`script`).forEach(e=>{e.remove()}),pa(e.documentElement,s,t);let c=[`<svg xmlns="http://www.w3.org/2000/svg" width="${n}" height="${r}" viewBox="0 0 ${n} ${r}">`,`<foreignObject width="100%" height="100%">${new XMLSerializer().serializeToString(s)}</foreignObject>`,`</svg>`].join(``),l=new Blob([c],{type:`image/svg+xml;charset=utf-8`}),u=t.URL.createObjectURL(l);try{await new Promise((e,i)=>{let a=new t.Image;a.onload=()=>{o.drawImage(a,0,0,n,r),e()},a.onerror=()=>i(Error(`ForeignObject render failed`)),a.src=u})}finally{t.URL.revokeObjectURL(u)}let d=await new Promise(e=>a.toBlob(e,`image/png`));if(!d)throw Error(`PNG export failed`);let f=t.URL.createObjectURL(d),p=e.createElement(`a`),m=new Date().toISOString().replace(/[.:]/g,`-`);p.href=f,p.download=`aikit-screenshot-${m}.png`,e.body?.appendChild(p),p.click(),p.remove(),t.URL.revokeObjectURL(f)}function ha(e,t,n={}){let r=n.document??e.ownerDocument??document,i=ia(n.storage),a=oa(r.documentElement.getAttribute(`data-theme`))??sa(r,i,n.matchMedia),o=r.defaultView,s=Array.isArray(t.sidebar)&&t.sidebar.length>0,c=s?t.sidebar??[]:[],l=fa(t,s),u=ar({generatedAt:ua(t.timestamp??t.generatedAt),badge:t.badge});e.innerHTML=`<div class="report-shell"><div class="report-header-shell">${l}</div><div class="report-body${s?` has-sidebar`:``}">${s?`<aside class="report-sidebar"><nav class="report-sidebar__nav" aria-label="Report sections">${c.map(e=>`<a class="report-sidebar__link" href="${Xi(e.href)}">${Yi(e.label)}</a>`).join(``)}</nav></aside>`:``}<main class="report-main"><div class="report-main__content"></div></main></div><div class="report-footer-shell">${u}</div><button class="report-overlay" type="button" aria-label="Close navigation"${s?``:` hidden`}></button></div>`;let d=e.querySelector(`.report-shell`),f=e.querySelector(`.report-menu-toggle`),p=e.querySelector(`.report-overlay`),m=e.querySelector(`.aikit-toolbox-toggle`),h=e.querySelector(`.aikit-toolbox-item`),g=e.querySelector(`.aikit-theme-toggle`),_=e.querySelector(`.report-main__content`);if(!(!d||!g||!_)&&(da(g,a),ra(_,t.blocks,a,r),o&&(o.screenshotPage=async()=>{let t=o.scrollX,n=o.scrollY;$(e,!1),o.scrollTo(0,0),await new Promise(e=>o.requestAnimationFrame(()=>e()));try{await ma(r)}finally{o.scrollTo(t,n)}}),m?.addEventListener(`click`,()=>{$(e,!!e.querySelector(`.aikit-toolbox-menu`)?.hidden)}),m?.addEventListener(`keydown`,t=>{(t.key===`ArrowDown`||t.key===`Enter`||t.key===` `)&&(t.preventDefault(),$(e,!0))}),h?.addEventListener(`click`,()=>{o?.screenshotPage?.()}),g.addEventListener(`click`,()=>da(g,la(r,i))),f?.addEventListener(`click`,()=>{let e=!d.classList.contains(`is-sidebar-open`);d.classList.toggle(`is-sidebar-open`,e),f.setAttribute(`aria-expanded`,e?`true`:`false`)}),r.addEventListener(`click`,t=>{let n=e.querySelector(`.aikit-toolbox`),r=t.target;n&&r&&n.contains(r)||$(e,!1)}),p?.addEventListener(`click`,()=>{d.classList.remove(`is-sidebar-open`),f?.setAttribute(`aria-expanded`,`false`)}),s)){for(let t of e.querySelectorAll(`.report-sidebar__link`))t.addEventListener(`click`,()=>{d.classList.remove(`is-sidebar-open`),f?.setAttribute(`aria-expanded`,`false`)});r.addEventListener(`keydown`,t=>{t.key===`Escape`&&($(e,!1,!0),d.classList.remove(`is-sidebar-open`),f?.setAttribute(`aria-expanded`,`false`))})}}var ga=document.getElementById(`report-root`);if(ga){sa();let e=window.REPORT_DATA;e&&Array.isArray(e.blocks)&&(document.title=e.title||`Report`,ha(ga,e))}</script>
|
|
2569
|
+
<style rel="stylesheet" crossorigin>:root{--dt-bg-canvas:#0c0c0f;--dt-bg-primary:#131316;--dt-bg-secondary:#1c1c21;--dt-bg-tertiary:#25252b;--dt-text-primary:#f0efe7;--dt-text-secondary:#a8a69e;--dt-text-tertiary:#6b6a65;--dt-border-default:#2a2a30;--dt-border-muted:#35353c;--dt-border-subtle:#1f1f24;--dt-glass-bg:#131316b8;--dt-glass-blur:16px;--dt-glass-border:#ffffff0f;--dt-glass-hover-border:#45c8a814;--dt-glass-shadow:0 0 0 1px #ffffff0a, 0 2px 8px #00000040, 0 8px 32px #00000026;--dt-accent-fg:#45c8a8;--dt-accent-emphasis:#0f766e;--dt-accent-foreground:#fff;--dt-accent-muted:#45c8a84d;--dt-accent-subtle:#45c8a81a;--aikit-accent:var(--dt-accent-subtle);--dt-success-fg:#2bd47c;--dt-success-emphasis:#22b86b;--dt-success-muted:#2bd47c4d;--dt-success-subtle:#2bd47c1a;--dt-danger-fg:#f56a6a;--dt-danger-emphasis:#e54848;--dt-danger-muted:#f56a6a4d;--dt-danger-subtle:#f56a6a1a;--dt-warning-fg:#f5b342;--dt-warning-emphasis:#e89e2e;--dt-warning-muted:#f5b3424d;--dt-warning-subtle:#f5b3421a;--dt-info-fg:#6baef8;--dt-info-emphasis:#5090e8;--dt-info-muted:#6baef84d;--dt-info-subtle:#6baef81a;--dt-purple-fg:#c89bff;--dt-purple-emphasis:#b07ef0;--dt-purple-muted:#c89bff4d;--dt-purple-subtle:#c89bff1a;--dt-agent-researcher:#818cf8;--dt-agent-implementer:#34d399;--dt-agent-frontend:#f472b6;--dt-agent-reviewer:#fbbf24;--dt-agent-debugger:#f87171;--dt-agent-security:#fb923c;--dt-agent-explorer:#38bdf8;--dt-agent-documenter:#c084fc;--dt-agent-refactor:#2dd4bf;--dt-agent-planner:#a78bfa;--dt-agent-orchestrator:#94a3b8;--dt-status-pending:#94a3b8;--dt-status-in-progress:#60a5fa;--dt-status-done:#4ade80;--dt-status-blocked:#f87171;--dt-font-sans:Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--dt-font-mono:"JetBrains Mono", "Geist Mono", "Fira Code", "SF Mono", Consolas, monospace;--dt-font-size-xs:.75rem;--dt-font-size-sm:.8125rem;--dt-font-size-base:.875rem;--dt-font-size-lg:1rem;--dt-font-size-xl:1.25rem;--dt-font-size-2xl:1.5rem;--dt-font-size-3xl:2rem;--dt-font-size-4xl:2.5rem;--dt-space-1:.25rem;--dt-space-2:.5rem;--dt-space-3:.75rem;--dt-space-4:1rem;--dt-space-5:1.25rem;--dt-space-6:1.5rem;--dt-space-8:2rem;--dt-space-10:2.5rem;--dt-space-12:3rem;--dt-radius-xs:4px;--dt-radius-sm:6px;--dt-radius-md:8px;--dt-radius-lg:12px;--dt-radius-xl:16px;--dt-radius-pill:999px;--dt-shadow-sm:0 0 0 1px #ffffff05, 0 1px 3px #0000004d;--dt-shadow-md:0 0 0 1px #ffffff08, 0 2px 6px #00000059, 0 4px 12px #0003;--dt-shadow-lg:0 0 0 1px #ffffff0a, 0 2px 8px #0006, 0 8px 32px #00000040;--dt-glow-primary:radial-gradient(circle at 50% 50%, #45c8a81f, #6baef80d 45%, transparent 70%);--dt-glow-secondary:radial-gradient(circle at 50% 50%, #c89bff0f, transparent 50%);--dt-glow-accent:#45c8a859;--dt-glow-success:#2bd47c59;--dt-glow-danger:#f56a6a59;--dt-glow-warning:#f5b34259;--dt-glow-info:#6baef859;--dt-glow-purple:#c89bff59;--dt-annotation-comment:#45c8a8;--dt-annotation-comment-bg:#45c8a826;--dt-annotation-deletion:#f56a6a;--dt-annotation-deletion-bg:#f56a6a26;--dt-annotation-hover:#ffffff0a;--dt-transition-fast:.12s cubic-bezier(.25, .46, .45, .94);--dt-transition-normal:.2s cubic-bezier(.25, .46, .45, .94);--dt-transition-slow:.3s cubic-bezier(.16, 1, .3, 1);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-theme=light]{--dt-bg-canvas:#f5f4ee;--dt-bg-primary:#faf9f4;--dt-bg-secondary:#f0efe8;--dt-bg-tertiary:#fff;--dt-text-primary:#1a1a17;--dt-text-secondary:#6b6a65;--dt-text-tertiary:#a8a69e;--dt-border-default:#e3e2da;--dt-border-muted:#d6d5cd;--dt-border-subtle:#eeede6;--dt-glass-bg:#faf9f4c7;--dt-glass-border:#0000000f;--dt-glass-hover-border:#0f8f7a14;--dt-glass-shadow:0 0 0 1px #00000005, 0 2px 8px #0000000a, 0 8px 24px #00000008;--dt-accent-fg:#0f8f7a;--dt-accent-emphasis:#0f766e;--dt-accent-foreground:#fff;--dt-accent-muted:#0f8f7a33;--dt-accent-subtle:#0f8f7a12;--aikit-accent:var(--dt-accent-subtle);--dt-success-fg:#16a34a;--dt-success-emphasis:#15803d;--dt-success-muted:#16a34a33;--dt-success-subtle:#16a34a12;--dt-danger-fg:#dc2626;--dt-danger-emphasis:#b91c1c;--dt-danger-muted:#dc262633;--dt-danger-subtle:#dc262612;--dt-warning-fg:#d97706;--dt-warning-emphasis:#b45309;--dt-warning-muted:#d9770633;--dt-warning-subtle:#d9770612;--dt-info-fg:#2563eb;--dt-info-emphasis:#1d4ed8;--dt-info-muted:#2563eb33;--dt-info-subtle:#2563eb12;--dt-purple-fg:#7c3aed;--dt-purple-emphasis:#6d28d9;--dt-purple-muted:#7c3aed33;--dt-purple-subtle:#7c3aed12;--dt-shadow-sm:0 0 0 1px #00000005, 0 1px 3px #0000000f;--dt-shadow-md:0 0 0 1px #00000008, 0 2px 6px #0000000d, 0 4px 12px #00000008;--dt-shadow-lg:0 0 0 1px #00000008, 0 2px 8px #0000000f, 0 8px 32px #0000000a;--dt-glow-primary:radial-gradient(circle at 50% 50%, #0f8f7a12, #c89bff08 50%, transparent 70%);--dt-glow-secondary:radial-gradient(circle at 50% 50%, #f5b3420d, transparent 50%);--dt-annotation-comment:#0f8f7a;--dt-annotation-comment-bg:#0f8f7a1a;--dt-annotation-deletion:#dc2626;--dt-annotation-deletion-bg:#dc26261a;--dt-annotation-hover:#0000000a;--dt-glow-accent:#0f8f7a59;--dt-glow-success:#16a34a59;--dt-glow-danger:#dc262659;--dt-glow-warning:#d9770659;--dt-glow-info:#2563eb59;--dt-glow-purple:#7c3aed59;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}.aikit-header,.aikit-toolbox-menu,.aikit-copy-status,.aikit-footer{--aikit-background:var(--background,var(--dt-bg-primary));--aikit-foreground:var(--foreground,var(--dt-text-primary));--aikit-muted:var(--muted,var(--dt-bg-secondary));--aikit-muted-foreground:var(--muted-foreground,var(--dt-text-secondary));--aikit-border:var(--border,var(--dt-border-default));--aikit-accent:var(--accent,var(--dt-accent-subtle));--aikit-accent-foreground:var(--accent-foreground,var(--dt-accent-fg));--aikit-card:var(--card,var(--dt-bg-secondary));--aikit-card-foreground:var(--card-foreground,var(--dt-text-primary));--aikit-header-min-height:3.5rem;--aikit-header-padding-x:var(--dt-space-6);--aikit-header-padding-y:var(--dt-space-2);--aikit-header-gap:var(--dt-space-4);--aikit-header-actions-gap:var(--dt-space-2);--aikit-header-min-height-mobile:3rem;--aikit-header-padding-x-mobile:var(--dt-space-4);--aikit-header-padding-y-mobile:var(--dt-space-2);--aikit-header-gap-mobile:var(--dt-space-2);--aikit-header-actions-gap-mobile:var(--dt-space-1);--aikit-footer-padding:var(--dt-space-6) var(--dt-space-6) var(--dt-space-8);--aikit-footer-padding-mobile:var(--dt-space-4) var(--dt-space-4) var(--dt-space-6);--aikit-footer-padding-mobile-sm:var(--dt-space-4) var(--dt-space-3) var(--dt-space-6);--aikit-toolbox-menu-max-width-mobile:calc(100vw - 2rem)}.aikit-header{z-index:100;justify-content:space-between;align-items:center;gap:var(--aikit-header-gap);min-height:var(--aikit-header-min-height);padding:var(--aikit-header-padding-y) var(--aikit-header-padding-x);border-bottom:1px solid var(--aikit-border);background:color-mix(in srgb, var(--aikit-background) 85%, transparent);-webkit-backdrop-filter:blur(12px);display:flex;position:sticky;top:0}.aikit-header-brand,.aikit-header-actions{flex:none;min-width:0}.aikit-header-brand{color:var(--aikit-muted-foreground);font-family:var(--dt-font-mono);font-size:var(--dt-font-size-xs);letter-spacing:.14em;text-transform:uppercase;opacity:.8;align-items:center;font-weight:600;display:flex}.aikit-header-title{align-items:baseline;gap:var(--dt-space-2);flex:auto;justify-content:flex-start;min-width:0;min-height:0;display:flex}.aikit-header-title-text{min-width:0;color:var(--aikit-foreground);font-size:var(--dt-font-size-lg);white-space:nowrap;text-overflow:ellipsis;flex:auto;font-weight:600;line-height:1.2;overflow:hidden}.aikit-header-subtitle{min-width:0;color:var(--aikit-muted-foreground);font-size:var(--dt-font-size-sm);white-space:nowrap;text-overflow:ellipsis;flex:0 auto;line-height:1.2;overflow:hidden}.aikit-header-actions{justify-content:flex-end;align-items:center;gap:var(--aikit-header-actions-gap);min-width:max-content;display:flex}.aikit-header-actions>*{flex:none}.aikit-toolbox{position:relative}.aikit-theme-toggle,.aikit-toolbox-toggle{border:1px solid var(--aikit-border);border-radius:var(--dt-radius-md);min-width:2.75rem;height:2.75rem;color:var(--aikit-muted-foreground);cursor:pointer;font:inherit;transition:background var(--dt-transition-fast), border-color var(--dt-transition-fast), color var(--dt-transition-fast);background:0 0;justify-content:center;align-items:center;padding:0;display:inline-flex;position:relative}.aikit-theme-toggle:hover,.aikit-toolbox-toggle:hover{background:var(--aikit-muted);color:var(--aikit-foreground);border-color:var(--aikit-border)}.aikit-theme-toggle:focus-visible,.aikit-toolbox-toggle:focus-visible,.aikit-toolbox-item:focus-visible{outline:2px solid var(--aikit-accent-foreground);outline-offset:2px}.aikit-theme-toggle-icon{transition:opacity var(--dt-transition-normal), transform var(--dt-transition-normal);justify-content:center;align-items:center;display:inline-flex;position:absolute;inset:0}.aikit-theme-toggle-icon--sun{opacity:1;transform:scale(1)rotate(0)}.aikit-theme-toggle-icon--moon{opacity:0;transform:scale(.65)rotate(-40deg)}html[data-theme=dark] .aikit-theme-toggle-icon--sun{opacity:0;transform:scale(.65)rotate(40deg)}html[data-theme=dark] .aikit-theme-toggle-icon--moon{opacity:1;transform:scale(1)rotate(0)}.aikit-toolbox-menu{top:calc(100% + var(--dt-space-2));gap:var(--dt-space-1);min-width:11rem;padding:var(--dt-space-2);border:1px solid var(--aikit-border);border-radius:var(--dt-radius-lg);background:var(--aikit-background);background:color-mix(in srgb, var(--aikit-background) 98%, transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:var(--dt-shadow-lg);z-index:120;transform-origin:100% 0;animation:.15s cubic-bezier(.16,1,.3,1) aikit-menu-enter;display:grid;position:absolute;right:0}@keyframes aikit-menu-enter{0%{opacity:0;transform:scale(.95)translateY(-4px)}to{opacity:1;transform:scale(1)translateY(0)}}.aikit-toolbox-menu[hidden]{animation:none;display:none}.aikit-toolbox-item{align-items:center;gap:var(--dt-space-2);width:100%;min-height:2.25rem;padding:0 var(--dt-space-3);border-radius:var(--dt-radius-sm);color:var(--aikit-foreground);cursor:pointer;font:inherit;text-align:left;transition:background var(--dt-transition-fast), border-color var(--dt-transition-fast);background:0 0;border:1px solid #0000;display:inline-flex}.aikit-toolbox-item:hover{background:var(--aikit-muted);border-color:var(--aikit-border)}.aikit-toolbox-item svg{opacity:.7;flex:none}.aikit-copy-status{right:var(--dt-space-4);bottom:var(--dt-space-4);z-index:1000;max-width:min(28rem, calc(100vw - var(--dt-space-8)));padding:var(--dt-space-3) var(--dt-space-4);border:1px solid var(--aikit-border);border-radius:var(--dt-radius-md);background:var(--aikit-background);background:color-mix(in srgb, var(--aikit-background) 98%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--aikit-foreground);box-shadow:var(--dt-shadow-lg);font-size:var(--dt-font-size-sm);line-height:1.4;position:fixed}.aikit-copy-status[data-tone=error]{border-color:var(--dt-danger-muted);color:var(--dt-danger-fg)}.aikit-footer{z-index:1;padding:var(--aikit-footer-padding);border-top:1px solid var(--aikit-border);color:var(--aikit-muted-foreground);font-size:var(--dt-font-size-xs);justify-content:center;align-items:center;margin-top:auto;display:flex;position:relative}.aikit-footer-meta{justify-content:center;align-items:center;gap:var(--dt-space-2);text-align:center;flex-wrap:wrap;display:inline-flex}.aikit-footer-text{justify-content:center;align-items:center;gap:.35rem;min-width:0;display:inline-flex}.aikit-footer-brand{color:var(--aikit-foreground);font-family:var(--dt-font-mono);letter-spacing:.1em;text-transform:uppercase;opacity:.8;font-weight:600}.aikit-footer-timestamp,.aikit-footer-slot{min-width:0}.aikit-footer-slot{align-items:center;gap:.35rem;display:inline-flex}@supports not (background:color-mix(in srgb, white 50%, transparent)){.aikit-header,.aikit-toolbox-menu,.aikit-copy-status{background:var(--aikit-background)}}@media (width<=640px){.aikit-header-brand{display:none}.aikit-header{gap:var(--aikit-header-gap-mobile);padding-left:var(--aikit-header-padding-x-mobile);padding-right:var(--aikit-header-padding-x-mobile);min-height:var(--aikit-header-min-height-mobile)}.aikit-toolbox-item{min-height:2.75rem}.aikit-toolbox-menu{min-width:auto;max-width:var(--aikit-toolbox-menu-max-width-mobile);left:auto;right:0}.aikit-footer{padding:var(--aikit-footer-padding-mobile)}}@media (width<=400px){.aikit-header-actions{gap:var(--aikit-header-actions-gap-mobile)}.aikit-footer{padding:var(--aikit-footer-padding-mobile-sm)}.aikit-toolbox-menu{border-radius:var(--dt-radius-xl) var(--dt-radius-xl) 0 0;min-width:auto;max-width:100%;position:fixed;inset:auto 0 0;box-shadow:0 -4px 24px #0003}}@media (width<=320px){.aikit-header{padding-left:var(--dt-space-2);padding-right:var(--dt-space-2)}.aikit-header-title-text{font-size:var(--dt-font-size-base)}.aikit-header-subtitle{font-size:var(--dt-font-size-xs)}.aikit-footer{padding:var(--dt-space-2) var(--dt-space-2) var(--dt-space-4);font-size:.625rem}}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--dt-bg-primary);min-height:100vh;color:var(--dt-text-primary);font-family:var(--dt-font-sans);font-size:var(--dt-font-size-base);margin:0;line-height:1.6}body:before,body:after{content:"";pointer-events:none;position:fixed;inset:0}body:before{background:radial-gradient(circle at top right, var(--dt-accent-subtle), transparent 34%), radial-gradient(circle at bottom left, var(--dt-purple-subtle), transparent 32%)}body:after{background:linear-gradient(90deg, var(--dt-border-subtle) 1px, transparent 1px), linear-gradient(var(--dt-border-subtle) 1px, transparent 1px);background-size:var(--dt-space-16) var(--dt-space-16);opacity:.35;-webkit-mask-image:linear-gradient(#0000,#000 10% 90%,#0000);mask-image:linear-gradient(#0000,#000 10% 90%,#0000)}a{color:var(--dt-accent-fg);text-decoration:none}a:hover{color:var(--dt-accent-emphasis);text-decoration:underline}button,input,select,textarea{font:inherit}code,pre,kbd,samp{font-family:var(--dt-font-mono)}#report-root{min-height:100vh}.report-shell{z-index:1;grid-template-rows:auto 1fr auto;min-height:100vh;display:grid;position:relative}.report-header-shell,.report-footer-shell{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:color-mix(in srgb, var(--dt-bg-primary) 88%, transparent)}.report-header-shell{z-index:20;border-bottom:1px solid var(--dt-border-muted);position:sticky;top:0}.report-footer-shell{border-top:1px solid var(--dt-border-muted)}.report-header-shell .aikit-header,.report-main,.report-footer-shell .aikit-footer{width:min(calc(100% - (var(--dt-space-4) * 2)), 1400px);margin:0 auto}.report-header-shell .aikit-header{-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border-bottom:0;padding-left:0;padding-right:0;position:static}.report-header-shell .aikit-header-title{align-items:baseline}.report-header-shell .aikit-header-title-text{font-size:clamp(var(--dt-font-size-2xl), 3vw, var(--dt-font-size-3xl));letter-spacing:-.04em;line-height:1.05}.report-header-shell .aikit-header-subtitle{display:inline}.report-footer-shell .aikit-footer{border-top:0;min-height:64px;padding-left:0;padding-right:0}.report-menu-toggle{min-height:2.5rem;padding:0 var(--dt-space-3);border:1px solid var(--border,var(--dt-border-default));background:var(--card,var(--dt-bg-secondary));color:var(--card-foreground,var(--dt-text-primary));cursor:pointer;font:inherit;transition:background var(--dt-transition-fast), border-color var(--dt-transition-fast), color var(--dt-transition-fast);border-radius:999px;justify-content:center;align-items:center;display:inline-flex}.report-menu-toggle:hover{background:var(--muted,var(--dt-bg-tertiary))}.report-menu-toggle:focus-visible{outline:2px solid var(--accent-foreground,var(--dt-accent-fg));outline-offset:2px}.report-body{grid-template-columns:minmax(0,1fr);display:grid}.report-body.has-sidebar{width:min(calc(100% - (var(--dt-space-4) * 2)), 1400px);grid-template-columns:250px minmax(0,1fr);margin:0 auto}.report-sidebar{height:calc(100vh - 120px);padding:var(--dt-space-6) var(--dt-space-4) var(--dt-space-6) 0;align-self:start;position:sticky;top:92px}.report-sidebar__nav{gap:var(--dt-space-2);padding-right:var(--dt-space-4);border-right:1px solid var(--dt-border-muted);display:grid}.report-sidebar__link{color:var(--dt-text-secondary);align-items:center;display:inline-flex}.report-main{padding:var(--dt-space-8) 0}.report-body.has-sidebar .report-main{width:auto;padding-left:var(--dt-space-6);margin:0}.report-main__content{gap:var(--dt-space-6);display:grid}.report-main__content>*{min-width:0}.report-overlay{z-index:10;background:color-mix(in srgb, var(--dt-bg-canvas) 74%, transparent);opacity:0;pointer-events:none;border:0;padding:0;position:fixed;inset:0}.report-shell.is-sidebar-open .report-overlay{opacity:1;pointer-events:auto}@media (width<=1080px){.report-body.has-sidebar{grid-template-columns:minmax(0,1fr);width:auto;margin:0}.report-sidebar{inset:88px auto var(--dt-space-4) var(--dt-space-4);z-index:15;width:min(280px, calc(100vw - (var(--dt-space-4) * 2)));height:auto;transform:translateX(calc(-100% - var(--dt-space-4)));transition:transform var(--dt-transition-fast);padding:0;position:fixed}.report-sidebar__nav{padding:var(--dt-space-4);border:1px solid var(--dt-border-muted);border-right:1px solid var(--dt-border-muted);border-radius:var(--dt-radius-lg);background:var(--dt-bg-secondary);box-shadow:var(--dt-shadow-lg)}.report-shell.is-sidebar-open .report-sidebar{transform:translate(0)}.report-body.has-sidebar .report-main{padding-left:0}}@media (width<=720px){.report-header-shell .aikit-header-subtitle{display:none}}
|
|
1753
2570
|
/*$vite$:1*/</style>
|
|
1754
2571
|
</head>
|
|
1755
2572
|
<body>
|