@material/web 1.0.0-pre.14 → 1.0.0-pre.16

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 (377) hide show
  1. package/README.md +24 -19
  2. package/all.d.ts +4 -8
  3. package/all.js +4 -8
  4. package/all.js.map +1 -1
  5. package/button/{_tonal-button.scss → _filled-tonal-button.scss} +1 -1
  6. package/button/{tonal-button.d.ts → filled-tonal-button.d.ts} +3 -3
  7. package/button/{tonal-button.js → filled-tonal-button.js} +9 -9
  8. package/button/filled-tonal-button.js.map +1 -0
  9. package/button/internal/_filled-button.scss +0 -1
  10. package/button/internal/{_tonal-button.scss → _filled-tonal-button.scss} +7 -7
  11. package/button/internal/_outlined-button.scss +6 -0
  12. package/button/internal/_shared.scss +19 -8
  13. package/button/internal/_touch-target.scss +5 -1
  14. package/button/internal/button.d.ts +19 -22
  15. package/button/internal/button.js +48 -79
  16. package/button/internal/button.js.map +1 -1
  17. package/button/internal/elevated-styles.css.js +1 -1
  18. package/button/internal/elevated-styles.css.js.map +1 -1
  19. package/button/internal/filled-styles.css.js +1 -1
  20. package/button/internal/filled-styles.css.js.map +1 -1
  21. package/button/internal/{tonal-button.d.ts → filled-tonal-button.d.ts} +2 -2
  22. package/button/internal/{tonal-button.js → filled-tonal-button.js} +3 -3
  23. package/button/internal/filled-tonal-button.js.map +1 -0
  24. package/button/internal/filled-tonal-styles.css.js +9 -0
  25. package/button/internal/filled-tonal-styles.css.js.map +1 -0
  26. package/button/internal/{tonal-styles.scss → filled-tonal-styles.scss} +2 -2
  27. package/button/internal/outlined-styles.css.js +1 -1
  28. package/button/internal/outlined-styles.css.js.map +1 -1
  29. package/button/internal/shared-elevation-styles.css.js +1 -1
  30. package/button/internal/shared-elevation-styles.css.js.map +1 -1
  31. package/button/internal/shared-styles.css.js +1 -1
  32. package/button/internal/shared-styles.css.js.map +1 -1
  33. package/button/internal/text-styles.css.js +1 -1
  34. package/button/internal/text-styles.css.js.map +1 -1
  35. package/checkbox/internal/_checkbox.scss +23 -78
  36. package/checkbox/internal/checkbox-styles.css.js +1 -1
  37. package/checkbox/internal/checkbox-styles.css.js.map +1 -1
  38. package/checkbox/internal/checkbox.d.ts +78 -7
  39. package/checkbox/internal/checkbox.js +136 -23
  40. package/checkbox/internal/checkbox.js.map +1 -1
  41. package/chips/assist-chip.js +1 -2
  42. package/chips/assist-chip.js.map +1 -1
  43. package/chips/filter-chip.js +1 -3
  44. package/chips/filter-chip.js.map +1 -1
  45. package/chips/input-chip.js +1 -5
  46. package/chips/input-chip.js.map +1 -1
  47. package/chips/internal/_assist-chip.scss +6 -0
  48. package/chips/internal/_elevated.scss +1 -1
  49. package/chips/internal/_filter-chip.scss +6 -0
  50. package/chips/internal/_input-chip.scss +32 -0
  51. package/chips/internal/_selectable.scss +17 -13
  52. package/chips/internal/_shared.scss +25 -10
  53. package/chips/internal/_suggestion-chip.scss +6 -0
  54. package/chips/internal/_trailing-icon.scss +24 -24
  55. package/chips/internal/assist-styles.css.js +1 -1
  56. package/chips/internal/assist-styles.css.js.map +1 -1
  57. package/chips/internal/chip-set.js +1 -3
  58. package/chips/internal/chip-set.js.map +1 -1
  59. package/chips/internal/chip.js +1 -3
  60. package/chips/internal/chip.js.map +1 -1
  61. package/chips/internal/elevated-styles.css.js +1 -1
  62. package/chips/internal/elevated-styles.css.js.map +1 -1
  63. package/chips/internal/filter-chip.d.ts +1 -0
  64. package/chips/internal/filter-chip.js +12 -6
  65. package/chips/internal/filter-chip.js.map +1 -1
  66. package/chips/internal/filter-styles.css.js +1 -1
  67. package/chips/internal/filter-styles.css.js.map +1 -1
  68. package/chips/internal/input-styles.css.js +1 -1
  69. package/chips/internal/input-styles.css.js.map +1 -1
  70. package/chips/internal/selectable-styles.css.js +1 -1
  71. package/chips/internal/selectable-styles.css.js.map +1 -1
  72. package/chips/internal/shared-styles.css.js +1 -1
  73. package/chips/internal/shared-styles.css.js.map +1 -1
  74. package/chips/internal/suggestion-styles.css.js +1 -1
  75. package/chips/internal/suggestion-styles.css.js.map +1 -1
  76. package/chips/internal/trailing-icon-styles.css.js +1 -1
  77. package/chips/internal/trailing-icon-styles.css.js.map +1 -1
  78. package/chips/suggestion-chip.js +1 -2
  79. package/chips/suggestion-chip.js.map +1 -1
  80. package/common.d.ts +2 -6
  81. package/common.js +2 -6
  82. package/common.js.map +1 -1
  83. package/dialog/harness.d.ts +1 -6
  84. package/dialog/harness.js +2 -43
  85. package/dialog/harness.js.map +1 -1
  86. package/dialog/internal/_dialog.scss +165 -281
  87. package/dialog/internal/animations.d.ts +47 -0
  88. package/dialog/internal/animations.js +117 -0
  89. package/dialog/internal/animations.js.map +1 -0
  90. package/dialog/internal/dialog-styles.css.js +1 -1
  91. package/dialog/internal/dialog-styles.css.js.map +1 -1
  92. package/dialog/internal/dialog.d.ts +76 -169
  93. package/dialog/internal/dialog.js +251 -475
  94. package/dialog/internal/dialog.js.map +1 -1
  95. package/elevation/internal/_elevation.scss +14 -7
  96. package/elevation/internal/elevation-styles.css.js +1 -1
  97. package/elevation/internal/elevation-styles.css.js.map +1 -1
  98. package/fab/branded-fab.d.ts +0 -1
  99. package/fab/internal/_fab.scss +15 -10
  100. package/fab/internal/_shared.scss +16 -1
  101. package/fab/internal/fab-styles.css.js +1 -1
  102. package/fab/internal/fab-styles.css.js.map +1 -1
  103. package/fab/internal/fab.d.ts +0 -1
  104. package/fab/internal/shared-styles.css.js +1 -1
  105. package/fab/internal/shared-styles.css.js.map +1 -1
  106. package/fab/internal/shared.d.ts +0 -13
  107. package/fab/internal/shared.js +5 -31
  108. package/fab/internal/shared.js.map +1 -1
  109. package/field/internal/filled-styles.css.js +1 -1
  110. package/field/internal/filled-styles.css.js.map +1 -1
  111. package/field/internal/outlined-styles.css.js +1 -1
  112. package/field/internal/outlined-styles.css.js.map +1 -1
  113. package/focus/internal/_focus-ring.scss +52 -48
  114. package/focus/internal/focus-ring-styles.css.js +1 -1
  115. package/focus/internal/focus-ring-styles.css.js.map +1 -1
  116. package/focus/internal/focus-ring.d.ts +2 -1
  117. package/focus/internal/focus-ring.js +10 -0
  118. package/focus/internal/focus-ring.js.map +1 -1
  119. package/icon/internal/_icon.scss +26 -20
  120. package/icon/internal/icon-styles.css.js +1 -1
  121. package/icon/internal/icon-styles.css.js.map +1 -1
  122. package/icon/internal/icon.d.ts +1 -0
  123. package/icon/internal/icon.js +9 -0
  124. package/icon/internal/icon.js.map +1 -1
  125. package/iconbutton/{_standard-icon-button.scss → _icon-button.scss} +1 -1
  126. package/iconbutton/{standard-icon-button.d.ts → icon-button.d.ts} +2 -2
  127. package/iconbutton/{standard-icon-button.js → icon-button.js} +7 -7
  128. package/iconbutton/icon-button.js.map +1 -0
  129. package/iconbutton/internal/_filled-icon-button.scss +8 -6
  130. package/iconbutton/internal/_filled-tonal-icon-button.scss +8 -6
  131. package/iconbutton/internal/{_standard-icon-button.scss → _icon-button.scss} +12 -8
  132. package/iconbutton/internal/_outlined-icon-button.scss +14 -14
  133. package/iconbutton/internal/_shared.scss +15 -9
  134. package/iconbutton/internal/filled-styles.css.js +1 -1
  135. package/iconbutton/internal/filled-styles.css.js.map +1 -1
  136. package/iconbutton/internal/filled-tonal-styles.css.js +1 -1
  137. package/iconbutton/internal/filled-tonal-styles.css.js.map +1 -1
  138. package/iconbutton/internal/icon-button.d.ts +25 -3
  139. package/iconbutton/internal/icon-button.js +45 -6
  140. package/iconbutton/internal/icon-button.js.map +1 -1
  141. package/iconbutton/internal/outlined-styles.css.js +1 -1
  142. package/iconbutton/internal/outlined-styles.css.js.map +1 -1
  143. package/iconbutton/internal/shared-styles.css.js +1 -1
  144. package/iconbutton/internal/shared-styles.css.js.map +1 -1
  145. package/iconbutton/internal/standard-styles.css.js +1 -1
  146. package/iconbutton/internal/standard-styles.css.js.map +1 -1
  147. package/iconbutton/internal/standard-styles.scss +2 -2
  148. package/internal/aria/delegate.d.ts +1 -1
  149. package/internal/aria/delegate.js +1 -1
  150. package/internal/aria/delegate.js.map +1 -1
  151. package/internal/controller/element-internals.d.ts +35 -0
  152. package/internal/controller/element-internals.js +24 -0
  153. package/internal/controller/element-internals.js.map +1 -0
  154. package/internal/controller/form-submitter.d.ts +72 -0
  155. package/internal/controller/form-submitter.js +71 -0
  156. package/internal/controller/form-submitter.js.map +1 -0
  157. package/labs/badge/internal/_badge.scss +11 -8
  158. package/labs/navigationbar/internal/_navigation-bar.scss +11 -9
  159. package/labs/navigationbar/internal/navigation-bar-styles.css.js +1 -1
  160. package/labs/navigationbar/internal/navigation-bar-styles.css.js.map +1 -1
  161. package/labs/navigationbar/internal/navigation-bar.js +1 -3
  162. package/labs/navigationbar/internal/navigation-bar.js.map +1 -1
  163. package/labs/navigationdrawer/internal/_navigation-drawer-modal.scss +11 -8
  164. package/labs/navigationdrawer/internal/_navigation-drawer.scss +11 -8
  165. package/labs/navigationdrawer/internal/navigation-drawer-modal-styles.css.js +1 -1
  166. package/labs/navigationdrawer/internal/navigation-drawer-modal-styles.css.js.map +1 -1
  167. package/labs/navigationdrawer/internal/navigation-drawer-modal.js +1 -3
  168. package/labs/navigationdrawer/internal/navigation-drawer-modal.js.map +1 -1
  169. package/labs/navigationdrawer/internal/navigation-drawer-styles.css.js +1 -1
  170. package/labs/navigationdrawer/internal/navigation-drawer-styles.css.js.map +1 -1
  171. package/labs/navigationdrawer/internal/navigation-drawer.js +1 -3
  172. package/labs/navigationdrawer/internal/navigation-drawer.js.map +1 -1
  173. package/labs/navigationtab/internal/_navigation-tab.scss +10 -10
  174. package/labs/navigationtab/internal/navigation-tab.js +1 -3
  175. package/labs/navigationtab/internal/navigation-tab.js.map +1 -1
  176. package/labs/segmentedbutton/internal/_outlined-segmented-button.scss +1 -3
  177. package/labs/segmentedbutton/internal/outlined-styles.css.js +1 -1
  178. package/labs/segmentedbutton/internal/outlined-styles.css.js.map +1 -1
  179. package/labs/segmentedbutton/internal/segmented-button.js +1 -3
  180. package/labs/segmentedbutton/internal/segmented-button.js.map +1 -1
  181. package/labs/segmentedbuttonset/internal/outlined-styles.css.js +1 -1
  182. package/labs/segmentedbuttonset/internal/outlined-styles.css.js.map +1 -1
  183. package/labs/segmentedbuttonset/internal/segmented-button-set.js +1 -3
  184. package/labs/segmentedbuttonset/internal/segmented-button-set.js.map +1 -1
  185. package/list/internal/_list.scss +6 -2
  186. package/list/internal/list-styles.css.js +1 -1
  187. package/list/internal/list-styles.css.js.map +1 -1
  188. package/list/internal/list.d.ts +2 -2
  189. package/list/internal/list.js +1 -3
  190. package/list/internal/list.js.map +1 -1
  191. package/list/internal/listitem/_list-item.scss +87 -131
  192. package/list/internal/listitem/forced-colors-styles.css.js +1 -1
  193. package/list/internal/listitem/forced-colors-styles.css.js.map +1 -1
  194. package/list/internal/listitem/forced-colors-styles.scss +6 -6
  195. package/list/internal/listitem/list-item-styles.css.js +1 -1
  196. package/list/internal/listitem/list-item-styles.css.js.map +1 -1
  197. package/list/internal/listitem/list-item.d.ts +15 -3
  198. package/list/internal/listitem/list-item.js +43 -10
  199. package/list/internal/listitem/list-item.js.map +1 -1
  200. package/menu/internal/_menu.scss +6 -3
  201. package/menu/internal/menu-styles.css.js +1 -1
  202. package/menu/internal/menu-styles.css.js.map +1 -1
  203. package/menu/internal/menu.js +9 -10
  204. package/menu/internal/menu.js.map +1 -1
  205. package/menu/internal/menuitem/_menu-item.scss +8 -5
  206. package/menu/internal/menuitem/forced-colors-styles.css.js +1 -1
  207. package/menu/internal/menuitem/forced-colors-styles.css.js.map +1 -1
  208. package/menu/internal/menuitem/forced-colors-styles.scss +1 -1
  209. package/menu/internal/menuitem/menu-item-styles.css.js +1 -1
  210. package/menu/internal/menuitem/menu-item-styles.css.js.map +1 -1
  211. package/menu/internal/menuitem/menu-item.d.ts +9 -0
  212. package/menu/internal/menuitem/menu-item.js +18 -4
  213. package/menu/internal/menuitem/menu-item.js.map +1 -1
  214. package/menu/internal/shared.d.ts +45 -38
  215. package/menu/internal/shared.js +29 -40
  216. package/menu/internal/shared.js.map +1 -1
  217. package/menu/internal/submenuitem/sub-menu-item.d.ts +22 -12
  218. package/menu/internal/submenuitem/sub-menu-item.js +39 -24
  219. package/menu/internal/submenuitem/sub-menu-item.js.map +1 -1
  220. package/menu/menu-item.d.ts +1 -1
  221. package/menu/menu-item.js +0 -1
  222. package/menu/menu-item.js.map +1 -1
  223. package/menu/menu.d.ts +1 -1
  224. package/menu/menu.js +0 -1
  225. package/menu/menu.js.map +1 -1
  226. package/menu/sub-menu-item.d.ts +1 -1
  227. package/menu/sub-menu-item.js +0 -1
  228. package/menu/sub-menu-item.js.map +1 -1
  229. package/package.json +1 -3
  230. package/progress/harness.js +2 -4
  231. package/progress/harness.js.map +1 -1
  232. package/progress/internal/_circular-progress.scss +4 -4
  233. package/progress/internal/_linear-progress.scss +93 -132
  234. package/progress/internal/circular-progress-styles.css.js +1 -1
  235. package/progress/internal/circular-progress-styles.css.js.map +1 -1
  236. package/progress/internal/circular-progress.js +1 -1
  237. package/progress/internal/circular-progress.js.map +1 -1
  238. package/progress/internal/linear-progress-styles.css.js +1 -1
  239. package/progress/internal/linear-progress-styles.css.js.map +1 -1
  240. package/progress/internal/linear-progress.d.ts +0 -11
  241. package/progress/internal/linear-progress.js +4 -48
  242. package/progress/internal/linear-progress.js.map +1 -1
  243. package/progress/internal/progress.js +1 -3
  244. package/progress/internal/progress.js.map +1 -1
  245. package/radio/internal/_radio.scss +38 -24
  246. package/radio/internal/forced-colors-styles.css.js +1 -1
  247. package/radio/internal/forced-colors-styles.css.js.map +1 -1
  248. package/radio/internal/forced-colors-styles.scss +4 -4
  249. package/radio/internal/radio-styles.css.js +1 -1
  250. package/radio/internal/radio-styles.css.js.map +1 -1
  251. package/radio/internal/radio.d.ts +1 -1
  252. package/radio/internal/radio.js +7 -6
  253. package/radio/internal/radio.js.map +1 -1
  254. package/ripple/internal/_ripple.scss +1 -1
  255. package/ripple/internal/ripple-styles.css.js +1 -1
  256. package/ripple/internal/ripple-styles.css.js.map +1 -1
  257. package/select/internal/_filled-select.scss +2 -3
  258. package/select/internal/_outlined-select.scss +2 -3
  259. package/select/internal/_shared.scss +30 -1
  260. package/select/internal/filled-select-styles.css.js +1 -1
  261. package/select/internal/filled-select-styles.css.js.map +1 -1
  262. package/select/internal/outlined-select-styles.css.js +1 -1
  263. package/select/internal/outlined-select-styles.css.js.map +1 -1
  264. package/select/internal/select.d.ts +0 -5
  265. package/select/internal/select.js +11 -16
  266. package/select/internal/select.js.map +1 -1
  267. package/select/internal/selectoption/select-option.d.ts +5 -6
  268. package/select/internal/selectoption/select-option.js +8 -9
  269. package/select/internal/selectoption/select-option.js.map +1 -1
  270. package/select/internal/shared-styles.css.js +1 -1
  271. package/select/internal/shared-styles.css.js.map +1 -1
  272. package/select/internal/shared.d.ts +5 -9
  273. package/select/internal/shared.js +13 -11
  274. package/select/internal/shared.js.map +1 -1
  275. package/slider/internal/_slider.scss +33 -28
  276. package/slider/internal/forced-colors-styles.css.js +1 -1
  277. package/slider/internal/forced-colors-styles.css.js.map +1 -1
  278. package/slider/internal/slider-styles.css.js +1 -1
  279. package/slider/internal/slider-styles.css.js.map +1 -1
  280. package/slider/internal/slider.d.ts +22 -8
  281. package/slider/internal/slider.js +114 -25
  282. package/slider/internal/slider.js.map +1 -1
  283. package/switch/internal/_handle.scss +12 -12
  284. package/switch/internal/_icon.scss +8 -8
  285. package/switch/internal/_switch.scss +9 -1
  286. package/switch/internal/_track.scss +10 -10
  287. package/switch/internal/forced-colors-styles.css.js +1 -1
  288. package/switch/internal/forced-colors-styles.css.js.map +1 -1
  289. package/switch/internal/forced-colors-styles.scss +12 -12
  290. package/switch/internal/switch-styles.css.js +1 -1
  291. package/switch/internal/switch-styles.css.js.map +1 -1
  292. package/switch/internal/switch.d.ts +1 -1
  293. package/switch/internal/switch.js +3 -5
  294. package/switch/internal/switch.js.map +1 -1
  295. package/tabs/internal/_tab.scss +77 -21
  296. package/tabs/internal/_tabs.scss +1 -0
  297. package/tabs/internal/tab-styles.css.js +1 -1
  298. package/tabs/internal/tab-styles.css.js.map +1 -1
  299. package/tabs/internal/tab.d.ts +3 -9
  300. package/tabs/internal/tab.js +4 -8
  301. package/tabs/internal/tab.js.map +1 -1
  302. package/tabs/internal/tabs.d.ts +1 -4
  303. package/tabs/internal/tabs.js +5 -10
  304. package/tabs/internal/tabs.js.map +1 -1
  305. package/textfield/harness.js +4 -0
  306. package/textfield/harness.js.map +1 -1
  307. package/textfield/internal/filled-styles.css.js +1 -1
  308. package/textfield/internal/filled-styles.css.js.map +1 -1
  309. package/textfield/internal/outlined-styles.css.js +1 -1
  310. package/textfield/internal/outlined-styles.css.js.map +1 -1
  311. package/textfield/internal/text-field.d.ts +11 -10
  312. package/textfield/internal/text-field.js +60 -35
  313. package/textfield/internal/text-field.js.map +1 -1
  314. package/tokens/_index.scss +1 -0
  315. package/tokens/_md-comp-checkbox.scss +16 -16
  316. package/tokens/_md-comp-dialog.scss +2 -1
  317. package/tokens/_md-comp-elevated-button.scss +14 -12
  318. package/tokens/_md-comp-filled-button.scss +14 -12
  319. package/tokens/_md-comp-filled-field.scss +2 -2
  320. package/tokens/_md-comp-filled-icon-button.scss +23 -8
  321. package/tokens/_md-comp-filled-select.scss +22 -1
  322. package/tokens/_md-comp-filled-text-field.scss +3 -1
  323. package/tokens/_md-comp-filled-tonal-button.scss +14 -12
  324. package/tokens/_md-comp-filled-tonal-icon-button.scss +23 -8
  325. package/tokens/_md-comp-icon-button.scss +24 -11
  326. package/tokens/_md-comp-icon.scss +32 -0
  327. package/tokens/_md-comp-list-item.scss +117 -103
  328. package/tokens/_md-comp-menu-item.scss +3 -3
  329. package/tokens/_md-comp-outlined-button.scss +14 -12
  330. package/tokens/_md-comp-outlined-field.scss +2 -1
  331. package/tokens/_md-comp-outlined-icon-button.scss +26 -12
  332. package/tokens/_md-comp-outlined-segmented-button.scss +2 -2
  333. package/tokens/_md-comp-outlined-select.scss +8 -0
  334. package/tokens/_md-comp-outlined-text-field.scss +3 -1
  335. package/tokens/_md-comp-radio-button.scss +20 -9
  336. package/tokens/_md-comp-switch.scss +66 -32
  337. package/tokens/_md-comp-text-button.scss +14 -12
  338. package/button/internal/tonal-button.js.map +0 -1
  339. package/button/internal/tonal-styles.css.js +0 -9
  340. package/button/internal/tonal-styles.css.js.map +0 -1
  341. package/button/tonal-button.js.map +0 -1
  342. package/chips/internal/assist-forced-colors-styles.css.d.ts +0 -1
  343. package/chips/internal/assist-forced-colors-styles.css.js +0 -9
  344. package/chips/internal/assist-forced-colors-styles.css.js.map +0 -1
  345. package/chips/internal/assist-forced-colors-styles.scss +0 -27
  346. package/chips/internal/filter-forced-colors-styles.css.d.ts +0 -1
  347. package/chips/internal/filter-forced-colors-styles.css.js +0 -9
  348. package/chips/internal/filter-forced-colors-styles.css.js.map +0 -1
  349. package/chips/internal/filter-forced-colors-styles.scss +0 -34
  350. package/chips/internal/input-forced-colors-styles.css.d.ts +0 -1
  351. package/chips/internal/input-forced-colors-styles.css.js +0 -9
  352. package/chips/internal/input-forced-colors-styles.css.js.map +0 -1
  353. package/chips/internal/input-forced-colors-styles.scss +0 -39
  354. package/chips/internal/suggestion-forced-colors-styles.css.d.ts +0 -1
  355. package/chips/internal/suggestion-forced-colors-styles.css.js +0 -9
  356. package/chips/internal/suggestion-forced-colors-styles.css.js.map +0 -1
  357. package/chips/internal/suggestion-forced-colors-styles.scss +0 -27
  358. package/dialog/internal/_tokens.scss +0 -66
  359. package/icon/internal/_md-comp-icon.scss +0 -18
  360. package/iconbutton/standard-icon-button.js.map +0 -1
  361. package/internal/sass/_theme.scss +0 -249
  362. package/list/internal/listitemlink/list-item-link-only.d.ts +0 -23
  363. package/list/internal/listitemlink/list-item-link-only.js +0 -36
  364. package/list/internal/listitemlink/list-item-link-only.js.map +0 -1
  365. package/list/internal/listitemlink/list-item-link.d.ts +0 -18
  366. package/list/internal/listitemlink/list-item-link.js +0 -42
  367. package/list/internal/listitemlink/list-item-link.js.map +0 -1
  368. package/list/list-item-link.d.ts +0 -53
  369. package/list/list-item-link.js +0 -57
  370. package/list/list-item-link.js.map +0 -1
  371. package/menu/internal/menuitemlink/menu-item-link.d.ts +0 -23
  372. package/menu/internal/menuitemlink/menu-item-link.js +0 -49
  373. package/menu/internal/menuitemlink/menu-item-link.js.map +0 -1
  374. package/menu/menu-item-link.d.ts +0 -33
  375. package/menu/menu-item-link.js +0 -38
  376. package/menu/menu-item-link.js.map +0 -1
  377. /package/button/internal/{tonal-styles.css.d.ts → filled-tonal-styles.css.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"segmented-button-set.js","sourceRoot":"","sources":["segmented-button-set.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;;AAEH,OAAO,EAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAC,MAAM,KAAK,CAAC;AAC9C,OAAO,EAAC,QAAQ,EAAE,qBAAqB,EAAC,MAAM,mBAAmB,CAAC;AAGlE,OAAO,EAAC,yBAAyB,EAAC,MAAM,oCAAoC,CAAC;AAG7E;;;;GAIG;AACH,MAAM,OAAO,kBAAmB,SAAQ,UAAU;IAAlD;;QAK6B,gBAAW,GAAG,KAAK,CAAC;IAsFjD,CAAC;IAlFC,iBAAiB,CAAC,KAAa;QAC7B,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QAC/C,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC;IACtC,CAAC;IAED,iBAAiB,CAAC,KAAa,EAAE,QAAiB;QAChD,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;YAAE,OAAO;QACzC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC1C,CAAC;IAED,iBAAiB,CAAC,KAAa;QAC7B,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QAC/C,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC;IACtC,CAAC;IAED,iBAAiB,CAAC,KAAa,EAAE,QAAiB;QAChD,8BAA8B;QAC9B,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;YAAE,OAAO;QACzC,2BAA2B;QAC3B,IAAI,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC;YAAE,OAAO;QAE1C,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,QAAQ,CAAC;YACxC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;YAC/B,OAAO;SACR;QAED,wDAAwD;QACxD,IAAI,CAAC,QAAQ;YAAE,OAAO;QAEtB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC;QACpC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAC/B,gDAAgD;QAChD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC5C,IAAI,CAAC,KAAK,KAAK;gBAAE,SAAS;YAC1B,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC;SAClC;IACH,CAAC;IAEO,gCAAgC,CAAC,KAAkB;QACzD,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,MAAyB,CAAC,CAAC;QACpE,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAEO,eAAe,CAAC,KAAa;QACnC,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;YAAE,OAAO;QACzC,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC/D,CAAC;IAEO,gBAAgB,CAAC,KAAa;QACpC,OAAO,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;IACnD,CAAC;IAEO,kBAAkB,CAAC,KAAa;QACtC,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,gCAAgC,EAAE;YACnE,MAAM,EAAE;gBACN,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;gBAC3B,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ;gBACtC,KAAK;aACN;YACD,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC,CAAC;IACN,CAAC;IAEkB,MAAM;QACvB,iCAAiC;QACjC,MAAM,EAAC,SAAS,EAAC,GAAG,IAAuB,CAAC;QAC5C,OAAO,IAAI,CAAA;;;wCAGyB,IAAI,CAAC,gCAAgC;oBACzD,SAAS,IAAI,OAAO;;;;MAIlC,CAAC;IACL,CAAC;IAES,gBAAgB;QACxB,OAAO,EAAE,CAAC;IACZ,CAAC;CACF;;AA1FC;IACE,yBAAyB,CAAC,EAAI,CAAC,CAAC;AAClC,CAAC,GAAA,CAAA;AAE0B;IAA1B,QAAQ,CAAC,EAAC,IAAI,EAAE,OAAO,EAAC,CAAC;uDAAqB;AAEP;IAAvC,qBAAqB,CAAC,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC;mDAA6B","sourcesContent":["/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {html, LitElement, nothing} from 'lit';\nimport {property, queryAssignedElements} from 'lit/decorators.js';\n\nimport {ARIAMixinStrict} from '../../../internal/aria/aria.js';\nimport {requestUpdateOnAriaChange} from '../../../internal/aria/delegate.js';\nimport {SegmentedButton} from '../../segmentedbutton/internal/segmented-button.js';\n\n/**\n * SegmentedButtonSet is the parent component for two or more\n * `SegmentedButton` components. **Only** `SegmentedButton` components may be\n * used as children.\n */\nexport class SegmentedButtonSet extends LitElement {\n static {\n requestUpdateOnAriaChange(this);\n }\n\n @property({type: Boolean}) multiselect = false;\n\n @queryAssignedElements({flatten: true}) buttons!: SegmentedButton[];\n\n getButtonDisabled(index: number): boolean {\n if (this.indexOutOfBounds(index)) return false;\n return this.buttons[index].disabled;\n }\n\n setButtonDisabled(index: number, disabled: boolean) {\n if (this.indexOutOfBounds(index)) return;\n this.buttons[index].disabled = disabled;\n }\n\n getButtonSelected(index: number): boolean {\n if (this.indexOutOfBounds(index)) return false;\n return this.buttons[index].selected;\n }\n\n setButtonSelected(index: number, selected: boolean) {\n // Ignore out-of-index values.\n if (this.indexOutOfBounds(index)) return;\n // Ignore disabled buttons.\n if (this.getButtonDisabled(index)) return;\n\n if (this.multiselect) {\n this.buttons[index].selected = selected;\n this.emitSelectionEvent(index);\n return;\n }\n\n // Single-select segmented buttons are not unselectable.\n if (!selected) return;\n\n this.buttons[index].selected = true;\n this.emitSelectionEvent(index);\n // Deselect all other buttons for single-select.\n for (let i = 0; i < this.buttons.length; i++) {\n if (i === index) continue;\n this.buttons[i].selected = false;\n }\n }\n\n private handleSegmentedButtonInteraction(event: CustomEvent) {\n const index = this.buttons.indexOf(event.target as SegmentedButton);\n this.toggleSelection(index);\n }\n\n private toggleSelection(index: number) {\n if (this.indexOutOfBounds(index)) return;\n this.setButtonSelected(index, !this.buttons[index].selected);\n }\n\n private indexOutOfBounds(index: number): boolean {\n return index < 0 || index >= this.buttons.length;\n }\n\n private emitSelectionEvent(index: number) {\n this.dispatchEvent(new CustomEvent('segmented-button-set-selection', {\n detail: {\n button: this.buttons[index],\n selected: this.buttons[index].selected,\n index,\n },\n bubbles: true,\n composed: true\n }));\n }\n\n protected override render() {\n // Needed for closure conformance\n const {ariaLabel} = this as ARIAMixinStrict;\n return html`\n <span\n role=\"group\"\n @segmented-button-interaction=\"${this.handleSegmentedButtonInteraction}\"\n aria-label=${ariaLabel || nothing}\n class=\"md3-segmented-button-set\">\n <slot></slot>\n </span>\n `;\n }\n\n protected getRenderClasses() {\n return {};\n }\n}\n"]}
1
+ {"version":3,"file":"segmented-button-set.js","sourceRoot":"","sources":["segmented-button-set.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {html, LitElement, nothing} from 'lit';\nimport {property, queryAssignedElements} from 'lit/decorators.js';\n\nimport {ARIAMixinStrict} from '../../../internal/aria/aria.js';\nimport {requestUpdateOnAriaChange} from '../../../internal/aria/delegate.js';\nimport {SegmentedButton} from '../../segmentedbutton/internal/segmented-button.js';\n\n/**\n * SegmentedButtonSet is the parent component for two or more\n * `SegmentedButton` components. **Only** `SegmentedButton` components may be\n * used as children.\n */\nexport class SegmentedButtonSet extends LitElement {\n static {\n requestUpdateOnAriaChange(SegmentedButtonSet);\n }\n\n @property({type: Boolean}) multiselect = false;\n\n @queryAssignedElements({flatten: true}) buttons!: SegmentedButton[];\n\n getButtonDisabled(index: number): boolean {\n if (this.indexOutOfBounds(index)) return false;\n return this.buttons[index].disabled;\n }\n\n setButtonDisabled(index: number, disabled: boolean) {\n if (this.indexOutOfBounds(index)) return;\n this.buttons[index].disabled = disabled;\n }\n\n getButtonSelected(index: number): boolean {\n if (this.indexOutOfBounds(index)) return false;\n return this.buttons[index].selected;\n }\n\n setButtonSelected(index: number, selected: boolean) {\n // Ignore out-of-index values.\n if (this.indexOutOfBounds(index)) return;\n // Ignore disabled buttons.\n if (this.getButtonDisabled(index)) return;\n\n if (this.multiselect) {\n this.buttons[index].selected = selected;\n this.emitSelectionEvent(index);\n return;\n }\n\n // Single-select segmented buttons are not unselectable.\n if (!selected) return;\n\n this.buttons[index].selected = true;\n this.emitSelectionEvent(index);\n // Deselect all other buttons for single-select.\n for (let i = 0; i < this.buttons.length; i++) {\n if (i === index) continue;\n this.buttons[i].selected = false;\n }\n }\n\n private handleSegmentedButtonInteraction(event: CustomEvent) {\n const index = this.buttons.indexOf(event.target as SegmentedButton);\n this.toggleSelection(index);\n }\n\n private toggleSelection(index: number) {\n if (this.indexOutOfBounds(index)) return;\n this.setButtonSelected(index, !this.buttons[index].selected);\n }\n\n private indexOutOfBounds(index: number): boolean {\n return index < 0 || index >= this.buttons.length;\n }\n\n private emitSelectionEvent(index: number) {\n this.dispatchEvent(new CustomEvent('segmented-button-set-selection', {\n detail: {\n button: this.buttons[index],\n selected: this.buttons[index].selected,\n index,\n },\n bubbles: true,\n composed: true\n }));\n }\n\n protected override render() {\n // Needed for closure conformance\n const {ariaLabel} = this as ARIAMixinStrict;\n return html`\n <span\n role=\"group\"\n @segmented-button-interaction=\"${this.handleSegmentedButtonInteraction}\"\n aria-label=${ariaLabel || nothing}\n class=\"md3-segmented-button-set\">\n <slot></slot>\n </span>\n `;\n }\n\n protected getRenderClasses() {\n return {};\n }\n}\n"]}
@@ -12,15 +12,18 @@
12
12
  @use 'sass:string';
13
13
  // go/keep-sorted end
14
14
  // go/keep-sorted start
15
- @use '../../internal/sass/theme';
16
15
  @use '../../tokens';
17
16
  @use './listitem/list-item';
18
17
  // go/keep-sorted end
19
18
 
20
19
  @mixin theme($tokens) {
21
- $tokens: theme.validate-theme(tokens.md-comp-list-values(), $tokens);
20
+ $supported-tokens: tokens.$md-comp-list-supported-tokens;
22
21
 
23
22
  @each $token, $value in $tokens {
23
+ @if list.index($supported-tokens, $token) == null {
24
+ @error 'Token `#{$token}` is not a supported token.';
25
+ }
26
+
24
27
  @if $value {
25
28
  --md-list-#{$token}: #{$value};
26
29
  }
@@ -36,6 +39,7 @@
36
39
  }
37
40
 
38
41
  color: unset;
42
+ display: flex;
39
43
  }
40
44
 
41
45
  .md3-list {
@@ -4,6 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  import { css } from 'lit';
7
- export const styles = css `:host{--_container-color: var(--md-list-container-color, var(--md-sys-color-surface, #fef7ff));color:unset}.md3-list{background-color:var(--_container-color);border-radius:inherit;display:block;list-style-type:none;margin:0;min-width:inherit;outline:none;padding:8px 0;position:relative}/*# sourceMappingURL=list-styles.css.map */
7
+ export const styles = css `:host{--_container-color: var(--md-list-container-color, var(--md-sys-color-surface, #fef7ff));color:unset;display:flex}.md3-list{background-color:var(--_container-color);border-radius:inherit;display:block;list-style-type:none;margin:0;min-width:inherit;outline:none;padding:8px 0;position:relative}/*# sourceMappingURL=list-styles.css.map */
8
8
  `;
9
9
  //# sourceMappingURL=list-styles.css.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"list-styles.css.js","sourceRoot":"","sources":["list-styles.css.ts"],"names":[],"mappings":"AAAA;;;;IAII;AACH,OAAO,EAAC,GAAG,EAAC,MAAM,KAAK,CAAC;AACxB,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;CACzB,CAAC","sourcesContent":["/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n import {css} from 'lit';\n export const styles = css`:host{--_container-color: var(--md-list-container-color, var(--md-sys-color-surface, #fef7ff));color:unset}.md3-list{background-color:var(--_container-color);border-radius:inherit;display:block;list-style-type:none;margin:0;min-width:inherit;outline:none;padding:8px 0;position:relative}/*# sourceMappingURL=list-styles.css.map */\n`;\n "]}
1
+ {"version":3,"file":"list-styles.css.js","sourceRoot":"","sources":["list-styles.css.ts"],"names":[],"mappings":"AAAA;;;;IAII;AACH,OAAO,EAAC,GAAG,EAAC,MAAM,KAAK,CAAC;AACxB,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;CACzB,CAAC","sourcesContent":["/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n import {css} from 'lit';\n export const styles = css`:host{--_container-color: var(--md-list-container-color, var(--md-sys-color-surface, #fef7ff));color:unset;display:flex}.md3-list{background-color:var(--_container-color);border-radius:inherit;display:block;list-style-type:none;margin:0;min-width:inherit;outline:none;padding:8px 0;position:relative}/*# sourceMappingURL=list-styles.css.map */\n`;\n "]}
@@ -22,7 +22,7 @@ export declare class List extends LitElement {
22
22
  * The tabindex of the underlying list.
23
23
  */
24
24
  listTabIndex: number;
25
- listRoot: HTMLElement | null;
25
+ private listRoot;
26
26
  /**
27
27
  * An array of activatable and disableable list items. Queries every assigned
28
28
  * element that has the `md-list-item` attribute.
@@ -46,7 +46,7 @@ export declare class List extends LitElement {
46
46
  *
47
47
  * @param event {KeyboardEvent} The keyboard event that triggers this handler.
48
48
  */
49
- handleKeydown(event: KeyboardEvent): void;
49
+ private handleKeydown;
50
50
  private activateNextItemInternal;
51
51
  private activatePreviousItemInternal;
52
52
  /**
@@ -3,7 +3,6 @@
3
3
  * Copyright 2021 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- var _a;
7
6
  import { __decorate } from "tslib";
8
7
  import { html, LitElement, nothing } from 'lit';
9
8
  import { property, query, queryAssignedElements } from 'lit/decorators.js';
@@ -284,9 +283,8 @@ export class List extends LitElement {
284
283
  return items[index] ? items[index] : null;
285
284
  }
286
285
  }
287
- _a = List;
288
286
  (() => {
289
- requestUpdateOnAriaChange(_a);
287
+ requestUpdateOnAriaChange(List);
290
288
  })();
291
289
  /** @nocollapse */
292
290
  List.shadowRootOptions = { mode: 'open', delegatesFocus: true };
@@ -1 +1 @@
1
- {"version":3,"file":"list.js","sourceRoot":"","sources":["list.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {html, LitElement, nothing} from 'lit';\nimport {property, query, queryAssignedElements} from 'lit/decorators.js';\n\nimport {ARIAMixinStrict, ARIARole} from '../../internal/aria/aria.js';\nimport {requestUpdateOnAriaChange} from '../../internal/aria/delegate.js';\n\nimport {ListItem} from './listitem/list-item.js';\n\nconst NAVIGABLE_KEYS = {\n ArrowDown: 'ArrowDown',\n ArrowUp: 'ArrowUp',\n Home: 'Home',\n End: 'End',\n} as const;\n\n/**\n * A record that describes a list item in a list with metadata such a reference\n * to the item and its index in the list.\n */\nexport interface ItemRecord {\n item: ListItem;\n index: number;\n}\n\ntype NavigatableValues = typeof NAVIGABLE_KEYS[keyof typeof NAVIGABLE_KEYS];\n\nconst navigableKeySet = new Set(Object.values(NAVIGABLE_KEYS));\n\nfunction isNavigableKey(key: string): key is NavigatableValues {\n return navigableKeySet.has(key as NavigatableValues);\n}\n\n// tslint:disable-next-line:enforce-comments-on-exported-symbols\nexport class List extends LitElement {\n static {\n requestUpdateOnAriaChange(this);\n }\n\n /** @nocollapse */\n static override shadowRootOptions:\n ShadowRootInit = {mode: 'open', delegatesFocus: true};\n\n @property() type: ARIARole|'' = 'list';\n\n /**\n * The tabindex of the underlying list.\n */\n @property({type: Number, attribute: 'list-tabindex'}) listTabIndex = 0;\n\n @query('.md3-list') listRoot!: HTMLElement|null;\n\n /**\n * An array of activatable and disableable list items. Queries every assigned\n * element that has the `md-list-item` attribute.\n *\n * _NOTE:_ This is a shallow, flattened query via\n * `HTMLSlotElement.queryAssignedElements` and thus will _only_ include direct\n * children / directly slotted elements.\n */\n @queryAssignedElements({flatten: true, selector: '[md-list-item]'})\n items!: ListItem[];\n\n protected override render() {\n return this.renderList();\n }\n\n /**\n * Renders the main list element.\n */\n private renderList() {\n // Needed for closure conformance\n const {ariaLabel} = this as ARIAMixinStrict;\n return html`\n <ul class=\"md3-list\"\n aria-label=${ariaLabel || nothing}\n tabindex=${this.listTabIndex}\n role=${this.type || nothing}\n @keydown=${this.handleKeydown}\n >\n ${this.renderContent()}\n </ul>\n `;\n }\n\n /**\n * The content to be slotted into the list.\n */\n private renderContent() {\n return html`<span><slot @click=${(event: Event) => {\n event.stopPropagation();\n }}></slot></span>`;\n }\n\n /**\n * Handles keyboard navigation in the list.\n *\n * @param event {KeyboardEvent} The keyboard event that triggers this handler.\n */\n handleKeydown(event: KeyboardEvent) {\n const key = event.key;\n if (!isNavigableKey(key)) {\n return;\n }\n // do not use this.items directly so we don't re-query the DOM unnecessarily\n const items = this.items;\n\n if (!items.length) {\n return;\n }\n\n const activeItemRecord = List.getActiveItem(items);\n\n if (activeItemRecord) {\n activeItemRecord.item.active = false;\n }\n\n event.preventDefault();\n\n switch (key) {\n // Activate the next item\n case NAVIGABLE_KEYS.ArrowDown:\n this.activateNextItemInternal(items, activeItemRecord);\n break;\n\n // Activate the previous item\n case NAVIGABLE_KEYS.ArrowUp:\n this.activatePreviousItemInternal(items, activeItemRecord);\n break;\n\n // Activate the first item\n case NAVIGABLE_KEYS.Home:\n List.activateFirstItem(items);\n break;\n\n // Activate the last item\n case NAVIGABLE_KEYS.End:\n List.activateLastItem(items);\n break;\n\n default:\n break;\n }\n }\n\n private activateNextItemInternal(\n items: ListItem[], activeItemRecord: null|ItemRecord): ListItem|null {\n if (activeItemRecord) {\n const next = List.getNextItem(items, activeItemRecord.index);\n\n if (next) next.active = true;\n\n return next;\n } else {\n return List.activateFirstItem(items);\n }\n }\n\n private activatePreviousItemInternal(\n items: ListItem[], activeItemRecord: null|ItemRecord): ListItem|null {\n if (activeItemRecord) {\n const prev = List.getPrevItem(items, activeItemRecord.index);\n if (prev) prev.active = true;\n return prev;\n } else {\n return List.activateLastItem(items);\n }\n }\n\n /**\n * Activates the next item in the list. If at the end of the list, the first\n * item will be activated.\n *\n * @return The activated list item or `null` if there are no items.\n */\n activateNextItem(): ListItem|null {\n const items = this.items;\n const activeItemRecord = List.getActiveItem(items);\n if (activeItemRecord) {\n activeItemRecord.item.active = false;\n }\n return this.activateNextItemInternal(items, activeItemRecord);\n }\n\n /**\n * Activates the previous item in the list. If at the start of the list, the\n * last item will be activated.\n *\n * @return The activated list item or `null` if there are no items.\n */\n activatePreviousItem(): ListItem|null {\n const items = this.items;\n const activeItemRecord = List.getActiveItem(items);\n if (activeItemRecord) {\n activeItemRecord.item.active = false;\n }\n return this.activatePreviousItemInternal(items, activeItemRecord);\n }\n\n /**\n * Activates the first non-disabled item of a given array of items.\n *\n * @param items {Array<ListItem>} The items from which to activate the\n * first item.\n * @nocollapse\n */\n static activateFirstItem<T extends ListItem>(items: T[]) {\n // NOTE: These selector functions are static and not on the instance such\n // that multiple operations can be chained and we do not have to re-query\n // the DOM\n const firstItem = List.getFirstActivatableItem(items);\n if (firstItem) {\n firstItem.active = true;\n }\n return firstItem;\n }\n\n /**\n * Activates the last non-disabled item of a given array of items.\n *\n * @param items {Array<ListItem>} The items from which to activate the\n * last item.\n * @nocollapse\n */\n static activateLastItem<T extends ListItem>(items: T[]) {\n const lastItem = List.getLastActivatableItem(items);\n if (lastItem) {\n lastItem.active = true;\n }\n return lastItem;\n }\n\n /**\n * Deactivates the currently active item of a given array of items.\n *\n * @param items {Array<ListItem>} The items from which to deactivate the\n * active item.\n * @return A record of the deleselcted activated item including the item and\n * the index of the item or `null` if none are deactivated.\n * @nocollapse\n */\n static deactivateActiveItem<T extends ListItem>(items: T[]) {\n const activeItem = List.getActiveItem(items);\n if (activeItem) {\n activeItem.item.active = false;\n }\n return activeItem;\n }\n\n override focus() {\n this.listRoot?.focus();\n }\n\n /**\n * Retrieves the first activated item of a given array of items.\n *\n * @param items {Array<ListItem>} The items to search.\n * @return A record of the first activated item including the item and the\n * index of the item or `null` if none are activated.\n * @nocollapse\n */\n static getActiveItem<T extends ListItem>(items: T[]) {\n for (let i = 0; i < items.length; i++) {\n const item = items[i];\n if (item.active) {\n return {\n item,\n index: i,\n } as ItemRecord;\n }\n }\n return null;\n }\n\n /**\n * Retrieves the first non-disabled item of a given array of items. This\n * the first item that is not disabled.\n *\n * @param items {Array<ListItem>} The items to search.\n * @return The first activatable item or `null` if none are activatable.\n * @nocollapse\n */\n static getFirstActivatableItem<T extends ListItem>(items: T[]) {\n for (const item of items) {\n if (!item.disabled) {\n return item;\n }\n }\n\n return null;\n }\n\n /**\n * Retrieves the last non-disabled item of a given array of items.\n *\n * @param items {Array<ListItem>} The items to search.\n * @return The last activatable item or `null` if none are activatable.\n * @nocollapse\n */\n static getLastActivatableItem<T extends ListItem>(items: T[]) {\n for (let i = items.length - 1; i >= 0; i--) {\n const item = items[i];\n if (!item.disabled) {\n return item;\n }\n }\n\n return null;\n }\n\n /**\n * Retrieves the next non-disabled item of a given array of items.\n *\n * @param items {Array<ListItem>} The items to search.\n * @param index {{index: number}} The index to search from.\n * @return The next activatable item or `null` if none are activatable.\n */\n private static getNextItem<T extends ListItem>(items: T[], index: number) {\n for (let i = 1; i < items.length; i++) {\n const nextIndex = (i + index) % items.length;\n const item = items[nextIndex];\n if (!item.disabled) {\n return item;\n }\n }\n\n return items[index] ? items[index] : null;\n }\n\n /**\n * Retrieves the previous non-disabled item of a given array of items.\n *\n * @param items {Array<ListItem>} The items to search.\n * @param index {{index: number}} The index to search from.\n * @return The previous activatable item or `null` if none are activatable.\n */\n private static getPrevItem<T extends ListItem>(items: T[], index: number) {\n for (let i = 1; i < items.length; i++) {\n const prevIndex = (index - i + items.length) % items.length;\n const item = items[prevIndex];\n\n if (!item.disabled) {\n return item;\n }\n }\n\n return items[index] ? items[index] : null;\n }\n}\n"]}
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["list.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {html, LitElement, nothing} from 'lit';\nimport {property, query, queryAssignedElements} from 'lit/decorators.js';\n\nimport {ARIAMixinStrict, ARIARole} from '../../internal/aria/aria.js';\nimport {requestUpdateOnAriaChange} from '../../internal/aria/delegate.js';\n\nimport {ListItem} from './listitem/list-item.js';\n\nconst NAVIGABLE_KEYS = {\n ArrowDown: 'ArrowDown',\n ArrowUp: 'ArrowUp',\n Home: 'Home',\n End: 'End',\n} as const;\n\n/**\n * A record that describes a list item in a list with metadata such a reference\n * to the item and its index in the list.\n */\nexport interface ItemRecord {\n item: ListItem;\n index: number;\n}\n\ntype NavigatableValues = typeof NAVIGABLE_KEYS[keyof typeof NAVIGABLE_KEYS];\n\nconst navigableKeySet = new Set(Object.values(NAVIGABLE_KEYS));\n\nfunction isNavigableKey(key: string): key is NavigatableValues {\n return navigableKeySet.has(key as NavigatableValues);\n}\n\n// tslint:disable-next-line:enforce-comments-on-exported-symbols\nexport class List extends LitElement {\n static {\n requestUpdateOnAriaChange(List);\n }\n\n /** @nocollapse */\n static override shadowRootOptions:\n ShadowRootInit = {mode: 'open', delegatesFocus: true};\n\n @property() type: ARIARole|'' = 'list';\n\n /**\n * The tabindex of the underlying list.\n */\n @property({type: Number, attribute: 'list-tabindex'}) listTabIndex = 0;\n\n @query('.md3-list') private listRoot!: HTMLElement|null;\n\n /**\n * An array of activatable and disableable list items. Queries every assigned\n * element that has the `md-list-item` attribute.\n *\n * _NOTE:_ This is a shallow, flattened query via\n * `HTMLSlotElement.queryAssignedElements` and thus will _only_ include direct\n * children / directly slotted elements.\n */\n @queryAssignedElements({flatten: true, selector: '[md-list-item]'})\n items!: ListItem[];\n\n protected override render() {\n return this.renderList();\n }\n\n /**\n * Renders the main list element.\n */\n private renderList() {\n // Needed for closure conformance\n const {ariaLabel} = this as ARIAMixinStrict;\n return html`\n <ul class=\"md3-list\"\n aria-label=${ariaLabel || nothing}\n tabindex=${this.listTabIndex}\n role=${this.type || nothing}\n @keydown=${this.handleKeydown}\n >\n ${this.renderContent()}\n </ul>\n `;\n }\n\n /**\n * The content to be slotted into the list.\n */\n private renderContent() {\n return html`<span><slot @click=${(event: Event) => {\n event.stopPropagation();\n }}></slot></span>`;\n }\n\n /**\n * Handles keyboard navigation in the list.\n *\n * @param event {KeyboardEvent} The keyboard event that triggers this handler.\n */\n private handleKeydown(event: KeyboardEvent) {\n const key = event.key;\n if (!isNavigableKey(key)) {\n return;\n }\n // do not use this.items directly so we don't re-query the DOM unnecessarily\n const items = this.items;\n\n if (!items.length) {\n return;\n }\n\n const activeItemRecord = List.getActiveItem(items);\n\n if (activeItemRecord) {\n activeItemRecord.item.active = false;\n }\n\n event.preventDefault();\n\n switch (key) {\n // Activate the next item\n case NAVIGABLE_KEYS.ArrowDown:\n this.activateNextItemInternal(items, activeItemRecord);\n break;\n\n // Activate the previous item\n case NAVIGABLE_KEYS.ArrowUp:\n this.activatePreviousItemInternal(items, activeItemRecord);\n break;\n\n // Activate the first item\n case NAVIGABLE_KEYS.Home:\n List.activateFirstItem(items);\n break;\n\n // Activate the last item\n case NAVIGABLE_KEYS.End:\n List.activateLastItem(items);\n break;\n\n default:\n break;\n }\n }\n\n private activateNextItemInternal(\n items: ListItem[], activeItemRecord: null|ItemRecord): ListItem|null {\n if (activeItemRecord) {\n const next = List.getNextItem(items, activeItemRecord.index);\n\n if (next) next.active = true;\n\n return next;\n } else {\n return List.activateFirstItem(items);\n }\n }\n\n private activatePreviousItemInternal(\n items: ListItem[], activeItemRecord: null|ItemRecord): ListItem|null {\n if (activeItemRecord) {\n const prev = List.getPrevItem(items, activeItemRecord.index);\n if (prev) prev.active = true;\n return prev;\n } else {\n return List.activateLastItem(items);\n }\n }\n\n /**\n * Activates the next item in the list. If at the end of the list, the first\n * item will be activated.\n *\n * @return The activated list item or `null` if there are no items.\n */\n activateNextItem(): ListItem|null {\n const items = this.items;\n const activeItemRecord = List.getActiveItem(items);\n if (activeItemRecord) {\n activeItemRecord.item.active = false;\n }\n return this.activateNextItemInternal(items, activeItemRecord);\n }\n\n /**\n * Activates the previous item in the list. If at the start of the list, the\n * last item will be activated.\n *\n * @return The activated list item or `null` if there are no items.\n */\n activatePreviousItem(): ListItem|null {\n const items = this.items;\n const activeItemRecord = List.getActiveItem(items);\n if (activeItemRecord) {\n activeItemRecord.item.active = false;\n }\n return this.activatePreviousItemInternal(items, activeItemRecord);\n }\n\n /**\n * Activates the first non-disabled item of a given array of items.\n *\n * @param items {Array<ListItem>} The items from which to activate the\n * first item.\n * @nocollapse\n */\n static activateFirstItem<T extends ListItem>(items: T[]) {\n // NOTE: These selector functions are static and not on the instance such\n // that multiple operations can be chained and we do not have to re-query\n // the DOM\n const firstItem = List.getFirstActivatableItem(items);\n if (firstItem) {\n firstItem.active = true;\n }\n return firstItem;\n }\n\n /**\n * Activates the last non-disabled item of a given array of items.\n *\n * @param items {Array<ListItem>} The items from which to activate the\n * last item.\n * @nocollapse\n */\n static activateLastItem<T extends ListItem>(items: T[]) {\n const lastItem = List.getLastActivatableItem(items);\n if (lastItem) {\n lastItem.active = true;\n }\n return lastItem;\n }\n\n /**\n * Deactivates the currently active item of a given array of items.\n *\n * @param items {Array<ListItem>} The items from which to deactivate the\n * active item.\n * @return A record of the deleselcted activated item including the item and\n * the index of the item or `null` if none are deactivated.\n * @nocollapse\n */\n static deactivateActiveItem<T extends ListItem>(items: T[]) {\n const activeItem = List.getActiveItem(items);\n if (activeItem) {\n activeItem.item.active = false;\n }\n return activeItem;\n }\n\n override focus() {\n this.listRoot?.focus();\n }\n\n /**\n * Retrieves the first activated item of a given array of items.\n *\n * @param items {Array<ListItem>} The items to search.\n * @return A record of the first activated item including the item and the\n * index of the item or `null` if none are activated.\n * @nocollapse\n */\n static getActiveItem<T extends ListItem>(items: T[]) {\n for (let i = 0; i < items.length; i++) {\n const item = items[i];\n if (item.active) {\n return {\n item,\n index: i,\n } as ItemRecord;\n }\n }\n return null;\n }\n\n /**\n * Retrieves the first non-disabled item of a given array of items. This\n * the first item that is not disabled.\n *\n * @param items {Array<ListItem>} The items to search.\n * @return The first activatable item or `null` if none are activatable.\n * @nocollapse\n */\n static getFirstActivatableItem<T extends ListItem>(items: T[]) {\n for (const item of items) {\n if (!item.disabled) {\n return item;\n }\n }\n\n return null;\n }\n\n /**\n * Retrieves the last non-disabled item of a given array of items.\n *\n * @param items {Array<ListItem>} The items to search.\n * @return The last activatable item or `null` if none are activatable.\n * @nocollapse\n */\n static getLastActivatableItem<T extends ListItem>(items: T[]) {\n for (let i = items.length - 1; i >= 0; i--) {\n const item = items[i];\n if (!item.disabled) {\n return item;\n }\n }\n\n return null;\n }\n\n /**\n * Retrieves the next non-disabled item of a given array of items.\n *\n * @param items {Array<ListItem>} The items to search.\n * @param index {{index: number}} The index to search from.\n * @return The next activatable item or `null` if none are activatable.\n */\n private static getNextItem<T extends ListItem>(items: T[], index: number) {\n for (let i = 1; i < items.length; i++) {\n const nextIndex = (i + index) % items.length;\n const item = items[nextIndex];\n if (!item.disabled) {\n return item;\n }\n }\n\n return items[index] ? items[index] : null;\n }\n\n /**\n * Retrieves the previous non-disabled item of a given array of items.\n *\n * @param items {Array<ListItem>} The items to search.\n * @param index {{index: number}} The index to search from.\n * @return The previous activatable item or `null` if none are activatable.\n */\n private static getPrevItem<T extends ListItem>(items: T[], index: number) {\n for (let i = 1; i < items.length; i++) {\n const prevIndex = (index - i + items.length) % items.length;\n const item = items[prevIndex];\n\n if (!item.disabled) {\n return item;\n }\n }\n\n return items[index] ? items[index] : null;\n }\n}\n"]}
@@ -4,21 +4,25 @@
4
4
  //
5
5
 
6
6
  // go/keep-sorted start
7
+ @use 'sass:list';
7
8
  @use 'sass:map';
8
9
  @use 'sass:string';
9
10
  // go/keep-sorted end
10
11
  // go/keep-sorted start
11
12
  @use '../../../focus/focus-ring';
12
13
  @use '../../../icon/icon';
13
- @use '../../../internal/sass/theme';
14
14
  @use '../../../ripple/ripple';
15
15
  @use '../../../tokens';
16
16
  // go/keep-sorted end
17
17
 
18
18
  @mixin theme($tokens) {
19
- $tokens: theme.validate-theme(tokens.md-comp-list-item-values(), $tokens);
19
+ $supported-tokens: tokens.$md-comp-list-item-supported-tokens;
20
20
 
21
21
  @each $token, $value in $tokens {
22
+ @if list.index($supported-tokens, $token) == null {
23
+ @error 'Token `#{$token}` is not a supported token.';
24
+ }
25
+
22
26
  @if $value {
23
27
  --md-list-item-#{$token}: #{$value};
24
28
  }
@@ -47,10 +51,10 @@
47
51
 
48
52
  @include ripple.theme(
49
53
  (
50
- hover-color: var(--_list-item-hover-state-layer-color),
51
- hover-opacity: var(--_list-item-hover-state-layer-opacity),
52
- pressed-color: var(--_list-item-pressed-state-layer-color),
53
- pressed-opacity: var(--_list-item-pressed-state-layer-opacity),
54
+ hover-color: var(--_hover-state-layer-color),
55
+ hover-opacity: var(--_hover-state-layer-opacity),
56
+ pressed-color: var(--_pressed-state-layer-color),
57
+ pressed-opacity: var(--_pressed-state-layer-opacity),
54
58
  )
55
59
  );
56
60
  }
@@ -71,8 +75,8 @@
71
75
  position: relative;
72
76
  width: 100%;
73
77
  text-decoration: none;
74
- background-color: var(--_list-item-container-color);
75
- border-radius: var(--_list-item-container-shape);
78
+ background-color: var(--_container-color);
79
+ border-radius: var(--_container-shape);
76
80
  // hide android tap color since we have ripple
77
81
  -webkit-tap-highlight-color: transparent;
78
82
 
@@ -90,7 +94,7 @@
90
94
  width: 100%;
91
95
  box-sizing: border-box;
92
96
  border-radius: inherit;
93
- padding-inline-end: var(--_list-item-trailing-space);
97
+ padding-inline-end: var(--_trailing-space);
94
98
  }
95
99
 
96
100
  md-ripple {
@@ -98,15 +102,15 @@
98
102
  }
99
103
 
100
104
  .with-one-line {
101
- min-height: var(--_list-item-one-line-container-height);
105
+ min-height: var(--_one-line-container-height);
102
106
  }
103
107
 
104
108
  .with-two-line {
105
- min-height: var(--_list-item-two-line-container-height);
109
+ min-height: var(--_two-line-container-height);
106
110
  }
107
111
 
108
112
  .with-three-line {
109
- min-height: var(--_list-item-three-line-container-height);
113
+ min-height: var(--_three-line-container-height);
110
114
  }
111
115
 
112
116
  .start {
@@ -126,7 +130,7 @@
126
130
  &::slotted([data-variant='icon']),
127
131
  &::slotted([data-variant='image']),
128
132
  &::slotted([data-variant='avatar']) {
129
- margin-inline-start: var(--_list-item-leading-element-leading-space);
133
+ margin-inline-start: var(--_leading-element-leading-space);
130
134
  }
131
135
  }
132
136
 
@@ -136,7 +140,7 @@
136
140
  flex-direction: column;
137
141
  box-sizing: border-box;
138
142
  flex: 1 0 0;
139
- padding-inline-start: var(--_list-item-leading-space);
143
+ padding-inline-start: var(--_leading-space);
140
144
  z-index: 1;
141
145
  }
142
146
 
@@ -155,7 +159,7 @@
155
159
  slot[name='end']::slotted(*),
156
160
  .trailing-supporting-text {
157
161
  margin-inline-start: var(
158
- --_list-item-trailing-element-headline-trailing-element-space
162
+ --_trailing-element-headline-trailing-element-space
159
163
  );
160
164
  }
161
165
 
@@ -164,24 +168,24 @@
164
168
  text-overflow: ellipsis;
165
169
  overflow-x: hidden;
166
170
  white-space: nowrap;
167
- color: var(--_list-item-label-text-color);
168
- font: var(--_list-item-label-text-type);
171
+ color: var(--_label-text-color);
172
+ font: var(--_label-text-type);
169
173
 
170
174
  :hover & {
171
- color: var(--_list-item-hover-label-text-color);
175
+ color: var(--_hover-label-text-color);
172
176
  }
173
177
 
174
178
  :focus & {
175
- color: var(--_list-item-focus-label-text-color);
179
+ color: var(--_focus-label-text-color);
176
180
  }
177
181
 
178
182
  :active & {
179
- color: var(--_list-item-pressed-label-text-color);
183
+ color: var(--_pressed-label-text-color);
180
184
  }
181
185
 
182
186
  .disabled & {
183
- color: var(--_list-item-disabled-label-text-color);
184
- opacity: var(--_list-item-disabled-label-text-opacity);
187
+ color: var(--_disabled-label-text-color);
188
+ opacity: var(--_disabled-label-text-opacity);
185
189
  }
186
190
  }
187
191
 
@@ -190,8 +194,8 @@
190
194
  white-space: normal;
191
195
  overflow: hidden;
192
196
  width: 100%;
193
- color: var(--_list-item-supporting-text-color);
194
- font: var(--_list-item-supporting-text-type);
197
+ color: var(--_supporting-text-color);
198
+ font: var(--_supporting-text-type);
195
199
 
196
200
  // Box is supposed to be deprecated, but line-clamp is not. It's still on
197
201
  // standards track and can only be applied with display: -webkit-box and
@@ -202,8 +206,8 @@
202
206
  display: -webkit-box;
203
207
 
204
208
  .disabled & {
205
- color: var(--_list-item-disabled-label-text-color);
206
- opacity: var(--_list-item-disabled-label-text-opacity);
209
+ color: var(--_disabled-label-text-color);
210
+ opacity: var(--_disabled-label-text-opacity);
207
211
  }
208
212
  }
209
213
 
@@ -212,25 +216,24 @@
212
216
  }
213
217
 
214
218
  .trailing-supporting-text {
215
- padding-inline-start: 16px;
216
- font: var(--_list-item-trailing-supporting-text-type);
219
+ font: var(--_trailing-supporting-text-type);
217
220
 
218
221
  .list-item:not(.disabled) & {
219
- color: var(--_list-item-trailing-supporting-text-color);
222
+ color: var(--_trailing-supporting-text-color);
220
223
  }
221
224
 
222
225
  .disabled & {
223
- color: var(--_list-item-disabled-label-text-color);
224
- opacity: var(--_list-item-disabled-label-text-opacity);
226
+ color: var(--_disabled-label-text-color);
227
+ opacity: var(--_disabled-label-text-opacity);
225
228
  }
226
229
 
227
230
  .with-three-line & {
228
231
  // In three line, trailing-supporting-text must align with the mid-line of
229
232
  // the headline text.
230
- padding-block-start: calc(
233
+ margin-block-start: calc(
231
234
  (
232
- var(--_list-item-label-text-line-height) -
233
- var(--_list-item-trailing-supporting-text-line-height)
235
+ var(--_label-text-line-height) -
236
+ var(--_trailing-supporting-text-line-height)
234
237
  ) / 2
235
238
  );
236
239
  }
@@ -244,135 +247,92 @@
244
247
  @mixin _image() {
245
248
  ::slotted([data-variant='image']) {
246
249
  display: inline-flex;
247
- height: var(--_list-item-leading-image-height);
248
- width: var(--_list-item-leading-image-width);
249
- border-radius: var(--_list-item-leading-image-shape);
250
+ height: var(--_leading-image-height);
251
+ width: var(--_leading-image-width);
252
+ border-radius: var(--_leading-image-shape);
250
253
  // Min height is two-line height
251
- padding-block: calc(
252
- (
253
- var(--_list-item-two-line-container-height) -
254
- var(--_list-item-leading-image-height)
255
- ) / 2
254
+ margin-block: calc(
255
+ (var(--_two-line-container-height) - var(--_leading-image-height)) / 2
256
256
  );
257
257
 
258
258
  .with-three-line & {
259
- padding-block: 0;
259
+ margin-block: 0;
260
260
  }
261
261
  }
262
262
  }
263
263
 
264
264
  @mixin _icon() {
265
+ ::slotted(*) {
266
+ fill: currentColor;
267
+ }
268
+
265
269
  slot[name='start']::slotted([data-variant='icon']) {
266
- @include icon.theme(
267
- (
268
- color: var(--_list-item-leading-icon-color),
269
- size: var(--_list-item-leading-icon-size),
270
- )
271
- );
270
+ font-size: var(--_leading-icon-size);
271
+ width: var(--_leading-icon-size);
272
+ height: var(--_leading-icon-size);
273
+ color: var(--_leading-icon-color);
272
274
 
273
275
  .with-three-line & {
274
276
  // In three line, icon must align with the mid-line of headline text
275
- padding-block-start: calc(
276
- (
277
- var(--_list-item-label-text-line-height) -
278
- var(--_list-item-leading-icon-size)
279
- ) / 2
277
+ margin-block-start: calc(
278
+ (var(--_label-text-line-height) - var(--_leading-icon-size)) / 2
280
279
  );
281
280
  }
282
281
  }
283
282
 
284
283
  slot[name='end']::slotted([data-variant='icon']) {
285
- @include icon.theme(
286
- (
287
- color: var(--_list-item-trailing-icon-color),
288
- size: var(--_list-item-trailing-icon-size),
289
- )
290
- );
284
+ font-size: var(--_trailing-icon-size);
285
+ width: var(--_trailing-icon-size);
286
+ height: var(--_trailing-icon-size);
287
+ color: var(--_trailing-icon-color);
291
288
 
292
289
  .with-three-line & {
293
290
  // In three line, icon must align with the mid-line of headline text
294
- padding-block-start: calc(
295
- (
296
- var(--_list-item-label-text-line-height) -
297
- var(--_list-item-trailing-icon-size)
298
- ) / 2
291
+ margin-block-start: calc(
292
+ (var(--_label-text-line-height) - var(--_trailing-icon-size)) / 2
299
293
  );
300
294
  }
301
295
  }
302
296
 
303
297
  :hover {
304
298
  slot[name='start']::slotted([data-variant='icon']) {
305
- @include icon.theme(
306
- (
307
- color: var(--_list-item-hover-leading-icon-icon-color),
308
- )
309
- );
299
+ color: var(--_hover-leading-icon-icon-color);
310
300
  }
311
301
 
312
302
  slot[name='end']::slotted([data-variant='icon']) {
313
- @include icon.theme(
314
- (
315
- color: var(--_list-item-hover-trailing-icon-icon-color),
316
- )
317
- );
303
+ color: var(--_hover-trailing-icon-icon-color);
318
304
  }
319
305
  }
320
306
 
321
307
  :focus {
322
308
  slot[name='start']::slotted([data-variant='icon']) {
323
- @include icon.theme(
324
- (
325
- color: var(--_list-item-focus-leading-icon-icon-color),
326
- )
327
- );
309
+ color: var(--_focus-leading-icon-icon-color);
328
310
  }
329
311
 
330
312
  slot[name='end']::slotted([data-variant='icon']) {
331
- @include icon.theme(
332
- (
333
- color: var(--_list-item-focus-trailing-icon-icon-color),
334
- )
335
- );
313
+ color: var(--_focus-trailing-icon-icon-color);
336
314
  }
337
315
  }
338
316
 
339
317
  :active {
340
318
  slot[name='start']::slotted([data-variant='icon']) {
341
- @include icon.theme(
342
- (
343
- color: var(--_list-item-pressed-leading-icon-icon-color),
344
- )
345
- );
319
+ color: var(--_pressed-leading-icon-icon-color);
346
320
  }
347
321
 
348
322
  slot[name='end']::slotted([data-variant='icon']) {
349
- @include icon.theme(
350
- (
351
- color: var(--_list-item-pressed-trailing-icon-icon-color),
352
- )
353
- );
323
+ color: var(--_pressed-trailing-icon-icon-color);
354
324
  }
355
325
  }
356
326
 
357
327
  .disabled {
358
328
  slot[name='start']::slotted([data-variant='icon']) {
359
- opacity: var(--_list-item-disabled-leading-icon-opacity);
360
-
361
- @include icon.theme(
362
- (
363
- color: var(--_list-item-disabled-leading-icon-color),
364
- )
365
- );
329
+ opacity: var(--_disabled-leading-icon-opacity);
330
+ color: var(--_disabled-leading-icon-color);
366
331
  }
367
332
 
368
333
  slot[name='end']::slotted([data-variant='icon']) {
369
- opacity: var(--_list-item-disabled-trailing-icon-opacity);
370
-
371
- @include icon.theme(
372
- (
373
- color: var(--_list-item-disabled-trailing-icon-color),
374
- )
375
- );
334
+ opacity: var(--_disabled-trailing-icon-opacity);
335
+ color: var(--_disabled-trailing-icon-color);
376
336
  }
377
337
  }
378
338
  }
@@ -382,12 +342,12 @@
382
342
  display: inline-flex;
383
343
  justify-content: center;
384
344
  align-items: center;
385
- background-color: var(--_list-item-leading-avatar-color);
386
- height: var(--_list-item-leading-avatar-size);
387
- width: var(--_list-item-leading-avatar-size);
388
- border-radius: var(--_list-item-leading-avatar-shape);
389
- color: var(--_list-item-leading-avatar-label-color);
390
- font: var(--_list-item-leading-avatar-label-type);
345
+ background-color: var(--_leading-avatar-color);
346
+ height: var(--_leading-avatar-size);
347
+ width: var(--_leading-avatar-size);
348
+ border-radius: var(--_leading-avatar-shape);
349
+ color: var(--_leading-avatar-label-color);
350
+ font: var(--_leading-avatar-label-type);
391
351
  }
392
352
  }
393
353
 
@@ -396,33 +356,29 @@
396
356
  ::slotted([data-variant='video-large']) {
397
357
  display: inline-flex;
398
358
  object-fit: cover;
399
- height: var(--_list-item-small-leading-video-height);
400
- width: var(--_list-item-leading-video-width);
401
- border-radius: var(--_list-item-leading-video-shape);
402
- margin-inline-start: var(--_list-item-leading-video-leading-space);
359
+ height: var(--_small-leading-video-height);
360
+ width: var(--_leading-video-width);
361
+ border-radius: var(--_leading-video-shape);
362
+ margin-inline-start: var(--_leading-video-leading-space);
403
363
  // Min height is three-line height
404
- padding-block: calc(
405
- (
406
- var(--_list-item-three-line-container-height) -
407
- var(--_list-item-small-leading-video-height)
408
- ) / 2
364
+ margin-block: calc(
365
+ (var(--_three-line-container-height) - var(--_small-leading-video-height)) /
366
+ 2
409
367
  );
410
368
 
411
369
  // Let it auto-layout so that we don't mess with the icons and supporting
412
370
  // text that is supposed to be top-aligned in three-line.
413
371
  .with-three-line & {
414
- padding-block: 0;
372
+ margin-block: 0;
415
373
  }
416
374
  }
417
375
 
418
376
  ::slotted([data-variant='video-large']) {
419
377
  // Min height is three-line height
420
- padding-block: calc(
421
- (
422
- var(--_list-item-three-line-container-height) -
423
- var(--_list-item-large-leading-video-height)
424
- ) / 2
378
+ margin-block: calc(
379
+ (var(--_three-line-container-height) - var(--_large-leading-video-height)) /
380
+ 2
425
381
  );
426
- height: var(--_list-item-large-leading-video-height);
382
+ height: var(--_large-leading-video-height);
427
383
  }
428
384
  }
@@ -4,6 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  import { css } from 'lit';
7
- export const styles = css `@media(forced-colors: active){:host{--md-list-item-list-item-disabled-label-text-color: GrayText;--md-list-item-list-item-disabled-label-text-opacity: 1;--md-list-item-list-item-disabled-leading-icon-color: GrayText;--md-list-item-list-item-disabled-leading-icon-opacity: 1;--md-list-item-list-item-disabled-trailing-icon-color: GrayText;--md-list-item-list-item-disabled-trailing-icon-opacity: 1}}/*# sourceMappingURL=forced-colors-styles.css.map */
7
+ export const styles = css `@media(forced-colors: active){:host{--md-list-item-disabled-label-text-color: GrayText;--md-list-item-disabled-label-text-opacity: 1;--md-list-item-disabled-leading-icon-color: GrayText;--md-list-item-disabled-leading-icon-opacity: 1;--md-list-item-disabled-trailing-icon-color: GrayText;--md-list-item-disabled-trailing-icon-opacity: 1}}/*# sourceMappingURL=forced-colors-styles.css.map */
8
8
  `;
9
9
  //# sourceMappingURL=forced-colors-styles.css.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"forced-colors-styles.css.js","sourceRoot":"","sources":["forced-colors-styles.css.ts"],"names":[],"mappings":"AAAA;;;;IAII;AACH,OAAO,EAAC,GAAG,EAAC,MAAM,KAAK,CAAC;AACxB,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;CACzB,CAAC","sourcesContent":["/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n import {css} from 'lit';\n export const styles = css`@media(forced-colors: active){:host{--md-list-item-list-item-disabled-label-text-color: GrayText;--md-list-item-list-item-disabled-label-text-opacity: 1;--md-list-item-list-item-disabled-leading-icon-color: GrayText;--md-list-item-list-item-disabled-leading-icon-opacity: 1;--md-list-item-list-item-disabled-trailing-icon-color: GrayText;--md-list-item-list-item-disabled-trailing-icon-opacity: 1}}/*# sourceMappingURL=forced-colors-styles.css.map */\n`;\n "]}
1
+ {"version":3,"file":"forced-colors-styles.css.js","sourceRoot":"","sources":["forced-colors-styles.css.ts"],"names":[],"mappings":"AAAA;;;;IAII;AACH,OAAO,EAAC,GAAG,EAAC,MAAM,KAAK,CAAC;AACxB,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;CACzB,CAAC","sourcesContent":["/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n import {css} from 'lit';\n export const styles = css`@media(forced-colors: active){:host{--md-list-item-disabled-label-text-color: GrayText;--md-list-item-disabled-label-text-opacity: 1;--md-list-item-disabled-leading-icon-color: GrayText;--md-list-item-disabled-leading-icon-opacity: 1;--md-list-item-disabled-trailing-icon-color: GrayText;--md-list-item-disabled-trailing-icon-opacity: 1}}/*# sourceMappingURL=forced-colors-styles.css.map */\n`;\n "]}
@@ -11,12 +11,12 @@
11
11
  :host {
12
12
  @include list-item.theme(
13
13
  (
14
- list-item-disabled-label-text-color: GrayText,
15
- list-item-disabled-label-text-opacity: 1,
16
- list-item-disabled-leading-icon-color: GrayText,
17
- list-item-disabled-leading-icon-opacity: 1,
18
- list-item-disabled-trailing-icon-color: GrayText,
19
- list-item-disabled-trailing-icon-opacity: 1,
14
+ disabled-label-text-color: GrayText,
15
+ disabled-label-text-opacity: 1,
16
+ disabled-leading-icon-color: GrayText,
17
+ disabled-leading-icon-opacity: 1,
18
+ disabled-trailing-icon-color: GrayText,
19
+ disabled-trailing-icon-opacity: 1,
20
20
  )
21
21
  );
22
22
  }