@propbinder/mobile-design 0.1.17 → 0.1.19

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
@@ -342,7 +342,7 @@ declare class DsMobilePageMainComponent extends MobilePageBase implements AfterV
342
342
  title: _angular_core.InputSignal<string>;
343
343
  headerTitle: _angular_core.InputSignal<string>;
344
344
  headerSubtitle: _angular_core.InputSignal<string>;
345
- avatarType: _angular_core.InputSignal<"initials" | "photo" | "icon">;
345
+ avatarType: _angular_core.InputSignal<"photo" | "initials" | "icon">;
346
346
  avatarInitials: _angular_core.InputSignal<string>;
347
347
  avatarSrc: _angular_core.InputSignal<string>;
348
348
  avatarIconName: _angular_core.InputSignal<string>;
@@ -676,7 +676,7 @@ declare class DsMobileCommentComponent {
676
676
  /**
677
677
  * Avatar type
678
678
  */
679
- avatarType: _angular_core.InputSignal<"initials" | "photo" | "icon">;
679
+ avatarType: _angular_core.InputSignal<"photo" | "initials" | "icon">;
680
680
  /**
681
681
  * Whether the comment is clickable
682
682
  */
@@ -780,7 +780,7 @@ declare class DsMobilePostComposerComponent {
780
780
  /**
781
781
  * Avatar type
782
782
  */
783
- avatarType: _angular_core.InputSignal<"initials" | "photo" | "icon">;
783
+ avatarType: _angular_core.InputSignal<"photo" | "initials" | "icon">;
784
784
  /**
785
785
  * Avatar photo source (for photo type)
786
786
  */
@@ -1185,7 +1185,7 @@ declare class DsMobileInteractiveListItemPostComponent {
1185
1185
  /**
1186
1186
  * Avatar type
1187
1187
  */
1188
- avatarType: _angular_core.InputSignal<"initials" | "photo" | "icon">;
1188
+ avatarType: _angular_core.InputSignal<"photo" | "initials" | "icon">;
1189
1189
  /**
1190
1190
  * Avatar photo source (for photo type)
1191
1191
  */
@@ -1482,7 +1482,7 @@ declare class DsMobileInteractiveListItemMessageComponent {
1482
1482
  /**
1483
1483
  * Avatar type
1484
1484
  */
1485
- avatarType: _angular_core.InputSignal<"initials" | "photo" | "icon">;
1485
+ avatarType: _angular_core.InputSignal<"photo" | "initials" | "icon">;
1486
1486
  /**
1487
1487
  * Avatar photo source (for photo type)
1488
1488
  */
@@ -2594,6 +2594,10 @@ declare class DsMobilePostDetailModalComponent implements AfterViewInit, OnDestr
2594
2594
  private lightbox;
2595
2595
  private bottomSheet;
2596
2596
  postData: PostDetailData;
2597
+ onSubmitComment?: (payload: {
2598
+ postId: string;
2599
+ text: string;
2600
+ }) => void;
2597
2601
  /**
2598
2602
  * Loading state - when true, shows loading indicator
2599
2603
  * Set this to true while fetching post data from your API
@@ -2691,7 +2695,7 @@ declare class DsMobilePostDetailModalComponent implements AfterViewInit, OnDestr
2691
2695
  */
2692
2696
  handleCommentLongPress(authorName: string, content: string, isOwnComment: boolean): Promise<void>;
2693
2697
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<DsMobilePostDetailModalComponent, never>;
2694
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<DsMobilePostDetailModalComponent, "ds-mobile-post-detail-modal", never, { "postData": { "alias": "postData"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "error": { "alias": "error"; "required": false; }; }, {}, never, never, true, never>;
2698
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DsMobilePostDetailModalComponent, "ds-mobile-post-detail-modal", never, { "postData": { "alias": "postData"; "required": false; }; "onSubmitComment": { "alias": "onSubmitComment"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "error": { "alias": "error"; "required": false; }; }, {}, never, never, true, never>;
2695
2699
  }
2696
2700
 
2697
2701
  /**
@@ -2750,6 +2754,10 @@ declare class DsMobilePostDetailModalService {
2750
2754
  open(postData: PostDetailData, options?: {
2751
2755
  loading?: boolean;
2752
2756
  error?: string;
2757
+ onSubmitComment?: (payload: {
2758
+ postId: string;
2759
+ text: string;
2760
+ }) => void;
2753
2761
  }): Promise<void>;
2754
2762
  /**
2755
2763
  * Close the currently open post detail modal
@@ -3229,7 +3237,7 @@ declare class UserService {
3229
3237
  private _avatarSrc;
3230
3238
  private _profileMenuItems;
3231
3239
  readonly avatarInitials: _angular_core.Signal<string>;
3232
- readonly avatarType: _angular_core.Signal<"initials" | "photo" | "icon">;
3240
+ readonly avatarType: _angular_core.Signal<"photo" | "initials" | "icon">;
3233
3241
  readonly avatarSrc: _angular_core.Signal<string>;
3234
3242
  readonly profileMenuItems: _angular_core.Signal<ActionGroup[] | undefined>;
3235
3243
  /**
@@ -3487,8 +3495,8 @@ interface WhitelabelConfig {
3487
3495
  * Initialize with custom config:
3488
3496
  * ```typescript
3489
3497
  * whitelabelService.initialize({
3490
- * logoUrl: '/assets/logos/acme-logo.svg',
3491
- * logoMarkUrl: '/assets/logos/acme-mark.svg',
3498
+ * logoUrl: '/Assets/logos/acme-logo.svg',
3499
+ * logoMarkUrl: '/Assets/logos/acme-mark.svg',
3492
3500
  * primaryColor: '#2563eb',
3493
3501
  * secondaryColor: '#3b82f6',
3494
3502
  * organizationName: 'Acme Corp'
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@propbinder/mobile-design",
3
- "version": "0.1.17",
3
+ "version": "0.1.19",
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
@@ -524,9 +524,8 @@ ion-tab-button::part(native) {
524
524
  --background: var(--color-background-neutral-primary, #ffffff);
525
525
  --width: 100%;
526
526
  --max-width: 640px;
527
- --height: calc(100dvh - var(--app-sheet-top-offset)); /* Subtract margin to fit within viewport */
527
+ --height: 100dvh; /* Full viewport height - content top offset creates gap */
528
528
  --border-radius: 16px 16px 0 0;
529
- margin-top: var(--app-sheet-top-offset);
530
529
  }
531
530
 
532
531
  .ds-post-detail-modal::part(content) {
@@ -535,6 +534,10 @@ ion-tab-button::part(native) {
535
534
  background: var(--color-background-neutral-primary, #ffffff);
536
535
  max-width: 640px;
537
536
  margin: 0 auto;
537
+ /* Use top positioning instead of margin-top to work with fixed positioning */
538
+ top: var(--app-sheet-top-offset) !important;
539
+ height: calc(100% - var(--app-sheet-top-offset)) !important;
540
+ max-height: calc(100vh - var(--app-sheet-top-offset)) !important;
538
541
  }
539
542
 
540
543
  .ds-post-detail-modal::part(backdrop) {