rails_modal_manager 1.0.57 → 1.0.58

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 91f46719ac2c4bf2aa6b8b33d883b85ee97f8dbc3490c7162441855ff6701e42
4
- data.tar.gz: 881b2327c4fa56fa3fa4199655d26b3bb360b8e79ebdab4efec31db5d3368188
3
+ metadata.gz: 5f3bda3fceb3ec2f9da136b27717da49aed99df46788a63e4226d2f0f3343d52
4
+ data.tar.gz: 841fde35ec774a95205118be3ab10e0a056726ed13a7fda522ea75292d0aef48
5
5
  SHA512:
6
- metadata.gz: 97bfd7a727035f23b11cc926911f1fb0465a9df3b48e0cec2cf73b69c06983d9b0fbf329732c10eec541ade3c5943f209cd2e30ddb79dd3aa38816a8ea6be503
7
- data.tar.gz: 2f7b805a605d217f0af8a4ef98745b3f2204baed44ee6aa15ab839c703afcd025b73363b6dfe83072b09d06cc93f3396e6298f87f50750b6d7bfbde45e3c940e
6
+ metadata.gz: 34a119a6b414cae88c8419a4dd134fd7646fe3e0681f49b3915b0f678630a018073704a6046537ac9673e9c676aba42a90e48401c412ad56d416bf55fedcf5d4
7
+ data.tar.gz: de106691b2138dbb254e5730d34e51e7370a7f56501da8d1041a7a0ae7173eff7e7f67722283b6618a8a8014d14b70fdb8805ffe8243001a7d2acdfb0b876b3d
@@ -133,11 +133,16 @@
133
133
  --rmm-animation-timing: cubic-bezier(0.4, 0, 0.2, 1);
134
134
 
135
135
  /* Z-index */
136
- /* v1.0.57z-index 계층 재정렬: overlay < taskbar < modal
137
- 모달이 최소화 태스크바 위에 항상 노출, 태스크바는 여전히 overlay 위라 클릭 가능 */
138
- --rmm-z-overlay: 2000;
139
- --rmm-z-taskbar: 2100;
140
- --rmm-z-modal: 2200;
136
+ /* v1.0.58taskbar 항상 최상위. v1.0.57 의 modal > taskbar 배치가
137
+ 모달이 taskbar 영역을 가려 최소화 항목 클릭 불가 문제를 만들었음.
138
+ 계층 (낮음→높음):
139
+ overlay : 1400
140
+ modal : 1500 ~ 8000 (modal_store 가 동적 증가, MAX_Z_INDEX 도달 시 reset)
141
+ taskbar : 9000 (항상 모달 위 — 최소화 클릭 가능 보장)
142
+ confirm : 10000 (모든 위) */
143
+ --rmm-z-overlay: 1400;
144
+ --rmm-z-modal: 1500;
145
+ --rmm-z-taskbar: 9000;
141
146
  }
142
147
 
143
148
  /* ============================================
@@ -319,8 +319,8 @@ export default class extends Controller {
319
319
 
320
320
  // Create confirm modal HTML
321
321
  const confirmHtml = `
322
- <div class="rmm-overlay rmm-active" id="${confirmId}-overlay" style="z-index: 3000;"></div>
323
- <div id="${confirmId}" class="rmm-modal rmm-size-xs rmm-position-center rmm-active" style="z-index: 3001; min-width: 320px;" role="dialog" aria-modal="true">
322
+ <div class="rmm-overlay rmm-active" id="${confirmId}-overlay" style="z-index: 10000;"></div>
323
+ <div id="${confirmId}" class="rmm-modal rmm-size-xs rmm-position-center rmm-active" style="z-index: 10001; min-width: 320px;" role="dialog" aria-modal="true">
324
324
  <div class="rmm-header" style="background: var(--rmm-btn-warning-bg); border-bottom: none;">
325
325
  <div class="rmm-header-left">
326
326
  <h2 class="rmm-header-title" style="color: white;">확인</h2>
@@ -11,8 +11,15 @@
11
11
  // ============================================
12
12
 
13
13
  export const MODAL_CONSTANTS = {
14
- // v1.0.57모달이 최소화 태스크바(2100) 위에 오도록 시작 z-index 상향
15
- DEFAULT_Z_INDEX: 2200,
14
+ // v1.0.58 — 최소화 태스크바(9000) 가 항상 모달 위에 위치해 클릭 가능하도록
15
+ // 모달 z-index 시작값 1500 + 최대 cap 8000 (taskbar 9000 보다 낮게 유지).
16
+ // overlay/confirm 도 함께 재배치:
17
+ // overlay : 1400
18
+ // modal : 1500 ~ 8000 (동적 증가, 8000 도달 시 reset)
19
+ // taskbar : 9000 (항상 모달 위 — 최소화 항목 클릭 가능)
20
+ // confirm 모달 : 10000 (모든 것 위)
21
+ DEFAULT_Z_INDEX: 1500,
22
+ MAX_Z_INDEX: 8000,
16
23
  ANIMATION_DURATION: 200,
17
24
  HEADER_HEIGHT: 56,
18
25
  FOOTER_HEIGHT: 64,
@@ -101,6 +108,15 @@ class ModalStore {
101
108
  return;
102
109
  }
103
110
 
111
+ // z-index cap — taskbar(9000) 보다 높지 못하도록 8000 도달 시 default 로 reset.
112
+ if (this.topZIndex >= MODAL_CONSTANTS.MAX_Z_INDEX) {
113
+ this.topZIndex = MODAL_CONSTANTS.DEFAULT_Z_INDEX;
114
+ // 기존 모달들 z-index 도 정렬 순서대로 재할당
115
+ this.modalOrder.forEach((id, idx) => {
116
+ if (this.activeModals[id]) this.activeModals[id].zIndex = MODAL_CONSTANTS.DEFAULT_Z_INDEX + idx * 10;
117
+ });
118
+ this.topZIndex = MODAL_CONSTANTS.DEFAULT_Z_INDEX + this.modalOrder.length * 10;
119
+ }
104
120
  const newZIndex = this.topZIndex + 10;
105
121
 
106
122
  this.activeModals[modalId] = { ...config, zIndex: newZIndex };
@@ -159,6 +175,18 @@ class ModalStore {
159
175
  if (!this.activeModals[modalId]) return;
160
176
  if (this.modalOrder[this.modalOrder.length - 1] === modalId) return;
161
177
 
178
+ // z-index cap — 8000 도달 시 정렬 순서로 재할당.
179
+ if (this.topZIndex >= MODAL_CONSTANTS.MAX_Z_INDEX) {
180
+ const reordered = [...this.modalOrder.filter(id => id !== modalId), modalId];
181
+ reordered.forEach((id, idx) => {
182
+ if (this.activeModals[id]) this.activeModals[id].zIndex = MODAL_CONSTANTS.DEFAULT_Z_INDEX + idx * 10;
183
+ });
184
+ this.modalOrder = reordered;
185
+ this.topZIndex = MODAL_CONSTANTS.DEFAULT_Z_INDEX + reordered.length * 10;
186
+ this.notify();
187
+ return;
188
+ }
189
+
162
190
  const newZIndex = this.topZIndex + 10;
163
191
 
164
192
  this.activeModals[modalId].zIndex = newZIndex;
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RailsModalManager
4
- VERSION = "1.0.57"
4
+ VERSION = "1.0.58"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails_modal_manager
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.57
4
+ version: 1.0.58
5
5
  platform: ruby
6
6
  authors:
7
7
  - reshacs