@cccarv82/freya 1.0.38 → 1.0.40
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/cli/web-ui.css +61 -5
- package/cli/web-ui.js +5 -0
- package/package.json +1 -1
package/cli/web-ui.css
CHANGED
|
@@ -42,6 +42,23 @@
|
|
|
42
42
|
|
|
43
43
|
* { box-sizing: border-box; }
|
|
44
44
|
|
|
45
|
+
/* Subtle themed scrollbars (best-effort) */
|
|
46
|
+
* { scrollbar-color: rgba(17,24,39,.32) transparent; scrollbar-width: thin; }
|
|
47
|
+
[data-theme="dark"] * { scrollbar-color: rgba(229,231,235,.28) transparent; }
|
|
48
|
+
|
|
49
|
+
*::-webkit-scrollbar { width: 10px; height: 10px; }
|
|
50
|
+
*::-webkit-scrollbar-track { background: transparent; }
|
|
51
|
+
*::-webkit-scrollbar-thumb {
|
|
52
|
+
background: rgba(17,24,39,.18);
|
|
53
|
+
border: 3px solid transparent;
|
|
54
|
+
background-clip: content-box;
|
|
55
|
+
border-radius: 999px;
|
|
56
|
+
}
|
|
57
|
+
[data-theme="dark"] *::-webkit-scrollbar-thumb { background: rgba(229,231,235,.16); }
|
|
58
|
+
*::-webkit-scrollbar-thumb:hover { background: rgba(17,24,39,.28); }
|
|
59
|
+
[data-theme="dark"] *::-webkit-scrollbar-thumb:hover { background: rgba(229,231,235,.26); }
|
|
60
|
+
|
|
61
|
+
|
|
45
62
|
body {
|
|
46
63
|
margin: 0;
|
|
47
64
|
font-family: var(--sans);
|
|
@@ -67,7 +84,8 @@ body {
|
|
|
67
84
|
.shell {
|
|
68
85
|
display: grid;
|
|
69
86
|
grid-template-columns: 290px minmax(520px, 1fr) 380px;
|
|
70
|
-
|
|
87
|
+
height: calc(100vh - 36px);
|
|
88
|
+
min-height: 0;
|
|
71
89
|
}
|
|
72
90
|
|
|
73
91
|
@media (max-width: 1200px) {
|
|
@@ -82,6 +100,8 @@ body {
|
|
|
82
100
|
|
|
83
101
|
/* LEFT */
|
|
84
102
|
.sidebar {
|
|
103
|
+
overflow: auto;
|
|
104
|
+
min-height: 0;
|
|
85
105
|
background: linear-gradient(180deg, rgba(255,250,242,.85), rgba(255,250,242,.60));
|
|
86
106
|
border-right: 1px solid var(--line);
|
|
87
107
|
padding: 14px;
|
|
@@ -164,7 +184,12 @@ body {
|
|
|
164
184
|
.miniIcon.warn { background: var(--chip2); color: var(--accent); }
|
|
165
185
|
|
|
166
186
|
/* CENTER */
|
|
167
|
-
.center {
|
|
187
|
+
.center {
|
|
188
|
+
background: rgba(255, 250, 242, .58);
|
|
189
|
+
display: flex;
|
|
190
|
+
flex-direction: column;
|
|
191
|
+
min-height: 0;
|
|
192
|
+
}
|
|
168
193
|
[data-theme="dark"] .center { background: rgba(10, 14, 26, .55); }
|
|
169
194
|
|
|
170
195
|
.topbar {
|
|
@@ -185,14 +210,28 @@ body {
|
|
|
185
210
|
[data-theme="dark"] .chip { background: rgba(0,0,0,.20); }
|
|
186
211
|
.toggle { border: 1px solid var(--line); border-radius: 999px; background: var(--paper2); padding: 7px 10px; cursor: pointer; color: var(--muted); font-weight: 800; font-size: 12px; }
|
|
187
212
|
|
|
188
|
-
.centerBody {
|
|
213
|
+
.centerBody {
|
|
214
|
+
padding: 16px;
|
|
215
|
+
display: flex;
|
|
216
|
+
flex-direction: column;
|
|
217
|
+
min-height: 0;
|
|
218
|
+
overflow: hidden;
|
|
219
|
+
}
|
|
189
220
|
.centerHead { display: flex; justify-content: space-between; align-items: flex-end; gap: 18px; margin-bottom: 14px; }
|
|
190
221
|
.statusLine { display:flex; align-items:center; justify-content:flex-end; gap: 12px; }
|
|
191
222
|
|
|
192
223
|
h1 { margin: 0; font-size: 22px; letter-spacing: -.02em; }
|
|
193
224
|
.subtitle { margin-top: 6px; color: var(--muted); font-size: 13px; line-height: 1.4; max-width: 860px; }
|
|
194
225
|
|
|
195
|
-
.midGrid {
|
|
226
|
+
.midGrid {
|
|
227
|
+
display: grid;
|
|
228
|
+
grid-template-columns: 1fr 1fr;
|
|
229
|
+
gap: 14px;
|
|
230
|
+
flex: 1;
|
|
231
|
+
min-height: 0;
|
|
232
|
+
overflow: auto;
|
|
233
|
+
padding-right: 2px; /* avoid scrollbar overlay clipping */
|
|
234
|
+
}
|
|
196
235
|
.midSpan { grid-column: 1 / -1; }
|
|
197
236
|
@media (max-width: 980px) {
|
|
198
237
|
.midGrid { grid-template-columns: 1fr; }
|
|
@@ -296,6 +335,8 @@ textarea:focus { box-shadow: var(--ring); border-color: rgba(37,99,235,.35); }
|
|
|
296
335
|
background: linear-gradient(180deg, rgba(255,250,242,.82), rgba(255,250,242,.60));
|
|
297
336
|
display: grid;
|
|
298
337
|
grid-template-rows: auto 1fr auto;
|
|
338
|
+
overflow: hidden;
|
|
339
|
+
min-height: 0;
|
|
299
340
|
}
|
|
300
341
|
[data-theme="dark"] .chatPane {
|
|
301
342
|
background: linear-gradient(180deg, rgba(17,24,39,.92), rgba(17,24,39,.68));
|
|
@@ -308,9 +349,11 @@ textarea:focus { box-shadow: var(--ring); border-color: rgba(37,99,235,.35); }
|
|
|
308
349
|
.chatThread {
|
|
309
350
|
padding: 14px;
|
|
310
351
|
overflow: auto;
|
|
352
|
+
min-height: 0;
|
|
311
353
|
display: flex;
|
|
312
354
|
flex-direction: column;
|
|
313
355
|
gap: 10px;
|
|
356
|
+
overscroll-behavior: contain;
|
|
314
357
|
}
|
|
315
358
|
|
|
316
359
|
.bubble {
|
|
@@ -322,7 +365,20 @@ textarea:focus { box-shadow: var(--ring); border-color: rgba(37,99,235,.35); }
|
|
|
322
365
|
}
|
|
323
366
|
|
|
324
367
|
.bubble .bubbleMeta { font-size: 11px; font-weight: 900; color: var(--faint); margin-bottom: 6px; }
|
|
325
|
-
.bubble .bubbleBody {
|
|
368
|
+
.bubble .bubbleBody {
|
|
369
|
+
font-size: 13px;
|
|
370
|
+
line-height: 1.45;
|
|
371
|
+
color: var(--text);
|
|
372
|
+
overflow-wrap: anywhere;
|
|
373
|
+
word-break: break-word;
|
|
374
|
+
}
|
|
375
|
+
|
|
376
|
+
/* Prevent horizontal scroll in chat bubbles when showing JSON/markdown/code */
|
|
377
|
+
.bubble pre, .bubble code {
|
|
378
|
+
white-space: pre-wrap;
|
|
379
|
+
word-break: break-word;
|
|
380
|
+
overflow-x: hidden;
|
|
381
|
+
}
|
|
326
382
|
|
|
327
383
|
.bubble.user {
|
|
328
384
|
align-self: flex-end;
|
package/cli/web-ui.js
CHANGED
|
@@ -843,6 +843,11 @@
|
|
|
843
843
|
|
|
844
844
|
setOut(msg);
|
|
845
845
|
chatAppend('assistant', msg, { markdown: true });
|
|
846
|
+
|
|
847
|
+
// After apply, refresh panels so the UI reflects the new state (tasks/blockers/reports)
|
|
848
|
+
try { await refreshToday(); } catch {}
|
|
849
|
+
try { await refreshReports({ selectLatest: true }); } catch {}
|
|
850
|
+
|
|
846
851
|
setPill('ok', 'applied');
|
|
847
852
|
setTimeout(() => setPill('ok', 'pronto'), 800);
|
|
848
853
|
} catch (e) {
|