@material/web 2.4.2-nightly.2fe7e22.0 → 2.4.2-nightly.3758f46.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (198) hide show
  1. package/button/internal/button.d.ts +0 -4
  2. package/button/internal/button.js.map +1 -1
  3. package/checkbox/internal/checkbox.d.ts +2 -2
  4. package/checkbox/internal/checkbox.js.map +1 -1
  5. package/chips/internal/chip.d.ts +2 -0
  6. package/icon/internal/icon.d.ts +1 -1
  7. package/icon/internal/icon.js +1 -1
  8. package/icon/internal/icon.js.map +1 -1
  9. package/iconbutton/internal/icon-button.d.ts +0 -4
  10. package/iconbutton/internal/icon-button.js.map +1 -1
  11. package/internal/aria/aria.d.ts +1 -1
  12. package/internal/events/dispatch-hooks.js +31 -35
  13. package/internal/events/dispatch-hooks.js.map +1 -1
  14. package/labs/behaviors/form-associated.d.ts +0 -22
  15. package/labs/behaviors/form-associated.js +0 -11
  16. package/labs/behaviors/form-associated.js.map +1 -1
  17. package/labs/gb/components/button/_button-tokens.scss +30 -30
  18. package/labs/gb/components/button/button.css +1 -1
  19. package/labs/gb/components/button/button.css.map +1 -1
  20. package/labs/gb/components/button/button.cssresult.js +1 -1
  21. package/labs/gb/components/button/button.cssresult.js.map +1 -1
  22. package/labs/gb/components/button/button.d.ts +1 -16
  23. package/labs/gb/components/button/button.js +10 -33
  24. package/labs/gb/components/button/button.js.map +1 -1
  25. package/labs/gb/components/button/button.scss +25 -25
  26. package/labs/gb/components/button/md-button.d.ts +1 -1
  27. package/labs/gb/components/button/md-button.js +9 -9
  28. package/labs/gb/components/button/md-button.js.map +1 -1
  29. package/labs/gb/components/card/card.d.ts +1 -11
  30. package/labs/gb/components/card/card.js +6 -13
  31. package/labs/gb/components/card/card.js.map +1 -1
  32. package/labs/gb/components/card/md-card.js +6 -6
  33. package/labs/gb/components/card/md-card.js.map +1 -1
  34. package/labs/gb/components/checkbox/checkbox.css +1 -1
  35. package/labs/gb/components/checkbox/checkbox.css.map +1 -1
  36. package/labs/gb/components/checkbox/checkbox.cssresult.js +1 -1
  37. package/labs/gb/components/checkbox/checkbox.cssresult.js.map +1 -1
  38. package/labs/gb/components/checkbox/checkbox.d.ts +1 -16
  39. package/labs/gb/components/checkbox/checkbox.js +8 -31
  40. package/labs/gb/components/checkbox/checkbox.js.map +1 -1
  41. package/labs/gb/components/checkbox/checkbox.scss +13 -13
  42. package/labs/gb/components/checkbox/md-checkbox.d.ts +4 -4
  43. package/labs/gb/components/checkbox/md-checkbox.js +10 -10
  44. package/labs/gb/components/checkbox/md-checkbox.js.map +1 -1
  45. package/labs/gb/components/divider/divider.d.ts +1 -11
  46. package/labs/gb/components/divider/divider.js +4 -11
  47. package/labs/gb/components/divider/divider.js.map +1 -1
  48. package/labs/gb/components/fab/fab.d.ts +1 -16
  49. package/labs/gb/components/fab/fab.js +8 -31
  50. package/labs/gb/components/fab/fab.js.map +1 -1
  51. package/labs/gb/components/fab/md-fab.js +4 -4
  52. package/labs/gb/components/fab/md-fab.js.map +1 -1
  53. package/labs/gb/components/focus/focus-ring.js +1 -1
  54. package/labs/gb/components/focus/focus-ring.js.map +1 -1
  55. package/labs/gb/components/iconbutton/_icon-button-tokens.scss +202 -0
  56. package/labs/gb/components/iconbutton/icon-button.css +4 -0
  57. package/labs/gb/components/iconbutton/icon-button.css.map +1 -0
  58. package/labs/gb/components/iconbutton/icon-button.cssresult.d.ts +3 -0
  59. package/labs/gb/components/iconbutton/icon-button.cssresult.js +14 -0
  60. package/labs/gb/components/iconbutton/icon-button.cssresult.js.map +1 -0
  61. package/labs/gb/components/iconbutton/icon-button.d.ts +97 -0
  62. package/labs/gb/components/iconbutton/icon-button.js +122 -0
  63. package/labs/gb/components/iconbutton/icon-button.js.map +1 -0
  64. package/labs/gb/components/iconbutton/icon-button.scss +153 -0
  65. package/labs/gb/components/iconbutton/md-icon-button.d.ts +73 -0
  66. package/labs/gb/components/iconbutton/md-icon-button.js +176 -0
  67. package/labs/gb/components/iconbutton/md-icon-button.js.map +1 -0
  68. package/labs/gb/components/list/_list-tokens.scss +102 -0
  69. package/labs/gb/components/list/list.css +4 -0
  70. package/labs/gb/components/list/list.css.map +1 -0
  71. package/labs/gb/components/list/list.cssresult.d.ts +3 -0
  72. package/labs/gb/components/list/list.cssresult.js +14 -0
  73. package/labs/gb/components/list/list.cssresult.js.map +1 -0
  74. package/labs/gb/components/list/list.d.ts +103 -0
  75. package/labs/gb/components/list/list.js +109 -0
  76. package/labs/gb/components/list/list.js.map +1 -0
  77. package/labs/gb/components/list/list.scss +212 -0
  78. package/labs/gb/components/list/md-list-item.d.ts +44 -0
  79. package/labs/gb/components/list/md-list-item.js +122 -0
  80. package/labs/gb/components/list/md-list-item.js.map +1 -0
  81. package/labs/gb/components/list/md-list.d.ts +26 -0
  82. package/labs/gb/components/list/md-list.js +51 -0
  83. package/labs/gb/components/list/md-list.js.map +1 -0
  84. package/labs/gb/components/menu/_menu-tokens.scss +128 -0
  85. package/labs/gb/components/menu/md-menu-group.d.ts +26 -0
  86. package/labs/gb/components/menu/md-menu-group.js +65 -0
  87. package/labs/gb/components/menu/md-menu-group.js.map +1 -0
  88. package/labs/gb/components/menu/md-menu-item.d.ts +30 -0
  89. package/labs/gb/components/menu/md-menu-item.js +165 -0
  90. package/labs/gb/components/menu/md-menu-item.js.map +1 -0
  91. package/labs/gb/components/menu/md-menu.d.ts +28 -0
  92. package/labs/gb/components/menu/md-menu.js +141 -0
  93. package/labs/gb/components/menu/md-menu.js.map +1 -0
  94. package/labs/gb/components/menu/menu.css +4 -0
  95. package/labs/gb/components/menu/menu.css.map +1 -0
  96. package/labs/gb/components/menu/menu.cssresult.d.ts +3 -0
  97. package/labs/gb/components/menu/menu.cssresult.js +14 -0
  98. package/labs/gb/components/menu/menu.cssresult.js.map +1 -0
  99. package/labs/gb/components/menu/menu.d.ts +117 -0
  100. package/labs/gb/components/menu/menu.js +107 -0
  101. package/labs/gb/components/menu/menu.js.map +1 -0
  102. package/labs/gb/components/menu/menu.scss +171 -0
  103. package/labs/gb/components/radio/md-radio.d.ts +4 -4
  104. package/labs/gb/components/radio/md-radio.js +11 -11
  105. package/labs/gb/components/radio/md-radio.js.map +1 -1
  106. package/labs/gb/components/radio/radio.css +1 -1
  107. package/labs/gb/components/radio/radio.css.map +1 -1
  108. package/labs/gb/components/radio/radio.cssresult.js +1 -1
  109. package/labs/gb/components/radio/radio.cssresult.js.map +1 -1
  110. package/labs/gb/components/radio/radio.d.ts +1 -14
  111. package/labs/gb/components/radio/radio.js +8 -23
  112. package/labs/gb/components/radio/radio.js.map +1 -1
  113. package/labs/gb/components/radio/radio.scss +4 -5
  114. package/labs/gb/components/ripple/ripple.d.ts +1 -10
  115. package/labs/gb/components/ripple/ripple.js +28 -32
  116. package/labs/gb/components/ripple/ripple.js.map +1 -1
  117. package/labs/gb/components/shared/directives.d.ts +93 -0
  118. package/labs/gb/components/shared/directives.js +111 -0
  119. package/labs/gb/components/shared/directives.js.map +1 -0
  120. package/labs/gb/components/shared/has-slotted.d.ts +10 -0
  121. package/labs/gb/components/shared/has-slotted.js +19 -0
  122. package/labs/gb/components/shared/has-slotted.js.map +1 -0
  123. package/labs/gb/components/shared/pseudo-classes.d.ts +7 -0
  124. package/labs/gb/components/shared/pseudo-classes.js +9 -0
  125. package/labs/gb/components/shared/pseudo-classes.js.map +1 -1
  126. package/labs/gb/components/splitbutton/_split-button-tokens.scss +135 -0
  127. package/labs/gb/components/splitbutton/md-split-button.d.ts +26 -0
  128. package/labs/gb/components/splitbutton/md-split-button.js +119 -0
  129. package/labs/gb/components/splitbutton/md-split-button.js.map +1 -0
  130. package/labs/gb/components/splitbutton/split-button.css +4 -0
  131. package/labs/gb/components/splitbutton/split-button.css.map +1 -0
  132. package/labs/gb/components/splitbutton/split-button.cssresult.d.ts +3 -0
  133. package/labs/gb/components/splitbutton/split-button.cssresult.js +14 -0
  134. package/labs/gb/components/splitbutton/split-button.cssresult.js.map +1 -0
  135. package/labs/gb/components/splitbutton/split-button.d.ts +47 -0
  136. package/labs/gb/components/splitbutton/split-button.js +46 -0
  137. package/labs/gb/components/splitbutton/split-button.js.map +1 -0
  138. package/labs/gb/components/splitbutton/split-button.scss +164 -0
  139. package/labs/gb/components/switch/_switch-tokens.scss +56 -0
  140. package/labs/gb/components/switch/md-switch.d.ts +66 -0
  141. package/labs/gb/components/switch/md-switch.js +162 -0
  142. package/labs/gb/components/switch/md-switch.js.map +1 -0
  143. package/labs/gb/components/switch/switch.css +4 -0
  144. package/labs/gb/components/switch/switch.css.map +1 -0
  145. package/labs/gb/components/switch/switch.cssresult.d.ts +3 -0
  146. package/labs/gb/components/switch/switch.cssresult.js +14 -0
  147. package/labs/gb/components/switch/switch.cssresult.js.map +1 -0
  148. package/labs/gb/components/switch/switch.d.ts +54 -0
  149. package/labs/gb/components/switch/switch.js +85 -0
  150. package/labs/gb/components/switch/switch.js.map +1 -0
  151. package/labs/gb/components/switch/switch.scss +109 -0
  152. package/labs/gb/styles/icon/md-icon.css +1 -1
  153. package/labs/gb/styles/icon/md-icon.css.map +1 -1
  154. package/labs/gb/styles/icon/md-icon.cssresult.js +1 -1
  155. package/labs/gb/styles/icon/md-icon.cssresult.js.map +1 -1
  156. package/labs/gb/styles/icon/md-icon.d.ts +20 -0
  157. package/labs/gb/styles/icon/md-icon.js +24 -0
  158. package/labs/gb/styles/icon/md-icon.js.map +1 -0
  159. package/labs/gb/styles/icon/md-icon.scss +2 -1
  160. package/labs/gb/styles/m3.css +5 -2
  161. package/labs/gb/styles/m3.css.map +1 -1
  162. package/labs/gb/styles/m3.cssresult.js +5 -2
  163. package/labs/gb/styles/m3.cssresult.js.map +1 -1
  164. package/labs/gb/styles/m3.scss +1 -0
  165. package/labs/gb/styles/space/md-space-tokens.css +4 -0
  166. package/labs/gb/styles/space/md-space-tokens.css.map +1 -0
  167. package/labs/gb/styles/space/md-space-tokens.cssresult.d.ts +3 -0
  168. package/labs/gb/styles/space/md-space-tokens.cssresult.js +14 -0
  169. package/labs/gb/styles/space/md-space-tokens.cssresult.js.map +1 -0
  170. package/labs/gb/styles/space/md-space-tokens.scss +28 -0
  171. package/labs/gb/styles/tailwind.css +4 -0
  172. package/labs/gb/styles/tailwind.css.map +1 -0
  173. package/labs/gb/styles/tailwind.cssresult.d.ts +3 -0
  174. package/labs/gb/styles/tailwind.cssresult.js +14 -0
  175. package/labs/gb/styles/tailwind.cssresult.js.map +1 -0
  176. package/labs/gb/styles/tailwind.scss +250 -0
  177. package/labs/gb/styles/typography/internal/_typography-tokens.scss +85 -16
  178. package/labs/gb/styles/typography/md-typography-tokens.css +1 -1
  179. package/labs/gb/styles/typography/md-typography-tokens.css.map +1 -1
  180. package/labs/gb/styles/typography/md-typography-tokens.cssresult.js +1 -1
  181. package/labs/gb/styles/typography/md-typography-tokens.cssresult.js.map +1 -1
  182. package/list/internal/listitem/list-item.d.ts +2 -0
  183. package/menu/internal/menuitem/menu-item.d.ts +2 -0
  184. package/package.json +7 -3
  185. package/radio/internal/radio.d.ts +0 -2
  186. package/radio/internal/radio.js.map +1 -1
  187. package/select/internal/select.d.ts +2 -2
  188. package/select/internal/select.js.map +1 -1
  189. package/select/internal/selectoption/select-option.d.ts +2 -0
  190. package/slider/internal/slider.d.ts +0 -2
  191. package/slider/internal/slider.js.map +1 -1
  192. package/switch/internal/_switch.scss +1 -0
  193. package/switch/internal/switch-styles.css +1 -1
  194. package/switch/internal/switch-styles.css.map +1 -1
  195. package/switch/internal/switch-styles.cssresult.js +1 -1
  196. package/switch/internal/switch-styles.cssresult.js.map +1 -1
  197. package/switch/internal/switch.d.ts +0 -2
  198. package/switch/internal/switch.js.map +1 -1
@@ -0,0 +1,153 @@
1
+ /*!
2
+ * Copyright 2026 Google LLC
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */
5
+
6
+ // go/keep-sorted start by_regex='(.+) prefix_order=sass:
7
+ @use 'icon-button-tokens';
8
+ // go/keep-sorted end
9
+
10
+ @layer md.sys, md.comp.ripple, md.comp.focus-ring;
11
+ @layer md.comp.icon-btn {
12
+ .icon-btn {
13
+ & {
14
+ @include icon-button-tokens.root;
15
+ }
16
+ &:is(.icon-btn-selected, [aria-pressed='true']) {
17
+ @include icon-button-tokens.selected;
18
+ }
19
+ &.icon-btn-filled {
20
+ @include icon-button-tokens.filled;
21
+ &:where(.icon-btn-unselected, [aria-pressed='false']) {
22
+ @include icon-button-tokens.filled-unselected;
23
+ }
24
+ &:where(.icon-btn-selected, [aria-pressed='true']) {
25
+ @include icon-button-tokens.filled-selected;
26
+ }
27
+ }
28
+ &.icon-btn-tonal {
29
+ @include icon-button-tokens.tonal;
30
+ &:where(.icon-btn-selected, [aria-pressed='true']) {
31
+ @include icon-button-tokens.tonal-selected;
32
+ }
33
+ }
34
+ &.icon-btn-outlined {
35
+ @include icon-button-tokens.outlined;
36
+ &:where(.icon-btn-selected, [aria-pressed='true']) {
37
+ @include icon-button-tokens.outlined-selected;
38
+ }
39
+ }
40
+ &.icon-btn-standard {
41
+ @include icon-button-tokens.standard;
42
+ &:where(.icon-btn-selected, [aria-pressed='true']) {
43
+ @include icon-button-tokens.standard-selected;
44
+ }
45
+ }
46
+ &.icon-btn-xs {
47
+ @include icon-button-tokens.xs;
48
+ &:where(.icon-btn-narrow) {
49
+ @include icon-button-tokens.xs-narrow;
50
+ }
51
+ &:where(.icon-btn-wide) {
52
+ @include icon-button-tokens.xs-wide;
53
+ }
54
+ }
55
+ &.icon-btn-sm {
56
+ @include icon-button-tokens.sm;
57
+ &:where(.icon-btn-narrow) {
58
+ @include icon-button-tokens.sm-narrow;
59
+ }
60
+ &:where(.icon-btn-wide) {
61
+ @include icon-button-tokens.sm-wide;
62
+ }
63
+ }
64
+ &.icon-btn-md {
65
+ @include icon-button-tokens.md;
66
+ &:where(.icon-btn-narrow) {
67
+ @include icon-button-tokens.md-narrow;
68
+ }
69
+ &:where(.icon-btn-wide) {
70
+ @include icon-button-tokens.md-wide;
71
+ }
72
+ &:where(.icon-btn-selected, [aria-pressed='true']) {
73
+ @include icon-button-tokens.md-selected;
74
+ }
75
+ }
76
+ &.icon-btn-lg {
77
+ @include icon-button-tokens.lg;
78
+ &:where(.icon-btn-narrow) {
79
+ @include icon-button-tokens.lg-narrow;
80
+ }
81
+ &:where(.icon-btn-wide) {
82
+ @include icon-button-tokens.lg-wide;
83
+ }
84
+ &:where(.icon-btn-selected, [aria-pressed='true']) {
85
+ @include icon-button-tokens.lg-selected;
86
+ }
87
+ }
88
+ &.icon-btn-xl {
89
+ @include icon-button-tokens.xl;
90
+ &:where(.icon-btn-narrow) {
91
+ @include icon-button-tokens.xl-narrow;
92
+ }
93
+ &:where(.icon-btn-wide) {
94
+ @include icon-button-tokens.xl-wide;
95
+ }
96
+ &:where(.icon-btn-selected, [aria-pressed='true']) {
97
+ @include icon-button-tokens.xl-selected;
98
+ }
99
+ }
100
+ &.icon-btn-square {
101
+ @include icon-button-tokens.square;
102
+ &:where(.icon-btn-md) {
103
+ @include icon-button-tokens.square-md;
104
+ }
105
+ &:where(.icon-btn-lg) {
106
+ @include icon-button-tokens.square-lg;
107
+ }
108
+ &:where(.icon-btn-xl) {
109
+ @include icon-button-tokens.square-xl;
110
+ }
111
+ &:where(.icon-btn-selected, [aria-pressed='true']) {
112
+ @include icon-button-tokens.square-selected;
113
+ }
114
+ }
115
+ &:is(:active, .active):where(:not(:disabled, .disabled)) {
116
+ @include icon-button-tokens.pressed;
117
+ &:where(.icon-btn-md) {
118
+ @include icon-button-tokens.pressed-md;
119
+ }
120
+ &:where(.icon-btn-lg) {
121
+ @include icon-button-tokens.pressed-lg;
122
+ }
123
+ &:where(.icon-btn-xl) {
124
+ @include icon-button-tokens.pressed-xl;
125
+ }
126
+ }
127
+ &:is(:disabled, .disabled) {
128
+ @include icon-button-tokens.disabled;
129
+ }
130
+
131
+ & {
132
+ display: inline-grid;
133
+ place-items: center;
134
+ background-color: var(--container-color);
135
+ border: var(--outline-width) solid var(--outline-color);
136
+ border-radius: var(--container-shape);
137
+ height: var(--container-height);
138
+ color: var(--icon-color);
139
+ transition:
140
+ border-radius 350ms cubic-bezier(0.42, 1.67, 0.21, 0.9),
141
+ var(--ripple-transition);
142
+ --md-icon-size: var(--icon-size);
143
+ }
144
+
145
+ &:not(.icon-btn-narrow, .icon-btn-wide) {
146
+ aspect-ratio: 1;
147
+ }
148
+
149
+ &:is(.icon-btn-narrow, .icon-btn-wide) {
150
+ padding-inline: var(--leading-space) var(--trailing-space);
151
+ }
152
+ }
153
+ }
@@ -0,0 +1,73 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { CSSResultOrNative, LitElement } from 'lit';
7
+ import type { IconButtonColor, IconButtonSize, IconButtonWidth } from './icon-button.js';
8
+ declare global {
9
+ interface HTMLElementTagNameMap {
10
+ /** A Material Design icon button component. */
11
+ 'md-icon-button': IconButton;
12
+ }
13
+ }
14
+ declare const baseClass: import("@material/web/labs/behaviors/mixin.js").MixinReturn<import("@material/web/labs/behaviors/mixin.js").MixinReturn<import("@material/web/labs/behaviors/mixin.js").MixinReturn<(abstract new (...args: any[]) => import("../../../behaviors/element-internals.js").WithElementInternals) & typeof LitElement & import("../../../behaviors/form-associated.js").FormAssociatedConstructor, import("../../../behaviors/form-associated.js").FormAssociated>, import("../../../behaviors/form-submitter.js").FormSubmitter>>;
15
+ /**
16
+ * A Material Design icon button component.
17
+ */
18
+ export declare class IconButton extends baseClass {
19
+ /** @nocollapse */
20
+ static shadowRootOptions: ShadowRootInit;
21
+ static styles: CSSResultOrNative[];
22
+ /**
23
+ * The color of the button.
24
+ */
25
+ color: IconButtonColor;
26
+ /**
27
+ * The size of the button.
28
+ */
29
+ size: IconButtonSize;
30
+ /**
31
+ * Changes the shape of the button to be square.
32
+ */
33
+ square: boolean;
34
+ /**
35
+ * Changes the width of the button.
36
+ */
37
+ width: IconButtonWidth;
38
+ /**
39
+ * A string indicating the behavior of the button.
40
+ *
41
+ * - "submit" (default): A button that submits its associated form.
42
+ * - "reset": A button that resets its associated form.
43
+ * - "button": A normal button.
44
+ * - "toggle": A toggle button using the `selected` property.
45
+ * - "link": An anchor link (`<a>`). Type is always "link" when `href` is set.
46
+ */
47
+ get type(): string;
48
+ set type(type: string);
49
+ /**
50
+ * Whether or not the button is "soft-disabled" (disabled but still
51
+ * focusable).
52
+ */
53
+ softDisabled: boolean;
54
+ /**
55
+ * Whether or not the button is selected, when `type="toggle"`.
56
+ */
57
+ selected: boolean;
58
+ /**
59
+ * The URL that the link button points to.
60
+ */
61
+ href: string;
62
+ /**
63
+ * The filename to use when downloading the linked resource.
64
+ */
65
+ download: string;
66
+ /**
67
+ * Where to display the linked `href` URL for a link button.
68
+ */
69
+ target: '_blank' | '_parent' | '_self' | '_top' | '';
70
+ protected render(): import("lit-html").TemplateResult<1>;
71
+ private handleChange;
72
+ }
73
+ export {};
@@ -0,0 +1,176 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { __decorate } from "tslib";
7
+ import { css, html, LitElement, nothing } from 'lit';
8
+ import { customElement, property } from 'lit/decorators.js';
9
+ import { mixinDelegatesAria } from '../../../../internal/aria/delegate.js';
10
+ import { redispatchEvent } from '../../../../internal/events/redispatch-event.js';
11
+ import { mixinElementInternals } from '../../../behaviors/element-internals.js';
12
+ import { mixinFormAssociated } from '../../../behaviors/form-associated.js';
13
+ import { mixinFormSubmitter } from '../../../behaviors/form-submitter.js';
14
+ import focusRingStyles from '../focus/focus-ring.cssresult.js';
15
+ import rippleStyles from '../ripple/ripple.cssresult.js';
16
+ import iconButtonStyles from './icon-button.cssresult.js';
17
+ import { iconButton } from './icon-button.js';
18
+ const baseClass = mixinDelegatesAria(mixinFormSubmitter(mixinFormAssociated(mixinElementInternals(LitElement))));
19
+ /**
20
+ * A Material Design icon button component.
21
+ */
22
+ let IconButton = class IconButton extends baseClass {
23
+ constructor() {
24
+ super(...arguments);
25
+ /**
26
+ * The color of the button.
27
+ */
28
+ this.color = 'standard';
29
+ /**
30
+ * The size of the button.
31
+ */
32
+ this.size = 'sm';
33
+ /**
34
+ * Changes the shape of the button to be square.
35
+ */
36
+ this.square = false;
37
+ /**
38
+ * Changes the width of the button.
39
+ */
40
+ this.width = '';
41
+ /**
42
+ * Whether or not the button is "soft-disabled" (disabled but still
43
+ * focusable).
44
+ */
45
+ this.softDisabled = false;
46
+ /**
47
+ * Whether or not the button is selected, when `type="toggle"`.
48
+ */
49
+ this.selected = false;
50
+ /**
51
+ * The URL that the link button points to.
52
+ */
53
+ this.href = '';
54
+ /**
55
+ * The filename to use when downloading the linked resource.
56
+ */
57
+ this.download = '';
58
+ /**
59
+ * Where to display the linked `href` URL for a link button.
60
+ */
61
+ this.target = '';
62
+ }
63
+ /**
64
+ * A string indicating the behavior of the button.
65
+ *
66
+ * - "submit" (default): A button that submits its associated form.
67
+ * - "reset": A button that resets its associated form.
68
+ * - "button": A normal button.
69
+ * - "toggle": A toggle button using the `selected` property.
70
+ * - "link": An anchor link (`<a>`). Type is always "link" when `href` is set.
71
+ */
72
+ get type() {
73
+ return this.href ? 'link' : super.type;
74
+ }
75
+ set type(type) {
76
+ if (this.href && type !== 'link') {
77
+ return;
78
+ }
79
+ super.type = type;
80
+ }
81
+ render() {
82
+ const classes = iconButton({
83
+ color: this.color,
84
+ size: this.size,
85
+ width: this.width,
86
+ square: this.square,
87
+ disabled: this.softDisabled,
88
+ });
89
+ const { ariaLabel, ariaHasPopup, ariaExpanded } = this;
90
+ if (this.type === 'link') {
91
+ return html `<a
92
+ part="icon-btn"
93
+ class=${classes}
94
+ href=${this.href}
95
+ download=${this.download || nothing}
96
+ target=${this.target || nothing}
97
+ aria-label=${ariaLabel || nothing}
98
+ aria-haspopup=${ariaHasPopup || nothing}
99
+ aria-expanded=${ariaExpanded || nothing}
100
+ aria-disabled=${this.disabled || this.softDisabled || nothing}
101
+ tabindex=${this.disabled && !this.softDisabled ? -1 : nothing}>
102
+ <slot></slot>
103
+ </a>`;
104
+ }
105
+ return html `<button
106
+ part="icon-btn"
107
+ class=${classes}
108
+ type="button"
109
+ ?disabled=${this.disabled}
110
+ aria-disabled=${this.softDisabled || nothing}
111
+ aria-label=${ariaLabel || nothing}
112
+ aria-pressed=${this.type === 'toggle' ? this.selected : nothing}
113
+ aria-haspopup=${ariaHasPopup || nothing}
114
+ aria-expanded=${ariaExpanded || nothing}
115
+ @change=${this.handleChange}>
116
+ <slot></slot>
117
+ </button>`;
118
+ }
119
+ handleChange(event) {
120
+ this.selected = event.target.ariaPressed === 'true';
121
+ redispatchEvent(this, event);
122
+ }
123
+ };
124
+ /** @nocollapse */
125
+ IconButton.shadowRootOptions = {
126
+ mode: 'open',
127
+ delegatesFocus: true,
128
+ };
129
+ IconButton.styles = [
130
+ focusRingStyles,
131
+ rippleStyles,
132
+ iconButtonStyles,
133
+ css `
134
+ :host {
135
+ display: inline-flex;
136
+ }
137
+ .icon-btn {
138
+ flex: 1;
139
+ }
140
+ `,
141
+ ];
142
+ __decorate([
143
+ property()
144
+ ], IconButton.prototype, "color", void 0);
145
+ __decorate([
146
+ property()
147
+ ], IconButton.prototype, "size", void 0);
148
+ __decorate([
149
+ property({ type: Boolean })
150
+ ], IconButton.prototype, "square", void 0);
151
+ __decorate([
152
+ property()
153
+ ], IconButton.prototype, "width", void 0);
154
+ __decorate([
155
+ property({ noAccessor: true })
156
+ ], IconButton.prototype, "type", null);
157
+ __decorate([
158
+ property({ type: Boolean, attribute: 'soft-disabled', reflect: true })
159
+ ], IconButton.prototype, "softDisabled", void 0);
160
+ __decorate([
161
+ property({ type: Boolean })
162
+ ], IconButton.prototype, "selected", void 0);
163
+ __decorate([
164
+ property()
165
+ ], IconButton.prototype, "href", void 0);
166
+ __decorate([
167
+ property()
168
+ ], IconButton.prototype, "download", void 0);
169
+ __decorate([
170
+ property()
171
+ ], IconButton.prototype, "target", void 0);
172
+ IconButton = __decorate([
173
+ customElement('md-icon-button')
174
+ ], IconButton);
175
+ export { IconButton };
176
+ //# sourceMappingURL=md-icon-button.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"md-icon-button.js","sourceRoot":"","sources":["md-icon-button.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @license\n * Copyright 2026 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {css, CSSResultOrNative, html, LitElement, nothing} from 'lit';\nimport {customElement, property} from 'lit/decorators.js';\nimport {ARIAMixinStrict} from '../../../../internal/aria/aria.js';\nimport {mixinDelegatesAria} from '../../../../internal/aria/delegate.js';\nimport {redispatchEvent} from '../../../../internal/events/redispatch-event.js';\nimport {mixinElementInternals} from '../../../behaviors/element-internals.js';\nimport {mixinFormAssociated} from '../../../behaviors/form-associated.js';\nimport {mixinFormSubmitter} from '../../../behaviors/form-submitter.js';\n\nimport focusRingStyles from '../focus/focus-ring.cssresult.js';\nimport rippleStyles from '../ripple/ripple.cssresult.js';\nimport iconButtonStyles from './icon-button.cssresult.js';\n\nimport type {\n IconButtonColor,\n IconButtonSize,\n IconButtonWidth,\n} from './icon-button.js';\nimport {iconButton} from './icon-button.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n /** A Material Design icon button component. */\n 'md-icon-button': IconButton;\n }\n}\n\nconst baseClass = mixinDelegatesAria(\n mixinFormSubmitter(mixinFormAssociated(mixinElementInternals(LitElement))),\n);\n\n/**\n * A Material Design icon button component.\n */\n@customElement('md-icon-button')\nexport class IconButton extends baseClass {\n /** @nocollapse */\n static override shadowRootOptions: ShadowRootInit = {\n mode: 'open',\n delegatesFocus: true,\n };\n\n static override styles: CSSResultOrNative[] = [\n focusRingStyles,\n rippleStyles,\n iconButtonStyles,\n css`\n :host {\n display: inline-flex;\n }\n .icon-btn {\n flex: 1;\n }\n `,\n ];\n\n /**\n * The color of the button.\n */\n @property() color: IconButtonColor = 'standard';\n\n /**\n * The size of the button.\n */\n @property() size: IconButtonSize = 'sm';\n\n /**\n * Changes the shape of the button to be square.\n */\n @property({type: Boolean}) square = false;\n\n /**\n * Changes the width of the button.\n */\n @property() width: IconButtonWidth = '';\n\n /**\n * A string indicating the behavior of the button.\n *\n * - \"submit\" (default): A button that submits its associated form.\n * - \"reset\": A button that resets its associated form.\n * - \"button\": A normal button.\n * - \"toggle\": A toggle button using the `selected` property.\n * - \"link\": An anchor link (`<a>`). Type is always \"link\" when `href` is set.\n */\n @property({noAccessor: true})\n override get type(): string {\n return this.href ? 'link' : super.type;\n }\n override set type(type: string) {\n if (this.href && type !== 'link') {\n return;\n }\n super.type = type;\n }\n\n /**\n * Whether or not the button is \"soft-disabled\" (disabled but still\n * focusable).\n */\n @property({type: Boolean, attribute: 'soft-disabled', reflect: true})\n softDisabled = false;\n\n /**\n * Whether or not the button is selected, when `type=\"toggle\"`.\n */\n @property({type: Boolean}) selected = false;\n\n /**\n * The URL that the link button points to.\n */\n @property() href = '';\n\n /**\n * The filename to use when downloading the linked resource.\n */\n @property() download = '';\n\n /**\n * Where to display the linked `href` URL for a link button.\n */\n @property() target: '_blank' | '_parent' | '_self' | '_top' | '' = '';\n\n protected override render() {\n const classes = iconButton({\n color: this.color,\n size: this.size,\n width: this.width,\n square: this.square,\n disabled: this.softDisabled,\n });\n\n const {ariaLabel, ariaHasPopup, ariaExpanded} = this as ARIAMixinStrict;\n if (this.type === 'link') {\n return html`<a\n part=\"icon-btn\"\n class=${classes}\n href=${this.href}\n download=${this.download || nothing}\n target=${this.target || nothing}\n aria-label=${ariaLabel || nothing}\n aria-haspopup=${ariaHasPopup || nothing}\n aria-expanded=${ariaExpanded || nothing}\n aria-disabled=${this.disabled || this.softDisabled || nothing}\n tabindex=${this.disabled && !this.softDisabled ? -1 : nothing}>\n <slot></slot>\n </a>`;\n }\n\n return html`<button\n part=\"icon-btn\"\n class=${classes}\n type=\"button\"\n ?disabled=${this.disabled}\n aria-disabled=${this.softDisabled || nothing}\n aria-label=${ariaLabel || nothing}\n aria-pressed=${this.type === 'toggle' ? this.selected : nothing}\n aria-haspopup=${ariaHasPopup || nothing}\n aria-expanded=${ariaExpanded || nothing}\n @change=${this.handleChange}>\n <slot></slot>\n </button>`;\n }\n\n private handleChange(event: Event) {\n this.selected = (event.target as HTMLElement).ariaPressed === 'true';\n redispatchEvent(this, event);\n }\n}\n"]}
@@ -0,0 +1,102 @@
1
+ //
2
+ // Copyright 2026 Google LLC
3
+ // SPDX-License-Identifier: Apache-2.0
4
+ //
5
+
6
+ @mixin root {
7
+ --container-shape: var(--md-sys-shape-corner-lg);
8
+ --gap: 0;
9
+ }
10
+
11
+ @mixin segmented {
12
+ --gap: 2px;
13
+ }
14
+
15
+ @mixin item {
16
+ --container-height: 56px;
17
+ --container-color: transparent;
18
+ --container-shape: var(--md-sys-shape-corner-xs);
19
+ --label-text-color: var(--md-sys-color-on-surface);
20
+ --label-text: var(--md-sys-typescale-body-lg);
21
+ --label-text-tracking: var(--md-sys-typescale-body-lg-tracking);
22
+ --leading-space: 16px;
23
+ --trailing-space: 16px;
24
+ --between-space: 12px;
25
+ --top-space: 10px;
26
+ --bottom-space: 10px;
27
+ --avatar-size: 40px;
28
+ --avatar-shape: var(--md-sys-shape-corner-full);
29
+ --avatar-color: var(--md-sys-color-primary-container);
30
+ --avatar-label: var(--md-sys-typescale-title-md);
31
+ --avatar-label-tracking: var(--md-sys-typescale-title-md-tracking);
32
+ --avatar-label-color: var(--md-sys-color-on-primary-container);
33
+ --leading-icon-color: var(--md-sys-color-on-surface-variant);
34
+ --leading-icon-size: 20px;
35
+ --trailing-icon-color: var(--md-sys-color-on-surface-variant);
36
+ --trailing-icon-size: 20px;
37
+ --overline: var(--md-sys-typescale-label-sm);
38
+ --overline-tracking: var(--md-sys-typescale-label-sm-tracking);
39
+ --overline-color: var(--md-sys-color-on-surface-variant);
40
+ --supporting-text: var(--md-sys-typescale-body-md);
41
+ --supporting-text-tracking: var(--md-sys-typescale-body-md-tracking);
42
+ --supporting-text-color: var(--md-sys-color-on-surface-variant);
43
+ --trailing-supporting-text: var(--md-sys-typescale-label-sm);
44
+ --trailing-supporting-text-tracking: var(
45
+ --md-sys-typescale-label-sm-tracking
46
+ );
47
+ --trailing-supporting-text-color: var(--md-sys-color-on-surface-variant);
48
+ }
49
+
50
+ @mixin item-segmented {
51
+ --container-color: var(--md-sys-color-surface);
52
+ }
53
+
54
+ @mixin item-hovered {
55
+ --container-shape: var(--md-sys-shape-corner-md);
56
+ --leading-icon-color: var(--md-sys-color-on-surface);
57
+ --trailing-icon-color: var(--md-sys-color-on-surface);
58
+ }
59
+
60
+ @mixin item-focused {
61
+ --container-shape: var(--md-sys-shape-corner-lg);
62
+ --leading-icon-color: var(--md-sys-color-on-surface);
63
+ --trailing-icon-color: var(--md-sys-color-on-surface);
64
+ }
65
+
66
+ @mixin item-pressed {
67
+ --container-shape: var(--md-sys-shape-corner-lg);
68
+ --leading-icon-color: var(--md-sys-color-on-surface);
69
+ --trailing-icon-color: var(--md-sys-color-on-surface);
70
+ }
71
+
72
+ @mixin item-selected {
73
+ --container-shape: var(--md-sys-shape-corner-lg);
74
+ --container-color: var(--md-sys-color-secondary-container);
75
+ --label-text-color: var(--md-sys-color-on-secondary-container);
76
+ --leading-icon-color: var(--md-sys-color-on-secondary-container);
77
+ --trailing-icon-color: var(--md-sys-color-on-secondary-container);
78
+ --overline-color: var(--md-sys-color-on-secondary-container);
79
+ --supporting-text-color: var(--md-sys-color-on-secondary-container);
80
+ --trailing-supporting-text-color: var(
81
+ --md-sys-color-on-secondary-container
82
+ );
83
+ }
84
+
85
+ @mixin item-disabled {
86
+ --container-shape: var(--md-sys-shape-corner-xs);
87
+ --container-color: hsl(from var(--md-sys-color-on-surface) h s l / 10%);
88
+ --label-text-color: hsl(from var(--md-sys-color-on-surface) h s l / 38%);
89
+ --leading-icon-color: hsl(
90
+ from var(--md-sys-color-on-surface) h s l / 38%
91
+ );
92
+ --trailing-icon-color: hsl(
93
+ from var(--md-sys-color-on-surface) h s l / 38%
94
+ );
95
+ --overline-color: hsl(from var(--md-sys-color-on-surface) h s l / 38%);
96
+ --supporting-text-color: hsl(
97
+ from var(--md-sys-color-on-surface) h s l / 38%
98
+ );
99
+ --trailing-supporting-text-color: hsl(
100
+ from var(--md-sys-color-on-surface) h s l / 38%
101
+ );
102
+ }
@@ -0,0 +1,4 @@
1
+ /*!
2
+ * Copyright 2026 Google LLC
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */@layer md.sys, md.comp.ripple, md.comp.focus-ring, md.comp.checkbox, md.comp.radio;@layer md.comp.list{.list{--container-shape: var(--md-sys-shape-corner-lg);--gap: 0}.list.list-segmented{--gap: 2px;--list-segmented: true}.list{display:flex;flex-direction:column;margin:unset;padding:unset;list-style:none;gap:var(--gap);border-radius:var(--container-shape)}.list>:first-child:not(slot),.list ::slotted(:first-child){border-start-start-radius:inherit;border-start-end-radius:inherit;--first-child: true}.list>:last-child:not(slot),.list ::slotted(:last-child){border-end-start-radius:inherit;border-end-end-radius:inherit;--last-child: true}.list slot{border-radius:inherit}.list-select,.list-select::picker(select){appearance:base-select}.list-select{border:none;background:none;height:fit-content}.list-item{--container-height: 56px;--container-color: transparent;--container-shape: var(--md-sys-shape-corner-xs);--label-text-color: var(--md-sys-color-on-surface);--label-text: var(--md-sys-typescale-body-lg);--label-text-tracking: var(--md-sys-typescale-body-lg-tracking);--leading-space: 16px;--trailing-space: 16px;--between-space: 12px;--top-space: 10px;--bottom-space: 10px;--avatar-size: 40px;--avatar-shape: var(--md-sys-shape-corner-full);--avatar-color: var(--md-sys-color-primary-container);--avatar-label: var(--md-sys-typescale-title-md);--avatar-label-tracking: var(--md-sys-typescale-title-md-tracking);--avatar-label-color: var(--md-sys-color-on-primary-container);--leading-icon-color: var(--md-sys-color-on-surface-variant);--leading-icon-size: 20px;--trailing-icon-color: var(--md-sys-color-on-surface-variant);--trailing-icon-size: 20px;--overline: var(--md-sys-typescale-label-sm);--overline-tracking: var(--md-sys-typescale-label-sm-tracking);--overline-color: var(--md-sys-color-on-surface-variant);--supporting-text: var(--md-sys-typescale-body-md);--supporting-text-tracking: var(--md-sys-typescale-body-md-tracking);--supporting-text-color: var(--md-sys-color-on-surface-variant);--trailing-supporting-text: var(--md-sys-typescale-label-sm);--trailing-supporting-text-tracking: var( --md-sys-typescale-label-sm-tracking );--trailing-supporting-text-color: var(--md-sys-color-on-surface-variant)}@container style(--list-segmented: true){.list-item{--container-color: var(--md-sys-color-surface)}}.list-item:where(:not(.list-item-static)):is(:hover,.hover){--container-shape: var(--md-sys-shape-corner-md);--leading-icon-color: var(--md-sys-color-on-surface);--trailing-icon-color: var(--md-sys-color-on-surface)}.list-item:where(:not(.list-item-static)):is(:focus-within,.focus){--container-shape: var(--md-sys-shape-corner-lg);--leading-icon-color: var(--md-sys-color-on-surface);--trailing-icon-color: var(--md-sys-color-on-surface)}.list-item:where(:not(.list-item-static)):is(:active,.active){--container-shape: var(--md-sys-shape-corner-lg);--leading-icon-color: var(--md-sys-color-on-surface);--trailing-icon-color: var(--md-sys-color-on-surface)}.list-item:is(:checked,.checked){--container-shape: var(--md-sys-shape-corner-lg);--container-color: var(--md-sys-color-secondary-container);--label-text-color: var(--md-sys-color-on-secondary-container);--leading-icon-color: var(--md-sys-color-on-secondary-container);--trailing-icon-color: var(--md-sys-color-on-secondary-container);--overline-color: var(--md-sys-color-on-secondary-container);--supporting-text-color: var(--md-sys-color-on-secondary-container);--trailing-supporting-text-color: var( --md-sys-color-on-secondary-container )}.list-item:is(:disabled,.disabled){--container-shape: var(--md-sys-shape-corner-xs);--container-color: hsl(from var(--md-sys-color-on-surface) h s l / 10%);--label-text-color: hsl(from var(--md-sys-color-on-surface) h s l / 38%);--leading-icon-color: hsl( from var(--md-sys-color-on-surface) h s l / 38% );--trailing-icon-color: hsl( from var(--md-sys-color-on-surface) h s l / 38% );--overline-color: hsl(from var(--md-sys-color-on-surface) h s l / 38%);--supporting-text-color: hsl( from var(--md-sys-color-on-surface) h s l / 38% );--trailing-supporting-text-color: hsl( from var(--md-sys-color-on-surface) h s l / 38% )}.list-item{display:flex;align-items:center;gap:var(--between-space);box-sizing:border-box;min-height:var(--container-height);border-radius:var(--container-shape);background-color:var(--container-color);padding-inline:var(--leading-space) var(--trailing-space);padding-block:var(--top-space) var(--bottom-space);color:var(--label-text-color);font:var(--label-text);letter-spacing:var(--label-text-tracking);appearance:none;border:none;text-align:unset;text-decoration:unset;width:stretch}@container style(--first-child: true){.list-item{border-start-start-radius:inherit;border-start-end-radius:inherit}}@container style(--last-child: true){.list-item{border-end-start-radius:inherit;border-end-end-radius:inherit}}.list-item:not(:disabled,.disabled,.list-item-static){cursor:pointer}.list-item .list-item-content{display:flex;flex-direction:column;flex:1}.list-item .list-item-leading,.list-item .list-item-trailing{display:flex;align-items:center;gap:8px;min-height:28px}.list-item .list-item-leading{--md-icon-color: var(--leading-icon-color);--md-icon-size: var(--leading-icon-size)}.list-item .list-item-trailing{--md-icon-color: var(--trailing-icon-color);--md-icon-size: var(--trailing-icon-size)}.list-item .list-item-overline{font:var(--overline);letter-spacing:var(--overline-tracking);color:var(--overline-color)}.list-item .list-item-supporting-text{font:var(--supporting-text);letter-spacing:var(--supporting-text-tracking);color:var(--supporting-text-color)}.list-item .list-item-trailing-text{font:var(--trailing-supporting-text);letter-spacing:var(--trailing-supporting-text-tracking);color:var(--trailing-supporting-text-color)}.list-item .list-item-avatar{display:grid;place-items:center;background-color:var(--avatar-color);border-radius:var(--avatar-shape);aspect-ratio:1;width:var(--avatar-size);font:var(--avatar-label);letter-spacing:var(--avatar-label-tracking);color:var(--avatar-label-color)}.list-item::checkmark{font:var(--leading-icon-size) var(--md-icon-font);color:var(--leading-icon-color);content:"check"}.list-item:has(.list-item-radio,.list-item-checkbox)::checkmark{display:none}.list-item .list-item-radio,.list-item .list-item-checkbox{width:min-content;height:min-content;--ripple: none;--focus-ring-outline: none}.list-item:is(:checked,.checked) .list-item-radio{--icon-color: var(--md-sys-color-primary);--state-layer-color: var(--md-sys-color-primary);--icon: "radio_button_checked"}.list-item:is(:checked,.checked) .list-item-checkbox{--outline-width: 0;--container-color: var(--md-sys-color-primary);--icon-color: var(--md-sys-color-on-primary)}}/*# sourceMappingURL=list.css.map */
@@ -0,0 +1 @@
1
+ {"version":3,"sourceRoot":"","sources":["list.scss","_list-tokens.scss","../radio/_radio-tokens.scss","../checkbox/_checkbox-tokens.scss"],"names":[],"mappings":"AAAA;AAAA;AAAA;AAAA,GAWA,mFACA,oBAEI,MCRF,iDACA,SDWE,qBCPF,WDSI,uBAGF,MACE,aACA,sBACA,aACA,cACA,gBACA,eACA,qCAGF,2DAEE,kCACA,gCACA,oBAGF,yDAEE,gCACA,8BACA,mBAGF,WACE,sBAKF,0CAIE,uBALJ,aAQE,YACA,gBACA,mBAIA,WCnDF,yBACA,+BACA,iDACA,mDACA,8CACA,gEACA,sBACA,uBACA,sBACA,kBACA,qBACA,oBACA,gDACA,sDACA,iDACA,mEACA,+DACA,6DACA,0BACA,8DACA,2BACA,6CACA,+DACA,yDACA,mDACA,qEACA,gEACA,6DACA,iFAGA,yEDuBI,yCAHF,WChBF,gDDyBI,4DCrBJ,iDACA,qDACA,sDDuBI,mECnBJ,iDACA,qDACA,sDDqBI,8DCjBJ,iDACA,qDACA,sDDoBE,iCChBF,iDACA,2DACA,+DACA,iEACA,kEACA,6DACA,oEACA,+EDaE,mCCPF,iDACA,wEACA,yEACA,6EAGA,8EAGA,uEACA,gFAGA,yFDFE,WACE,aACA,mBACA,yBACA,sBACA,mCACA,qCACA,wCACA,0DACA,mDACA,8BACA,uBACA,0CACA,gBACA,YACA,iBACA,sBACA,cAGF,sCAnDF,WAoDI,kCACA,iCAGF,qCAxDF,WAyDI,gCACA,+BAGF,sDACE,eAGF,8BACE,aACA,sBACA,OAGF,6DAEE,aACA,mBACA,QACA,gBAGF,8BACE,2CACA,yCAGF,+BACE,4CACA,0CAGF,+BACE,qBACA,wCACA,4BAGF,sCACE,4BACA,+CACA,mCAGF,oCACE,qCACA,wDACA,4CAGF,6BACE,aACA,mBACA,qCACA,kCACA,eACA,yBACA,yBACA,4CACA,gCAGF,sBACE,kDACA,gCACA,gBAGF,gEACE,aAGF,2DAEE,kBACA,mBACA,eACA,2BAGF,kDEhLF,0CACA,iDFiLI,+BAGF,qDG9KF,mBACA,+CACA","file":"list.css"}
@@ -0,0 +1,3 @@
1
+ export declare const styles: import("lit").CSSResult;
2
+ declare const _default: CSSStyleSheet;
3
+ export default _default;
@@ -0,0 +1,14 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ // Generated stylesheet for ./labs/gb/components/list/list.css.
7
+ import { css } from 'lit';
8
+ export const styles = css `/*!
9
+ * Copyright 2026 Google LLC
10
+ * SPDX-License-Identifier: Apache-2.0
11
+ */@layer md.sys, md.comp.ripple, md.comp.focus-ring, md.comp.checkbox, md.comp.radio;@layer md.comp.list{.list{--container-shape: var(--md-sys-shape-corner-lg);--gap: 0}.list.list-segmented{--gap: 2px;--list-segmented: true}.list{display:flex;flex-direction:column;margin:unset;padding:unset;list-style:none;gap:var(--gap);border-radius:var(--container-shape)}.list>:first-child:not(slot),.list ::slotted(:first-child){border-start-start-radius:inherit;border-start-end-radius:inherit;--first-child: true}.list>:last-child:not(slot),.list ::slotted(:last-child){border-end-start-radius:inherit;border-end-end-radius:inherit;--last-child: true}.list slot{border-radius:inherit}.list-select,.list-select::picker(select){appearance:base-select}.list-select{border:none;background:none;height:fit-content}.list-item{--container-height: 56px;--container-color: transparent;--container-shape: var(--md-sys-shape-corner-xs);--label-text-color: var(--md-sys-color-on-surface);--label-text: var(--md-sys-typescale-body-lg);--label-text-tracking: var(--md-sys-typescale-body-lg-tracking);--leading-space: 16px;--trailing-space: 16px;--between-space: 12px;--top-space: 10px;--bottom-space: 10px;--avatar-size: 40px;--avatar-shape: var(--md-sys-shape-corner-full);--avatar-color: var(--md-sys-color-primary-container);--avatar-label: var(--md-sys-typescale-title-md);--avatar-label-tracking: var(--md-sys-typescale-title-md-tracking);--avatar-label-color: var(--md-sys-color-on-primary-container);--leading-icon-color: var(--md-sys-color-on-surface-variant);--leading-icon-size: 20px;--trailing-icon-color: var(--md-sys-color-on-surface-variant);--trailing-icon-size: 20px;--overline: var(--md-sys-typescale-label-sm);--overline-tracking: var(--md-sys-typescale-label-sm-tracking);--overline-color: var(--md-sys-color-on-surface-variant);--supporting-text: var(--md-sys-typescale-body-md);--supporting-text-tracking: var(--md-sys-typescale-body-md-tracking);--supporting-text-color: var(--md-sys-color-on-surface-variant);--trailing-supporting-text: var(--md-sys-typescale-label-sm);--trailing-supporting-text-tracking: var( --md-sys-typescale-label-sm-tracking );--trailing-supporting-text-color: var(--md-sys-color-on-surface-variant)}@container style(--list-segmented: true){.list-item{--container-color: var(--md-sys-color-surface)}}.list-item:where(:not(.list-item-static)):is(:hover,.hover){--container-shape: var(--md-sys-shape-corner-md);--leading-icon-color: var(--md-sys-color-on-surface);--trailing-icon-color: var(--md-sys-color-on-surface)}.list-item:where(:not(.list-item-static)):is(:focus-within,.focus){--container-shape: var(--md-sys-shape-corner-lg);--leading-icon-color: var(--md-sys-color-on-surface);--trailing-icon-color: var(--md-sys-color-on-surface)}.list-item:where(:not(.list-item-static)):is(:active,.active){--container-shape: var(--md-sys-shape-corner-lg);--leading-icon-color: var(--md-sys-color-on-surface);--trailing-icon-color: var(--md-sys-color-on-surface)}.list-item:is(:checked,.checked){--container-shape: var(--md-sys-shape-corner-lg);--container-color: var(--md-sys-color-secondary-container);--label-text-color: var(--md-sys-color-on-secondary-container);--leading-icon-color: var(--md-sys-color-on-secondary-container);--trailing-icon-color: var(--md-sys-color-on-secondary-container);--overline-color: var(--md-sys-color-on-secondary-container);--supporting-text-color: var(--md-sys-color-on-secondary-container);--trailing-supporting-text-color: var( --md-sys-color-on-secondary-container )}.list-item:is(:disabled,.disabled){--container-shape: var(--md-sys-shape-corner-xs);--container-color: hsl(from var(--md-sys-color-on-surface) h s l / 10%);--label-text-color: hsl(from var(--md-sys-color-on-surface) h s l / 38%);--leading-icon-color: hsl( from var(--md-sys-color-on-surface) h s l / 38% );--trailing-icon-color: hsl( from var(--md-sys-color-on-surface) h s l / 38% );--overline-color: hsl(from var(--md-sys-color-on-surface) h s l / 38%);--supporting-text-color: hsl( from var(--md-sys-color-on-surface) h s l / 38% );--trailing-supporting-text-color: hsl( from var(--md-sys-color-on-surface) h s l / 38% )}.list-item{display:flex;align-items:center;gap:var(--between-space);box-sizing:border-box;min-height:var(--container-height);border-radius:var(--container-shape);background-color:var(--container-color);padding-inline:var(--leading-space) var(--trailing-space);padding-block:var(--top-space) var(--bottom-space);color:var(--label-text-color);font:var(--label-text);letter-spacing:var(--label-text-tracking);appearance:none;border:none;text-align:unset;text-decoration:unset;width:stretch}@container style(--first-child: true){.list-item{border-start-start-radius:inherit;border-start-end-radius:inherit}}@container style(--last-child: true){.list-item{border-end-start-radius:inherit;border-end-end-radius:inherit}}.list-item:not(:disabled,.disabled,.list-item-static){cursor:pointer}.list-item .list-item-content{display:flex;flex-direction:column;flex:1}.list-item .list-item-leading,.list-item .list-item-trailing{display:flex;align-items:center;gap:8px;min-height:28px}.list-item .list-item-leading{--md-icon-color: var(--leading-icon-color);--md-icon-size: var(--leading-icon-size)}.list-item .list-item-trailing{--md-icon-color: var(--trailing-icon-color);--md-icon-size: var(--trailing-icon-size)}.list-item .list-item-overline{font:var(--overline);letter-spacing:var(--overline-tracking);color:var(--overline-color)}.list-item .list-item-supporting-text{font:var(--supporting-text);letter-spacing:var(--supporting-text-tracking);color:var(--supporting-text-color)}.list-item .list-item-trailing-text{font:var(--trailing-supporting-text);letter-spacing:var(--trailing-supporting-text-tracking);color:var(--trailing-supporting-text-color)}.list-item .list-item-avatar{display:grid;place-items:center;background-color:var(--avatar-color);border-radius:var(--avatar-shape);aspect-ratio:1;width:var(--avatar-size);font:var(--avatar-label);letter-spacing:var(--avatar-label-tracking);color:var(--avatar-label-color)}.list-item::checkmark{font:var(--leading-icon-size) var(--md-icon-font);color:var(--leading-icon-color);content:"check"}.list-item:has(.list-item-radio,.list-item-checkbox)::checkmark{display:none}.list-item .list-item-radio,.list-item .list-item-checkbox{width:min-content;height:min-content;--ripple: none;--focus-ring-outline: none}.list-item:is(:checked,.checked) .list-item-radio{--icon-color: var(--md-sys-color-primary);--state-layer-color: var(--md-sys-color-primary);--icon: "radio_button_checked"}.list-item:is(:checked,.checked) .list-item-checkbox{--outline-width: 0;--container-color: var(--md-sys-color-primary);--icon-color: var(--md-sys-color-on-primary)}}
12
+ `;
13
+ export default styles.styleSheet;
14
+ //# sourceMappingURL=list.cssresult.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.cssresult.js","sourceRoot":"","sources":["list.cssresult.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,+DAA+D;AAC/D,OAAO,EAAC,GAAG,EAAC,MAAM,KAAK,CAAC;AACxB,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;CAIxB,CAAC;AACF,eAAe,MAAM,CAAC,UAAW,CAAC","sourcesContent":["/**\n * @license\n * Copyright 2026 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n// Generated stylesheet for ./labs/gb/components/list/list.css.\nimport {css} from 'lit';\nexport const styles = css`/*!\n * Copyright 2026 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */@layer md.sys, md.comp.ripple, md.comp.focus-ring, md.comp.checkbox, md.comp.radio;@layer md.comp.list{.list{--container-shape: var(--md-sys-shape-corner-lg);--gap: 0}.list.list-segmented{--gap: 2px;--list-segmented: true}.list{display:flex;flex-direction:column;margin:unset;padding:unset;list-style:none;gap:var(--gap);border-radius:var(--container-shape)}.list>:first-child:not(slot),.list ::slotted(:first-child){border-start-start-radius:inherit;border-start-end-radius:inherit;--first-child: true}.list>:last-child:not(slot),.list ::slotted(:last-child){border-end-start-radius:inherit;border-end-end-radius:inherit;--last-child: true}.list slot{border-radius:inherit}.list-select,.list-select::picker(select){appearance:base-select}.list-select{border:none;background:none;height:fit-content}.list-item{--container-height: 56px;--container-color: transparent;--container-shape: var(--md-sys-shape-corner-xs);--label-text-color: var(--md-sys-color-on-surface);--label-text: var(--md-sys-typescale-body-lg);--label-text-tracking: var(--md-sys-typescale-body-lg-tracking);--leading-space: 16px;--trailing-space: 16px;--between-space: 12px;--top-space: 10px;--bottom-space: 10px;--avatar-size: 40px;--avatar-shape: var(--md-sys-shape-corner-full);--avatar-color: var(--md-sys-color-primary-container);--avatar-label: var(--md-sys-typescale-title-md);--avatar-label-tracking: var(--md-sys-typescale-title-md-tracking);--avatar-label-color: var(--md-sys-color-on-primary-container);--leading-icon-color: var(--md-sys-color-on-surface-variant);--leading-icon-size: 20px;--trailing-icon-color: var(--md-sys-color-on-surface-variant);--trailing-icon-size: 20px;--overline: var(--md-sys-typescale-label-sm);--overline-tracking: var(--md-sys-typescale-label-sm-tracking);--overline-color: var(--md-sys-color-on-surface-variant);--supporting-text: var(--md-sys-typescale-body-md);--supporting-text-tracking: var(--md-sys-typescale-body-md-tracking);--supporting-text-color: var(--md-sys-color-on-surface-variant);--trailing-supporting-text: var(--md-sys-typescale-label-sm);--trailing-supporting-text-tracking: var( --md-sys-typescale-label-sm-tracking );--trailing-supporting-text-color: var(--md-sys-color-on-surface-variant)}@container style(--list-segmented: true){.list-item{--container-color: var(--md-sys-color-surface)}}.list-item:where(:not(.list-item-static)):is(:hover,.hover){--container-shape: var(--md-sys-shape-corner-md);--leading-icon-color: var(--md-sys-color-on-surface);--trailing-icon-color: var(--md-sys-color-on-surface)}.list-item:where(:not(.list-item-static)):is(:focus-within,.focus){--container-shape: var(--md-sys-shape-corner-lg);--leading-icon-color: var(--md-sys-color-on-surface);--trailing-icon-color: var(--md-sys-color-on-surface)}.list-item:where(:not(.list-item-static)):is(:active,.active){--container-shape: var(--md-sys-shape-corner-lg);--leading-icon-color: var(--md-sys-color-on-surface);--trailing-icon-color: var(--md-sys-color-on-surface)}.list-item:is(:checked,.checked){--container-shape: var(--md-sys-shape-corner-lg);--container-color: var(--md-sys-color-secondary-container);--label-text-color: var(--md-sys-color-on-secondary-container);--leading-icon-color: var(--md-sys-color-on-secondary-container);--trailing-icon-color: var(--md-sys-color-on-secondary-container);--overline-color: var(--md-sys-color-on-secondary-container);--supporting-text-color: var(--md-sys-color-on-secondary-container);--trailing-supporting-text-color: var( --md-sys-color-on-secondary-container )}.list-item:is(:disabled,.disabled){--container-shape: var(--md-sys-shape-corner-xs);--container-color: hsl(from var(--md-sys-color-on-surface) h s l / 10%);--label-text-color: hsl(from var(--md-sys-color-on-surface) h s l / 38%);--leading-icon-color: hsl( from var(--md-sys-color-on-surface) h s l / 38% );--trailing-icon-color: hsl( from var(--md-sys-color-on-surface) h s l / 38% );--overline-color: hsl(from var(--md-sys-color-on-surface) h s l / 38%);--supporting-text-color: hsl( from var(--md-sys-color-on-surface) h s l / 38% );--trailing-supporting-text-color: hsl( from var(--md-sys-color-on-surface) h s l / 38% )}.list-item{display:flex;align-items:center;gap:var(--between-space);box-sizing:border-box;min-height:var(--container-height);border-radius:var(--container-shape);background-color:var(--container-color);padding-inline:var(--leading-space) var(--trailing-space);padding-block:var(--top-space) var(--bottom-space);color:var(--label-text-color);font:var(--label-text);letter-spacing:var(--label-text-tracking);appearance:none;border:none;text-align:unset;text-decoration:unset;width:stretch}@container style(--first-child: true){.list-item{border-start-start-radius:inherit;border-start-end-radius:inherit}}@container style(--last-child: true){.list-item{border-end-start-radius:inherit;border-end-end-radius:inherit}}.list-item:not(:disabled,.disabled,.list-item-static){cursor:pointer}.list-item .list-item-content{display:flex;flex-direction:column;flex:1}.list-item .list-item-leading,.list-item .list-item-trailing{display:flex;align-items:center;gap:8px;min-height:28px}.list-item .list-item-leading{--md-icon-color: var(--leading-icon-color);--md-icon-size: var(--leading-icon-size)}.list-item .list-item-trailing{--md-icon-color: var(--trailing-icon-color);--md-icon-size: var(--trailing-icon-size)}.list-item .list-item-overline{font:var(--overline);letter-spacing:var(--overline-tracking);color:var(--overline-color)}.list-item .list-item-supporting-text{font:var(--supporting-text);letter-spacing:var(--supporting-text-tracking);color:var(--supporting-text-color)}.list-item .list-item-trailing-text{font:var(--trailing-supporting-text);letter-spacing:var(--trailing-supporting-text-tracking);color:var(--trailing-supporting-text-color)}.list-item .list-item-avatar{display:grid;place-items:center;background-color:var(--avatar-color);border-radius:var(--avatar-shape);aspect-ratio:1;width:var(--avatar-size);font:var(--avatar-label);letter-spacing:var(--avatar-label-tracking);color:var(--avatar-label-color)}.list-item::checkmark{font:var(--leading-icon-size) var(--md-icon-font);color:var(--leading-icon-color);content:\"check\"}.list-item:has(.list-item-radio,.list-item-checkbox)::checkmark{display:none}.list-item .list-item-radio,.list-item .list-item-checkbox{width:min-content;height:min-content;--ripple: none;--focus-ring-outline: none}.list-item:is(:checked,.checked) .list-item-radio{--icon-color: var(--md-sys-color-primary);--state-layer-color: var(--md-sys-color-primary);--icon: \"radio_button_checked\"}.list-item:is(:checked,.checked) .list-item-checkbox{--outline-width: 0;--container-color: var(--md-sys-color-primary);--icon-color: var(--md-sys-color-on-primary)}}\n`;\nexport default styles.styleSheet!;\n"]}