From 071676e0b86904cc39d3cbe0caff2593e15ee08b Mon Sep 17 00:00:00 2001 From: umsangdon Date: Tue, 29 Sep 2026 09:16:29 +0900 Subject: [PATCH] =?UTF-8?q?fix(M02):=20=EC=A1=B0=ED=95=A9=20=ED=8C=A8?= =?UTF-8?q?=EB=84=90=20[=EC=9D=B4=20=EC=97=B4=EC=97=90=20=EC=93=B0?= =?UTF-8?q?=EA=B8=B0]=EB=A5=BC=20=EA=B3=A0=EB=A5=B8=20=EC=A4=84=20?= =?UTF-8?q?=EB=B0=94=EB=A1=9C=20=EC=95=84=EB=9E=98=EB=A1=9C=20=E2=80=94=20?= =?UTF-8?q?=EB=AA=A9=EB=A1=9D=20=EB=B0=96=20=EB=8B=A8=EC=B6=94=EA=B0=80=20?= =?UTF-8?q?=EC=8A=A4=ED=81=AC=EB=A1=A4=EB=90=9C=20=EC=A4=84=20=EA=B8=80?= =?UTF-8?q?=EA=B3=BC=20=EA=B2=B9=EC=B9=98=EB=8D=98=20=EA=B2=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_019Kyw9qnkJ94pC1A4PfpDtA --- .../M02_MasterTemplete_ComboPanel.css | 12 ++++++++++++ .../M02_MasterTemplete_ComboPanel.ts | 15 +++++++-------- 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/M02_MasterTemplete/M02_MasterTemplete_ComboPanel.css b/M02_MasterTemplete/M02_MasterTemplete_ComboPanel.css index 7d592174..6b207165 100644 --- a/M02_MasterTemplete/M02_MasterTemplete_ComboPanel.css +++ b/M02_MasterTemplete/M02_MasterTemplete_ComboPanel.css @@ -73,6 +73,18 @@ font-size: var(--text-caption); } +/* 고른 줄 + 바로 아래 [이 열에 쓰기] */ +.m02-cpanel__pick { + display: flex; + flex-direction: column; + gap: var(--spacing-4); + padding-bottom: var(--spacing-4); +} + +.m02-cpanel__pick > .ui-btn { + align-self: flex-end; +} + /* 이 열이 쓰는 조합 — 테두리로 늘 보임(고름 is-active 와 따로) */ .m02-cpanel__row.is-current { box-shadow: inset 3px 0 0 var(--color-primary); diff --git a/M02_MasterTemplete/M02_MasterTemplete_ComboPanel.ts b/M02_MasterTemplete/M02_MasterTemplete_ComboPanel.ts index 1624a049..f1bc2361 100644 --- a/M02_MasterTemplete/M02_MasterTemplete_ComboPanel.ts +++ b/M02_MasterTemplete/M02_MasterTemplete_ComboPanel.ts @@ -98,12 +98,7 @@ export function buildComboPanel(opts: ComboPanelOptions): ComboPanel { className: "m02-cpanel__body ui-sidebar-panel", children: [ card(TEXT.mine, mine), - card( - area ? TEXT.listArea : TEXT.listMaterial, - find.root, - list, - ...(opts.isAdmin ? [el("div", { className: "m02-side__row", children: [use] })] : []), - ), + card(area ? TEXT.listArea : TEXT.listMaterial, find.root, list), ], }); attachCollapsible(body); @@ -165,11 +160,15 @@ export function buildComboPanel(opts: ComboPanelOptions): ComboPanel { picked = r.키 === picked ? null : r.키; paint(); }); - return b; + // [이 열에 쓰기]는 고른 줄 바로 아래(목록 안) — 목록 밖 단추가 스크롤된 줄 글과 겹치지 않게 + return opts.isAdmin && r.키 === picked && r.키 !== current + ? el("div", { className: "m02-cpanel__pick", children: [b, use] }) + : b; }) : [el("p", { className: "m02-side__empty", text: q ? TEXT.empty : TEXT.none })]), ); - use.disabled = !picked || picked === current; + use.disabled = false; + if (use.isConnected) use.scrollIntoView({ block: "nearest" }); } async function refresh(): Promise {