@material/web 1.0.1 → 1.0.2-nightly.6a1fb38.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 (308) hide show
  1. package/all.d.ts +2 -0
  2. package/all.js +2 -0
  3. package/all.js.map +1 -1
  4. package/button/elevated-button.js +5 -1
  5. package/button/elevated-button.js.map +1 -1
  6. package/button/internal/_elevation.scss +32 -32
  7. package/button/internal/_icon.scss +22 -23
  8. package/button/internal/_outlined-button.scss +21 -19
  9. package/button/internal/_shared.scss +84 -77
  10. package/button/internal/_touch-target.scss +4 -0
  11. package/button/internal/button.d.ts +7 -11
  12. package/button/internal/button.js +52 -38
  13. package/button/internal/button.js.map +1 -1
  14. package/button/internal/elevated-button.d.ts +1 -1
  15. package/button/internal/elevated-button.js +1 -1
  16. package/button/internal/elevated-button.js.map +1 -1
  17. package/button/internal/filled-button.d.ts +1 -1
  18. package/button/internal/filled-button.js +1 -1
  19. package/button/internal/filled-button.js.map +1 -1
  20. package/button/internal/filled-tonal-button.d.ts +1 -1
  21. package/button/internal/filled-tonal-button.js +1 -1
  22. package/button/internal/filled-tonal-button.js.map +1 -1
  23. package/button/internal/outlined-button.d.ts +1 -1
  24. package/button/internal/outlined-button.js +2 -2
  25. package/button/internal/outlined-button.js.map +1 -1
  26. package/button/internal/outlined-styles.css.js +1 -1
  27. package/button/internal/outlined-styles.css.js.map +1 -1
  28. package/button/internal/shared-elevation-styles.css.js +1 -1
  29. package/button/internal/shared-elevation-styles.css.js.map +1 -1
  30. package/button/internal/shared-styles.css.js +1 -1
  31. package/button/internal/shared-styles.css.js.map +1 -1
  32. package/checkbox/internal/checkbox.d.ts +16 -23
  33. package/checkbox/internal/checkbox.js +38 -52
  34. package/checkbox/internal/checkbox.js.map +1 -1
  35. package/chips/filter-chip.js +5 -1
  36. package/chips/filter-chip.js.map +1 -1
  37. package/chips/harness.js.map +1 -1
  38. package/chips/input-chip.js +6 -1
  39. package/chips/input-chip.js.map +1 -1
  40. package/chips/internal/assist-chip.js +8 -4
  41. package/chips/internal/assist-chip.js.map +1 -1
  42. package/chips/internal/chip-set.js +6 -4
  43. package/chips/internal/chip-set.js.map +1 -1
  44. package/chips/internal/chip.d.ts +3 -0
  45. package/chips/internal/chip.js +7 -5
  46. package/chips/internal/chip.js.map +1 -1
  47. package/chips/internal/filter-chip.d.ts +2 -0
  48. package/chips/internal/filter-chip.js +11 -5
  49. package/chips/internal/filter-chip.js.map +1 -1
  50. package/chips/internal/input-chip.d.ts +2 -0
  51. package/chips/internal/input-chip.js +10 -4
  52. package/chips/internal/input-chip.js.map +1 -1
  53. package/chips/internal/multi-action-chip.js.map +1 -1
  54. package/chips/internal/trailing-icons.d.ts +1 -1
  55. package/chips/internal/trailing-icons.js +6 -5
  56. package/chips/internal/trailing-icons.js.map +1 -1
  57. package/common.d.ts +2 -0
  58. package/common.js +2 -0
  59. package/common.js.map +1 -1
  60. package/dialog/harness.js +1 -2
  61. package/dialog/harness.js.map +1 -1
  62. package/dialog/internal/_dialog.scss +1 -1
  63. package/dialog/internal/animations.js +14 -12
  64. package/dialog/internal/animations.js.map +1 -1
  65. package/dialog/internal/dialog-styles.css.js +1 -1
  66. package/dialog/internal/dialog-styles.css.js.map +1 -1
  67. package/dialog/internal/dialog.d.ts +6 -6
  68. package/dialog/internal/dialog.js +24 -24
  69. package/dialog/internal/dialog.js.map +1 -1
  70. package/fab/harness.js.map +1 -1
  71. package/fab/internal/fab.js.map +1 -1
  72. package/fab/internal/shared.js +10 -11
  73. package/fab/internal/shared.js.map +1 -1
  74. package/field/harness.js.map +1 -1
  75. package/field/internal/_content.scss +185 -174
  76. package/field/internal/_filled-field.scss +147 -136
  77. package/field/internal/_label.scss +83 -72
  78. package/field/internal/_outlined-field.scss +276 -262
  79. package/field/internal/_supporting-text.scss +53 -42
  80. package/field/internal/field.js +26 -22
  81. package/field/internal/field.js.map +1 -1
  82. package/field/internal/filled-styles.css.js +1 -1
  83. package/field/internal/filled-styles.css.js.map +1 -1
  84. package/field/internal/outlined-styles.css.js +1 -1
  85. package/field/internal/outlined-styles.css.js.map +1 -1
  86. package/field/internal/shared-styles.css.js +1 -1
  87. package/field/internal/shared-styles.css.js.map +1 -1
  88. package/focus/internal/focus-ring.d.ts +2 -0
  89. package/focus/internal/focus-ring.js +3 -3
  90. package/focus/internal/focus-ring.js.map +1 -1
  91. package/icon/internal/_icon.scss +7 -4
  92. package/icon/internal/icon-styles.css.js +1 -1
  93. package/icon/internal/icon-styles.css.js.map +1 -1
  94. package/iconbutton/internal/icon-button.d.ts +9 -4
  95. package/iconbutton/internal/icon-button.js +35 -22
  96. package/iconbutton/internal/icon-button.js.map +1 -1
  97. package/internal/aria/aria.d.ts +4 -26
  98. package/internal/aria/aria.js +10 -28
  99. package/internal/aria/aria.js.map +1 -1
  100. package/internal/aria/delegate.js +2 -2
  101. package/internal/aria/delegate.js.map +1 -1
  102. package/internal/controller/attachable-controller.js +3 -5
  103. package/internal/controller/attachable-controller.js.map +1 -1
  104. package/internal/controller/form-submitter.d.ts +3 -5
  105. package/internal/controller/form-submitter.js +5 -7
  106. package/internal/controller/form-submitter.js.map +1 -1
  107. package/internal/controller/is-rtl.js +2 -2
  108. package/internal/controller/is-rtl.js.map +1 -1
  109. package/internal/controller/string-converter.js +1 -1
  110. package/internal/controller/string-converter.js.map +1 -1
  111. package/internal/motion/animation.js.map +1 -1
  112. package/labs/behaviors/element-internals.d.ts +45 -0
  113. package/labs/behaviors/element-internals.js +50 -0
  114. package/labs/behaviors/element-internals.js.map +1 -0
  115. package/labs/behaviors/focusable.d.ts +39 -0
  116. package/labs/behaviors/focusable.js +82 -0
  117. package/labs/behaviors/focusable.js.map +1 -0
  118. package/labs/behaviors/form-associated.d.ts +199 -0
  119. package/labs/behaviors/form-associated.js +155 -0
  120. package/labs/behaviors/form-associated.js.map +1 -0
  121. package/labs/behaviors/mixin.d.ts +54 -0
  122. package/labs/behaviors/mixin.js +7 -0
  123. package/labs/behaviors/mixin.js.map +1 -0
  124. package/labs/card/_elevated-card.scss +6 -0
  125. package/labs/card/_filled-card.scss +6 -0
  126. package/labs/card/_outlined-card.scss +6 -0
  127. package/labs/card/elevated-card.d.ts +18 -0
  128. package/labs/card/elevated-card.js +21 -0
  129. package/labs/card/elevated-card.js.map +1 -0
  130. package/labs/card/filled-card.d.ts +18 -0
  131. package/labs/card/filled-card.js +21 -0
  132. package/labs/card/filled-card.js.map +1 -0
  133. package/labs/card/internal/_elevated-card.scss +35 -0
  134. package/labs/card/internal/_filled-card.scss +35 -0
  135. package/labs/card/internal/_outlined-card.scss +39 -0
  136. package/labs/card/internal/_shared.scss +40 -0
  137. package/labs/card/internal/card.d.ts +13 -0
  138. package/labs/card/internal/card.js +20 -0
  139. package/labs/card/internal/card.js.map +1 -0
  140. package/labs/card/internal/elevated-styles.css.js +9 -0
  141. package/labs/card/internal/elevated-styles.css.js.map +1 -0
  142. package/labs/card/internal/elevated-styles.scss +10 -0
  143. package/labs/card/internal/filled-styles.css.js +9 -0
  144. package/labs/card/internal/filled-styles.css.js.map +1 -0
  145. package/labs/card/internal/filled-styles.scss +10 -0
  146. package/labs/card/internal/outlined-styles.css.js +9 -0
  147. package/labs/card/internal/outlined-styles.css.js.map +1 -0
  148. package/labs/card/internal/outlined-styles.scss +10 -0
  149. package/labs/card/internal/shared-styles.css.js +9 -0
  150. package/labs/card/internal/shared-styles.css.js.map +1 -0
  151. package/labs/card/internal/shared-styles.scss +10 -0
  152. package/labs/card/outlined-card.d.ts +18 -0
  153. package/labs/card/outlined-card.js +21 -0
  154. package/labs/card/outlined-card.js.map +1 -0
  155. package/labs/item/internal/item.js +8 -8
  156. package/labs/item/internal/item.js.map +1 -1
  157. package/labs/navigationbar/internal/constants.js.map +1 -1
  158. package/labs/navigationbar/internal/navigation-bar.d.ts +3 -0
  159. package/labs/navigationbar/internal/navigation-bar.js +18 -11
  160. package/labs/navigationbar/internal/navigation-bar.js.map +1 -1
  161. package/labs/navigationdrawer/internal/navigation-drawer-modal.d.ts +3 -0
  162. package/labs/navigationdrawer/internal/navigation-drawer-modal.js +10 -3
  163. package/labs/navigationdrawer/internal/navigation-drawer-modal.js.map +1 -1
  164. package/labs/navigationdrawer/internal/navigation-drawer.d.ts +3 -0
  165. package/labs/navigationdrawer/internal/navigation-drawer.js +8 -1
  166. package/labs/navigationdrawer/internal/navigation-drawer.js.map +1 -1
  167. package/labs/navigationtab/harness.js.map +1 -1
  168. package/labs/navigationtab/internal/navigation-tab.d.ts +6 -0
  169. package/labs/navigationtab/internal/navigation-tab.js +43 -27
  170. package/labs/navigationtab/internal/navigation-tab.js.map +1 -1
  171. package/labs/navigationtab/internal/state.js.map +1 -1
  172. package/labs/segmentedbutton/internal/segmented-button.d.ts +3 -0
  173. package/labs/segmentedbutton/internal/segmented-button.js +26 -12
  174. package/labs/segmentedbutton/internal/segmented-button.js.map +1 -1
  175. package/labs/segmentedbuttonset/internal/segmented-button-set.d.ts +5 -0
  176. package/labs/segmentedbuttonset/internal/segmented-button-set.js +14 -9
  177. package/labs/segmentedbuttonset/internal/segmented-button-set.js.map +1 -1
  178. package/list/harness.d.ts +1 -1
  179. package/list/harness.js.map +1 -1
  180. package/list/internal/list-controller.d.ts +1 -1
  181. package/list/internal/list-controller.js +7 -3
  182. package/list/internal/list-controller.js.map +1 -1
  183. package/list/internal/list-navigation-helpers.js.map +1 -1
  184. package/list/internal/list.d.ts +2 -2
  185. package/list/internal/list.js +8 -6
  186. package/list/internal/list.js.map +1 -1
  187. package/list/internal/listitem/harness.d.ts +1 -1
  188. package/list/internal/listitem/harness.js.map +1 -1
  189. package/list/internal/listitem/list-item.d.ts +3 -2
  190. package/list/internal/listitem/list-item.js +19 -20
  191. package/list/internal/listitem/list-item.js.map +1 -1
  192. package/list/list-item.d.ts +4 -12
  193. package/list/list-item.js +4 -12
  194. package/list/list-item.js.map +1 -1
  195. package/menu/harness.js.map +1 -1
  196. package/menu/internal/_menu.scss +12 -1
  197. package/menu/internal/controllers/menuItemController.js +9 -4
  198. package/menu/internal/controllers/menuItemController.js.map +1 -1
  199. package/menu/internal/controllers/shared.d.ts +9 -1
  200. package/menu/internal/controllers/shared.js +4 -4
  201. package/menu/internal/controllers/shared.js.map +1 -1
  202. package/menu/internal/controllers/surfacePositionController.d.ts +15 -2
  203. package/menu/internal/controllers/surfacePositionController.js +124 -54
  204. package/menu/internal/controllers/surfacePositionController.js.map +1 -1
  205. package/menu/internal/controllers/typeaheadController.js +19 -14
  206. package/menu/internal/controllers/typeaheadController.js.map +1 -1
  207. package/menu/internal/menu-styles.css.js +1 -1
  208. package/menu/internal/menu-styles.css.js.map +1 -1
  209. package/menu/internal/menu.d.ts +43 -12
  210. package/menu/internal/menu.js +124 -57
  211. package/menu/internal/menu.js.map +1 -1
  212. package/menu/internal/menuitem/harness.js.map +1 -1
  213. package/menu/internal/menuitem/menu-item.d.ts +3 -2
  214. package/menu/internal/menuitem/menu-item.js +18 -19
  215. package/menu/internal/menuitem/menu-item.js.map +1 -1
  216. package/menu/internal/submenu/sub-menu.d.ts +8 -8
  217. package/menu/internal/submenu/sub-menu.js +31 -22
  218. package/menu/internal/submenu/sub-menu.js.map +1 -1
  219. package/menu/internal/types.js.map +1 -1
  220. package/package.json +1 -1
  221. package/progress/internal/_circular-progress.scss +2 -2
  222. package/progress/internal/_linear-progress.scss +1 -1
  223. package/progress/internal/circular-progress-styles.css.js +1 -1
  224. package/progress/internal/circular-progress-styles.css.js.map +1 -1
  225. package/progress/internal/circular-progress.js +11 -10
  226. package/progress/internal/circular-progress.js.map +1 -1
  227. package/progress/internal/linear-progress-styles.css.js +1 -1
  228. package/progress/internal/linear-progress-styles.css.js.map +1 -1
  229. package/progress/internal/linear-progress.d.ts +1 -1
  230. package/progress/internal/linear-progress.js +3 -3
  231. package/progress/internal/linear-progress.js.map +1 -1
  232. package/progress/internal/progress.js +4 -2
  233. package/progress/internal/progress.js.map +1 -1
  234. package/radio/internal/radio.d.ts +11 -27
  235. package/radio/internal/radio.js +30 -54
  236. package/radio/internal/radio.js.map +1 -1
  237. package/radio/internal/single-selection-controller.js +1 -1
  238. package/radio/internal/single-selection-controller.js.map +1 -1
  239. package/ripple/internal/ripple.js +14 -9
  240. package/ripple/internal/ripple.js.map +1 -1
  241. package/select/filled-select.js +1 -2
  242. package/select/filled-select.js.map +1 -1
  243. package/select/harness.js +1 -1
  244. package/select/harness.js.map +1 -1
  245. package/select/internal/select.d.ts +25 -34
  246. package/select/internal/select.js +101 -91
  247. package/select/internal/select.js.map +1 -1
  248. package/select/internal/selectoption/select-option.d.ts +8 -6
  249. package/select/internal/selectoption/select-option.js +23 -22
  250. package/select/internal/selectoption/select-option.js.map +1 -1
  251. package/select/internal/selectoption/selectOptionController.js +1 -1
  252. package/select/internal/selectoption/selectOptionController.js.map +1 -1
  253. package/select/outlined-select.js +1 -2
  254. package/select/outlined-select.js.map +1 -1
  255. package/slider/harness.js +5 -5
  256. package/slider/harness.js.map +1 -1
  257. package/slider/internal/slider.d.ts +16 -25
  258. package/slider/internal/slider.js +110 -114
  259. package/slider/internal/slider.js.map +1 -1
  260. package/switch/internal/switch.d.ts +9 -25
  261. package/switch/internal/switch.js +31 -57
  262. package/switch/internal/switch.js.map +1 -1
  263. package/tabs/harness.js +3 -3
  264. package/tabs/harness.js.map +1 -1
  265. package/tabs/internal/_tab.scss +27 -35
  266. package/tabs/internal/primary-tab.d.ts +0 -2
  267. package/tabs/internal/tab-styles.css.js +1 -1
  268. package/tabs/internal/tab-styles.css.js.map +1 -1
  269. package/tabs/internal/tab.d.ts +4 -5
  270. package/tabs/internal/tab.js +34 -22
  271. package/tabs/internal/tab.js.map +1 -1
  272. package/tabs/internal/tabs.d.ts +6 -2
  273. package/tabs/internal/tabs.js +18 -11
  274. package/tabs/internal/tabs.js.map +1 -1
  275. package/textfield/filled-text-field.js +1 -2
  276. package/textfield/filled-text-field.js.map +1 -1
  277. package/textfield/harness.js +3 -2
  278. package/textfield/harness.js.map +1 -1
  279. package/textfield/internal/text-field.d.ts +26 -18
  280. package/textfield/internal/text-field.js +81 -58
  281. package/textfield/internal/text-field.js.map +1 -1
  282. package/textfield/outlined-text-field.js +1 -2
  283. package/textfield/outlined-text-field.js.map +1 -1
  284. package/tokens/_index.scss +3 -0
  285. package/tokens/_md-comp-elevated-card.scss +63 -0
  286. package/tokens/_md-comp-filled-card.scss +63 -0
  287. package/tokens/_md-comp-icon.scss +2 -0
  288. package/tokens/_md-comp-outlined-card.scss +69 -0
  289. package/tokens/_md-comp-test-table.scss +1 -0
  290. package/internal/controller/element-internals.d.ts +0 -35
  291. package/internal/controller/element-internals.js +0 -24
  292. package/internal/controller/element-internals.js.map +0 -1
  293. package/select/internal/filled-forced-colors-styles.css.js +0 -9
  294. package/select/internal/filled-forced-colors-styles.css.js.map +0 -1
  295. package/select/internal/filled-forced-colors-styles.scss +0 -29
  296. package/select/internal/outlined-forced-colors-styles.css.js +0 -9
  297. package/select/internal/outlined-forced-colors-styles.css.js.map +0 -1
  298. package/select/internal/outlined-forced-colors-styles.scss +0 -29
  299. package/textfield/internal/filled-forced-colors-styles.css.js +0 -9
  300. package/textfield/internal/filled-forced-colors-styles.css.js.map +0 -1
  301. package/textfield/internal/filled-forced-colors-styles.scss +0 -29
  302. package/textfield/internal/outlined-forced-colors-styles.css.js +0 -9
  303. package/textfield/internal/outlined-forced-colors-styles.css.js.map +0 -1
  304. package/textfield/internal/outlined-forced-colors-styles.scss +0 -29
  305. /package/{select/internal/filled-forced-colors-styles.css.d.ts → labs/card/internal/elevated-styles.css.d.ts} +0 -0
  306. /package/{select/internal/outlined-forced-colors-styles.css.d.ts → labs/card/internal/filled-styles.css.d.ts} +0 -0
  307. /package/{textfield/internal/filled-forced-colors-styles.css.d.ts → labs/card/internal/outlined-styles.css.d.ts} +0 -0
  308. /package/{textfield/internal/outlined-forced-colors-styles.css.d.ts → labs/card/internal/shared-styles.css.d.ts} +0 -0
package/all.d.ts CHANGED
@@ -16,6 +16,7 @@ import './button/outlined-button.js';
16
16
  import './button/text-button.js';
17
17
  import './checkbox/checkbox.js';
18
18
  import './chips/assist-chip.js';
19
+ import './chips/chip-set.js';
19
20
  import './chips/filter-chip.js';
20
21
  import './chips/input-chip.js';
21
22
  import './chips/suggestion-chip.js';
@@ -58,6 +59,7 @@ export * from './button/outlined-button.js';
58
59
  export * from './button/text-button.js';
59
60
  export * from './checkbox/checkbox.js';
60
61
  export * from './chips/assist-chip.js';
62
+ export * from './chips/chip-set.js';
61
63
  export * from './chips/filter-chip.js';
62
64
  export * from './chips/input-chip.js';
63
65
  export * from './chips/suggestion-chip.js';
package/all.js CHANGED
@@ -18,6 +18,7 @@ import './button/outlined-button.js';
18
18
  import './button/text-button.js';
19
19
  import './checkbox/checkbox.js';
20
20
  import './chips/assist-chip.js';
21
+ import './chips/chip-set.js';
21
22
  import './chips/filter-chip.js';
22
23
  import './chips/input-chip.js';
23
24
  import './chips/suggestion-chip.js';
@@ -64,6 +65,7 @@ export * from './button/outlined-button.js';
64
65
  export * from './button/text-button.js';
65
66
  export * from './checkbox/checkbox.js';
66
67
  export * from './chips/assist-chip.js';
68
+ export * from './chips/chip-set.js';
67
69
  export * from './chips/filter-chip.js';
68
70
  export * from './chips/input-chip.js';
69
71
  export * from './chips/suggestion-chip.js';
package/all.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"all.js","sourceRoot":"","sources":["all.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * @fileoverview A convenience bundle import that includes all components.\n *\n * WARNING: This import is intended for prototyping and development builds only.\n * Import only the individual components used for production.\n */\n\n// LINT.IfChange(imports)\n// go/keep-sorted start\nimport './button/elevated-button.js';\nimport './button/filled-button.js';\nimport './button/filled-tonal-button.js';\nimport './button/outlined-button.js';\nimport './button/text-button.js';\nimport './checkbox/checkbox.js';\nimport './chips/assist-chip.js';\nimport './chips/filter-chip.js';\nimport './chips/input-chip.js';\nimport './chips/suggestion-chip.js';\nimport './dialog/dialog.js';\nimport './divider/divider.js';\nimport './elevation/elevation.js';\nimport './fab/branded-fab.js';\nimport './fab/fab.js';\nimport './field/filled-field.js';\nimport './field/outlined-field.js';\nimport './focus/md-focus-ring.js';\nimport './icon/icon.js';\nimport './iconbutton/filled-icon-button.js';\nimport './iconbutton/filled-tonal-icon-button.js';\nimport './iconbutton/icon-button.js';\nimport './iconbutton/outlined-icon-button.js';\nimport './list/list.js';\nimport './list/list-item.js';\nimport './menu/menu.js';\nimport './menu/menu-item.js';\nimport './menu/sub-menu.js';\nimport './progress/circular-progress.js';\nimport './progress/linear-progress.js';\nimport './radio/radio.js';\nimport './ripple/ripple.js';\nimport './select/filled-select.js';\nimport './select/outlined-select.js';\nimport './select/select-option.js';\nimport './slider/slider.js';\nimport './switch/switch.js';\nimport './tabs/primary-tab.js';\nimport './tabs/secondary-tab.js';\nimport './tabs/tabs.js';\nimport './textfield/filled-text-field.js';\nimport './textfield/outlined-text-field.js';\n// go/keep-sorted end\n// LINT.ThenChange(:exports)\n\n// LINT.IfChange(exports)\n// go/keep-sorted start\nexport * from './button/elevated-button.js';\nexport * from './button/filled-button.js';\nexport * from './button/filled-tonal-button.js';\nexport * from './button/outlined-button.js';\nexport * from './button/text-button.js';\nexport * from './checkbox/checkbox.js';\nexport * from './chips/assist-chip.js';\nexport * from './chips/filter-chip.js';\nexport * from './chips/input-chip.js';\nexport * from './chips/suggestion-chip.js';\nexport * from './dialog/dialog.js';\nexport * from './divider/divider.js';\nexport * from './elevation/elevation.js';\nexport * from './fab/branded-fab.js';\nexport * from './fab/fab.js';\nexport * from './field/filled-field.js';\nexport * from './field/outlined-field.js';\nexport * from './focus/md-focus-ring.js';\nexport * from './icon/icon.js';\nexport * from './iconbutton/filled-icon-button.js';\nexport * from './iconbutton/filled-tonal-icon-button.js';\nexport * from './iconbutton/icon-button.js';\nexport * from './iconbutton/outlined-icon-button.js';\nexport * from './list/list.js';\nexport * from './list/list-item.js';\nexport * from './menu/menu.js';\nexport * from './menu/menu-item.js';\nexport * from './menu/sub-menu.js';\nexport * from './progress/circular-progress.js';\nexport * from './progress/linear-progress.js';\nexport * from './radio/radio.js';\nexport * from './ripple/ripple.js';\nexport * from './select/filled-select.js';\nexport * from './select/outlined-select.js';\nexport * from './select/select-option.js';\nexport * from './slider/slider.js';\nexport * from './switch/switch.js';\nexport * from './tabs/primary-tab.js';\nexport * from './tabs/secondary-tab.js';\nexport * from './tabs/tabs.js';\nexport * from './textfield/filled-text-field.js';\nexport * from './textfield/outlined-text-field.js';\n// go/keep-sorted end\n// LINT.ThenChange(:imports)\n"]}
1
+ {"version":3,"file":"all.js","sourceRoot":"","sources":["all.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * @fileoverview A convenience bundle import that includes all components.\n *\n * WARNING: This import is intended for prototyping and development builds only.\n * Import only the individual components used for production.\n */\n\n// LINT.IfChange(imports)\n// go/keep-sorted start\nimport './button/elevated-button.js';\nimport './button/filled-button.js';\nimport './button/filled-tonal-button.js';\nimport './button/outlined-button.js';\nimport './button/text-button.js';\nimport './checkbox/checkbox.js';\nimport './chips/assist-chip.js';\nimport './chips/chip-set.js';\nimport './chips/filter-chip.js';\nimport './chips/input-chip.js';\nimport './chips/suggestion-chip.js';\nimport './dialog/dialog.js';\nimport './divider/divider.js';\nimport './elevation/elevation.js';\nimport './fab/branded-fab.js';\nimport './fab/fab.js';\nimport './field/filled-field.js';\nimport './field/outlined-field.js';\nimport './focus/md-focus-ring.js';\nimport './icon/icon.js';\nimport './iconbutton/filled-icon-button.js';\nimport './iconbutton/filled-tonal-icon-button.js';\nimport './iconbutton/icon-button.js';\nimport './iconbutton/outlined-icon-button.js';\nimport './list/list.js';\nimport './list/list-item.js';\nimport './menu/menu.js';\nimport './menu/menu-item.js';\nimport './menu/sub-menu.js';\nimport './progress/circular-progress.js';\nimport './progress/linear-progress.js';\nimport './radio/radio.js';\nimport './ripple/ripple.js';\nimport './select/filled-select.js';\nimport './select/outlined-select.js';\nimport './select/select-option.js';\nimport './slider/slider.js';\nimport './switch/switch.js';\nimport './tabs/primary-tab.js';\nimport './tabs/secondary-tab.js';\nimport './tabs/tabs.js';\nimport './textfield/filled-text-field.js';\nimport './textfield/outlined-text-field.js';\n// go/keep-sorted end\n// LINT.ThenChange(:exports)\n\n// LINT.IfChange(exports)\n// go/keep-sorted start\nexport * from './button/elevated-button.js';\nexport * from './button/filled-button.js';\nexport * from './button/filled-tonal-button.js';\nexport * from './button/outlined-button.js';\nexport * from './button/text-button.js';\nexport * from './checkbox/checkbox.js';\nexport * from './chips/assist-chip.js';\nexport * from './chips/chip-set.js';\nexport * from './chips/filter-chip.js';\nexport * from './chips/input-chip.js';\nexport * from './chips/suggestion-chip.js';\nexport * from './dialog/dialog.js';\nexport * from './divider/divider.js';\nexport * from './elevation/elevation.js';\nexport * from './fab/branded-fab.js';\nexport * from './fab/fab.js';\nexport * from './field/filled-field.js';\nexport * from './field/outlined-field.js';\nexport * from './focus/md-focus-ring.js';\nexport * from './icon/icon.js';\nexport * from './iconbutton/filled-icon-button.js';\nexport * from './iconbutton/filled-tonal-icon-button.js';\nexport * from './iconbutton/icon-button.js';\nexport * from './iconbutton/outlined-icon-button.js';\nexport * from './list/list.js';\nexport * from './list/list-item.js';\nexport * from './menu/menu.js';\nexport * from './menu/menu-item.js';\nexport * from './menu/sub-menu.js';\nexport * from './progress/circular-progress.js';\nexport * from './progress/linear-progress.js';\nexport * from './radio/radio.js';\nexport * from './ripple/ripple.js';\nexport * from './select/filled-select.js';\nexport * from './select/outlined-select.js';\nexport * from './select/select-option.js';\nexport * from './slider/slider.js';\nexport * from './switch/switch.js';\nexport * from './tabs/primary-tab.js';\nexport * from './tabs/secondary-tab.js';\nexport * from './tabs/tabs.js';\nexport * from './textfield/filled-text-field.js';\nexport * from './textfield/outlined-text-field.js';\n// go/keep-sorted end\n// LINT.ThenChange(:imports)\n"]}
@@ -33,7 +33,11 @@ import { styles as sharedStyles } from './internal/shared-styles.css.js';
33
33
  */
34
34
  export let MdElevatedButton = class MdElevatedButton extends ElevatedButton {
35
35
  };
36
- MdElevatedButton.styles = [sharedStyles, sharedElevationStyles, elevatedStyles];
36
+ MdElevatedButton.styles = [
37
+ sharedStyles,
38
+ sharedElevationStyles,
39
+ elevatedStyles,
40
+ ];
37
41
  MdElevatedButton = __decorate([
38
42
  customElement('md-elevated-button')
39
43
  ], MdElevatedButton);
@@ -1 +1 @@
1
- {"version":3,"file":"elevated-button.js","sourceRoot":"","sources":["elevated-button.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;AAEH,OAAO,EAAC,aAAa,EAAC,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAC,cAAc,EAAC,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAC,MAAM,IAAI,cAAc,EAAC,MAAM,mCAAmC,CAAC;AAC3E,OAAO,EAAC,MAAM,IAAI,qBAAqB,EAAC,MAAM,2CAA2C,CAAC;AAC1F,OAAO,EAAC,MAAM,IAAI,YAAY,EAAC,MAAM,iCAAiC,CAAC;AAQvE;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEI,WAAM,gBAAgB,GAAtB,MAAM,gBAAiB,SAAQ,cAAc;;AAClC,uBAAM,GAClB,CAAC,YAAY,EAAE,qBAAqB,EAAE,cAAc,CAAC,AADnC,CACoC;AAF/C,gBAAgB;IAD5B,aAAa,CAAC,oBAAoB,CAAC;GACvB,gBAAgB,CAG5B","sourcesContent":["/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {customElement} from 'lit/decorators.js';\n\nimport {ElevatedButton} from './internal/elevated-button.js';\nimport {styles as elevatedStyles} from './internal/elevated-styles.css.js';\nimport {styles as sharedElevationStyles} from './internal/shared-elevation-styles.css.js';\nimport {styles as sharedStyles} from './internal/shared-styles.css.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'md-elevated-button': MdElevatedButton;\n }\n}\n\n/**\n * @summary Buttons help people take action, such as sending an email, sharing a\n * document, or liking a comment.\n *\n * @description\n * __Emphasis:__ Medium emphasis – For important actions that don’t distract\n * from other onscreen elements.\n *\n * __Rationale:__ Elevated buttons are essentially filled buttons with a lighter\n * background color and a shadow. To prevent shadow creep, only use them when\n * absolutely necessary, such as when the button requires visual separation from\n * a patterned background.\n *\n * __Example usages:__\n * - Reply\n * - View all\n * - Add to cart\n * - Take out of trash\n *\n * @final\n * @suppress {visibility}\n */\n@customElement('md-elevated-button')\nexport class MdElevatedButton extends ElevatedButton {\n static override styles =\n [sharedStyles, sharedElevationStyles, elevatedStyles];\n}\n"]}
1
+ {"version":3,"file":"elevated-button.js","sourceRoot":"","sources":["elevated-button.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;AAEH,OAAO,EAAC,aAAa,EAAC,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAC,cAAc,EAAC,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAC,MAAM,IAAI,cAAc,EAAC,MAAM,mCAAmC,CAAC;AAC3E,OAAO,EAAC,MAAM,IAAI,qBAAqB,EAAC,MAAM,2CAA2C,CAAC;AAC1F,OAAO,EAAC,MAAM,IAAI,YAAY,EAAC,MAAM,iCAAiC,CAAC;AAQvE;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEI,WAAM,gBAAgB,GAAtB,MAAM,gBAAiB,SAAQ,cAAc;;AAClC,uBAAM,GAAG;IACvB,YAAY;IACZ,qBAAqB;IACrB,cAAc;CACf,AAJqB,CAIpB;AALS,gBAAgB;IAD5B,aAAa,CAAC,oBAAoB,CAAC;GACvB,gBAAgB,CAM5B","sourcesContent":["/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {customElement} from 'lit/decorators.js';\n\nimport {ElevatedButton} from './internal/elevated-button.js';\nimport {styles as elevatedStyles} from './internal/elevated-styles.css.js';\nimport {styles as sharedElevationStyles} from './internal/shared-elevation-styles.css.js';\nimport {styles as sharedStyles} from './internal/shared-styles.css.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'md-elevated-button': MdElevatedButton;\n }\n}\n\n/**\n * @summary Buttons help people take action, such as sending an email, sharing a\n * document, or liking a comment.\n *\n * @description\n * __Emphasis:__ Medium emphasis – For important actions that don’t distract\n * from other onscreen elements.\n *\n * __Rationale:__ Elevated buttons are essentially filled buttons with a lighter\n * background color and a shadow. To prevent shadow creep, only use them when\n * absolutely necessary, such as when the button requires visual separation from\n * a patterned background.\n *\n * __Example usages:__\n * - Reply\n * - View all\n * - Add to cart\n * - Take out of trash\n *\n * @final\n * @suppress {visibility}\n */\n@customElement('md-elevated-button')\nexport class MdElevatedButton extends ElevatedButton {\n static override styles = [\n sharedStyles,\n sharedElevationStyles,\n elevatedStyles,\n ];\n}\n"]}
@@ -20,50 +20,50 @@ $_md-sys-motion: tokens.md-sys-motion-values();
20
20
  transition-timing-function: map.get($_md-sys-motion, 'emphasized-easing');
21
21
  }
22
22
 
23
- .button:disabled md-elevation {
23
+ :host([disabled]) md-elevation {
24
24
  transition: none;
25
25
  }
26
26
 
27
- .button {
27
+ md-elevation {
28
28
  @include elevation.theme(
29
29
  (
30
30
  'level': var(--_container-elevation),
31
31
  'shadow-color': var(--_container-shadow-color),
32
32
  )
33
33
  );
34
+ }
34
35
 
35
- // apply elevation in order of focused, hovered, pressed, disabled
36
- // this ensures a button will have hover elevation after being focused
37
- &:focus {
38
- @include elevation.theme(
39
- (
40
- 'level': var(--_focus-container-elevation),
41
- )
42
- );
43
- }
36
+ // apply elevation in order of focused, hovered, pressed, disabled
37
+ // this ensures a button will have hover elevation after being focused
38
+ :host(:focus-within) md-elevation {
39
+ @include elevation.theme(
40
+ (
41
+ 'level': var(--_focus-container-elevation),
42
+ )
43
+ );
44
+ }
44
45
 
45
- &:hover {
46
- @include elevation.theme(
47
- (
48
- 'level': var(--_hover-container-elevation),
49
- )
50
- );
51
- }
46
+ :host(:hover) md-elevation {
47
+ @include elevation.theme(
48
+ (
49
+ 'level': var(--_hover-container-elevation),
50
+ )
51
+ );
52
+ }
52
53
 
53
- &:active {
54
- @include elevation.theme(
55
- (
56
- 'level': var(--_pressed-container-elevation),
57
- )
58
- );
59
- }
54
+ :host(:active) md-elevation {
55
+ @include elevation.theme(
56
+ (
57
+ 'level': var(--_pressed-container-elevation),
58
+ )
59
+ );
60
+ }
60
61
 
61
- &:disabled {
62
- @include elevation.theme(
63
- (
64
- 'level': var(--_disabled-container-elevation),
65
- )
66
- );
67
- }
62
+ :host([disabled]) md-elevation {
63
+ @include elevation.theme(
64
+ (
65
+ 'level': var(--_disabled-container-elevation),
66
+ )
67
+ );
68
68
  }
69
69
  }
@@ -8,32 +8,31 @@
8
8
  // class, which is loaded separately so the order of CSS definitions is not
9
9
  // guaranteed. Therefore, increase specifity to ensure overrides apply.
10
10
  ::slotted([slot='icon']) {
11
- .button & {
12
- display: inline-flex;
13
- position: relative;
14
- writing-mode: horizontal-tb;
15
- fill: currentColor;
16
- color: var(--_icon-color);
17
- font-size: var(--_icon-size);
18
- inline-size: var(--_icon-size);
19
- block-size: var(--_icon-size);
20
- }
11
+ display: inline-flex;
12
+ position: relative;
13
+ writing-mode: horizontal-tb;
14
+ fill: currentColor;
15
+ flex-shrink: 0;
16
+ color: var(--_icon-color);
17
+ font-size: var(--_icon-size);
18
+ inline-size: var(--_icon-size);
19
+ block-size: var(--_icon-size);
20
+ }
21
21
 
22
- .button:hover & {
23
- color: var(--_hover-icon-color);
24
- }
22
+ :host(:hover) ::slotted([slot='icon']) {
23
+ color: var(--_hover-icon-color);
24
+ }
25
25
 
26
- .button:focus & {
27
- color: var(--_focus-icon-color);
28
- }
26
+ :host(:focus-within) ::slotted([slot='icon']) {
27
+ color: var(--_focus-icon-color);
28
+ }
29
29
 
30
- .button:active & {
31
- color: var(--_pressed-icon-color);
32
- }
30
+ :host(:active) ::slotted([slot='icon']) {
31
+ color: var(--_pressed-icon-color);
32
+ }
33
33
 
34
- .button:disabled & {
35
- color: var(--_disabled-icon-color);
36
- opacity: var(--_disabled-icon-opacity);
37
- }
34
+ :host([disabled]) ::slotted([slot='icon']) {
35
+ color: var(--_disabled-icon-color);
36
+ opacity: var(--_disabled-icon-opacity);
38
37
  }
39
38
  }
@@ -64,7 +64,7 @@
64
64
  );
65
65
  }
66
66
 
67
- .button__outline {
67
+ .outline {
68
68
  inset: 0;
69
69
  border-style: solid;
70
70
  position: absolute;
@@ -74,37 +74,39 @@
74
74
  border-start-end-radius: var(--_container-shape-start-end);
75
75
  border-end-start-radius: var(--_container-shape-end-start);
76
76
  border-end-end-radius: var(--_container-shape-end-end);
77
+ }
77
78
 
78
- .button:active & {
79
- border-color: var(--_pressed-outline-color);
80
- }
79
+ :host(:active) .outline {
80
+ border-color: var(--_pressed-outline-color);
81
+ }
81
82
 
82
- .button:disabled & {
83
- border-color: var(--_disabled-outline-color);
84
- opacity: var(--_disabled-outline-opacity);
83
+ :host([disabled]) .outline {
84
+ border-color: var(--_disabled-outline-color);
85
+ opacity: var(--_disabled-outline-opacity);
86
+ }
87
+
88
+ @media (forced-colors: active) {
89
+ :host([disabled]) .background {
90
+ // Only outlined buttons change their border when disabled to distinguish
91
+ // them from other buttons that add a border for increased visibility in
92
+ // HCM.
93
+ border-color: GrayText;
85
94
  }
86
95
 
87
- @media (forced-colors: active) {
88
- .button:disabled & {
89
- opacity: 1;
90
- }
96
+ :host([disabled]) .outline {
97
+ opacity: 1;
91
98
  }
92
99
  }
93
100
 
94
- .button__outline,
95
- .button__ripple {
101
+ .outline,
102
+ md-ripple {
96
103
  border-width: var(--_outline-width);
97
104
  }
98
105
 
99
- .button__ripple {
106
+ md-ripple {
100
107
  inline-size: calc(100% - 2 * var(--_outline-width));
101
108
  block-size: calc(100% - 2 * var(--_outline-width));
102
109
  border-style: solid;
103
110
  border-color: transparent;
104
111
  }
105
112
  }
106
-
107
- @function _resolve-tokens($tokens) {
108
- $tokens: shared.remove-unsupported-tokens($tokens);
109
- @return $tokens;
110
- }
@@ -13,13 +13,37 @@
13
13
 
14
14
  @mixin styles() {
15
15
  :host {
16
+ border-start-start-radius: var(--_container-shape-start-start);
17
+ border-start-end-radius: var(--_container-shape-start-end);
18
+ border-end-start-radius: var(--_container-shape-end-start);
19
+ border-end-end-radius: var(--_container-shape-end-end);
20
+ box-sizing: border-box;
21
+ cursor: pointer;
16
22
  display: inline-flex;
17
- height: var(--_container-height);
23
+ gap: 8px;
24
+ // min-height instead of height so that label can wrap and expand height
25
+ min-height: var(--_container-height);
18
26
  outline: none;
27
+ // Add extra space between label and the edge for if the label text wraps.
28
+ // The padding added should be relative to the height of the container and
29
+ // the height of its content on a single line (label or icon, whichever is
30
+ // bigger).
31
+ $single-line-height: max(var(--_label-text-line-height), var(--_icon-size));
32
+ padding-block: calc((var(--_container-height) - $single-line-height) / 2);
33
+ padding-inline-start: var(--_leading-space);
34
+ padding-inline-end: var(--_trailing-space);
35
+ place-content: center;
36
+ place-items: center;
37
+ position: relative;
19
38
  font-family: var(--_label-text-font);
20
39
  font-size: var(--_label-text-size);
21
40
  line-height: var(--_label-text-line-height);
22
41
  font-weight: var(--_label-text-weight);
42
+ // Long labels are cut off with ellipsis by default. `text-overflow` and
43
+ // `text-wrap` can customize this.
44
+ text-overflow: ellipsis;
45
+ text-wrap: nowrap;
46
+ user-select: none;
23
47
  -webkit-tap-highlight-color: transparent;
24
48
  // Override vertical-align with shortest value "top". Vertical-align's
25
49
  // default "baseline" value causes buttons to be misaligned next to each
@@ -36,10 +60,6 @@
36
60
  );
37
61
  }
38
62
 
39
- :host([touch-target='wrapper']) {
40
- margin: max(0px, (48px - var(--_container-height)) / 2) 0;
41
- }
42
-
43
63
  md-focus-ring {
44
64
  @include focus-ring.theme(
45
65
  (
@@ -57,113 +77,100 @@
57
77
  }
58
78
 
59
79
  .button {
80
+ border-radius: inherit;
81
+ cursor: inherit;
60
82
  display: inline-flex;
61
83
  align-items: center;
62
84
  justify-content: center;
63
- box-sizing: border-box;
64
- min-inline-size: 64px;
65
85
  border: none;
66
86
  outline: none;
67
- user-select: none;
68
87
  -webkit-appearance: none;
69
88
  vertical-align: middle;
70
89
  background: transparent;
71
90
  text-decoration: none;
72
- inline-size: 100%;
73
- position: relative;
91
+ // Buttons have a default min-width of 64px. This can be overridden by
92
+ // setting a smaller min-width on the host. The 64px button will be centered
93
+ // within the bounds of the smaller host element.
94
+ min-width: calc(64px - var(--_leading-space) - var(--_trailing-space));
95
+ width: 100%;
74
96
  z-index: 0; // Place content on top of elevation and ripple
75
97
  height: 100%;
76
98
  font: inherit;
77
99
  color: var(--_label-text-color);
78
- // TODO(b/181413732): Verify token below are named correctly
79
- padding-inline-start: var(--_leading-space);
80
- padding-inline-end: var(--_trailing-space);
81
- gap: 8px;
82
-
83
- &::before {
84
- // Background color. Separate node for disabled opacity styles.
85
- background-color: var(--_container-color);
86
- border-radius: inherit;
87
- content: '';
88
- inset: 0;
89
- position: absolute;
90
- }
100
+ padding: 0;
101
+ gap: inherit;
91
102
 
92
103
  &::-moz-focus-inner {
93
104
  padding: 0;
94
105
  border: 0;
95
106
  }
107
+ }
96
108
 
97
- &:hover {
98
- color: var(--_hover-label-text-color);
99
- cursor: pointer;
100
- }
109
+ :host(:hover) .button {
110
+ color: var(--_hover-label-text-color);
111
+ }
101
112
 
102
- &:focus {
103
- color: var(--_focus-label-text-color);
104
- }
113
+ :host(:focus-within) .button {
114
+ color: var(--_focus-label-text-color);
115
+ }
105
116
 
106
- &:active {
107
- color: var(--_pressed-label-text-color);
108
- outline: none;
109
- }
117
+ :host(:active) .button {
118
+ color: var(--_pressed-label-text-color);
119
+ }
110
120
 
111
- &:disabled .button__label {
112
- color: var(--_disabled-label-text-color);
113
- opacity: var(--_disabled-label-text-opacity);
114
- }
121
+ .background {
122
+ // Background color. Separate node for disabled opacity styles.
123
+ background-color: var(--_container-color);
124
+ border-radius: inherit;
125
+ inset: 0;
126
+ position: absolute;
127
+ }
115
128
 
116
- &:disabled::before {
117
- background-color: var(--_disabled-container-color);
118
- opacity: var(--_disabled-container-opacity);
119
- }
129
+ .label {
130
+ overflow: hidden;
131
+ }
120
132
 
121
- @media (forced-colors: active) {
122
- &::before {
123
- content: '';
124
- box-sizing: border-box;
125
- border: 1px solid CanvasText;
126
- border-radius: inherit;
127
- inset: 0;
128
- pointer-events: none;
129
- position: absolute;
130
- }
131
-
132
- &:disabled {
133
- --_disabled-icon-opacity: 1;
134
- --_disabled-container-opacity: 1;
135
- --_disabled-label-text-opacity: 1;
136
- }
137
- }
133
+ // Inherit text-overflow down through label and slotted content so that it
134
+ // can be customized on the host.
135
+ :is(.button, .label, .label slot),
136
+ .label ::slotted(*) {
137
+ text-overflow: inherit;
138
138
  }
139
139
 
140
- .button,
141
- .button__ripple {
142
- border-start-start-radius: var(--_container-shape-start-start);
143
- border-start-end-radius: var(--_container-shape-start-end);
144
- border-end-start-radius: var(--_container-shape-end-start);
145
- border-end-end-radius: var(--_container-shape-end-end);
140
+ :host([disabled]) .label {
141
+ color: var(--_disabled-label-text-color);
142
+ opacity: var(--_disabled-label-text-opacity);
143
+ }
144
+
145
+ :host([disabled]) .background {
146
+ background-color: var(--_disabled-container-color);
147
+ opacity: var(--_disabled-container-opacity);
146
148
  }
147
149
 
148
- .button::after,
149
- .button::before,
150
- md-elevation,
151
- .button__ripple {
152
- z-index: -1; // Place behind content
150
+ @media (forced-colors: active) {
151
+ .background {
152
+ // Use CanvasText to increase visibility of buttons when the background
153
+ // is not rendered. Buttons that use outlines by default should change The
154
+ // outline color to GrayText when disabled.
155
+ border: 1px solid CanvasText;
156
+ }
157
+
158
+ :host([disabled]) {
159
+ --_disabled-icon-color: GrayText;
160
+ --_disabled-icon-opacity: 1;
161
+ --_disabled-container-opacity: 1;
162
+ --_disabled-label-text-color: GrayText;
163
+ --_disabled-label-text-opacity: 1;
164
+ }
153
165
  }
154
166
 
155
- // TODO(b/181413732): Verify token below are named correctly
156
- .button--icon-leading {
167
+ :host([has-icon]:not([trailing-icon])) {
157
168
  padding-inline-start: var(--_with-leading-icon-leading-space);
158
169
  padding-inline-end: var(--_with-leading-icon-trailing-space);
159
170
  }
160
171
 
161
- .button--icon-trailing {
172
+ :host([has-icon][trailing-icon]) {
162
173
  padding-inline-start: var(--_with-trailing-icon-leading-space);
163
174
  padding-inline-end: var(--_with-trailing-icon-trailing-space);
164
175
  }
165
-
166
- .link-button-wrapper {
167
- inline-size: 100%;
168
- }
169
176
  }
@@ -13,6 +13,10 @@
13
13
  transform: translateY(-50%);
14
14
  }
15
15
 
16
+ :host([touch-target='wrapper']) {
17
+ margin: max(0px, (48px - var(--_container-height)) / 2) 0;
18
+ }
19
+
16
20
  :host([touch-target='none']) .touch {
17
21
  display: none;
18
22
  }
@@ -6,12 +6,12 @@
6
6
  import '../../focus/md-focus-ring.js';
7
7
  import '../../ripple/ripple.js';
8
8
  import { LitElement } from 'lit';
9
- import { internals } from '../../internal/controller/element-internals.js';
10
9
  import { FormSubmitter, FormSubmitterType } from '../../internal/controller/form-submitter.js';
10
+ declare const buttonBaseClass: import("../../labs/behaviors/mixin.js").MixinReturn<typeof LitElement, import("../../labs/behaviors/element-internals.js").WithElementInternals>;
11
11
  /**
12
12
  * A button component.
13
13
  */
14
- export declare abstract class Button extends LitElement implements FormSubmitter {
14
+ export declare abstract class Button extends buttonBaseClass implements FormSubmitter {
15
15
  /** @nocollapse */
16
16
  static readonly formAssociated = true;
17
17
  /** @nocollapse */
@@ -50,19 +50,15 @@ export declare abstract class Button extends LitElement implements FormSubmitter
50
50
  get form(): HTMLFormElement;
51
51
  private readonly buttonElement;
52
52
  private readonly assignedIcons;
53
- /** @private */
54
- [internals]: ElementInternals;
55
53
  constructor();
56
54
  focus(): void;
57
55
  blur(): void;
58
- protected render(): import("lit-html").TemplateResult;
59
- protected getRenderClasses(): {
60
- 'button--icon-leading': boolean;
61
- 'button--icon-trailing': boolean;
62
- };
63
- protected renderElevation?(): unknown;
64
- protected renderOutline?(): unknown;
56
+ protected render(): import("lit-html").TemplateResult<1>;
57
+ protected renderElevationOrOutline?(): unknown;
58
+ private renderButton;
59
+ private renderLink;
65
60
  private renderContent;
66
61
  private readonly handleActivationClick;
67
62
  private handleSlotChange;
68
63
  }
64
+ export {};