@propbinder/mobile-design 0.2.85 → 0.2.86

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
@@ -2164,6 +2164,10 @@ declare class DsMobileMessageComposerComponent implements AfterViewInit, OnDestr
2164
2164
  * Whether to show the attachment button
2165
2165
  */
2166
2166
  showAttachmentButton: _angular_core.InputSignal<boolean>;
2167
+ /**
2168
+ * Whether to show the AI reply button
2169
+ */
2170
+ showAiButton: _angular_core.InputSignal<boolean>;
2167
2171
  /**
2168
2172
  * Edit indicator text (when editing)
2169
2173
  */
@@ -2306,6 +2310,10 @@ declare class DsMobileMessageComposerComponent implements AfterViewInit, OnDestr
2306
2310
  * Parent components (like chat modal) can use this to scroll to bottom
2307
2311
  */
2308
2312
  attachmentsChanged: _angular_core.OutputEmitterRef<void>;
2313
+ /**
2314
+ * Emits when the AI reply button is clicked
2315
+ */
2316
+ aiClick: _angular_core.OutputEmitterRef<void>;
2309
2317
  ngAfterViewInit(): void;
2310
2318
  ngOnDestroy(): void;
2311
2319
  /**
@@ -2413,8 +2421,12 @@ declare class DsMobileMessageComposerComponent implements AfterViewInit, OnDestr
2413
2421
  * Send message
2414
2422
  */
2415
2423
  sendMessage(): void;
2424
+ /**
2425
+ * Insert text into the composer, updating internal state and textarea sizing
2426
+ */
2427
+ insertText(text: string): void;
2416
2428
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<DsMobileMessageComposerComponent, never>;
2417
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<DsMobileMessageComposerComponent, "ds-mobile-message-composer", never, { "avatarInitials": { "alias": "avatarInitials"; "required": false; "isSignal": true; }; "avatarType": { "alias": "avatarType"; "required": false; "isSignal": true; }; "avatarSrc": { "alias": "avatarSrc"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "sendButtonLabel": { "alias": "sendButtonLabel"; "required": false; "isSignal": true; }; "attachmentButtonLabel": { "alias": "attachmentButtonLabel"; "required": false; "isSignal": true; }; "showAttachmentButton": { "alias": "showAttachmentButton"; "required": false; "isSignal": true; }; "editIndicatorText": { "alias": "editIndicatorText"; "required": false; "isSignal": true; }; "replyIndicatorText": { "alias": "replyIndicatorText"; "required": false; "isSignal": true; }; "enableMentions": { "alias": "enableMentions"; "required": false; "isSignal": true; }; "mentionUsers": { "alias": "mentionUsers"; "required": false; "isSignal": true; }; "autoFocus": { "alias": "autoFocus"; "required": false; "isSignal": true; }; }, { "messageSent": "messageSent"; "editCancelled": "editCancelled"; "replyCancelled": "replyCancelled"; "mentionSelected": "mentionSelected"; "attachmentClicked": "attachmentClicked"; "attachmentsChanged": "attachmentsChanged"; }, never, never, true, never>;
2429
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DsMobileMessageComposerComponent, "ds-mobile-message-composer", never, { "avatarInitials": { "alias": "avatarInitials"; "required": false; "isSignal": true; }; "avatarType": { "alias": "avatarType"; "required": false; "isSignal": true; }; "avatarSrc": { "alias": "avatarSrc"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "sendButtonLabel": { "alias": "sendButtonLabel"; "required": false; "isSignal": true; }; "attachmentButtonLabel": { "alias": "attachmentButtonLabel"; "required": false; "isSignal": true; }; "showAttachmentButton": { "alias": "showAttachmentButton"; "required": false; "isSignal": true; }; "showAiButton": { "alias": "showAiButton"; "required": false; "isSignal": true; }; "editIndicatorText": { "alias": "editIndicatorText"; "required": false; "isSignal": true; }; "replyIndicatorText": { "alias": "replyIndicatorText"; "required": false; "isSignal": true; }; "enableMentions": { "alias": "enableMentions"; "required": false; "isSignal": true; }; "mentionUsers": { "alias": "mentionUsers"; "required": false; "isSignal": true; }; "autoFocus": { "alias": "autoFocus"; "required": false; "isSignal": true; }; }, { "messageSent": "messageSent"; "editCancelled": "editCancelled"; "replyCancelled": "replyCancelled"; "mentionSelected": "mentionSelected"; "attachmentClicked": "attachmentClicked"; "attachmentsChanged": "attachmentsChanged"; "aiClick": "aiClick"; }, never, never, true, never>;
2418
2430
  }
2419
2431
 
2420
2432
  /**
@@ -4078,6 +4090,11 @@ interface ChatModalData {
4078
4090
  * Use this to handle API calls to your backend.
4079
4091
  */
4080
4092
  onSend?: (message: string, attachments: AttachmentData[]) => void | Promise<void>;
4093
+ /**
4094
+ * Optional callback for generating an AI reply.
4095
+ * Resolves with the generated text, or void/null if cancelled or failed.
4096
+ */
4097
+ onAiReplyClick?: () => Promise<string | void | null>;
4081
4098
  /**
4082
4099
  * Optional callback for when a file attachment is clicked.
4083
4100
  * If not provided, the default behavior will try to open/download the file.
@@ -4133,6 +4150,7 @@ interface ChatModalLabels {
4133
4150
  closeButtonLabel: string;
4134
4151
  backAriaLabel: string;
4135
4152
  addMembersSearchPlaceholder: string;
4153
+ aiReplyError: string;
4136
4154
  }
4137
4155
  /**
4138
4156
  * DsMobileChatModalComponent
@@ -4178,6 +4196,7 @@ declare class DsMobileChatModalComponent implements OnInit, AfterViewInit {
4178
4196
  * Back button click event
4179
4197
  */
4180
4198
  back: EventEmitter<void>;
4199
+ localError: _angular_core.WritableSignal<string | undefined>;
4181
4200
  participant: _angular_core.WritableSignal<ChatParticipant>;
4182
4201
  messages: _angular_core.WritableSignal<ChatMessage[]>;
4183
4202
  currentUserInitials: _angular_core.WritableSignal<string>;
@@ -4247,6 +4266,10 @@ declare class DsMobileChatModalComponent implements OnInit, AfterViewInit {
4247
4266
  * Used to determine if we should auto-scroll when keyboard appears
4248
4267
  */
4249
4268
  private isNearBottom;
4269
+ /**
4270
+ * Handle AI reply button click
4271
+ */
4272
+ handleAiClick(): Promise<void>;
4250
4273
  /**
4251
4274
  * Scroll to bottom of messages
4252
4275
  */
@@ -4977,7 +5000,7 @@ declare class DsMobileCreateGroupModalComponent implements OnInit {
4977
5000
  members: CreateGroupMember[];
4978
5001
  defaultName: string;
4979
5002
  allTenants: CreateGroupMember[];
4980
- view: _angular_core.WritableSignal<"main" | "add-members">;
5003
+ view: _angular_core.WritableSignal<"add-members" | "main">;
4981
5004
  groupName: _angular_core.WritableSignal<string>;
4982
5005
  customAvatarUrl: _angular_core.WritableSignal<string>;
4983
5006
  localMembers: _angular_core.WritableSignal<CreateGroupMember[]>;
@@ -8341,7 +8364,7 @@ declare class DsTextInputComponent implements ControlValueAccessor {
8341
8364
  hasError: _angular_core.InputSignal<boolean>;
8342
8365
  errorMessage: _angular_core.InputSignal<string>;
8343
8366
  autocomplete: _angular_core.InputSignal<string>;
8344
- inputmode: _angular_core.InputSignal<"search" | "text" | "email" | "tel" | "url" | "numeric" | undefined>;
8367
+ inputmode: _angular_core.InputSignal<"search" | "text" | "numeric" | "email" | "tel" | "url" | undefined>;
8345
8368
  autoClearError: _angular_core.InputSignal<boolean>;
8346
8369
  validator: _angular_core.InputSignal<((value: string) => boolean) | null>;
8347
8370
  valueChange: _angular_core.OutputEmitterRef<string>;
@@ -8649,7 +8672,7 @@ declare class DsMobileIllustrationComponent {
8649
8672
  * Predefined illustration variant
8650
8673
  * Available variants: 'post', 'inquiry', 'confirmation', 'family'
8651
8674
  */
8652
- variant: _angular_core.InputSignal<"post" | "inquiry" | "confirmation" | "family" | "cancel-booking" | "delete-warning">;
8675
+ variant: _angular_core.InputSignal<"inquiry" | "delete-warning" | "post" | "confirmation" | "family" | "cancel-booking">;
8653
8676
  /**
8654
8677
  * Illustration size (width and height)
8655
8678
  * @default '120px'
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@propbinder/mobile-design",
3
- "version": "0.2.85",
3
+ "version": "0.2.86",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^20.3.0 || ^21.0.0",
6
6
  "@angular/core": "^20.3.0 || ^21.0.0"