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: 6e13d9b84a14555c6f0542549afd2abb51c7157fb1f82422f6acb0fcb6d8d67a
4
- data.tar.gz: 78343ad0786f8c180ae1684fbfd4aa26c9b27d75183c1166ead3937d6bf37bd4
3
+ metadata.gz: 2f31b5d2f94a210b09776bdba0fb0e28bbefe99ec017337304eecc7f1de43bc7
4
+ data.tar.gz: b948dd4e2969c0629893935ffd8b2fc42bf81d9012679a6eada70102acc6d153
5
5
  SHA512:
6
- metadata.gz: 7e08e480474e11510b7635fb79cfe8b09cfd6d4ec1efd1019db05b73fdf1b3a430ded38593a15c0edbfb512ad3528193c9f86f81170e705175084a124202b934
7
- data.tar.gz: adec02667f82766f9f2e5133fb39cb370a0a5211f558e45b38f66db521e70d7580f830638b12b68d5baeee42f1af2f0854bec6a4d55523227b466bd2fc104fcd
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, show collapsed sidebar with icons only */
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
- .rmm-modal.rmm-size-full .rmm-sidebar:not(.rmm-sidebar-collapsed) {
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
- /* Hide overlay for maximized modal since sidebar is inline */
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
- this.sidebarModeValue = 'icons'
242
- this.applySidebarMode()
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 = 'icons'
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 (dispatches toggle event) -->
168
+ <!-- Mobile overlay: closes sidebar when tapped -->
169
169
  <div class="rmm-sidebar-overlay"
170
- onclick="const sidebar = this.previousElementSibling; if(sidebar && sidebar.classList.contains('rmm-sidebar') && !sidebar.classList.contains('rmm-sidebar-collapsed')) { sidebar.dispatchEvent(new CustomEvent('rmm-sidebar:toggle', { bubbles: false })); }"></div>
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">
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RailsModalManager
4
- VERSION = "1.0.30"
4
+ VERSION = "1.0.31"
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.30
4
+ version: 1.0.31
5
5
  platform: ruby
6
6
  authors:
7
7
  - reshacs