Skip to content

Commit a0fbb03

Browse files
committed
refactor(tile): update styles for custom adorner indicators
1 parent 1a1f174 commit a0fbb03

File tree

5 files changed

+51
-24
lines changed

5 files changed

+51
-24
lines changed

src/components/resize-container/themes/resize-container.base.scss

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -28,14 +28,6 @@
2828
// }
2929
}
3030

31-
[part='adorner-indicator'] {
32-
width: 11px;
33-
height: 11px;
34-
border-radius: 50%;
35-
background-color: grey;
36-
z-index: 11111;
37-
}
38-
3931
:host {
4032
display: contents;
4133
}

src/components/resize-container/themes/shared/resize-container.common.scss

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,9 @@ $theme: $material;
2020
[part='trigger-side'],
2121
[part='trigger'],
2222
[part='trigger-bottom'] {
23-
&::after {
24-
background: var-get($theme, 'resize-indicator');
25-
}
23+
width: var(--_size);
24+
aspect-ratio: 1;
25+
border-radius: 50%;
26+
z-index: 11111;
27+
background-color: var-get($theme, 'resize-indicator');
2628
}

src/components/tile-manager/themes/shared/tile/tile.common.scss

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,8 @@ $theme: $material;
3737
}
3838
}
3939

40-
[part~='base'][part~='resizing']{
41-
opacity: .3;
40+
[part~='base'][part~='resizing'] {
41+
opacity: 0.3;
4242
}
4343

4444
[part='content-container'] {
@@ -75,3 +75,19 @@ $theme: $material;
7575
igc-divider {
7676
--color: #{var-get($theme, 'divider-color')};
7777
}
78+
79+
igc-resize {
80+
--resize-indicator: #{var-get($theme, 'hover-border-color')};
81+
}
82+
83+
igc-resize[part~='side-adorner']::part(trigger-side) {
84+
background-color: transparent;
85+
}
86+
87+
igc-resize[part~='corner-adorner']::part(trigger) {
88+
background-color: transparent;
89+
}
90+
91+
igc-resize[part~='bottom-adorner']::part(trigger-bottom) {
92+
background-color: transparent;
93+
}

src/components/tile-manager/themes/tile.base.scss

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -124,11 +124,3 @@
124124
// padding-block: var(--pad-block);
125125
// padding-inline: var(--pad-inline);
126126
// }
127-
128-
[part='adorner-indicator'] {
129-
width: 11px;
130-
height: 11px;
131-
border-radius: 50%;
132-
background-color: grey;
133-
z-index: 11111;
134-
}

src/components/tile-manager/tile.ts

Lines changed: 28 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,8 @@ type IgcTileChangeState = {
4343
state: boolean;
4444
};
4545

46+
type AdornerType = 'side' | 'corner' | 'bottom';
47+
4648
// REVIEW: Decide whether to re-emit the events from the manager of leave them up to bubble naturally
4749
export interface IgcTileComponentEventMap {
4850
igcTileFullscreen: CustomEvent<IgcTileChangeState>;
@@ -605,9 +607,27 @@ export default class IgcTileComponent extends EventEmitterMixin<
605607
`;
606608
}
607609

608-
private _renderAdornerSlot(name: 'side' | 'corner' | 'bottom') {
610+
protected override createRenderRoot() {
611+
const root = super.createRenderRoot();
612+
root.addEventListener('slotchange', () => this.requestUpdate());
613+
return root;
614+
}
615+
616+
private _customAdorners = new Map<string, boolean>(
617+
Object.entries({
618+
side: false,
619+
corner: false,
620+
bottom: false,
621+
})
622+
);
623+
624+
private _renderAdornerSlot(name: AdornerType) {
609625
return html`
610-
<slot name="${name}-adorner" slot="${name}-adorner">
626+
<slot
627+
@slotchange=${() => this._customAdorners.set(name, true)}
628+
name="${name}-adorner"
629+
slot="${name}-adorner"
630+
>
611631
<div part="adorner-indicator"></div>
612632
</slot>
613633
`;
@@ -616,7 +636,12 @@ export default class IgcTileComponent extends EventEmitterMixin<
616636
protected _renderResizeContainer() {
617637
return html`
618638
<igc-resize
619-
part="resize"
639+
part=${partNameMap({
640+
resize: true,
641+
'side-adorner': this._customAdorners.get('side')!,
642+
'corner-adorner': this._customAdorners.get('corner')!,
643+
'bottom-adorner': this._customAdorners.get('bottom')!,
644+
})}
620645
mode="deferred"
621646
?active=${this._resizeMode === 'always'}
622647
.ghostFactory=${createTileGhost}

0 commit comments

Comments
 (0)