Skip to content

Commit d9c8207

Browse files
committed
badge slot + fix use of text-overflow ellipsis
1 parent 0d0e2c6 commit d9c8207

File tree

2 files changed

+27
-8
lines changed

2 files changed

+27
-8
lines changed

packages/uui-menu-item/lib/uui-menu-item.element.ts

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ import { UUIMenuItemEvent } from './UUIMenuItemEvent';
2020
* @slot default - nested menu items go here
2121
* @slot icon - icon area
2222
* @slot actions - actions area
23-
* @slot label-slot - area to place the label (name: label)
23+
* @slot label - area to place the label
2424
*/
2525
@defineElement('uui-menu-item')
2626
export class UUIMenuItemElement extends SelectOnlyMixin(
@@ -30,17 +30,14 @@ export class UUIMenuItemElement extends SelectOnlyMixin(
3030
css`
3131
:host {
3232
display: block;
33-
background-color: var(--uui-interface-surface);
34-
/** consider transparent. */
3533
--uui-menu-item-child-indent: calc(var(--uui-menu-item-indent, 0) + 1);
3634
3735
user-select: none;
3836
}
3937
4038
#menu-item {
4139
position: relative;
42-
display: flex;
43-
align-items: stretch;
40+
4441
padding-left: calc(var(--uui-menu-item-indent, 0) * var(--uui-size-4));
4542
4643
display: grid;
@@ -74,7 +71,6 @@ export class UUIMenuItemElement extends SelectOnlyMixin(
7471
grid-column-start: 2;
7572
white-space: nowrap;
7673
overflow: hidden;
77-
text-overflow: ellipsis;
7874
7975
display: inline-flex;
8076
align-items: center;
@@ -83,6 +79,12 @@ export class UUIMenuItemElement extends SelectOnlyMixin(
8379
min-height: var(--uui-size-12);
8480
z-index: 1;
8581
}
82+
83+
#label-button .label {
84+
white-space: nowrap;
85+
overflow: hidden;
86+
text-overflow: ellipsis;
87+
}
8688
span#label-button {
8789
pointer-events: none; /* avoid hovering state on this. */
8890
}
@@ -134,6 +136,14 @@ export class UUIMenuItemElement extends SelectOnlyMixin(
134136
margin-right: var(--uui-size-2);
135137
}
136138
139+
#badge {
140+
font-size: 12px;
141+
--uui-badge-position: relative;
142+
--uui-badge-position: auto;
143+
display: block;
144+
margin-left: 6px;
145+
}
146+
137147
:host([disabled]) {
138148
color: var(--uui-interface-surface-contrast-disabled);
139149
}
@@ -285,7 +295,8 @@ export class UUIMenuItemElement extends SelectOnlyMixin(
285295
id="icon"
286296
style=${this.iconSlotHasContent ? '' : 'display: none;'}
287297
@slotchange=${this.iconSlotChanged}></slot>
288-
${this.renderLabel()}`;
298+
${this.renderLabel()}
299+
<slot name="badge" id="badge"> </slot>`;
289300
}
290301

291302
private _renderLabelAsAnchor() {

packages/uui-menu-item/lib/uui-menu-item.story.ts

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,21 +53,26 @@ const MenuItems = [
5353
title: 'Menu Item 1',
5454
icon: 'document',
5555
loading: false,
56+
badge: false,
5657
},
5758
{
5859
title: 'Menu Item 2',
5960
icon: 'picture',
6061
loading: true,
62+
badge: false,
6163
},
6264
{
6365
title: 'Menu Item 3',
6466
icon: 'info',
6567
loading: false,
68+
badge: true,
6669
},
6770
{
68-
title: 'Menu Item 4',
71+
title:
72+
'Menu Item 4 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9',
6973
icon: 'document',
7074
loading: false,
75+
badge: false,
7176
},
7277
];
7378

@@ -232,6 +237,9 @@ export const WithActions = () =>
232237
menuItem =>
233238
html`
234239
<uui-menu-item label="${menuItem.title}">
240+
${menuItem.badge
241+
? html`<uui-badge slot="badge" look="warning">!</uui-badge>`
242+
: ''}
235243
<uui-action-bar slot="actions">
236244
<uui-button label="Open actions menu"
237245
><uui-symbol-more></uui-symbol-more

0 commit comments

Comments
 (0)