feat(cupang): 센터 알림을 가운데 팝업으로, 그룹 헤더/목록 구분 강화

브라우저 기본 alert/confirm 은 상단에 붙고 URL 이 그대로 보여 어수선했다.
기존 .cpg-modal 스타일을 재사용해 화면 가운데 팝업으로 바꾸고, 삭제 확인도
같은 팝업(빨간 확인 버튼)으로 통일했다. ESC·배경 클릭으로 닫힘.

목록은 헤더와 항목이 같은 평면에 있어 구분이 약했다. 그룹을 테두리 있는
패널로 만들고 헤더에 회색 바 + 카운트 배지 + 접기 캐럿을 뒀다. 센터명은
고정폭 글꼴로 정렬감을 주고, 비활성은 취소선으로 표시.
This commit is contained in:
2026-08-31 12:12:18 +09:00
parent 21ee27ac40
commit 74e33efa55
8 changed files with 188 additions and 64 deletions
+69 -30
View File
@@ -169,7 +169,7 @@
.cpg-inline-form { display: inline-flex; gap: 6px; align-items: center; margin: 0; }
.cpg-row-actions { display: flex; gap: 6px; flex-wrap: wrap; }
/* ── 입고센터 관리 (상단: 추가·검색 / 아래: 지역 그룹 목록) ── */
/* ── 입고센터 관리 (상단: 추가·검색 / 아래: 지역 그룹 패널) ── */
.cpg-center-card { padding: 16px; }
.cpg-center-bar {
@@ -184,46 +184,80 @@
/* 멀티컬럼: 한 열을 위→아래로 읽고, 다 차면 다음 열로 */
.cpg-center-cols {
columns: 4 220px;
column-gap: 20px;
}
.cpg-center-group {
break-inside: avoid; page-break-inside: avoid;
margin: 0 0 16px;
}
.cpg-center-gtitle {
display: flex; align-items: center; gap: 6px;
padding: 0 4px 4px;
border-bottom: 2px solid var(--color-rich-black);
margin-bottom: 4px;
}
.cpg-center-gname { font-size: 13px; font-weight: 700; letter-spacing: .02em; }
.cpg-center-gcount {
font-size: 11px; font-weight: 600; line-height: 1;
padding: 2px 6px; border-radius: 999px;
background: var(--color-subtle-ash); color: var(--color-midtone-gray);
columns: 4 230px;
column-gap: 16px;
}
/* 그룹 = 헤더 바 + 목록 패널 */
.cpg-center-group {
break-inside: avoid; page-break-inside: avoid;
margin: 0 0 12px;
border: 1px solid var(--color-subtle-ash);
border-radius: 8px;
overflow: hidden;
background: var(--color-canvas-white);
}
.cpg-center-gtitle {
display: flex; align-items: center; gap: 6px; width: 100%;
padding: 7px 10px;
border: 0; border-bottom: 1px solid var(--color-subtle-ash);
background: var(--color-ghost-gray);
cursor: pointer; text-align: left;
font-family: inherit;
}
.cpg-center-gtitle:hover { background: var(--color-subtle-ash); }
.cpg-center-gname {
flex: 1 1 auto; min-width: 0;
font-size: 12px; font-weight: 700; letter-spacing: .04em;
color: var(--color-rich-black);
overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.cpg-center-gcount {
flex: 0 0 auto;
font-family: var(--font-geist-mono);
font-size: 11px; font-weight: 600; line-height: 1;
padding: 3px 6px; border-radius: 4px;
background: var(--color-canvas-white);
border: 1px solid var(--color-subtle-ash);
color: var(--color-midtone-gray);
}
/* 접기 캐럿 */
.cpg-center-caret {
flex: 0 0 auto; width: 0; height: 0;
border-left: 4px solid var(--color-midtone-gray);
border-top: 4px solid transparent;
border-bottom: 4px solid transparent;
transform: rotate(90deg);
transition: transform .12s ease;
}
.cpg-center-group.is-collapsed .cpg-center-caret { transform: rotate(0deg); }
.cpg-center-group.is-collapsed .cpg-center-glist { display: none; }
.cpg-center-group.is-collapsed .cpg-center-gtitle { border-bottom: 0; }
.cpg-center-glist { padding: 2px 0; }
.cpg-center-row {
display: flex; align-items: center; gap: 7px;
padding: 5px 4px;
border-bottom: 1px solid var(--color-subtle-ash);
display: flex; align-items: center; gap: 8px;
padding: 5px 10px;
min-width: 0;
}
.cpg-center-row:last-child { border-bottom: none; }
.cpg-center-row + .cpg-center-row { border-top: 1px solid var(--color-ghost-gray); }
.cpg-center-row:hover { background: var(--color-ghost-gray); }
.cpg-center-dot {
flex: 0 0 auto; width: 7px; height: 7px; border-radius: 50%;
background: var(--color-success-green, #10c22b);
flex: 0 0 auto; width: 6px; height: 6px; border-radius: 50%;
background: var(--color-success-green);
}
.cpg-center-row.is-inactive { opacity: .5; }
.cpg-center-row.is-inactive .cpg-center-name { color: var(--color-midtone-gray); text-decoration: line-through; }
.cpg-center-row.is-inactive .cpg-center-dot { background: var(--color-subtle-ash); }
.cpg-center-name {
flex: 1 1 auto; min-width: 0;
font-size: 14px; font-weight: 500;
font-family: var(--font-geist-mono);
font-size: 13px;
overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
/* 행 액션: 평소엔 흐리게, hover/focus 시 또렷하게 */
/* 행 액션: hover/focus 시에만 노출 */
.cpg-center-acts {
display: inline-flex; gap: 2px; flex: 0 0 auto;
opacity: 0; transition: opacity .12s ease;
@@ -235,14 +269,19 @@
}
.cpg-icon-btn {
border: 0; background: none; cursor: pointer;
font-size: 11px; line-height: 1; padding: 3px 5px; border-radius: 6px;
font-family: inherit;
font-size: 11px; line-height: 1; padding: 3px 5px; border-radius: 4px;
color: var(--color-midtone-gray);
}
.cpg-icon-btn:hover { background: var(--color-subtle-ash); color: var(--color-rich-black); }
.cpg-icon-btn.is-danger:hover { background: var(--color-ghost-gray); color: var(--color-callout-red); }
.cpg-icon-btn.is-danger:hover { background: var(--color-subtle-ash); color: var(--color-callout-red); }
.cpg-center-empty { margin: 8px 0 0; }
/* 센터 관리 팝업 */
.cpg-center-dlgmsg { margin: 0; font-size: 14px; line-height: 1.5; word-break: keep-all; }
.cpg-center-dlgact { display: flex; gap: 6px; justify-content: flex-end; margin-top: 4px; }
.cpg-btn-sm { padding: 3px 8px; font-size: 12px; flex: 0 0 auto; }
/* ── 라인 테이블 ── */