@nanocollective/roster 0.1.0-alpha.36 → 0.1.0-alpha.38
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json
CHANGED
|
@@ -192,5 +192,8 @@ textarea.dropping{border-color:var(--accent);background:color-mix(in srgb,var(--
|
|
|
192
192
|
.tevquiet .tev{padding:5px 0;font-size:12px}
|
|
193
193
|
|
|
194
194
|
/* Unread, from GitHub's notifications: a bar on the left and a heavier title. Cleared on open. */
|
|
195
|
-
.irow.unread{box-shadow:inset 3px 0 0 var(--
|
|
195
|
+
.irow.unread{box-shadow:inset 3px 0 0 var(--blue);background:color-mix(in srgb,var(--blue) 6%,transparent)}
|
|
196
196
|
.irow.unread .ititle{font-weight:700;color:var(--ink)}
|
|
197
|
+
|
|
198
|
+
/* A little room between rows, so unread cards and the selected row do not run together. */
|
|
199
|
+
.irow{margin:3px 0}
|
|
@@ -78,13 +78,15 @@
|
|
|
78
78
|
.sidefoot .nav:hover{color:var(--ink-dim)}
|
|
79
79
|
|
|
80
80
|
/* ---------- main ---------- */
|
|
81
|
-
|
|
81
|
+
/* clip, not hidden: hidden makes main a scroll container, and nothing inside it can be sticky. */
|
|
82
|
+
main{padding:36px 44px 96px;max-width:1220px;overflow-x:clip}
|
|
82
83
|
|
|
83
84
|
/* ---------- tree beside viewer ---------- */
|
|
84
85
|
.split{display:grid;grid-template-columns:314px 1fr;gap:16px;align-items:start}
|
|
85
86
|
@media (max-width:900px){.split{grid-template-columns:1fr}}
|
|
87
|
+
/* The list beside a viewer stays in view while a long file or thread scrolls. */
|
|
86
88
|
.tree{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);padding:6px;
|
|
87
|
-
max-height:
|
|
89
|
+
max-height:calc(100vh - 40px);overflow:auto;box-shadow:var(--shadow-sm);position:sticky;top:20px}
|
|
88
90
|
.tdir{font:600 11px var(--mono);color:var(--ink-faint);padding:9px 8px 4px;letter-spacing:.02em}
|
|
89
91
|
.tdir.first{padding-top:3px}
|
|
90
92
|
.tfile{display:flex;align-items:baseline;gap:10px;width:100%;text-align:left;background:none;
|
|
@@ -169,3 +171,5 @@ main{padding:36px 44px 96px;max-width:1220px;overflow-x:hidden}
|
|
|
169
171
|
.nav.inboxlink{display:flex;align-items:center;gap:8px}
|
|
170
172
|
.nav.inboxlink .ic,.staffrow .ic{--ic:14px;color:var(--ink-faint);flex:none}
|
|
171
173
|
.nav.inboxlink[aria-current="true"] .ic{color:var(--accent)}
|
|
174
|
+
/* The unread count matches the unread rows. Empty, it stays grey like every other badge. */
|
|
175
|
+
#unreadcount:not(:empty):not(.wait){background:var(--blue);color:#fff}
|
|
@@ -326,7 +326,6 @@ function paintInboxLinks() {
|
|
|
326
326
|
// Inbox itself is everything. Under it: each staff member, then the product repos' issues.
|
|
327
327
|
const links = [
|
|
328
328
|
["", "All", "inbox"],
|
|
329
|
-
["@unread", "Unread", "dot"],
|
|
330
329
|
...S.data.staff.map((s) => [s.handle, s.name, staffIcon(s)]),
|
|
331
330
|
["@issues", "Issues", "issue-open"],
|
|
332
331
|
];
|
|
@@ -294,9 +294,15 @@ function inboxScreen(m, opts) {
|
|
|
294
294
|
list.append(el("div", { className: "tdir err", textContent: e }));
|
|
295
295
|
}
|
|
296
296
|
|
|
297
|
-
//
|
|
298
|
-
// happened to sort first; the project moves onto the row instead.
|
|
299
|
-
items = items
|
|
297
|
+
// Unread first, then newest first, flat. Grouping by repo buried a fresh comment under
|
|
298
|
+
// whichever project happened to sort first; the project moves onto the row instead.
|
|
299
|
+
items = items
|
|
300
|
+
.slice()
|
|
301
|
+
.sort(
|
|
302
|
+
(a, b) =>
|
|
303
|
+
Number(Boolean(b.unread)) - Number(Boolean(a.unread)) ||
|
|
304
|
+
String(b.updatedAt).localeCompare(String(a.updatedAt)),
|
|
305
|
+
);
|
|
300
306
|
if (!items.length) {
|
|
301
307
|
list.append(el("p", { className: "empty", textContent: "Nothing matches." }));
|
|
302
308
|
return;
|