@propbinder/mobile-design 0.2.1 → 0.2.2

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
@@ -3841,6 +3841,140 @@ declare class DsTextInputComponent implements ControlValueAccessor {
3841
3841
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<DsTextInputComponent, "ds-text-input", never, { "type": { "alias": "type"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "hasError": { "alias": "hasError"; "required": false; "isSignal": true; }; "errorMessage": { "alias": "errorMessage"; "required": false; "isSignal": true; }; "autocomplete": { "alias": "autocomplete"; "required": false; "isSignal": true; }; "inputmode": { "alias": "inputmode"; "required": false; "isSignal": true; }; "autoClearError": { "alias": "autoClearError"; "required": false; "isSignal": true; }; "validator": { "alias": "validator"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; "blur": "blur"; "focus": "focus"; "errorCleared": "errorCleared"; }, never, never, true, never>;
3842
3842
  }
3843
3843
 
3844
+ interface WhitelabelConfig {
3845
+ logoUrl: string;
3846
+ logoMarkUrl: string;
3847
+ logoAlt: string;
3848
+ logoWidth?: number;
3849
+ logoHeight?: number;
3850
+ logoMarkWidth?: number;
3851
+ logoMarkHeight?: number;
3852
+ primarySurface: string;
3853
+ primaryContent: string;
3854
+ secondarySurface: string;
3855
+ secondaryContent: string;
3856
+ organizationName: string;
3857
+ organizationId: string;
3858
+ }
3859
+ /**
3860
+ * WhitelabelService
3861
+ *
3862
+ * Manages whitelabel configuration including logos and brand colors.
3863
+ * Automatically updates CSS custom properties when colors change.
3864
+ *
3865
+ * @example
3866
+ * Initialize with custom config:
3867
+ * ```typescript
3868
+ * whitelabelService.initialize({
3869
+ * logoUrl: '/Assets/logos/acme-logo.svg',
3870
+ * logoMarkUrl: '/Assets/logos/acme-mark.svg',
3871
+ * primaryColor: '#2563eb',
3872
+ * secondaryColor: '#3b82f6',
3873
+ * organizationName: 'Acme Corp'
3874
+ * });
3875
+ * ```
3876
+ *
3877
+ * Load from API:
3878
+ * ```typescript
3879
+ * await whitelabelService.loadFromApi('acme-corp');
3880
+ * ```
3881
+ */
3882
+ declare class WhitelabelService {
3883
+ private _config;
3884
+ readonly logoUrl: _angular_core.Signal<string>;
3885
+ readonly logoMarkUrl: _angular_core.Signal<string>;
3886
+ readonly logoAlt: _angular_core.Signal<string>;
3887
+ readonly logoHeight: _angular_core.Signal<number>;
3888
+ readonly primarySurface: _angular_core.Signal<string>;
3889
+ readonly primaryContent: _angular_core.Signal<string>;
3890
+ readonly secondarySurface: _angular_core.Signal<string>;
3891
+ readonly secondaryContent: _angular_core.Signal<string>;
3892
+ readonly organizationName: _angular_core.Signal<string>;
3893
+ readonly organizationId: _angular_core.Signal<string>;
3894
+ readonly config: _angular_core.Signal<WhitelabelConfig>;
3895
+ constructor();
3896
+ /**
3897
+ * Initialize whitelabel configuration
3898
+ * Call this early in app initialization (app.config.ts or app.component.ts)
3899
+ */
3900
+ initialize(config: Partial<WhitelabelConfig>): void;
3901
+ /**
3902
+ * Load whitelabel config from API
3903
+ * Typically called on app startup based on subdomain, user tenant, etc.
3904
+ *
3905
+ * @param organizationId - The organization identifier (subdomain, tenant ID, etc.)
3906
+ */
3907
+ loadFromApi(organizationId?: string): Promise<void>;
3908
+ /**
3909
+ * Update config dynamically (e.g., when user switches organizations)
3910
+ */
3911
+ updateConfig(updates: Partial<WhitelabelConfig>): void;
3912
+ /**
3913
+ * Update only the brand colors
3914
+ */
3915
+ updateColors(colors: {
3916
+ primarySurface?: string;
3917
+ primaryContent?: string;
3918
+ secondarySurface?: string;
3919
+ secondaryContent?: string;
3920
+ }): void;
3921
+ /**
3922
+ * Reset to default configuration
3923
+ */
3924
+ resetToDefault(): void;
3925
+ /**
3926
+ * Convert hex color to RGB values
3927
+ */
3928
+ private hexToRgb;
3929
+ /**
3930
+ * Apply colors to CSS custom properties and native StatusBar
3931
+ * This updates the actual CSS variables used throughout the app
3932
+ * and the native status bar color on mobile devices
3933
+ */
3934
+ private applyColors;
3935
+ /**
3936
+ * Update the native status bar color
3937
+ * Note: This only works on Android. On iOS, the status bar is transparent
3938
+ * and shows the web content behind it (controlled by CSS variables)
3939
+ */
3940
+ private updateNativeStatusBar;
3941
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<WhitelabelService, never>;
3942
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<WhitelabelService>;
3943
+ }
3944
+
3945
+ type AvatarType = 'initials' | 'photo' | 'icon';
3946
+ type AvatarSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
3947
+ type BadgePosition = 'bottom-right' | 'bottom-left' | 'top-right' | 'top-left';
3948
+ /**
3949
+ * DsAvatarWithBadgeComponent
3950
+ *
3951
+ * Displays an avatar with a logomark badge overlay.
3952
+ * Useful for showing user avatars with organization branding.
3953
+ *
3954
+ * @example
3955
+ * ```html
3956
+ * <ds-avatar-with-badge
3957
+ * [type]="'initials'"
3958
+ * [initials]="'JD'"
3959
+ * [size]="'lg'"
3960
+ * [badgePosition]="'bottom-right'"
3961
+ * />
3962
+ * ```
3963
+ */
3964
+ declare class DsAvatarWithBadgeComponent {
3965
+ whitelabelService: WhitelabelService;
3966
+ type: AvatarType;
3967
+ size: AvatarSize;
3968
+ initials: string;
3969
+ src: string;
3970
+ iconName: string;
3971
+ showBadge: boolean;
3972
+ badgePosition: BadgePosition;
3973
+ badgeClasses: _angular_core.Signal<string>;
3974
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DsAvatarWithBadgeComponent, never>;
3975
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DsAvatarWithBadgeComponent, "ds-avatar-with-badge", never, { "type": { "alias": "type"; "required": false; }; "size": { "alias": "size"; "required": false; }; "initials": { "alias": "initials"; "required": false; }; "src": { "alias": "src"; "required": false; }; "iconName": { "alias": "iconName"; "required": false; }; "showBadge": { "alias": "showBadge"; "required": false; }; "badgePosition": { "alias": "badgePosition"; "required": false; }; }, {}, never, never, true, never>;
3976
+ }
3977
+
3844
3978
  /**
3845
3979
  * User service for managing current user data globally
3846
3980
  */
@@ -4087,107 +4221,6 @@ declare class MobilePostDetailPageComponent {
4087
4221
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<MobilePostDetailPageComponent, "app-mobile-post-detail-page", never, {}, {}, never, never, true, never>;
4088
4222
  }
4089
4223
 
4090
- interface WhitelabelConfig {
4091
- logoUrl: string;
4092
- logoMarkUrl: string;
4093
- logoAlt: string;
4094
- logoWidth?: number;
4095
- logoHeight?: number;
4096
- logoMarkWidth?: number;
4097
- logoMarkHeight?: number;
4098
- primarySurface: string;
4099
- primaryContent: string;
4100
- secondarySurface: string;
4101
- secondaryContent: string;
4102
- organizationName: string;
4103
- organizationId: string;
4104
- }
4105
- /**
4106
- * WhitelabelService
4107
- *
4108
- * Manages whitelabel configuration including logos and brand colors.
4109
- * Automatically updates CSS custom properties when colors change.
4110
- *
4111
- * @example
4112
- * Initialize with custom config:
4113
- * ```typescript
4114
- * whitelabelService.initialize({
4115
- * logoUrl: '/Assets/logos/acme-logo.svg',
4116
- * logoMarkUrl: '/Assets/logos/acme-mark.svg',
4117
- * primaryColor: '#2563eb',
4118
- * secondaryColor: '#3b82f6',
4119
- * organizationName: 'Acme Corp'
4120
- * });
4121
- * ```
4122
- *
4123
- * Load from API:
4124
- * ```typescript
4125
- * await whitelabelService.loadFromApi('acme-corp');
4126
- * ```
4127
- */
4128
- declare class WhitelabelService {
4129
- private _config;
4130
- readonly logoUrl: _angular_core.Signal<string>;
4131
- readonly logoMarkUrl: _angular_core.Signal<string>;
4132
- readonly logoAlt: _angular_core.Signal<string>;
4133
- readonly logoHeight: _angular_core.Signal<number>;
4134
- readonly primarySurface: _angular_core.Signal<string>;
4135
- readonly primaryContent: _angular_core.Signal<string>;
4136
- readonly secondarySurface: _angular_core.Signal<string>;
4137
- readonly secondaryContent: _angular_core.Signal<string>;
4138
- readonly organizationName: _angular_core.Signal<string>;
4139
- readonly organizationId: _angular_core.Signal<string>;
4140
- readonly config: _angular_core.Signal<WhitelabelConfig>;
4141
- constructor();
4142
- /**
4143
- * Initialize whitelabel configuration
4144
- * Call this early in app initialization (app.config.ts or app.component.ts)
4145
- */
4146
- initialize(config: Partial<WhitelabelConfig>): void;
4147
- /**
4148
- * Load whitelabel config from API
4149
- * Typically called on app startup based on subdomain, user tenant, etc.
4150
- *
4151
- * @param organizationId - The organization identifier (subdomain, tenant ID, etc.)
4152
- */
4153
- loadFromApi(organizationId?: string): Promise<void>;
4154
- /**
4155
- * Update config dynamically (e.g., when user switches organizations)
4156
- */
4157
- updateConfig(updates: Partial<WhitelabelConfig>): void;
4158
- /**
4159
- * Update only the brand colors
4160
- */
4161
- updateColors(colors: {
4162
- primarySurface?: string;
4163
- primaryContent?: string;
4164
- secondarySurface?: string;
4165
- secondaryContent?: string;
4166
- }): void;
4167
- /**
4168
- * Reset to default configuration
4169
- */
4170
- resetToDefault(): void;
4171
- /**
4172
- * Convert hex color to RGB values
4173
- */
4174
- private hexToRgb;
4175
- /**
4176
- * Apply colors to CSS custom properties and native StatusBar
4177
- * This updates the actual CSS variables used throughout the app
4178
- * and the native status bar color on mobile devices
4179
- */
4180
- private applyColors;
4181
- /**
4182
- * Update the native status bar color
4183
- * Note: This only works on Android. On iOS, the status bar is transparent
4184
- * and shows the web content behind it (controlled by CSS variables)
4185
- */
4186
- private updateNativeStatusBar;
4187
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<WhitelabelService, never>;
4188
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<WhitelabelService>;
4189
- }
4190
-
4191
4224
  /**
4192
4225
  * Whitelabel Demo Page
4193
4226
  *
@@ -4231,5 +4264,5 @@ declare const customPageTransition: (_: HTMLElement, opts: any) => Animation;
4231
4264
  */
4232
4265
  declare const customBackTransition: (_: HTMLElement, opts: any) => Animation;
4233
4266
 
4234
- export { ActionCommentComponent, ActionLikeComponent, ContentRowComponent, DsMobileActionsBottomSheetComponent, DsMobileBottomSheetService, DsMobileChatModalComponent, DsMobileChatModalService, DsMobileActionsBottomSheetComponent as DsMobileCommentActionsBottomSheetComponent, DsMobileCommentComponent, DsMobileContactListItemComponent, DsMobileContentComponent, DsMobileContentSectionComponent, DsMobileHandbookDetailModalComponent, DsMobileHandbookDetailModalService, DsMobileHandbookFolderComponent, DsMobileHandbookFolderMiniComponent, DsMobileHeaderContentComponent, DsMobileHeaderContentTileComponent, DsMobileInlinePhotoComponent, DsMobileInlineTabsComponent, DsMobileInteractiveListItemInquiryComponent, DsMobileInteractiveListItemMessageComponent, DsMobileInteractiveListItemPostComponent, DsMobileLightboxImageComponent as DsMobileLightboxComponent, DsMobileLightboxFooterComponent, DsMobileLightboxHeaderComponent, DsMobileLightboxImageComponent, DsMobileLightboxPdfComponent, DsMobileLightboxService, DsMobileListItemComponent, DsMobileListItemStaticComponent, DsMobileLongPressDirective, DsMobileMessageBubbleComponent, DsMobileMessageComposerComponent, DsMobileModalService, DsMobilePageDetailsComponent, DsMobilePageMainComponent, DsMobileActionsBottomSheetComponent as DsMobilePostActionsBottomSheetComponent, DsMobilePostComposerComponent, DsMobilePostCreateBottomSheetComponent, DsMobilePostDetailModalComponent, DsMobilePostDetailModalService, DsMobileTabBarComponent, DsMobileTabsComponent, DsTextInputComponent, MobileCommunityPageComponent, MobileHandbookPageComponent, MobileHomePageComponent, MobileInquiriesPageComponent, MobileInquiryDetailPageComponent, MobilePageBase, MobilePostDetailPageComponent, MobileTabsExampleComponent, PostActionsComponent, PostAttachmentsComponent, PostContentComponent, PostCreatePageComponent, PostMediaComponent, PostPdfAttachmentComponent, PostTextComponent, SectionHeaderComponent, TileContentComponent, TileIconComponent, TileLabelComponent, TileValueComponent, UserService, WhitelabelDemoPage, WhitelabelService, customBackTransition, customPageTransition };
4235
- export type { ActionGroup, ActionItem, ActionResult, AttachmentItem, BottomSheetOptions, ChatAttachment, ChatMessage, ChatModalData, ChatParticipant, ActionResult as CommentActionResult, CommentData, ContactItem, ContentWidth, HandbookDetailData, HandbookItem, InlineTabItem, LightboxAuthor, LightboxImage, LightboxImageOptions, LightboxMediaFile, LightboxMediaType, LightboxOptions, LightboxPdf, LightboxPdfOptions, ModalOptions, ActionResult as PostActionResult, PostDetailData, TabConfig, WhitelabelConfig };
4267
+ export { ActionCommentComponent, ActionLikeComponent, ContentRowComponent, DsAvatarWithBadgeComponent, DsMobileActionsBottomSheetComponent, DsMobileBottomSheetService, DsMobileChatModalComponent, DsMobileChatModalService, DsMobileActionsBottomSheetComponent as DsMobileCommentActionsBottomSheetComponent, DsMobileCommentComponent, DsMobileContactListItemComponent, DsMobileContentComponent, DsMobileContentSectionComponent, DsMobileHandbookDetailModalComponent, DsMobileHandbookDetailModalService, DsMobileHandbookFolderComponent, DsMobileHandbookFolderMiniComponent, DsMobileHeaderContentComponent, DsMobileHeaderContentTileComponent, DsMobileInlinePhotoComponent, DsMobileInlineTabsComponent, DsMobileInteractiveListItemInquiryComponent, DsMobileInteractiveListItemMessageComponent, DsMobileInteractiveListItemPostComponent, DsMobileLightboxImageComponent as DsMobileLightboxComponent, DsMobileLightboxFooterComponent, DsMobileLightboxHeaderComponent, DsMobileLightboxImageComponent, DsMobileLightboxPdfComponent, DsMobileLightboxService, DsMobileListItemComponent, DsMobileListItemStaticComponent, DsMobileLongPressDirective, DsMobileMessageBubbleComponent, DsMobileMessageComposerComponent, DsMobileModalService, DsMobilePageDetailsComponent, DsMobilePageMainComponent, DsMobileActionsBottomSheetComponent as DsMobilePostActionsBottomSheetComponent, DsMobilePostComposerComponent, DsMobilePostCreateBottomSheetComponent, DsMobilePostDetailModalComponent, DsMobilePostDetailModalService, DsMobileTabBarComponent, DsMobileTabsComponent, DsTextInputComponent, MobileCommunityPageComponent, MobileHandbookPageComponent, MobileHomePageComponent, MobileInquiriesPageComponent, MobileInquiryDetailPageComponent, MobilePageBase, MobilePostDetailPageComponent, MobileTabsExampleComponent, PostActionsComponent, PostAttachmentsComponent, PostContentComponent, PostCreatePageComponent, PostMediaComponent, PostPdfAttachmentComponent, PostTextComponent, SectionHeaderComponent, TileContentComponent, TileIconComponent, TileLabelComponent, TileValueComponent, UserService, WhitelabelDemoPage, WhitelabelService, customBackTransition, customPageTransition };
4268
+ export type { ActionGroup, ActionItem, ActionResult, AttachmentItem, AvatarSize, AvatarType, BadgePosition, BottomSheetOptions, ChatAttachment, ChatMessage, ChatModalData, ChatParticipant, ActionResult as CommentActionResult, CommentData, ContactItem, ContentWidth, HandbookDetailData, HandbookItem, InlineTabItem, LightboxAuthor, LightboxImage, LightboxImageOptions, LightboxMediaFile, LightboxMediaType, LightboxOptions, LightboxPdf, LightboxPdfOptions, ModalOptions, 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.01",
3
+ "version": "0.2.02",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^20.3.0 || ^21.0.0",
6
6
  "@angular/core": "^20.3.0 || ^21.0.0"