privateboard 0.1.9 → 0.1.10
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/cli.js +1 -1
- package/dist/cli.js.map +1 -1
- package/package.json +1 -1
- package/public/app.js +10 -7
- package/public/index.html +15 -45
package/package.json
CHANGED
package/public/app.js
CHANGED
|
@@ -3799,7 +3799,6 @@
|
|
|
3799
3799
|
<div class="row-content">
|
|
3800
3800
|
<div class="row-top-line">
|
|
3801
3801
|
<span class="row-title">${this.escape(fullTitle)}</span>
|
|
3802
|
-
<span class="row-time">${this.escape(time)}</span>
|
|
3803
3802
|
</div>
|
|
3804
3803
|
<div class="row-subtitle">${status}${this.escape(r.subject || "")}</div>
|
|
3805
3804
|
</div>
|
|
@@ -3981,7 +3980,6 @@
|
|
|
3981
3980
|
<div class="agent-row-content">
|
|
3982
3981
|
<div class="agent-row-top-line">
|
|
3983
3982
|
<span class="agent-row-title">${this.escape(a.name)}</span>
|
|
3984
|
-
<span class="agent-row-time">${this.escape(time)}</span>
|
|
3985
3983
|
${pinBtn}
|
|
3986
3984
|
</div>
|
|
3987
3985
|
<div class="agent-row-subtitle">
|
|
@@ -5050,11 +5048,16 @@
|
|
|
5050
5048
|
}
|
|
5051
5049
|
|
|
5052
5050
|
// Scroll path · IntersectionObserver fires when the sentinel
|
|
5053
|
-
// crosses the viewport.
|
|
5054
|
-
//
|
|
5055
|
-
//
|
|
5056
|
-
//
|
|
5051
|
+
// crosses the viewport. The All Reports view uses an inner
|
|
5052
|
+
// scroll container (`.main-view[data-main-view="reports"]` has
|
|
5053
|
+
// `overflow-y: auto`), so the document viewport itself never
|
|
5054
|
+
// scrolls. The observer's `root` MUST point at the inner
|
|
5055
|
+
// scroller — otherwise the sentinel never intersects and
|
|
5056
|
+
// infinite scroll silently does nothing. `rootMargin: 200px`
|
|
5057
|
+
// triggers slightly before the actual edge so the next batch
|
|
5058
|
+
// is rendered before the user reaches the bottom.
|
|
5057
5059
|
try {
|
|
5060
|
+
const scrollRoot = document.querySelector('.main-view[data-main-view="reports"]') || null;
|
|
5058
5061
|
this._reportsLoadObserver = new IntersectionObserver(
|
|
5059
5062
|
(entries) => {
|
|
5060
5063
|
for (const entry of entries) {
|
|
@@ -5064,7 +5067,7 @@
|
|
|
5064
5067
|
}
|
|
5065
5068
|
}
|
|
5066
5069
|
},
|
|
5067
|
-
{ rootMargin: "200px 0px 200px 0px", threshold: 0.01 },
|
|
5070
|
+
{ root: scrollRoot, rootMargin: "200px 0px 200px 0px", threshold: 0.01 },
|
|
5068
5071
|
);
|
|
5069
5072
|
this._reportsLoadObserver.observe(sentinel);
|
|
5070
5073
|
} catch { /* IntersectionObserver unavailable · click path remains */ }
|
package/public/index.html
CHANGED
|
@@ -568,19 +568,9 @@
|
|
|
568
568
|
overflow: hidden;
|
|
569
569
|
text-overflow: ellipsis;
|
|
570
570
|
}
|
|
571
|
-
/* Time tag ·
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
visually a different "kind of metadata" from the rooms time. */
|
|
575
|
-
.agent-row .agent-row-time {
|
|
576
|
-
color: var(--text-dim);
|
|
577
|
-
font-size: 10.5px;
|
|
578
|
-
font-family: var(--mono);
|
|
579
|
-
letter-spacing: 0;
|
|
580
|
-
text-transform: none;
|
|
581
|
-
white-space: nowrap;
|
|
582
|
-
flex-shrink: 0;
|
|
583
|
-
}
|
|
571
|
+
/* Time tag removed · the agent-row no longer surfaces creation
|
|
572
|
+
time. The space is given back to the title (which can now use
|
|
573
|
+
the full row width minus the hover-revealed pin button). */
|
|
584
574
|
.agent-row .agent-row-subtitle {
|
|
585
575
|
font-family: var(--mono);
|
|
586
576
|
font-size: 9.5px;
|
|
@@ -934,13 +924,10 @@
|
|
|
934
924
|
.agents-section-header.pinned { color: var(--text-soft); }
|
|
935
925
|
|
|
936
926
|
/* ─── Pin toggle (per-row · hover-revealed for non-pinned) ───
|
|
937
|
-
Positioned absolutely so the
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
the agent's "7h" tag inward compared to the rooms list and made
|
|
942
|
-
the two columns of timestamps look mis-aligned. The row-shell
|
|
943
|
-
ancestor needs `position: relative` for this to anchor correctly. */
|
|
927
|
+
Positioned absolutely so it overlays the right edge of the row
|
|
928
|
+
without taking in-flow width (opacity:0 alone would still
|
|
929
|
+
reserve 22px and shrink the title). The row-shell ancestor
|
|
930
|
+
needs `position: relative` for this to anchor correctly. */
|
|
944
931
|
.agent-row-shell, .session-row-shell { position: relative; }
|
|
945
932
|
.row-top-line .pin-toggle,
|
|
946
933
|
.agent-row-top-line .pin-toggle {
|
|
@@ -968,23 +955,12 @@
|
|
|
968
955
|
}
|
|
969
956
|
.session-row:hover .pin-toggle,
|
|
970
957
|
.agent-row:hover .pin-toggle { opacity: 0.55; }
|
|
971
|
-
/* Hover · hide the in-flow time so the absolutely-positioned pin
|
|
972
|
-
button has the right edge to itself. Same pattern as the rooms
|
|
973
|
-
list (`.session-row-shell:hover .row-time { visibility: hidden }`). */
|
|
974
|
-
.agent-row-shell:hover .agent-row-time { visibility: hidden; }
|
|
975
958
|
.pin-toggle:hover { opacity: 1 !important; color: var(--lime); }
|
|
976
959
|
.session-row.pinned .pin-toggle,
|
|
977
960
|
.agent-row.pinned .pin-toggle {
|
|
978
961
|
opacity: 1;
|
|
979
962
|
color: var(--lime);
|
|
980
963
|
}
|
|
981
|
-
/* Pinned · the lime pin glyph stays visible permanently, so the
|
|
982
|
-
in-flow time tag has to hide too — otherwise the two stack on
|
|
983
|
-
the right edge (pin + "7h" overlapping in the same 18px slot).
|
|
984
|
-
The hover rule above only handles hover; pinned rows live in
|
|
985
|
-
"always visible" state and need their own hide. */
|
|
986
|
-
.agent-row.pinned .agent-row-time,
|
|
987
|
-
.session-row.pinned .row-time { visibility: hidden; }
|
|
988
964
|
|
|
989
965
|
/* The shell wraps the link + delete button as siblings so the click on
|
|
990
966
|
the X button doesn't get absorbed by the anchor's navigation.
|
|
@@ -1038,10 +1014,8 @@
|
|
|
1038
1014
|
z-index: 2;
|
|
1039
1015
|
}
|
|
1040
1016
|
.session-row-shell:hover .row-delete { display: flex; }
|
|
1041
|
-
/*
|
|
1042
|
-
|
|
1043
|
-
before the X. */
|
|
1044
|
-
.session-row-shell:hover .row-time { visibility: hidden; }
|
|
1017
|
+
/* Subtitle reserves right padding so its ellipsis stops before
|
|
1018
|
+
the absolutely-positioned X delete button on hover. */
|
|
1045
1019
|
.session-row-shell .row-subtitle { padding-right: 26px; }
|
|
1046
1020
|
.row-delete:hover {
|
|
1047
1021
|
border-color: var(--red);
|
|
@@ -1130,17 +1104,14 @@
|
|
|
1130
1104
|
font-family: var(--sans);
|
|
1131
1105
|
letter-spacing: -0.005em;
|
|
1132
1106
|
}
|
|
1133
|
-
.row-time
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
}
|
|
1139
|
-
.session-row-shell[data-status="live"] .row-time {
|
|
1107
|
+
/* Live indicator · was a `● ` prefix on the (now-removed) .row-time
|
|
1108
|
+
tag. Migrated to a title prefix so live rooms still read at a
|
|
1109
|
+
glance. The rest of the title stays its usual colour. */
|
|
1110
|
+
.session-row-shell[data-status="live"] .row-title::before {
|
|
1111
|
+
content: "● ";
|
|
1140
1112
|
color: var(--lime);
|
|
1141
1113
|
font-weight: 700;
|
|
1142
1114
|
}
|
|
1143
|
-
.session-row-shell[data-status="live"] .row-time::before { content: "● "; }
|
|
1144
1115
|
|
|
1145
1116
|
.row-subtitle {
|
|
1146
1117
|
font-size: 11.5px;
|
|
@@ -1845,8 +1816,7 @@
|
|
|
1845
1816
|
.notes-item-passage { padding-right: 30px; }
|
|
1846
1817
|
/* On hover · hide the trailing time tag so the delete button
|
|
1847
1818
|
occupies the right-edge slot cleanly. visibility:hidden keeps
|
|
1848
|
-
the layout box (the meta row doesn't reflow either).
|
|
1849
|
-
pattern as `.session-row-shell:hover .row-time` in rooms. */
|
|
1819
|
+
the layout box (the meta row doesn't reflow either). */
|
|
1850
1820
|
.notes-item:hover .notes-item-time { visibility: hidden; }
|
|
1851
1821
|
.notes-item-link {
|
|
1852
1822
|
display: block;
|