Skip to content

Commit 6242015

Browse files
authored
fix(chip): styling discrepancies (#1486)
1 parent 559e6f3 commit 6242015

File tree

3 files changed

+30
-5
lines changed

3 files changed

+30
-5
lines changed

src/components/chip/chip.ts

Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
import { LitElement, html, nothing } from 'lit';
2-
import { property } from 'lit/decorators.js';
2+
import { property, queryAssignedElements } from 'lit/decorators.js';
33
import { type Ref, createRef, ref } from 'lit/directives/ref.js';
44

55
import { themes } from '../../theming/theming-decorator.js';
66
import { addKeybindings } from '../common/controllers/key-bindings.js';
77
import { registerComponent } from '../common/definitions/register.js';
88
import type { Constructor } from '../common/mixins/constructor.js';
99
import { EventEmitterMixin } from '../common/mixins/event-emitter.js';
10+
import { isEmpty } from '../common/util.js';
1011
import IgcIconComponent from '../icon/icon.js';
1112
import type { StyleVariant } from '../types.js';
1213
import { styles } from './themes/chip.base.css.js';
@@ -84,6 +85,18 @@ export default class IgcChipComponent extends EventEmitterMixin<
8485
@property({ reflect: true })
8586
public variant!: StyleVariant;
8687

88+
@queryAssignedElements({ slot: 'prefix' })
89+
protected prefixes!: Array<HTMLElement>;
90+
91+
@queryAssignedElements({ slot: 'start' })
92+
protected contentStart!: Array<HTMLElement>;
93+
94+
@queryAssignedElements({ slot: 'suffix' })
95+
protected suffixes!: Array<HTMLElement>;
96+
97+
@queryAssignedElements({ slot: 'end' })
98+
protected contentEnd!: Array<HTMLElement>;
99+
87100
constructor() {
88101
super();
89102

@@ -120,7 +133,12 @@ export default class IgcChipComponent extends EventEmitterMixin<
120133
aria-disabled="${this.disabled ? 'true' : 'false'}"
121134
@click=${this.handleSelect}
122135
>
123-
<span part="prefix">
136+
<span
137+
part="prefix"
138+
.hidden=${isEmpty(this.prefixes) &&
139+
isEmpty(this.contentStart) &&
140+
!this.selected}
141+
>
124142
${this.selectable && this.selected
125143
? html`<slot name="select">
126144
<igc-icon name="selected" collection="default"></igc-icon>
@@ -130,7 +148,12 @@ export default class IgcChipComponent extends EventEmitterMixin<
130148
<slot name="prefix"></slot>
131149
</span>
132150
<slot></slot>
133-
<span part="suffix">
151+
<span
152+
part="suffix"
153+
.hidden=${isEmpty(this.suffixes) &&
154+
isEmpty(this.contentEnd) &&
155+
!this.removable}
156+
>
134157
<slot name="end"></slot>
135158
<slot name="suffix"></slot>
136159
${this.removable && !this.disabled

src/components/chip/themes/shared/chip.common.scss

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,8 @@ $theme: $material;
3030
color: var-get($theme, 'disabled-text-color');
3131
}
3232

33-
igc-icon {
33+
igc-icon,
34+
::slotted(igc-icon) {
3435
--component-size: var(--chip-size);
3536
}
3637

src/components/chip/themes/shared/chip.indigo.scss

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,8 @@ $theme: $indigo;
2323
border-color: var-get($theme, 'disabled-border-color');
2424
}
2525

26-
igc-icon {
26+
igc-icon,
27+
::slotted(igc-icon) {
2728
--size: #{sizable(rem(14px), rem(14px), rem(16px))};
2829
}
2930
}

0 commit comments

Comments
 (0)