feat(m01-easycalc): 조건 보고 고치기 창 · 시험

- openEasyCond(card, doc, trial) — 잠금 카드 수량 · 그 밖 덧붙임의 조건을 문장으로 · 고르기 · 숫자 칸으로 고쳐 새 식 글 · 취소 null
- 읽는 꼴: 만약(사슬) · 최소/최대 · 올림/버림/반올림 — 식 전체 또는 식 속 덩어리 · 중간 값 이름 하나면 따라감 · 못 읽으면 지금 화면 안내 한 줄
- 금액 미리 보기: Api calcLater · 준비 전이면 /calc 0.3초 뒤 최신만
- 표 칩은 Table 파일이 있으면 openEasyTable 로 엶(import.meta.glob)
- 마스터: 줄 자체에 조건이 있는 카드 824 가운데 767 읽음(93%)
- 시험 resources/tester/test_m01_easycalc_cond.py 19개

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VBToTCGk5dqDKeXCEP3vhk
This commit is contained in:
2026-10-01 09:52:20 +09:00
co-authored by Claude Opus 5.5
parent 2e0b6c25d7
commit 3d52720759
3 changed files with 915 additions and 0 deletions
@@ -0,0 +1,97 @@
/* =============================================================================
* M01_EasyCalc_Cond.css — 조건 보고 고치기 창
* ========================================================================== */
.m01-easycond {
width: min(760px, calc(100vw - 32px));
}
.m01-easycond__lines {
display: flex;
flex-direction: column;
gap: 12px;
}
.m01-easycond__line {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 8px;
font-size: 16px;
line-height: 1.6;
}
.m01-easycond__slot {
display: inline-flex;
align-items: center;
gap: 4px;
}
.m01-easycond__select,
.m01-easycond__num {
min-height: 36px;
padding: 4px 8px;
border: 1px solid var(--color-border, #c9ced6);
border-radius: 8px;
background: var(--color-surface, #fff);
color: inherit;
font: inherit;
}
.m01-easycond__num {
width: 7em;
text-align: right;
}
.m01-easycond__num.is-bad {
border-color: var(--color-danger, #d64545);
outline: 2px solid var(--color-danger, #d64545);
}
.m01-easycond__word {
padding: 4px 8px;
border-radius: 8px;
background: var(--color-surface-raised, #eef1f5);
font-weight: 600;
}
.m01-easycond__chip {
min-height: 36px;
padding: 4px 12px;
border: 1px dashed var(--color-accent, #3a6fd8);
border-radius: 999px;
background: transparent;
color: var(--color-accent, #3a6fd8);
font: inherit;
cursor: pointer;
}
.m01-easycond__chip:disabled {
border-color: var(--color-border, #c9ced6);
color: inherit;
cursor: default;
}
.m01-easycond__money {
margin-top: 16px;
padding: 12px;
border-radius: 8px;
background: var(--color-surface-raised, #eef1f5);
font-size: 16px;
font-weight: 600;
}
.m01-easycond__money.is-waiting {
opacity: 0.5;
}
.m01-easycond__foot {
display: flex;
justify-content: flex-end;
gap: 8px;
margin-top: 16px;
}
.m01-easycond__cannot {
font-size: 16px;
}