Skip to content

Commit 5092de0

Browse files
refactor(menu,list): clean up list-menu tokens and remove list-item variant components
In this PR: - Remove unnecessary list-item variants - `md-list-item-icon` -> md-icon[data-variant=icon] - `md-list-item-video` -> video[data-variant=video] - `md-list-item-avatar` -> :is(img,div)[data-variant=avatar] - `md-list-item-avatar` -> img[data-variant=avatar] - also upgrade menu tokens to maximize token sharing in list-item and menu-item - testing menu and list for unused & undefined tokens - fixed some small things in list to align with spec more PiperOrigin-RevId: 513932810
1 parent f7649ad commit 5092de0

33 files changed

+490
-824
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,8 @@ Elevation | ✅ | ❌ | ❌
4444
Focus ring | ✅ | ❌ | ❌
4545
Field | ✅ | ✅ | 🟡
4646
Icon | ✅ | ✅ | ❌
47-
List | ✅ | | 🟡
48-
Menu | ✅ | | 🟡
47+
List | ✅ | 🟡 | 🟡
48+
Menu | ✅ | 🟡 | 🟡
4949
Progress indicator (circular) | ❌ | ❌ | ❌
5050
Progress indicator (linear) | ❌ | ❌ | ❌
5151
Radio button | ✅ | ✅ | ❌

list/lib/_list.scss

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
// Selector '.md3-*' should only be used in this project.
88

99
// go/keep-sorted start
10+
@use 'sass:list';
1011
@use 'sass:map';
1112
@use 'sass:string';
1213
// go/keep-sorted end
@@ -18,9 +19,9 @@
1819
// go/keep-sorted end
1920

2021
@mixin theme($tokens) {
21-
$reference: resolve-tokens(tokens.md-comp-list-values());
22-
$tokens: resolve-tokens($tokens);
22+
$reference: tokens.md-comp-list-values();
2323
$tokens: theme.validate-theme($reference, $tokens);
24+
$tokens: resolve-tokens($tokens);
2425
$tokens: theme.create-theme-vars($tokens, list);
2526

2627
@include theme.emit-theme-vars($tokens);
@@ -65,16 +66,25 @@
6566
container-color,
6667
map.get($tokens, list-item-container-color)
6768
);
68-
$list-item-tokens: list-item.resolve-tokens($tokens);
69-
$list-tokens: ();
69+
$list-tokens: remove-unused-tokens($tokens);
70+
71+
@return $list-tokens;
72+
}
7073

71-
@each $token, $value in $tokens {
72-
$is-unique: not map.has-key($list-item-tokens, $token);
74+
// removes unused tokens
75+
@function remove-unused-tokens($tokens) {
76+
$unused-tokens: ();
77+
@each $token in map-keys($tokens) {
78+
$index: string.index($token, 'list-item');
7379

74-
@if $is-unique {
75-
$list-tokens: map.set($list-tokens, $token, $value);
80+
@if $index {
81+
$unused-tokens: list.append($unused-tokens, $token);
7682
}
7783
}
7884

79-
@return $list-tokens;
85+
@each $token in $unused-tokens {
86+
$tokens: map.remove($tokens, $token);
87+
}
88+
89+
@return $tokens;
8090
}

list/lib/avatar/_list-item-avatar.scss

Lines changed: 0 additions & 40 deletions
This file was deleted.

list/lib/avatar/list-item-avatar-styles.scss

Lines changed: 0 additions & 10 deletions
This file was deleted.

list/lib/avatar/list-item-avatar.ts

Lines changed: 0 additions & 36 deletions
This file was deleted.

list/lib/icon/_list-item-icon.scss

Lines changed: 0 additions & 55 deletions
This file was deleted.

list/lib/icon/list-item-icon-styles.scss

Lines changed: 0 additions & 10 deletions
This file was deleted.

list/lib/icon/list-item-icon.ts

Lines changed: 0 additions & 18 deletions
This file was deleted.

list/lib/image/_list-item-image.scss

Lines changed: 0 additions & 63 deletions
This file was deleted.

list/lib/image/list-item-image-styles.scss

Lines changed: 0 additions & 10 deletions
This file was deleted.

0 commit comments

Comments
 (0)