@propbinder/mobile-design 0.2.73 → 0.2.75

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
@@ -3963,6 +3963,7 @@ interface ChatParticipant {
3963
3963
  avatarInitials?: string;
3964
3964
  avatarType?: 'initials' | 'photo' | 'icon';
3965
3965
  avatarSrc?: string;
3966
+ avatarShape?: 'circle' | 'squircle';
3966
3967
  badge?: string;
3967
3968
  verified?: boolean;
3968
3969
  lastActive?: string;
@@ -4692,6 +4693,76 @@ declare class DsMobileGroupMembersModalComponent implements OnInit {
4692
4693
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<DsMobileGroupMembersModalComponent, "ds-mobile-group-members-modal", never, { "getMembersSnapshot": { "alias": "getMembersSnapshot"; "required": true; }; "isAdmin": { "alias": "isAdmin"; "required": false; }; "currentUserId": { "alias": "currentUserId"; "required": false; }; "onRemoveMember": { "alias": "onRemoveMember"; "required": false; }; "onMessageMember": { "alias": "onMessageMember"; "required": false; }; "openAddMembersPicker": { "alias": "openAddMembersPicker"; "required": false; }; }, {}, never, never, true, never>;
4693
4694
  }
4694
4695
 
4696
+ interface CommunityAdminRow {
4697
+ id: string;
4698
+ name: string;
4699
+ unit?: string;
4700
+ avatarInitials?: string;
4701
+ avatarType?: 'initials' | 'photo' | 'icon';
4702
+ avatarSrc?: string;
4703
+ }
4704
+
4705
+ interface CommunityAdminLabels {
4706
+ pageTitle: string;
4707
+ closeButton: string;
4708
+ addButtonAriaLabel: string;
4709
+ emptyState: string;
4710
+ emptyStateDescription: string;
4711
+ removeConfirmTitle: string;
4712
+ removeConfirmMessage: (name: string) => string;
4713
+ removeConfirmButton: string;
4714
+ cancelButton: string;
4715
+ addPickerTitle: string;
4716
+ addPickerSearchPlaceholder: string;
4717
+ addPickerSearchAriaLabel: string;
4718
+ addPickerEmpty: string;
4719
+ onboardingTitle: string;
4720
+ onboardingMessage: string;
4721
+ onboardingButton: string;
4722
+ }
4723
+ /**
4724
+ * Full-screen modal for managing community administrators.
4725
+ *
4726
+ * The main view lists current admins with a "more" menu to remove them.
4727
+ * Tapping the "+" header button opens a stacked picker modal to add new admins
4728
+ * from the available tenants list.
4729
+ */
4730
+ declare class DsMobileCommunityAdminsModalComponent implements OnInit {
4731
+ private modalCtrl;
4732
+ private bottomSheet;
4733
+ getAdminsSnapshot: () => CommunityAdminRow[];
4734
+ availableTenants: CommunityAdminRow[];
4735
+ currentUserId: string;
4736
+ onAddAdmin?: (tenantId: string) => void | Promise<void>;
4737
+ onRemoveAdmin?: (adminId: string) => void | Promise<void>;
4738
+ labels?: Partial<CommunityAdminLabels>;
4739
+ lbl: CommunityAdminLabels;
4740
+ localAdmins: CommunityAdminRow[];
4741
+ get showAddButton(): boolean;
4742
+ ngOnInit(): void;
4743
+ syncAdmins(): void;
4744
+ confirmRemoveAdmin(admin: CommunityAdminRow): Promise<void>;
4745
+ openAddAdminPicker(): Promise<void>;
4746
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DsMobileCommunityAdminsModalComponent, never>;
4747
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DsMobileCommunityAdminsModalComponent, "ds-mobile-community-admins-modal", never, { "getAdminsSnapshot": { "alias": "getAdminsSnapshot"; "required": true; }; "availableTenants": { "alias": "availableTenants"; "required": false; }; "currentUserId": { "alias": "currentUserId"; "required": false; }; "onAddAdmin": { "alias": "onAddAdmin"; "required": false; }; "onRemoveAdmin": { "alias": "onRemoveAdmin"; "required": false; }; "labels": { "alias": "labels"; "required": false; }; }, {}, never, never, true, never>;
4748
+ }
4749
+ /**
4750
+ * Internal stacked picker for selecting a single tenant to promote to admin.
4751
+ */
4752
+ declare class DsMobileCommunityAdminPickerComponent implements OnInit {
4753
+ private modalCtrl;
4754
+ tenants: CommunityAdminRow[];
4755
+ labels?: CommunityAdminLabels;
4756
+ lbl: CommunityAdminLabels;
4757
+ searchQuery: _angular_core.WritableSignal<string>;
4758
+ private tenantsSig;
4759
+ ngOnInit(): void;
4760
+ filteredTenants: _angular_core.Signal<CommunityAdminRow[]>;
4761
+ selectTenant(tenant: CommunityAdminRow): void;
4762
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DsMobileCommunityAdminPickerComponent, never>;
4763
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DsMobileCommunityAdminPickerComponent, "ds-mobile-community-admin-picker", never, { "tenants": { "alias": "tenants"; "required": false; }; "labels": { "alias": "labels"; "required": false; }; }, {}, never, never, true, never>;
4764
+ }
4765
+
4695
4766
  /**
4696
4767
  * Group thread avatar: optional custom image, or member faces.
4697
4768
  *
@@ -4837,6 +4908,14 @@ declare class DsMobileTenantPickerModalComponent {
4837
4908
  private modalCtrl;
4838
4909
  private peerMessaging;
4839
4910
  private peerChat;
4911
+ /**
4912
+ * When true the modal acts as a simple single-select picker:
4913
+ * tapping a tenant dismisses with `{ tenantId }` (role `'selected'`).
4914
+ * The "more" menu and group-selection footer are hidden.
4915
+ */
4916
+ pickMode: boolean;
4917
+ /** Optional set of tenant IDs to exclude from the list (e.g. already-selected admins). */
4918
+ excludeIds?: Set<string>;
4840
4919
  searchQuery: _angular_core.WritableSignal<string>;
4841
4920
  selectionMode: _angular_core.WritableSignal<boolean>;
4842
4921
  selectedIds: _angular_core.WritableSignal<Set<string>>;
@@ -4847,7 +4926,7 @@ declare class DsMobileTenantPickerModalComponent {
4847
4926
  openTenantActions(tenant: PeerTenantContact): Promise<void>;
4848
4927
  promptCreateGroup(): Promise<void>;
4849
4928
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<DsMobileTenantPickerModalComponent, never>;
4850
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<DsMobileTenantPickerModalComponent, "ds-mobile-tenant-picker-modal", never, {}, {}, never, never, true, never>;
4929
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DsMobileTenantPickerModalComponent, "ds-mobile-tenant-picker-modal", never, { "pickMode": { "alias": "pickMode"; "required": false; }; "excludeIds": { "alias": "excludeIds"; "required": false; }; }, {}, never, never, true, never>;
4851
4930
  }
4852
4931
 
4853
4932
  interface CreateGroupMember {
@@ -4868,7 +4947,7 @@ declare class DsMobileCreateGroupModalComponent implements OnInit {
4868
4947
  members: CreateGroupMember[];
4869
4948
  defaultName: string;
4870
4949
  allTenants: CreateGroupMember[];
4871
- view: _angular_core.WritableSignal<"main" | "add-members">;
4950
+ view: _angular_core.WritableSignal<"add-members" | "main">;
4872
4951
  groupName: _angular_core.WritableSignal<string>;
4873
4952
  customAvatarUrl: _angular_core.WritableSignal<string>;
4874
4953
  localMembers: _angular_core.WritableSignal<CreateGroupMember[]>;
@@ -5941,7 +6020,7 @@ declare abstract class MobileModalBase implements OnInit, OnDestroy {
5941
6020
  * - 'overlay': keyboard/footer overlays lower content (no auto scroll push)
5942
6021
  * @default 'follow'
5943
6022
  */
5944
- keyboardContentBehavior: _angular_core.InputSignal<"follow" | "overlay">;
6023
+ keyboardContentBehavior: _angular_core.InputSignal<"overlay" | "follow">;
5945
6024
  /**
5946
6025
  * Optional interceptor called instead of the default dismiss when the close button is tapped.
5947
6026
  * Return a function to take over close behavior (e.g. navigate back within the modal).
@@ -6501,7 +6580,7 @@ declare class DsMobileCardInlineComponent {
6501
6580
  * - 'default' - Column layout with standard padding (gap: 12px, padding: 10px 12px)
6502
6581
  * - 'compact' - Row layout with reduced padding (gap: 8px, padding: 10px)
6503
6582
  */
6504
- variant: _angular_core.InputSignal<"default" | "compact">;
6583
+ variant: _angular_core.InputSignal<"compact" | "default">;
6505
6584
  /**
6506
6585
  * Whether the card is disabled
6507
6586
  * Disables all interactions and reduces opacity
@@ -6564,7 +6643,7 @@ declare class DsMobileCardInlineBannerComponent {
6564
6643
  * - 'default' - Standard padding and column layout
6565
6644
  * - 'compact' - Reduced padding and row layout
6566
6645
  */
6567
- layout: _angular_core.InputSignal<"default" | "compact">;
6646
+ layout: _angular_core.InputSignal<"compact" | "default">;
6568
6647
  /**
6569
6648
  * Emits when the banner is clicked
6570
6649
  */
@@ -6619,7 +6698,7 @@ declare class DsMobileCardInlineContactComponent {
6619
6698
  * - 'default' - Standard padding and column layout
6620
6699
  * - 'compact' - Reduced padding and row layout
6621
6700
  */
6622
- layout: _angular_core.InputSignal<"default" | "compact">;
6701
+ layout: _angular_core.InputSignal<"compact" | "default">;
6623
6702
  /**
6624
6703
  * Whether the contact item is clickable
6625
6704
  */
@@ -6684,7 +6763,7 @@ declare class DsMobileCardInlineFileComponent {
6684
6763
  * - 'default' - Standard padding and column layout
6685
6764
  * - 'compact' - Reduced padding and row layout
6686
6765
  */
6687
- layout: _angular_core.InputSignal<"default" | "compact">;
6766
+ layout: _angular_core.InputSignal<"compact" | "default">;
6688
6767
  /**
6689
6768
  * Optional URL to open when clicked
6690
6769
  * If provided, clicking the card will open this URL in a new tab
@@ -6786,6 +6865,10 @@ declare class DsMobileNewInquiryModalComponent implements OnInit, AfterViewInit
6786
6865
  * Label for the submit button
6787
6866
  */
6788
6867
  submitButtonLabel: string;
6868
+ /**
6869
+ * Pre-set category included in the emitted NewInquiryData (e.g. vendor id)
6870
+ */
6871
+ category?: string;
6789
6872
  /**
6790
6873
  * Form title field
6791
6874
  */
@@ -6871,7 +6954,7 @@ declare class DsMobileNewInquiryModalComponent implements OnInit, AfterViewInit
6871
6954
  private isFormDirty;
6872
6955
  private showUnsavedChangesSheet;
6873
6956
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<DsMobileNewInquiryModalComponent, never>;
6874
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<DsMobileNewInquiryModalComponent, "ds-mobile-new-inquiry-modal", never, { "loading": { "alias": "loading"; "required": false; }; "error": { "alias": "error"; "required": false; }; "onSubmit": { "alias": "onSubmit"; "required": false; }; "titlePlaceholder": { "alias": "titlePlaceholder"; "required": false; }; "descriptionPlaceholder": { "alias": "descriptionPlaceholder"; "required": false; }; "submitButtonLabel": { "alias": "submitButtonLabel"; "required": false; }; }, {}, never, never, true, never>;
6957
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DsMobileNewInquiryModalComponent, "ds-mobile-new-inquiry-modal", never, { "loading": { "alias": "loading"; "required": false; }; "error": { "alias": "error"; "required": false; }; "onSubmit": { "alias": "onSubmit"; "required": false; }; "titlePlaceholder": { "alias": "titlePlaceholder"; "required": false; }; "descriptionPlaceholder": { "alias": "descriptionPlaceholder"; "required": false; }; "submitButtonLabel": { "alias": "submitButtonLabel"; "required": false; }; "category": { "alias": "category"; "required": false; }; }, {}, never, never, true, never>;
6875
6958
  }
6876
6959
 
6877
6960
  /**
@@ -6890,6 +6973,8 @@ interface NewInquiryModalOptions {
6890
6973
  descriptionPlaceholder?: string;
6891
6974
  /** Custom label for submit button */
6892
6975
  submitButtonLabel?: string;
6976
+ /** Pre-set category included in the emitted NewInquiryData (e.g. vendor id) */
6977
+ category?: string;
6893
6978
  }
6894
6979
  /**
6895
6980
  * DsMobileNewInquiryModalService
@@ -8189,7 +8274,7 @@ declare class DsMobileHandbookFolderMiniComponent {
8189
8274
  * ```
8190
8275
  */
8191
8276
  declare class DsTextInputComponent implements ControlValueAccessor {
8192
- type: _angular_core.InputSignal<"search" | "text" | "email" | "tel" | "password" | "url">;
8277
+ type: _angular_core.InputSignal<"search" | "text" | "email" | "password" | "tel" | "url">;
8193
8278
  label: _angular_core.InputSignal<string>;
8194
8279
  placeholder: _angular_core.InputSignal<string>;
8195
8280
  disabled: _angular_core.InputSignal<boolean>;
@@ -8198,7 +8283,7 @@ declare class DsTextInputComponent implements ControlValueAccessor {
8198
8283
  hasError: _angular_core.InputSignal<boolean>;
8199
8284
  errorMessage: _angular_core.InputSignal<string>;
8200
8285
  autocomplete: _angular_core.InputSignal<string>;
8201
- inputmode: _angular_core.InputSignal<"search" | "text" | "email" | "tel" | "url" | "numeric" | undefined>;
8286
+ inputmode: _angular_core.InputSignal<"search" | "text" | "numeric" | "email" | "tel" | "url" | undefined>;
8202
8287
  autoClearError: _angular_core.InputSignal<boolean>;
8203
8288
  validator: _angular_core.InputSignal<((value: string) => boolean) | null>;
8204
8289
  valueChange: _angular_core.OutputEmitterRef<string>;
@@ -8506,7 +8591,7 @@ declare class DsMobileIllustrationComponent {
8506
8591
  * Predefined illustration variant
8507
8592
  * Available variants: 'post', 'inquiry', 'confirmation', 'family'
8508
8593
  */
8509
- variant: _angular_core.InputSignal<"post" | "inquiry" | "confirmation" | "family" | "cancel-booking" | "delete-warning">;
8594
+ variant: _angular_core.InputSignal<"inquiry" | "delete-warning" | "post" | "confirmation" | "family" | "cancel-booking">;
8510
8595
  /**
8511
8596
  * Illustration size (width and height)
8512
8597
  * @default '120px'
@@ -8722,6 +8807,24 @@ declare class MobileHandbookPageComponent {
8722
8807
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<MobileHandbookPageComponent, "app-mobile-handbook-page", never, {}, {}, never, never, true, never>;
8723
8808
  }
8724
8809
 
8810
+ interface ServiceVendor {
8811
+ id: string;
8812
+ name: string;
8813
+ category: string;
8814
+ description?: string;
8815
+ phone?: string;
8816
+ logo?: string;
8817
+ thumbnail?: string;
8818
+ heroImage?: string;
8819
+ fullDescription?: string;
8820
+ price?: string;
8821
+ availabilityStatus?: 'available-today' | 'available-from' | 'unavailable';
8822
+ statusLabel?: string;
8823
+ requirements?: string[];
8824
+ restrictions?: string[];
8825
+ expectations?: string;
8826
+ }
8827
+
8725
8828
  type LoadingPhase = 'loading' | 'exiting' | 'idle';
8726
8829
  /**
8727
8830
  * PageLoadingService
@@ -8838,16 +8941,14 @@ declare class MobileHomePageComponent implements OnInit {
8838
8941
  readonly isPeerGroupConversation: typeof isPeerGroupConversation;
8839
8942
  protected pageLoading: PageLoadingService;
8840
8943
  recentPosts: _angular_core.Signal<_propbinder_mobile_design.Post[]>;
8841
- private allInquiries;
8842
- openInquiries: _angular_core.Signal<{
8843
- id: string;
8844
- title: string;
8845
- description: string;
8846
- status: "open";
8847
- timestamp: string;
8848
- }[]>;
8944
+ private inquiriesService;
8945
+ openInquiries: _angular_core.Signal<_propbinder_mobile_design.Inquiry[]>;
8849
8946
  recentPeerMessages: _angular_core.Signal<PeerConversation[]>;
8947
+ private allVendors;
8948
+ previewVendors: _angular_core.Signal<ServiceVendor[]>;
8850
8949
  private modalCtrl;
8950
+ private vendorModal;
8951
+ private newInquiryModal;
8851
8952
  constructor(router: Router, navCtrl: NavController, userService: UserService, postsService: PostsService, postModal: DsMobilePostDetailModalService, trackingPermissionService: TrackingPermissionService, bottomSheet: DsMobileBottomSheetService, familyAccessService: FamilyAccessService, peerMessaging: PeerMessagingService, peerChat: PeerChatLauncherService);
8852
8953
  ngOnInit(): void;
8853
8954
  private simulateLoad;
@@ -8858,6 +8959,9 @@ declare class MobileHomePageComponent implements OnInit {
8858
8959
  navigateToInquiries(): void;
8859
8960
  navigateToTenants(): void;
8860
8961
  private openTenantPicker;
8962
+ navigateToServices(): void;
8963
+ openVendorSheet(vendor: ServiceVendor): Promise<void>;
8964
+ private openInquiryForVendor;
8861
8965
  navigateToMessages(): void;
8862
8966
  openPeerMessagePreview(conv: PeerConversation): Promise<void>;
8863
8967
  handlePostLongPress(postId: string): Promise<void>;
@@ -8871,20 +8975,29 @@ interface Inquiry {
8871
8975
  description: string;
8872
8976
  status: 'open' | 'closed';
8873
8977
  timestamp: string;
8874
- category: 'maintenance' | 'plumbing' | 'electrical' | 'heating' | 'security' | 'appliance' | 'other';
8978
+ category: string;
8979
+ vendorName?: string;
8980
+ vendorLogo?: string;
8875
8981
  }
8982
+ declare class InquiriesService {
8983
+ readonly inquiries: _angular_core.WritableSignal<Inquiry[]>;
8984
+ readonly openInquiries: _angular_core.Signal<Inquiry[]>;
8985
+ getById(id: string): Inquiry | undefined;
8986
+ addInquiry(inquiry: Inquiry): void;
8987
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<InquiriesService, never>;
8988
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<InquiriesService>;
8989
+ }
8990
+
8876
8991
  declare class MobileInquiriesPageComponent {
8877
8992
  userService: UserService;
8878
8993
  private navCtrl;
8879
8994
  private newInquiryModal;
8880
8995
  pageComponent: DsMobilePageMainComponent;
8996
+ private inquiriesService;
8881
8997
  constructor(userService: UserService, navCtrl: NavController, newInquiryModal: DsMobileNewInquiryModalService);
8882
8998
  filterStatus: _angular_core.WritableSignal<"open" | "closed" | "all">;
8883
8999
  tabItems: InlineTabItem[];
8884
- inquiries: _angular_core.WritableSignal<Inquiry[]>;
8885
9000
  filteredInquiries: _angular_core.Signal<Inquiry[]>;
8886
- openInquiries: _angular_core.Signal<Inquiry[]>;
8887
- closedInquiries: _angular_core.Signal<Inquiry[]>;
8888
9001
  setFilter(status: 'all' | 'open' | 'closed'): void;
8889
9002
  getInquiryIcon(category: string): string;
8890
9003
  openInquiryDetail(inquiryId: string): void;
@@ -8905,30 +9018,37 @@ interface MessageThread {
8905
9018
  timestamp: string;
8906
9019
  unread: boolean;
8907
9020
  }
8908
- declare class MobileInquiryDetailPageComponent {
9021
+ declare class MobileInquiryDetailPageComponent implements OnInit {
8909
9022
  userService: UserService;
8910
9023
  private lightbox;
8911
9024
  private chatModal;
9025
+ private route;
9026
+ private inquiriesService;
8912
9027
  inquiryTitle: string;
9028
+ inquiryDescription: string;
9029
+ inquiryCategory: string;
9030
+ inquiryTimestamp: string;
9031
+ vendorName: string;
9032
+ vendorInitials: string;
9033
+ vendorLogo: string;
9034
+ isServiceInquiry: boolean;
8913
9035
  activeTab: _angular_core.WritableSignal<string>;
8914
9036
  tabItems: InlineTabItem[];
9037
+ serviceMessageThread: MessageThread[];
9038
+ get activeMessages(): MessageThread[];
8915
9039
  messageThreads: MessageThread[];
8916
- unreadMessagesCount: _angular_core.Signal<number>;
9040
+ private updateMessagesBadge;
8917
9041
  photos: LightboxImage[];
8918
9042
  get photoUrls(): string[];
8919
9043
  constructor(userService: UserService, lightbox: DsMobileLightboxService, chatModal: DsMobileChatModalService);
9044
+ ngOnInit(): void;
8920
9045
  setActiveTab(tabId: string): void;
8921
9046
  goBack(): void;
8922
9047
  handleRefresh(event: any): void;
8923
- /**
8924
- * Check if there are unread messages
8925
- */
8926
9048
  hasUnreadMessages(): boolean;
8927
- /**
8928
- * Navigate to messages tab when banner is clicked
8929
- */
8930
9049
  navigateToMessagesTab(): void;
8931
9050
  openMessage(messageId: string): Promise<void>;
9051
+ openVendorChat(): Promise<void>;
8932
9052
  openPhotoLightbox(index: number): Promise<void>;
8933
9053
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<MobileInquiryDetailPageComponent, never>;
8934
9054
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<MobileInquiryDetailPageComponent, "app-mobile-inquiry-detail-page", never, {}, {}, never, never, true, never>;
@@ -9347,6 +9467,53 @@ declare class TenantChatPageComponent {
9347
9467
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<TenantChatPageComponent, "app-tenant-chat-page", never, {}, {}, never, never, true, never>;
9348
9468
  }
9349
9469
 
9470
+ interface ServicePageLabels {
9471
+ pageTitle: string;
9472
+ emptyState: string;
9473
+ emptyStateDescription: string;
9474
+ }
9475
+ declare const DEFAULT_SERVICE_PAGE_LABELS: ServicePageLabels;
9476
+ declare function stripHtml(html: string): string;
9477
+ declare class ServicesPageComponent {
9478
+ pageComponent: DsMobilePageMainComponent;
9479
+ private vendorModal;
9480
+ private newInquiryModal;
9481
+ private inquiriesService;
9482
+ private navCtrl;
9483
+ userService: UserService;
9484
+ lbl: ServicePageLabels;
9485
+ vendors: _angular_core.WritableSignal<ServiceVendor[]>;
9486
+ stripHtml: typeof stripHtml;
9487
+ openVendorSheet(vendor: ServiceVendor): Promise<void>;
9488
+ private openInquiryForVendor;
9489
+ handleRefresh(event: CustomEvent): void;
9490
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ServicesPageComponent, never>;
9491
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ServicesPageComponent, "app-services-page", never, {}, {}, never, never, true, never>;
9492
+ }
9493
+
9494
+ declare class DsMobileServiceVendorSheetComponent {
9495
+ vendorName: string;
9496
+ vendorDescription: string;
9497
+ vendorImage: string;
9498
+ vendorLogo: string;
9499
+ bookButtonLabel: string;
9500
+ private modalController;
9501
+ handleBook(): Promise<void>;
9502
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DsMobileServiceVendorSheetComponent, never>;
9503
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DsMobileServiceVendorSheetComponent, "ds-mobile-service-vendor-sheet", never, { "vendorName": { "alias": "vendorName"; "required": true; }; "vendorDescription": { "alias": "vendorDescription"; "required": false; }; "vendorImage": { "alias": "vendorImage"; "required": false; }; "vendorLogo": { "alias": "vendorLogo"; "required": false; }; "bookButtonLabel": { "alias": "bookButtonLabel"; "required": false; }; }, {}, never, never, true, never>;
9504
+ }
9505
+ declare class DsMobileServiceVendorModalService extends BaseModalService {
9506
+ constructor(modalController: ModalController);
9507
+ open(props: {
9508
+ vendorName: string;
9509
+ vendorDescription?: string;
9510
+ vendorImage?: string;
9511
+ vendorLogo?: string;
9512
+ }): Promise<HTMLIonModalElement>;
9513
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DsMobileServiceVendorModalService, never>;
9514
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<DsMobileServiceVendorModalService>;
9515
+ }
9516
+
9350
9517
  /**
9351
9518
  * Custom page transition - iOS-style push/pop with dark overlay
9352
9519
  *
@@ -9404,5 +9571,5 @@ declare class MediaPickerService {
9404
9571
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<MediaPickerService>;
9405
9572
  }
9406
9573
 
9407
- export { AcceptInvitePageComponent, ActionCommentComponent, ActionLikeComponent, AvatarUploadPageComponent, BaseModalService, ContentRowComponent, CreateAccountPageComponent, DsAppIconComponent, DsAvatarWithBadgeComponent, DsLogoComponent, DsMobileAccessSheetComponent, DsMobileActionListItemComponent, DsMobileActionsBottomSheetComponent, DsMobileAddGroupTenantsModalComponent, DsMobileAppLoadingComponent, DsMobileAttachmentPreviewComponent, DsMobileBookingConfirmationWrapperComponent, DsMobileBookingModalComponent, DsMobileBookingModalService, DsMobileBookingSummaryComponent, DsMobileBottomSheetHeaderComponent, DsMobileBottomSheetService, DsMobileBottomSheetWrapperComponent, DsMobileCapacitySheetComponent, DsMobileCardInlineBannerComponent, DsMobileCardInlineComponent, DsMobileCardInlineContactComponent, DsMobileCardInlineFileComponent, DsMobileChatModalComponent, DsMobileChatModalService, DsMobileActionsBottomSheetComponent as DsMobileCommentActionsBottomSheetComponent, DsMobileCommentComponent, DsMobileConfirmationSheetComponent, DsMobileContactListItemComponent, DsMobileContentComponent, DsMobileCreateGroupModalComponent, DsMobileDropdownComponent, DsMobileEditGroupModalComponent, DsMobileEmptyStateComponent, DsMobileFabComponent, DsMobileFacilityArchiveConfirmationComponent, DsMobileFacilityCreationConfirmationWrapperComponent, DsMobileFacilityCreationModalComponent, DsMobileFacilityCreationModalService, DsMobileFacilityDeleteConfirmationComponent, DsMobileFacilityDetailModalComponent, DsMobileFacilityDetailModalService, DsMobileFileAttachmentComponent, DsMobileGroupAvatarStackComponent, DsMobileGroupMembersModalComponent, DsMobileHandbookDetailModalComponent, DsMobileHandbookDetailModalService, DsMobileHandbookFolderComponent, DsMobileHandbookFolderMiniComponent, DsMobileHeaderContentComponent, DsMobileHeaderContentTileComponent, DsMobileIllustrationComponent, DsMobileImagePlaceholderComponent, DsMobileInlinePhotoComponent, DsMobileInlineTabsComponent, DsMobileInteractiveListItemBookingComponent, DsMobileInteractiveListItemInquiryComponent, DsMobileInteractiveListItemMessageComponent, DsMobileInteractiveListItemPostComponent, DsMobileLightboxImageComponent as DsMobileLightboxComponent, DsMobileLightboxFooterComponent, DsMobileLightboxHeaderComponent, DsMobileLightboxImageComponent, DsMobileLightboxPdfComponent, DsMobileLightboxService, DsMobileListItemComponent, DsMobileListItemStaticComponent, DsMobileListSearchComponent, DsMobileLoaderOverlayComponent, DsMobileLongPressDirective, DsMobileMediaActionsPanelComponent, DsMobileMessageBubbleComponent, DsMobileMessageComposerComponent, DsMobileModalBaseComponent, DsMobileModalService, DsMobileNewInquiryModalComponent, DsMobileNewInquiryModalService, DsMobileOfflineBannerComponent, DsMobilePageDetailsComponent, DsMobilePageMainComponent, DsMobilePillComponent, DsMobileActionsBottomSheetComponent as DsMobilePostActionsBottomSheetComponent, DsMobilePostComposerComponent, DsMobilePostCreateBottomSheetComponent, DsMobilePostDetailModalComponent, DsMobilePostDetailModalService, DsMobilePriceSheetComponent, DsMobileProfileActionsSheetComponent, DsMobilePromptBottomSheetComponent, DsMobilePropertyBannerComponent, DsMobileRichTextEditorComponent, DsMobileSectionComponent, DsMobileSwiperComponent, DsMobileSwiperWithNavComponent, DsMobileSystemMessageBannerComponent, DsMobileTabBarComponent, DsMobileTabsComponent, DsMobileTenantPickerModalComponent, DsMobileWhenCanBookSheetComponent, DsMobileWhoCanBookSheetComponent, DsTextInputComponent, FamilyAccessPageComponent, FamilyAccessService, InviteSuccessPageComponent, MediaPickerService, MobileBookingPageComponent, MobileCommunityPageComponent, MobileHandbookPageComponent, MobileHomePageComponent, MobileInquiriesPageComponent, MobileInquiryDetailPageComponent, MobileModalBase, MobilePageBase, MobilePostDetailPageComponent, MobileTabsExampleComponent, PageLoadingService, PostActionsComponent, PostAttachmentsComponent, PostContentComponent, PostCreatePageComponent, PostMediaComponent, PostPdfAttachmentComponent, PostTextComponent, PostsService, SectionHeaderComponent, SignInPageComponent, SignInToAcceptPageComponent, TenantChatPageComponent, TileContentComponent, TileIconComponent, TileLabelComponent, TileValueComponent, TrackingPermissionService, UserService, WhitelabelDemoModalComponent, WhitelabelDemoModalService, WhitelabelService, customBackTransition, customPageTransition };
9408
- export type { ActionGroup, ActionItem, ActionResult, AddGroupTenantPickerRow, AppIconSize, AttachmentData, AttachmentFileType, AttachmentItem, AvatarSize, AvatarType, BadgePosition, BookingModalExtras, BookingResult, BottomSheetOptions, ChatAttachment, ChatGroupPanelLabels, ChatMessage, ChatModalData, ChatModalGroupData, ChatModalLabels, ChatParticipant, Comment, ActionResult as CommentActionResult, CommentData, ContactItem, ContactType, ContentWidth, CreateGroupMember, CreateGroupResult, DateOption, DropdownAlign, DropdownPosition, DsMobileDropdownItem, EditGroupMember, EditGroupResult, FacilityCreationModalOptions, FacilityDetailData, FacilityDetailDisplayData, FacilityDetailEditContext, FamilyInvite, FamilyMember, FamilyMemberStatus, GroupMemberRow, HandbookDetailData, HandbookItem, InlineTabItem, InquiryPhoto, Language, LightboxAuthor, LightboxImage, LightboxImageOptions, LightboxMediaFile, LightboxMediaType, LightboxOptions, LightboxPdf, LightboxPdfOptions, LoadingPhase, LogoSize, LogoVariant, MediaPickerResult, ModalOptions, MoreMenuItem, NetworkStatus, NewFacilityData, NewInquiryData, NewInquiryModalOptions, Post, ActionResult as PostActionResult, PostDetailData, PromptBottomSheetResult, PromptGroupPreviewMember, TabConfig, TimeSlot, WhitelabelConfig };
9574
+ export { AcceptInvitePageComponent, ActionCommentComponent, ActionLikeComponent, AvatarUploadPageComponent, BaseModalService, ContentRowComponent, CreateAccountPageComponent, DEFAULT_SERVICE_PAGE_LABELS, DsAppIconComponent, DsAvatarWithBadgeComponent, DsLogoComponent, DsMobileAccessSheetComponent, DsMobileActionListItemComponent, DsMobileActionsBottomSheetComponent, DsMobileAddGroupTenantsModalComponent, DsMobileAppLoadingComponent, DsMobileAttachmentPreviewComponent, DsMobileBookingConfirmationWrapperComponent, DsMobileBookingModalComponent, DsMobileBookingModalService, DsMobileBookingSummaryComponent, DsMobileBottomSheetHeaderComponent, DsMobileBottomSheetService, DsMobileBottomSheetWrapperComponent, DsMobileCapacitySheetComponent, DsMobileCardInlineBannerComponent, DsMobileCardInlineComponent, DsMobileCardInlineContactComponent, DsMobileCardInlineFileComponent, DsMobileChatModalComponent, DsMobileChatModalService, DsMobileActionsBottomSheetComponent as DsMobileCommentActionsBottomSheetComponent, DsMobileCommentComponent, DsMobileCommunityAdminPickerComponent, DsMobileCommunityAdminsModalComponent, DsMobileConfirmationSheetComponent, DsMobileContactListItemComponent, DsMobileContentComponent, DsMobileCreateGroupModalComponent, DsMobileDropdownComponent, DsMobileEditGroupModalComponent, DsMobileEmptyStateComponent, DsMobileFabComponent, DsMobileFacilityArchiveConfirmationComponent, DsMobileFacilityCreationConfirmationWrapperComponent, DsMobileFacilityCreationModalComponent, DsMobileFacilityCreationModalService, DsMobileFacilityDeleteConfirmationComponent, DsMobileFacilityDetailModalComponent, DsMobileFacilityDetailModalService, DsMobileFileAttachmentComponent, DsMobileGroupAvatarStackComponent, DsMobileGroupMembersModalComponent, DsMobileHandbookDetailModalComponent, DsMobileHandbookDetailModalService, DsMobileHandbookFolderComponent, DsMobileHandbookFolderMiniComponent, DsMobileHeaderContentComponent, DsMobileHeaderContentTileComponent, DsMobileIllustrationComponent, DsMobileImagePlaceholderComponent, DsMobileInlinePhotoComponent, DsMobileInlineTabsComponent, DsMobileInteractiveListItemBookingComponent, DsMobileInteractiveListItemInquiryComponent, DsMobileInteractiveListItemMessageComponent, DsMobileInteractiveListItemPostComponent, DsMobileLightboxImageComponent as DsMobileLightboxComponent, DsMobileLightboxFooterComponent, DsMobileLightboxHeaderComponent, DsMobileLightboxImageComponent, DsMobileLightboxPdfComponent, DsMobileLightboxService, DsMobileListItemComponent, DsMobileListItemStaticComponent, DsMobileListSearchComponent, DsMobileLoaderOverlayComponent, DsMobileLongPressDirective, DsMobileMediaActionsPanelComponent, DsMobileMessageBubbleComponent, DsMobileMessageComposerComponent, DsMobileModalBaseComponent, DsMobileModalService, DsMobileNewInquiryModalComponent, DsMobileNewInquiryModalService, DsMobileOfflineBannerComponent, DsMobilePageDetailsComponent, DsMobilePageMainComponent, DsMobilePillComponent, DsMobileActionsBottomSheetComponent as DsMobilePostActionsBottomSheetComponent, DsMobilePostComposerComponent, DsMobilePostCreateBottomSheetComponent, DsMobilePostDetailModalComponent, DsMobilePostDetailModalService, DsMobilePriceSheetComponent, DsMobileProfileActionsSheetComponent, DsMobilePromptBottomSheetComponent, DsMobilePropertyBannerComponent, DsMobileRichTextEditorComponent, DsMobileSectionComponent, DsMobileServiceVendorModalService, DsMobileServiceVendorSheetComponent, DsMobileSwiperComponent, DsMobileSwiperWithNavComponent, DsMobileSystemMessageBannerComponent, DsMobileTabBarComponent, DsMobileTabsComponent, DsMobileTenantPickerModalComponent, DsMobileWhenCanBookSheetComponent, DsMobileWhoCanBookSheetComponent, DsTextInputComponent, FamilyAccessPageComponent, FamilyAccessService, InquiriesService, InviteSuccessPageComponent, MediaPickerService, MobileBookingPageComponent, MobileCommunityPageComponent, MobileHandbookPageComponent, MobileHomePageComponent, MobileInquiriesPageComponent, MobileInquiryDetailPageComponent, MobileModalBase, MobilePageBase, MobilePostDetailPageComponent, MobileTabsExampleComponent, PageLoadingService, PostActionsComponent, PostAttachmentsComponent, PostContentComponent, PostCreatePageComponent, PostMediaComponent, PostPdfAttachmentComponent, PostTextComponent, PostsService, SectionHeaderComponent, ServicesPageComponent, SignInPageComponent, SignInToAcceptPageComponent, TenantChatPageComponent, TileContentComponent, TileIconComponent, TileLabelComponent, TileValueComponent, TrackingPermissionService, UserService, WhitelabelDemoModalComponent, WhitelabelDemoModalService, WhitelabelService, customBackTransition, customPageTransition };
9575
+ export type { ActionGroup, ActionItem, ActionResult, AddGroupTenantPickerRow, AppIconSize, AttachmentData, AttachmentFileType, AttachmentItem, AvatarSize, AvatarType, BadgePosition, BookingModalExtras, BookingResult, BottomSheetOptions, ChatAttachment, ChatGroupPanelLabels, ChatMessage, ChatModalData, ChatModalGroupData, ChatModalLabels, ChatParticipant, Comment, ActionResult as CommentActionResult, CommentData, CommunityAdminRow, ContactItem, ContactType, ContentWidth, CreateGroupMember, CreateGroupResult, DateOption, DropdownAlign, DropdownPosition, DsMobileDropdownItem, EditGroupMember, EditGroupResult, FacilityCreationModalOptions, FacilityDetailData, FacilityDetailDisplayData, FacilityDetailEditContext, FamilyInvite, FamilyMember, FamilyMemberStatus, GroupMemberRow, HandbookDetailData, HandbookItem, InlineTabItem, Inquiry, InquiryPhoto, Language, LightboxAuthor, LightboxImage, LightboxImageOptions, LightboxMediaFile, LightboxMediaType, LightboxOptions, LightboxPdf, LightboxPdfOptions, LoadingPhase, LogoSize, LogoVariant, MediaPickerResult, ModalOptions, MoreMenuItem, NetworkStatus, NewFacilityData, NewInquiryData, NewInquiryModalOptions, Post, ActionResult as PostActionResult, PostDetailData, PromptBottomSheetResult, PromptGroupPreviewMember, ServicePageLabels, ServiceVendor, TabConfig, TimeSlot, WhitelabelConfig };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@propbinder/mobile-design",
3
- "version": "0.2.73",
3
+ "version": "0.2.75",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^20.3.0 || ^21.0.0",
6
6
  "@angular/core": "^20.3.0 || ^21.0.0"
@@ -20,7 +20,7 @@
20
20
  },
21
21
  ".": {
22
22
  "types": "./index.d.ts",
23
- "default": "./fesm2022/propbinder-mobile-design-ds-mobile-days-sheet-YO-dvZLx.mjs"
23
+ "default": "./fesm2022/propbinder-mobile-design.mjs"
24
24
  },
25
25
  "./styles/*": {
26
26
  "default": "./styles/*"
package/styles/ionic.css CHANGED
@@ -986,4 +986,4 @@ ds-button .btn:active:not(:disabled) {
986
986
  /* FORCE hover background color directly - only for primary variant */
987
987
  ds-button[variant="primary"]:hover .btn {
988
988
  background-color: var(--color-accent-hover) !important;
989
- }
989
+ }