diff --git a/projects/components/src/icon/icon-border.ts b/projects/components/src/icon/icon-border.ts new file mode 100644 index 000000000..e3f207308 --- /dev/null +++ b/projects/components/src/icon/icon-border.ts @@ -0,0 +1,5 @@ +export const enum IconBorder { + NoBorder = 'no-border', + InsetBorder = 'inset-border', + OutsetBorder = 'outset-border' +} diff --git a/projects/components/src/icon/icon.component.scss b/projects/components/src/icon/icon.component.scss index 0c9e5a64d..e9b505580 100644 --- a/projects/components/src/icon/icon.component.scss +++ b/projects/components/src/icon/icon.component.scss @@ -52,4 +52,17 @@ height: inherit; width: inherit; } + + &.no-border { + border-style: none; + } + + &.inset-border { + box-sizing: border-box; + } + + &.outset-border { + border-width: 2px; + border-style: solid; + } } diff --git a/projects/components/src/icon/icon.component.ts b/projects/components/src/icon/icon.component.ts index cede590fc..a4685eb58 100644 --- a/projects/components/src/icon/icon.component.ts +++ b/projects/components/src/icon/icon.component.ts @@ -1,6 +1,7 @@ import { ChangeDetectionStrategy, Component, Input, OnChanges } from '@angular/core'; import { IconRegistryService, IconType } from '@hypertrace/assets-library'; import { assertUnreachable } from '@hypertrace/common'; +import { IconBorder } from './icon-border'; import { IconSize } from './icon-size'; @Component({ @@ -10,8 +11,13 @@ import { IconSize } from './icon-size'; template: ` implements OnChanges, SelectOption { @Input() public iconColor?: string; + @Input() + public iconBorderType?: IconBorder; + + @Input() + public iconBorderColor?: string; + + @Input() + public iconBorderRadius?: string; + @Input() public disabled?: boolean; diff --git a/projects/components/src/select/select-option.ts b/projects/components/src/select/select-option.ts index ab8be64f4..054a3b17b 100644 --- a/projects/components/src/select/select-option.ts +++ b/projects/components/src/select/select-option.ts @@ -4,5 +4,8 @@ export interface SelectOption { selectedLabel?: string; icon?: string; iconColor?: string; + iconBorderType?: string; + iconBorderColor?: string; + iconBorderRadius?: string; disabled?: boolean; } diff --git a/projects/components/src/select/select.component.ts b/projects/components/src/select/select.component.ts index 63549d86f..a015067f1 100644 --- a/projects/components/src/select/select.component.ts +++ b/projects/components/src/select/select.component.ts @@ -61,6 +61,9 @@ import { SelectSize } from './select-size'; [icon]="this.getPrefixIcon(selected)" [size]="this.iconSize" [color]="selected?.iconColor" + [borderType]="selected?.iconBorderType" + [borderColor]="selected?.iconBorderColor" + [borderRadius]="selected?.iconBorderRadius" > @@ -123,6 +126,9 @@ import { SelectSize } from './select-size'; [icon]="item.icon" size="${IconSize.Small}" [color]="item.iconColor" + [borderType]="item?.iconBorderType" + [borderColor]="item?.iconBorderColor" + [borderRadius]="item?.iconBorderRadius" > {{ item.label }}