@propbinder/mobile-design 0.2.35 → 0.2.37

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
@@ -1,5 +1,5 @@
1
1
  import * as _angular_core from '@angular/core';
2
- import { OnDestroy, OnInit, ElementRef, EventEmitter, TemplateRef, AfterViewInit, OnChanges, Injector, SimpleChanges, AfterContentInit, ChangeDetectorRef, ApplicationRef, EnvironmentInjector, Type } from '@angular/core';
2
+ import { OnDestroy, OnInit, ElementRef, EventEmitter, TemplateRef, AfterViewInit, OnChanges, Injector, SimpleChanges, ChangeDetectorRef, AfterContentInit, ApplicationRef, EnvironmentInjector, Type } from '@angular/core';
3
3
  import { ModalController, IonContent, NavController, GestureController, ModalOptions as ModalOptions$1 } from '@ionic/angular/standalone';
4
4
  import { Style } from '@capacitor/status-bar';
5
5
  import { ImpactStyle } from '@capacitor/haptics';
@@ -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<"half" | "third" | "full">;
1161
+ width: _angular_core.InputSignal<"full" | "half" | "third">;
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
  }
@@ -1965,6 +1965,8 @@ declare class DsMobileDropdownComponent {
1965
1965
  * ```
1966
1966
  */
1967
1967
  declare class DsMobileMessageComposerComponent implements AfterViewInit, OnDestroy {
1968
+ private cdr;
1969
+ constructor(cdr: ChangeDetectorRef);
1968
1970
  /**
1969
1971
  * Avatar initials
1970
1972
  */
@@ -2074,8 +2076,9 @@ declare class DsMobileMessageComposerComponent implements AfterViewInit, OnDestr
2074
2076
  mentionDropdownItems: _angular_core.Signal<DsMobileDropdownItem[]>;
2075
2077
  /**
2076
2078
  * Attachment menu items
2079
+ * Static list to prevent change detection loops
2077
2080
  */
2078
- attachmentMenuItems: _angular_core.Signal<DsMobileDropdownItem[]>;
2081
+ readonly attachmentMenuItems: DsMobileDropdownItem[];
2079
2082
  /**
2080
2083
  * Emits when a message is sent
2081
2084
  */
@@ -5426,6 +5429,16 @@ interface ChatModalData {
5426
5429
  currentUserAvatarSrc?: string;
5427
5430
  /** Auto-focus input when modal opens */
5428
5431
  autoFocus?: boolean;
5432
+ /**
5433
+ * Callback executed when a message is sent from the chat.
5434
+ * Use this to handle API calls to your backend.
5435
+ */
5436
+ onSend?: (message: string, attachments: AttachmentData[]) => void | Promise<void>;
5437
+ /**
5438
+ * Optional callback for when a file attachment is clicked.
5439
+ * If not provided, the default behavior will try to open/download the file.
5440
+ */
5441
+ onFileClick?: (file: AttachmentData) => void;
5429
5442
  }
5430
5443
  /**
5431
5444
  * DsMobileChatModalComponent
@@ -5653,7 +5666,16 @@ declare class DsMobileChatModalComponent implements OnInit, AfterViewInit {
5653
5666
  * ],
5654
5667
  * currentUserId: '456',
5655
5668
  * currentUserInitials: 'JD',
5656
- * autoFocus: true
5669
+ * currentUserInitials: 'JD',
5670
+ * autoFocus: true,
5671
+ * onSend: async (message, attachments) => {
5672
+ * console.log('Sending message:', message);
5673
+ * // await this.chatService.sendMessage(participant.id, message, attachments);
5674
+ * },
5675
+ * onFileClick: (file) => {
5676
+ * console.log('File clicked:', file);
5677
+ * // window.open(file.url, '_blank');
5678
+ * }
5657
5679
  * });
5658
5680
  * }
5659
5681
  * ```
@@ -6985,7 +7007,7 @@ declare class DsMobileHandbookFolderMiniComponent {
6985
7007
  * ```
6986
7008
  */
6987
7009
  declare class DsTextInputComponent implements ControlValueAccessor {
6988
- type: _angular_core.InputSignal<"search" | "text" | "url" | "email" | "tel" | "password">;
7010
+ type: _angular_core.InputSignal<"search" | "text" | "email" | "tel" | "url" | "password">;
6989
7011
  placeholder: _angular_core.InputSignal<string>;
6990
7012
  disabled: _angular_core.InputSignal<boolean>;
6991
7013
  readonly: _angular_core.InputSignal<boolean>;
@@ -6993,7 +7015,7 @@ declare class DsTextInputComponent implements ControlValueAccessor {
6993
7015
  hasError: _angular_core.InputSignal<boolean>;
6994
7016
  errorMessage: _angular_core.InputSignal<string>;
6995
7017
  autocomplete: _angular_core.InputSignal<string>;
6996
- inputmode: _angular_core.InputSignal<"search" | "text" | "url" | "numeric" | "email" | "tel" | undefined>;
7018
+ inputmode: _angular_core.InputSignal<"search" | "text" | "email" | "tel" | "url" | "numeric" | undefined>;
6997
7019
  autoClearError: _angular_core.InputSignal<boolean>;
6998
7020
  validator: _angular_core.InputSignal<((value: string) => boolean) | null>;
6999
7021
  valueChange: _angular_core.OutputEmitterRef<string>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@propbinder/mobile-design",
3
- "version": "0.2.35",
3
+ "version": "0.2.37",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^20.3.0 || ^21.0.0",
6
6
  "@angular/core": "^20.3.0 || ^21.0.0"