@material/web 1.0.0-pre.1 → 1.0.0-pre.3

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 (683) hide show
  1. package/README.md +66 -19
  2. package/autocomplete/autocomplete-item.js.map +1 -1
  3. package/autocomplete/autocomplete-list.js.map +1 -1
  4. package/autocomplete/autocomplete-surface.js.map +1 -1
  5. package/autocomplete/filled-autocomplete.d.ts +0 -2
  6. package/autocomplete/filled-autocomplete.js +0 -7
  7. package/autocomplete/filled-autocomplete.js.map +1 -1
  8. package/autocomplete/lib/_filled-autocomplete.scss +23 -62
  9. package/autocomplete/lib/_outlined-autocomplete.scss +24 -63
  10. package/autocomplete/lib/_shared.scss +6 -10
  11. package/autocomplete/lib/autocomplete.d.ts +2 -6
  12. package/autocomplete/lib/autocomplete.js +9 -17
  13. package/autocomplete/lib/autocomplete.js.map +1 -1
  14. package/autocomplete/lib/autocompleteitem/autocomplete-item.d.ts +2 -2
  15. package/autocomplete/lib/autocompleteitem/autocomplete-item.js +2 -2
  16. package/autocomplete/lib/autocompleteitem/autocomplete-item.js.map +1 -1
  17. package/autocomplete/lib/autocompletelist/autocomplete-list-styles.scss +2 -0
  18. package/autocomplete/lib/autocompletelist/autocomplete-list.d.ts +1 -1
  19. package/autocomplete/lib/autocompletelist/autocomplete-list.js +2 -2
  20. package/autocomplete/lib/autocompletelist/autocomplete-list.js.map +1 -1
  21. package/autocomplete/lib/autocompletesurface/autocomplete-surface-styles.scss +2 -0
  22. package/autocomplete/lib/filled-styles.css.js +1 -1
  23. package/autocomplete/lib/filled-styles.css.js.map +1 -1
  24. package/autocomplete/lib/filled-styles.scss +2 -0
  25. package/autocomplete/lib/outlined-styles.css.js +1 -1
  26. package/autocomplete/lib/outlined-styles.css.js.map +1 -1
  27. package/autocomplete/lib/outlined-styles.scss +2 -0
  28. package/autocomplete/lib/shared-styles.scss +2 -0
  29. package/autocomplete/outlined-autocomplete.d.ts +0 -2
  30. package/autocomplete/outlined-autocomplete.js +0 -7
  31. package/autocomplete/outlined-autocomplete.js.map +1 -1
  32. package/badge/badge.js.map +1 -1
  33. package/badge/lib/_badge.scss +10 -13
  34. package/badge/lib/badge-styles.css.js +1 -1
  35. package/badge/lib/badge-styles.css.js.map +1 -1
  36. package/badge/lib/badge-styles.scss +2 -0
  37. package/badge/lib/badge.js.map +1 -1
  38. package/button/elevated-button.js.map +1 -1
  39. package/button/elevated-link-button.js.map +1 -1
  40. package/button/filled-button.js.map +1 -1
  41. package/button/filled-link-button.js.map +1 -1
  42. package/button/lib/_elevated-button.scss +10 -15
  43. package/button/lib/_elevation.scss +5 -2
  44. package/button/lib/_filled-button.scss +12 -14
  45. package/button/lib/_icon.scss +15 -24
  46. package/button/lib/_outlined-button.scss +10 -15
  47. package/button/lib/_shared.scss +15 -19
  48. package/button/lib/_text-button.scss +12 -14
  49. package/button/lib/_tonal-button.scss +10 -15
  50. package/button/lib/button.d.ts +0 -3
  51. package/button/lib/button.js +1 -12
  52. package/button/lib/button.js.map +1 -1
  53. package/button/lib/elevated-styles.css.js +1 -1
  54. package/button/lib/elevated-styles.css.js.map +1 -1
  55. package/button/lib/elevated-styles.scss +2 -0
  56. package/button/lib/filled-styles.css.js +1 -1
  57. package/button/lib/filled-styles.css.js.map +1 -1
  58. package/button/lib/filled-styles.scss +2 -0
  59. package/button/lib/link-button.d.ts +0 -1
  60. package/button/lib/link-button.js +0 -5
  61. package/button/lib/link-button.js.map +1 -1
  62. package/button/lib/outlined-styles.css.js +1 -1
  63. package/button/lib/outlined-styles.css.js.map +1 -1
  64. package/button/lib/outlined-styles.scss +2 -0
  65. package/button/lib/shared-elevation-styles.css.js +1 -1
  66. package/button/lib/shared-elevation-styles.css.js.map +1 -1
  67. package/button/lib/shared-elevation-styles.scss +2 -0
  68. package/button/lib/shared-styles.css.js +1 -1
  69. package/button/lib/shared-styles.css.js.map +1 -1
  70. package/button/lib/shared-styles.scss +2 -0
  71. package/button/lib/text-styles.css.js +1 -1
  72. package/button/lib/text-styles.css.js.map +1 -1
  73. package/button/lib/text-styles.scss +2 -0
  74. package/button/lib/tonal-styles.css.js +1 -1
  75. package/button/lib/tonal-styles.css.js.map +1 -1
  76. package/button/lib/tonal-styles.scss +2 -0
  77. package/button/outlined-button.js.map +1 -1
  78. package/button/outlined-link-button.js.map +1 -1
  79. package/button/text-button.js.map +1 -1
  80. package/button/text-link-button.js.map +1 -1
  81. package/button/tonal-button.js.map +1 -1
  82. package/button/tonal-link-button.js.map +1 -1
  83. package/checkbox/checkbox.d.ts +11 -2
  84. package/checkbox/checkbox.js +11 -2
  85. package/checkbox/checkbox.js.map +1 -1
  86. package/checkbox/lib/_checkbox.scss +26 -31
  87. package/checkbox/lib/checkbox-styles.css.js +1 -1
  88. package/checkbox/lib/checkbox-styles.css.js.map +1 -1
  89. package/checkbox/lib/checkbox-styles.scss +2 -0
  90. package/checkbox/lib/checkbox.d.ts +28 -0
  91. package/checkbox/lib/checkbox.js +33 -4
  92. package/checkbox/lib/checkbox.js.map +1 -1
  93. package/checkbox/lib/forced-colors-styles.scss +2 -0
  94. package/chips/action/delete-action.js.map +1 -1
  95. package/chips/action/lib/action.js +4 -4
  96. package/chips/action/lib/action.js.map +1 -1
  97. package/chips/action/lib/link-action.js +1 -1
  98. package/chips/action/lib/link-action.js.map +1 -1
  99. package/chips/action/lib/primary-action.js.map +1 -1
  100. package/chips/action/lib/selectable-action.js.map +1 -1
  101. package/chips/action/link-action.js.map +1 -1
  102. package/chips/action/presentational-action.js.map +1 -1
  103. package/chips/action/primary-action.js.map +1 -1
  104. package/chips/action/selectable-action.js.map +1 -1
  105. package/chips/chip/lib/_assist-chip-theme.scss +4 -0
  106. package/chips/chip/lib/_chip-theme.scss +30 -41
  107. package/chips/chip/lib/_chip.scss +2 -0
  108. package/chips/chip/lib/_filter-chip-theme.scss +4 -0
  109. package/chips/chip/lib/_input-chip-theme.scss +4 -0
  110. package/chips/chip/lib/_suggestion-chip-theme.scss +4 -0
  111. package/chips/chip/lib/chip.js.map +1 -1
  112. package/chips/chip/lib/foundation.js +4 -4
  113. package/chips/chip/lib/foundation.js.map +1 -1
  114. package/chips/chip/lib/link-chip.js.map +1 -1
  115. package/chips/chip/lib/selectable-chip.js.map +1 -1
  116. package/chips/chip/lib/types.d.ts +2 -2
  117. package/chips/chipset/lib/_chip-set-theme.scss +2 -0
  118. package/chips/chipset/lib/_chip-set.scss +2 -0
  119. package/chips/chipset/lib/foundation.js +3 -3
  120. package/chips/chipset/lib/foundation.js.map +1 -1
  121. package/chips/chipset/lib/types.d.ts +3 -3
  122. package/controller/events.js +4 -0
  123. package/controller/events.js.map +1 -1
  124. package/controller/form-controller.js.map +1 -1
  125. package/controller/foundation.d.ts +1 -1
  126. package/controller/observer.d.ts +2 -2
  127. package/dialog/_dialog.scss +6 -0
  128. package/dialog/dialog.d.ts +38 -0
  129. package/dialog/dialog.js +41 -0
  130. package/dialog/dialog.js.map +1 -0
  131. package/dialog/harness.d.ts +18 -0
  132. package/dialog/harness.js +58 -0
  133. package/dialog/harness.js.map +1 -0
  134. package/dialog/lib/_dialog.scss +382 -0
  135. package/dialog/lib/_tokens.scss +89 -0
  136. package/dialog/lib/dialog-styles.css.js +9 -0
  137. package/dialog/lib/dialog-styles.css.js.map +1 -0
  138. package/dialog/lib/dialog-styles.scss +10 -0
  139. package/dialog/lib/dialog.d.ts +190 -0
  140. package/dialog/lib/dialog.js +568 -0
  141. package/dialog/lib/dialog.js.map +1 -0
  142. package/divider/_divider.scss +6 -0
  143. package/divider/divider.d.ts +24 -0
  144. package/divider/divider.js +27 -0
  145. package/divider/divider.js.map +1 -0
  146. package/divider/lib/_divider.scss +56 -0
  147. package/divider/lib/divider-styles.css.js +9 -0
  148. package/divider/lib/divider-styles.css.js.map +1 -0
  149. package/divider/lib/divider-styles.scss +10 -0
  150. package/divider/lib/divider.d.ts +23 -0
  151. package/divider/lib/divider.js +41 -0
  152. package/divider/lib/divider.js.map +1 -0
  153. package/elevation/elevation.js.map +1 -1
  154. package/elevation/lib/_elevation.scss +5 -1
  155. package/elevation/lib/_md-comp-elevation.scss +5 -1
  156. package/elevation/lib/elevation-styles.css.js +1 -1
  157. package/elevation/lib/elevation-styles.css.js.map +1 -1
  158. package/elevation/lib/elevation-styles.scss +2 -0
  159. package/elevation/lib/elevation.js.map +1 -1
  160. package/fab/fab-extended.js.map +1 -1
  161. package/fab/fab.js.map +1 -1
  162. package/fab/lib/_fab-extended.scss +18 -11
  163. package/fab/lib/_fab.scss +7 -2
  164. package/fab/lib/_shared.scss +17 -9
  165. package/fab/lib/fab-extended-styles.css.js +1 -1
  166. package/fab/lib/fab-extended-styles.css.js.map +1 -1
  167. package/fab/lib/fab-extended-styles.scss +2 -0
  168. package/fab/lib/fab-shared-styles.css.js +1 -1
  169. package/fab/lib/fab-shared-styles.css.js.map +1 -1
  170. package/fab/lib/fab-shared-styles.scss +2 -0
  171. package/fab/lib/fab-shared.d.ts +9 -15
  172. package/fab/lib/fab-shared.js +21 -33
  173. package/fab/lib/fab-shared.js.map +1 -1
  174. package/fab/lib/fab-styles.css.js +1 -1
  175. package/fab/lib/fab-styles.css.js.map +1 -1
  176. package/fab/lib/fab-styles.scss +2 -0
  177. package/field/filled-field.d.ts +1 -1
  178. package/field/filled-field.js +1 -1
  179. package/field/filled-field.js.map +1 -1
  180. package/field/harness.js +1 -1
  181. package/field/harness.js.map +1 -1
  182. package/field/lib/_content.scss +35 -50
  183. package/field/lib/_filled-field.scss +60 -76
  184. package/field/lib/_label.scss +26 -63
  185. package/field/lib/_md-comp-filled-field.scss +17 -3
  186. package/field/lib/_md-comp-outlined-field.scss +16 -5
  187. package/field/lib/_outlined-field.scss +96 -110
  188. package/field/lib/_shared.scss +15 -35
  189. package/field/lib/_supporting-text.scss +25 -52
  190. package/field/lib/field.d.ts +14 -33
  191. package/field/lib/field.js +79 -101
  192. package/field/lib/field.js.map +1 -1
  193. package/field/lib/filled-field.d.ts +10 -16
  194. package/field/lib/filled-field.js +14 -37
  195. package/field/lib/filled-field.js.map +1 -1
  196. package/field/lib/filled-styles.css.js +1 -1
  197. package/field/lib/filled-styles.css.js.map +1 -1
  198. package/field/lib/outlined-field.d.ts +4 -10
  199. package/field/lib/outlined-field.js +13 -33
  200. package/field/lib/outlined-field.js.map +1 -1
  201. package/field/lib/outlined-styles.css.js +1 -1
  202. package/field/lib/outlined-styles.css.js.map +1 -1
  203. package/field/lib/shared-styles.css.js +1 -1
  204. package/field/lib/shared-styles.css.js.map +1 -1
  205. package/field/outlined-field.d.ts +1 -1
  206. package/field/outlined-field.js +1 -1
  207. package/field/outlined-field.js.map +1 -1
  208. package/focus/focus-ring.js.map +1 -1
  209. package/focus/lib/_focus-ring.scss +10 -23
  210. package/focus/lib/_md-comp-focus-ring.scss +4 -0
  211. package/focus/lib/focus-ring-styles.css.js +1 -1
  212. package/focus/lib/focus-ring-styles.css.js.map +1 -1
  213. package/focus/lib/focus-ring-styles.scss +2 -0
  214. package/focus/lib/focus-ring.d.ts +1 -4
  215. package/focus/lib/focus-ring.js +2 -11
  216. package/focus/lib/focus-ring.js.map +1 -1
  217. package/icon/icon.js.map +1 -1
  218. package/icon/lib/_icon.scss +2 -0
  219. package/icon/lib/icon-styles.scss +2 -0
  220. package/iconbutton/filled-icon-button-toggle.js.map +1 -1
  221. package/iconbutton/filled-icon-button.js.map +1 -1
  222. package/iconbutton/filled-link-icon-button.js.map +1 -1
  223. package/iconbutton/filled-tonal-icon-button-toggle.js.map +1 -1
  224. package/iconbutton/filled-tonal-icon-button.js.map +1 -1
  225. package/iconbutton/filled-tonal-link-icon-button.js.map +1 -1
  226. package/iconbutton/lib/_filled-icon-button.scss +20 -20
  227. package/iconbutton/lib/_filled-tonal-icon-button.scss +20 -20
  228. package/iconbutton/lib/_outlined-icon-button.scss +27 -21
  229. package/iconbutton/lib/_shared.scss +13 -33
  230. package/iconbutton/lib/_standard-icon-button.scss +25 -24
  231. package/iconbutton/lib/filled-styles.css.js +1 -1
  232. package/iconbutton/lib/filled-styles.css.js.map +1 -1
  233. package/iconbutton/lib/filled-styles.scss +2 -0
  234. package/iconbutton/lib/filled-tonal-styles.css.js +1 -1
  235. package/iconbutton/lib/filled-tonal-styles.css.js.map +1 -1
  236. package/iconbutton/lib/filled-tonal-styles.scss +2 -0
  237. package/iconbutton/lib/icon-button-toggle.d.ts +13 -42
  238. package/iconbutton/lib/icon-button-toggle.js +33 -103
  239. package/iconbutton/lib/icon-button-toggle.js.map +1 -1
  240. package/iconbutton/lib/icon-button.d.ts +2 -4
  241. package/iconbutton/lib/icon-button.js +3 -9
  242. package/iconbutton/lib/icon-button.js.map +1 -1
  243. package/iconbutton/lib/link-icon-button.js.map +1 -1
  244. package/iconbutton/lib/outlined-styles.css.js +1 -1
  245. package/iconbutton/lib/outlined-styles.css.js.map +1 -1
  246. package/iconbutton/lib/outlined-styles.scss +2 -0
  247. package/iconbutton/lib/shared-styles.css.js +1 -1
  248. package/iconbutton/lib/shared-styles.css.js.map +1 -1
  249. package/iconbutton/lib/shared-styles.scss +2 -0
  250. package/iconbutton/lib/standard-styles.css.js +1 -1
  251. package/iconbutton/lib/standard-styles.css.js.map +1 -1
  252. package/iconbutton/lib/standard-styles.scss +2 -0
  253. package/iconbutton/outlined-icon-button-toggle.js.map +1 -1
  254. package/iconbutton/outlined-icon-button.js.map +1 -1
  255. package/iconbutton/outlined-link-icon-button.js.map +1 -1
  256. package/iconbutton/standard-icon-button-toggle.js.map +1 -1
  257. package/iconbutton/standard-icon-button.js.map +1 -1
  258. package/iconbutton/standard-link-icon-button.js.map +1 -1
  259. package/list/lib/_list.scss +35 -39
  260. package/list/lib/avatar/_list-item-avatar.scss +3 -1
  261. package/list/lib/avatar/list-item-avatar-styles.css.js +1 -1
  262. package/list/lib/avatar/list-item-avatar-styles.css.js.map +1 -1
  263. package/list/lib/avatar/list-item-avatar-styles.scss +2 -0
  264. package/list/lib/avatar/list-item-avatar.d.ts +9 -4
  265. package/list/lib/avatar/list-item-avatar.js +24 -11
  266. package/list/lib/avatar/list-item-avatar.js.map +1 -1
  267. package/list/lib/icon/_list-item-icon.scss +7 -1
  268. package/list/lib/icon/list-item-icon-styles.css.js +1 -1
  269. package/list/lib/icon/list-item-icon-styles.css.js.map +1 -1
  270. package/list/lib/icon/list-item-icon-styles.scss +2 -0
  271. package/list/lib/icon/list-item-icon.d.ts +0 -3
  272. package/list/lib/icon/list-item-icon.js +1 -12
  273. package/list/lib/icon/list-item-icon.js.map +1 -1
  274. package/list/lib/image/_list-item-image.scss +6 -2
  275. package/list/lib/image/list-item-image-styles.css.js +1 -1
  276. package/list/lib/image/list-item-image-styles.css.js.map +1 -1
  277. package/list/lib/image/list-item-image-styles.scss +2 -0
  278. package/list/lib/image/list-item-image.d.ts +11 -4
  279. package/list/lib/image/list-item-image.js +24 -13
  280. package/list/lib/image/list-item-image.js.map +1 -1
  281. package/list/lib/list-styles.css.js +1 -1
  282. package/list/lib/list-styles.css.js.map +1 -1
  283. package/list/lib/list-styles.scss +2 -0
  284. package/list/lib/list.d.ts +99 -28
  285. package/list/lib/list.js +213 -112
  286. package/list/lib/list.js.map +1 -1
  287. package/list/lib/listitem/_list-item.scss +122 -56
  288. package/list/lib/listitem/harness.js +2 -1
  289. package/list/lib/listitem/harness.js.map +1 -1
  290. package/list/lib/listitem/list-item-private-styles.css.js +9 -0
  291. package/list/lib/listitem/list-item-private-styles.css.js.map +1 -0
  292. package/list/lib/listitem/list-item-private-styles.scss +10 -0
  293. package/list/lib/listitem/list-item-styles.css.js +1 -1
  294. package/list/lib/listitem/list-item-styles.css.js.map +1 -1
  295. package/list/lib/listitem/list-item-styles.scss +2 -0
  296. package/list/lib/listitem/list-item.d.ts +99 -43
  297. package/list/lib/listitem/list-item.js +204 -173
  298. package/list/lib/listitem/list-item.js.map +1 -1
  299. package/list/lib/listitemlink/list-item-link.d.ts +17 -0
  300. package/list/lib/listitemlink/list-item-link.js +42 -0
  301. package/list/lib/listitemlink/list-item-link.js.map +1 -0
  302. package/list/lib/video/_list-item-video.scss +15 -5
  303. package/list/lib/video/list-item-video-styles.css.js +1 -1
  304. package/list/lib/video/list-item-video-styles.css.js.map +1 -1
  305. package/list/lib/video/list-item-video-styles.scss +2 -0
  306. package/list/lib/video/list-item-video.d.ts +43 -4
  307. package/list/lib/video/list-item-video.js +90 -12
  308. package/list/lib/video/list-item-video.js.map +1 -1
  309. package/list/list-item-avatar.d.ts +2 -1
  310. package/list/list-item-avatar.js +2 -1
  311. package/list/list-item-avatar.js.map +1 -1
  312. package/list/list-item-icon.d.ts +2 -1
  313. package/list/list-item-icon.js +2 -1
  314. package/list/list-item-icon.js.map +1 -1
  315. package/list/list-item-image.d.ts +2 -1
  316. package/list/list-item-image.js +2 -1
  317. package/list/list-item-image.js.map +1 -1
  318. package/list/list-item-link.d.ts +35 -0
  319. package/list/list-item-link.js +39 -0
  320. package/list/list-item-link.js.map +1 -0
  321. package/list/list-item-video.d.ts +2 -1
  322. package/list/list-item-video.js +2 -1
  323. package/list/list-item-video.js.map +1 -1
  324. package/list/list-item.d.ts +18 -2
  325. package/list/list-item.js +20 -3
  326. package/list/list-item.js.map +1 -1
  327. package/list/list.d.ts +15 -1
  328. package/list/list.js +15 -1
  329. package/list/list.js.map +1 -1
  330. package/menu/_menu-item.scss +6 -0
  331. package/menu/_menu.scss +6 -0
  332. package/menu/harness.d.ts +5 -0
  333. package/menu/harness.js +22 -0
  334. package/menu/harness.js.map +1 -1
  335. package/menu/lib/_menu.scss +64 -62
  336. package/menu/lib/menu-styles.css.js +1 -1
  337. package/menu/lib/menu-styles.css.js.map +1 -1
  338. package/menu/lib/menu-styles.scss +2 -0
  339. package/menu/lib/menu.d.ts +177 -43
  340. package/menu/lib/menu.js +506 -246
  341. package/menu/lib/menu.js.map +1 -1
  342. package/menu/lib/menuitem/_menu-item.scss +123 -0
  343. package/menu/lib/menuitem/menu-item-private-styles.css.js +9 -0
  344. package/menu/lib/menuitem/menu-item-private-styles.css.js.map +1 -0
  345. package/menu/lib/menuitem/menu-item-private-styles.scss +10 -0
  346. package/menu/lib/menuitem/menu-item-styles.css.d.ts +1 -0
  347. package/menu/lib/menuitem/menu-item-styles.css.js +9 -0
  348. package/menu/lib/menuitem/menu-item-styles.css.js.map +1 -0
  349. package/menu/lib/menuitem/menu-item-styles.scss +10 -0
  350. package/menu/lib/menuitem/menu-item.d.ts +20 -3
  351. package/menu/lib/menuitem/menu-item.js +42 -3
  352. package/menu/lib/menuitem/menu-item.js.map +1 -1
  353. package/menu/lib/menuitemlink/menu-item-link.d.ts +25 -0
  354. package/menu/lib/menuitemlink/menu-item-link.js +51 -0
  355. package/menu/lib/menuitemlink/menu-item-link.js.map +1 -0
  356. package/menu/lib/shared.d.ts +134 -0
  357. package/menu/lib/shared.js +85 -0
  358. package/menu/lib/shared.js.map +1 -0
  359. package/menu/lib/submenuitem/harness.d.ts +11 -0
  360. package/menu/lib/submenuitem/harness.js +12 -0
  361. package/menu/lib/submenuitem/harness.js.map +1 -0
  362. package/menu/lib/submenuitem/sub-menu-item.d.ts +89 -0
  363. package/menu/lib/submenuitem/sub-menu-item.js +266 -0
  364. package/menu/lib/submenuitem/sub-menu-item.js.map +1 -0
  365. package/menu/lib/surfacePositionController.d.ts +117 -0
  366. package/menu/lib/surfacePositionController.js +196 -0
  367. package/menu/lib/surfacePositionController.js.map +1 -0
  368. package/menu/lib/typeaheadController.d.ts +144 -0
  369. package/menu/lib/typeaheadController.js +242 -0
  370. package/menu/lib/typeaheadController.js.map +1 -0
  371. package/menu/menu-item-link.d.ts +33 -0
  372. package/menu/menu-item-link.js +37 -0
  373. package/menu/menu-item-link.js.map +1 -0
  374. package/menu/menu-item.d.ts +19 -2
  375. package/menu/menu-item.js +22 -4
  376. package/menu/menu-item.js.map +1 -1
  377. package/menu/menu.d.ts +45 -0
  378. package/menu/menu.js +43 -0
  379. package/menu/menu.js.map +1 -1
  380. package/menu/sub-menu-item.d.ts +60 -0
  381. package/menu/sub-menu-item.js +64 -0
  382. package/menu/sub-menu-item.js.map +1 -0
  383. package/menusurface/lib/_md-comp-menu-surface.scss +4 -0
  384. package/menusurface/lib/_menu-surface.scss +5 -1
  385. package/menusurface/lib/foundation.js +31 -31
  386. package/menusurface/lib/foundation.js.map +1 -1
  387. package/menusurface/lib/menu-surface-styles.css.js +1 -1
  388. package/menusurface/lib/menu-surface-styles.css.js.map +1 -1
  389. package/menusurface/lib/menu-surface-styles.scss +2 -0
  390. package/menusurface/lib/menu-surface.d.ts +2 -2
  391. package/menusurface/lib/menu-surface.js.map +1 -1
  392. package/menusurface/menu-surface.js.map +1 -1
  393. package/motion/animation.d.ts +20 -3
  394. package/motion/animation.js +39 -4
  395. package/motion/animation.js.map +1 -1
  396. package/navigationbar/lib/_navigation-bar.scss +11 -9
  397. package/navigationbar/lib/constants.d.ts +1 -1
  398. package/navigationbar/lib/navigation-bar-styles.css.js +1 -1
  399. package/navigationbar/lib/navigation-bar-styles.css.js.map +1 -1
  400. package/navigationbar/lib/navigation-bar-styles.scss +2 -0
  401. package/navigationbar/lib/navigation-bar.js.map +1 -1
  402. package/navigationbar/navigation-bar.js.map +1 -1
  403. package/navigationdrawer/lib/_navigation-drawer-modal.scss +11 -2
  404. package/navigationdrawer/lib/_navigation-drawer.scss +11 -6
  405. package/navigationdrawer/lib/_shared.scss +4 -8
  406. package/navigationdrawer/lib/navigation-drawer-modal-styles.css.js +1 -1
  407. package/navigationdrawer/lib/navigation-drawer-modal-styles.css.js.map +1 -1
  408. package/navigationdrawer/lib/navigation-drawer-modal-styles.scss +2 -0
  409. package/navigationdrawer/lib/navigation-drawer-modal.js.map +1 -1
  410. package/navigationdrawer/lib/navigation-drawer-styles.css.js +1 -1
  411. package/navigationdrawer/lib/navigation-drawer-styles.css.js.map +1 -1
  412. package/navigationdrawer/lib/navigation-drawer-styles.scss +2 -0
  413. package/navigationdrawer/lib/navigation-drawer.js.map +1 -1
  414. package/navigationdrawer/lib/shared-styles.scss +2 -0
  415. package/navigationdrawer/navigation-drawer-modal.js.map +1 -1
  416. package/navigationdrawer/navigation-drawer.js.map +1 -1
  417. package/navigationtab/lib/_navigation-tab.scss +34 -41
  418. package/navigationtab/lib/navigation-tab-styles.css.js +1 -1
  419. package/navigationtab/lib/navigation-tab-styles.css.js.map +1 -1
  420. package/navigationtab/lib/navigation-tab-styles.scss +2 -0
  421. package/navigationtab/lib/navigation-tab.js +4 -4
  422. package/navigationtab/lib/navigation-tab.js.map +1 -1
  423. package/navigationtab/navigation-tab.js.map +1 -1
  424. package/package.json +2 -9
  425. package/radio/lib/_radio.scss +16 -15
  426. package/radio/lib/forced-colors-styles.scss +2 -0
  427. package/radio/lib/radio-styles.css.js +1 -1
  428. package/radio/lib/radio-styles.css.js.map +1 -1
  429. package/radio/lib/radio-styles.scss +2 -0
  430. package/radio/lib/radio.d.ts +10 -1
  431. package/radio/lib/radio.js +28 -19
  432. package/radio/lib/radio.js.map +1 -1
  433. package/radio/radio.d.ts +16 -1
  434. package/radio/radio.js +16 -1
  435. package/radio/radio.js.map +1 -1
  436. package/ripple/directive.d.ts +1 -33
  437. package/ripple/directive.js +7 -194
  438. package/ripple/directive.js.map +1 -1
  439. package/ripple/lib/_md-comp-ripple.scss +20 -19
  440. package/ripple/lib/_ripple.scss +24 -40
  441. package/ripple/lib/ripple-styles.css.js +1 -1
  442. package/ripple/lib/ripple-styles.css.js.map +1 -1
  443. package/ripple/lib/ripple-styles.scss +2 -0
  444. package/ripple/lib/ripple.d.ts +50 -48
  445. package/ripple/lib/ripple.js +215 -77
  446. package/ripple/lib/ripple.js.map +1 -1
  447. package/ripple/ripple.d.ts +9 -1
  448. package/ripple/ripple.js +9 -1
  449. package/ripple/ripple.js.map +1 -1
  450. package/sass/_assert.scss +2 -0
  451. package/sass/_color-scheme.scss +4 -0
  452. package/sass/_color.scss +4 -0
  453. package/sass/_elevation.scss +4 -0
  454. package/sass/_feature-flags.scss +2 -0
  455. package/sass/_map-ext.scss +26 -0
  456. package/sass/_resolvers.scss +4 -4
  457. package/sass/_shape.scss +75 -27
  458. package/sass/_string-ext.scss +67 -0
  459. package/sass/_theme.scss +4 -0
  460. package/sass/_typography.scss +18 -93
  461. package/sass/_var.scss +4 -0
  462. package/segmentedbutton/lib/_outlined-segmented-button.scss +4 -0
  463. package/segmentedbutton/lib/_shared.scss +18 -22
  464. package/segmentedbutton/lib/outlined-styles.css.js +1 -1
  465. package/segmentedbutton/lib/outlined-styles.css.js.map +1 -1
  466. package/segmentedbutton/lib/outlined-styles.scss +2 -0
  467. package/segmentedbutton/lib/segmented-button.js +4 -4
  468. package/segmentedbutton/lib/segmented-button.js.map +1 -1
  469. package/segmentedbutton/lib/shared-styles.css.js +1 -1
  470. package/segmentedbutton/lib/shared-styles.css.js.map +1 -1
  471. package/segmentedbutton/lib/shared-styles.scss +2 -0
  472. package/segmentedbutton/outlined-segmented-button.js.map +1 -1
  473. package/segmentedbuttonset/lib/_outlined-segmented-button-set.scss +9 -5
  474. package/segmentedbuttonset/lib/_shared.scss +0 -13
  475. package/segmentedbuttonset/lib/outlined-styles.css.js +1 -1
  476. package/segmentedbuttonset/lib/outlined-styles.css.js.map +1 -1
  477. package/segmentedbuttonset/lib/outlined-styles.scss +2 -0
  478. package/segmentedbuttonset/lib/segmented-button-set.d.ts +0 -2
  479. package/segmentedbuttonset/lib/segmented-button-set.js +0 -2
  480. package/segmentedbuttonset/lib/segmented-button-set.js.map +1 -1
  481. package/segmentedbuttonset/lib/shared-styles.scss +2 -0
  482. package/segmentedbuttonset/outlined-segmented-button-set.js.map +1 -1
  483. package/slider/_slider.scss +6 -0
  484. package/slider/harness.d.ts +20 -0
  485. package/slider/harness.js +63 -0
  486. package/slider/harness.js.map +1 -0
  487. package/slider/lib/_slider.scss +503 -0
  488. package/slider/lib/_tokens.scss +66 -0
  489. package/slider/lib/forced-colors-styles.css.d.ts +1 -0
  490. package/slider/lib/forced-colors-styles.css.js +9 -0
  491. package/slider/lib/forced-colors-styles.css.js.map +1 -0
  492. package/slider/lib/forced-colors-styles.scss +53 -0
  493. package/slider/lib/slider-styles.css.d.ts +1 -0
  494. package/slider/lib/slider-styles.css.js +9 -0
  495. package/slider/lib/slider-styles.css.js.map +1 -0
  496. package/slider/lib/slider-styles.scss +8 -0
  497. package/slider/lib/slider.d.ts +158 -0
  498. package/slider/lib/slider.js +575 -0
  499. package/slider/lib/slider.js.map +1 -0
  500. package/slider/slider.d.ts +28 -0
  501. package/slider/slider.js +32 -0
  502. package/slider/slider.js.map +1 -0
  503. package/switch/lib/README.md +55 -0
  504. package/switch/lib/_handle.scss +72 -26
  505. package/switch/lib/_icon.scss +40 -0
  506. package/switch/lib/_switch.scss +12 -133
  507. package/switch/lib/_track.scss +41 -0
  508. package/switch/lib/switch-styles.css.js +1 -1
  509. package/switch/lib/switch-styles.css.js.map +1 -1
  510. package/switch/lib/switch-styles.scss +2 -0
  511. package/switch/lib/switch.d.ts +3 -0
  512. package/switch/lib/switch.js +12 -9
  513. package/switch/lib/switch.js.map +1 -1
  514. package/switch/switch.js.map +1 -1
  515. package/textfield/filled-text-field.d.ts +1 -1
  516. package/textfield/filled-text-field.js +1 -2
  517. package/textfield/filled-text-field.js.map +1 -1
  518. package/textfield/harness.js +1 -1
  519. package/textfield/harness.js.map +1 -1
  520. package/textfield/lib/_filled-text-field.scss +29 -23
  521. package/textfield/lib/_icon.scss +41 -56
  522. package/textfield/lib/_input.scss +17 -36
  523. package/textfield/lib/_outlined-text-field.scss +29 -23
  524. package/textfield/lib/_shared.scss +10 -29
  525. package/textfield/lib/filled-forced-colors-styles.scss +2 -0
  526. package/textfield/lib/filled-styles.css.js +1 -1
  527. package/textfield/lib/filled-styles.css.js.map +1 -1
  528. package/textfield/lib/filled-styles.scss +2 -0
  529. package/textfield/lib/filled-text-field.d.ts +6 -5
  530. package/textfield/lib/filled-text-field.js +8 -7
  531. package/textfield/lib/filled-text-field.js.map +1 -1
  532. package/textfield/lib/outlined-forced-colors-styles.scss +2 -0
  533. package/textfield/lib/outlined-styles.css.js +1 -1
  534. package/textfield/lib/outlined-styles.css.js.map +1 -1
  535. package/textfield/lib/outlined-styles.scss +2 -0
  536. package/textfield/lib/outlined-text-field.d.ts +6 -5
  537. package/textfield/lib/outlined-text-field.js +8 -7
  538. package/textfield/lib/outlined-text-field.js.map +1 -1
  539. package/textfield/lib/shared-styles.css.js +1 -1
  540. package/textfield/lib/shared-styles.css.js.map +1 -1
  541. package/textfield/lib/shared-styles.scss +2 -0
  542. package/textfield/lib/text-field.d.ts +40 -90
  543. package/textfield/lib/text-field.js +194 -272
  544. package/textfield/lib/text-field.js.map +1 -1
  545. package/textfield/outlined-text-field.d.ts +1 -1
  546. package/textfield/outlined-text-field.js +1 -2
  547. package/textfield/outlined-text-field.js.map +1 -1
  548. package/tokens/_index.scss +1 -1
  549. package/tokens/{v0_150 → v0_160}/_index.scss +1 -1
  550. package/tokens/{v0_150 → v0_160}/_md-comp-assist-chip.scss +2 -2
  551. package/tokens/{v0_150 → v0_160}/_md-comp-badge.scss +2 -2
  552. package/tokens/{v0_150 → v0_160}/_md-comp-banner.scss +2 -43
  553. package/tokens/{v0_150 → v0_160}/_md-comp-bottom-app-bar.scss +3 -4
  554. package/tokens/{v0_150 → v0_160}/_md-comp-carousel-item.scss +2 -2
  555. package/tokens/{v0_150 → v0_160}/_md-comp-checkbox.scss +5 -26
  556. package/tokens/{v0_150 → v0_160}/_md-comp-circular-progress-indicator.scss +2 -2
  557. package/tokens/{v0_150 → v0_160}/_md-comp-data-table.scss +2 -6
  558. package/tokens/{v0_150 → v0_160}/_md-comp-date-input-modal.scss +11 -11
  559. package/tokens/{v0_150 → v0_160}/_md-comp-date-picker-docked.scss +24 -24
  560. package/tokens/{v0_150 → v0_160}/_md-comp-date-picker-modal.scss +35 -35
  561. package/tokens/{v0_150 → v0_160}/_md-comp-dialog.scss +2 -25
  562. package/tokens/{v0_150 → v0_160}/_md-comp-divider.scss +2 -2
  563. package/tokens/{v0_150 → v0_160}/_md-comp-elevated-button.scss +2 -2
  564. package/tokens/{v0_150 → v0_160}/_md-comp-elevated-card.scss +2 -2
  565. package/tokens/{v0_150 → v0_160}/_md-comp-extended-fab-branded.scss +2 -2
  566. package/tokens/{v0_150 → v0_160}/_md-comp-extended-fab-primary.scss +2 -2
  567. package/tokens/{v0_150 → v0_160}/_md-comp-extended-fab-secondary.scss +2 -2
  568. package/tokens/{v0_150 → v0_160}/_md-comp-extended-fab-surface.scss +2 -2
  569. package/tokens/{v0_150 → v0_160}/_md-comp-extended-fab-tertiary.scss +2 -4
  570. package/tokens/{v0_150 → v0_160}/_md-comp-fab-branded-large.scss +2 -3
  571. package/tokens/{v0_150 → v0_160}/_md-comp-fab-branded.scss +2 -2
  572. package/tokens/{v0_150 → v0_160}/_md-comp-fab-primary-large.scss +2 -2
  573. package/tokens/{v0_150 → v0_160}/_md-comp-fab-primary-small.scss +2 -2
  574. package/tokens/{v0_150 → v0_160}/_md-comp-fab-primary.scss +2 -2
  575. package/tokens/{v0_150 → v0_160}/_md-comp-fab-secondary-large.scss +2 -2
  576. package/tokens/{v0_150 → v0_160}/_md-comp-fab-secondary-small.scss +2 -2
  577. package/tokens/{v0_150 → v0_160}/_md-comp-fab-secondary.scss +2 -2
  578. package/tokens/{v0_150 → v0_160}/_md-comp-fab-surface-large.scss +2 -2
  579. package/tokens/{v0_150 → v0_160}/_md-comp-fab-surface-small.scss +2 -2
  580. package/tokens/{v0_150 → v0_160}/_md-comp-fab-surface.scss +2 -2
  581. package/tokens/{v0_150 → v0_160}/_md-comp-fab-tertiary-large.scss +2 -2
  582. package/tokens/{v0_150 → v0_160}/_md-comp-fab-tertiary-small.scss +2 -2
  583. package/tokens/{v0_150 → v0_160}/_md-comp-fab-tertiary.scss +2 -2
  584. package/tokens/{v0_150 → v0_160}/_md-comp-filled-autocomplete.scss +2 -3
  585. package/tokens/{v0_150 → v0_160}/_md-comp-filled-button.scss +2 -8
  586. package/tokens/{v0_150 → v0_160}/_md-comp-filled-card.scss +2 -4
  587. package/tokens/{v0_150 → v0_160}/_md-comp-filled-icon-button.scss +2 -2
  588. package/tokens/{v0_150 → v0_160}/_md-comp-filled-menu-button.scss +2 -2
  589. package/tokens/{v0_150 → v0_160}/_md-comp-filled-select.scss +2 -6
  590. package/tokens/{v0_150 → v0_160}/_md-comp-filled-text-field.scss +2 -3
  591. package/tokens/{v0_150 → v0_160}/_md-comp-filled-tonal-button.scss +2 -2
  592. package/tokens/{v0_150 → v0_160}/_md-comp-filled-tonal-icon-button.scss +2 -2
  593. package/tokens/{v0_150 → v0_160}/_md-comp-filter-chip.scss +2 -30
  594. package/tokens/{v0_150 → v0_160}/_md-comp-full-screen-dialog.scss +3 -53
  595. package/tokens/{v0_150 → v0_160}/_md-comp-icon-button.scss +3 -3
  596. package/tokens/{v0_150 → v0_160}/_md-comp-input-chip.scss +2 -52
  597. package/tokens/{v0_150 → v0_160}/_md-comp-linear-progress-indicator.scss +2 -2
  598. package/tokens/{v0_150 → v0_160}/_md-comp-list.scss +3 -12
  599. package/tokens/{v0_150 → v0_160}/_md-comp-menu.scss +2 -4
  600. package/tokens/{v0_150 → v0_160}/_md-comp-navigation-bar.scss +2 -9
  601. package/tokens/{v0_150 → v0_160}/_md-comp-navigation-drawer.scss +2 -8
  602. package/tokens/{v0_150 → v0_160}/_md-comp-navigation-rail.scss +2 -39
  603. package/tokens/{v0_150 → v0_160}/_md-comp-outlined-autocomplete.scss +2 -3
  604. package/tokens/{v0_150 → v0_160}/_md-comp-outlined-button.scss +2 -6
  605. package/tokens/{v0_150 → v0_160}/_md-comp-outlined-card.scss +2 -2
  606. package/tokens/{v0_150 → v0_160}/_md-comp-outlined-icon-button.scss +2 -4
  607. package/tokens/{v0_150 → v0_160}/_md-comp-outlined-menu-button.scss +2 -2
  608. package/tokens/{v0_150 → v0_160}/_md-comp-outlined-segmented-button.scss +2 -2
  609. package/tokens/{v0_150 → v0_160}/_md-comp-outlined-select.scss +2 -6
  610. package/tokens/{v0_150 → v0_160}/_md-comp-outlined-text-field.scss +2 -3
  611. package/tokens/{v0_150 → v0_160}/_md-comp-plain-tooltip.scss +2 -2
  612. package/tokens/{v0_150 → v0_160}/_md-comp-primary-navigation-tab.scss +2 -4
  613. package/tokens/{v0_150 → v0_160}/_md-comp-radio-button.scss +2 -2
  614. package/tokens/{v0_150 → v0_160}/_md-comp-rich-tooltip.scss +2 -2
  615. package/tokens/{v0_150 → v0_160}/_md-comp-scrim.scss +2 -2
  616. package/tokens/{v0_150 → v0_160}/_md-comp-search-bar.scss +2 -2
  617. package/tokens/{v0_150 → v0_160}/_md-comp-search-view.scss +2 -2
  618. package/tokens/{v0_150 → v0_160}/_md-comp-secondary-navigation-tab.scss +2 -4
  619. package/tokens/{v0_150 → v0_160}/_md-comp-sheet-bottom.scss +2 -2
  620. package/tokens/{v0_150 → v0_160}/_md-comp-sheet-floating.scss +2 -2
  621. package/tokens/{v0_150 → v0_160}/_md-comp-sheet-side.scss +13 -11
  622. package/tokens/{v0_150 → v0_160}/_md-comp-slider.scss +2 -4
  623. package/tokens/{v0_150 → v0_160}/_md-comp-snackbar.scss +2 -2
  624. package/tokens/{v0_150 → v0_160}/_md-comp-standard-menu-button.scss +2 -2
  625. package/tokens/{v0_150 → v0_160}/_md-comp-suggestion-chip.scss +2 -2
  626. package/tokens/{v0_150 → v0_160}/_md-comp-switch.scss +2 -11
  627. package/tokens/{v0_150 → v0_160}/_md-comp-text-button.scss +2 -6
  628. package/tokens/{v0_150 → v0_160}/_md-comp-time-input.scss +2 -2
  629. package/tokens/{v0_150 → v0_160}/_md-comp-time-picker.scss +2 -5
  630. package/tokens/{v0_150 → v0_160}/_md-comp-top-app-bar-large.scss +2 -2
  631. package/tokens/{v0_150 → v0_160}/_md-comp-top-app-bar-medium.scss +2 -2
  632. package/tokens/{v0_150 → v0_160}/_md-comp-top-app-bar-small-centered.scss +2 -3
  633. package/tokens/{v0_150 → v0_160}/_md-comp-top-app-bar-small.scss +2 -3
  634. package/tokens/{v0_150 → v0_160}/_md-ref-palette.scss +2 -2
  635. package/tokens/{v0_150 → v0_160}/_md-ref-typeface.scss +2 -2
  636. package/tokens/{v0_150 → v0_160}/_md-sys-color.scss +218 -20
  637. package/tokens/{v0_150 → v0_160}/_md-sys-elevation.scss +4 -13
  638. package/tokens/{v0_150 → v0_160}/_md-sys-motion.scss +2 -2
  639. package/tokens/{v0_150 → v0_160}/_md-sys-shape.scss +2 -2
  640. package/tokens/{v0_150 → v0_160}/_md-sys-state.scss +2 -2
  641. package/tokens/{v0_150 → v0_160}/_md-sys-typescale.scss +2 -3
  642. package/tokens/v0_160/index.test.css.d.ts +1 -0
  643. package/tokens/{v0_150 → v0_160}/index.test.scss +1 -1
  644. package/tokens/v0_160/lib.test.css.d.ts +1 -0
  645. package/tokens/{v0_150 → v0_160}/lib.test.scss +1 -1
  646. package/list/lib/_tokens.scss +0 -80
  647. package/list/lib/divider/_list-divider.scss +0 -46
  648. package/list/lib/divider/list-divider-styles.css.js +0 -9
  649. package/list/lib/divider/list-divider-styles.css.js.map +0 -1
  650. package/list/lib/divider/list-divider-styles.scss +0 -8
  651. package/list/lib/divider/list-divider.d.ts +0 -13
  652. package/list/lib/divider/list-divider.js +0 -32
  653. package/list/lib/divider/list-divider.js.map +0 -1
  654. package/list/list-divider.d.ts +0 -19
  655. package/list/list-divider.js +0 -22
  656. package/list/list-divider.js.map +0 -1
  657. package/menu/lib/_menu-button.scss +0 -14
  658. package/menu/lib/adapter.d.ts +0 -66
  659. package/menu/lib/adapter.js +0 -7
  660. package/menu/lib/adapter.js.map +0 -1
  661. package/menu/lib/constants.d.ts +0 -22
  662. package/menu/lib/constants.js +0 -23
  663. package/menu/lib/constants.js.map +0 -1
  664. package/menu/lib/foundation.d.ts +0 -49
  665. package/menu/lib/foundation.js +0 -123
  666. package/menu/lib/foundation.js.map +0 -1
  667. package/menu/lib/menu-button-styles.css.js +0 -9
  668. package/menu/lib/menu-button-styles.css.js.map +0 -1
  669. package/menu/lib/menu-button-styles.scss +0 -8
  670. package/menu/lib/menu-button.d.ts +0 -27
  671. package/menu/lib/menu-button.js +0 -93
  672. package/menu/lib/menu-button.js.map +0 -1
  673. package/menu/menu-button.d.ts +0 -14
  674. package/menu/menu-button.js +0 -17
  675. package/menu/menu-button.js.map +0 -1
  676. /package/{list/lib/divider/list-divider-styles.css.d.ts → dialog/lib/dialog-styles.css.d.ts} +0 -0
  677. /package/{menu/lib/menu-button-styles.css.d.ts → divider/lib/divider-styles.css.d.ts} +0 -0
  678. /package/{tokens/v0_150/index.test.css.d.ts → list/lib/listitem/list-item-private-styles.css.d.ts} +0 -0
  679. /package/{tokens/v0_150/lib.test.css.d.ts → menu/lib/menuitem/menu-item-private-styles.css.d.ts} +0 -0
  680. /package/tokens/{v0_150 → v0_160}/index.test.css.js +0 -0
  681. /package/tokens/{v0_150 → v0_160}/index.test.css.js.map +0 -0
  682. /package/tokens/{v0_150 → v0_160}/lib.test.css.js +0 -0
  683. /package/tokens/{v0_150 → v0_160}/lib.test.css.js.map +0 -0
@@ -5,69 +5,125 @@
5
5
  */
6
6
  import '../../../ripple/ripple.js';
7
7
  import '../../../focus/focus-ring.js';
8
- import { ActionElement, BeginPressConfig, EndPressConfig } from '../../../actionelement/action-element.js';
8
+ import { LitElement, nothing, PropertyValues, TemplateResult } from 'lit';
9
+ import { ClassInfo } from 'lit/directives/class-map.js';
9
10
  import { MdRipple } from '../../../ripple/ripple.js';
10
11
  import { ARIARole } from '../../../types/aria.js';
11
- import { TemplateResult } from 'lit';
12
- import { ClassInfo } from 'lit/directives/class-map.js';
13
- /** @soyCompatible */
14
- export declare class ListItem extends ActionElement {
12
+ interface ListItemSelf {
13
+ active: boolean;
14
+ disabled: boolean;
15
+ }
16
+ /**
17
+ * The interface of an item that is compatible with md-list. An item that is
18
+ * selectable and disablable.
19
+ */
20
+ export type ListItem = ListItemSelf & HTMLElement;
21
+ export declare class ListItemEl extends LitElement implements ListItem {
15
22
  role: ARIARole;
16
23
  ariaSelected: 'true' | 'false';
17
24
  ariaChecked: 'true' | 'false';
18
- itemId: string;
25
+ /**
26
+ * The primary, headline text of the list item.
27
+ */
28
+ headline: string;
29
+ /**
30
+ * The one-line supporting text below the headline.
31
+ */
19
32
  supportingText: string;
33
+ /**
34
+ * The multi-line supporting text below the headline. __NOTE:__ if set to a
35
+ * truthy value, overrides the visibility and behavior of `supportingText`.
36
+ */
20
37
  multiLineSupportingText: string;
38
+ /**
39
+ * The supporting text placed at the end of the item. Overriden by elements
40
+ * slotted into the `end` slot.
41
+ */
21
42
  trailingSupportingText: string;
43
+ /**
44
+ * Disables the item and makes it non-selectable and non-interactive.
45
+ */
22
46
  disabled: boolean;
47
+ /**
48
+ * The tabindex of the underlying item.
49
+ *
50
+ * __NOTE:__ this is overriden by the keyboard behavior of `md-list` and by
51
+ * setting `selected`.
52
+ */
23
53
  itemTabIndex: number;
24
- headline: string;
25
- ripple: MdRipple;
26
- listItemRoot: HTMLElement;
27
- showFocusRing: boolean;
28
- /** @soyTemplate */
54
+ /**
55
+ * Whether or not the element is in the selected visual state. When active,
56
+ * tabindex is set to 0, and in some list item variants (like md-list-item),
57
+ * focuses the underlying item.
58
+ */
59
+ active: boolean;
60
+ /**
61
+ * READONLY. Sets the `md-list-item` attribute on the element.
62
+ */
63
+ isListItem: boolean;
64
+ protected ripple: Promise<MdRipple | null>;
65
+ protected listItemRoot: HTMLElement;
66
+ protected showFocusRing: boolean;
67
+ protected showRipple: boolean;
68
+ /**
69
+ * Only meant to be overriden by subclassing and not by the user. This is
70
+ * so that we have control over focus on specific variants such as disabling
71
+ * focus on <md-autocomplete-item> but enabling it for <md-menu-item>.
72
+ */
73
+ protected focusOnSelection: boolean;
74
+ protected getRipple: () => Promise<MdRipple>;
75
+ private isFirstUpdate;
76
+ willUpdate(changed: PropertyValues<this>): void;
29
77
  render(): TemplateResult;
30
- /** @soyTemplate */
31
- protected renderRipple(): TemplateResult;
32
- /** @soyTemplate */
78
+ /**
79
+ * Renders the root list item.
80
+ *
81
+ * @param content {unkown} the child content of the list item.
82
+ */
83
+ protected renderListItem(content: unknown): TemplateResult<1>;
84
+ /**
85
+ * Handles rendering of the ripple element.
86
+ */
87
+ protected renderRipple(): TemplateResult | typeof nothing;
88
+ /**
89
+ * Handles rendering of the focus ring.
90
+ */
33
91
  protected renderFocusRing(): TemplateResult;
34
- /** @soyTemplate */
35
- protected getAriaRole(): ARIARole;
36
- /** @soyTemplate */
92
+ /**
93
+ * Classes applied to the list item root.
94
+ */
37
95
  protected getRenderClasses(): ClassInfo;
38
- /** @soyTemplate */
96
+ /**
97
+ * The content rendered at the start of the list item.
98
+ */
39
99
  protected renderStart(): TemplateResult;
40
- /** @soyTemplate */
100
+ /**
101
+ * Handles rendering the headline and supporting text.
102
+ */
41
103
  protected renderBody(): TemplateResult;
42
- /** @soyTemplate */
104
+ /**
105
+ * Renders the one-line supporting text.
106
+ */
43
107
  protected renderSupportingText(): TemplateResult;
44
- /** @soyTemplate */
45
- protected renderMultiLineSupportingText(): TemplateResult;
46
- /** @soyTemplate */
47
- protected renderEnd(): TemplateResult;
48
- /** @soyTemplate */
49
- protected renderTrailingSupportingText(): TemplateResult;
50
- protected handleSlotChange(): void;
51
- beginPress({ positionEvent }: BeginPressConfig): void;
52
- endPress({ cancelled }: EndPressConfig): void;
53
- protected handleFocus(): void;
54
- protected handleBlur(): void;
55
- handlePointerDown(e: PointerEvent): void;
56
- protected handlePointerEnter(e: PointerEvent): void;
57
- handlePointerLeave(e: PointerEvent): void;
58
- /** @bubbleWizEvent */
59
- protected handleKeyDown(e: KeyboardEvent): void;
60
- protected handleKeyUp(e: KeyboardEvent): void;
61
108
  /**
62
- * Focuses list item and makes list item focusable via keyboard.
109
+ * Renders the multi-line supporting text
63
110
  */
64
- activate(): void;
111
+ protected renderMultiLineSupportingText(): TemplateResult;
65
112
  /**
66
- * Returns true if list item is currently focused and is focusable.
113
+ * The content rendered at the end of the list item.
67
114
  */
68
- isActive(): boolean;
115
+ protected renderEnd(): TemplateResult;
69
116
  /**
70
- * Removes list item from sequential keyboard navigation.
117
+ * Renders the supporting text at the end of the list item.
71
118
  */
72
- deactivate(): void;
119
+ protected renderTrailingSupportingText(): TemplateResult;
120
+ protected onPointerdown(): void;
121
+ protected onFocus(): void;
122
+ protected onBlur(): void;
123
+ protected onClick(e: Event): void;
124
+ protected onKeydown(e: KeyboardEvent): void;
125
+ protected onPointerenter(e: Event): void;
126
+ protected onPointerleave(e: Event): void;
127
+ updated(changed: PropertyValues<this>): void;
73
128
  }
129
+ export {};
@@ -4,257 +4,288 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  import { __decorate, __metadata } from "tslib";
7
+ // Required for @ariaProperty
8
+ // tslint:disable:no-new-decorators
7
9
  import '../../../ripple/ripple.js';
8
10
  import '../../../focus/focus-ring.js';
9
- import { ActionElement } from '../../../actionelement/action-element.js';
11
+ import { html, LitElement, nothing } from 'lit';
12
+ import { property, query, queryAsync, state } from 'lit/decorators.js';
13
+ import { classMap } from 'lit/directives/class-map.js';
10
14
  import { ariaProperty } from '../../../decorators/aria-property.js';
11
15
  import { pointerPress, shouldShowStrongFocus } from '../../../focus/strong-focus.js';
12
- import { MdRipple } from '../../../ripple/ripple.js';
13
- import { html } from 'lit';
14
- import { property, query } from 'lit/decorators.js';
15
- import { classMap } from 'lit/directives/class-map.js';
16
- import { ifDefined } from 'lit/directives/if-defined.js';
17
- /** @soyCompatible */
18
- export class ListItem extends ActionElement {
16
+ import { ripple } from '../../../ripple/directive.js';
17
+ // tslint:disable-next-line:enforce-comments-on-exported-symbols
18
+ export class ListItemEl extends LitElement {
19
19
  constructor() {
20
20
  super(...arguments);
21
21
  // @ts-ignore(b/264292293): Use `override` with TS 4.9+
22
22
  this.role = 'listitem';
23
+ /**
24
+ * The primary, headline text of the list item.
25
+ */
26
+ this.headline = '';
27
+ /**
28
+ * The one-line supporting text below the headline.
29
+ */
23
30
  this.supportingText = '';
31
+ /**
32
+ * The multi-line supporting text below the headline. __NOTE:__ if set to a
33
+ * truthy value, overrides the visibility and behavior of `supportingText`.
34
+ */
24
35
  this.multiLineSupportingText = '';
36
+ /**
37
+ * The supporting text placed at the end of the item. Overriden by elements
38
+ * slotted into the `end` slot.
39
+ */
25
40
  this.trailingSupportingText = '';
41
+ /**
42
+ * Disables the item and makes it non-selectable and non-interactive.
43
+ */
26
44
  this.disabled = false;
45
+ /**
46
+ * The tabindex of the underlying item.
47
+ *
48
+ * __NOTE:__ this is overriden by the keyboard behavior of `md-list` and by
49
+ * setting `selected`.
50
+ */
27
51
  this.itemTabIndex = -1;
28
- this.headline = '';
52
+ /**
53
+ * Whether or not the element is in the selected visual state. When active,
54
+ * tabindex is set to 0, and in some list item variants (like md-list-item),
55
+ * focuses the underlying item.
56
+ */
57
+ this.active = false;
58
+ /**
59
+ * READONLY. Sets the `md-list-item` attribute on the element.
60
+ */
61
+ this.isListItem = true;
29
62
  this.showFocusRing = false;
63
+ this.showRipple = false;
64
+ /**
65
+ * Only meant to be overriden by subclassing and not by the user. This is
66
+ * so that we have control over focus on specific variants such as disabling
67
+ * focus on <md-autocomplete-item> but enabling it for <md-menu-item>.
68
+ */
69
+ this.focusOnSelection = true;
70
+ this.getRipple = () => {
71
+ this.showRipple = true;
72
+ return this.ripple;
73
+ };
74
+ this.isFirstUpdate = true;
75
+ }
76
+ willUpdate(changed) {
77
+ if (changed.has('active') && !this.disabled) {
78
+ if (this.active) {
79
+ this.itemTabIndex = 0;
80
+ if (this.focusOnSelection) {
81
+ this.showFocusRing = shouldShowStrongFocus();
82
+ }
83
+ // Do not reset anything if it's the first render because user could
84
+ // have set `itemTabIndex` manually.
85
+ }
86
+ else if (!this.isFirstUpdate) {
87
+ this.itemTabIndex = -1;
88
+ }
89
+ }
30
90
  }
31
- /** @soyTemplate */
32
91
  render() {
92
+ return this.renderListItem(html `
93
+ ${this.renderStart()}
94
+ ${this.renderBody()}
95
+ ${this.renderEnd()}
96
+ <div class="ripple">
97
+ ${this.renderRipple()}
98
+ </div>
99
+ <div class="focus-ring">
100
+ ${this.renderFocusRing()}
101
+ </div>`);
102
+ }
103
+ /**
104
+ * Renders the root list item.
105
+ *
106
+ * @param content {unkown} the child content of the list item.
107
+ */
108
+ renderListItem(content) {
33
109
  return html `
34
110
  <li
35
- tabindex=${this.itemTabIndex}
111
+ tabindex=${this.disabled ? -1 : this.itemTabIndex}
36
112
  role=${this.role}
37
- aria-selected=${ifDefined(this.ariaSelected || undefined)}
38
- aria-checked=${ifDefined(this.ariaChecked || undefined)}
39
- id=${ifDefined(this.itemId || undefined)}
40
- data-query-md3-list-item
41
- class="md3-list-item ${classMap(this.getRenderClasses())}"
42
- @pointerdown=${this.handlePointerDown}
43
- @pointerenter=${this.handlePointerEnter}
44
- @pointerup=${this.handlePointerUp}
45
- @pointercancel=${this.handlePointerCancel}
46
- @pointerleave=${this.handlePointerLeave}
47
- @keydown=${this.handleKeyDown}
48
- @keyup=${this.handleKeyUp}
49
- @click=${this.handleClick}
50
- @contextmenu=${this.handleContextMenu}
51
- @focus=${this.handleFocus}
52
- @blur=${this.handleBlur}
53
- >
54
- ${this.renderStart()}
55
- ${this.renderBody()}
56
- ${this.renderEnd()}
57
- <div class="md3-list-item__ripple">
58
- ${this.renderRipple()}
59
- </div>
60
- <div class="md3-list-item__focus-ring">
61
- ${this.renderFocusRing()}
62
- </div>
63
- </li>`;
113
+ aria-selected=${this.ariaSelected || nothing}
114
+ aria-checked=${this.ariaChecked || nothing}
115
+ class="list-item ${classMap(this.getRenderClasses())}"
116
+ @pointerdown=${this.onPointerdown}
117
+ @focus=${this.onFocus}
118
+ @blur=${this.onBlur}
119
+ @click=${this.onClick}
120
+ @pointerenter=${this.onPointerenter}
121
+ @pointerleave=${this.onPointerleave}
122
+ @keydown=${this.onKeydown}
123
+ ${ripple(this.getRipple)}>${content}</li>`;
64
124
  }
65
- /** @soyTemplate */
125
+ /**
126
+ * Handles rendering of the ripple element.
127
+ */
66
128
  renderRipple() {
67
- return html `<md-ripple ?disabled="${this.disabled}"></md-ripple>`;
129
+ return this.showRipple ?
130
+ html `<md-ripple ?disabled="${this.disabled}"></md-ripple>` :
131
+ nothing;
68
132
  }
69
- /** @soyTemplate */
133
+ /**
134
+ * Handles rendering of the focus ring.
135
+ */
70
136
  renderFocusRing() {
71
137
  return html `<md-focus-ring .visible="${this.showFocusRing}"></md-focus-ring>`;
72
138
  }
73
- /** @soyTemplate */
74
- getAriaRole() {
75
- return 'listitem';
76
- }
77
- /** @soyTemplate */
139
+ /**
140
+ * Classes applied to the list item root.
141
+ */
78
142
  getRenderClasses() {
79
143
  return {
80
- 'md3-list-item--with-one-line': this.supportingText === '' && this.multiLineSupportingText === '',
81
- 'md3-list-item--with-two-line': this.supportingText !== '' && this.multiLineSupportingText === '',
82
- 'md3-list-item--with-three-line': this.multiLineSupportingText !== '',
83
- 'md3-list-item--disabled': this.disabled,
84
- 'md3-list-item--enabled': !this.disabled,
144
+ 'with-one-line': this.supportingText === '' && this.multiLineSupportingText === '',
145
+ 'with-two-line': this.supportingText !== '' && this.multiLineSupportingText === '',
146
+ 'with-three-line': this.multiLineSupportingText !== '',
147
+ 'disabled': this.disabled,
148
+ 'enabled': !this.disabled,
85
149
  };
86
150
  }
87
- /** @soyTemplate */
151
+ /**
152
+ * The content rendered at the start of the list item.
153
+ */
88
154
  renderStart() {
89
- return html `<div class="md3-list-item__start"><!--
90
- --><slot name="start" @slotchange=${this.handleSlotChange}></slot><!--
91
- --></div>`;
155
+ return html `<div class="start"><slot name="start"></slot></div>`;
92
156
  }
93
- /** @soyTemplate */
157
+ /**
158
+ * Handles rendering the headline and supporting text.
159
+ */
94
160
  renderBody() {
95
- return html `<div class="md3-list-item__body"><!--
96
- --><span class="md3-list-item__label-text"><!--
97
- -->${this.headline}<!--
98
- --></span><!--
99
- -->${this.multiLineSupportingText !== '' ?
161
+ const supportingText = this.multiLineSupportingText !== '' ?
100
162
  this.renderMultiLineSupportingText() :
101
163
  this.supportingText !== '' ? this.renderSupportingText() :
102
- ''}<!--
103
- --></div>`;
164
+ '';
165
+ return html `<div class="body"
166
+ ><span class="label-text">${this.headline}</span>${supportingText}</div>`;
104
167
  }
105
- /** @soyTemplate */
168
+ /**
169
+ * Renders the one-line supporting text.
170
+ */
106
171
  renderSupportingText() {
107
- return html `<span class="md3-list-item__supporting-text"><!--
108
- -->${this.supportingText}<!--
109
- --></span>`;
172
+ return html `<span class="supporting-text">${this.supportingText}</span>`;
110
173
  }
111
- /** @soyTemplate */
174
+ /**
175
+ * Renders the multi-line supporting text
176
+ */
112
177
  renderMultiLineSupportingText() {
113
- return html `<span class="md3-list-item__supporting-text md3-list-item__supporting-text--multi-line"><!--
114
- -->${this.multiLineSupportingText}<!--
115
- --></span>`;
178
+ return html `<span class="supporting-text supporting-text--multi-line"
179
+ >${this.multiLineSupportingText}</span>`;
116
180
  }
117
- /** @soyTemplate */
181
+ /**
182
+ * The content rendered at the end of the list item.
183
+ */
118
184
  renderEnd() {
119
- return html `<div class="md3-list-item__end"><!--
120
- --><slot name="end" @slotchange=${this.handleSlotChange}><!--
121
- -->${this.trailingSupportingText !== '' ?
185
+ const supportingText = this.trailingSupportingText !== '' ?
122
186
  this.renderTrailingSupportingText() :
123
- ''}<!--
124
- --></slot><!--
125
- --></div>`;
187
+ '';
188
+ return html `<div class="end"
189
+ ><slot name="end">${supportingText}</slot></div>`;
126
190
  }
127
- /** @soyTemplate */
191
+ /**
192
+ * Renders the supporting text at the end of the list item.
193
+ */
128
194
  renderTrailingSupportingText() {
129
- return html `<span class="md3-list-item__trailing-supporting-text"><!--
130
- -->${this.trailingSupportingText}<!--
131
- --></span>`;
132
- }
133
- handleSlotChange() {
134
- this.requestUpdate();
195
+ return html `<span class="trailing-supporting-text"
196
+ >${this.trailingSupportingText}</span>`;
135
197
  }
136
- beginPress({ positionEvent }) {
137
- this.ripple.beginPress(positionEvent);
138
- }
139
- endPress({ cancelled }) {
140
- this.ripple.endPress();
141
- if (cancelled)
142
- return;
143
- super.endPress({ cancelled, actionData: { item: this } });
144
- }
145
- handleFocus() {
146
- this.showFocusRing = shouldShowStrongFocus();
147
- }
148
- handleBlur() {
149
- this.showFocusRing = false;
150
- }
151
- handlePointerDown(e) {
152
- super.handlePointerDown(e);
198
+ onPointerdown() {
153
199
  pointerPress();
154
200
  this.showFocusRing = shouldShowStrongFocus();
155
201
  }
156
- handlePointerEnter(e) {
157
- this.ripple.beginHover(e);
158
- }
159
- handlePointerLeave(e) {
160
- super.handlePointerLeave(e);
161
- this.ripple.endHover();
162
- }
163
- /** @bubbleWizEvent */
164
- handleKeyDown(e) {
165
- if (e.key !== ' ' && e.key !== 'Enter')
166
- return;
167
- e.preventDefault();
168
- // TODO(b/240124486): Replace with beginPress provided by action
169
- // element.
170
- this.ripple.beginPress(e);
171
- }
172
- handleKeyUp(e) {
173
- if (e.key !== ' ' && e.key !== 'Enter')
174
- return;
175
- e.preventDefault();
176
- // TODO(b/240124486): Replace with beginPress provided by action element.
177
- super.endPress({ cancelled: false, actionData: { item: this } });
178
- this.ripple.endPress();
179
- }
180
- /**
181
- * Focuses list item and makes list item focusable via keyboard.
182
- */
183
- activate() {
184
- this.itemTabIndex = 0;
185
- this.listItemRoot.focus();
186
- this.showFocusRing = true;
202
+ onFocus() {
203
+ this.showFocusRing = shouldShowStrongFocus();
187
204
  }
188
- /**
189
- * Returns true if list item is currently focused and is focusable.
190
- */
191
- isActive() {
192
- return this.itemTabIndex === 0 && this.showFocusRing;
205
+ onBlur() {
206
+ this.showFocusRing = false;
193
207
  }
194
- /**
195
- * Removes list item from sequential keyboard navigation.
196
- */
197
- deactivate() {
198
- this.itemTabIndex = -1;
208
+ // For easier overriding in menu-item
209
+ onClick(e) { }
210
+ onKeydown(e) { }
211
+ onPointerenter(e) { }
212
+ onPointerleave(e) { }
213
+ updated(changed) {
214
+ super.updated(changed);
215
+ // will focus the list item root if it is selected but not on the first
216
+ // update or else it may cause the page to jump on first load.
217
+ if (changed.has('active') && !this.isFirstUpdate && this.active &&
218
+ this.focusOnSelection) {
219
+ this.listItemRoot.focus();
220
+ }
221
+ this.isFirstUpdate = false;
199
222
  }
200
223
  }
201
224
  __decorate([
202
- ariaProperty // tslint:disable-line:no-new-decorators
203
- // tslint:disable-next-line:decorator-placement
225
+ ariaProperty
226
+ // tslint:disable-next-line
227
+ ,
228
+ property({ type: String, attribute: 'data-role', noAccessor: true })
229
+ // @ts-ignore(b/264292293): Use `override` with TS 4.9+
204
230
  ,
205
- property({ type: String, attribute: 'data-role', noAccessor: true }),
206
231
  __metadata("design:type", String)
207
- ], ListItem.prototype, "role", void 0);
232
+ ], ListItemEl.prototype, "role", void 0);
208
233
  __decorate([
209
- ariaProperty // tslint:disable-line:no-new-decorators
210
- ,
234
+ ariaProperty,
211
235
  property({ type: String, attribute: 'data-aria-selected', noAccessor: true }),
212
236
  __metadata("design:type", String)
213
- ], ListItem.prototype, "ariaSelected", void 0);
237
+ ], ListItemEl.prototype, "ariaSelected", void 0);
214
238
  __decorate([
215
- ariaProperty // tslint:disable-line:no-new-decorators
216
- ,
239
+ ariaProperty,
217
240
  property({ type: String, attribute: 'data-aria-checked', noAccessor: true }),
218
241
  __metadata("design:type", String)
219
- ], ListItem.prototype, "ariaChecked", void 0);
242
+ ], ListItemEl.prototype, "ariaChecked", void 0);
220
243
  __decorate([
221
- property({ type: String }),
222
- __metadata("design:type", String)
223
- ], ListItem.prototype, "itemId", void 0);
244
+ property(),
245
+ __metadata("design:type", Object)
246
+ ], ListItemEl.prototype, "headline", void 0);
224
247
  __decorate([
225
- property({ type: String }),
248
+ property(),
226
249
  __metadata("design:type", Object)
227
- ], ListItem.prototype, "supportingText", void 0);
250
+ ], ListItemEl.prototype, "supportingText", void 0);
228
251
  __decorate([
229
- property({ type: String }),
252
+ property(),
230
253
  __metadata("design:type", Object)
231
- ], ListItem.prototype, "multiLineSupportingText", void 0);
254
+ ], ListItemEl.prototype, "multiLineSupportingText", void 0);
232
255
  __decorate([
233
- property({ type: String }),
256
+ property(),
234
257
  __metadata("design:type", Object)
235
- ], ListItem.prototype, "trailingSupportingText", void 0);
258
+ ], ListItemEl.prototype, "trailingSupportingText", void 0);
236
259
  __decorate([
237
260
  property({ type: Boolean }),
238
261
  __metadata("design:type", Object)
239
- ], ListItem.prototype, "disabled", void 0);
262
+ ], ListItemEl.prototype, "disabled", void 0);
240
263
  __decorate([
241
264
  property({ type: Number }),
242
265
  __metadata("design:type", Object)
243
- ], ListItem.prototype, "itemTabIndex", void 0);
266
+ ], ListItemEl.prototype, "itemTabIndex", void 0);
267
+ __decorate([
268
+ property({ type: Boolean, reflect: true }),
269
+ __metadata("design:type", Object)
270
+ ], ListItemEl.prototype, "active", void 0);
244
271
  __decorate([
245
- property({ type: String }),
272
+ property({ type: Boolean, attribute: 'md-list-item', reflect: true }),
246
273
  __metadata("design:type", Object)
247
- ], ListItem.prototype, "headline", void 0);
274
+ ], ListItemEl.prototype, "isListItem", void 0);
248
275
  __decorate([
249
- query('md-ripple'),
250
- __metadata("design:type", MdRipple)
251
- ], ListItem.prototype, "ripple", void 0);
276
+ queryAsync('md-ripple'),
277
+ __metadata("design:type", Promise)
278
+ ], ListItemEl.prototype, "ripple", void 0);
252
279
  __decorate([
253
- query('[data-query-md3-list-item]'),
280
+ query('.list-item'),
254
281
  __metadata("design:type", HTMLElement)
255
- ], ListItem.prototype, "listItemRoot", void 0);
282
+ ], ListItemEl.prototype, "listItemRoot", void 0);
256
283
  __decorate([
257
- property({ type: Boolean }),
284
+ state(),
285
+ __metadata("design:type", Object)
286
+ ], ListItemEl.prototype, "showFocusRing", void 0);
287
+ __decorate([
288
+ state(),
258
289
  __metadata("design:type", Object)
259
- ], ListItem.prototype, "showFocusRing", void 0);
290
+ ], ListItemEl.prototype, "showRipple", void 0);
260
291
  //# sourceMappingURL=list-item.js.map