rails_modal_manager 1.0.30 → 1.0.31
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:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 2f31b5d2f94a210b09776bdba0fb0e28bbefe99ec017337304eecc7f1de43bc7
|
|
4
|
+
data.tar.gz: b948dd4e2969c0629893935ffd8b2fc42bf81d9012679a6eada70102acc6d153
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 54971d4a854cb1098db23448e9edd3d3e6beaaea58076403cc148cb935a1820095b6efefe1452f7d836fb246325ed7d42362f1afef9cca361bedb12b6106474d
|
|
7
|
+
data.tar.gz: 4609e53d90aa011638b9d73201716dbe0b751ecefa570bc622802a928f5a64052c793757a8df8d3e4b479079e0ded821b91e12afd7c8ad401b8ba6119e39ddba
|
|
@@ -697,29 +697,32 @@
|
|
|
697
697
|
visibility: visible;
|
|
698
698
|
}
|
|
699
699
|
|
|
700
|
-
/* When modal is maximized on mobile
|
|
700
|
+
/* When modal is maximized on mobile - icons state uses inline (takes space) */
|
|
701
701
|
.rmm-modal.rmm-size-full .rmm-sidebar {
|
|
702
702
|
position: relative;
|
|
703
703
|
top: auto;
|
|
704
704
|
transform: none;
|
|
705
705
|
}
|
|
706
706
|
|
|
707
|
+
/* icons 상태 (collapsed) - 본문 공간 차지 (inline) */
|
|
707
708
|
.rmm-modal.rmm-size-full .rmm-sidebar.rmm-sidebar-collapsed {
|
|
708
709
|
width: var(--rmm-sidebar-collapsed-width);
|
|
709
710
|
min-width: var(--rmm-sidebar-collapsed-width);
|
|
710
711
|
}
|
|
711
712
|
|
|
712
|
-
|
|
713
|
+
/* expanded 상태 - 오버레이 방식 (본문 위에 떠있음) */
|
|
714
|
+
.rmm-modal.rmm-size-full .rmm-sidebar:not(.rmm-sidebar-collapsed):not(.rmm-sidebar-hidden) {
|
|
715
|
+
position: absolute;
|
|
716
|
+
top: var(--rmm-header-height);
|
|
717
|
+
left: 0;
|
|
718
|
+
bottom: 0;
|
|
719
|
+
z-index: 10;
|
|
713
720
|
width: var(--rmm-sidebar-width);
|
|
714
721
|
min-width: var(--rmm-sidebar-width);
|
|
722
|
+
transform: translateX(0);
|
|
715
723
|
}
|
|
716
724
|
|
|
717
|
-
/*
|
|
718
|
-
.rmm-modal.rmm-size-full .rmm-sidebar-overlay {
|
|
719
|
-
display: none;
|
|
720
|
-
}
|
|
721
|
-
|
|
722
|
-
/* 모바일+최대화 상태에서 사이드바 완전 숨김 모드 */
|
|
725
|
+
/* hidden 상태 - 완전 숨김 */
|
|
723
726
|
.rmm-modal.rmm-size-full .rmm-sidebar.rmm-sidebar-hidden {
|
|
724
727
|
width: 0;
|
|
725
728
|
min-width: 0;
|
|
@@ -727,6 +730,13 @@
|
|
|
727
730
|
overflow: hidden;
|
|
728
731
|
border-right: none;
|
|
729
732
|
}
|
|
733
|
+
|
|
734
|
+
/* hidden/collapsed 상태에서는 오버레이 숨김 */
|
|
735
|
+
.rmm-modal.rmm-size-full .rmm-sidebar.rmm-sidebar-hidden ~ .rmm-sidebar-overlay,
|
|
736
|
+
.rmm-modal.rmm-size-full .rmm-sidebar.rmm-sidebar-collapsed ~ .rmm-sidebar-overlay {
|
|
737
|
+
opacity: 0;
|
|
738
|
+
visibility: hidden;
|
|
739
|
+
}
|
|
730
740
|
}
|
|
731
741
|
|
|
732
742
|
/* ============================================
|
|
@@ -58,10 +58,15 @@ export default class extends Controller {
|
|
|
58
58
|
// Listen for toggle event from header button
|
|
59
59
|
this.handleToggleEvent = () => this.toggle()
|
|
60
60
|
this.element.addEventListener('rmm-sidebar:toggle', this.handleToggleEvent)
|
|
61
|
+
|
|
62
|
+
// Listen for closeOverlay event from mobile overlay
|
|
63
|
+
this.handleCloseOverlayEvent = () => this.closeOverlay()
|
|
64
|
+
this.element.addEventListener('rmm-sidebar:closeOverlay', this.handleCloseOverlayEvent)
|
|
61
65
|
}
|
|
62
66
|
|
|
63
67
|
disconnect() {
|
|
64
68
|
this.element.removeEventListener('rmm-sidebar:toggle', this.handleToggleEvent)
|
|
69
|
+
this.element.removeEventListener('rmm-sidebar:closeOverlay', this.handleCloseOverlayEvent)
|
|
65
70
|
}
|
|
66
71
|
|
|
67
72
|
toggle() {
|
|
@@ -236,10 +241,14 @@ export default class extends Controller {
|
|
|
236
241
|
|
|
237
242
|
// On mobile, close sidebar after selection
|
|
238
243
|
if (window.innerWidth < 768) {
|
|
239
|
-
// 모바일+최대화 상태에서는 아이콘 상태로 전환
|
|
240
244
|
if (this.isMobileMaximized()) {
|
|
241
|
-
|
|
242
|
-
|
|
245
|
+
// expanded 상태에서 클릭하면 hidden으로 전환
|
|
246
|
+
// icons 상태에서 클릭하면 icons 상태 유지
|
|
247
|
+
if (this.sidebarModeValue === 'expanded') {
|
|
248
|
+
this.sidebarModeValue = 'hidden'
|
|
249
|
+
this.applySidebarMode()
|
|
250
|
+
}
|
|
251
|
+
// icons 상태면 그대로 유지
|
|
243
252
|
} else {
|
|
244
253
|
this.collapsedValue = true
|
|
245
254
|
this.element.classList.add('rmm-sidebar-collapsed')
|
|
@@ -338,9 +347,9 @@ export default class extends Controller {
|
|
|
338
347
|
|
|
339
348
|
// Mobile overlay click
|
|
340
349
|
closeOverlay() {
|
|
341
|
-
// 모바일+최대화 상태에서는
|
|
350
|
+
// 모바일+최대화 상태에서는 숨김 상태로 전환
|
|
342
351
|
if (this.isMobileMaximized()) {
|
|
343
|
-
this.sidebarModeValue = '
|
|
352
|
+
this.sidebarModeValue = 'hidden'
|
|
344
353
|
this.applySidebarMode()
|
|
345
354
|
} else {
|
|
346
355
|
this.collapsedValue = true
|
|
@@ -165,9 +165,9 @@
|
|
|
165
165
|
items: sidebar_items,
|
|
166
166
|
collapsed: sidebar_collapsed
|
|
167
167
|
%>
|
|
168
|
-
<!-- Mobile overlay: closes sidebar when tapped
|
|
168
|
+
<!-- Mobile overlay: closes sidebar when tapped -->
|
|
169
169
|
<div class="rmm-sidebar-overlay"
|
|
170
|
-
onclick="const sidebar = this.previousElementSibling; if(sidebar
|
|
170
|
+
onclick="const sidebar = this.previousElementSibling; if(!sidebar) return; const modal = sidebar.closest('.rmm-modal'); const isMobileMaximized = window.innerWidth <= 768 && modal && modal.classList.contains('rmm-size-full'); if(isMobileMaximized) { sidebar.classList.remove('rmm-sidebar-collapsed'); sidebar.classList.add('rmm-sidebar-hidden'); } else { sidebar.classList.add('rmm-sidebar-collapsed'); }"></div>
|
|
171
171
|
<% end %>
|
|
172
172
|
|
|
173
173
|
<div class="rmm-content-wrapper">
|