@propbinder/mobile-design 0.1.15 → 0.1.16

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
@@ -2,6 +2,7 @@ import * as _angular_core from '@angular/core';
2
2
  import { AfterViewInit, ElementRef, OnDestroy, EventEmitter, OnInit, ApplicationRef, EnvironmentInjector, Type } from '@angular/core';
3
3
  import { IonContent, NavController, ModalController, GestureController } from '@ionic/angular/standalone';
4
4
  import { ImpactStyle } from '@capacitor/haptics';
5
+ import { ControlValueAccessor } from '@angular/forms';
5
6
  import { Router, ActivatedRoute } from '@angular/router';
6
7
  import { Animation } from '@ionic/angular';
7
8
 
@@ -3110,6 +3111,87 @@ declare class DsMobileHandbookFolderMiniComponent {
3110
3111
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<DsMobileHandbookFolderMiniComponent, "ds-mobile-handbook-folder-mini", never, { "variant": { "alias": "variant"; "required": false; }; "iconName": { "alias": "iconName"; "required": false; }; }, {}, never, never, true, never>;
3111
3112
  }
3112
3113
 
3114
+ /**
3115
+ * DsTextInputComponent
3116
+ *
3117
+ * Mobile-first text input field component following the design system.
3118
+ * Supports email, phone, text, and other input types.
3119
+ *
3120
+ * Features:
3121
+ * - All design system states (default, hover, focus, error, disabled)
3122
+ * - Validation error state with destructive border color
3123
+ * - Automatic error clearing when input becomes valid (configurable)
3124
+ * - Built-in validation based on input type or custom validator function
3125
+ * - Accessible with proper ARIA attributes
3126
+ * - ControlValueAccessor for Angular forms integration
3127
+ *
3128
+ * @example
3129
+ * ```html
3130
+ * <!-- Basic usage -->
3131
+ * <ds-text-input
3132
+ * type="email"
3133
+ * placeholder="Enter your email"
3134
+ * [(ngModel)]="email">
3135
+ * </ds-text-input>
3136
+ *
3137
+ * <!-- With validation error and auto-clear -->
3138
+ * <ds-text-input
3139
+ * type="email"
3140
+ * placeholder="Enter your email"
3141
+ * [hasError]="emailInvalid"
3142
+ * errorMessage="Please enter a valid email"
3143
+ * [autoClearError]="true"
3144
+ * (errorCleared)="emailInvalid = false"
3145
+ * [(ngModel)]="email">
3146
+ * </ds-text-input>
3147
+ *
3148
+ * <!-- With custom validator -->
3149
+ * <ds-text-input
3150
+ * type="text"
3151
+ * placeholder="Enter phone number"
3152
+ * [validator]="phoneValidator"
3153
+ * [hasError]="phoneInvalid"
3154
+ * (errorCleared)="phoneInvalid = false"
3155
+ * [(ngModel)]="phone">
3156
+ * </ds-text-input>
3157
+ * ```
3158
+ */
3159
+ declare class DsTextInputComponent implements ControlValueAccessor {
3160
+ type: _angular_core.InputSignal<"text" | "email" | "tel" | "password" | "url" | "search">;
3161
+ placeholder: _angular_core.InputSignal<string>;
3162
+ disabled: _angular_core.InputSignal<boolean>;
3163
+ readonly: _angular_core.InputSignal<boolean>;
3164
+ required: _angular_core.InputSignal<boolean>;
3165
+ hasError: _angular_core.InputSignal<boolean>;
3166
+ errorMessage: _angular_core.InputSignal<string>;
3167
+ autocomplete: _angular_core.InputSignal<string>;
3168
+ inputmode: _angular_core.InputSignal<"text" | "email" | "tel" | "url" | "search" | "numeric" | undefined>;
3169
+ autoClearError: _angular_core.InputSignal<boolean>;
3170
+ validator: _angular_core.InputSignal<((value: string) => boolean) | null>;
3171
+ valueChange: _angular_core.OutputEmitterRef<string>;
3172
+ blur: _angular_core.OutputEmitterRef<FocusEvent>;
3173
+ focus: _angular_core.OutputEmitterRef<FocusEvent>;
3174
+ errorCleared: _angular_core.OutputEmitterRef<void>;
3175
+ private _value;
3176
+ value: _angular_core.Signal<string>;
3177
+ inputId: string;
3178
+ private onChange;
3179
+ private onTouched;
3180
+ onInput(event: Event): void;
3181
+ /**
3182
+ * Validates the input value based on type or custom validator
3183
+ */
3184
+ private validateInput;
3185
+ onBlur(): void;
3186
+ onFocus(): void;
3187
+ writeValue(value: string): void;
3188
+ registerOnChange(fn: (value: string) => void): void;
3189
+ registerOnTouched(fn: () => void): void;
3190
+ setDisabledState(isDisabled: boolean): void;
3191
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DsTextInputComponent, never>;
3192
+ 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>;
3193
+ }
3194
+
3113
3195
  /**
3114
3196
  * User service for managing current user data globally
3115
3197
  */
@@ -3485,5 +3567,5 @@ declare const customPageTransition: (_: HTMLElement, opts: any) => Animation;
3485
3567
  */
3486
3568
  declare const customBackTransition: (_: HTMLElement, opts: any) => Animation;
3487
3569
 
3488
- export { ActionCommentComponent, ActionLikeComponent, ContentRowComponent, DsMobileActionsBottomSheetComponent, DsMobileBottomSheetService, 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, DsMobileModalService, DsMobilePageDetailsComponent, DsMobilePageMainComponent, DsMobileActionsBottomSheetComponent as DsMobilePostActionsBottomSheetComponent, DsMobilePostComposerComponent, DsMobilePostCreateBottomSheetComponent, DsMobilePostDetailModalComponent, DsMobilePostDetailModalService, DsMobileTabBarComponent, DsMobileTabsComponent, 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 };
3570
+ export { ActionCommentComponent, ActionLikeComponent, ContentRowComponent, DsMobileActionsBottomSheetComponent, DsMobileBottomSheetService, 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, 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 };
3489
3571
  export type { ActionGroup, ActionItem, ActionResult, AttachmentItem, BottomSheetOptions, 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.1.15",
3
+ "version": "0.1.16",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^20.3.0 || ^21.0.0",
6
6
  "@angular/core": "^20.3.0 || ^21.0.0"