added attchments
All checks were successful
CI/CD Pipeline / test (push) Successful in 3s
CI/CD Pipeline / deploy (push) Successful in 24s

This commit is contained in:
2026-01-28 19:34:25 +01:00
parent 2409feb06f
commit c33cde6f04
32 changed files with 4618 additions and 213 deletions

View File

@@ -170,6 +170,322 @@ a {
flex-wrap: wrap;
}
.bb-thread-attachments {
border: 1px solid var(--bb-border);
border-radius: 12px;
padding: 0.8rem 1rem;
background: #141822;
}
.bb-thread-attachments-header {
display: flex;
align-items: center;
justify-content: space-between;
gap: 0.75rem;
flex-wrap: wrap;
font-weight: 600;
color: var(--bb-ink);
margin-bottom: 0.6rem;
}
.bb-thread-attachments-actions {
display: flex;
align-items: center;
gap: 0.6rem;
flex-wrap: wrap;
}
.bb-thread-attachments-actions input[type='file'] {
max-width: 280px;
color: var(--bb-ink-muted);
}
.bb-thread-modal.modal-dialog {
max-width: 95vw !important;
width: 95vw !important;
height: 95vh;
margin: 2.5vh auto;
}
.bb-thread-modal.modal-dialog .modal-content {
height: 95vh;
width: 100%;
}
.bb-thread-modal.modal-dialog .modal-body {
overflow-y: auto;
}
.bb-attachment-list {
display: flex;
flex-direction: column;
gap: 0.35rem;
}
.bb-post-content .bb-attachment-list {
margin-top: 0.4rem;
}
.bb-attachment-item {
display: inline-flex;
align-items: center;
gap: 0.5rem;
color: var(--bb-ink);
text-decoration: none;
padding: 0.35rem 0.5rem;
border-radius: 8px;
background: rgba(255, 255, 255, 0.04);
border: 1px solid rgba(255, 255, 255, 0.08);
}
.bb-attachment-item .bi-paperclip {
color: var(--bb-accent, #f29b3f);
}
.bb-attachment-item:hover {
border-color: var(--bb-accent, #f29b3f);
color: var(--bb-accent, #f29b3f);
}
.bb-attachment-name {
font-weight: 600;
}
.bb-attachment-meta {
color: var(--bb-ink-muted);
font-size: 0.8rem;
}
.bb-attachment-panel {
border: 1px solid rgba(255, 255, 255, 0.08);
border-radius: 12px;
background: rgba(18, 23, 33, 0.9);
overflow: hidden;
}
.bb-attachment-tabs {
display: flex;
gap: 0.4rem;
padding: 0.6rem 0.8rem 0;
}
.bb-attachment-tab {
border: none;
background: #1a202b;
color: var(--bb-ink-muted);
padding: 0.35rem 0.75rem;
border-radius: 8px 8px 0 0;
font-size: 0.85rem;
font-weight: 600;
}
.bb-attachment-tab.is-active {
color: var(--bb-accent, #f29b3f);
background: #202735;
}
.bb-attachment-body {
padding: 0.8rem;
border-top: 1px solid rgba(255, 255, 255, 0.06);
}
.bb-attachment-actions {
display: flex;
align-items: center;
gap: 0.75rem;
margin-bottom: 0.8rem;
}
.bb-attachment-drop {
border: 2px dashed color-mix(in srgb, var(--bb-accent, #f29b3f) 65%, transparent);
border-radius: 12px;
padding: 0.85rem 1rem;
background: rgba(18, 23, 33, 0.6);
color: var(--bb-ink-muted);
text-align: center;
margin-bottom: 0.8rem;
cursor: pointer;
transition: border-color 0.2s ease, background 0.2s ease, color 0.2s ease;
}
.bb-attachment-drop.is-dragover {
border-color: var(--bb-accent, #f29b3f);
background: rgba(242, 155, 63, 0.12);
color: var(--bb-ink);
}
.bb-attachment-drop-link {
border: 0;
padding: 0;
background: transparent;
color: var(--bb-accent, #f29b3f);
font-weight: 600;
text-decoration: underline;
}
.bb-attachment-drop-link:hover {
color: color-mix(in srgb, var(--bb-accent, #f29b3f) 80%, #fff);
}
.bb-attachment-input {
display: none;
}
.bb-attachment-table {
border-radius: 10px;
border: 1px solid rgba(255, 255, 255, 0.08);
overflow: hidden;
margin-bottom: 0;
color: var(--bb-ink);
}
.bb-attachment-table thead th {
font-size: 0.7rem;
text-transform: none;
letter-spacing: 0.02em;
color: var(--bb-ink-muted);
background: rgba(255, 255, 255, 0.03);
text-align: left;
border-bottom: 0;
padding: 0.6rem 0.8rem;
}
.bb-attachment-table tbody td {
border-top: 1px solid rgba(255, 255, 255, 0.06);
padding: 0.6rem 0.8rem;
vertical-align: middle;
}
.bb-attachment-table thead th:nth-child(3),
.bb-attachment-table tbody td:nth-child(3) {
width: 90px;
}
.bb-attachment-table thead th:nth-child(4),
.bb-attachment-table tbody td:nth-child(4) {
width: 80px;
}
.bb-attachment-table thead th:nth-child(5),
.bb-attachment-table tbody td:nth-child(5) {
width: 1%;
white-space: nowrap;
}
.bb-attachment-name {
color: var(--bb-accent, #f29b3f);
font-weight: 600;
}
.bb-attachment-size {
color: var(--bb-ink-muted);
font-size: 0.85rem;
}
.bb-attachment-status {
color: #8bd98b;
font-size: 0.85rem;
}
.bb-attachment-comment {
background: #202734;
border-color: rgba(255, 255, 255, 0.08);
color: var(--bb-ink);
font-size: 0.85rem;
}
.bb-attachment-row-actions {
display: inline-flex;
align-items: center;
gap: 0;
justify-content: flex-end;
background: var(--bb-accent, #f29b3f);
border-radius: 10px;
padding: 0.2rem;
width: fit-content;
}
.bb-attachment-action {
border: 0;
background: transparent;
color: #0e121b;
width: 36px;
height: 32px;
border-radius: 8px;
display: inline-flex;
align-items: center;
justify-content: center;
font-size: 0.95rem;
transition: transform 0.15s ease, border-color 0.15s ease, background 0.15s ease;
}
.bb-attachment-action:hover {
transform: translateY(-1px);
background: color-mix(in srgb, #fff 18%, transparent);
color: #0e121b;
}
.bb-attachment-remove {
border: none;
background: rgba(255, 255, 255, 0.06);
color: var(--bb-ink-muted);
width: 32px;
height: 28px;
border-radius: 6px;
}
.bb-attachment-remove:hover {
color: #f07f7f;
background: rgba(240, 127, 127, 0.12);
}
.bb-attachment-empty {
padding: 0.8rem;
color: var(--bb-ink-muted);
font-size: 0.85rem;
}
.bb-attachment-options {
display: flex;
flex-direction: column;
gap: 0.6rem;
padding: 0.2rem 0;
}
.bb-attachment-options .form-check-label {
color: var(--bb-ink);
}
.bb-attachment-options .form-check-input {
background-color: #1a202b;
border-color: rgba(255, 255, 255, 0.2);
}
.bb-attachment-options .form-check-input:checked {
background-color: var(--bb-accent, #f29b3f);
border-color: var(--bb-accent, #f29b3f);
}
.form-control:focus,
.form-select:focus,
.form-check-input:focus {
border-color: var(--bb-accent, #f29b3f);
box-shadow: 0 0 0 0.2rem color-mix(in srgb, var(--bb-accent, #f29b3f) 30%, transparent);
}
.tr-header {
border-bottom: 3px solid var(--bb-accent, #f29b3f);
}
.tr-header th {
border-bottom: 3px solid var(--bb-accent, #f29b3f);
}
.rdt_TableHeadRow {
border-bottom: 3px solid var(--bb-accent, #f29b3f);
}
.bb-thread-actions {
display: flex;
align-items: center;
@@ -351,6 +667,9 @@ a {
.bb-post-content {
padding: 1rem 1.35rem 1.2rem;
display: flex;
flex-direction: column;
gap: 0.8rem;
}
.bb-post-header {
@@ -412,21 +731,19 @@ a {
.bb-post-content {
position: relative;
padding-bottom: 3.5rem;
}
.bb-post-body {
white-space: pre-wrap;
color: var(--bb-ink);
line-height: 1.6;
flex: 1 1 auto;
}
.bb-post-footer {
position: absolute;
right: 1rem;
bottom: 1rem;
display: flex;
justify-content: flex-end;
margin-top: auto;
}
.bb-thread-reply {
@@ -1805,6 +2122,14 @@ a {
color: #0e121b;
}
.bb-accent-button:disabled,
.bb-accent-button.disabled {
background: var(--bb-accent, #f29b3f);
border-color: var(--bb-accent, #f29b3f);
color: #0e121b;
opacity: 0.6;
}
.modal-content .modal-header {
background: #0f1218;
color: #e6e8eb;
@@ -1921,6 +2246,115 @@ a {
gap: 0.6rem;
}
.bb-attachment-type-main {
display: flex;
flex-direction: column;
gap: 0.2rem;
}
.bb-attachment-type-title {
font-weight: 600;
color: var(--bb-ink);
}
.bb-attachment-type-meta {
display: flex;
align-items: center;
flex-wrap: wrap;
gap: 0.4rem;
color: var(--bb-ink-muted);
font-size: 0.85rem;
}
.bb-attachment-type-rules {
margin-top: 0.2rem;
color: var(--bb-ink-muted);
font-size: 0.8rem;
}
.bb-attachment-admin {
display: flex;
flex-direction: column;
gap: 2rem;
}
.bb-attachment-extension-form {
display: grid;
grid-template-columns: minmax(160px, 1fr) minmax(200px, 1.2fr) minmax(160px, 1fr) auto;
gap: 0.75rem;
align-items: center;
margin-bottom: 1rem;
}
.bb-attachment-extension-table {
display: flex;
flex-direction: column;
gap: 0.4rem;
}
.bb-attachment-extension-header,
.bb-attachment-extension-row {
display: grid;
grid-template-columns: minmax(120px, 0.8fr) minmax(200px, 1.2fr) minmax(180px, 1fr) auto;
gap: 0.75rem;
align-items: center;
padding: 0.5rem 0.8rem;
border-radius: 10px;
}
.bb-attachment-extension-header {
font-size: 0.8rem;
color: var(--bb-ink-muted);
background: rgba(15, 19, 27, 0.7);
}
.bb-attachment-extension-row {
background: rgba(18, 23, 33, 0.8);
border: 1px solid rgba(255, 255, 255, 0.08);
}
.bb-attachment-extension-name {
font-weight: 600;
color: var(--bb-ink);
}
.bb-attachment-extension-actions {
display: flex;
justify-content: flex-end;
}
.bb-attachment-extension-meta {
color: var(--bb-ink-muted);
font-size: 0.9rem;
}
.bb-attachment-tree-toggle {
cursor: pointer;
flex: 1 1 auto;
}
.bb-attachment-tree-toggle:focus-visible {
outline: 2px solid color-mix(in srgb, var(--bb-accent, #f29b3f) 70%, #000);
outline-offset: 2px;
border-radius: 10px;
}
@media (max-width: 900px) {
.bb-attachment-extension-form {
grid-template-columns: 1fr;
}
.bb-attachment-extension-header,
.bb-attachment-extension-row {
grid-template-columns: 1fr;
gap: 0.4rem;
}
.bb-attachment-extension-actions {
justify-content: flex-start;
}
}
.bb-rank-main img {
height: 22px;
width: auto;
@@ -2184,6 +2618,7 @@ a {
}
}
.bb-collapse-toggle {
width: 20px;
height: 20px;