diff --git a/docs/static/probe/render.js b/docs/static/probe/render.js
index 3fe44b5..3c82044 100644
--- a/docs/static/probe/render.js
+++ b/docs/static/probe/render.js
@@ -249,6 +249,30 @@ window.ProbeRender = (function () {
}
document.addEventListener('keydown', onKey);
});
+
+ // Click handler for truncated expected pills
+ document.addEventListener('click', function (e) {
+ var target = e.target.closest('[data-full-expected]');
+ if (!target) return;
+ var full = target.getAttribute('data-full-expected');
+ var html = '';
+ html += '
Expected
';
+ html += '' + escapeAttr(full) + '';
+ var overlay = document.createElement('div');
+ overlay.className = 'probe-modal-overlay';
+ var modal = document.createElement('div');
+ modal.className = 'probe-modal';
+ modal.style.maxWidth = '420px';
+ modal.style.whiteSpace = 'normal';
+ modal.style.minWidth = '200px';
+ modal.innerHTML = html;
+ overlay.appendChild(modal);
+ document.body.appendChild(overlay);
+ modal.querySelector('.probe-modal-close').addEventListener('click', function () { overlay.remove(); });
+ overlay.addEventListener('click', function (ev) { if (ev.target === overlay) overlay.remove(); });
+ function onKey(ev) { if (ev.key === 'Escape') { overlay.remove(); document.removeEventListener('keydown', onKey); } }
+ document.addEventListener('keydown', onKey);
+ });
}
// ── Test ID → doc page URL mapping ─────────────────────────────
@@ -504,6 +528,21 @@ window.ProbeRender = (function () {
return '' + label + '';
}
+ var EXPECTED_TRUNCATE = 20;
+ function expectedPill(bg, fullLabel) {
+ var visible = fullLabel.replace(/\u200B/g, '');
+ if (visible.length <= EXPECTED_TRUNCATE) {
+ return '' + fullLabel + '';
+ }
+ var count = 0, cutIdx = 0;
+ for (var ci = 0; ci < fullLabel.length && count < EXPECTED_TRUNCATE - 3; ci++) {
+ if (fullLabel[ci] !== '\u200B') count++;
+ cutIdx = ci + 1;
+ }
+ var label = fullLabel.substring(0, cutIdx) + '\u2026';
+ return '' + label + '';
+ }
+
function verdictBg(v) {
return v === 'Pass' ? PASS_BG : v === 'Warn' ? WARN_BG : FAIL_BG;
}
@@ -777,7 +816,7 @@ window.ProbeRender = (function () {
var isUnscored = first.scored === false;
var opacity = isUnscored ? 'opacity:0.55;' : '';
var sepCls = i === unscoredStart ? ' probe-unscored-sep' : '';
- t += '' + pill(EXPECT_BG, first.expected.replace(/ or close/g, '/\u2715').replace(/\//g, '/\u200B')) + ' | ';
+ t += '' + expectedPill(EXPECT_BG, first.expected.replace(/ or close/g, '/\u2715').replace(/\//g, '/\u200B')) + ' | ';
});
t += '';