- ui_template_tree: M01 renderTree 를 공용으로 올림(M01 은 같은 이름으로 그대로 부름) · 기본 줄 createTreeRow · 클래스 ui-tree__*
- ui_template_item_picker: openItemPicker({current, canCopy}) → apply(summary_item) | clear | cancel · 왼쪽 마스터 · 회사 · 개인 → 종류 → 분류1 → 항목 나무 + 찾기 · 오른쪽 폴더 모양(키는 툴팁) · 개인용으로 복사 · 관리 화면 이동
- 목록 GET /api/m02/items?all=1 · 복사 POST /api/m02/layers/personal/items/copy — 서버가 없으면(404) 21-1 모양 가짜 응답
- 자료 쪽(나무 · 찾기 · 폴더 줄)은 화면 없는 모듈로 나눠 시험
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K7JS47SacjPxZ718QsZKyr
102 lines
1.9 KiB
CSS
102 lines
1.9 KiB
CSS
/* 항목 고르기 모달 — 왼쪽 나무 · 오른쪽 폴더 모양 · 아래 단추 */
|
|
.ui-item-picker {
|
|
width: min(900px, 94vw);
|
|
}
|
|
|
|
.ui-item-picker .ui-modal__body {
|
|
height: min(60vh, 520px);
|
|
}
|
|
|
|
.ui-item-picker__cols {
|
|
display: grid;
|
|
grid-template-columns: minmax(240px, 5fr) minmax(260px, 6fr);
|
|
gap: var(--spacing-12);
|
|
flex: 1;
|
|
min-height: 0;
|
|
}
|
|
|
|
.ui-item-picker__left {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--spacing-8);
|
|
min-height: 0;
|
|
min-width: 0;
|
|
}
|
|
|
|
.ui-item-picker__tree {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 2px;
|
|
flex: 1;
|
|
min-height: 0;
|
|
padding: var(--spacing-4);
|
|
border: 1px solid var(--color-border);
|
|
border-radius: var(--radius-lg);
|
|
overflow: auto;
|
|
}
|
|
|
|
.ui-item-picker__detail {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--spacing-8);
|
|
min-width: 0;
|
|
min-height: 0;
|
|
padding: var(--spacing-12);
|
|
border: 1px solid var(--color-border);
|
|
border-radius: var(--radius-lg);
|
|
overflow: auto;
|
|
}
|
|
|
|
.ui-item-picker__name {
|
|
margin: 0;
|
|
font-size: var(--text-body);
|
|
color: var(--color-text-heading);
|
|
overflow-wrap: anywhere;
|
|
}
|
|
|
|
.ui-item-picker__where,
|
|
.ui-item-picker__hint {
|
|
margin: 0;
|
|
color: var(--color-text-muted);
|
|
font-size: var(--text-caption);
|
|
}
|
|
|
|
.ui-item-picker__hint {
|
|
padding: var(--spacing-8);
|
|
}
|
|
|
|
.ui-item-picker__folder {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--spacing-4);
|
|
margin: 0;
|
|
padding: 0 0 0 var(--spacing-12);
|
|
border-left: 2px solid var(--color-border);
|
|
list-style: none;
|
|
}
|
|
|
|
.ui-item-picker__folder li {
|
|
display: flex;
|
|
gap: var(--spacing-8);
|
|
align-items: baseline;
|
|
min-width: 0;
|
|
color: var(--color-text-body);
|
|
font-size: var(--text-caption);
|
|
overflow-wrap: anywhere;
|
|
}
|
|
|
|
.ui-item-picker__folder-label {
|
|
flex: 0 0 5.5em;
|
|
color: var(--color-text-muted);
|
|
}
|
|
|
|
.ui-item-picker__none {
|
|
color: var(--color-text-muted);
|
|
}
|
|
|
|
.ui-item-picker__actions {
|
|
display: flex;
|
|
justify-content: flex-end;
|
|
gap: var(--spacing-8);
|
|
}
|