feat: implement copy and link

This commit is contained in:
2026-09-20 21:40:25 +02:00
parent e05d589311
commit 10b890b5ae
15 changed files with 1564 additions and 198 deletions
@@ -0,0 +1,126 @@
.copy-channel-overlay {
position: fixed;
inset: 0;
z-index: 1000;
display: flex;
align-items: center;
justify-content: center;
padding: var(--space-5);
background: rgba(0, 0, 0, 0.5);
animation: copy-channel-fade-in var(--dur-base) var(--ease-standard);
}
@keyframes copy-channel-fade-in {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
.copy-channel-modal {
width: 100%;
max-width: 440px;
max-height: 90vh;
overflow-y: auto;
animation: copy-channel-scale-in var(--dur-base) var(--ease-standard);
}
@keyframes copy-channel-scale-in {
from {
opacity: 0;
transform: scale(0.96);
}
to {
opacity: 1;
transform: scale(1);
}
}
.copy-channel-modal__header {
margin-bottom: var(--space-5);
}
.copy-channel-modal__header h2 {
margin: 0;
font-size: var(--font-md);
font-weight: var(--font-weight-semibold);
color: var(--text-primary);
}
.copy-channel-modal__header p {
margin: var(--space-1) 0 0;
font-size: var(--font-sm);
line-height: 1.4;
color: var(--text-muted);
}
/* Source -> destination */
.copy-channel-modal__transfer {
display: flex;
align-items: flex-end;
gap: var(--space-3);
}
.copy-channel-modal__field {
display: flex;
flex-direction: column;
gap: var(--space-2);
flex: 1;
min-width: 0;
}
.copy-channel-modal__field label {
font-size: var(--font-sm);
color: var(--text-muted);
}
.copy-channel-modal__arrow {
display: flex;
align-items: center;
justify-content: center;
height: var(--card-control-height);
color: var(--text-muted);
flex: 0 0 auto;
}
.copy-channel-modal__arrow svg {
width: var(--space-5);
height: var(--space-5);
}
.copy-channel-modal__summary {
margin: var(--space-3) 0 var(--space-5);
font-size: var(--font-sm);
line-height: 1.4;
color: var(--text-muted);
}
/* Footer actions */
.copy-channel-modal__actions {
display: flex;
justify-content: flex-end;
gap: var(--space-3);
}
@media (max-width: 600px) {
.copy-channel-modal__transfer {
flex-direction: column;
align-items: stretch;
}
.copy-channel-modal__arrow {
height: auto;
transform: rotate(90deg);
}
}