koneck 2.128.60 → 2.128.61
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/dist/web/ui-client.d.ts.map +1 -1
- package/dist/web/ui-client.js +87 -2
- package/dist/web/ui-client.js.map +1 -1
- package/dist/web/ui-css.d.ts.map +1 -1
- package/dist/web/ui-css.js +51 -5
- package/dist/web/ui-css.js.map +1 -1
- package/dist/web/ui.d.ts.map +1 -1
- package/dist/web/ui.js +5 -0
- package/dist/web/ui.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui-client.d.ts","sourceRoot":"","sources":["../../src/web/ui-client.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,IAAI,MAAM,
|
|
1
|
+
{"version":3,"file":"ui-client.d.ts","sourceRoot":"","sources":["../../src/web/ui-client.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAitOrC"}
|
package/dist/web/ui-client.js
CHANGED
|
@@ -2930,6 +2930,15 @@ function openPalette() {
|
|
|
2930
2930
|
$('pq').focus();
|
|
2931
2931
|
}
|
|
2932
2932
|
function closePalette() { $('palette').hidden = true; $('ta').focus(); }
|
|
2933
|
+
/*
|
|
2934
|
+
* A "/" on its own opens the palette, as it does in the terminal.
|
|
2935
|
+
*
|
|
2936
|
+
* Ctrl+K was the only way in, and a phone has no Ctrl — so on a phone every action the palette
|
|
2937
|
+
* holds was out of reach. A slash typed into an empty box is unambiguous: nobody sends "/".
|
|
2938
|
+
*/
|
|
2939
|
+
$('ta').addEventListener('input', () => {
|
|
2940
|
+
if ($('ta').value === '/') { $('ta').value = ''; openPalette(); }
|
|
2941
|
+
});
|
|
2933
2942
|
|
|
2934
2943
|
$('pq').addEventListener('input', () => { pIndex = 0; drawPalette(); });
|
|
2935
2944
|
$('pq').addEventListener('keydown', (ev) => {
|
|
@@ -3777,7 +3786,82 @@ async function cycleMode() {
|
|
|
3777
3786
|
}
|
|
3778
3787
|
$('modeline').onclick = () => { void cycleMode(); };
|
|
3779
3788
|
$('new').onclick = newSession;
|
|
3780
|
-
|
|
3789
|
+
/*
|
|
3790
|
+
* On a narrow screen the sidebar is an overlay, closed until asked for.
|
|
3791
|
+
*
|
|
3792
|
+
* It was open by default at every width, so on a phone the session list covered three quarters of
|
|
3793
|
+
* the screen and the conversation sat behind it. Below 820px it starts closed, opens over the chat
|
|
3794
|
+
* with a shade behind it, and closes on a tap outside it or once a session is chosen.
|
|
3795
|
+
*/
|
|
3796
|
+
const narrow = () => matchMedia('(max-width:820px)').matches;
|
|
3797
|
+
function setSide(open) {
|
|
3798
|
+
$('side').classList.toggle('hide', !open);
|
|
3799
|
+
$('sideshade').hidden = !(open && narrow());
|
|
3800
|
+
}
|
|
3801
|
+
if (narrow()) setSide(false);
|
|
3802
|
+
matchMedia('(max-width:820px)').addEventListener('change', (ev) => setSide(!ev.matches));
|
|
3803
|
+
$('sidebtn').onclick = () => setSide($('side').classList.contains('hide'));
|
|
3804
|
+
$('sideshade').onclick = () => setSide(false);
|
|
3805
|
+
$('slist').addEventListener('click', (ev) => {
|
|
3806
|
+
if (narrow() && ev.target.closest && ev.target.closest('.srow') && !ev.target.closest('.srowx')) setSide(false);
|
|
3807
|
+
});
|
|
3808
|
+
$('new').addEventListener('click', () => { if (narrow()) setSide(false); });
|
|
3809
|
+
|
|
3810
|
+
/*
|
|
3811
|
+
* On a tablet or a phone the watch panel is a sheet over the chat.
|
|
3812
|
+
*
|
|
3813
|
+
* Below 1100px it was switched off altogether, so a phone had no browser at all. It opens from the
|
|
3814
|
+
* header, fills the screen, and closes with × or Escape. It does not jump over the conversation on
|
|
3815
|
+
* its own: when the agent starts on something, the button says so and the sheet waits to be asked.
|
|
3816
|
+
*/
|
|
3817
|
+
const sheetWidth = () => matchMedia('(max-width:1100px)').matches;
|
|
3818
|
+
function setSheet(open) {
|
|
3819
|
+
document.body.classList.toggle('sheet', open);
|
|
3820
|
+
if (open) {
|
|
3821
|
+
$('sheetbtn').classList.remove('busy');
|
|
3822
|
+
// The button is the browser's: it opens on the page, whatever the panel last showed.
|
|
3823
|
+
$('watch').hidden = false;
|
|
3824
|
+
if (typeof setPanelMode === 'function') setPanelMode('page');
|
|
3825
|
+
void loadPreview();
|
|
3826
|
+
}
|
|
3827
|
+
}
|
|
3828
|
+
$('sheetbtn').onclick = () => setSheet(!document.body.classList.contains('sheet'));
|
|
3829
|
+
new MutationObserver(() => {
|
|
3830
|
+
// Something to watch appeared while the sheet was shut: say so on its button.
|
|
3831
|
+
if (!$('watch').hidden && sheetWidth() && !document.body.classList.contains('sheet')) $('sheetbtn').classList.add('busy');
|
|
3832
|
+
if ($('watch').hidden) document.body.classList.remove('sheet');
|
|
3833
|
+
}).observe($('watch'), { attributes: true, attributeFilter: ['hidden'] });
|
|
3834
|
+
document.addEventListener('keydown', (ev) => {
|
|
3835
|
+
if (ev.key === 'Escape' && document.body.classList.contains('sheet') && !preview.picking
|
|
3836
|
+
&& !(ev.target.closest && ev.target.closest('.pvnote'))) setSheet(false);
|
|
3837
|
+
});
|
|
3838
|
+
|
|
3839
|
+
/*
|
|
3840
|
+
* Swiping the page, on a touch screen.
|
|
3841
|
+
*
|
|
3842
|
+
* The page scrolled by wheel and keys only, and a phone has neither. A vertical swipe over the
|
|
3843
|
+
* picture scrolls the page the same way the wheel does, gathered into one movement per burst; a tap
|
|
3844
|
+
* is still a click (or a pick, while pointing).
|
|
3845
|
+
*/
|
|
3846
|
+
(() => {
|
|
3847
|
+
let lastY = null;
|
|
3848
|
+
$('pvbody').addEventListener('touchstart', (ev) => {
|
|
3849
|
+
lastY = ev.touches.length === 1 ? ev.touches[0].clientY : null;
|
|
3850
|
+
}, { passive: true });
|
|
3851
|
+
$('pvbody').addEventListener('touchmove', (ev) => {
|
|
3852
|
+
if (lastY === null || !preview.img || ev.touches.length !== 1) return;
|
|
3853
|
+
const y = ev.touches[0].clientY;
|
|
3854
|
+
const img = preview.img;
|
|
3855
|
+
const scale = img.naturalWidth ? img.naturalWidth / img.getBoundingClientRect().width : 1;
|
|
3856
|
+
const by = (lastY - y) * scale;
|
|
3857
|
+
lastY = y;
|
|
3858
|
+
if (Math.abs(by) < 1) return;
|
|
3859
|
+
ev.preventDefault();
|
|
3860
|
+
if (guardDriving()) return;
|
|
3861
|
+
queueScroll(by);
|
|
3862
|
+
}, { passive: false });
|
|
3863
|
+
$('pvbody').addEventListener('touchend', () => { lastY = null; }, { passive: true });
|
|
3864
|
+
})();
|
|
3781
3865
|
const abort = () => api('/api/abort', { method: 'POST',
|
|
3782
3866
|
body: JSON.stringify({ session: state.session }) }).catch(() => {});
|
|
3783
3867
|
$('stop').onclick = abort;
|
|
@@ -6585,7 +6669,8 @@ async function showWatched(path, asDiff) {
|
|
|
6585
6669
|
}
|
|
6586
6670
|
|
|
6587
6671
|
$('pfollow').onclick = () => setFollow(!follow.on);
|
|
6588
|
-
|
|
6672
|
+
// On a narrow screen × closes the sheet and leaves following as it was; see setSheet.
|
|
6673
|
+
$('wclose').onclick = () => { if (document.body.classList.contains('sheet')) { setSheet(false); return; } setFollow(false); };
|
|
6589
6674
|
$('rcontinue').onclick = () => { if (state.past) void continuePast(state.past); };
|
|
6590
6675
|
// Escape closes it too, unless something modal is open — a dialog owns Escape while it is up.
|
|
6591
6676
|
addEventListener('keydown', (ev) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui-client.js","sourceRoot":"","sources":["../../src/web/ui-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,YAAY;IAC1B,qFAAqF;IACrF,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACjG,OAAO,qBAAqB,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC,GAAG,CAAA
|
|
1
|
+
{"version":3,"file":"ui-client.js","sourceRoot":"","sources":["../../src/web/ui-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,YAAY;IAC1B,qFAAqF;IACrF,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACjG,OAAO,qBAAqB,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6sO3D,CAAC;AACF,CAAC"}
|
package/dist/web/ui-css.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui-css.d.ts","sourceRoot":"","sources":["../../src/web/ui-css.ts"],"names":[],"mappings":"AA+CA,wBAAgB,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"ui-css.d.ts","sourceRoot":"","sources":["../../src/web/ui-css.ts"],"names":[],"mappings":"AA+CA,wBAAgB,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAstD3C"}
|
package/dist/web/ui-css.js
CHANGED
|
@@ -919,7 +919,7 @@ textarea::placeholder{color:var(--dim)}
|
|
|
919
919
|
.send{width:31px;height:31px;flex:0 0 31px;border-radius:50%;
|
|
920
920
|
background:var(--cyan);color:var(--cyan-ink);font-size:calc(var(--ui) * 1.0714);display:grid;place-items:center}
|
|
921
921
|
.send:disabled{background:var(--line);color:var(--dim);cursor:not-allowed}
|
|
922
|
-
.chint{display:flex;gap:13px;margin-top:7px;font-size:calc(var(--ui) * 0.75);color:var(--dim)}
|
|
922
|
+
.chint{display:flex;flex-wrap:wrap;gap:4px 13px;margin-top:7px;font-size:calc(var(--ui) * 0.75);color:var(--dim);min-width:0}
|
|
923
923
|
.chint kbd{border:1px solid var(--line);border-radius:4px;padding:0 4px;font-family:var(--mono)}
|
|
924
924
|
.tinybtn{border:1px solid var(--line);border-radius:5px;padding:1px 7px;font-size:calc(var(--ui) * 0.75);
|
|
925
925
|
color:var(--muted)}
|
|
@@ -1459,7 +1459,39 @@ body.theater .whead .wp{opacity:.7}
|
|
|
1459
1459
|
.agtask{margin-top:8px;font-family:var(--mono);font-size:calc(var(--ui) * 0.8214);line-height:1.55;
|
|
1460
1460
|
color:var(--muted);white-space:pre-wrap;word-break:break-word}
|
|
1461
1461
|
|
|
1462
|
-
|
|
1462
|
+
/*
|
|
1463
|
+
* A finger, not a mouse pointer.
|
|
1464
|
+
*
|
|
1465
|
+
* Targets at least 40px, which is what a thumb can hit without hitting its neighbour; controls that
|
|
1466
|
+
* only appear on hover shown outright, since a touch screen has no hover; and fields at 16px, the
|
|
1467
|
+
* size below which iOS zooms the whole page in when one is tapped and leaves it zoomed.
|
|
1468
|
+
*/
|
|
1469
|
+
@media (pointer:coarse){
|
|
1470
|
+
.iconbtn{width:40px;height:40px}
|
|
1471
|
+
.pill{padding:8px 13px}
|
|
1472
|
+
.pvnav,.pvbtn,.pvgo,.pvpick,.pnsend,.pnalt{min-height:40px;min-width:40px}
|
|
1473
|
+
.srow{padding:12px 10px}
|
|
1474
|
+
.srowx{opacity:.8;padding:6px 10px}
|
|
1475
|
+
textarea,input,select{font-size:max(16px, var(--ui))}
|
|
1476
|
+
/* Keyboard shortcuts, on a screen with no keyboard: laid out while invisible, they widened a phone. */
|
|
1477
|
+
.chint{display:none}
|
|
1478
|
+
}
|
|
1479
|
+
|
|
1480
|
+
/*
|
|
1481
|
+
* Tablets and phones: the watch panel is a sheet, opened from the header.
|
|
1482
|
+
*
|
|
1483
|
+
* It was display:none below 1100px, which on a tablet or a phone meant no browser at all.
|
|
1484
|
+
*/
|
|
1485
|
+
.sheetbtn{display:none;position:relative}
|
|
1486
|
+
.sheetbtn.busy::after{content:'';position:absolute;top:4px;right:4px;width:7px;height:7px;border-radius:50%;
|
|
1487
|
+
background:var(--amber)}
|
|
1488
|
+
@media (max-width:1100px){
|
|
1489
|
+
.sheetbtn{display:grid}
|
|
1490
|
+
.watch,.wgrip{display:none}
|
|
1491
|
+
/* Clipped, so nothing inside can widen the page: on a phone, overflow widens the whole viewport. */
|
|
1492
|
+
body.sheet .watch:not([hidden]){display:flex;position:fixed;inset:0;z-index:40;max-width:100vw;min-width:0;
|
|
1493
|
+
width:auto;border-left:0;flex:none;overflow:hidden}
|
|
1494
|
+
}
|
|
1463
1495
|
|
|
1464
1496
|
/*
|
|
1465
1497
|
* A side question, visibly beside the conversation rather than in it — because that is exactly
|
|
@@ -1578,9 +1610,9 @@ body[data-tint="soft"]{filter:contrast(.92) brightness(1.04)}
|
|
|
1578
1610
|
.termpanes .oe{color:var(--red)}
|
|
1579
1611
|
|
|
1580
1612
|
/* ── the page, as it really renders ───────────────────────────────────────────────────────── */
|
|
1581
|
-
.pvbar{display:flex;gap:8px;align-items:center;padding:11px 14px;background:var(--panel);
|
|
1613
|
+
.pvbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:11px 14px;background:var(--panel);
|
|
1582
1614
|
border-bottom:1px solid var(--line);flex:0 0 auto}
|
|
1583
|
-
.pvbar input{flex:1;min-width:
|
|
1615
|
+
.pvbar input{flex:1 1 170px;min-width:150px;padding:8px 11px;border-radius:8px;border:1px solid var(--line);
|
|
1584
1616
|
background:var(--panel-2);font-family:var(--mono);font-size:calc(var(--ui) * 0.8929)}
|
|
1585
1617
|
.pvbar .pvnav{flex:0 0 auto;width:28px;height:28px;border-radius:7px;border:1px solid var(--line);
|
|
1586
1618
|
background:transparent;color:var(--muted);cursor:pointer;font-size:calc(var(--ui) * 1.0714);line-height:1;
|
|
@@ -1743,10 +1775,24 @@ body[data-tint="soft"]{filter:contrast(.92) brightness(1.04)}
|
|
|
1743
1775
|
.dlg .go{border-color:var(--cyan);color:var(--cyan)}
|
|
1744
1776
|
|
|
1745
1777
|
@media (max-width:820px){
|
|
1746
|
-
aside{position:
|
|
1778
|
+
aside{position:fixed;z-index:30;top:0;left:0;height:100%;box-shadow:var(--shadow);max-width:86vw}
|
|
1779
|
+
.sideshade:not([hidden]){position:fixed;inset:0;z-index:29;background:rgba(0,0,0,.35)}
|
|
1747
1780
|
.wrap,.cbox{padding-left:16px;padding-right:16px}
|
|
1748
1781
|
.tree{width:180px;flex:0 0 180px}
|
|
1749
1782
|
}
|
|
1783
|
+
/* An empty box shows its placeholder on one line: wrapped, it scrolled a one-line box on a phone. */
|
|
1784
|
+
#ta:placeholder-shown{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
|
|
1785
|
+
/* Small phones — last, so it wins over the rules it narrows. */
|
|
1786
|
+
@media (max-width:560px){
|
|
1787
|
+
.whead{gap:6px;padding:8px 10px}
|
|
1788
|
+
.whead .wt,.whead .wms{display:none}
|
|
1789
|
+
.pvbar{padding:8px 10px;gap:6px}
|
|
1790
|
+
.pvbar input{flex:1 1 100%;order:-1}
|
|
1791
|
+
.pvbar .pvgo{padding:8px 11px}
|
|
1792
|
+
.pvbar .pvnav,.pvbar .pvbtn{padding:6px 9px;min-width:36px}
|
|
1793
|
+
.pvlive{font-size:0}
|
|
1794
|
+
.pvlive::first-letter{font-size:calc(var(--ui) * 0.9)}
|
|
1795
|
+
}
|
|
1750
1796
|
`;
|
|
1751
1797
|
}
|
|
1752
1798
|
//# sourceMappingURL=ui-css.js.map
|
package/dist/web/ui-css.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui-css.js","sourceRoot":"","sources":["../../src/web/ui-css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC;;;;;;;;;;;;GAYG;AACH;;;;;;;;;;;;GAYG;AACH,MAAM,IAAI,GAAG;;;;;;;;;;;;;;;;;;CAkBZ,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,OAAe;IACjC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;gBAyBO,OAAO;;EAErB,QAAQ,CAAC,IAAI,CAAC
|
|
1
|
+
{"version":3,"file":"ui-css.js","sourceRoot":"","sources":["../../src/web/ui-css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC;;;;;;;;;;;;GAYG;AACH;;;;;;;;;;;;GAYG;AACH,MAAM,IAAI,GAAG;;;;;;;;;;;;;;;;;;CAkBZ,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,OAAe;IACjC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;gBAyBO,OAAO;;EAErB,QAAQ,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyrDf,CAAC;AACF,CAAC"}
|
package/dist/web/ui.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../src/web/ui.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAQH,wBAAgB,IAAI,IAAI,MAAM,
|
|
1
|
+
{"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../src/web/ui.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAQH,wBAAgB,IAAI,IAAI,MAAM,CA4kB7B"}
|
package/dist/web/ui.js
CHANGED
|
@@ -23,6 +23,8 @@ export function page() {
|
|
|
23
23
|
<style>${css(MARK_MASK)}</style>
|
|
24
24
|
</head><body>
|
|
25
25
|
|
|
26
|
+
<!-- Behind the sidebar on a narrow screen: a tap outside it closes it. -->
|
|
27
|
+
<div class="sideshade" id="sideshade" hidden></div>
|
|
26
28
|
<aside id="side">
|
|
27
29
|
<div class="brand">
|
|
28
30
|
<div class="mark"></div>
|
|
@@ -50,6 +52,9 @@ export function page() {
|
|
|
50
52
|
<div class="vmenu" id="vmenu" role="listbox" hidden></div>
|
|
51
53
|
</div>
|
|
52
54
|
<div class="spacer"></div>
|
|
55
|
+
<!-- Narrow screens only: the watch panel, and so the browser, as a full-screen sheet. -->
|
|
56
|
+
<button class="iconbtn sheetbtn" id="sheetbtn" title="The browser and what KONECK is working on"
|
|
57
|
+
aria-label="Browser">▣</button>
|
|
53
58
|
<!--
|
|
54
59
|
The pills scroll; the header does not.
|
|
55
60
|
=====================================
|
package/dist/web/ui.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui.js","sourceRoot":"","sources":["../../src/web/ui.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,MAAM,UAAU,IAAI;IAClB,OAAO;;;;;;;SAOA,GAAG,CAAC,SAAS,CAAC
|
|
1
|
+
{"version":3,"file":"ui.js","sourceRoot":"","sources":["../../src/web/ui.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,MAAM,UAAU,IAAI;IAClB,OAAO;;;;;;;SAOA,GAAG,CAAC,SAAS,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kDAyQ2B,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAuTxC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;EAC7C,YAAY,EAAE;;eAED,CAAC;AAChB,CAAC"}
|