feat(ui_template): 나무 오른쪽 클릭 메뉴 자리(menu · openTreeMenu) · 항목 경로 나무(폴더 깊이 자유) (PLAN 26-3b)

- TreeNode.menu = 메뉴 항목을 밖에서 주는 자리 · openTreeMenu 공용 작은 메뉴
- PickerRow.경로 · pathOf · buildTree 가 경로 앞부분을 폴더로 · PickNode.folder{layer,path}

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EauA2ATmqNRbeV48s9CcBr
This commit is contained in:
2026-09-30 08:05:12 +09:00
co-authored by Claude Sonnet 5.5
parent 41cf1cd195
commit d6c85a5f28
3 changed files with 155 additions and 41 deletions
+35
View File
@@ -21,3 +21,38 @@
color: var(--color-text-secondary);
font-size: var(--text-caption);
}
/* 오른쪽 클릭 메뉴 — 모달(z-index 1000) 위 */
.ui-tree__menu {
position: fixed;
z-index: 1100;
display: flex;
flex-direction: column;
min-width: 10rem;
padding: var(--spacing-4);
border: 1px solid var(--color-border);
border-radius: var(--radius-lg);
background: var(--color-surface-raised);
box-shadow: var(--shadow-lg);
}
.ui-tree__menu-item {
padding: var(--spacing-8) var(--spacing-12);
border: 0;
border-radius: var(--radius-md);
background: none;
color: var(--color-text);
font: inherit;
text-align: left;
cursor: pointer;
}
.ui-tree__menu-item:hover:not(:disabled),
.ui-tree__menu-item:focus-visible {
background: var(--color-surface-sunken);
}
.ui-tree__menu-item:disabled {
color: var(--color-text-secondary);
cursor: not-allowed;
}