From 60512ef07dd81cc3a8e65359c73a211731f3647d Mon Sep 17 00:00:00 2001
From: zenn
Date: Thu, 23 Jul 2026 17:27:10 +0900
Subject: [PATCH] =?UTF-8?q?=EA=B4=80=EB=A6=AC=EC=9E=90=20=EB=AA=A8?=
=?UTF-8?q?=EB=8B=AC=20=ED=94=84=EB=A0=88=EC=9E=84=20=EA=B3=B5=ED=86=B5?=
=?UTF-8?q?=ED=99=94?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
components/admin/AdminModalFrame.vue | 44 ++
docs/map.md | 1 +
docs/todo.md | 2 +-
docs/update.md | 5 +
package-lock.json | 4 +-
package.json | 2 +-
pages/admin/media/index.vue | 73 ++-
pages/admin/navigation/index.vue | 678 +++++++++++++--------------
8 files changed, 422 insertions(+), 387 deletions(-)
create mode 100644 components/admin/AdminModalFrame.vue
diff --git a/components/admin/AdminModalFrame.vue b/components/admin/AdminModalFrame.vue
new file mode 100644
index 0000000..d72dcab
--- /dev/null
+++ b/components/admin/AdminModalFrame.vue
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+
diff --git a/docs/map.md b/docs/map.md
index a6e9eb8..b102e7e 100644
--- a/docs/map.md
+++ b/docs/map.md
@@ -189,6 +189,7 @@
| components/admin/AdminMemberForm.vue | 관리자 멤버 추가/수정 폼(Ghost형 3분할, 기존 회원 보기/수정 모드 분리, 요약 1fr·입력 2fr, 원형 썸네일 hover 등록·변경·삭제, 기본 정보·레이블·관리자 노트·활동 요약, 설정 메뉴의 비밀번호 변경·멤버 삭제 모달, 저장 토스트, 미저장 변경사항 이탈 확인) |
| components/admin/AdminUnsavedChangesModal.vue | 관리자 편집 화면 공통 미저장 변경사항 이탈 확인 모달(상단 40px 위치) |
| components/admin/AdminConfirmModal.vue | 관리자 공통 확인 모달(제목·본문 슬롯·확인/취소 버튼, primary/danger 톤) |
+| components/admin/AdminModalFrame.vue | 관리자 공통 일반 모달 프레임(오버레이, dialog 접근성 속성, 기본 패널 스타일, 바깥 클릭 닫기) |
| components/admin/AdminToast.vue | 관리자 공통 우측 상단 토스트 표시(성공·오류·안내 톤, 화면별 상단 위치 조정) |
| components/admin/AdminSearchInput.vue | 관리자 공통 검색 입력(돋보기 아이콘, IME 검색 이벤트 전달, 외부 focus/select 노출) |
| components/admin/AdminSelectInput.vue | 관리자 공통 select 입력(문자·숫자 옵션 값, 기본 필터·정렬 옵션, chevron 아이콘, `v-model` 전달) |
diff --git a/docs/todo.md b/docs/todo.md
index 81db33e..62300ed 100644
--- a/docs/todo.md
+++ b/docs/todo.md
@@ -9,7 +9,7 @@
- `components/admin/AdminPostForm.vue`: 태그 입력, 대표 이미지 선택, 발행/초안 저장 상태, 우측 설정 패널 책임을 분리.
- `pages/admin/media/index.vue`: 미디어 목록, 폴더 트리, 상세 모달, 재생성 액션을 작은 단위로 분리.
- 관리자 UI 공통 컴포넌트 정리.
- - 모달 패널, 필터 팝오버의 radius·shadow·z-index·색상 규칙을 공통화.
+ - 필터 팝오버의 radius·shadow·z-index·색상 규칙을 공통화.
- 멤버 고급 필터와 설정 화면 select 입력의 공통 컴포넌트 적용 범위 검토.
- 최근 브라우저 회귀 테스트 추가.
- 태그 추천 선택 후 다음 태그 후보가 포커스 해제 없이 유지되는지 확인.
diff --git a/docs/update.md b/docs/update.md
index 4434798..2fd4b7e 100644
--- a/docs/update.md
+++ b/docs/update.md
@@ -1,5 +1,10 @@
# 업데이트 이력
+## v1.11.11
+
+- 관리자 일반 모달 오버레이·패널을 공용 `AdminModalFrame` 컴포넌트로 분리.
+- 미디어 폴더 생성과 네비게이션 생성·페이지 섹션·페이지 순서·추천 사이트 편집 모달의 반복 wrapper 제거.
+
## v1.11.10
- 관리자 페이지네이션 계산 로직을 `lib/admin-pagination.js` 순수 함수로 분리.
diff --git a/package-lock.json b/package-lock.json
index d2b025c..30a0dbd 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "sori.studio",
- "version": "1.11.10",
+ "version": "1.11.11",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "sori.studio",
- "version": "1.11.10",
+ "version": "1.11.11",
"hasInstallScript": true,
"dependencies": {
"@nuxtjs/tailwindcss": "^6.14.0",
diff --git a/package.json b/package.json
index 1c219f7..8b6c82a 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "sori.studio",
- "version": "1.11.10",
+ "version": "1.11.11",
"private": true,
"type": "module",
"imports": {
diff --git a/pages/admin/media/index.vue b/pages/admin/media/index.vue
index 8d57d83..9b61ebb 100644
--- a/pages/admin/media/index.vue
+++ b/pages/admin/media/index.vue
@@ -1663,46 +1663,43 @@ watch(() => mediaPagination.value.page, (page) => {
-
+
+ 새 폴더
+
+
+ {{ activeFolder ? `${activeFolder} 아래에 하위 폴더를 만듭니다.` : '최상위 폴더를 만듭니다.' }}
+
+
+
+
+
+
+
{
-
-
-
-
- {{ navCreateModalTitle }}
-
-
- 제목과 URL을 입력한 뒤 추가하면 목록에 반영됩니다. 최종 반영은 네비게이션 저장으로 완료합니다.
-
-
+
+
+ {{ navCreateModalTitle }}
+
+
+ 제목과 URL을 입력한 뒤 추가하면 목록에 반영됩니다. 최종 반영은 네비게이션 저장으로 완료합니다.
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 페이지 섹션 추가
-
-
- 홈 Pages 진열장에 사용할 섹션 이름을 입력합니다.
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+ 페이지 섹션 추가
+
+
+ 홈 Pages 진열장에 사용할 섹션 이름을 입력합니다.
+
+
+
+
+ 섹션명
+
+
+
+
+
+
+
+
{
-
-
-
-
-
- 페이지 순서 변경
-
-
- {{ pageOrderModalSection.name }} 섹션의 홈 표시 순서를 조정합니다.
-
-
-
+
+
+
+ 페이지 순서 변경
+
+
+ {{ pageOrderModalSection.name }} 섹션의 홈 표시 순서를 조정합니다.
+
+
+
-
- 이 섹션에 표시 중인 페이지가 없습니다.
-
+
+ 이 섹션에 표시 중인 페이지가 없습니다.
+
-
-
+
+
+ {{ index + 1 }}
+
+
-
- {{ index + 1 }}
-
-
+
+
- 추천
-
-
-
-
- {{ page.listingTitle || page.title || '제목 없음' }}
-
-
-
+
{{ page.listingTitle || page.title || '제목 없음' }}
-
-
- /pages/{{ page.slug }}
-
-
-
-
+
+
+
+ {{ page.listingTitle || page.title || '제목 없음' }}
+
+
+ /pages/{{ page.slug }}
+
+
+
+
-
- {{ pageOrderRemovedCount }}개 페이지는 저장하면 이 섹션에서 제거됩니다.
+
+ {{ pageOrderRemovedCount }}개 페이지는 저장하면 이 섹션에서 제거됩니다.
+
+
+
+
+
+
+
+
+
+
+
+ 추천 사이트 편집
+
+
+ 공개 Recommended 카드와 동일한 정보를 편집합니다.
+
-
-
+