@propbinder/mobile-design 0.2.84 → 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
@@ -413,6 +413,16 @@ declare class DsMobileBottomSheetHeaderComponent {
413
413
  * @default false
414
414
  */
415
415
  rightButtonLoading: boolean;
416
+ /**
417
+ * Show left button
418
+ * @default true
419
+ */
420
+ showLeftButton: boolean;
421
+ /**
422
+ * Show right button
423
+ * @default true
424
+ */
425
+ showRightButton: boolean;
416
426
  /**
417
427
  * Emitted when left button is clicked
418
428
  */
@@ -422,7 +432,7 @@ declare class DsMobileBottomSheetHeaderComponent {
422
432
  */
423
433
  rightButtonClick: EventEmitter<void>;
424
434
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<DsMobileBottomSheetHeaderComponent, never>;
425
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<DsMobileBottomSheetHeaderComponent, "ds-mobile-bottom-sheet-header", never, { "title": { "alias": "title"; "required": false; }; "leftButtonLabel": { "alias": "leftButtonLabel"; "required": false; }; "rightButtonLabel": { "alias": "rightButtonLabel"; "required": false; }; "rightButtonDisabled": { "alias": "rightButtonDisabled"; "required": false; }; "rightButtonLoading": { "alias": "rightButtonLoading"; "required": false; }; }, { "leftButtonClick": "leftButtonClick"; "rightButtonClick": "rightButtonClick"; }, never, never, true, never>;
435
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DsMobileBottomSheetHeaderComponent, "ds-mobile-bottom-sheet-header", never, { "title": { "alias": "title"; "required": false; }; "leftButtonLabel": { "alias": "leftButtonLabel"; "required": false; }; "rightButtonLabel": { "alias": "rightButtonLabel"; "required": false; }; "rightButtonDisabled": { "alias": "rightButtonDisabled"; "required": false; }; "rightButtonLoading": { "alias": "rightButtonLoading"; "required": false; }; "showLeftButton": { "alias": "showLeftButton"; "required": false; }; "showRightButton": { "alias": "showRightButton"; "required": false; }; }, { "leftButtonClick": "leftButtonClick"; "rightButtonClick": "rightButtonClick"; }, never, never, true, never>;
426
436
  }
427
437
 
428
438
  /**
@@ -2154,6 +2164,10 @@ declare class DsMobileMessageComposerComponent implements AfterViewInit, OnDestr
2154
2164
  * Whether to show the attachment button
2155
2165
  */
2156
2166
  showAttachmentButton: _angular_core.InputSignal<boolean>;
2167
+ /**
2168
+ * Whether to show the AI reply button
2169
+ */
2170
+ showAiButton: _angular_core.InputSignal<boolean>;
2157
2171
  /**
2158
2172
  * Edit indicator text (when editing)
2159
2173
  */
@@ -2296,6 +2310,10 @@ declare class DsMobileMessageComposerComponent implements AfterViewInit, OnDestr
2296
2310
  * Parent components (like chat modal) can use this to scroll to bottom
2297
2311
  */
2298
2312
  attachmentsChanged: _angular_core.OutputEmitterRef<void>;
2313
+ /**
2314
+ * Emits when the AI reply button is clicked
2315
+ */
2316
+ aiClick: _angular_core.OutputEmitterRef<void>;
2299
2317
  ngAfterViewInit(): void;
2300
2318
  ngOnDestroy(): void;
2301
2319
  /**
@@ -2403,8 +2421,12 @@ declare class DsMobileMessageComposerComponent implements AfterViewInit, OnDestr
2403
2421
  * Send message
2404
2422
  */
2405
2423
  sendMessage(): void;
2424
+ /**
2425
+ * Insert text into the composer, updating internal state and textarea sizing
2426
+ */
2427
+ insertText(text: string): void;
2406
2428
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<DsMobileMessageComposerComponent, never>;
2407
- 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>;
2408
2430
  }
2409
2431
 
2410
2432
  /**
@@ -4068,6 +4090,11 @@ interface ChatModalData {
4068
4090
  * Use this to handle API calls to your backend.
4069
4091
  */
4070
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>;
4071
4098
  /**
4072
4099
  * Optional callback for when a file attachment is clicked.
4073
4100
  * If not provided, the default behavior will try to open/download the file.
@@ -4123,6 +4150,7 @@ interface ChatModalLabels {
4123
4150
  closeButtonLabel: string;
4124
4151
  backAriaLabel: string;
4125
4152
  addMembersSearchPlaceholder: string;
4153
+ aiReplyError: string;
4126
4154
  }
4127
4155
  /**
4128
4156
  * DsMobileChatModalComponent
@@ -4168,6 +4196,7 @@ declare class DsMobileChatModalComponent implements OnInit, AfterViewInit {
4168
4196
  * Back button click event
4169
4197
  */
4170
4198
  back: EventEmitter<void>;
4199
+ localError: _angular_core.WritableSignal<string | undefined>;
4171
4200
  participant: _angular_core.WritableSignal<ChatParticipant>;
4172
4201
  messages: _angular_core.WritableSignal<ChatMessage[]>;
4173
4202
  currentUserInitials: _angular_core.WritableSignal<string>;
@@ -4237,6 +4266,10 @@ declare class DsMobileChatModalComponent implements OnInit, AfterViewInit {
4237
4266
  * Used to determine if we should auto-scroll when keyboard appears
4238
4267
  */
4239
4268
  private isNearBottom;
4269
+ /**
4270
+ * Handle AI reply button click
4271
+ */
4272
+ handleAiClick(): Promise<void>;
4240
4273
  /**
4241
4274
  * Scroll to bottom of messages
4242
4275
  */
@@ -4967,7 +5000,7 @@ declare class DsMobileCreateGroupModalComponent implements OnInit {
4967
5000
  members: CreateGroupMember[];
4968
5001
  defaultName: string;
4969
5002
  allTenants: CreateGroupMember[];
4970
- view: _angular_core.WritableSignal<"main" | "add-members">;
5003
+ view: _angular_core.WritableSignal<"add-members" | "main">;
4971
5004
  groupName: _angular_core.WritableSignal<string>;
4972
5005
  customAvatarUrl: _angular_core.WritableSignal<string>;
4973
5006
  localMembers: _angular_core.WritableSignal<CreateGroupMember[]>;
@@ -8331,7 +8364,7 @@ declare class DsTextInputComponent implements ControlValueAccessor {
8331
8364
  hasError: _angular_core.InputSignal<boolean>;
8332
8365
  errorMessage: _angular_core.InputSignal<string>;
8333
8366
  autocomplete: _angular_core.InputSignal<string>;
8334
- inputmode: _angular_core.InputSignal<"search" | "text" | "email" | "tel" | "url" | "numeric" | undefined>;
8367
+ inputmode: _angular_core.InputSignal<"search" | "text" | "numeric" | "email" | "tel" | "url" | undefined>;
8335
8368
  autoClearError: _angular_core.InputSignal<boolean>;
8336
8369
  validator: _angular_core.InputSignal<((value: string) => boolean) | null>;
8337
8370
  valueChange: _angular_core.OutputEmitterRef<string>;
@@ -8639,7 +8672,7 @@ declare class DsMobileIllustrationComponent {
8639
8672
  * Predefined illustration variant
8640
8673
  * Available variants: 'post', 'inquiry', 'confirmation', 'family'
8641
8674
  */
8642
- 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">;
8643
8676
  /**
8644
8677
  * Illustration size (width and height)
8645
8678
  * @default '120px'
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@propbinder/mobile-design",
3
- "version": "0.2.84",
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"