Skip to content

Commit e4b0355

Browse files
feat(core/filter-chip): enable shadow dom (#602)
1 parent 39202e7 commit e4b0355

File tree

4 files changed

+74
-34
lines changed

4 files changed

+74
-34
lines changed

packages/core/component-doc.json

+12-5
Original file line numberDiff line numberDiff line change
@@ -1318,7 +1318,7 @@
13181318
"ix-icon"
13191319
],
13201320
"ix-filter-chip": [
1321-
"ix-icon"
1321+
"ix-icon-button"
13221322
]
13231323
},
13241324
"props": [
@@ -4129,16 +4129,19 @@
41294129
"usage": {},
41304130
"docs": "",
41314131
"docsTags": [],
4132-
"encapsulation": "scoped",
4132+
"encapsulation": "shadow",
41334133
"dependents": [
41344134
"ix-category-filter",
41354135
"ix-select"
41364136
],
41374137
"dependencies": [
4138-
"ix-icon"
4138+
"ix-icon-button"
41394139
],
41404140
"dependencyGraph": {
41414141
"ix-filter-chip": [
4142+
"ix-icon-button"
4143+
],
4144+
"ix-icon-button": [
41424145
"ix-icon"
41434146
],
41444147
"ix-category-filter": [
@@ -4822,6 +4825,7 @@
48224825
"ix-drawer",
48234826
"ix-dropdown-button",
48244827
"ix-expanding-search",
4828+
"ix-filter-chip",
48254829
"ix-flip-tile",
48264830
"ix-group-context-menu",
48274831
"ix-map-navigation",
@@ -4864,6 +4868,9 @@
48644868
"ix-expanding-search": [
48654869
"ix-icon-button"
48664870
],
4871+
"ix-filter-chip": [
4872+
"ix-icon-button"
4873+
],
48674874
"ix-flip-tile": [
48684875
"ix-icon-button"
48694876
],
@@ -7509,7 +7516,7 @@
75097516
"ix-icon"
75107517
],
75117518
"ix-filter-chip": [
7512-
"ix-icon"
7519+
"ix-icon-button"
75137520
]
75147521
},
75157522
"props": [
@@ -8030,7 +8037,7 @@
80308037
"ix-icon"
80318038
],
80328039
"ix-filter-chip": [
8033-
"ix-icon"
8040+
"ix-icon-button"
80348041
],
80358042
"ix-icon-button": [
80368043
"ix-icon"

packages/core/scss/mixins/_hover.scss

+32
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,38 @@
4343
}
4444
}
4545

46+
@mixin host-hover() {
47+
:host(:not(.disabled):not(:disabled)) {
48+
cursor: pointer;
49+
}
50+
51+
:host(:hover:not(.disabled):not(:disabled)) {
52+
@content;
53+
}
54+
}
55+
56+
@mixin host-active() {
57+
:host(:not(.disabled):not(:disabled)) {
58+
cursor: pointer;
59+
}
60+
61+
:host(:active:not(.disabled):not(:disabled)) {
62+
@content;
63+
}
64+
}
65+
66+
@mixin host-focus() {
67+
:host(:focus:not(.disabled):not(:disabled)) {
68+
@content;
69+
}
70+
}
71+
72+
@mixin host-focus-visible() {
73+
:host(:focus-visible:not(.disabled):not(:disabled)) {
74+
@content;
75+
}
76+
}
77+
4678
@mixin ghost-hover-pressed {
4779
&:not(.disabled):not(:disabled) {
4880
&.hover,

packages/core/src/components/filter-chip/filter-chip.scss

+21-23
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,11 @@
1010
@import 'common-variables';
1111
@import 'mixins/hover';
1212
@import 'mixins/text-truncation';
13+
@import 'mixins/shadow-dom/component';
1314

1415
:host {
16+
@include ix-component;
17+
1518
display: flex;
1619
align-items: center;
1720
justify-content: space-between;
@@ -22,23 +25,6 @@
2225
background-color: var(--theme-color-ghost);
2326
color: var(--theme-chip-primary-outline--color);
2427

25-
@include hover {
26-
background-color: var(--theme-color-ghost-primary--hover);
27-
border-color: var(--theme-chip-primary-outline--border-color--hover);
28-
color: var(--theme-chip-primary-outline--color--hover);
29-
}
30-
31-
@include active {
32-
background-color: var(--theme-color-ghost-primary--active);
33-
border-color: var(--theme-chip-primary-outline--border-color--active);
34-
color: var(--theme-chip-primary-outline--color--active);
35-
}
36-
37-
@include focus-visible {
38-
outline: var(--theme-color-focus-bdr) solid var(--theme-focus--border-thickness);
39-
outline-offset: -0.125rem;
40-
}
41-
4228
.slot-container {
4329
@include ellipsis;
4430

@@ -49,17 +35,29 @@
4935
}
5036
}
5137

52-
.btn-oval {
38+
ix-icon-button {
5339
height: $large-space;
54-
width: $large-space;
55-
min-width: $large-space;
5640
margin-left: $tiny-space;
57-
padding: 0;
58-
vertical-align: top;
5941

6042
@include focus-visible {
6143
outline: none;
62-
border-color: #199fff;
6344
}
6445
}
6546
}
47+
48+
@include host-hover {
49+
background-color: var(--theme-color-ghost-primary--hover);
50+
border-color: var(--theme-chip-primary-outline--border-color--hover);
51+
color: var(--theme-chip-primary-outline--color--hover);
52+
}
53+
54+
@include host-active {
55+
background-color: var(--theme-color-ghost-primary--active);
56+
border-color: var(--theme-chip-primary-outline--border-color--active);
57+
color: var(--theme-chip-primary-outline--color--active);
58+
}
59+
60+
@include host-focus-visible {
61+
outline: var(--theme-color-focus-bdr) solid var(--theme-focus--border-thickness);
62+
outline-offset: -0.125rem;
63+
}

packages/core/src/components/filter-chip/filter-chip.tsx

+9-6
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ import {
2020
@Component({
2121
tag: 'ix-filter-chip',
2222
styleUrl: 'filter-chip.scss',
23-
scoped: true,
23+
shadow: true,
2424
})
2525
export class FilterChip {
2626
@Element() el: HTMLIxFilterChipElement;
@@ -47,13 +47,16 @@ export class FilterChip {
4747
<div class="slot-container">
4848
<slot></slot>
4949
</div>
50-
<button
50+
<ix-icon-button
51+
ghost
52+
oval
53+
icon="close-small"
54+
size="16"
55+
tabindex={this.disabled ? -1 : 0}
56+
variant="Primary"
5157
disabled={this.disabled}
52-
class="btn btn-invisible-primary btn-oval"
5358
onClick={(e) => this.onCloseClick(e)}
54-
>
55-
<ix-icon name="close-small" size="16"></ix-icon>
56-
</button>
59+
></ix-icon-button>
5760
</Host>
5861
);
5962
}

0 commit comments

Comments
 (0)