@propbinder/mobile-design 0.2.21 → 0.2.22

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": "@propbinder/mobile-design",
3
- "version": "0.2.21",
3
+ "version": "0.2.22",
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
@@ -276,7 +276,7 @@ ion-spinner {
276
276
  color: var(--color-accent) !important;
277
277
  }
278
278
 
279
- ion-modal {
279
+ ion-modal:not(.ds-bottom-sheet) {
280
280
  --background: var(--color-background-neutral-primary);
281
281
  --border-radius: 16px;
282
282
  --box-shadow: var(--box-shadow-lg);
@@ -286,7 +286,7 @@ ion-modal {
286
286
  }
287
287
 
288
288
  /* Prevent modal container from resizing when keyboard appears */
289
- ion-modal::part(content) {
289
+ ion-modal:not(.ds-bottom-sheet)::part(content) {
290
290
  position: fixed !important;
291
291
  height: 100% !important;
292
292
  max-height: 100vh !important;
@@ -329,9 +329,15 @@ ion-toast {
329
329
  --box-shadow: 0px -2px 24px rgba(0, 0, 0, 0.12);
330
330
  --backdrop-opacity: 0.4;
331
331
  transition: --backdrop-opacity 0.3s ease;
332
- /* Modal at top:0 so backdrop covers full screen including status bar */
333
- top: 0;
334
- height: 100%;
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;
335
341
  }
336
342
 
337
343
  /* Backdrop styling */
@@ -349,18 +355,21 @@ ion-toast {
349
355
  margin-bottom: 8px;
350
356
  }
351
357
 
352
- /* Content area styling */
358
+ /* Content area styling - Support auto-height by default for sheets */
353
359
  .ds-bottom-sheet::part(content) {
354
360
  /* Offset content below status bar (backdrop still covers full screen) */
355
361
  margin-top: var(--app-sheet-top-offset);
356
362
  border-radius: var(--border-radius) var(--border-radius) 0 0;
357
363
  background: var(--color-background-neutral-primary, #ffffff);
358
364
  box-shadow: var(--box-shadow);
359
- position: absolute !important;
360
- top: 0 !important;
361
- bottom: 0 !important;
362
- height: 100% !important;
363
- max-height: 100% !important;
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;
364
373
  }
365
374
 
366
375
  /* Remove border radius when fully expanded */
@@ -397,48 +406,27 @@ ion-toast {
397
406
  Make action sheets auto-size to their content
398
407
  ============================================ */
399
408
 
400
- /* Auto-height modal - override base bottom sheet styles */
401
- .ds-bottom-sheet.auto-height {
402
- top: 0 !important;
403
- height: 100% !important;
404
- --height: fit-content;
405
- --max-height: 80vh;
406
- display: flex;
407
- align-items: flex-end;
408
- }
409
-
410
- .ds-bottom-sheet.auto-height .modal-wrapper {
411
- position: relative !important;
412
- bottom: auto !important;
413
- left: auto !important;
414
- right: auto !important;
415
- height: auto !important;
416
- max-height: 80vh !important;
417
- top: auto !important;
418
- width: 100%;
419
- }
420
-
421
- .ds-bottom-sheet.auto-height::part(content) {
422
- position: relative !important;
423
- height: auto !important;
424
- max-height: 80vh !important;
425
- top: auto !important;
426
- bottom: auto !important;
427
- }
409
+ /* Auto-height behavior is now part of .ds-bottom-sheet base */
428
410
 
429
411
  /* Ensure action sheet component sizes naturally */
430
- .ds-bottom-sheet.auto-height ds-mobile-actions-bottom-sheet {
412
+ .ds-bottom-sheet ds-mobile-actions-bottom-sheet {
431
413
  display: block;
432
414
  height: auto;
433
415
  }
434
416
 
435
417
  /* Ensure action list scrolls if needed */
436
- .ds-bottom-sheet.auto-height .actions-list {
437
- max-height: calc(80vh - 80px); /* Account for handle, padding, and safe area */
418
+ .ds-bottom-sheet .actions-list {
419
+ max-height: calc(85dvh - 80px); /* Account for handle, padding, and safe area */
438
420
  overflow-y: auto;
439
421
  -webkit-overflow-scrolling: touch;
440
422
  }
441
423
 
424
+ /* Ensure ion-content doesn't force 100% height in sheets */
425
+ .ds-bottom-sheet ion-content {
426
+ height: auto !important;
427
+ --height: auto;
428
+ }
429
+
442
430
  /* ============================================
443
431
  Mobile Modal Styles (Generic Modal Service)
444
432
  ============================================ */