Package not found. Please check the package name and try again.

@brickclay-org/ui 0.0.58 → 0.0.60

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
@@ -1,9 +1,9 @@
1
1
  import * as i0 from '@angular/core';
2
- import { OnInit, OnDestroy, OnChanges, EventEmitter, SimpleChanges, AfterViewInit, QueryList, ElementRef, ComponentRef, Type, InjectionToken, Renderer2, ApplicationRef, EnvironmentInjector } from '@angular/core';
2
+ import { OnInit, OnDestroy, OnChanges, EventEmitter, ElementRef, SimpleChanges, AfterViewInit, QueryList, ComponentRef, Type, InjectionToken, Renderer2, ApplicationRef, EnvironmentInjector, ChangeDetectorRef } from '@angular/core';
3
+ import { ControlValueAccessor, NgControl, NgModel, Validator, AbstractControl, ValidationErrors } from '@angular/forms';
3
4
  import * as rxjs from 'rxjs';
4
5
  import { Observable } from 'rxjs';
5
6
  import * as i1 from '@angular/common';
6
- import { ControlValueAccessor, NgControl, NgModel } from '@angular/forms';
7
7
  import { CdkDragDrop, CdkDragMove, CdkDragStart } from '@angular/cdk/drag-drop';
8
8
  import * as i1$2 from '@angular/cdk/dialog';
9
9
  import { CdkDialogContainer, DialogRef } from '@angular/cdk/dialog';
@@ -49,12 +49,16 @@ interface CalendarRange {
49
49
  start: Date;
50
50
  end: Date;
51
51
  }
52
- interface CalendarSelection {
52
+ declare class CalendarSelection {
53
53
  startDate: string | null;
54
54
  endDate: string | null;
55
+ /** Start time in 12-hour format with AM/PM (e.g. "1:00 AM"). */
56
+ startTime: string | null;
57
+ /** End time in 12-hour format with AM/PM (e.g. "2:00 AM"). */
58
+ endTime: string | null;
55
59
  selectedDates?: string[];
56
60
  }
57
- declare class BkCustomCalendar implements OnInit, OnDestroy, OnChanges {
61
+ declare class BkCustomCalendar implements OnInit, OnDestroy, OnChanges, ControlValueAccessor {
58
62
  private calendarManager;
59
63
  enableTimepicker: boolean;
60
64
  autoApply: boolean;
@@ -79,17 +83,35 @@ declare class BkCustomCalendar implements OnInit, OnDestroy, OnChanges {
79
83
  placeholder: string;
80
84
  opens: 'left' | 'right' | 'center';
81
85
  inline: boolean;
86
+ appendToBody: boolean;
82
87
  isDisplayCrossIcon: boolean;
88
+ hasError: boolean;
89
+ errorMessage: string;
83
90
  selected: EventEmitter<CalendarSelection>;
91
+ inputWrapper: ElementRef<HTMLDivElement>;
92
+ /** Used when appendToBody is true to position the popup in viewport coordinates */
93
+ dropdownStyle: {
94
+ top?: string;
95
+ bottom?: string;
96
+ left?: string;
97
+ };
84
98
  opened: EventEmitter<void>;
85
99
  closed: EventEmitter<void>;
100
+ showCancelApply: boolean;
86
101
  /**
87
- * External value passed from parent. If provided, component will select these dates on init / change.
88
- * Accepts { startDate: Date|null, endDate: Date|null, selectedDates?: Date[] }
102
+ * External value passed from parent / ngModel. When used with ngModel, this is the bound value.
103
+ * Accepts { startDate: string|null, endDate: string|null, selectedDates?: string[] }
89
104
  */
90
105
  selectedValue: CalendarSelection | null;
91
106
  /** Optional display format for the input value. Uses moment formatting tokens. */
92
107
  displayFormat: string;
108
+ /** When true, the control is required (used with ngModel for validation: dirty, touched, invalid). */
109
+ required: boolean;
110
+ /** CVA: called when form control value is set (e.g. ngModel binding) */
111
+ private onChange;
112
+ /** CVA: called when control is touched (blur / close) */
113
+ private onTouched;
114
+ disabled: boolean;
93
115
  brickclayIcons: {
94
116
  readonly arrowleft: "assets/icons/chevron-left.svg";
95
117
  readonly arrowRight: "assets/icons/chevron-right.svg";
@@ -136,6 +158,10 @@ declare class BkCustomCalendar implements OnInit, OnDestroy, OnChanges {
136
158
  endMinute: number;
137
159
  endSecond: number;
138
160
  endAMPM: 'AM' | 'PM';
161
+ /** Current start time string in 12-hour format with AM/PM (e.g. "1:00 AM"). Synced with ngModel/CalendarSelection. */
162
+ startTime: string | null;
163
+ /** Current end time string in 12-hour format with AM/PM (e.g. "2:00 AM"). Synced with ngModel/CalendarSelection. */
164
+ endTime: string | null;
139
165
  openTimePickerId: string | null;
140
166
  closePickerCounter: {
141
167
  [key: string]: number;
@@ -147,7 +173,18 @@ declare class BkCustomCalendar implements OnInit, OnDestroy, OnChanges {
147
173
  private closeAllSubscription?;
148
174
  private closeFn?;
149
175
  constructor(calendarManager: CalendarManagerService);
176
+ writeValue(value: CalendarSelection | null): void;
177
+ registerOnChange(fn: (value: CalendarSelection | null) => void): void;
178
+ registerOnTouched(fn: () => void): void;
179
+ setDisabledState(isDisabled: boolean): void;
180
+ /** Call from template when control loses focus (for CVA touched state). */
181
+ markAsTouched(): void;
182
+ /** Apply CalendarSelection to internal state (startDate, endDate, startTime, endTime, selectedDates, calendar view). */
183
+ private applyValueToState;
184
+ /** Format to "H:MM AM/PM" string. */
185
+ private formatTimeToAmPm;
150
186
  onClickOutside(event: MouseEvent): void;
187
+ onWindowEvents(): void;
151
188
  ngOnInit(): void;
152
189
  ngOnChanges(changes: SimpleChanges): void;
153
190
  ngOnDestroy(): void;
@@ -155,6 +192,8 @@ declare class BkCustomCalendar implements OnInit, OnDestroy, OnChanges {
155
192
  initializeDefaultRanges(): void;
156
193
  initializeTimeFromDate(date: Date, isStart: boolean): void;
157
194
  toggle(): void;
195
+ /** Update popup position when appendToBody is true (fixed positioning relative to viewport). */
196
+ updatePosition(): void;
158
197
  close(): void;
159
198
  onDateHover(day: number | null, fromRight?: boolean): void;
160
199
  onDateLeave(): void;
@@ -220,7 +259,7 @@ declare class BkCustomCalendar implements OnInit, OnDestroy, OnChanges {
220
259
  formatAllMinuteInputs(): void;
221
260
  formatDateToString(date: Date): string;
222
261
  static ɵfac: i0.ɵɵFactoryDeclaration<BkCustomCalendar, never>;
223
- static ɵcmp: i0.ɵɵComponentDeclaration<BkCustomCalendar, "bk-custom-calendar", never, { "enableTimepicker": { "alias": "enableTimepicker"; "required": false; }; "autoApply": { "alias": "autoApply"; "required": false; }; "closeOnAutoApply": { "alias": "closeOnAutoApply"; "required": false; }; "showCancel": { "alias": "showCancel"; "required": false; }; "linkedCalendars": { "alias": "linkedCalendars"; "required": false; }; "singleDatePicker": { "alias": "singleDatePicker"; "required": false; }; "showWeekNumbers": { "alias": "showWeekNumbers"; "required": false; }; "showISOWeekNumbers": { "alias": "showISOWeekNumbers"; "required": false; }; "customRangeDirection": { "alias": "customRangeDirection"; "required": false; }; "lockStartDate": { "alias": "lockStartDate"; "required": false; }; "position": { "alias": "position"; "required": false; }; "drop": { "alias": "drop"; "required": false; }; "dualCalendar": { "alias": "dualCalendar"; "required": false; }; "showRanges": { "alias": "showRanges"; "required": false; }; "timeFormat": { "alias": "timeFormat"; "required": false; }; "enableSeconds": { "alias": "enableSeconds"; "required": false; }; "customRanges": { "alias": "customRanges"; "required": false; }; "multiDateSelection": { "alias": "multiDateSelection"; "required": false; }; "maxDate": { "alias": "maxDate"; "required": false; }; "minDate": { "alias": "minDate"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "opens": { "alias": "opens"; "required": false; }; "inline": { "alias": "inline"; "required": false; }; "isDisplayCrossIcon": { "alias": "isDisplayCrossIcon"; "required": false; }; "selectedValue": { "alias": "selectedValue"; "required": false; }; "displayFormat": { "alias": "displayFormat"; "required": false; }; "startDate": { "alias": "startDate"; "required": false; }; "endDate": { "alias": "endDate"; "required": false; }; }, { "selected": "selected"; "opened": "opened"; "closed": "closed"; }, never, never, true, never>;
262
+ static ɵcmp: i0.ɵɵComponentDeclaration<BkCustomCalendar, "bk-custom-calendar", never, { "enableTimepicker": { "alias": "enableTimepicker"; "required": false; }; "autoApply": { "alias": "autoApply"; "required": false; }; "closeOnAutoApply": { "alias": "closeOnAutoApply"; "required": false; }; "showCancel": { "alias": "showCancel"; "required": false; }; "linkedCalendars": { "alias": "linkedCalendars"; "required": false; }; "singleDatePicker": { "alias": "singleDatePicker"; "required": false; }; "showWeekNumbers": { "alias": "showWeekNumbers"; "required": false; }; "showISOWeekNumbers": { "alias": "showISOWeekNumbers"; "required": false; }; "customRangeDirection": { "alias": "customRangeDirection"; "required": false; }; "lockStartDate": { "alias": "lockStartDate"; "required": false; }; "position": { "alias": "position"; "required": false; }; "drop": { "alias": "drop"; "required": false; }; "dualCalendar": { "alias": "dualCalendar"; "required": false; }; "showRanges": { "alias": "showRanges"; "required": false; }; "timeFormat": { "alias": "timeFormat"; "required": false; }; "enableSeconds": { "alias": "enableSeconds"; "required": false; }; "customRanges": { "alias": "customRanges"; "required": false; }; "multiDateSelection": { "alias": "multiDateSelection"; "required": false; }; "maxDate": { "alias": "maxDate"; "required": false; }; "minDate": { "alias": "minDate"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "opens": { "alias": "opens"; "required": false; }; "inline": { "alias": "inline"; "required": false; }; "appendToBody": { "alias": "appendToBody"; "required": false; }; "isDisplayCrossIcon": { "alias": "isDisplayCrossIcon"; "required": false; }; "hasError": { "alias": "hasError"; "required": false; }; "errorMessage": { "alias": "errorMessage"; "required": false; }; "showCancelApply": { "alias": "showCancelApply"; "required": false; }; "selectedValue": { "alias": "selectedValue"; "required": false; }; "displayFormat": { "alias": "displayFormat"; "required": false; }; "required": { "alias": "required"; "required": false; }; }, { "selected": "selected"; "opened": "opened"; "closed": "closed"; }, never, never, true, never>;
224
263
  }
225
264
 
226
265
  interface TimeConfiguration {
@@ -646,7 +685,7 @@ declare class BkSelect implements ControlValueAccessor {
646
685
  disabled: i0.ModelSignal<boolean>;
647
686
  loading: i0.InputSignal<boolean>;
648
687
  closeOnSelect: i0.InputSignal<boolean>;
649
- dropdownPosition: i0.InputSignal<"top" | "bottom">;
688
+ dropdownPosition: i0.InputSignal<"bottom" | "top">;
650
689
  hasError: boolean;
651
690
  errorMessage: string;
652
691
  appendToBody: i0.InputSignal<boolean>;
@@ -717,6 +756,7 @@ declare class BkSelect implements ControlValueAccessor {
717
756
  items: any[];
718
757
  }[]>;
719
758
  resolveColor(item: any): string | null;
759
+ getRemainingItems(): string[] | [];
720
760
  static ɵfac: i0.ɵɵFactoryDeclaration<BkSelect, never>;
721
761
  static ɵcmp: i0.ɵɵComponentDeclaration<BkSelect, "bk-select", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "bindLabel": { "alias": "bindLabel"; "required": false; "isSignal": true; }; "bindValue": { "alias": "bindValue"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "notFoundText": { "alias": "notFoundText"; "required": false; "isSignal": true; }; "loadingText": { "alias": "loadingText"; "required": false; "isSignal": true; }; "clearAllText": { "alias": "clearAllText"; "required": false; "isSignal": true; }; "groupBy": { "alias": "groupBy"; "required": false; "isSignal": true; }; "colorKey": { "alias": "colorKey"; "required": false; "isSignal": true; }; "iconAlt": { "alias": "iconAlt"; "required": false; }; "label": { "alias": "label"; "required": false; }; "required": { "alias": "required"; "required": false; }; "iconSrc": { "alias": "iconSrc"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "maxLabels": { "alias": "maxLabels"; "required": false; "isSignal": true; }; "searchable": { "alias": "searchable"; "required": false; "isSignal": true; }; "allSelect": { "alias": "allSelect"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "closeOnSelect": { "alias": "closeOnSelect"; "required": false; "isSignal": true; }; "dropdownPosition": { "alias": "dropdownPosition"; "required": false; "isSignal": true; }; "hasError": { "alias": "hasError"; "required": false; }; "errorMessage": { "alias": "errorMessage"; "required": false; }; "appendToBody": { "alias": "appendToBody"; "required": false; "isSignal": true; }; "compareWith": { "alias": "compareWith"; "required": false; "isSignal": true; }; }, { "disabled": "disabledChange"; "open": "open"; "close": "close"; "focus": "focus"; "blur": "blur"; "search": "search"; "clear": "clear"; "change": "change"; "scrollToEnd": "scrollToEnd"; }, never, never, true, never>;
722
762
  }
@@ -1553,14 +1593,14 @@ declare class BkValidator implements OnInit {
1553
1593
  static ɵcmp: i0.ɵɵComponentDeclaration<BkValidator, "bk-validator", never, { "control": { "alias": "control"; "required": false; }; "label": { "alias": "label"; "required": false; }; "errorMessage": { "alias": "errorMessage"; "required": false; }; "showError": { "alias": "showError"; "required": false; }; }, {}, never, never, true, never>;
1554
1594
  }
1555
1595
 
1556
- type AvatarSize = 'sm' | 'md' | 'lg' | 'xl';
1557
- type AvatarFallback = 'auto' | 'initials' | 'icon' | 'camera';
1558
- declare class AvatarProfile implements OnDestroy, ControlValueAccessor {
1596
+ type BkAvatarSize = 'sm' | 'md' | 'lg' | 'xl';
1597
+ type BkAvatarFallback = 'auto' | 'initials' | 'icon' | 'camera';
1598
+ declare class BkAvatarProfile implements OnDestroy, ControlValueAccessor, Validator {
1559
1599
  src: string | null;
1560
1600
  alt: string;
1561
1601
  name: string;
1562
- size: AvatarSize;
1563
- fallback: AvatarFallback;
1602
+ size: BkAvatarSize;
1603
+ fallback: BkAvatarFallback;
1564
1604
  /** Whether upload / remove actions are enabled */
1565
1605
  editable: boolean;
1566
1606
  /** Accepted file MIME types for the file picker */
@@ -1602,6 +1642,7 @@ declare class AvatarProfile implements OnDestroy, ControlValueAccessor {
1602
1642
  registerOnChange(fn: (value: string | null) => void): void;
1603
1643
  registerOnTouched(fn: () => void): void;
1604
1644
  setDisabledState(isDisabled: boolean): void;
1645
+ validate(control: AbstractControl): ValidationErrors | null;
1605
1646
  ngOnChanges(changes: SimpleChanges): void;
1606
1647
  ngOnDestroy(): void;
1607
1648
  onImageError(): void;
@@ -1609,7 +1650,7 @@ declare class AvatarProfile implements OnDestroy, ControlValueAccessor {
1609
1650
  get displaySrc(): string | null;
1610
1651
  get showInitials(): boolean;
1611
1652
  get containerClasses(): string;
1612
- get sizeClasses(): AvatarSize[];
1653
+ get sizeClasses(): BkAvatarSize[];
1613
1654
  get showRemoveButton(): boolean;
1614
1655
  onFileSelected(event: Event): void;
1615
1656
  /**
@@ -1622,8 +1663,8 @@ declare class AvatarProfile implements OnDestroy, ControlValueAccessor {
1622
1663
  private revokePreview;
1623
1664
  private isFileTypeValid;
1624
1665
  private getInitials;
1625
- static ɵfac: i0.ɵɵFactoryDeclaration<AvatarProfile, never>;
1626
- static ɵcmp: i0.ɵɵComponentDeclaration<AvatarProfile, "bk-avatar-profile", never, { "src": { "alias": "src"; "required": false; }; "alt": { "alias": "alt"; "required": false; }; "name": { "alias": "name"; "required": false; }; "size": { "alias": "size"; "required": false; }; "fallback": { "alias": "fallback"; "required": false; }; "editable": { "alias": "editable"; "required": false; }; "accept": { "alias": "accept"; "required": false; }; "maxFileSizeKB": { "alias": "maxFileSizeKB"; "required": false; }; "uploadLabel": { "alias": "uploadLabel"; "required": false; }; "hint": { "alias": "hint"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "removable": { "alias": "removable"; "required": false; }; "label": { "alias": "label"; "required": false; }; "required": { "alias": "required"; "required": false; }; "hasError": { "alias": "hasError"; "required": false; }; "errorMessage": { "alias": "errorMessage"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, { "fileSelected": "fileSelected"; "removed": "removed"; "fileError": "fileError"; }, never, never, true, never>;
1666
+ static ɵfac: i0.ɵɵFactoryDeclaration<BkAvatarProfile, never>;
1667
+ static ɵcmp: i0.ɵɵComponentDeclaration<BkAvatarProfile, "bk-avatar-profile", never, { "src": { "alias": "src"; "required": false; }; "alt": { "alias": "alt"; "required": false; }; "name": { "alias": "name"; "required": false; }; "size": { "alias": "size"; "required": false; }; "fallback": { "alias": "fallback"; "required": false; }; "editable": { "alias": "editable"; "required": false; }; "accept": { "alias": "accept"; "required": false; }; "maxFileSizeKB": { "alias": "maxFileSizeKB"; "required": false; }; "uploadLabel": { "alias": "uploadLabel"; "required": false; }; "hint": { "alias": "hint"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "removable": { "alias": "removable"; "required": false; }; "label": { "alias": "label"; "required": false; }; "required": { "alias": "required"; "required": false; }; "hasError": { "alias": "hasError"; "required": false; }; "errorMessage": { "alias": "errorMessage"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, { "fileSelected": "fileSelected"; "removed": "removed"; "fileError": "fileError"; }, never, never, true, never>;
1627
1668
  }
1628
1669
 
1629
1670
  /** Generic hierarchical node; works with note types and any similar tree. */
@@ -1804,5 +1845,47 @@ declare class BkToastr {
1804
1845
  static ɵcmp: i0.ɵɵComponentDeclaration<BkToastr, "bk-toastr", never, {}, {}, never, never, true, never>;
1805
1846
  }
1806
1847
 
1807
- export { AvatarProfile, BKTooltipDirective, BK_DEFAULT_DIALOG_CONFIG, BK_DIALOG_DATA, BK_DIALOG_GLOBAL_CONFIG, BkBadge, BkButton, BkButtonGroup, BkCheckbox, BkCustomCalendar, BkDialogActions, BkDialogClose, BkDialogContent, BkDialogModule, BkDialogRef, BkDialogService, BkDialogTitle, BkGrid, BkHierarchicalSelect, BkIconButton, BkInput, BkInputChips, BkPill, BkRadioButton, BkScheduledDatePicker, BkSelect, BkSpinner, BkTabs, BkTextarea, BkTimePicker, BkToastr, BkToastrService, BkToggle, BkValidator, BrickclayIcons, BrickclayLib, CalendarManagerService, CalendarModule, getDialogBackdropAnimation, getDialogPanelAnimation };
1808
- export type { AvatarFallback, AvatarSize, BadgeColor, BadgeSize, BadgeVariant, BkAnimationKeyframes, BkDialogAnimation, BkDialogConfig, BkDialogPosition, BkInputAutoCapitalize, BkInputAutoComplete, BkInputMode, BkInputType, BkTextAreaAutoCapitalize, BkTextAreaAutoComplete, BkTextAreaInputMode, ButtonSize, ButtonVariant, CalendarRange, CalendarSelection, CountryOption, GroupItem, GroupMode, HierarchicalNode, IconButtonSize, IconButtonVariant, IconOrientation, PillColor, PillSize, PillVariant, ScheduledDateSelection, SortDirection, SpinnerSize, TabItem, TableAction, TableColumn, TimeConfiguration, ToastConfig, ToastMessage, ToastMethodOptions, ToastPosition, ToastSeverity };
1848
+ type AvatarSize = 'xsm' | 'sm' | 'md' | 'lg' | 'xl' | 'xxl';
1849
+ type AvatarVariant = 'gray' | 'colored';
1850
+ type DotStatus = 'active' | 'inactive' | 'notification' | 'none';
1851
+ type DotPosition = 'bottom-right' | 'top-left';
1852
+ type AvatarFallback = 'auto' | 'initials' | 'icon';
1853
+ declare class BkUiAvatar implements OnChanges, ControlValueAccessor {
1854
+ private cdr;
1855
+ constructor(cdr: ChangeDetectorRef);
1856
+ src: string | null;
1857
+ alt: string;
1858
+ name: string;
1859
+ size: AvatarSize;
1860
+ variant: AvatarVariant;
1861
+ fallback: AvatarFallback;
1862
+ dot: DotStatus;
1863
+ dotPosition: DotPosition;
1864
+ /** Emits when the provided image URL fails to load */
1865
+ imageLoadError: EventEmitter<void>;
1866
+ initials: string;
1867
+ imageLoadFailed: boolean;
1868
+ private onChange;
1869
+ private onTouched;
1870
+ /**
1871
+ * Called by the forms system when the model value changes (ngModel / formControl).
1872
+ * Sets the src directly and tells OnPush to re-check the template.
1873
+ */
1874
+ writeValue(value: string | null): void;
1875
+ registerOnChange(fn: (value: string | null) => void): void;
1876
+ registerOnTouched(fn: () => void): void;
1877
+ setDisabledState(_isDisabled: boolean): void;
1878
+ ngOnChanges(changes: SimpleChanges): void;
1879
+ onImageError(): void;
1880
+ get showImage(): boolean;
1881
+ get showInitials(): boolean;
1882
+ get showIcon(): boolean;
1883
+ get containerClasses(): string;
1884
+ get dotClasses(): string;
1885
+ private getInitials;
1886
+ static ɵfac: i0.ɵɵFactoryDeclaration<BkUiAvatar, never>;
1887
+ static ɵcmp: i0.ɵɵComponentDeclaration<BkUiAvatar, "bk-ui-avatar", never, { "src": { "alias": "src"; "required": false; }; "alt": { "alias": "alt"; "required": false; }; "name": { "alias": "name"; "required": false; }; "size": { "alias": "size"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; "fallback": { "alias": "fallback"; "required": false; }; "dot": { "alias": "dot"; "required": false; }; "dotPosition": { "alias": "dotPosition"; "required": false; }; }, { "imageLoadError": "imageLoadError"; }, never, never, true, never>;
1888
+ }
1889
+
1890
+ export { BKTooltipDirective, BK_DEFAULT_DIALOG_CONFIG, BK_DIALOG_DATA, BK_DIALOG_GLOBAL_CONFIG, BkAvatarProfile, BkBadge, BkButton, BkButtonGroup, BkCheckbox, BkCustomCalendar, BkDialogActions, BkDialogClose, BkDialogContent, BkDialogModule, BkDialogRef, BkDialogService, BkDialogTitle, BkGrid, BkHierarchicalSelect, BkIconButton, BkInput, BkInputChips, BkPill, BkRadioButton, BkScheduledDatePicker, BkSelect, BkSpinner, BkTabs, BkTextarea, BkTimePicker, BkToastr, BkToastrService, BkToggle, BkUiAvatar, BkValidator, BrickclayIcons, BrickclayLib, CalendarManagerService, CalendarModule, CalendarSelection, getDialogBackdropAnimation, getDialogPanelAnimation };
1891
+ export type { AvatarFallback, AvatarSize, AvatarVariant, BadgeColor, BadgeSize, BadgeVariant, BkAnimationKeyframes, BkAvatarFallback, BkAvatarSize, BkDialogAnimation, BkDialogConfig, BkDialogPosition, BkInputAutoCapitalize, BkInputAutoComplete, BkInputMode, BkInputType, BkTextAreaAutoCapitalize, BkTextAreaAutoComplete, BkTextAreaInputMode, ButtonSize, ButtonVariant, CalendarRange, CountryOption, DotPosition, DotStatus, GroupItem, GroupMode, HierarchicalNode, IconButtonSize, IconButtonVariant, IconOrientation, PillColor, PillSize, PillVariant, ScheduledDateSelection, SortDirection, SpinnerSize, TabItem, TableAction, TableColumn, TimeConfiguration, ToastConfig, ToastMessage, ToastMethodOptions, ToastPosition, ToastSeverity };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@brickclay-org/ui",
3
- "version": "0.0.58",
3
+ "version": "0.0.60",
4
4
  "schematics": "./schematics/collection.json",
5
5
  "ng-add": {
6
6
  "save": "dependencies"
@@ -0,0 +1,71 @@
1
+ /* =========================
2
+ Base Avatar
3
+ ========================= */
4
+ .avatar {
5
+ @apply relative inline-flex items-center justify-center
6
+ rounded-full flex-shrink-0 select-none
7
+ transition-all duration-200;
8
+ }
9
+
10
+ .avatar-img {
11
+ @apply w-full h-full object-cover rounded-full;
12
+ }
13
+
14
+ .avatar-text {
15
+ @apply font-medium;
16
+ }
17
+
18
+ /* =========================
19
+ Sizes (container + text)
20
+ ========================= */
21
+ .xsm { @apply size-6 text-[10px] leading-[14px]; }
22
+ .sm { @apply size-8 text-sm; }
23
+ .md { @apply size-10 text-base; }
24
+ .lg { @apply size-12 text-[18px] leading-[26px]; }
25
+ .xl { @apply size-14 text-xl; }
26
+ .xxl { @apply size-16 text-xl; }
27
+
28
+ /* =========================
29
+ Placeholder Icon Sizes
30
+ ========================= */
31
+ .xsm .placeholder-icon { @apply size-4; }
32
+ .sm .placeholder-icon { @apply size-5; }
33
+ .md .placeholder-icon { @apply size-6; }
34
+ .lg .placeholder-icon { @apply size-7; }
35
+ .xl .placeholder-icon,
36
+ .xxl .placeholder-icon { @apply size-8; }
37
+
38
+ /* =========================
39
+ Status Dot (Base)
40
+ ========================= */
41
+ .avatar-dot {
42
+ @apply absolute rounded-full block box-content
43
+ border-[1.5px] border-white;
44
+ }
45
+
46
+ /* Dot size follows avatar size */
47
+ .xsm .avatar-dot { @apply size-1; }
48
+ .sm .avatar-dot { @apply size-1.5; }
49
+ .md .avatar-dot { @apply size-2.5; }
50
+ .lg .avatar-dot { @apply size-3; }
51
+ .xl .avatar-dot { @apply size-[14px]; }
52
+ .xxl .avatar-dot { @apply size-4; }
53
+
54
+ /* =========================
55
+ Dot Variants
56
+ ========================= */
57
+ .active {
58
+ @apply bg-[#22973F];
59
+ }
60
+
61
+ .inactive {
62
+ @apply bg-gray-300;
63
+ }
64
+
65
+ .notification {
66
+ @apply bg-[#2E90FA];
67
+ }
68
+
69
+ .none {
70
+ @apply hidden;
71
+ }
package/src/styles.css CHANGED
@@ -19,3 +19,4 @@
19
19
  @import './lib/avatar-profile/avatar-profile.css';
20
20
  @import './lib/hierarchical-select/hierarchical-select.css';
21
21
  @import './lib/toastr/toastr.css';
22
+ @import './lib/ui-avatar/ui-avatar.css'