@propbinder/mobile-design 0.2.7 → 0.2.8

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
@@ -1237,7 +1237,7 @@ declare class DsMobileDropdownComponent {
1237
1237
  * Computed offset Y for Ionic Popover
1238
1238
  * Uses CSS variable for precise control
1239
1239
  */
1240
- offsetY: _angular_core.Signal<"-4px" | "4px">;
1240
+ offsetY: _angular_core.Signal<"4px" | "-4px">;
1241
1241
  /**
1242
1242
  * Computed offset X for Ionic Popover
1243
1243
  * Negative value to shift left by trigger position + add 20px left margin
@@ -3930,6 +3930,256 @@ declare class DsMobilePostDetailModalService extends BaseModalService {
3930
3930
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<DsMobilePostDetailModalService>;
3931
3931
  }
3932
3932
 
3933
+ /**
3934
+ * DsMobileCardInlineComponent
3935
+ *
3936
+ * A versatile, always-interactive inline card component for standalone or small-group usage.
3937
+ * Designed for tappable card-like elements such as file attachments, contact cards, etc.
3938
+ * Not intended for long scrolling lists - use ds-mobile-list-item for that purpose.
3939
+ *
3940
+ * Features:
3941
+ * - Always interactive/tappable (unless disabled)
3942
+ * - Two layout variants: default (column) and compact (row)
3943
+ * - Flexible content projection with leading/main/trailing slots
3944
+ * - Consistent styling with rounded corners and neutral background
3945
+ * - Built-in hover and active states
3946
+ * - Accessibility features (role, tabindex, aria attributes)
3947
+ *
3948
+ * @example
3949
+ * ```html
3950
+ * <!-- Default variant (column layout) -->
3951
+ * <ds-mobile-card-inline
3952
+ * [variant]="'default'"
3953
+ * (cardClick)="handleClick()">
3954
+ *
3955
+ * <div content-leading>
3956
+ * <ds-avatar initials="JD" />
3957
+ * </div>
3958
+ *
3959
+ * <div content-main>
3960
+ * <div class="title">Document Title</div>
3961
+ * <div class="subtitle">PDF · 1.2 MB</div>
3962
+ * </div>
3963
+ *
3964
+ * <ds-icon content-trailing name="remixArrowRightSLine" />
3965
+ * </ds-mobile-card-inline>
3966
+ *
3967
+ * <!-- Compact variant (row layout) -->
3968
+ * <ds-mobile-card-inline
3969
+ * [variant]="'compact'"
3970
+ * (cardClick)="handleClick()">
3971
+ *
3972
+ * <ds-avatar content-leading size="sm" />
3973
+ *
3974
+ * <div content-main>
3975
+ * <span class="name">File.pdf</span>
3976
+ * <span class="size">245 KB</span>
3977
+ * </div>
3978
+ *
3979
+ * <ds-icon content-trailing name="remixArrowRightSLine" />
3980
+ * </ds-mobile-card-inline>
3981
+ *
3982
+ * <!-- Disabled state -->
3983
+ * <ds-mobile-card-inline [disabled]="true">
3984
+ * <div content-main>Disabled card</div>
3985
+ * </ds-mobile-card-inline>
3986
+ * ```
3987
+ */
3988
+ declare class DsMobileCardInlineComponent {
3989
+ /**
3990
+ * Display variant
3991
+ * - 'default' - Column layout with standard padding (gap: 12px, padding: 10px 12px)
3992
+ * - 'compact' - Row layout with reduced padding (gap: 8px, padding: 10px)
3993
+ */
3994
+ variant: _angular_core.InputSignal<"default" | "compact">;
3995
+ /**
3996
+ * Whether the card is disabled
3997
+ * Disables all interactions and reduces opacity
3998
+ */
3999
+ disabled: _angular_core.InputSignal<boolean>;
4000
+ /**
4001
+ * Emits when the card is clicked (if not disabled)
4002
+ */
4003
+ cardClick: _angular_core.OutputEmitterRef<void>;
4004
+ /**
4005
+ * Handle click events
4006
+ */
4007
+ handleClick(event: Event): void;
4008
+ /**
4009
+ * Handle keyboard events (Enter/Space)
4010
+ */
4011
+ handleKeyDown(event: KeyboardEvent): void;
4012
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DsMobileCardInlineComponent, never>;
4013
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DsMobileCardInlineComponent, "ds-mobile-card-inline", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "cardClick": "cardClick"; }, never, ["[content-leading]", "[content-main]", "*", "[content-trailing]"], true, never>;
4014
+ }
4015
+
4016
+ /**
4017
+ * DsMobileCardInlineBannerComponent
4018
+ *
4019
+ * Specialized interactive component for displaying notification banners.
4020
+ * Used to show unread message notifications above inquiry details.
4021
+ *
4022
+ * Features:
4023
+ * - Neutral background matching file/contact cards
4024
+ * - Avatar icon with message symbol
4025
+ * - Title and timestamp
4026
+ * - Unread count badge
4027
+ * - Chevron for navigation indication
4028
+ *
4029
+ * @example
4030
+ * ```html
4031
+ * <ds-mobile-card-inline-banner
4032
+ * [title]="'New messages'"
4033
+ * [timestamp]="'2 min ago'"
4034
+ * [unreadCount]="3"
4035
+ * (bannerClick)="navigateToMessages()">
4036
+ * </ds-mobile-card-inline-banner>
4037
+ * ```
4038
+ */
4039
+ declare class DsMobileCardInlineBannerComponent {
4040
+ /**
4041
+ * Banner title (e.g., "New messages", "Unread messages")
4042
+ */
4043
+ title: _angular_core.InputSignal<string>;
4044
+ /**
4045
+ * Timestamp text (e.g., "2 min ago", "Just now")
4046
+ */
4047
+ timestamp: _angular_core.InputSignal<string>;
4048
+ /**
4049
+ * Number of unread items (optional, shows badge if > 0)
4050
+ */
4051
+ unreadCount: _angular_core.InputSignal<number>;
4052
+ /**
4053
+ * Layout variant
4054
+ * - 'default' - Standard padding and column layout
4055
+ * - 'compact' - Reduced padding and row layout
4056
+ */
4057
+ layout: _angular_core.InputSignal<"default" | "compact">;
4058
+ /**
4059
+ * Emits when the banner is clicked
4060
+ */
4061
+ bannerClick: _angular_core.OutputEmitterRef<void>;
4062
+ handleBannerClick(): void;
4063
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DsMobileCardInlineBannerComponent, never>;
4064
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DsMobileCardInlineBannerComponent, "ds-mobile-card-inline-banner", never, { "title": { "alias": "title"; "required": true; "isSignal": true; }; "timestamp": { "alias": "timestamp"; "required": false; "isSignal": true; }; "unreadCount": { "alias": "unreadCount"; "required": false; "isSignal": true; }; "layout": { "alias": "layout"; "required": false; "isSignal": true; }; }, { "bannerClick": "bannerClick"; }, never, never, true, never>;
4065
+ }
4066
+
4067
+ /**
4068
+ * DsMobileCardInlineContactComponent
4069
+ *
4070
+ * Specialized interactive component for displaying contacts.
4071
+ * Displays contact name with avatar initials and metadata (person name + phone number).
4072
+ * Similar styling to file attachments with rounded corners and hover states.
4073
+ *
4074
+ * @example
4075
+ * ```html
4076
+ * <ds-mobile-card-inline-contact
4077
+ * [name]="'Mortensen & Søn ApS'"
4078
+ * [initials]="'M'"
4079
+ * [contactPerson]="'John Mortensen'"
4080
+ * [phoneNumber]="'+45 12 34 56 78'"
4081
+ * [clickable]="true"
4082
+ * (contactClick)="openContact()">
4083
+ * </ds-mobile-card-inline-contact>
4084
+ * ```
4085
+ */
4086
+ declare class DsMobileCardInlineContactComponent {
4087
+ /**
4088
+ * Contact/company name
4089
+ */
4090
+ name: _angular_core.InputSignal<string>;
4091
+ /**
4092
+ * Avatar initials (usually 1-2 letters)
4093
+ */
4094
+ initials: _angular_core.InputSignal<string>;
4095
+ /**
4096
+ * Contact person name (optional)
4097
+ */
4098
+ contactPerson: _angular_core.InputSignal<string>;
4099
+ /**
4100
+ * Phone number (optional)
4101
+ */
4102
+ phoneNumber: _angular_core.InputSignal<string>;
4103
+ /**
4104
+ * Layout variant
4105
+ * - 'default' - Standard padding and column layout
4106
+ * - 'compact' - Reduced padding and row layout
4107
+ */
4108
+ layout: _angular_core.InputSignal<"default" | "compact">;
4109
+ /**
4110
+ * Whether the contact item is clickable
4111
+ */
4112
+ clickable: _angular_core.InputSignal<boolean>;
4113
+ /**
4114
+ * Whether to show chevron icon
4115
+ */
4116
+ showChevron: _angular_core.InputSignal<boolean>;
4117
+ /**
4118
+ * Emits when the contact item is clicked (if clickable)
4119
+ */
4120
+ contactClick: _angular_core.OutputEmitterRef<void>;
4121
+ handleContactClick(): void;
4122
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DsMobileCardInlineContactComponent, never>;
4123
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DsMobileCardInlineContactComponent, "ds-mobile-card-inline-contact", never, { "name": { "alias": "name"; "required": true; "isSignal": true; }; "initials": { "alias": "initials"; "required": true; "isSignal": true; }; "contactPerson": { "alias": "contactPerson"; "required": false; "isSignal": true; }; "phoneNumber": { "alias": "phoneNumber"; "required": false; "isSignal": true; }; "layout": { "alias": "layout"; "required": false; "isSignal": true; }; "clickable": { "alias": "clickable"; "required": false; "isSignal": true; }; "showChevron": { "alias": "showChevron"; "required": false; "isSignal": true; }; }, { "contactClick": "contactClick"; }, never, never, true, never>;
4124
+ }
4125
+
4126
+ /**
4127
+ * DsMobileCardInlineFileComponent
4128
+ *
4129
+ * File attachment display for various document types.
4130
+ * Shows file info card with icon, filename, and file size.
4131
+ * Supports PDF and generic document formats.
4132
+ * Emits click event to open file in viewer.
4133
+ *
4134
+ * @example
4135
+ * ```html
4136
+ * <ds-mobile-card-inline-file
4137
+ * [fileName]="'Document.pdf'"
4138
+ * [fileSize]="'1.2 MB'"
4139
+ * [variant]="'pdf'"
4140
+ * [layout]="'compact'"
4141
+ * (fileClick)="openFile()">
4142
+ * </ds-mobile-card-inline-file>
4143
+ * ```
4144
+ */
4145
+ declare class DsMobileCardInlineFileComponent {
4146
+ /**
4147
+ * File name
4148
+ */
4149
+ fileName: _angular_core.InputSignal<string>;
4150
+ /**
4151
+ * File size display (e.g., "1.2 MB")
4152
+ */
4153
+ fileSize: _angular_core.InputSignal<string>;
4154
+ /**
4155
+ * File type variant
4156
+ * - 'pdf' - PDF document (red icon)
4157
+ * - 'doc' - Generic document (blue icon)
4158
+ */
4159
+ variant: _angular_core.InputSignal<"pdf" | "doc">;
4160
+ /**
4161
+ * Layout variant
4162
+ * - 'default' - Standard padding and column layout
4163
+ * - 'compact' - Reduced padding and row layout
4164
+ */
4165
+ layout: _angular_core.InputSignal<"default" | "compact">;
4166
+ /**
4167
+ * Emits when the file attachment is clicked
4168
+ */
4169
+ fileClick: _angular_core.OutputEmitterRef<void>;
4170
+ /**
4171
+ * Get the appropriate icon name based on variant
4172
+ */
4173
+ getIconName(): string;
4174
+ /**
4175
+ * Get the file type label based on variant
4176
+ */
4177
+ getFileTypeLabel(): string;
4178
+ handleClick(): void;
4179
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DsMobileCardInlineFileComponent, never>;
4180
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DsMobileCardInlineFileComponent, "ds-mobile-card-inline-file", never, { "fileName": { "alias": "fileName"; "required": false; "isSignal": true; }; "fileSize": { "alias": "fileSize"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "layout": { "alias": "layout"; "required": false; "isSignal": true; }; }, { "fileClick": "fileClick"; }, never, never, true, never>;
4181
+ }
4182
+
3933
4183
  /**
3934
4184
  * Chat message data interface
3935
4185
  */
@@ -4889,7 +5139,7 @@ declare class DsTextInputComponent implements ControlValueAccessor {
4889
5139
  hasError: _angular_core.InputSignal<boolean>;
4890
5140
  errorMessage: _angular_core.InputSignal<string>;
4891
5141
  autocomplete: _angular_core.InputSignal<string>;
4892
- inputmode: _angular_core.InputSignal<"search" | "text" | "numeric" | "url" | "email" | "tel" | undefined>;
5142
+ inputmode: _angular_core.InputSignal<"search" | "text" | "url" | "numeric" | "email" | "tel" | undefined>;
4893
5143
  autoClearError: _angular_core.InputSignal<boolean>;
4894
5144
  validator: _angular_core.InputSignal<((value: string) => boolean) | null>;
4895
5145
  valueChange: _angular_core.OutputEmitterRef<string>;
@@ -5403,7 +5653,7 @@ declare class MobileInquiriesPageComponent {
5403
5653
  private navCtrl;
5404
5654
  private newInquiryModal;
5405
5655
  constructor(userService: UserService, navCtrl: NavController, newInquiryModal: DsMobileNewInquiryModalService);
5406
- filterStatus: _angular_core.WritableSignal<"all" | "open" | "closed">;
5656
+ filterStatus: _angular_core.WritableSignal<"open" | "closed" | "all">;
5407
5657
  tabItems: InlineTabItem[];
5408
5658
  inquiries: _angular_core.WritableSignal<Inquiry[]>;
5409
5659
  filteredInquiries: _angular_core.Signal<Inquiry[]>;
@@ -5601,5 +5851,5 @@ declare const customPageTransition: (_: HTMLElement, opts: any) => Animation;
5601
5851
  */
5602
5852
  declare const customBackTransition: (_: HTMLElement, opts: any) => Animation;
5603
5853
 
5604
- export { ActionCommentComponent, ActionLikeComponent, ContentRowComponent, DsAvatarWithBadgeComponent, DsMobileActionsBottomSheetComponent, DsMobileAttachmentPreviewComponent, DsMobileBottomSheetService, DsMobileBottomSheetWrapperComponent, DsMobileChatModalComponent, DsMobileChatModalService, DsMobileActionsBottomSheetComponent as DsMobileCommentActionsBottomSheetComponent, DsMobileCommentComponent, DsMobileContactListItemComponent, DsMobileContentComponent, DsMobileContentSectionComponent, DsMobileDropdownComponent, DsMobileEmptyStateComponent, DsMobileFabComponent, DsMobileHandbookDetailModalComponent, DsMobileHandbookDetailModalService, DsMobileHandbookFolderComponent, DsMobileHandbookFolderMiniComponent, DsMobileHeaderContentComponent, DsMobileHeaderContentTileComponent, DsMobileInlinePhotoComponent, DsMobileInlineTabsComponent, DsMobileInteractiveListItemInquiryComponent, DsMobileInteractiveListItemMessageComponent, DsMobileInteractiveListItemPostComponent, DsMobileLightboxImageComponent as DsMobileLightboxComponent, DsMobileLightboxFooterComponent, DsMobileLightboxHeaderComponent, DsMobileLightboxImageComponent, DsMobileLightboxPdfComponent, DsMobileLightboxService, DsMobileListItemComponent, DsMobileListItemStaticComponent, DsMobileLongPressDirective, DsMobileMessageBubbleComponent, DsMobileMessageComposerComponent, DsMobileModalBaseComponent, DsMobileModalService, DsMobileNewInquiryModalComponent, DsMobileNewInquiryModalService, DsMobilePageDetailsComponent, DsMobilePageMainComponent, DsMobileActionsBottomSheetComponent as DsMobilePostActionsBottomSheetComponent, DsMobilePostComposerComponent, DsMobilePostCreateBottomSheetComponent, DsMobilePostDetailModalComponent, DsMobilePostDetailModalService, DsMobileProfileActionsSheetComponent, DsMobileTabBarComponent, DsMobileTabsComponent, DsTextInputComponent, MobileCommunityPageComponent, MobileHandbookPageComponent, MobileHomePageComponent, MobileInquiriesPageComponent, MobileInquiryDetailPageComponent, MobileModalBase, MobilePageBase, MobilePostDetailPageComponent, MobileTabsExampleComponent, PostActionsComponent, PostAttachmentsComponent, PostContentComponent, PostCreatePageComponent, PostMediaComponent, PostPdfAttachmentComponent, PostTextComponent, SectionHeaderComponent, SignInPageComponent, TileContentComponent, TileIconComponent, TileLabelComponent, TileValueComponent, UserService, WhitelabelDemoPage, WhitelabelService, customBackTransition, customPageTransition };
5854
+ export { ActionCommentComponent, ActionLikeComponent, ContentRowComponent, DsAvatarWithBadgeComponent, DsMobileActionsBottomSheetComponent, DsMobileAttachmentPreviewComponent, DsMobileBottomSheetService, DsMobileBottomSheetWrapperComponent, DsMobileCardInlineBannerComponent, DsMobileCardInlineComponent, DsMobileCardInlineContactComponent, DsMobileCardInlineFileComponent, DsMobileChatModalComponent, DsMobileChatModalService, DsMobileActionsBottomSheetComponent as DsMobileCommentActionsBottomSheetComponent, DsMobileCommentComponent, DsMobileContactListItemComponent, DsMobileContentComponent, DsMobileContentSectionComponent, DsMobileDropdownComponent, DsMobileEmptyStateComponent, DsMobileFabComponent, DsMobileHandbookDetailModalComponent, DsMobileHandbookDetailModalService, DsMobileHandbookFolderComponent, DsMobileHandbookFolderMiniComponent, DsMobileHeaderContentComponent, DsMobileHeaderContentTileComponent, DsMobileInlinePhotoComponent, DsMobileInlineTabsComponent, DsMobileInteractiveListItemInquiryComponent, DsMobileInteractiveListItemMessageComponent, DsMobileInteractiveListItemPostComponent, DsMobileLightboxImageComponent as DsMobileLightboxComponent, DsMobileLightboxFooterComponent, DsMobileLightboxHeaderComponent, DsMobileLightboxImageComponent, DsMobileLightboxPdfComponent, DsMobileLightboxService, DsMobileListItemComponent, DsMobileListItemStaticComponent, DsMobileLongPressDirective, DsMobileMessageBubbleComponent, DsMobileMessageComposerComponent, DsMobileModalBaseComponent, DsMobileModalService, DsMobileNewInquiryModalComponent, DsMobileNewInquiryModalService, DsMobilePageDetailsComponent, DsMobilePageMainComponent, DsMobileActionsBottomSheetComponent as DsMobilePostActionsBottomSheetComponent, DsMobilePostComposerComponent, DsMobilePostCreateBottomSheetComponent, DsMobilePostDetailModalComponent, DsMobilePostDetailModalService, DsMobileProfileActionsSheetComponent, DsMobileTabBarComponent, DsMobileTabsComponent, DsTextInputComponent, MobileCommunityPageComponent, MobileHandbookPageComponent, MobileHomePageComponent, MobileInquiriesPageComponent, MobileInquiryDetailPageComponent, MobileModalBase, MobilePageBase, MobilePostDetailPageComponent, MobileTabsExampleComponent, PostActionsComponent, PostAttachmentsComponent, PostContentComponent, PostCreatePageComponent, PostMediaComponent, PostPdfAttachmentComponent, PostTextComponent, SectionHeaderComponent, SignInPageComponent, TileContentComponent, TileIconComponent, TileLabelComponent, TileValueComponent, UserService, WhitelabelDemoPage, WhitelabelService, customBackTransition, customPageTransition };
5605
5855
  export type { ActionGroup, ActionItem, ActionResult, AttachmentData, AttachmentFileType, AttachmentItem, AvatarSize, AvatarType, BadgePosition, BottomSheetOptions, ChatAttachment, ChatMessage, ChatModalData, ChatParticipant, Comment, ActionResult as CommentActionResult, CommentData, ContactItem, ContentWidth, DropdownAlign, DropdownPosition, DsMobileDropdownItem, HandbookDetailData, HandbookItem, InlineTabItem, InquiryPhoto, Language, LightboxAuthor, LightboxImage, LightboxImageOptions, LightboxMediaFile, LightboxMediaType, LightboxOptions, LightboxPdf, LightboxPdfOptions, ModalOptions, NewInquiryData, NewInquiryModalOptions, Post, ActionResult as PostActionResult, PostDetailData, TabConfig, WhitelabelConfig };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@propbinder/mobile-design",
3
- "version": "0.2.07",
3
+ "version": "0.2.08",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^20.3.0 || ^21.0.0",
6
6
  "@angular/core": "^20.3.0 || ^21.0.0"