Add debug More/Clear/Upload tools for paintings and artist portraits.

Extends the debug panel on painting detail and artist bio with a 20-result search picker, local image upload, and clear-to-empty-frame workflow, plus API routes, artist checkup migration, and documentation.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Danila KhodjaefandCursor committed 2026-06-21 13:14:06 +03:00
1 parent b4425445bb
commit 0972b5df99
56 files changed
+1980 -92

No files matched your search

@@ -0,0 +1,142 @@
.debug-search-modal-overlay {
position: fixed;
inset: 0;
z-index: 200;
display: flex;
align-items: center;
justify-content: center;
padding: 24px;
background: rgba(0, 0, 0, 0.72);
}
.debug-search-modal {
width: min(920px, 100%);
max-height: min(88vh, 900px);
display: flex;
flex-direction: column;
padding: 16px 18px 18px;
border-radius: 10px;
border: 1px solid rgba(232, 160, 64, 0.45);
background: rgba(15, 15, 26, 0.98);
box-shadow: 0 16px 48px rgba(0, 0, 0, 0.55);
font-family: ui-monospace, 'Cascadia Code', monospace;
color: #e8d5b5;
}
.debug-search-modal-header {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: 12px;
margin-bottom: 12px;
}
.debug-search-modal-header h3 {
margin: 0 0 4px;
font-size: 14px;
font-weight: 600;
color: #e8a040;
}
.debug-search-modal-query {
margin: 0;
font-size: 11px;
line-height: 1.4;
color: rgba(232, 213, 181, 0.75);
word-break: break-word;
}
.debug-search-modal-close {
flex-shrink: 0;
width: 32px;
height: 32px;
border: 1px solid rgba(201, 169, 110, 0.4);
border-radius: 6px;
background: transparent;
color: #e8d5b5;
font-size: 22px;
line-height: 1;
cursor: pointer;
}
.debug-search-modal-close:hover {
background: rgba(201, 169, 110, 0.15);
}
.debug-search-modal-hint,
.debug-search-modal-status {
margin: 0 0 12px;
font-size: 11px;
color: rgba(201, 169, 110, 0.75);
}
.debug-search-modal-error {
margin: 0 0 12px;
font-size: 11px;
color: #ff8a80;
}
.debug-search-modal-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
gap: 10px;
overflow-y: auto;
padding-right: 4px;
max-height: min(68vh, 720px);
}
.debug-search-modal-item {
position: relative;
aspect-ratio: 1;
padding: 0;
border: 2px solid rgba(201, 169, 110, 0.35);
border-radius: 6px;
background: #2a1f15;
cursor: pointer;
overflow: hidden;
}
.debug-search-modal-item:hover:not(:disabled) {
border-color: #e8a040;
box-shadow: 0 0 0 1px rgba(232, 160, 64, 0.35);
}
.debug-search-modal-item:disabled {
cursor: wait;
opacity: 0.7;
}
.debug-search-modal-item-busy {
border-color: #ffd700;
}
.debug-search-modal-item img {
width: 100%;
height: 100%;
object-fit: cover;
display: block;
}
.debug-search-modal-item-index {
position: absolute;
top: 4px;
left: 4px;
padding: 2px 6px;
border-radius: 4px;
background: rgba(0, 0, 0, 0.65);
font-size: 10px;
font-weight: 600;
color: #ffd700;
}
.debug-search-modal-item-busy-label {
position: absolute;
inset: 0;
display: flex;
align-items: center;
justify-content: center;
background: rgba(0, 0, 0, 0.55);
font-size: 11px;
font-weight: 600;
color: #ffd700;
}