refactor(M02): 일위대가 입력 목록 · 넣을 값 칸 부품 옮김(39-3 C2) — 선택 입력에서 M02_Labor_Inputs.py · M02_Labor_Values(_Model).ts 로 · 옛 자리는 다시 내보냄 · 입력 목록 길 logic-lib/inputs

- 서버: inputs · combo_logics · _num 몸을 M02_Labor_Inputs.py 로(logic_inputs = 로직 키들 입력 + 자동값) · M02_MasterTemplete_Inputs.py 는 그것을 부름
- 길: GET /api/m02/logic-lib/inputs?keys= (로그인 · 일위대가 입력 모달용)
- 화면: 값 카드(createInputsValueCard) · 값 함수 → M02_Labor_Values.ts · M02_Labor_Values_Model.ts · 값 칸 하나(createValueControl)를 떼어 값 카드와 입력 모달이 같이 씀 · CSS 도 옮김
- 옛 자리(M02_MasterTemplete_Inputs.ts · _Inputs_Model.ts)는 새 파일을 다시 내보냄 — B05 고르기 모달 그대로
- 시험: 새 test_m02_labor_values.py · 옮긴 자리 따라 test_item_picker_detail · test_m02_card_shell · helper_m02_inputs 고침

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MgChuAcyBqUkhHMTXomQC7
This commit is contained in:
2026-10-04 17:27:30 +09:00
co-authored by Claude Opus 5.5
parent 3d79d2dab8
commit 43a59a6893
13 changed files with 770 additions and 515 deletions
@@ -103,101 +103,3 @@
.m02-inputs__seat:disabled {
opacity: 0.7;
}
/* ── 프로젝트에서 값 받기(PLAN 25-2d) — 값 · 확인 표시 카드 ── */
.m02-inputval__wrap {
display: flex;
flex-direction: column;
flex: 1 1 0;
min-height: var(--m02-struct-body-min, 16rem);
min-width: 0;
gap: var(--spacing-8);
}
.m02-inputval {
display: flex;
flex-direction: column;
gap: var(--spacing-12);
overflow: auto;
min-height: 0;
min-width: 0;
}
.m02-inputval__places,
.m02-inputval__missing {
margin: 0;
color: var(--color-text-secondary);
font-size: var(--text-caption);
}
.m02-inputval__logic {
display: flex;
flex-direction: column;
gap: var(--spacing-4);
min-width: 0;
}
.m02-inputval__logic-name {
margin: 0;
color: var(--color-text);
font-size: var(--text-caption);
overflow-wrap: anywhere;
}
.m02-inputval__row {
display: grid;
grid-template-columns: minmax(6rem, 2fr) minmax(8rem, 3fr);
gap: var(--spacing-8);
align-items: center;
min-width: 0;
}
.m02-inputval__name {
color: var(--color-text);
font-size: var(--text-caption);
overflow-wrap: anywhere;
}
.m02-inputval__cell {
display: flex;
flex-wrap: wrap;
gap: var(--spacing-4) var(--spacing-8);
align-items: center;
min-width: 0;
}
.m02-inputval__control {
flex: 1 1 6rem;
min-width: 0;
max-width: 24rem;
}
/* 자동값 = 저장값이 아님 — 기울임 + 보조 글자색(글자 대비 4.5 이상 유지) */
.m02-inputval__value.is-auto,
.m02-inputval__control.is-auto,
.m02-inputval__control::placeholder {
color: var(--color-text-secondary);
font-style: italic;
opacity: 1;
}
.m02-inputval__state {
color: var(--color-text-secondary);
font-size: var(--text-caption);
white-space: nowrap;
}
.m02-inputval__state.is-confirmed {
color: var(--color-text);
font-weight: 600;
}
.m02-inputval__error {
flex: 1 0 100%;
color: var(--color-danger);
font-size: var(--text-caption);
}
.m02-inputval__control[aria-invalid="true"] {
border-color: var(--color-danger);
}