style(M02): 구조물 조합 삭제 단추를 공용 위험(빨강) 단추로

- 카드 셋 머리 [삭제] · 일위대가 줄 [삭제] 두 곳 = ui-btn--danger(테마 토큰)
- 화면 확인 시나리오 45-6 추가(밝음 5.44 · 어두움 5.79 대비 · 옆 단추와 같은 키)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016PSXsvyDxjNmufteN5bqmt
This commit is contained in:
2026-10-05 13:04:28 +09:00
co-authored by Claude Opus 5.5
parent 9e2c034d9f
commit aa2845eef7
3 changed files with 79 additions and 5 deletions
@@ -222,7 +222,7 @@ export function createItemCards(opts: ItemCardsOptions): ItemCardsHandle {
const take = createButton({ label: TEXT.take, variant: "ghost", size: "sm" });
take.title = fill(TEXT.takeTip, PART_WORD[kind]);
take.addEventListener("click", () => opts.onImport?.(kind));
const del = createButton({ label: TEXT.clear, variant: "ghost", size: "sm" });
const del = createButton({ label: TEXT.clear, variant: "danger", size: "sm" });
del.title = fill(TEXT.clearTip, PART_WORD[kind]);
del.addEventListener("click", () => void clearCard(kind));
shell.tools.append(help, saver.button, take, edit, del);
@@ -222,10 +222,14 @@ export function logicTable(data: LogicTableData, on?: RowHandlers): HTMLElement
const values = valueLine(logic?.입력 ?? [], row.입력값);
const note = values.text;
const why = line?.까닭 ?? (data.fail && i === 0 ? data.fail : null);
const small = (label: string, run: () => void): HTMLElement =>
const small = (
label: string,
run: () => void,
variant: "ghost" | "danger" = "ghost",
): HTMLElement =>
createButton({
label,
variant: "ghost",
variant,
onClick: (e) => {
e.stopPropagation(); // 줄 누름(입력 모달)과 따로
run();
@@ -272,7 +276,7 @@ export function logicTable(data: LogicTableData, on?: RowHandlers): HTMLElement
...(move
? [small(tc("Up"), () => move(i, -1)), small(tc("Down"), () => move(i, 1))]
: []),
...(remove ? [small(tc("Remove"), () => remove(i))] : []),
...(remove ? [small(tc("Remove"), () => remove(i), "danger")] : []),
],
}),
]
@@ -403,7 +407,7 @@ export function matTable(data: MatTableData, on?: Omit<RowHandlers, "move">): HT
children: [
createButton({
label: tc("Remove"),
variant: "ghost",
variant: "danger",
onClick: (e) => {
e.stopPropagation();
remove(i);