Fix lint warnings: arrow functions in admin-acces.js, duplicate gap in admin.css, biome formatting

This commit is contained in:
Pontoporeia
2026-07-08 13:50:03 +02:00
parent 402799a412
commit 033ea90684
6 changed files with 1452 additions and 1445 deletions
+1 -1
View File
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large Load Diff
+35 -35
View File
@@ -7,83 +7,83 @@
/* Full-height flex layout: header → main → (optional footer) */ /* Full-height flex layout: header → main → (optional footer) */
html, html,
body { body {
height: 100%; height: 100%;
overflow: hidden; overflow: hidden;
} }
/* ── Discreet scrollbars ─────────────────────────────────────────── */ /* ── Discreet scrollbars ─────────────────────────────────────────── */
/* WebKit browsers */ /* WebKit browsers */
::-webkit-scrollbar { ::-webkit-scrollbar {
width: 5px; width: 5px;
height: 5px; height: 5px;
} }
::-webkit-scrollbar-track { ::-webkit-scrollbar-track {
background: transparent; background: transparent;
} }
::-webkit-scrollbar-thumb { ::-webkit-scrollbar-thumb {
background: var(--text-tertiary); background: var(--text-tertiary);
border-radius: 3px; border-radius: 3px;
} }
::-webkit-scrollbar-thumb:hover { ::-webkit-scrollbar-thumb:hover {
background: var(--text-secondary); background: var(--text-secondary);
} }
/* Firefox */ /* Firefox */
* { * {
scrollbar-width: thin; scrollbar-width: thin;
scrollbar-color: var(--text-tertiary) transparent; scrollbar-color: var(--text-tertiary) transparent;
} }
body { body {
font-family: var(--font-body); font-family: var(--font-body);
font-weight: 300; font-weight: 300;
color: var(--text-primary); color: var(--text-primary);
background: linear-gradient( background: linear-gradient(
180deg, 180deg,
rgba(0, 0, 0, 0) 92%, rgba(0, 0, 0, 0) 92%,
rgba(149, 87, 181, 1) 100% rgba(149, 87, 181, 1) 100%
); );
display: flex; display: flex;
flex-direction: column; flex-direction: column;
} }
main { main {
flex: 1; flex: 1;
min-height: 0; min-height: 0;
overflow-wrap: anywhere; overflow-wrap: anywhere;
} }
main * { main * {
overflow-wrap: anywhere; overflow-wrap: anywhere;
word-break: break-word; word-break: break-word;
} }
/* Global heading scale — used by admin + public pages */ /* Global heading scale — used by admin + public pages */
h1 { h1 {
font-size: var(--step-4); font-size: var(--step-4);
} }
h2 { h2 {
font-size: var(--step-3); font-size: var(--step-3);
} }
h3 { h3 {
font-size: var(--step-2); font-size: var(--step-2);
} }
h4 { h4 {
font-size: var(--step-1); font-size: var(--step-1);
} }
h5 { h5 {
font-size: var(--step--1); font-size: var(--step--1);
} }
h6 { h6 {
font-size: var(--step--2); font-size: var(--step--2);
} }
:where(h1, h2, h3, h4, h5, h6) { :where(h1, h2, h3, h4, h5, h6) {
font-family: var(--font-display); font-family: var(--font-display);
font-weight: 400; font-weight: 400;
margin: 0 0 var(--space-m) 0; margin: 0 0 var(--space-m) 0;
line-height: 1.15; line-height: 1.15;
} }
+168 -167
View File
@@ -4,326 +4,327 @@
============================================================ */ ============================================================ */
.tfe-main { .tfe-main {
flex: 1; flex: 1;
min-height: 0; min-height: 0;
overflow: hidden; overflow: hidden;
padding: 0 var(--space-m) 0 var(--space-m); padding: 0 var(--space-m) 0 var(--space-m);
} }
/* Stacked article layout — fills main height */ /* Stacked article layout — fills main height */
.tfe-layout { .tfe-layout {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
gap: var(--space-xl); gap: var(--space-xl);
width: 100%; width: 100%;
height: 100%; height: 100%;
min-height: 0; min-height: 0;
} }
/* Row 1: Author above Title (kept for backward compat, no longer used) */ /* Row 1: Author above Title (kept for backward compat, no longer used) */
.tfe-header-row { .tfe-header-row {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
gap: var(--space-3xs); gap: var(--space-3xs);
} }
/* Two-column layout: left 35vw (info), right fills remaining (files) */ /* Two-column layout: left 35vw (info), right fills remaining (files) */
.tfe-content-row { .tfe-content-row {
display: grid; display: grid;
grid-template-columns: 35vw 1fr; grid-template-columns: 35vw 1fr;
gap: var(--space-xl); gap: var(--space-xl);
flex: 1; flex: 1;
min-height: 0; min-height: 0;
} }
.tfe-left-column, .tfe-right-column { .tfe-left-column,
display: flex; .tfe-right-column {
flex-direction: column; display: flex;
overflow-y: auto; flex-direction: column;
min-width: 0; overflow-y: auto;
padding-top: var(--space-l); min-width: 0;
padding-bottom: var(--space-xl); padding-top: var(--space-l);
padding-bottom: var(--space-xl);
} }
/* Left column: stacks author, title, meta, synopsis — scrolls independently */ /* Left column: stacks author, title, meta, synopsis — scrolls independently */
.tfe-left-column { .tfe-left-column {
gap: var(--space-m); gap: var(--space-m);
/* to space the edge of the text and the scrollbar */ /* to space the edge of the text and the scrollbar */
padding-right: 0.5ch; padding-right: 0.5ch;
} }
/* Files container inside right column */ /* Files container inside right column */
.tfe-files { .tfe-files {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
gap: var(--space-m); gap: var(--space-m);
} }
.tfe-file-item { .tfe-file-item {
width: 100%; width: 100%;
min-width: 0; min-width: 0;
overflow: hidden; overflow: hidden;
border-radius: var(--radius); border-radius: var(--radius);
} }
.tfe-file-item img { .tfe-file-item img {
width: 100%; width: 100%;
height: auto; height: auto;
display: block; display: block;
border-radius: var(--radius); border-radius: var(--radius);
user-select: none; user-select: none;
-webkit-user-drag: none; -webkit-user-drag: none;
} }
.tfe-file-item embed, .tfe-file-item embed,
.tfe-file-item video { .tfe-file-item video {
width: 100%; width: 100%;
max-width: 100%; max-width: 100%;
display: block; display: block;
border: none; border: none;
} }
.tfe-file-item video { .tfe-file-item video {
max-height: 500px; max-height: 500px;
} }
.tfe-file-item embed, .tfe-file-item embed,
.tfe-file-iframe { .tfe-file-iframe {
width: 100%; width: 100%;
max-width: 100%; max-width: 100%;
height: clamp(300px, 80vh, 700px); height: clamp(300px, 80vh, 700px);
display: block; display: block;
border: none; border: none;
} }
.tfe-file-item figcaption { .tfe-file-item figcaption {
font-size: var(--step--2); font-size: var(--step--2);
color: var(--text-secondary); color: var(--text-secondary);
margin: var(--space-3xs) 0 0; margin: var(--space-3xs) 0 0;
font-style: italic; font-style: italic;
} }
/* Synopsis column wrapper (context note + synopsis) */ /* Synopsis column wrapper (context note + synopsis) */
.tfe-synopsis-column { .tfe-synopsis-column {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
gap: var(--space-xs); gap: var(--space-xs);
} }
/* Contextual note above synopsis */ /* Contextual note above synopsis */
.tfe-context-note { .tfe-context-note {
font-style: italic; font-style: italic;
font-size: var(--step--1); font-size: var(--step--1);
line-height: 1.6; line-height: 1.6;
color: var(--text-secondary); color: var(--text-secondary);
margin: 0; margin: 0;
padding: var(--space-xs) var(--space-s); padding: var(--space-xs) var(--space-s);
background: color-mix(in srgb, var(--accent-primary) 10%, var(--bg-primary)); background: color-mix(in srgb, var(--accent-primary) 10%, var(--bg-primary));
border-radius: var(--radius); border-radius: var(--radius);
} }
.tfe-synopsis-empty { .tfe-synopsis-empty {
/* placeholder to maintain grid column */ /* placeholder to maintain grid column */
} }
/* Author (p) — inline with title */ /* Author (p) — inline with title */
.tfe-author { .tfe-author {
font-family: var(--font-display); font-family: var(--font-display);
font-size: var(--step-1); font-size: var(--step-1);
font-weight: 400; font-weight: 400;
color: var(--text-primary); color: var(--text-primary);
margin: 0; margin: 0;
line-height: 1.3; line-height: 1.3;
} }
/* Title (h1) — inherits global scale from base.css */ /* Title (h1) — inherits global scale from base.css */
.tfe-title { .tfe-title {
margin: 0; margin: 0;
} }
/* Metadata block */ /* Metadata block */
.tfe-meta { .tfe-meta {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
gap: var(--space-3xs); gap: var(--space-3xs);
font-size: var(--step--1); font-size: var(--step--1);
line-height: 1.4; line-height: 1.4;
margin: 0; margin: 0;
} }
/* Each metadata line */ /* Each metadata line */
.tfe-meta-item { .tfe-meta-item {
margin: 0; margin: 0;
font-weight: 700; font-weight: 700;
} }
.tfe-meta-label { .tfe-meta-label {
font-weight: 300; font-weight: 300;
} }
.tfe-meta-item a { .tfe-meta-item a {
color: inherit; color: inherit;
font-weight: 700; font-weight: 700;
text-decoration: none; text-decoration: none;
} }
.tfe-meta-item a:hover { .tfe-meta-item a:hover {
color: var(--accent-primary); color: var(--accent-primary);
} }
/* Note field: align label to top, value in italics */ /* Note field: align label to top, value in italics */
.tfe-meta-item.tfe-meta-note { .tfe-meta-item.tfe-meta-note {
align-items: start; align-items: start;
} }
.tfe-note-value { .tfe-note-value {
font-style: italic; font-style: italic;
} }
/* Synopsis paragraph */ /* Synopsis paragraph */
.tfe-synopsis-text { .tfe-synopsis-text {
font-size: var(--step--1); font-size: var(--step--1);
line-height: 1.7; line-height: 1.7;
color: var(--text-primary); color: var(--text-primary);
margin: 0; margin: 0;
} }
/* Audio player */ /* Audio player */
.tfe-audio { .tfe-audio {
width: 100%; width: 100%;
margin: 0; margin: 0;
display: block; display: block;
} }
/* "Not available" and "no files" notices */ /* "Not available" and "no files" notices */
.tfe-restricted, .tfe-restricted,
.tfe-no-files { .tfe-no-files {
font-size: var(--step--1); font-size: var(--step--1);
color: var(--text-secondary); color: var(--text-secondary);
font-style: italic; font-style: italic;
padding: var(--space-s) 0; padding: var(--space-s) 0;
margin: 0; margin: 0;
} }
/* ============================================================ /* ============================================================
RESTRICTED ACCESS UI RESTRICTED ACCESS UI
============================================================ */ ============================================================ */
.tfe-restricted-access { .tfe-restricted-access {
background: var(--surface); background: var(--surface);
border: 1px solid var(--border); border: 1px solid var(--border);
border-radius: var(--radius); border-radius: var(--radius);
padding: var(--space-m); padding: var(--space-m);
display: flex; display: flex;
flex-direction: column; flex-direction: column;
gap: var(--space-m); gap: var(--space-m);
} }
.tfe-restricted-message { .tfe-restricted-message {
font-size: var(--step--1); font-size: var(--step--1);
color: var(--text-secondary); color: var(--text-secondary);
line-height: 1.6; line-height: 1.6;
margin: 0; margin: 0;
} }
.tfe-restricted-message strong { .tfe-restricted-message strong {
color: var(--text-primary); color: var(--text-primary);
display: block; display: block;
margin-bottom: var(--space-3xs); margin-bottom: var(--space-3xs);
font-size: var(--step-0); font-size: var(--step-0);
} }
.tfe-access-request-form { .tfe-access-request-form {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
gap: var(--space-s); gap: var(--space-s);
} }
.tfe-access-request-form .form-group { .tfe-access-request-form .form-group {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
gap: var(--space-3xs); gap: var(--space-3xs);
} }
.tfe-access-request-form label { .tfe-access-request-form label {
font-size: var(--step--1); font-size: var(--step--1);
font-weight: 400; font-weight: 400;
color: var(--text-primary); color: var(--text-primary);
} }
.tfe-access-request-form input[type="email"], .tfe-access-request-form input[type="email"],
.tfe-access-request-form textarea { .tfe-access-request-form textarea {
padding: var(--space-2xs) var(--space-3xs); padding: var(--space-2xs) var(--space-3xs);
} }
.tfe-btn-request-access { .tfe-btn-request-access {
/* deprecated alias for .btn--primary; kept for backward-compat */ /* deprecated alias for .btn--primary; kept for backward-compat */
margin-top: var(--space-3xs); margin-top: var(--space-3xs);
} }
.tfe-btn-request-access:hover:not(:disabled) { .tfe-btn-request-access:hover:not(:disabled) {
/* handled by .btn--primary */ /* handled by .btn--primary */
} }
.tfe-btn-request-access:disabled { .tfe-btn-request-access:disabled {
opacity: 0.6; opacity: 0.6;
cursor: not-allowed; cursor: not-allowed;
} }
.tfe-access-message { .tfe-access-message {
font-size: var(--step--1); font-size: var(--step--1);
padding: var(--space-2xs); padding: var(--space-2xs);
border-radius: var(--radius); border-radius: var(--radius);
margin-top: var(--space-3xs); margin-top: var(--space-3xs);
} }
.tfe-access-success { .tfe-access-success {
background: #f0fff4; background: #f0fff4;
border: 1px solid #48bb78; border: 1px solid #48bb78;
color: #22543d; color: #22543d;
} }
.tfe-access-error { .tfe-access-error {
background: #fff5f5; background: #fff5f5;
border: 1px solid #fc8181; border: 1px solid #fc8181;
color: #742a2a; color: #742a2a;
} }
.tfe-access-request-form input.input-error { .tfe-access-request-form input.input-error {
border-color: #fc8181; border-color: #fc8181;
outline-color: #fc8181; outline-color: #fc8181;
} }
/* Responsive */ /* Responsive */
@media (max-width: 900px) { @media (max-width: 900px) {
.tfe-main { .tfe-main {
overflow-y: auto; overflow-y: auto;
} }
.tfe-layout { .tfe-layout {
height: auto; height: auto;
min-height: auto; min-height: auto;
} }
.tfe-content-row { .tfe-content-row {
grid-template-columns: 1fr; grid-template-columns: 1fr;
flex: none; flex: none;
} }
.tfe-left-column, .tfe-left-column,
.tfe-right-column { .tfe-right-column {
overflow-y: visible; overflow-y: visible;
} }
.tfe-title { .tfe-title {
font-size: var(--step-2); font-size: var(--step-2);
} }
} }
@media (max-width: 600px) { @media (max-width: 600px) {
.tfe-main { .tfe-main {
padding: var(--space-m) var(--space-s) var(--space-l); padding: var(--space-m) var(--space-s) var(--space-l);
} }
.tfe-title { .tfe-title {
font-size: var(--step-1); font-size: var(--step-1);
} }
} }
+10 -10
View File
@@ -74,29 +74,29 @@ function _copyTextToClipboard(text) {
.catch(() => {}); .catch(() => {});
} }
window.openEditDialog = function (id, name, _hasPassword, expiresVal) { window.openEditDialog = (id, name, _hasPassword, expiresVal) => {
document.getElementById("edit-link-id").value = id; document.getElementById("edit-link-id").value = id;
document.getElementById("edit-name").value = name || ""; document.getElementById("edit-name").value = name || "";
document.getElementById("edit-expires").value = expiresVal || ""; document.getElementById("edit-expires").value = expiresVal || "";
document.getElementById("edit-dialog").showModal(); document.getElementById("edit-dialog").showModal();
} };
window.openApproveDialog = function (requestId) { window.openApproveDialog = (requestId) => {
document.getElementById("approve-request-id").value = requestId; document.getElementById("approve-request-id").value = requestId;
document.getElementById("approve-dialog").showModal(); document.getElementById("approve-dialog").showModal();
} };
window.openRejectDialog = function (requestId) { window.openRejectDialog = (requestId) => {
document.getElementById("reject-request-id").value = requestId; document.getElementById("reject-request-id").value = requestId;
document.getElementById("reject-dialog").showModal(); document.getElementById("reject-dialog").showModal();
} };
window.openArchiveLinkDialog = function (id) { window.openArchiveLinkDialog = (id) => {
document.getElementById("archive-link-id").value = id; document.getElementById("archive-link-id").value = id;
document.getElementById("archive-link-dialog").showModal(); document.getElementById("archive-link-dialog").showModal();
} };
window.openDeleteArchivedLinkDialog = function (id) { window.openDeleteArchivedLinkDialog = (id) => {
document.getElementById("delete-archived-link-id").value = id; document.getElementById("delete-archived-link-id").value = id;
document.getElementById("delete-archived-link-dialog").showModal(); document.getElementById("delete-archived-link-dialog").showModal();
} };
@@ -66,7 +66,7 @@
fieldset.remove(); fieldset.remove();
reindexGroups(); reindexGroups();
// Trigger htmx autosave so deletion is persisted // Trigger htmx autosave so deletion is persisted
form.dispatchEvent(new Event('change', { bubbles: true })); form.dispatchEvent(new Event("change", { bubbles: true }));
} }
}); });
} }