mn-angular-lib 1.0.84 → 1.0.85

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mn-angular-lib",
3
- "version": "1.0.84",
3
+ "version": "1.0.85",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^21.1.3",
6
6
  "@angular/core": "^21.1.3"
@@ -79,17 +79,6 @@
79
79
  }
80
80
  }
81
81
 
82
- @keyframes slideUpOut {
83
- from {
84
- opacity: 1;
85
- transform: translateY(0);
86
- }
87
- to {
88
- opacity: 0;
89
- transform: translateY(100%);
90
- }
91
- }
92
-
93
82
  /* Open animations — keyed by the same .anim-* host classes as the close animations
94
83
  below, so mobile bottom-sheet overrides can target both in one place. */
95
84
  :host(.anim-slide) .modal-container {
@@ -135,21 +124,29 @@
135
124
  max-width: 100%;
136
125
  max-height: 92vh;
137
126
  border-radius: 1rem 1rem 0 0;
138
- animation: slideUpIn 0.35s var(--mn-sheet-ease);
127
+ animation: slideUpIn 0.45s var(--mn-sheet-ease);
139
128
  }
140
129
 
141
130
  /* Override whichever anim-* open animation was selected */
142
131
  :host(.mobile-sheet).anim-slide .modal-container,
143
132
  :host(.mobile-sheet).anim-fade .modal-container,
144
133
  :host(.mobile-sheet).anim-zoom .modal-container {
145
- animation: slideUpIn 0.35s var(--mn-sheet-ease);
134
+ animation: slideUpIn 0.45s var(--mn-sheet-ease);
146
135
  }
147
136
 
137
+ /* Close via a transform TRANSITION, not a re-triggered keyframe. Replaying the
138
+ slideUpOut KEYFRAME on a sheet whose open keyframe has already finished does
139
+ not animate reliably on mobile browsers — the sheet just disappears. A
140
+ transition animates dependably there (it's the same mechanism swipe-to-dismiss
141
+ uses), and works whether or not change detection flushes the host class. */
148
142
  :host(.mobile-sheet).closing .modal-container,
149
143
  :host(.mobile-sheet).closing.anim-slide .modal-container,
150
144
  :host(.mobile-sheet).closing.anim-fade .modal-container,
151
145
  :host(.mobile-sheet).closing.anim-zoom .modal-container {
152
- animation: slideUpOut 0.25s var(--mn-sheet-ease) forwards;
146
+ animation: none !important;
147
+ transform: translateY(100%);
148
+ opacity: 0;
149
+ transition: transform 0.45s var(--mn-sheet-ease), opacity 0.45s var(--mn-sheet-ease);
153
150
  }
154
151
  }
155
152
 
@@ -3767,8 +3767,8 @@ declare class MnModalShellComponent<TResult = unknown> implements OnInit, AfterV
3767
3767
  asCustom(config: ModalConfig<TResult>): CustomModalConfig;
3768
3768
  private static readonly SWIPE_DISMISS_THRESHOLD;
3769
3769
  /** Upper bound for the close wait if no animation/transition end event fires
3770
- * (e.g. an animation was suppressed). Longer than the slowest close path
3771
- * (mobile slide-down 0.25s, swipe glide 0.3s) so it never preempts. */
3770
+ * (e.g. an animation was suppressed). Must stay longer than the slowest close
3771
+ * path (mobile sheet slide-down 0.45s, swipe glide 0.3s) so it never preempts. */
3772
3772
  private static readonly CLOSE_FALLBACK_MS;
3773
3773
  /** Whether this modal renders as a bottom sheet on small screens (default: true). */
3774
3774
  get isMobileSheet(): boolean;