diff --git a/src/lib/components/NoteList.svelte b/src/lib/components/NoteList.svelte index 7ee439e..3b5424f 100644 --- a/src/lib/components/NoteList.svelte +++ b/src/lib/components/NoteList.svelte @@ -1328,8 +1328,18 @@ {/if} - {/if} - + {/if} + {#if $viewMode === 'trash'} + + { e.stopPropagation(); handleRestore(note); }} title="Restore" onkeydown={(e) => { if (e.key === 'Enter') { e.stopPropagation(); handleRestore(note); } }}> + + + { e.stopPropagation(); handlePermanentDelete(note); }} title="Delete permanently" onkeydown={(e) => { if (e.key === 'Enter') { e.stopPropagation(); handlePermanentDelete(note); } }}> + + + + {/if} + {/if} {/snippet} @@ -1682,6 +1692,7 @@ text-align: left; margin-bottom: 1px; contain: content; + position: relative; } .note-item:hover { @@ -1745,6 +1756,37 @@ background: var(--bg-hover); } + .trash-row-actions { + position: absolute; + right: 6px; + top: 50%; + transform: translateY(-50%); + display: none; + gap: 2px; + } + .note-item:hover .trash-row-actions { + display: flex; + } + .trash-row-btn { + cursor: pointer; + padding: 4px; + border-radius: 4px; + color: var(--text-secondary); + display: flex; + align-items: center; + } + .trash-row-btn:hover { + background: var(--bg-hover); + color: var(--text-primary); + } + .trash-row-btn.danger:hover { + color: var(--danger); + background: color-mix(in srgb, var(--danger) 10%, transparent); + } + .note-list.mobile .trash-row-actions { + display: flex; + } + .selection-action.danger { color: var(--danger); border-color: color-mix(in srgb, var(--danger) 30%, var(--border-color));