@propbinder/mobile-design 0.2.34 → 0.2.35

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/index.d.ts CHANGED
@@ -1158,7 +1158,7 @@ declare class DsMobileContentComponent {
1158
1158
  */
1159
1159
  declare class SectionHeaderComponent {
1160
1160
  /** Width of the header placeholder */
1161
- width: _angular_core.InputSignal<"full" | "half" | "third">;
1161
+ width: _angular_core.InputSignal<"half" | "third" | "full">;
1162
1162
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SectionHeaderComponent, never>;
1163
1163
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<SectionHeaderComponent, "section-header", never, { "width": { "alias": "width"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
1164
1164
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@propbinder/mobile-design",
3
- "version": "0.2.34",
3
+ "version": "0.2.35",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^20.3.0 || ^21.0.0",
6
6
  "@angular/core": "^20.3.0 || ^21.0.0"
package/styles/ionic.css CHANGED
@@ -279,17 +279,16 @@ ion-modal:not(.ds-bottom-sheet) {
279
279
  --background: var(--color-background-neutral-primary);
280
280
  --border-radius: 16px;
281
281
  --box-shadow: var(--box-shadow-lg);
282
- --height: auto;
283
- max-height: 100dvh;
284
- height: 100dvh !important;
282
+ /* Prevent modal from resizing when keyboard appears */
283
+ height: 100% !important;
284
+ max-height: 100vh !important;
285
285
  }
286
286
 
287
287
  /* Prevent modal container from resizing when keyboard appears */
288
288
  ion-modal:not(.ds-bottom-sheet)::part(content) {
289
289
  position: fixed !important;
290
- max-height: 100dvh !important;
291
- /* Ensure content doesn't get cut off by keyboard or safe area */
292
- padding-bottom: env(safe-area-inset-bottom);
290
+ height: 100% !important;
291
+ max-height: 100vh !important;
293
292
  }
294
293
 
295
294
  /* Prevent ion-content inside modals from resizing */
@@ -329,15 +328,9 @@ ion-toast {
329
328
  --box-shadow: 0px -2px 24px rgba(0, 0, 0, 0.12);
330
329
  --backdrop-opacity: 0.4;
331
330
  transition: --backdrop-opacity 0.3s ease;
332
-
333
- /* Position the modal container to fill screen */
334
- top: 0 !important;
335
- height: 100% !important;
336
-
337
- /* Align the actual sheet at the bottom */
338
- display: flex;
339
- flex-direction: column;
340
- justify-content: flex-end;
331
+ /* Modal at top:0 so backdrop covers full screen including status bar */
332
+ top: 0;
333
+ height: 100%;
341
334
  }
342
335
 
343
336
  /* Backdrop styling */
@@ -355,21 +348,18 @@ ion-toast {
355
348
  margin-bottom: 8px;
356
349
  }
357
350
 
358
- /* Content area styling - Support auto-height by default for sheets */
351
+ /* Content area styling */
359
352
  .ds-bottom-sheet::part(content) {
360
353
  /* Offset content below status bar (backdrop still covers full screen) */
361
354
  margin-top: var(--app-sheet-top-offset);
362
355
  border-radius: var(--border-radius) var(--border-radius) 0 0;
363
356
  background: var(--color-background-neutral-primary, #ffffff);
364
357
  box-shadow: var(--box-shadow);
365
-
366
- /* Auto-height logic: Only as tall as content */
367
- height: auto !important;
368
- max-height: calc(100dvh - var(--app-sheet-top-offset)) !important;
369
-
370
- /* Sit at the bottom of the flex container */
371
- position: relative !important;
372
- margin-top: auto !important;
358
+ position: absolute !important;
359
+ top: 0 !important;
360
+ bottom: 0 !important;
361
+ height: 100% !important;
362
+ max-height: 100% !important;
373
363
  }
374
364
 
375
365
  /* Remove border radius when fully expanded */
@@ -406,8 +396,23 @@ ion-toast {
406
396
  Make action sheets auto-size to their content
407
397
  ============================================ */
408
398
 
409
- /* Auto-height behavior is now part of .ds-bottom-sheet base */
399
+ /* Auto-height modal - override base bottom sheet styles */
400
+ .ds-bottom-sheet.auto-height {
401
+ top: 0 !important;
402
+ height: 100% !important;
403
+ display: flex;
404
+ flex-direction: column;
405
+ justify-content: flex-end;
406
+ }
410
407
 
408
+ .ds-bottom-sheet.auto-height::part(content) {
409
+ position: relative !important;
410
+ height: auto !important;
411
+ max-height: 80vh !important;
412
+ top: auto !important;
413
+ bottom: auto !important;
414
+ margin-top: auto !important;
415
+ }
411
416
  /* Ensure action sheet component sizes naturally */
412
417
  .ds-bottom-sheet ds-mobile-actions-bottom-sheet {
413
418
  display: block;
@@ -621,12 +626,9 @@ ion-modal.ds-modal-base {
621
626
  --background: var(--color-background-neutral-primary, #ffffff);
622
627
  --width: 100%;
623
628
  --max-width: 640px;
624
- /* Subtract top offset from total height to avoid bottom clipping */
625
- --height: calc(100dvh - var(--app-sheet-top-offset, 24px)) !important;
626
- --max-height: calc(100dvh - var(--app-sheet-top-offset, 24px)) !important;
629
+ --height: 100dvh;
630
+ /* Full viewport height - content top offset creates gap */
627
631
  --border-radius: 16px 16px 0 0;
628
- display: flex !important;
629
- align-items: flex-end !important;
630
632
  }
631
633
 
632
634
  ion-modal.ds-modal-base::part(content) {
@@ -635,11 +637,10 @@ ion-modal.ds-modal-base::part(content) {
635
637
  background: var(--color-background-neutral-primary, #ffffff);
636
638
  max-width: 640px;
637
639
  margin: 0 auto;
638
- /* Reset Ionic's default top offset and stick to bottom */
639
- top: auto !important;
640
- bottom: 0 !important;
641
- height: 100% !important;
642
- position: relative !important;
640
+ /* Use top positioning instead of margin-top to work with fixed positioning */
641
+ top: var(--app-sheet-top-offset) !important;
642
+ height: calc(100% - var(--app-sheet-top-offset)) !important;
643
+ max-height: calc(100dvh - var(--app-sheet-top-offset)) !important;
643
644
  }
644
645
 
645
646
  /* Auto-height support for base modals */