@brickclay-org/ui 0.1.79 → 0.1.81

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
@@ -748,7 +748,7 @@ declare class BkPill {
748
748
  }
749
749
 
750
750
  type BadgeVariant = 'Light' | 'Solid' | 'Outline' | 'Transparent';
751
- type BadgeColor = 'Gray' | 'Primary' | 'Error' | 'Warning' | 'Success' | 'Purple' | 'Cyan';
751
+ type BadgeColor = 'Gray' | 'Primary' | 'Error' | 'Warning' | 'Orange' | 'Success' | 'Purple' | 'Cyan';
752
752
  type BadgeSize = 'xsm' | 'sm' | 'md' | 'lg';
753
753
  declare class BkBadge {
754
754
  label: string;
@@ -758,11 +758,17 @@ declare class BkBadge {
758
758
  dot: 'left' | 'right' | 'none';
759
759
  removable: boolean;
760
760
  customClass: string;
761
+ /** Overrides `color`/`variant` with exact CSS colors — any valid CSS color value. */
762
+ customBg?: string;
763
+ customBorder?: string;
764
+ customText?: string;
761
765
  clicked: EventEmitter<string>;
766
+ get hasCustomColor(): boolean;
762
767
  get containerClasses(): string;
768
+ get customStyle(): Record<string, string>;
763
769
  onRemove(e: Event): void;
764
770
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<BkBadge, never>;
765
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<BkBadge, "bk-badge", never, { "label": { "alias": "label"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; "color": { "alias": "color"; "required": false; }; "size": { "alias": "size"; "required": false; }; "dot": { "alias": "dot"; "required": false; }; "removable": { "alias": "removable"; "required": false; }; "customClass": { "alias": "customClass"; "required": false; }; }, { "clicked": "clicked"; }, never, never, true, never>;
771
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<BkBadge, "bk-badge", never, { "label": { "alias": "label"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; "color": { "alias": "color"; "required": false; }; "size": { "alias": "size"; "required": false; }; "dot": { "alias": "dot"; "required": false; }; "removable": { "alias": "removable"; "required": false; }; "customClass": { "alias": "customClass"; "required": false; }; "customBg": { "alias": "customBg"; "required": false; }; "customBorder": { "alias": "customBorder"; "required": false; }; "customText": { "alias": "customText"; "required": false; }; }, { "clicked": "clicked"; }, never, never, true, never>;
766
772
  }
767
773
 
768
774
  type SpinnerSize = 'xsm' | 'sm' | 'md' | 'lg' | 'xl';
@@ -1022,6 +1028,22 @@ declare function parseColor(input: string | null | undefined): Rgb | null;
1022
1028
  */
1023
1029
  declare function deriveAppearance(color: string | null | undefined, fill?: ColorFill): ColorAppearance;
1024
1030
 
1031
+ interface BkSelectGridColumn {
1032
+ /** Property read from each item. Dot-separated paths are supported. */
1033
+ key: string;
1034
+ /** Column heading. */
1035
+ label: string;
1036
+ /** CSS width/min-width values, e.g. `120px` or `25%`. */
1037
+ width?: string;
1038
+ minWidth?: string;
1039
+ align?: 'left' | 'center' | 'right';
1040
+ type?: 'text' | 'badge';
1041
+ /** Optional display transform; the original item is supplied as well. */
1042
+ formatter?: (value: any, item: any) => string;
1043
+ /** Badge colour by cell value, e.g. `{ Active: '#16a34a' }`. */
1044
+ badgeColors?: Record<string, BadgeColor>;
1045
+ badgeVariant?: BadgeVariant;
1046
+ }
1025
1047
  declare class BkSelect implements ControlValueAccessor, AfterViewInit, OnDestroy {
1026
1048
  items: _angular_core.InputSignal<any[]>;
1027
1049
  bindLabel: _angular_core.InputSignal<string>;
@@ -1034,6 +1056,15 @@ declare class BkSelect implements ControlValueAccessor, AfterViewInit, OnDestroy
1034
1056
  clearAllText: _angular_core.InputSignal<string>;
1035
1057
  groupBy: _angular_core.InputSignal<string>;
1036
1058
  colorKey: _angular_core.InputSignal<string>;
1059
+ /** Opt-in table-like dropdown. The existing list is the unchanged default. */
1060
+ dropdownView: _angular_core.InputSignal<"list" | "grid">;
1061
+ gridColumns: _angular_core.InputSignal<BkSelectGridColumn[]>;
1062
+ /** Stage multi-grid changes until Apply is clicked. */
1063
+ gridSelectionActions: _angular_core.InputSignal<boolean>;
1064
+ gridMinWidth: _angular_core.InputSignal<string>;
1065
+ gridMaxHeight: _angular_core.InputSignal<string>;
1066
+ gridApplyText: _angular_core.InputSignal<string>;
1067
+ gridClearText: _angular_core.InputSignal<string>;
1037
1068
  /**
1038
1069
  * Show an accent dot beside each option, driven by `colorKey`.
1039
1070
  *
@@ -1101,6 +1132,7 @@ declare class BkSelect implements ControlValueAccessor, AfterViewInit, OnDestroy
1101
1132
  private static activeInstance;
1102
1133
  isOpen: _angular_core.WritableSignal<boolean>;
1103
1134
  selectedOptions: _angular_core.WritableSignal<any[]>;
1135
+ private gridDraftOptions;
1104
1136
  searchTerm: _angular_core.WritableSignal<string>;
1105
1137
  markedIndex: _angular_core.WritableSignal<number>;
1106
1138
  placement: _angular_core.WritableSignal<"top" | "bottom">;
@@ -1154,6 +1186,12 @@ declare class BkSelect implements ControlValueAccessor, AfterViewInit, OnDestroy
1154
1186
  private recomputeVisibleChips;
1155
1187
  resolveLabel(item: any): string;
1156
1188
  resolveValue(item: any): any;
1189
+ resolveGridCell(item: any, column: BkSelectGridColumn): string;
1190
+ gridColumnStyle(column: BkSelectGridColumn): Record<string, string>;
1191
+ gridBadgeColor(item: any, column: BkSelectGridColumn): BadgeColor;
1192
+ isGridItemSelected(item: any): boolean;
1193
+ gridSelectedCount(): number;
1194
+ private usesGridDraft;
1157
1195
  isItemSelected(item: any): boolean;
1158
1196
  isItemDisabled(item: any): boolean;
1159
1197
  compareWith: _angular_core.InputSignal<(a: any, b: any) => boolean>;
@@ -1171,6 +1209,9 @@ declare class BkSelect implements ControlValueAccessor, AfterViewInit, OnDestroy
1171
1209
  applyPlacement(): void;
1172
1210
  toggleSelectAll(event: Event): void;
1173
1211
  handleSelection(item: any, event?: Event): void;
1212
+ handleGridSelection(item: any, event?: Event): void;
1213
+ clearGridDraft(): void;
1214
+ applyGridDraft(): void;
1174
1215
  removeOption(item: any, event: Event): void;
1175
1216
  handleClear(event: Event): void;
1176
1217
  private updateModel;
@@ -1235,7 +1276,7 @@ declare class BkSelect implements ControlValueAccessor, AfterViewInit, OnDestroy
1235
1276
  getTooltipIfEllipsed(el: HTMLElement, text: string): string;
1236
1277
  onOptionHover(index: number): void;
1237
1278
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<BkSelect, never>;
1238
- static ɵcmp: _angular_core.ɵɵ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; }; "bindIcon": { "alias": "bindIcon"; "required": false; "isSignal": true; }; "isResponsive": { "alias": "isResponsive"; "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; }; "showDots": { "alias": "showDots"; "required": false; "isSignal": true; }; "showAvatar": { "alias": "showAvatar"; "required": false; "isSignal": true; }; "avatarKey": { "alias": "avatarKey"; "required": false; "isSignal": true; }; "iconAlt": { "alias": "iconAlt"; "required": false; }; "label": { "alias": "label"; "required": false; }; "required": { "alias": "required"; "required": false; }; "variation": { "alias": "variation"; "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>;
1279
+ static ɵcmp: _angular_core.ɵɵ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; }; "bindIcon": { "alias": "bindIcon"; "required": false; "isSignal": true; }; "isResponsive": { "alias": "isResponsive"; "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; }; "dropdownView": { "alias": "dropdownView"; "required": false; "isSignal": true; }; "gridColumns": { "alias": "gridColumns"; "required": false; "isSignal": true; }; "gridSelectionActions": { "alias": "gridSelectionActions"; "required": false; "isSignal": true; }; "gridMinWidth": { "alias": "gridMinWidth"; "required": false; "isSignal": true; }; "gridMaxHeight": { "alias": "gridMaxHeight"; "required": false; "isSignal": true; }; "gridApplyText": { "alias": "gridApplyText"; "required": false; "isSignal": true; }; "gridClearText": { "alias": "gridClearText"; "required": false; "isSignal": true; }; "showDots": { "alias": "showDots"; "required": false; "isSignal": true; }; "showAvatar": { "alias": "showAvatar"; "required": false; "isSignal": true; }; "avatarKey": { "alias": "avatarKey"; "required": false; "isSignal": true; }; "iconAlt": { "alias": "iconAlt"; "required": false; }; "label": { "alias": "label"; "required": false; }; "required": { "alias": "required"; "required": false; }; "variation": { "alias": "variation"; "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>;
1239
1280
  }
1240
1281
 
1241
1282
  type BkInputType = 'text' | 'email' | 'password' | 'number' | 'url' | 'tel';
@@ -1277,6 +1318,9 @@ declare class BkInput implements OnInit, OnDestroy, AfterViewInit, ControlValueA
1277
1318
  iconAlt: string;
1278
1319
  showIcon: boolean;
1279
1320
  phone: boolean;
1321
+ currency: boolean;
1322
+ currencyDecimals: number;
1323
+ allowNegative: boolean;
1280
1324
  countryCode: string;
1281
1325
  countryOptions: CountryOption[];
1282
1326
  selectedCountry: CountryOption;
@@ -1306,9 +1350,14 @@ declare class BkInput implements OnInit, OnDestroy, AfterViewInit, ControlValueA
1306
1350
  get placeHolderText(): string;
1307
1351
  get maskValue(): string;
1308
1352
  get maskPrefixValue(): string;
1353
+ private readonly defaultDecimalMarker;
1354
+ get maskThousandSeparator(): string;
1355
+ get maskDecimalMarker(): '.' | ',' | ['.', ','];
1356
+ get maskAllowNegativeNumbers(): boolean;
1309
1357
  private onChange;
1310
1358
  private onTouched;
1311
1359
  private applyDropSpecialCharacters;
1360
+ private parseCurrencyValue;
1312
1361
  writeValue(value: any): void;
1313
1362
  registerOnChange(fn: any): void;
1314
1363
  registerOnTouched(fn: any): void;
@@ -1332,7 +1381,7 @@ declare class BkInput implements OnInit, OnDestroy, AfterViewInit, ControlValueA
1332
1381
  get currentInputType(): string;
1333
1382
  private writeMaskedViewValue;
1334
1383
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<BkInput, never>;
1335
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<BkInput, "bk-input", never, { "id": { "alias": "id"; "required": false; }; "name": { "alias": "name"; "required": false; }; "mask": { "alias": "mask"; "required": false; }; "dropSpecialCharacters": { "alias": "dropSpecialCharacters"; "required": false; }; "autoComplete": { "alias": "autoComplete"; "required": false; }; "label": { "alias": "label"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "hint": { "alias": "hint"; "required": false; }; "required": { "alias": "required"; "required": false; }; "type": { "alias": "type"; "required": false; }; "size": { "alias": "size"; "required": false; }; "value": { "alias": "value"; "required": false; }; "hasError": { "alias": "hasError"; "required": false; }; "showErrorIcon": { "alias": "showErrorIcon"; "required": false; }; "errorMessage": { "alias": "errorMessage"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; "readOnly": { "alias": "readOnly"; "required": false; }; "autoCapitalize": { "alias": "autoCapitalize"; "required": false; }; "inputMode": { "alias": "inputMode"; "required": false; }; "iconSrc": { "alias": "iconSrc"; "required": false; }; "iconAlt": { "alias": "iconAlt"; "required": false; }; "showIcon": { "alias": "showIcon"; "required": false; }; "phone": { "alias": "phone"; "required": false; }; "countryCode": { "alias": "countryCode"; "required": false; }; "countryOptions": { "alias": "countryOptions"; "required": false; }; "iconOrientation": { "alias": "iconOrientation"; "required": false; }; "password": { "alias": "password"; "required": false; }; "showPassword": { "alias": "showPassword"; "required": false; }; "pattern": { "alias": "pattern"; "required": false; }; "max": { "alias": "max"; "required": false; }; "min": { "alias": "min"; "required": false; }; "step": { "alias": "step"; "required": false; }; "maxlength": { "alias": "maxlength"; "required": false; }; "minlength": { "alias": "minlength"; "required": false; }; }, { "input": "input"; "change": "change"; "focus": "focus"; "blur": "blur"; "clicked": "clicked"; }, never, never, true, never>;
1384
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<BkInput, "bk-input", never, { "id": { "alias": "id"; "required": false; }; "name": { "alias": "name"; "required": false; }; "mask": { "alias": "mask"; "required": false; }; "dropSpecialCharacters": { "alias": "dropSpecialCharacters"; "required": false; }; "autoComplete": { "alias": "autoComplete"; "required": false; }; "label": { "alias": "label"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "hint": { "alias": "hint"; "required": false; }; "required": { "alias": "required"; "required": false; }; "type": { "alias": "type"; "required": false; }; "size": { "alias": "size"; "required": false; }; "value": { "alias": "value"; "required": false; }; "hasError": { "alias": "hasError"; "required": false; }; "showErrorIcon": { "alias": "showErrorIcon"; "required": false; }; "errorMessage": { "alias": "errorMessage"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; "readOnly": { "alias": "readOnly"; "required": false; }; "autoCapitalize": { "alias": "autoCapitalize"; "required": false; }; "inputMode": { "alias": "inputMode"; "required": false; }; "iconSrc": { "alias": "iconSrc"; "required": false; }; "iconAlt": { "alias": "iconAlt"; "required": false; }; "showIcon": { "alias": "showIcon"; "required": false; }; "phone": { "alias": "phone"; "required": false; }; "currency": { "alias": "currency"; "required": false; }; "currencyDecimals": { "alias": "currencyDecimals"; "required": false; }; "allowNegative": { "alias": "allowNegative"; "required": false; }; "countryCode": { "alias": "countryCode"; "required": false; }; "countryOptions": { "alias": "countryOptions"; "required": false; }; "iconOrientation": { "alias": "iconOrientation"; "required": false; }; "password": { "alias": "password"; "required": false; }; "showPassword": { "alias": "showPassword"; "required": false; }; "pattern": { "alias": "pattern"; "required": false; }; "max": { "alias": "max"; "required": false; }; "min": { "alias": "min"; "required": false; }; "step": { "alias": "step"; "required": false; }; "maxlength": { "alias": "maxlength"; "required": false; }; "minlength": { "alias": "minlength"; "required": false; }; }, { "input": "input"; "change": "change"; "focus": "focus"; "blur": "blur"; "clicked": "clicked"; }, never, never, true, never>;
1336
1385
  }
1337
1386
 
1338
1387
  declare class BkInputChips implements ControlValueAccessor, AfterViewInit {
@@ -2323,6 +2372,8 @@ declare class BkHierarchicalSelect implements ControlValueAccessor, AfterViewIni
2323
2372
  /** Runs after the panel has rendered: relocate (append mode) + position + focus. */
2324
2373
  private afterOpenInit;
2325
2374
  isOpen: _angular_core.WritableSignal<boolean>;
2375
+ /** Hidden until its real height has been measured and final placement applied. */
2376
+ panelReady: _angular_core.WritableSignal<boolean>;
2326
2377
  dropdownStyle: _angular_core.WritableSignal<{
2327
2378
  top?: string;
2328
2379
  bottom?: string;
@@ -4158,4 +4209,4 @@ declare class BkTreeDrag<T = any> extends BkTableDrag implements OnDestroy {
4158
4209
  declare const BK_TABLE: readonly [typeof BkTable, typeof BkTableTitle, typeof BkTableFooter, typeof BkVirtualScroll, typeof BkTh, typeof BkTd, typeof BkTrExpand, typeof BkTableSummary, typeof BkTableDrag, typeof BkDragHandle, typeof BkTreeDrag];
4159
4210
 
4160
4211
  export { BKTooltipDirective, BK_DEFAULT_DIALOG_CONFIG, BK_DIALOG_DATA, BK_DIALOG_GLOBAL_CONFIG, BK_TABLE, BkAvatar, BkAvatarGroup, BkAvatarUploader, BkBadge, BkBreadcrumb, BkButton, BkButtonGroup, BkCalendarManagerService, BkCheckbox, BkColumnFilterService, BkColumnSelect, BkCustomCalendar, BkDialogActions, BkDialogClose, BkDialogContent, BkDialogModule, BkDialogRef, BkDialogService, BkDialogTitle, BkDragHandle, BkDropdown, BkFileCard, BkFilePicker, BkGrid, BkHierarchicalSelect, BkIconButton, BkInput, BkInputChips, BkLoader, BkMenu, BkPagination, BkPill, BkPopover, BkRadioButton, BkScheduledDatePicker, BkSelect, BkSpinner, BkTable, BkTableDrag, BkTableFooter, BkTableSummary, BkTableTitle, BkTabs, BkTd, BkTextarea, BkTh, BkTimePicker, BkToastr, BkToastrService, BkToggle, BkTrExpand, BkTreeDrag, BkValidator, BkVirtualScroll, BrickclayIcons, BrickclayLib, CalendarModule, CalendarSelection, ColumnFilterOption, NEUTRAL_APPEARANCE, POPOVER_PLACEMENTS, computePopoverPosition, containsBkTreeNode, deriveAppearance, flattenBkTreeData, getDialogBackdropAnimation, getDialogPanelAnimation, joinPlacement, moveBkTreeNode, normalizeBkTableSize, parseColor, splitPlacement };
4161
- export type { AvatarFallback, AvatarGroupItem, AvatarSize, AvatarVariant, BadgeColor, BadgeSize, BadgeVariant, BkAnimationKeyframes, BkAvatarFallback, BkAvatarSize, BkCellAlign, BkColumnRef, BkColumnSelectPosition, BkDialogAnimation, BkDialogConfig, BkDialogPosition, BkFilterFn, BkFilterOption, BkInputAutoCapitalize, BkInputAutoComplete, BkInputMode, BkInputSize, BkInputType, BkLoaderVariant, BkPageSize, BkPageSizeVisibility, BkSortDirection, BkSortFn, BkSortOrder, BkTableNoResult, BkTableQueryParams, BkTableScroll, BkTableSelection, BkTableSize, BkTableSizeToken, BkTextAreaAutoCapitalize, BkTextAreaAutoComplete, BkTextAreaInputMode, BkTreeDragScope, BkTreeDropEvent, BkTreeDropPosition, BkTreeRow, BreadcrumbItem, ButtonSize, ButtonVariant, CalendarRange, ColorAppearance, ColorFill, CountryOption, CustomRangesConfig, DotPosition, DotStatus, DropdownItem, DropdownPlacement, DropdownSize, DropdownTrigger, DropdownVariant, FileState, GroupItem, GroupMode, HierarchicalNode, IconButtonSize, IconButtonVariant, IconOrientation, MenuItem, MenuOrientation, MenuPopupSide, MenuSize, MenuSubmenuMode, MenuTrigger, PillColor, PillSize, PillVariant, PopoverAlign, PopoverPlacement, PopoverPosition, PopoverPositionOptions, PopoverSide, Rect, ScheduledDateSelection, Size, SortDirection, SpinnerSize, TabIconDirection, TabItem, TableAction, TableBadge, TableColumn, TableIcon, TableRows, TabsColors, TabsOrientation, TabsVariant, TimeConfiguration, ToastConfig, ToastMessage, ToastMethodOptions, ToastPosition, ToastSeverity };
4212
+ export type { AvatarFallback, AvatarGroupItem, AvatarSize, AvatarVariant, BadgeColor, BadgeSize, BadgeVariant, BkAnimationKeyframes, BkAvatarFallback, BkAvatarSize, BkCellAlign, BkColumnRef, BkColumnSelectPosition, BkDialogAnimation, BkDialogConfig, BkDialogPosition, BkFilterFn, BkFilterOption, BkInputAutoCapitalize, BkInputAutoComplete, BkInputMode, BkInputSize, BkInputType, BkLoaderVariant, BkPageSize, BkPageSizeVisibility, BkSelectGridColumn, BkSortDirection, BkSortFn, BkSortOrder, BkTableNoResult, BkTableQueryParams, BkTableScroll, BkTableSelection, BkTableSize, BkTableSizeToken, BkTextAreaAutoCapitalize, BkTextAreaAutoComplete, BkTextAreaInputMode, BkTreeDragScope, BkTreeDropEvent, BkTreeDropPosition, BkTreeRow, BreadcrumbItem, ButtonSize, ButtonVariant, CalendarRange, ColorAppearance, ColorFill, CountryOption, CustomRangesConfig, DotPosition, DotStatus, DropdownItem, DropdownPlacement, DropdownSize, DropdownTrigger, DropdownVariant, FileState, GroupItem, GroupMode, HierarchicalNode, IconButtonSize, IconButtonVariant, IconOrientation, MenuItem, MenuOrientation, MenuPopupSide, MenuSize, MenuSubmenuMode, MenuTrigger, PillColor, PillSize, PillVariant, PopoverAlign, PopoverPlacement, PopoverPosition, PopoverPositionOptions, PopoverSide, Rect, ScheduledDateSelection, Size, SortDirection, SpinnerSize, TabIconDirection, TabItem, TableAction, TableBadge, TableColumn, TableIcon, TableRows, TabsColors, TabsOrientation, TabsVariant, 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.1.79",
3
+ "version": "0.1.81",
4
4
  "schematics": "./schematics/collection.json",
5
5
  "ng-add": {
6
6
  "save": "dependencies"
@@ -0,0 +1,5 @@
1
+ <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M10 1.66666C5.39763 1.66666 1.66667 5.39762 1.66667 10C1.66667 14.6024 5.39763 18.3333 10 18.3333C14.6024 18.3333 18.3333 14.6024 18.3333 10C18.3333 5.39762 14.6024 1.66666 10 1.66666Z" stroke="#A1A3AE" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/>
3
+ <path d="M10 5.83334V14.1667" stroke="#A1A3AE" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/>
4
+ <path d="M12.5 7.91666C12.5 6.85609 11.3807 5.99999 10 5.99999C8.61931 5.99999 7.5 6.85609 7.5 7.91666C7.5 8.97723 8.61931 9.83332 10 9.83332C11.3807 9.83332 12.5 10.6894 12.5 11.75C12.5 12.8106 11.3807 13.6667 10 13.6667C8.61931 13.6667 7.5 12.8106 7.5 11.75" stroke="#A1A3AE" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/>
5
+ </svg>
@@ -36,7 +36,8 @@
36
36
  .Gray-Solid { @apply bg-[#6B7080] border-[#6B7080] text-white; }
37
37
  .Primary-Solid { @apply bg-[#294FFF] border-[#294FFF] text-white; }
38
38
  .Error-Solid { @apply bg-[#FA727A] border-[#FA727A] text-[#4C0513]; }
39
- .Warning-Solid { @apply bg-[#FA9E3A] border-[#FA9E3A] text-[#461C04]; }
39
+ .Orange-Solid { @apply bg-[#FA9E3A] border-[#FA9E3A] text-[#461C04]; }
40
+ .Warning-Solid { @apply bg-[#FACC15] border-[#FACC15] text-[#713F12]; }
40
41
  /* Fixed Custom Dot color for Success Solid if you want it darker than text, otherwise remove next line */
41
42
  .Success-Solid { @apply bg-[#57D175] border-[#57D175] text-[#461C04]; }
42
43
  .Success-Solid .dot { @apply bg-[#082B13]; } /* Override bg-current only here */
@@ -49,7 +50,8 @@
49
50
  .Gray-Light { @apply bg-[#F4F4F6] border-transparent text-[#363C51]; }
50
51
  .Primary-Light { @apply bg-[#E5F3FF] border-transparent text-[#1434CB]; }
51
52
  .Error-Light { @apply bg-[#FFF1F1] border-transparent text-[#CB1432]; }
52
- .Warning-Light { @apply bg-[#FFEED7] border-transparent text-[#A04C02]; }
53
+ .Orange-Light { @apply bg-[#FFEED7] border-transparent text-[#A04C02]; }
54
+ .Warning-Light { @apply bg-[#FEFCE8] border-transparent text-[#A16207]; }
53
55
  .Success-Light { @apply bg-[#F1FCF3] border-transparent text-[#1E7735]; }
54
56
  .Purple-Light { @apply bg-[#F6EAFD] border-transparent text-[#9130C0]; }
55
57
  .Cyan-Light { @apply bg-[#F1FAFE] border-transparent text-[#096E9B]; }
@@ -59,7 +61,8 @@
59
61
  .Gray-Outline { @apply bg-[#F4F4F6] border-[#BBBDC5] text-[#363C51]; }
60
62
  .Primary-Outline { @apply bg-[#E5F3FF] border-[#3F71FF] text-[#1434CB]; }
61
63
  .Error-Outline { @apply bg-[#FFF1F1] border-[#FA727A] text-[#CB1432]; }
62
- .Warning-Outline { @apply bg-[#FFEED7] border-[#FBAE58] text-[#A04C02]; }
64
+ .Orange-Outline { @apply bg-[#FFEED7] border-[#FBAE58] text-[#A04C02]; }
65
+ .Warning-Outline { @apply bg-[#FEFCE8] border-[#FACC15] text-[#A16207]; }
63
66
  .Success-Outline { @apply bg-[#F1FCF3] border-[#57D175] text-[#1E7735]; }
64
67
  .Purple-Outline { @apply bg-[#F6EAFD] border-[#CE8EF2] text-[#9130C0]; }
65
68
  .Cyan-Outline { @apply bg-[#F1FAFE] border-[#3FC2F1] text-[#096E9B]; }
@@ -69,7 +72,8 @@
69
72
  .Gray-Transparent { @apply bg-transparent border-[#BBBDC5] text-[#363C51]; }
70
73
  .Primary-Transparent { @apply bg-transparent border-[#3F71FF] text-[#1434CB]; }
71
74
  .Error-Transparent { @apply bg-transparent border-[#FA727A] text-[#CB1432]; }
72
- .Warning-Transparent { @apply bg-transparent border-[#FBAE58] text-[#A04C02]; }
75
+ .Orange-Transparent { @apply bg-transparent border-[#FBAE58] text-[#A04C02]; }
76
+ .Warning-Transparent { @apply bg-transparent border-[#FACC15] text-[#A16207]; }
73
77
  .Success-Transparent { @apply bg-transparent border-[#57D175] text-[#1E7735]; }
74
78
  .Purple-Transparent { @apply bg-transparent border-[#CE8EF2] text-[#9130C0]; }
75
79
  .Cyan-Transparent { @apply bg-transparent border-[#3FC2F1] text-[#096E9B]; }
@@ -66,6 +66,11 @@
66
66
  @apply pl-[72px];
67
67
  }
68
68
 
69
+ /* Currency Input Field - Add padding-left for the dollar icon box */
70
+ .input-field--currency {
71
+ @apply pl-[3.5rem];
72
+ }
73
+
69
74
  /* Icon Left - Add padding-left for icon space */
70
75
  .input-field--icon-left {
71
76
  @apply pl-[48px];
@@ -224,6 +229,38 @@
224
229
  @apply bg-[#F4F4F6] text-[#A1A3AE] border-r-[#E3E3E7];
225
230
  }
226
231
 
232
+ /* Currency Icon - Bordered box like the URL prefix, holds the dollar icon */
233
+ .input-currency-icon {
234
+ @apply absolute left-0 top-0 bottom-0 w-11 flex items-center justify-center bg-white border transition-colors duration-200 pointer-events-none;
235
+ border-top-left-radius: 4px;
236
+ border-bottom-left-radius: 4px;
237
+ }
238
+
239
+ .input-currency-icon img {
240
+ @apply w-5 h-5;
241
+ }
242
+
243
+ /* Currency Icon - State Specific Border Colors (matches input border) */
244
+ .input-currency-icon--default {
245
+ @apply border-[#E3E3E7];
246
+ }
247
+
248
+ .input-currency-icon--focused {
249
+ @apply border-[#6B7080];
250
+ }
251
+
252
+ .input-currency-icon--filled {
253
+ @apply border-[#E3E3E7];
254
+ }
255
+
256
+ .input-currency-icon--error {
257
+ @apply border-[#E7000B];
258
+ }
259
+
260
+ .input-currency-icon--disabled {
261
+ @apply bg-[#F4F4F6] border-[#E3E3E7];
262
+ }
263
+
227
264
  /* Hint text */
228
265
  .input-hint {
229
266
  @apply text-xs text-[#868997] font-normal;
@@ -295,6 +332,18 @@
295
332
  @apply pl-16;
296
333
  }
297
334
 
335
+ .input-container--sm .input-field--currency {
336
+ @apply pl-9;
337
+ }
338
+
339
+ .input-container--sm .input-currency-icon {
340
+ @apply w-8;
341
+ }
342
+
343
+ .input-container--sm .input-currency-icon img {
344
+ @apply w-4 h-4;
345
+ }
346
+
298
347
  .input-container--sm .input-field--icon.input-field--url {
299
348
  @apply pl-24;
300
349
  }
@@ -164,6 +164,69 @@
164
164
  @apply absolute left-0 w-full bg-white border border-[#E3E3E7] rounded-xl shadow-lg z-[100] overflow-hidden cursor-default p-2.5;
165
165
  }
166
166
 
167
+ /* Opt-in grid dropdown. List-mode selectors above and below remain unchanged. */
168
+ .bk-grid-scroll {
169
+ @apply overflow-auto -mx-2.5;
170
+ }
171
+
172
+ .bk-select-grid {
173
+ @apply w-full border-collapse text-sm text-[#141414];
174
+ table-layout: fixed;
175
+ }
176
+
177
+ .bk-select-grid th {
178
+ @apply sticky top-0 z-10 bg-[#F8F8F8] px-4 py-2.5 font-semibold whitespace-nowrap border-b border-[#E3E3E7];
179
+ }
180
+
181
+ .bk-select-grid td {
182
+ @apply px-4 py-2.5 border-b border-[#E3E3E7] align-middle;
183
+ }
184
+
185
+ .bk-select-grid tbody tr {
186
+ @apply cursor-pointer transition-colors;
187
+ }
188
+
189
+ .bk-select-grid tbody tr:hover,
190
+ .bk-select-grid tbody tr.bk-marked {
191
+ @apply bg-[#F8F8F8];
192
+ }
193
+
194
+ .bk-select-grid tbody tr.bk-selected {
195
+ background-color: #F8F8F8;
196
+ }
197
+
198
+ .bk-select-grid tbody tr.bk-option-disabled {
199
+ @apply opacity-50 cursor-not-allowed;
200
+ }
201
+
202
+ .bk-grid-checkbox-column {
203
+ width: 48px;
204
+ min-width: 48px;
205
+ @apply !px-4;
206
+ }
207
+
208
+ .bk-grid-cell-text {
209
+ @apply block truncate;
210
+ }
211
+
212
+ .bk-grid-message {
213
+ @apply !px-4 !py-4 text-center text-gray-400;
214
+ }
215
+
216
+ .bk-grid-footer {
217
+ @apply flex items-center justify-between gap-4 px-1 pt-2.5 text-xs text-[#6B7080];
218
+ }
219
+
220
+ .bk-grid-footer-actions {
221
+ @apply flex items-center gap-2;
222
+ }
223
+
224
+ @media (max-width: 640px) {
225
+ .bk-grid-scroll {
226
+ max-width: calc(100vw - 32px);
227
+ }
228
+ }
229
+
167
230
  .bk-dropdown-search {
168
231
  @apply px-2 pt-2;
169
232
  }