@material/web 1.0.0-pre.4 → 1.0.0-pre.5

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 (522) hide show
  1. package/README.md +5 -5
  2. package/badge/lib/_badge.scss +2 -10
  3. package/button/lib/_elevated-button.scss +5 -30
  4. package/button/lib/_elevation.scss +1 -16
  5. package/button/lib/_filled-button.scss +4 -31
  6. package/button/lib/_icon.scss +1 -0
  7. package/button/lib/_outlined-button.scss +6 -23
  8. package/button/lib/_shared.scss +20 -54
  9. package/button/lib/_text-button.scss +8 -34
  10. package/button/lib/_tonal-button.scss +5 -28
  11. package/button/lib/button.d.ts +2 -0
  12. package/button/lib/button.js +5 -1
  13. package/button/lib/button.js.map +1 -1
  14. package/button/lib/elevated-styles.css.js +1 -1
  15. package/button/lib/elevated-styles.css.js.map +1 -1
  16. package/button/lib/filled-styles.css.js +1 -1
  17. package/button/lib/filled-styles.css.js.map +1 -1
  18. package/button/lib/outlined-styles.css.js +1 -1
  19. package/button/lib/outlined-styles.css.js.map +1 -1
  20. package/button/lib/shared-styles.css.js +1 -1
  21. package/button/lib/shared-styles.css.js.map +1 -1
  22. package/button/lib/text-styles.css.js +1 -1
  23. package/button/lib/text-styles.css.js.map +1 -1
  24. package/button/lib/tonal-styles.css.js +1 -1
  25. package/button/lib/tonal-styles.css.js.map +1 -1
  26. package/checkbox/lib/_checkbox.scss +1 -2
  27. package/checkbox/lib/checkbox-styles.css.js +1 -1
  28. package/checkbox/lib/checkbox-styles.css.js.map +1 -1
  29. package/chips/_assist-chip.scss +6 -0
  30. package/chips/_suggestion-chip.scss +6 -0
  31. package/chips/assist-chip.d.ts +20 -0
  32. package/chips/assist-chip.js +24 -0
  33. package/chips/assist-chip.js.map +1 -0
  34. package/chips/lib/_assist-chip.scss +27 -0
  35. package/chips/lib/_shared.scss +183 -0
  36. package/chips/lib/_suggestion-chip.scss +30 -0
  37. package/chips/lib/assist-chip.d.ts +11 -0
  38. package/chips/lib/assist-chip.js +12 -0
  39. package/chips/lib/assist-chip.js.map +1 -0
  40. package/chips/lib/assist-styles.css.js +9 -0
  41. package/chips/lib/assist-styles.css.js.map +1 -0
  42. package/{menusurface/lib/menu-surface-styles.scss → chips/lib/assist-styles.scss} +3 -3
  43. package/chips/lib/chip.d.ts +29 -0
  44. package/chips/lib/chip.js +110 -0
  45. package/chips/lib/chip.js.map +1 -0
  46. package/chips/lib/shared-styles.css.js +9 -0
  47. package/chips/lib/shared-styles.css.js.map +1 -0
  48. package/{autocomplete → chips}/lib/shared-styles.scss +1 -1
  49. package/chips/lib/suggestion-chip.d.ts +11 -0
  50. package/chips/lib/suggestion-chip.js +12 -0
  51. package/chips/lib/suggestion-chip.js.map +1 -0
  52. package/chips/lib/suggestion-styles.css.js +9 -0
  53. package/chips/lib/suggestion-styles.css.js.map +1 -0
  54. package/{autocomplete/lib/autocompletelist/autocomplete-list-styles.scss → chips/lib/suggestion-styles.scss} +3 -3
  55. package/chips/suggestion-chip.d.ts +20 -0
  56. package/chips/suggestion-chip.js +24 -0
  57. package/chips/suggestion-chip.js.map +1 -0
  58. package/dialog/lib/_dialog.scss +7 -5
  59. package/dialog/lib/_tokens.scss +1 -2
  60. package/dialog/lib/dialog-styles.css.js +1 -1
  61. package/dialog/lib/dialog-styles.css.js.map +1 -1
  62. package/dialog/lib/dialog.js +1 -1
  63. package/dialog/lib/dialog.js.map +1 -1
  64. package/elevation/lib/_elevation.scss +1 -21
  65. package/elevation/lib/elevation-styles.css.js +1 -1
  66. package/elevation/lib/elevation-styles.css.js.map +1 -1
  67. package/fab/lib/_fab-extended.scss +3 -10
  68. package/fab/lib/_fab.scss +0 -3
  69. package/fab/lib/_shared.scss +3 -25
  70. package/fab/lib/fab-extended-styles.css.js +1 -1
  71. package/fab/lib/fab-extended-styles.css.js.map +1 -1
  72. package/fab/lib/fab-shared-styles.css.js +1 -1
  73. package/fab/lib/fab-shared-styles.css.js.map +1 -1
  74. package/fab/lib/fab-shared.d.ts +0 -1
  75. package/fab/lib/fab-shared.js +1 -7
  76. package/fab/lib/fab-shared.js.map +1 -1
  77. package/field/lib/field.d.ts +4 -1
  78. package/field/lib/field.js +7 -0
  79. package/field/lib/field.js.map +1 -1
  80. package/focus/lib/_focus-ring.scss +13 -7
  81. package/focus/lib/_md-comp-focus-ring.scss +1 -2
  82. package/focus/lib/focus-ring-styles.css.js +1 -1
  83. package/focus/lib/focus-ring-styles.css.js.map +1 -1
  84. package/iconbutton/lib/_filled-icon-button.scss +1 -12
  85. package/iconbutton/lib/_filled-tonal-icon-button.scss +1 -12
  86. package/iconbutton/lib/_outlined-icon-button.scss +1 -13
  87. package/iconbutton/lib/_shared.scss +10 -6
  88. package/iconbutton/lib/_standard-icon-button.scss +5 -12
  89. package/iconbutton/lib/filled-styles.css.js +1 -1
  90. package/iconbutton/lib/filled-styles.css.js.map +1 -1
  91. package/iconbutton/lib/filled-tonal-styles.css.js +1 -1
  92. package/iconbutton/lib/filled-tonal-styles.css.js.map +1 -1
  93. package/iconbutton/lib/icon-button.js +0 -2
  94. package/iconbutton/lib/icon-button.js.map +1 -1
  95. package/iconbutton/lib/outlined-styles.css.js +1 -1
  96. package/iconbutton/lib/outlined-styles.css.js.map +1 -1
  97. package/iconbutton/lib/shared-styles.css.js +1 -1
  98. package/iconbutton/lib/shared-styles.css.js.map +1 -1
  99. package/iconbutton/lib/standard-styles.css.js +1 -1
  100. package/iconbutton/lib/standard-styles.css.js.map +1 -1
  101. package/list/lib/_list.scss +15 -8
  102. package/list/lib/list-styles.css.js +1 -1
  103. package/list/lib/list-styles.css.js.map +1 -1
  104. package/list/lib/listitem/_list-item.scss +41 -44
  105. package/list/lib/listitem/list-item-styles.css.js +1 -1
  106. package/list/lib/listitem/list-item-styles.css.js.map +1 -1
  107. package/list/lib/listitem/list-item.d.ts +1 -0
  108. package/list/lib/listitem/list-item.js +4 -1
  109. package/list/lib/listitem/list-item.js.map +1 -1
  110. package/menu/lib/_menu.scss +6 -9
  111. package/menu/lib/menu-styles.css.js +1 -1
  112. package/menu/lib/menu-styles.css.js.map +1 -1
  113. package/menu/lib/menu.d.ts +22 -9
  114. package/menu/lib/menu.js +74 -26
  115. package/menu/lib/menu.js.map +1 -1
  116. package/menu/lib/menuitem/menu-item.js +1 -1
  117. package/menu/lib/menuitem/menu-item.js.map +1 -1
  118. package/menu/lib/menuitemlink/menu-item-link.js +2 -1
  119. package/menu/lib/menuitemlink/menu-item-link.js.map +1 -1
  120. package/menu/lib/shared.d.ts +16 -0
  121. package/menu/lib/shared.js +16 -0
  122. package/menu/lib/shared.js.map +1 -1
  123. package/menu/lib/submenuitem/sub-menu-item.d.ts +4 -0
  124. package/menu/lib/submenuitem/sub-menu-item.js +9 -2
  125. package/menu/lib/submenuitem/sub-menu-item.js.map +1 -1
  126. package/menu/lib/surfacePositionController.d.ts +10 -2
  127. package/menu/lib/surfacePositionController.js +6 -2
  128. package/menu/lib/surfacePositionController.js.map +1 -1
  129. package/menu/lib/typeaheadController.d.ts +5 -0
  130. package/menu/lib/typeaheadController.js +7 -3
  131. package/menu/lib/typeaheadController.js.map +1 -1
  132. package/navigationbar/lib/_navigation-bar.scss +1 -4
  133. package/navigationdrawer/lib/_navigation-drawer-modal.scss +0 -3
  134. package/navigationdrawer/lib/_navigation-drawer.scss +0 -3
  135. package/navigationdrawer/lib/_shared.scss +0 -9
  136. package/navigationtab/lib/_navigation-tab.scss +4 -10
  137. package/navigationtab/lib/navigation-tab-styles.css.js +1 -1
  138. package/navigationtab/lib/navigation-tab-styles.css.js.map +1 -1
  139. package/package.json +1 -1
  140. package/radio/lib/_radio.scss +1 -2
  141. package/radio/lib/radio-styles.css.js +1 -1
  142. package/radio/lib/radio-styles.css.js.map +1 -1
  143. package/segmentedbutton/lib/_shared.scss +0 -2
  144. package/segmentedbuttonset/lib/outlined-styles.css.js +1 -1
  145. package/segmentedbuttonset/lib/outlined-styles.css.js.map +1 -1
  146. package/slider/lib/_slider.scss +1 -4
  147. package/slider/lib/_tokens.scss +2 -8
  148. package/slider/lib/slider-styles.css.js +1 -1
  149. package/slider/lib/slider-styles.css.js.map +1 -1
  150. package/textfield/lib/_filled-text-field.scss +1 -7
  151. package/textfield/lib/_outlined-text-field.scss +1 -7
  152. package/tokens/_index.scss +101 -2
  153. package/tokens/_md-comp-assist-chip.scss +68 -0
  154. package/tokens/_md-comp-badge.scss +34 -0
  155. package/tokens/_md-comp-banner.scss +23 -0
  156. package/tokens/_md-comp-bottom-app-bar.scss +21 -0
  157. package/tokens/_md-comp-carousel-item.scss +23 -0
  158. package/tokens/_md-comp-checkbox.scss +21 -0
  159. package/tokens/_md-comp-circular-progress-indicator.scss +22 -0
  160. package/tokens/_md-comp-data-table.scss +23 -0
  161. package/tokens/_md-comp-date-input-modal.scss +23 -0
  162. package/tokens/_md-comp-date-picker-docked.scss +25 -0
  163. package/tokens/_md-comp-date-picker-modal.scss +25 -0
  164. package/tokens/_md-comp-dialog.scss +43 -0
  165. package/tokens/_md-comp-divider.scss +17 -0
  166. package/tokens/_md-comp-elevated-button.scss +58 -0
  167. package/tokens/_md-comp-elevated-card.scss +23 -0
  168. package/tokens/_md-comp-extended-fab-branded.scss +38 -0
  169. package/tokens/_md-comp-extended-fab-primary.scss +38 -0
  170. package/tokens/_md-comp-extended-fab-secondary.scss +41 -0
  171. package/tokens/_md-comp-extended-fab-surface.scss +38 -0
  172. package/tokens/_md-comp-extended-fab-tertiary.scss +41 -0
  173. package/tokens/_md-comp-fab-branded-large.scss +23 -0
  174. package/tokens/_md-comp-fab-branded.scss +23 -0
  175. package/tokens/_md-comp-fab-primary-large.scss +23 -0
  176. package/tokens/_md-comp-fab-primary-small.scss +23 -0
  177. package/tokens/_md-comp-fab-primary.scss +23 -0
  178. package/tokens/_md-comp-fab-secondary-large.scss +23 -0
  179. package/tokens/_md-comp-fab-secondary-small.scss +23 -0
  180. package/tokens/_md-comp-fab-secondary.scss +23 -0
  181. package/tokens/_md-comp-fab-surface-large.scss +23 -0
  182. package/tokens/_md-comp-fab-surface-small.scss +23 -0
  183. package/tokens/_md-comp-fab-surface.scss +23 -0
  184. package/tokens/_md-comp-fab-tertiary-large.scss +23 -0
  185. package/tokens/_md-comp-fab-tertiary-small.scss +23 -0
  186. package/tokens/_md-comp-fab-tertiary.scss +23 -0
  187. package/tokens/_md-comp-filled-autocomplete.scss +25 -0
  188. package/tokens/_md-comp-filled-button.scss +58 -0
  189. package/tokens/_md-comp-filled-card.scss +23 -0
  190. package/tokens/_md-comp-filled-icon-button.scss +21 -0
  191. package/tokens/_md-comp-filled-menu-button.scss +25 -0
  192. package/tokens/_md-comp-filled-select.scss +25 -0
  193. package/tokens/_md-comp-filled-text-field.scss +46 -0
  194. package/tokens/_md-comp-filled-tonal-button.scss +59 -0
  195. package/tokens/_md-comp-filled-tonal-icon-button.scss +24 -0
  196. package/tokens/_md-comp-filter-chip.scss +38 -0
  197. package/tokens/_md-comp-full-screen-dialog.scss +25 -0
  198. package/tokens/_md-comp-icon-button.scss +21 -0
  199. package/tokens/_md-comp-input-chip.scss +38 -0
  200. package/tokens/_md-comp-linear-progress-indicator.scss +22 -0
  201. package/tokens/_md-comp-list.scss +58 -0
  202. package/tokens/_md-comp-menu.scss +21 -0
  203. package/tokens/_md-comp-navigation-bar.scss +25 -0
  204. package/tokens/_md-comp-navigation-drawer.scss +25 -0
  205. package/tokens/_md-comp-navigation-rail.scss +25 -0
  206. package/tokens/_md-comp-outlined-autocomplete.scss +28 -0
  207. package/tokens/_md-comp-outlined-button.scss +56 -0
  208. package/tokens/_md-comp-outlined-card.scss +23 -0
  209. package/tokens/_md-comp-outlined-icon-button.scss +21 -0
  210. package/tokens/_md-comp-outlined-menu-button.scss +23 -0
  211. package/tokens/_md-comp-outlined-segmented-button.scss +38 -0
  212. package/tokens/_md-comp-outlined-select.scss +25 -0
  213. package/tokens/_md-comp-outlined-text-field.scss +44 -0
  214. package/tokens/_md-comp-plain-tooltip.scss +21 -0
  215. package/tokens/_md-comp-primary-navigation-tab.scss +41 -0
  216. package/tokens/_md-comp-radio-button.scss +19 -0
  217. package/tokens/_md-comp-rich-tooltip.scss +25 -0
  218. package/tokens/_md-comp-scrim.scss +17 -0
  219. package/tokens/_md-comp-search-bar.scss +25 -0
  220. package/tokens/_md-comp-search-view.scss +23 -0
  221. package/tokens/_md-comp-secondary-navigation-tab.scss +41 -0
  222. package/tokens/_md-comp-sheet-bottom.scss +21 -0
  223. package/tokens/_md-comp-sheet-floating.scss +21 -0
  224. package/tokens/_md-comp-sheet-side.scss +25 -0
  225. package/tokens/_md-comp-slider.scss +38 -0
  226. package/tokens/_md-comp-snackbar.scss +25 -0
  227. package/tokens/_md-comp-standard-menu-button.scss +23 -0
  228. package/tokens/_md-comp-suggestion-chip.scss +72 -0
  229. package/tokens/_md-comp-switch.scss +21 -0
  230. package/tokens/_md-comp-text-button.scss +56 -0
  231. package/tokens/_md-comp-time-input.scss +25 -0
  232. package/tokens/_md-comp-time-picker.scss +25 -0
  233. package/tokens/_md-comp-top-app-bar-large.scss +23 -0
  234. package/tokens/_md-comp-top-app-bar-medium.scss +23 -0
  235. package/tokens/_md-comp-top-app-bar-small-centered.scss +26 -0
  236. package/tokens/_md-comp-top-app-bar-small.scss +23 -0
  237. package/tokens/_md-ref-palette.scss +12 -0
  238. package/tokens/_md-ref-typeface.scss +12 -0
  239. package/tokens/_md-sys-color.scss +25 -0
  240. package/tokens/_md-sys-elevation.scss +30 -0
  241. package/tokens/_md-sys-motion.scss +12 -0
  242. package/tokens/_md-sys-shape.scss +12 -0
  243. package/tokens/_md-sys-state.scss +12 -0
  244. package/tokens/_md-sys-typescale.scss +17 -0
  245. package/autocomplete/_filled-autocomplete.scss +0 -6
  246. package/autocomplete/_outlined-autocomplete.scss +0 -6
  247. package/autocomplete/autocomplete-item.d.ts +0 -19
  248. package/autocomplete/autocomplete-item.js +0 -22
  249. package/autocomplete/autocomplete-item.js.map +0 -1
  250. package/autocomplete/autocomplete-list.d.ts +0 -19
  251. package/autocomplete/autocomplete-list.js +0 -23
  252. package/autocomplete/autocomplete-list.js.map +0 -1
  253. package/autocomplete/autocomplete-surface.d.ts +0 -19
  254. package/autocomplete/autocomplete-surface.js +0 -23
  255. package/autocomplete/autocomplete-surface.js.map +0 -1
  256. package/autocomplete/filled-autocomplete.d.ts +0 -28
  257. package/autocomplete/filled-autocomplete.js +0 -46
  258. package/autocomplete/filled-autocomplete.js.map +0 -1
  259. package/autocomplete/lib/_filled-autocomplete.scss +0 -189
  260. package/autocomplete/lib/_outlined-autocomplete.scss +0 -178
  261. package/autocomplete/lib/_shared.scss +0 -25
  262. package/autocomplete/lib/autocomplete.d.ts +0 -54
  263. package/autocomplete/lib/autocomplete.js +0 -265
  264. package/autocomplete/lib/autocomplete.js.map +0 -1
  265. package/autocomplete/lib/autocompleteitem/autocomplete-item.d.ts +0 -11
  266. package/autocomplete/lib/autocompleteitem/autocomplete-item.js +0 -14
  267. package/autocomplete/lib/autocompleteitem/autocomplete-item.js.map +0 -1
  268. package/autocomplete/lib/autocompleteitem/harness.d.ts +0 -11
  269. package/autocomplete/lib/autocompleteitem/harness.js +0 -12
  270. package/autocomplete/lib/autocompleteitem/harness.js.map +0 -1
  271. package/autocomplete/lib/autocompletelist/_autocomplete-list.scss +0 -13
  272. package/autocomplete/lib/autocompletelist/autocomplete-list-styles.css.js +0 -9
  273. package/autocomplete/lib/autocompletelist/autocomplete-list-styles.css.js.map +0 -1
  274. package/autocomplete/lib/autocompletelist/autocomplete-list.d.ts +0 -14
  275. package/autocomplete/lib/autocompletelist/autocomplete-list.js +0 -21
  276. package/autocomplete/lib/autocompletelist/autocomplete-list.js.map +0 -1
  277. package/autocomplete/lib/autocompletelist/harness.d.ts +0 -11
  278. package/autocomplete/lib/autocompletelist/harness.js +0 -12
  279. package/autocomplete/lib/autocompletelist/harness.js.map +0 -1
  280. package/autocomplete/lib/autocompletesurface/_autocomplete-surface.scss +0 -13
  281. package/autocomplete/lib/autocompletesurface/autocomplete-surface-styles.css.js +0 -9
  282. package/autocomplete/lib/autocompletesurface/autocomplete-surface-styles.css.js.map +0 -1
  283. package/autocomplete/lib/autocompletesurface/autocomplete-surface-styles.scss +0 -10
  284. package/autocomplete/lib/autocompletesurface/autocomplete-surface.d.ts +0 -13
  285. package/autocomplete/lib/autocompletesurface/autocomplete-surface.js +0 -21
  286. package/autocomplete/lib/autocompletesurface/autocomplete-surface.js.map +0 -1
  287. package/autocomplete/lib/filled-styles.css.d.ts +0 -1
  288. package/autocomplete/lib/filled-styles.css.js +0 -9
  289. package/autocomplete/lib/filled-styles.css.js.map +0 -1
  290. package/autocomplete/lib/filled-styles.scss +0 -10
  291. package/autocomplete/lib/outlined-styles.css.d.ts +0 -1
  292. package/autocomplete/lib/outlined-styles.css.js +0 -9
  293. package/autocomplete/lib/outlined-styles.css.js.map +0 -1
  294. package/autocomplete/lib/outlined-styles.scss +0 -10
  295. package/autocomplete/lib/shared-styles.css.js +0 -9
  296. package/autocomplete/lib/shared-styles.css.js.map +0 -1
  297. package/autocomplete/outlined-autocomplete.d.ts +0 -28
  298. package/autocomplete/outlined-autocomplete.js +0 -46
  299. package/autocomplete/outlined-autocomplete.js.map +0 -1
  300. package/chips/action/delete-action.d.ts +0 -18
  301. package/chips/action/delete-action.js +0 -20
  302. package/chips/action/delete-action.js.map +0 -1
  303. package/chips/action/lib/action.d.ts +0 -47
  304. package/chips/action/lib/action.js +0 -162
  305. package/chips/action/lib/action.js.map +0 -1
  306. package/chips/action/lib/constants.d.ts +0 -62
  307. package/chips/action/lib/constants.js +0 -69
  308. package/chips/action/lib/constants.js.map +0 -1
  309. package/chips/action/lib/delete-action.d.ts +0 -20
  310. package/chips/action/lib/delete-action.js +0 -65
  311. package/chips/action/lib/delete-action.js.map +0 -1
  312. package/chips/action/lib/events.d.ts +0 -14
  313. package/chips/action/lib/events.js +0 -16
  314. package/chips/action/lib/events.js.map +0 -1
  315. package/chips/action/lib/link-action.d.ts +0 -19
  316. package/chips/action/lib/link-action.js +0 -55
  317. package/chips/action/lib/link-action.js.map +0 -1
  318. package/chips/action/lib/presentational-action.d.ts +0 -15
  319. package/chips/action/lib/presentational-action.js +0 -30
  320. package/chips/action/lib/presentational-action.js.map +0 -1
  321. package/chips/action/lib/primary-action.d.ts +0 -28
  322. package/chips/action/lib/primary-action.js +0 -88
  323. package/chips/action/lib/primary-action.js.map +0 -1
  324. package/chips/action/lib/selectable-action.d.ts +0 -17
  325. package/chips/action/lib/selectable-action.js +0 -67
  326. package/chips/action/lib/selectable-action.js.map +0 -1
  327. package/chips/action/lib/types.d.ts +0 -23
  328. package/chips/action/lib/types.js +0 -7
  329. package/chips/action/lib/types.js.map +0 -1
  330. package/chips/action/link-action.d.ts +0 -18
  331. package/chips/action/link-action.js +0 -20
  332. package/chips/action/link-action.js.map +0 -1
  333. package/chips/action/presentational-action.d.ts +0 -18
  334. package/chips/action/presentational-action.js +0 -20
  335. package/chips/action/presentational-action.js.map +0 -1
  336. package/chips/action/primary-action.d.ts +0 -18
  337. package/chips/action/primary-action.js +0 -20
  338. package/chips/action/primary-action.js.map +0 -1
  339. package/chips/action/selectable-action.d.ts +0 -18
  340. package/chips/action/selectable-action.js +0 -20
  341. package/chips/action/selectable-action.js.map +0 -1
  342. package/chips/chip/lib/_assist-chip-theme.scss +0 -99
  343. package/chips/chip/lib/_chip-theme.scss +0 -1285
  344. package/chips/chip/lib/_chip.scss +0 -444
  345. package/chips/chip/lib/_filter-chip-theme.scss +0 -130
  346. package/chips/chip/lib/_input-chip-theme.scss +0 -91
  347. package/chips/chip/lib/_suggestion-chip-theme.scss +0 -92
  348. package/chips/chip/lib/action-chip.d.ts +0 -18
  349. package/chips/chip/lib/action-chip.js +0 -39
  350. package/chips/chip/lib/action-chip.js.map +0 -1
  351. package/chips/chip/lib/adapter.d.ts +0 -50
  352. package/chips/chip/lib/adapter.js +0 -7
  353. package/chips/chip/lib/adapter.js.map +0 -1
  354. package/chips/chip/lib/animationframe.d.ts +0 -31
  355. package/chips/chip/lib/animationframe.js +0 -66
  356. package/chips/chip/lib/animationframe.js.map +0 -1
  357. package/chips/chip/lib/chip.d.ts +0 -43
  358. package/chips/chip/lib/chip.js +0 -134
  359. package/chips/chip/lib/chip.js.map +0 -1
  360. package/chips/chip/lib/constants.d.ts +0 -43
  361. package/chips/chip/lib/constants.js +0 -48
  362. package/chips/chip/lib/constants.js.map +0 -1
  363. package/chips/chip/lib/foundation.d.ts +0 -41
  364. package/chips/chip/lib/foundation.js +0 -255
  365. package/chips/chip/lib/foundation.js.map +0 -1
  366. package/chips/chip/lib/link-chip.d.ts +0 -21
  367. package/chips/chip/lib/link-chip.js +0 -53
  368. package/chips/chip/lib/link-chip.js.map +0 -1
  369. package/chips/chip/lib/presentational-chip.d.ts +0 -18
  370. package/chips/chip/lib/presentational-chip.js +0 -39
  371. package/chips/chip/lib/presentational-chip.js.map +0 -1
  372. package/chips/chip/lib/selectable-chip.d.ts +0 -22
  373. package/chips/chip/lib/selectable-chip.js +0 -57
  374. package/chips/chip/lib/selectable-chip.js.map +0 -1
  375. package/chips/chip/lib/types.d.ts +0 -42
  376. package/chips/chip/lib/types.js +0 -7
  377. package/chips/chip/lib/types.js.map +0 -1
  378. package/chips/chipset/lib/_chip-set-theme.scss +0 -50
  379. package/chips/chipset/lib/_chip-set.scss +0 -48
  380. package/chips/chipset/lib/adapter.d.ts +0 -45
  381. package/chips/chipset/lib/adapter.js +0 -7
  382. package/chips/chipset/lib/adapter.js.map +0 -1
  383. package/chips/chipset/lib/constants.d.ts +0 -26
  384. package/chips/chipset/lib/constants.js +0 -30
  385. package/chips/chipset/lib/constants.js.map +0 -1
  386. package/chips/chipset/lib/foundation.d.ts +0 -68
  387. package/chips/chipset/lib/foundation.js +0 -314
  388. package/chips/chipset/lib/foundation.js.map +0 -1
  389. package/chips/chipset/lib/types.d.ts +0 -41
  390. package/chips/chipset/lib/types.js +0 -7
  391. package/chips/chipset/lib/types.js.map +0 -1
  392. package/menusurface/_menu-surface.scss +0 -6
  393. package/menusurface/lib/_md-comp-menu-surface.scss +0 -31
  394. package/menusurface/lib/_menu-surface.scss +0 -122
  395. package/menusurface/lib/adapter.d.ts +0 -46
  396. package/menusurface/lib/adapter.js +0 -7
  397. package/menusurface/lib/adapter.js.map +0 -1
  398. package/menusurface/lib/constants.d.ts +0 -71
  399. package/menusurface/lib/constants.js +0 -83
  400. package/menusurface/lib/constants.js.map +0 -1
  401. package/menusurface/lib/foundation.d.ts +0 -176
  402. package/menusurface/lib/foundation.js +0 -544
  403. package/menusurface/lib/foundation.js.map +0 -1
  404. package/menusurface/lib/menu-surface-styles.css.d.ts +0 -1
  405. package/menusurface/lib/menu-surface-styles.css.js +0 -9
  406. package/menusurface/lib/menu-surface-styles.css.js.map +0 -1
  407. package/menusurface/lib/menu-surface.d.ts +0 -62
  408. package/menusurface/lib/menu-surface.js +0 -347
  409. package/menusurface/lib/menu-surface.js.map +0 -1
  410. package/menusurface/lib/types.d.ts +0 -19
  411. package/menusurface/lib/types.js +0 -7
  412. package/menusurface/lib/types.js.map +0 -1
  413. package/menusurface/menu-surface.d.ts +0 -14
  414. package/menusurface/menu-surface.js +0 -17
  415. package/menusurface/menu-surface.js.map +0 -1
  416. package/sass/_elevation.scss +0 -159
  417. package/sass/_resolvers.scss +0 -16
  418. package/sass/_typography.scss +0 -39
  419. package/tokens/v0_160/_index.scss +0 -107
  420. package/tokens/v0_160/_md-comp-assist-chip.scss +0 -109
  421. package/tokens/v0_160/_md-comp-badge.scss +0 -58
  422. package/tokens/v0_160/_md-comp-banner.scss +0 -75
  423. package/tokens/v0_160/_md-comp-bottom-app-bar.scss +0 -35
  424. package/tokens/v0_160/_md-comp-carousel-item.scss +0 -65
  425. package/tokens/v0_160/_md-comp-checkbox.scss +0 -126
  426. package/tokens/v0_160/_md-comp-circular-progress-indicator.scss +0 -39
  427. package/tokens/v0_160/_md-comp-data-table.scss +0 -96
  428. package/tokens/v0_160/_md-comp-date-input-modal.scss +0 -89
  429. package/tokens/v0_160/_md-comp-date-picker-docked.scss +0 -246
  430. package/tokens/v0_160/_md-comp-date-picker-modal.scss +0 -305
  431. package/tokens/v0_160/_md-comp-dialog.scss +0 -123
  432. package/tokens/v0_160/_md-comp-divider.scss +0 -25
  433. package/tokens/v0_160/_md-comp-elevated-button.scss +0 -91
  434. package/tokens/v0_160/_md-comp-elevated-card.scss +0 -59
  435. package/tokens/v0_160/_md-comp-extended-fab-branded.scss +0 -86
  436. package/tokens/v0_160/_md-comp-extended-fab-primary.scss +0 -94
  437. package/tokens/v0_160/_md-comp-extended-fab-secondary.scss +0 -95
  438. package/tokens/v0_160/_md-comp-extended-fab-surface.scss +0 -90
  439. package/tokens/v0_160/_md-comp-extended-fab-tertiary.scss +0 -95
  440. package/tokens/v0_160/_md-comp-fab-branded-large.scss +0 -60
  441. package/tokens/v0_160/_md-comp-fab-branded.scss +0 -60
  442. package/tokens/v0_160/_md-comp-fab-primary-large.scss +0 -65
  443. package/tokens/v0_160/_md-comp-fab-primary-small.scss +0 -65
  444. package/tokens/v0_160/_md-comp-fab-primary.scss +0 -65
  445. package/tokens/v0_160/_md-comp-fab-secondary-large.scss +0 -66
  446. package/tokens/v0_160/_md-comp-fab-secondary-small.scss +0 -66
  447. package/tokens/v0_160/_md-comp-fab-secondary.scss +0 -66
  448. package/tokens/v0_160/_md-comp-fab-surface-large.scss +0 -64
  449. package/tokens/v0_160/_md-comp-fab-surface-small.scss +0 -64
  450. package/tokens/v0_160/_md-comp-fab-surface.scss +0 -64
  451. package/tokens/v0_160/_md-comp-fab-tertiary-large.scss +0 -66
  452. package/tokens/v0_160/_md-comp-fab-tertiary-small.scss +0 -66
  453. package/tokens/v0_160/_md-comp-fab-tertiary.scss +0 -66
  454. package/tokens/v0_160/_md-comp-filled-autocomplete.scss +0 -267
  455. package/tokens/v0_160/_md-comp-filled-button.scss +0 -89
  456. package/tokens/v0_160/_md-comp-filled-card.scss +0 -58
  457. package/tokens/v0_160/_md-comp-filled-icon-button.scss +0 -79
  458. package/tokens/v0_160/_md-comp-filled-menu-button.scss +0 -98
  459. package/tokens/v0_160/_md-comp-filled-select.scss +0 -272
  460. package/tokens/v0_160/_md-comp-filled-text-field.scss +0 -189
  461. package/tokens/v0_160/_md-comp-filled-tonal-button.scss +0 -99
  462. package/tokens/v0_160/_md-comp-filled-tonal-icon-button.scss +0 -86
  463. package/tokens/v0_160/_md-comp-filter-chip.scss +0 -209
  464. package/tokens/v0_160/_md-comp-full-screen-dialog.scss +0 -111
  465. package/tokens/v0_160/_md-comp-icon-button.scss +0 -70
  466. package/tokens/v0_160/_md-comp-input-chip.scss +0 -184
  467. package/tokens/v0_160/_md-comp-linear-progress-indicator.scss +0 -41
  468. package/tokens/v0_160/_md-comp-list.scss +0 -248
  469. package/tokens/v0_160/_md-comp-menu.scss +0 -121
  470. package/tokens/v0_160/_md-comp-navigation-bar.scss +0 -114
  471. package/tokens/v0_160/_md-comp-navigation-drawer.scss +0 -162
  472. package/tokens/v0_160/_md-comp-navigation-rail.scss +0 -131
  473. package/tokens/v0_160/_md-comp-outlined-autocomplete.scss +0 -257
  474. package/tokens/v0_160/_md-comp-outlined-button.scss +0 -84
  475. package/tokens/v0_160/_md-comp-outlined-card.scss +0 -65
  476. package/tokens/v0_160/_md-comp-outlined-icon-button.scss +0 -79
  477. package/tokens/v0_160/_md-comp-outlined-menu-button.scss +0 -94
  478. package/tokens/v0_160/_md-comp-outlined-segmented-button.scss +0 -112
  479. package/tokens/v0_160/_md-comp-outlined-select.scss +0 -262
  480. package/tokens/v0_160/_md-comp-outlined-text-field.scss +0 -171
  481. package/tokens/v0_160/_md-comp-plain-tooltip.scss +0 -55
  482. package/tokens/v0_160/_md-comp-primary-navigation-tab.scss +0 -121
  483. package/tokens/v0_160/_md-comp-radio-button.scss +0 -68
  484. package/tokens/v0_160/_md-comp-rich-tooltip.scss +0 -121
  485. package/tokens/v0_160/_md-comp-scrim.scss +0 -25
  486. package/tokens/v0_160/_md-comp-search-bar.scss +0 -99
  487. package/tokens/v0_160/_md-comp-search-view.scss +0 -93
  488. package/tokens/v0_160/_md-comp-secondary-navigation-tab.scss +0 -84
  489. package/tokens/v0_160/_md-comp-sheet-bottom.scss +0 -45
  490. package/tokens/v0_160/_md-comp-sheet-floating.scss +0 -34
  491. package/tokens/v0_160/_md-comp-sheet-side.scss +0 -91
  492. package/tokens/v0_160/_md-comp-slider.scss +0 -114
  493. package/tokens/v0_160/_md-comp-snackbar.scss +0 -127
  494. package/tokens/v0_160/_md-comp-standard-menu-button.scss +0 -98
  495. package/tokens/v0_160/_md-comp-suggestion-chip.scss +0 -125
  496. package/tokens/v0_160/_md-comp-switch.scss +0 -136
  497. package/tokens/v0_160/_md-comp-text-button.scss +0 -77
  498. package/tokens/v0_160/_md-comp-time-input.scss +0 -218
  499. package/tokens/v0_160/_md-comp-time-picker.scss +0 -264
  500. package/tokens/v0_160/_md-comp-top-app-bar-large.scss +0 -63
  501. package/tokens/v0_160/_md-comp-top-app-bar-medium.scss +0 -63
  502. package/tokens/v0_160/_md-comp-top-app-bar-small-centered.scss +0 -66
  503. package/tokens/v0_160/_md-comp-top-app-bar-small.scss +0 -64
  504. package/tokens/v0_160/_md-ref-palette.scss +0 -107
  505. package/tokens/v0_160/_md-ref-typeface.scss +0 -21
  506. package/tokens/v0_160/_md-sys-color.scss +0 -904
  507. package/tokens/v0_160/_md-sys-elevation.scss +0 -21
  508. package/tokens/v0_160/_md-sys-motion.scss +0 -53
  509. package/tokens/v0_160/_md-sys-shape.scss +0 -30
  510. package/tokens/v0_160/_md-sys-state.scss +0 -19
  511. package/tokens/v0_160/_md-sys-typescale.scss +0 -284
  512. package/tokens/v0_160/index.test.css.d.ts +0 -1
  513. package/tokens/v0_160/index.test.css.js +0 -9
  514. package/tokens/v0_160/index.test.css.js.map +0 -1
  515. package/tokens/v0_160/index.test.scss +0 -584
  516. package/tokens/v0_160/lib.test.css.d.ts +0 -1
  517. package/tokens/v0_160/lib.test.css.js +0 -9
  518. package/tokens/v0_160/lib.test.css.js.map +0 -1
  519. package/tokens/v0_160/lib.test.scss +0 -663
  520. /package/{autocomplete/lib/autocompletelist/autocomplete-list-styles.css.d.ts → chips/lib/assist-styles.css.d.ts} +0 -0
  521. /package/{autocomplete → chips}/lib/shared-styles.css.d.ts +0 -0
  522. /package/{autocomplete/lib/autocompletesurface/autocomplete-surface-styles.css.d.ts → chips/lib/suggestion-styles.css.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"list-item.js","sourceRoot":"","sources":["list-item.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n// Required for @ariaProperty\n// tslint:disable:no-new-decorators\n\nimport '../../../ripple/ripple.js';\nimport '../../../focus/focus-ring.js';\n\nimport {html, LitElement, nothing, PropertyValues, TemplateResult} from 'lit';\nimport {property, query, queryAsync, state} from 'lit/decorators.js';\nimport {ClassInfo, classMap} from 'lit/directives/class-map.js';\n\nimport {ariaProperty} from '../../../decorators/aria-property.js';\nimport {pointerPress, shouldShowStrongFocus} from '../../../focus/strong-focus.js';\nimport {ripple} from '../../../ripple/directive.js';\nimport {MdRipple} from '../../../ripple/ripple.js';\nimport {ARIARole} from '../../../types/aria.js';\n\ninterface ListItemSelf {\n active: boolean;\n disabled: boolean;\n}\n\n/**\n * The interface of an item that is compatible with md-list. An item that is\n * selectable and disablable.\n */\nexport type ListItem = ListItemSelf&HTMLElement;\n\n// tslint:disable-next-line:enforce-comments-on-exported-symbols\nexport class ListItemEl extends LitElement implements ListItem {\n @ariaProperty\n // tslint:disable-next-line\n @property({type: String, attribute: 'data-role', noAccessor: true})\n // @ts-ignore(b/264292293): Use `override` with TS 4.9+\n role: ARIARole = 'listitem';\n @ariaProperty\n @property({type: String, attribute: 'data-aria-selected', noAccessor: true})\n override ariaSelected!: 'true'|'false';\n @ariaProperty\n @property({type: String, attribute: 'data-aria-checked', noAccessor: true})\n override ariaChecked!: 'true'|'false';\n\n /**\n * The primary, headline text of the list item.\n */\n @property() headline = '';\n\n /**\n * The one-line supporting text below the headline. Set\n * `multiLineSupportingText` to `true` to support multiple lines in the\n * supporting text.\n */\n @property() supportingText = '';\n\n /**\n * Modifies `supportingText` to support multiple lines.\n */\n @property({type: Boolean}) multiLineSupportingText = false;\n\n /**\n * The supporting text placed at the end of the item. Overriden by elements\n * slotted into the `end` slot.\n */\n @property() trailingSupportingText = '';\n\n /**\n * Disables the item and makes it non-selectable and non-interactive.\n */\n @property({type: Boolean}) disabled = false;\n\n /**\n * The tabindex of the underlying item.\n *\n * __NOTE:__ this is overriden by the keyboard behavior of `md-list` and by\n * setting `selected`.\n */\n @property({type: Number}) itemTabIndex = -1;\n\n /**\n * Whether or not the element is in the selected visual state. When active,\n * tabindex is set to 0, and in some list item variants (like md-list-item),\n * focuses the underlying item.\n */\n @property({type: Boolean, reflect: true}) active = false;\n\n /**\n * READONLY. Sets the `md-list-item` attribute on the element.\n */\n @property({type: Boolean, attribute: 'md-list-item', reflect: true})\n isListItem = true;\n\n @queryAsync('md-ripple') protected ripple!: Promise<MdRipple|null>;\n @query('.list-item') protected listItemRoot!: HTMLElement;\n\n @state() protected showFocusRing = false;\n @state() protected showRipple = false;\n\n /**\n * Only meant to be overriden by subclassing and not by the user. This is\n * so that we have control over focus on specific variants such as disabling\n * focus on <md-autocomplete-item> but enabling it for <md-menu-item>.\n */\n protected focusOnSelection = true;\n\n protected getRipple = () => {\n this.showRipple = true;\n return this.ripple;\n };\n\n private isFirstUpdate = true;\n\n override willUpdate(changed: PropertyValues<this>) {\n if (changed.has('active') && !this.disabled) {\n if (this.active) {\n this.itemTabIndex = 0;\n\n if (this.focusOnSelection) {\n this.showFocusRing = shouldShowStrongFocus();\n }\n\n // Do not reset anything if it's the first render because user could\n // have set `itemTabIndex` manually.\n } else if (!this.isFirstUpdate) {\n this.itemTabIndex = -1;\n }\n }\n }\n\n override render(): TemplateResult {\n return this.renderListItem(html`\n <div class=\"content-wrapper\">\n ${this.renderStart()}\n ${this.renderBody()}\n ${this.renderEnd()}\n ${this.renderRipple()}\n ${this.renderFocusRing()}\n </div>`);\n }\n\n /**\n * Renders the root list item.\n *\n * @param content {unkown} the child content of the list item.\n */\n protected renderListItem(content: unknown) {\n return html`\n <li\n tabindex=${this.disabled ? -1 : this.itemTabIndex}\n role=${this.role}\n aria-selected=${this.ariaSelected || nothing}\n aria-checked=${this.ariaChecked || nothing}\n class=\"list-item ${classMap(this.getRenderClasses())}\"\n @pointerdown=${this.onPointerdown}\n @focus=${this.onFocus}\n @blur=${this.onBlur}\n @click=${this.onClick}\n @pointerenter=${this.onPointerenter}\n @pointerleave=${this.onPointerleave}\n @keydown=${this.onKeydown}\n ${ripple(this.getRipple)}>${content}</li>`;\n }\n\n /**\n * Handles rendering of the ripple element.\n */\n protected renderRipple(): TemplateResult|typeof nothing {\n return this.showRipple ?\n html`<md-ripple ?disabled=\"${this.disabled}\"></md-ripple>` :\n nothing;\n }\n\n /**\n * Handles rendering of the focus ring.\n */\n protected renderFocusRing(): TemplateResult {\n return html`<md-focus-ring class=\"focus-ring\" .visible=\"${\n this.showFocusRing}\"></md-focus-ring>`;\n }\n\n /**\n * Classes applied to the list item root.\n */\n protected getRenderClasses(): ClassInfo {\n return {\n 'with-one-line': this.supportingText === '',\n 'with-two-line':\n this.supportingText !== '' && !this.multiLineSupportingText,\n 'with-three-line':\n this.supportingText !== '' && this.multiLineSupportingText,\n 'disabled': this.disabled\n };\n }\n\n /**\n * The content rendered at the start of the list item.\n */\n protected renderStart(): TemplateResult {\n return html`<div class=\"start\"><slot name=\"start\"></slot></div>`;\n }\n\n /**\n * Handles rendering the headline and supporting text.\n */\n protected renderBody(): TemplateResult {\n const supportingText =\n this.supportingText !== '' ? this.renderSupportingText() : '';\n\n return html`<div class=\"body\"\n ><span class=\"label-text\">${this.headline}</span>${supportingText}</div>`;\n }\n\n /**\n * Renders the one-line supporting text.\n */\n protected renderSupportingText(): TemplateResult {\n return html`<span\n class=\"supporting-text ${classMap(this.getSupportingTextClasses())}\"\n >${this.supportingText}</span>`;\n }\n\n /**\n * Gets the classes for the supporting text node\n */\n protected getSupportingTextClasses(): ClassInfo {\n return {'supporting-text--multi-line': this.multiLineSupportingText};\n }\n\n /**\n * The content rendered at the end of the list item.\n */\n protected renderEnd(): TemplateResult {\n const supportingText = this.trailingSupportingText !== '' ?\n this.renderTrailingSupportingText() :\n '';\n return html`<div class=\"end\"\n ><slot name=\"end\">${supportingText}</slot></div>`;\n }\n\n /**\n * Renders the supporting text at the end of the list item.\n */\n protected renderTrailingSupportingText(): TemplateResult {\n return html`<span class=\"trailing-supporting-text\"\n >${this.trailingSupportingText}</span>`;\n }\n\n protected onPointerdown() {\n pointerPress();\n this.showFocusRing = shouldShowStrongFocus();\n }\n\n protected onFocus() {\n this.showFocusRing = shouldShowStrongFocus();\n }\n\n protected onBlur() {\n this.showFocusRing = false;\n }\n\n // For easier overriding in menu-item\n protected onClick(e: Event) {}\n protected onKeydown(e: KeyboardEvent) {}\n protected onPointerenter(e: Event) {}\n protected onPointerleave(e: Event) {}\n\n override updated(changed: PropertyValues<this>) {\n super.updated(changed);\n\n // will focus the list item root if it is selected but not on the first\n // update or else it may cause the page to jump on first load.\n if (changed.has('active') && !this.isFirstUpdate && this.active &&\n this.focusOnSelection) {\n this.listItemRoot.focus();\n }\n\n this.isFirstUpdate = false;\n }\n}\n"]}
1
+ {"version":3,"file":"list-item.js","sourceRoot":"","sources":["list-item.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;AAEH,6BAA6B;AAC7B,mCAAmC;AAEnC,OAAO,2BAA2B,CAAC;AACnC,OAAO,8BAA8B,CAAC;AAEtC,OAAO,EAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAiC,MAAM,KAAK,CAAC;AAC9E,OAAO,EAAC,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAC,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAY,QAAQ,EAAC,MAAM,6BAA6B,CAAC;AAEhE,OAAO,EAAC,YAAY,EAAC,MAAM,sCAAsC,CAAC;AAClE,OAAO,EAAC,YAAY,EAAE,qBAAqB,EAAC,MAAM,gCAAgC,CAAC;AACnF,OAAO,EAAC,MAAM,EAAC,MAAM,8BAA8B,CAAC;AAepD,gEAAgE;AAChE,MAAM,OAAO,UAAW,SAAQ,UAAU;IAA1C;;QAIE,uDAAuD;QACvD,SAAI,GAAa,UAAU,CAAC;QAQ5B;;WAEG;QACS,aAAQ,GAAG,EAAE,CAAC;QAE1B;;;;WAIG;QACS,mBAAc,GAAG,EAAE,CAAC;QAEhC;;WAEG;QACwB,4BAAuB,GAAG,KAAK,CAAC;QAE3D;;;WAGG;QACS,2BAAsB,GAAG,EAAE,CAAC;QAExC;;WAEG;QACwB,aAAQ,GAAG,KAAK,CAAC;QAE5C;;;;;WAKG;QACuB,iBAAY,GAAG,CAAC,CAAC,CAAC;QAE5C;;;;WAIG;QACuC,WAAM,GAAG,KAAK,CAAC;QAEzD;;WAEG;QAEH,eAAU,GAAG,IAAI,CAAC;QAKC,kBAAa,GAAG,KAAK,CAAC;QACtB,eAAU,GAAG,KAAK,CAAC;QAEtC;;;;WAIG;QACO,qBAAgB,GAAG,IAAI,CAAC;QAExB,cAAS,GAAG,GAAG,EAAE;YACzB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,OAAO,IAAI,CAAC,MAAM,CAAC;QACrB,CAAC,CAAC;QAEM,kBAAa,GAAG,IAAI,CAAC;IA4K/B,CAAC;IA1KU,UAAU,CAAC,OAA6B;QAC/C,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAC3C,IAAI,IAAI,CAAC,MAAM,EAAE;gBACf,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;gBAEtB,IAAI,IAAI,CAAC,gBAAgB,EAAE;oBACzB,IAAI,CAAC,aAAa,GAAG,qBAAqB,EAAE,CAAC;iBAC9C;gBAED,oEAAoE;gBACpE,oCAAoC;aACrC;iBAAM,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;gBAC9B,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;aACxB;SACF;IACH,CAAC;IAEQ,MAAM;QACb,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAA;;UAEzB,IAAI,CAAC,WAAW,EAAE;UAClB,IAAI,CAAC,UAAU,EAAE;UACjB,IAAI,CAAC,SAAS,EAAE;UAChB,IAAI,CAAC,YAAY,EAAE;UACnB,IAAI,CAAC,eAAe,EAAE;aACnB,CAAC,CAAC;IACb,CAAC;IAED;;;;OAIG;IACO,cAAc,CAAC,OAAgB;QACvC,OAAO,IAAI,CAAA;;qBAEM,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY;iBAC1C,IAAI,CAAC,IAAI;0BACA,IAAI,CAAC,YAAY,IAAI,OAAO;yBAC7B,IAAI,CAAC,WAAW,IAAI,OAAO;6BACvB,QAAQ,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;yBACrC,IAAI,CAAC,aAAa;mBACxB,IAAI,CAAC,OAAO;kBACb,IAAI,CAAC,MAAM;mBACV,IAAI,CAAC,OAAO;0BACL,IAAI,CAAC,cAAc;0BACnB,IAAI,CAAC,cAAc;qBACxB,IAAI,CAAC,SAAS;YACvB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,OAAO,OAAO,CAAC;IACnD,CAAC;IAED;;OAEG;IACO,YAAY;QACpB,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC;YACpB,IAAI,CAAA,yBAAyB,IAAI,CAAC,QAAQ,gBAAgB,CAAC,CAAC;YAC5D,OAAO,CAAC;IACd,CAAC;IAED;;OAEG;IACO,eAAe;QACvB,OAAO,IAAI,CAAA,+CACP,IAAI,CAAC,aAAa,oBAAoB,CAAC;IAC7C,CAAC;IAED;;OAEG;IACO,gBAAgB;QACxB,OAAO;YACL,eAAe,EAAE,IAAI,CAAC,cAAc,KAAK,EAAE;YAC3C,eAAe,EACX,IAAI,CAAC,cAAc,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,uBAAuB;YAC/D,iBAAiB,EACb,IAAI,CAAC,cAAc,KAAK,EAAE,IAAI,IAAI,CAAC,uBAAuB;YAC9D,UAAU,EAAE,IAAI,CAAC,QAAQ;SAC1B,CAAC;IACJ,CAAC;IAED;;OAEG;IACO,WAAW;QACnB,OAAO,IAAI,CAAA,qDAAqD,CAAC;IACnE,CAAC;IAED;;OAEG;IACO,UAAU;QAClB,MAAM,cAAc,GAChB,IAAI,CAAC,cAAc,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAElE,OAAO,IAAI,CAAA;kCACmB,IAAI,CAAC,QAAQ,UAAU,cAAc,QAAQ,CAAC;IAC9E,CAAC;IAED;;OAEG;IACO,oBAAoB;QAC5B,OAAO,IAAI,CAAA;iCACkB,QAAQ,CAAC,IAAI,CAAC,wBAAwB,EAAE,CAAC;SACjE,IAAI,CAAC,cAAc,SAAS,CAAC;IACpC,CAAC;IAED;;OAEG;IACO,wBAAwB;QAChC,OAAO,EAAC,6BAA6B,EAAE,IAAI,CAAC,uBAAuB,EAAC,CAAC;IACvE,CAAC;IAED;;OAEG;IACO,SAAS;QACjB,MAAM,cAAc,GAAG,IAAI,CAAC,sBAAsB,KAAK,EAAE,CAAC,CAAC;YACvD,IAAI,CAAC,4BAA4B,EAAE,CAAC,CAAC;YACrC,EAAE,CAAC;QACP,OAAO,IAAI,CAAA;0BACW,cAAc,eAAe,CAAC;IACtD,CAAC;IAED;;OAEG;IACO,4BAA4B;QACpC,OAAO,IAAI,CAAA;SACN,IAAI,CAAC,sBAAsB,SAAS,CAAC;IAC5C,CAAC;IAES,aAAa;QACrB,YAAY,EAAE,CAAC;QACf,IAAI,CAAC,aAAa,GAAG,qBAAqB,EAAE,CAAC;IAC/C,CAAC;IAES,OAAO;QACf,IAAI,CAAC,aAAa,GAAG,qBAAqB,EAAE,CAAC;IAC/C,CAAC;IAES,MAAM;QACd,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;IAC7B,CAAC;IAED,qCAAqC;IAC3B,OAAO,CAAC,CAAQ,IAAG,CAAC;IACpB,SAAS,CAAC,CAAgB,IAAG,CAAC;IAC9B,cAAc,CAAC,CAAQ,IAAG,CAAC;IAC3B,cAAc,CAAC,CAAQ,IAAG,CAAC;IAE5B,OAAO,CAAC,OAA6B;QAC5C,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAEvB,uEAAuE;QACvE,8DAA8D;QAC9D,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,MAAM;YAC3D,IAAI,CAAC,gBAAgB,EAAE;YACzB,IAAI,CAAC,KAAK,EAAE,CAAC;SACd;QAED,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;IAC7B,CAAC;IAEQ,KAAK;QACZ,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,EAAE,CAAC;IAC/B,CAAC;CACF;AA3PC;IAAC,YAAY;IACb,2BAA2B;;IAC1B,QAAQ,CAAC,EAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,EAAC,CAAC;IACnE,uDAAuD;;;wCAC3B;AAC5B;IAAC,YAAY;IACZ,QAAQ,CAAC,EAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,oBAAoB,EAAE,UAAU,EAAE,IAAI,EAAC,CAAC;;gDACrC;AACvC;IAAC,YAAY;IACZ,QAAQ,CAAC,EAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,mBAAmB,EAAE,UAAU,EAAE,IAAI,EAAC,CAAC;;+CACrC;AAKtC;IAAC,QAAQ,EAAE;;4CAAe;AAO1B;IAAC,QAAQ,EAAE;;kDAAqB;AAKhC;IAAC,QAAQ,CAAC,EAAC,IAAI,EAAE,OAAO,EAAC,CAAC;;2DAAiC;AAM3D;IAAC,QAAQ,EAAE;;0DAA6B;AAKxC;IAAC,QAAQ,CAAC,EAAC,IAAI,EAAE,OAAO,EAAC,CAAC;;4CAAkB;AAQ5C;IAAC,QAAQ,CAAC,EAAC,IAAI,EAAE,MAAM,EAAC,CAAC;;gDAAmB;AAO5C;IAAC,QAAQ,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAC,CAAC;;0CAAgB;AAKzD;IAAC,QAAQ,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAC,CAAC;;8CAClD;AAElB;IAAC,UAAU,CAAC,WAAW,CAAC;;0CAA2C;AACnE;IAAC,KAAK,CAAC,YAAY,CAAC;8BAA0B,WAAW;gDAAC;AAE1D;IAAC,KAAK,EAAE;;iDAAiC;AACzC;IAAC,KAAK,EAAE;;8CAA8B","sourcesContent":["/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n// Required for @ariaProperty\n// tslint:disable:no-new-decorators\n\nimport '../../../ripple/ripple.js';\nimport '../../../focus/focus-ring.js';\n\nimport {html, LitElement, nothing, PropertyValues, TemplateResult} from 'lit';\nimport {property, query, queryAsync, state} from 'lit/decorators.js';\nimport {ClassInfo, classMap} from 'lit/directives/class-map.js';\n\nimport {ariaProperty} from '../../../decorators/aria-property.js';\nimport {pointerPress, shouldShowStrongFocus} from '../../../focus/strong-focus.js';\nimport {ripple} from '../../../ripple/directive.js';\nimport {MdRipple} from '../../../ripple/ripple.js';\nimport {ARIARole} from '../../../types/aria.js';\n\ninterface ListItemSelf {\n active: boolean;\n disabled: boolean;\n}\n\n/**\n * The interface of an item that is compatible with md-list. An item that is\n * selectable and disablable.\n */\nexport type ListItem = ListItemSelf&HTMLElement;\n\n// tslint:disable-next-line:enforce-comments-on-exported-symbols\nexport class ListItemEl extends LitElement implements ListItem {\n @ariaProperty\n // tslint:disable-next-line\n @property({type: String, attribute: 'data-role', noAccessor: true})\n // @ts-ignore(b/264292293): Use `override` with TS 4.9+\n role: ARIARole = 'listitem';\n @ariaProperty\n @property({type: String, attribute: 'data-aria-selected', noAccessor: true})\n override ariaSelected!: 'true'|'false';\n @ariaProperty\n @property({type: String, attribute: 'data-aria-checked', noAccessor: true})\n override ariaChecked!: 'true'|'false';\n\n /**\n * The primary, headline text of the list item.\n */\n @property() headline = '';\n\n /**\n * The one-line supporting text below the headline. Set\n * `multiLineSupportingText` to `true` to support multiple lines in the\n * supporting text.\n */\n @property() supportingText = '';\n\n /**\n * Modifies `supportingText` to support multiple lines.\n */\n @property({type: Boolean}) multiLineSupportingText = false;\n\n /**\n * The supporting text placed at the end of the item. Overriden by elements\n * slotted into the `end` slot.\n */\n @property() trailingSupportingText = '';\n\n /**\n * Disables the item and makes it non-selectable and non-interactive.\n */\n @property({type: Boolean}) disabled = false;\n\n /**\n * The tabindex of the underlying item.\n *\n * __NOTE:__ this is overriden by the keyboard behavior of `md-list` and by\n * setting `selected`.\n */\n @property({type: Number}) itemTabIndex = -1;\n\n /**\n * Whether or not the element is in the selected visual state. When active,\n * tabindex is set to 0, and in some list item variants (like md-list-item),\n * focuses the underlying item.\n */\n @property({type: Boolean, reflect: true}) active = false;\n\n /**\n * READONLY. Sets the `md-list-item` attribute on the element.\n */\n @property({type: Boolean, attribute: 'md-list-item', reflect: true})\n isListItem = true;\n\n @queryAsync('md-ripple') protected ripple!: Promise<MdRipple|null>;\n @query('.list-item') protected listItemRoot!: HTMLElement;\n\n @state() protected showFocusRing = false;\n @state() protected showRipple = false;\n\n /**\n * Only meant to be overriden by subclassing and not by the user. This is\n * so that we have control over focus on specific variants such as disabling\n * focus on <md-autocomplete-item> but enabling it for <md-menu-item>.\n */\n protected focusOnSelection = true;\n\n protected getRipple = () => {\n this.showRipple = true;\n return this.ripple;\n };\n\n private isFirstUpdate = true;\n\n override willUpdate(changed: PropertyValues<this>) {\n if (changed.has('active') && !this.disabled) {\n if (this.active) {\n this.itemTabIndex = 0;\n\n if (this.focusOnSelection) {\n this.showFocusRing = shouldShowStrongFocus();\n }\n\n // Do not reset anything if it's the first render because user could\n // have set `itemTabIndex` manually.\n } else if (!this.isFirstUpdate) {\n this.itemTabIndex = -1;\n }\n }\n }\n\n override render(): TemplateResult {\n return this.renderListItem(html`\n <div class=\"content-wrapper\">\n ${this.renderStart()}\n ${this.renderBody()}\n ${this.renderEnd()}\n ${this.renderRipple()}\n ${this.renderFocusRing()}\n </div>`);\n }\n\n /**\n * Renders the root list item.\n *\n * @param content {unkown} the child content of the list item.\n */\n protected renderListItem(content: unknown) {\n return html`\n <li\n tabindex=${this.disabled ? -1 : this.itemTabIndex}\n role=${this.role}\n aria-selected=${this.ariaSelected || nothing}\n aria-checked=${this.ariaChecked || nothing}\n class=\"list-item ${classMap(this.getRenderClasses())}\"\n @pointerdown=${this.onPointerdown}\n @focus=${this.onFocus}\n @blur=${this.onBlur}\n @click=${this.onClick}\n @pointerenter=${this.onPointerenter}\n @pointerleave=${this.onPointerleave}\n @keydown=${this.onKeydown}\n ${ripple(this.getRipple)}>${content}</li>`;\n }\n\n /**\n * Handles rendering of the ripple element.\n */\n protected renderRipple(): TemplateResult|typeof nothing {\n return this.showRipple ?\n html`<md-ripple ?disabled=\"${this.disabled}\"></md-ripple>` :\n nothing;\n }\n\n /**\n * Handles rendering of the focus ring.\n */\n protected renderFocusRing(): TemplateResult {\n return html`<md-focus-ring class=\"focus-ring\" .visible=\"${\n this.showFocusRing}\"></md-focus-ring>`;\n }\n\n /**\n * Classes applied to the list item root.\n */\n protected getRenderClasses(): ClassInfo {\n return {\n 'with-one-line': this.supportingText === '',\n 'with-two-line':\n this.supportingText !== '' && !this.multiLineSupportingText,\n 'with-three-line':\n this.supportingText !== '' && this.multiLineSupportingText,\n 'disabled': this.disabled\n };\n }\n\n /**\n * The content rendered at the start of the list item.\n */\n protected renderStart(): TemplateResult {\n return html`<div class=\"start\"><slot name=\"start\"></slot></div>`;\n }\n\n /**\n * Handles rendering the headline and supporting text.\n */\n protected renderBody(): TemplateResult {\n const supportingText =\n this.supportingText !== '' ? this.renderSupportingText() : '';\n\n return html`<div class=\"body\"\n ><span class=\"label-text\">${this.headline}</span>${supportingText}</div>`;\n }\n\n /**\n * Renders the one-line supporting text.\n */\n protected renderSupportingText(): TemplateResult {\n return html`<span\n class=\"supporting-text ${classMap(this.getSupportingTextClasses())}\"\n >${this.supportingText}</span>`;\n }\n\n /**\n * Gets the classes for the supporting text node\n */\n protected getSupportingTextClasses(): ClassInfo {\n return {'supporting-text--multi-line': this.multiLineSupportingText};\n }\n\n /**\n * The content rendered at the end of the list item.\n */\n protected renderEnd(): TemplateResult {\n const supportingText = this.trailingSupportingText !== '' ?\n this.renderTrailingSupportingText() :\n '';\n return html`<div class=\"end\"\n ><slot name=\"end\">${supportingText}</slot></div>`;\n }\n\n /**\n * Renders the supporting text at the end of the list item.\n */\n protected renderTrailingSupportingText(): TemplateResult {\n return html`<span class=\"trailing-supporting-text\"\n >${this.trailingSupportingText}</span>`;\n }\n\n protected onPointerdown() {\n pointerPress();\n this.showFocusRing = shouldShowStrongFocus();\n }\n\n protected onFocus() {\n this.showFocusRing = shouldShowStrongFocus();\n }\n\n protected onBlur() {\n this.showFocusRing = false;\n }\n\n // For easier overriding in menu-item\n protected onClick(e: Event) {}\n protected onKeydown(e: KeyboardEvent) {}\n protected onPointerenter(e: Event) {}\n protected onPointerleave(e: Event) {}\n\n override updated(changed: PropertyValues<this>) {\n super.updated(changed);\n\n // will focus the list item root if it is selected but not on the first\n // update or else it may cause the page to jump on first load.\n if (changed.has('active') && !this.isFirstUpdate && this.active &&\n this.focusOnSelection) {\n this.focus();\n }\n\n this.isFirstUpdate = false;\n }\n\n override focus() {\n this.listItemRoot?.focus?.();\n }\n}\n"]}
@@ -9,11 +9,10 @@
9
9
  @use 'sass:string';
10
10
  // go/keep-sorted end
11
11
  // go/keep-sorted start
12
- @use '../../elevation/lib/elevation';
12
+ @use '../../elevation/elevation';
13
13
  @use '../../focus/focus-ring';
14
14
  @use '../../list/list' as md-list;
15
15
  @use '../../list/list-item';
16
- @use '../../sass/resolvers';
17
16
  @use '../../sass/theme';
18
17
  @use '../../tokens';
19
18
  // go/keep-sorted end
@@ -57,6 +56,8 @@ $_custom-property-prefix: 'menu';
57
56
  shape: var(--_container-shape),
58
57
  )
59
58
  );
59
+
60
+ min-width: 300px;
60
61
  }
61
62
 
62
63
  .menu {
@@ -68,6 +69,7 @@ $_custom-property-prefix: 'menu';
68
69
  user-select: none;
69
70
  max-height: inherit;
70
71
  height: inherit;
72
+ min-width: inherit;
71
73
 
72
74
  &.fixed {
73
75
  position: fixed;
@@ -78,6 +80,7 @@ $_custom-property-prefix: 'menu';
78
80
  max-height: inherit;
79
81
  display: block;
80
82
  overflow: auto;
83
+ min-width: inherit;
81
84
  }
82
85
 
83
86
  &.has-overflow md-list {
@@ -103,17 +106,11 @@ $_custom-property-prefix: 'menu';
103
106
  md-elevation {
104
107
  position: absolute;
105
108
  inset: 0;
106
- pointer-events: none;
107
109
  }
108
110
  }
109
111
 
110
112
  @function _resolve-tokens($tokens) {
111
- $menu-tokens: _remove-unused-tokens($tokens);
112
- @return elevation.resolve-tokens($menu-tokens, 'elevation-key');
113
- }
114
-
115
- // removes unused tokens
116
- @function _remove-unused-tokens($tokens) {
113
+ // removes unused tokens
117
114
  $unused-tokens: ();
118
115
  @each $token in map-keys($tokens) {
119
116
  $index: string.index($token, 'list-item');
@@ -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-menu-container-color, var(--md-sys-color-surface, #fffbfe));--_container-elevation: var(--md-menu-container-elevation, 3);--_container-shadow-color: var(--md-menu-container-shadow-color, var(--md-sys-color-shadow, #000));--_container-shape: var(--md-menu-container-shape, 4px);--_container-surface-tint-layer-color: var(--md-menu-container-surface-tint-layer-color, var(--md-sys-color-primary, #6750a4));--md-list-container-color:var(--_container-color);--md-elevation-level:var(--_container-elevation);--md-elevation-shadow-color:var(--_container-shadow-color);--md-elevation-surface-tint:var(--_container-surface-tint-layer-color);--md-focus-ring-shape-start-start:var(--md-focus-ring-shape, var(--_container-shape));--md-focus-ring-shape-start-end:var(--md-focus-ring-shape, var(--_container-shape));--md-focus-ring-shape-end-end:var(--md-focus-ring-shape, var(--_container-shape));--md-focus-ring-shape-end-start:var(--md-focus-ring-shape, var(--_container-shape))}.menu{border-radius:var(--_container-shape);display:none;opacity:0;z-index:20;position:absolute;user-select:none;max-height:inherit;height:inherit}.menu.fixed{position:fixed}.menu md-list{height:inherit;max-height:inherit;display:block;overflow:auto}.menu.has-overflow md-list{overflow:visible}.menu.animating md-list{pointer-events:none;overflow:hidden}.menu.animating ::slotted(.hidden){opacity:0}.menu slot{display:block;height:inherit;max-height:inherit}md-elevation{position:absolute;inset:0;pointer-events:none}/*# sourceMappingURL=menu-styles.css.map */
7
+ export const styles = css `:host{--_container-color: var(--md-menu-container-color, var(--md-sys-color-surface, #fffbfe));--_container-elevation: var(--md-menu-container-elevation, 2);--_container-shadow-color: var(--md-menu-container-shadow-color, var(--md-sys-color-shadow, #000));--_container-shape: var(--md-menu-container-shape, 4px);--_container-surface-tint-layer-color: var(--md-menu-container-surface-tint-layer-color, var(--md-sys-color-primary, #6750a4));--md-list-container-color:var(--_container-color);--md-elevation-level:var(--_container-elevation);--md-elevation-shadow-color:var(--_container-shadow-color);--md-elevation-surface-tint:var(--_container-surface-tint-layer-color);--md-focus-ring-shape-start-start:var(--md-focus-ring-shape, var(--_container-shape));--md-focus-ring-shape-start-end:var(--md-focus-ring-shape, var(--_container-shape));--md-focus-ring-shape-end-end:var(--md-focus-ring-shape, var(--_container-shape));--md-focus-ring-shape-end-start:var(--md-focus-ring-shape, var(--_container-shape));min-width:300px}.menu{border-radius:var(--_container-shape);display:none;opacity:0;z-index:20;position:absolute;user-select:none;max-height:inherit;height:inherit;min-width:inherit}.menu.fixed{position:fixed}.menu md-list{height:inherit;max-height:inherit;display:block;overflow:auto;min-width:inherit}.menu.has-overflow md-list{overflow:visible}.menu.animating md-list{pointer-events:none;overflow:hidden}.menu.animating ::slotted(.hidden){opacity:0}.menu slot{display:block;height:inherit;max-height:inherit}md-elevation{position:absolute;inset:0}/*# sourceMappingURL=menu-styles.css.map */
8
8
  `;
9
9
  //# sourceMappingURL=menu-styles.css.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"menu-styles.css.js","sourceRoot":"","sources":["menu-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-menu-container-color, var(--md-sys-color-surface, #fffbfe));--_container-elevation: var(--md-menu-container-elevation, 3);--_container-shadow-color: var(--md-menu-container-shadow-color, var(--md-sys-color-shadow, #000));--_container-shape: var(--md-menu-container-shape, 4px);--_container-surface-tint-layer-color: var(--md-menu-container-surface-tint-layer-color, var(--md-sys-color-primary, #6750a4));--md-list-container-color:var(--_container-color);--md-elevation-level:var(--_container-elevation);--md-elevation-shadow-color:var(--_container-shadow-color);--md-elevation-surface-tint:var(--_container-surface-tint-layer-color);--md-focus-ring-shape-start-start:var(--md-focus-ring-shape, var(--_container-shape));--md-focus-ring-shape-start-end:var(--md-focus-ring-shape, var(--_container-shape));--md-focus-ring-shape-end-end:var(--md-focus-ring-shape, var(--_container-shape));--md-focus-ring-shape-end-start:var(--md-focus-ring-shape, var(--_container-shape))}.menu{border-radius:var(--_container-shape);display:none;opacity:0;z-index:20;position:absolute;user-select:none;max-height:inherit;height:inherit}.menu.fixed{position:fixed}.menu md-list{height:inherit;max-height:inherit;display:block;overflow:auto}.menu.has-overflow md-list{overflow:visible}.menu.animating md-list{pointer-events:none;overflow:hidden}.menu.animating ::slotted(.hidden){opacity:0}.menu slot{display:block;height:inherit;max-height:inherit}md-elevation{position:absolute;inset:0;pointer-events:none}/*# sourceMappingURL=menu-styles.css.map */\n`;\n "]}
1
+ {"version":3,"file":"menu-styles.css.js","sourceRoot":"","sources":["menu-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-menu-container-color, var(--md-sys-color-surface, #fffbfe));--_container-elevation: var(--md-menu-container-elevation, 2);--_container-shadow-color: var(--md-menu-container-shadow-color, var(--md-sys-color-shadow, #000));--_container-shape: var(--md-menu-container-shape, 4px);--_container-surface-tint-layer-color: var(--md-menu-container-surface-tint-layer-color, var(--md-sys-color-primary, #6750a4));--md-list-container-color:var(--_container-color);--md-elevation-level:var(--_container-elevation);--md-elevation-shadow-color:var(--_container-shadow-color);--md-elevation-surface-tint:var(--_container-surface-tint-layer-color);--md-focus-ring-shape-start-start:var(--md-focus-ring-shape, var(--_container-shape));--md-focus-ring-shape-start-end:var(--md-focus-ring-shape, var(--_container-shape));--md-focus-ring-shape-end-end:var(--md-focus-ring-shape, var(--_container-shape));--md-focus-ring-shape-end-start:var(--md-focus-ring-shape, var(--_container-shape));min-width:300px}.menu{border-radius:var(--_container-shape);display:none;opacity:0;z-index:20;position:absolute;user-select:none;max-height:inherit;height:inherit;min-width:inherit}.menu.fixed{position:fixed}.menu md-list{height:inherit;max-height:inherit;display:block;overflow:auto;min-width:inherit}.menu.has-overflow md-list{overflow:visible}.menu.animating md-list{pointer-events:none;overflow:hidden}.menu.animating ::slotted(.hidden){opacity:0}.menu slot{display:block;height:inherit;max-height:inherit}md-elevation{position:absolute;inset:0}/*# sourceMappingURL=menu-styles.css.map */\n`;\n "]}
@@ -9,18 +9,23 @@ import '../../elevation/elevation.js';
9
9
  import { LitElement } from 'lit';
10
10
  import { MdFocusRing } from '../../focus/focus-ring.js';
11
11
  import { List } from '../../list/lib/list.js';
12
- import { MenuItem } from './shared.js';
13
- import { Corner, SurfacePositionController } from './surfacePositionController.js';
12
+ import { ARIARole } from '../../types/aria.js';
13
+ import { ActivateTypeaheadEvent, DeactivateTypeaheadEvent, MenuItem } from './shared.js';
14
+ import { Corner, SurfacePositionController, SurfacePositionTarget } from './surfacePositionController.js';
14
15
  import { TypeaheadController } from './typeaheadController.js';
15
16
  export { Corner } from './surfacePositionController.js';
17
+ /**
18
+ * The default value for the typeahead buffer time in Milliseconds.
19
+ */
20
+ export declare const DEFAULT_TYPEAHEAD_BUFFER_TIME = 200;
16
21
  /**
17
22
  * Element to focus on when menu is first opened.
18
23
  */
19
24
  export type DefaultFocusState = 'NONE' | 'LIST_ROOT' | 'FIRST_ITEM' | 'LAST_ITEM';
20
25
  /**
21
- * @fires opening Fired before the opening animation begins (not fired on quick)
26
+ * @fires opening Fired before the opening animation begins
22
27
  * @fires opened Fired once the menu is open, after any animations
23
- * @fires closing Fired before the closing animation begins (not fired on quick)
28
+ * @fires closing Fired before the closing animation begins
24
29
  * @fires closed Fired once the menu is closed, after any animations
25
30
  */
26
31
  export declare abstract class Menu extends LitElement {
@@ -32,7 +37,7 @@ export declare abstract class Menu extends LitElement {
32
37
  /**
33
38
  * The element in which the menu should align to.
34
39
  */
35
- anchor: HTMLElement | null;
40
+ anchor: HTMLElement & Partial<SurfacePositionTarget> | null;
36
41
  /**
37
42
  * Makes the element use `position:fixed` instead of `position:absolute`. In
38
43
  * most cases, the menu should position itself above most other
@@ -80,6 +85,10 @@ export declare abstract class Menu extends LitElement {
80
85
  * The tabindex of the underlying list element.
81
86
  */
82
87
  listTabIndex: number;
88
+ /**
89
+ * The role of the underlying list element.
90
+ */
91
+ role: ARIARole;
83
92
  /**
84
93
  * The max time between the keystrokes of the typeahead menu behavior before
85
94
  * it clears the typeahead buffer.
@@ -108,6 +117,7 @@ export declare abstract class Menu extends LitElement {
108
117
  * The element that should be focused by default once opened.
109
118
  */
110
119
  defaultFocus: DefaultFocusState;
120
+ protected typeaheadActive: boolean;
111
121
  protected openCloseAnimationSignal: import("../../motion/animation.js").AnimationSignal;
112
122
  /**
113
123
  * Whether the menu is animating upwards or downwards when opening. This is
@@ -121,7 +131,7 @@ export declare abstract class Menu extends LitElement {
121
131
  /**
122
132
  * Handles typeahead navigation through the menu.
123
133
  */
124
- protected typeaheadController: TypeaheadController;
134
+ typeaheadController: TypeaheadController;
125
135
  /**
126
136
  * Handles positioning the surface and aligning it to the anchor.
127
137
  */
@@ -157,9 +167,10 @@ export declare abstract class Menu extends LitElement {
157
167
  fixed: boolean;
158
168
  'has-overflow': boolean;
159
169
  };
160
- protected onListFocus(): void;
161
- protected onListClick(): void;
162
- protected onListBlur(): void;
170
+ protected handleListFocus(): void;
171
+ protected handleListClick(): void;
172
+ protected handleListKeydown(e: KeyboardEvent): void;
173
+ protected handleListBlur(): void;
163
174
  /**
164
175
  * Saves the last focused element focuses the new element based on
165
176
  * `defaultFocus`, and animates open.
@@ -190,6 +201,8 @@ export declare abstract class Menu extends LitElement {
190
201
  protected onWindowClick: (e: MouseEvent) => void;
191
202
  protected onCloseMenu(e: Event): void;
192
203
  protected onDeactivateItems(e: Event): void;
204
+ protected handleDeactivateTypeahead(e: DeactivateTypeaheadEvent): void;
205
+ protected handleActivateTypeahead(e: ActivateTypeaheadEvent): void;
193
206
  focus(): void;
194
207
  close(): void;
195
208
  show(): void;
package/menu/lib/menu.js CHANGED
@@ -9,8 +9,8 @@ import { __decorate, __metadata } from "tslib";
9
9
  import '../../list/list.js';
10
10
  import '../../focus/focus-ring.js';
11
11
  import '../../elevation/elevation.js';
12
- import { html, LitElement } from 'lit';
13
- import { property, query } from 'lit/decorators.js';
12
+ import { html, isServer, LitElement } from 'lit';
13
+ import { eventOptions, property, query, state } from 'lit/decorators.js';
14
14
  import { classMap } from 'lit/directives/class-map.js';
15
15
  import { styleMap } from 'lit/directives/style-map.js';
16
16
  import { ariaProperty } from '../../decorators/aria-property.js';
@@ -20,6 +20,10 @@ import { List } from '../../list/lib/list.js';
20
20
  import { createAnimationSignal, EASING } from '../../motion/animation.js';
21
21
  import { SurfacePositionController } from './surfacePositionController.js';
22
22
  import { TypeaheadController } from './typeaheadController.js';
23
+ /**
24
+ * The default value for the typeahead buffer time in Milliseconds.
25
+ */
26
+ export const DEFAULT_TYPEAHEAD_BUFFER_TIME = 200;
23
27
  /**
24
28
  * Gets the currently focused element on the page.
25
29
  *
@@ -38,9 +42,9 @@ function getFocusedElement(activeDoc = document) {
38
42
  return activeEl;
39
43
  }
40
44
  /**
41
- * @fires opening Fired before the opening animation begins (not fired on quick)
45
+ * @fires opening Fired before the opening animation begins
42
46
  * @fires opened Fired once the menu is open, after any animations
43
- * @fires closing Fired before the closing animation begins (not fired on quick)
47
+ * @fires closing Fired before the closing animation begins
44
48
  * @fires closed Fired once the menu is closed, after any animations
45
49
  */
46
50
  export class Menu extends LitElement {
@@ -97,11 +101,15 @@ export class Menu extends LitElement {
97
101
  * The tabindex of the underlying list element.
98
102
  */
99
103
  this.listTabIndex = 0;
104
+ /**
105
+ * The role of the underlying list element.
106
+ */
107
+ this.role = 'list';
100
108
  /**
101
109
  * The max time between the keystrokes of the typeahead menu behavior before
102
110
  * it clears the typeahead buffer.
103
111
  */
104
- this.typeaheadBufferTime = 200;
112
+ this.typeaheadBufferTime = DEFAULT_TYPEAHEAD_BUFFER_TIME;
105
113
  /**
106
114
  * The corner of the anchor which to align the menu in the standard logical
107
115
  * property style of <block>_<inline>.
@@ -125,6 +133,7 @@ export class Menu extends LitElement {
125
133
  * The element that should be focused by default once opened.
126
134
  */
127
135
  this.defaultFocus = 'LIST_ROOT';
136
+ this.typeaheadActive = true;
128
137
  this.openCloseAnimationSignal = createAnimationSignal();
129
138
  /**
130
139
  * The element that was focused before the menu opened.
@@ -137,6 +146,7 @@ export class Menu extends LitElement {
137
146
  return {
138
147
  getItems: () => this.items,
139
148
  typeaheadBufferTime: this.typeaheadBufferTime,
149
+ active: this.typeaheadActive
140
150
  };
141
151
  });
142
152
  /**
@@ -192,6 +202,7 @@ export class Menu extends LitElement {
192
202
  break;
193
203
  }
194
204
  if (this.quick) {
205
+ this.dispatchEvent(new Event('opening'));
195
206
  this.dispatchEvent(new Event('opened'));
196
207
  }
197
208
  else {
@@ -203,6 +214,9 @@ export class Menu extends LitElement {
203
214
  */
204
215
  this.beforeClose = async () => {
205
216
  this.open = false;
217
+ if (!this.skipRestoreFocus) {
218
+ this.lastFocusedElement?.focus?.();
219
+ }
206
220
  if (!this.quick) {
207
221
  await this.animateClose();
208
222
  }
@@ -212,11 +226,9 @@ export class Menu extends LitElement {
212
226
  */
213
227
  this.onClosed = () => {
214
228
  if (this.quick) {
229
+ this.dispatchEvent(new Event('closing'));
215
230
  this.dispatchEvent(new Event('closed'));
216
231
  }
217
- if (!this.skipRestoreFocus) {
218
- this.lastFocusedElement?.focus?.();
219
- }
220
232
  };
221
233
  this.onWindowClick = (e) => {
222
234
  if (!this.stayOpenOnOutsideClick && !e.composedPath().includes(this)) {
@@ -250,11 +262,13 @@ export class Menu extends LitElement {
250
262
  * Renders the positionable surface element and its contents.
251
263
  */
252
264
  renderSurface() {
265
+ // TODO(b/274140618): elevation should be an underlay, not an overlay that
266
+ // tints content
253
267
  return html `
254
268
  <div
255
269
  class="menu ${classMap(this.getSurfaceClasses())}"
256
270
  style=${styleMap(this.menuPositionController.surfaceStyles)}>
257
- ${this.renderList()}
271
+ ${this.renderList()}
258
272
  ${this.renderElevation()}
259
273
  ${this.renderFocusRing()}
260
274
  </div>
@@ -265,17 +279,16 @@ export class Menu extends LitElement {
265
279
  */
266
280
  renderList() {
267
281
  return html `
268
- <md-list
269
- role="menu"
270
- class="list"
282
+ <md-list
271
283
  .ariaLabel=${this.ariaLabel}
284
+ .role=${this.role}
272
285
  listTabIndex=${this.listTabIndex}
273
- @focus=${this.onListFocus}
274
- @blur=${this.onListBlur}
275
- @click=${this.onListClick}
276
- @keydown=${this.typeaheadController.onKeydown}>
277
- ${this.renderMenuItems()}
278
- </md-list>`;
286
+ @focus=${this.handleListFocus}
287
+ @blur=${this.handleListBlur}
288
+ @click=${this.handleListClick}
289
+ @keydown=${this.handleListKeydown}>
290
+ ${this.renderMenuItems()}
291
+ </md-list>`;
279
292
  }
280
293
  /**
281
294
  * Renders the menu items' slot
@@ -283,7 +296,9 @@ export class Menu extends LitElement {
283
296
  renderMenuItems() {
284
297
  return html `<slot
285
298
  @close-menu=${this.onCloseMenu}
286
- @deactivate-items=${this.onDeactivateItems}></slot>`;
299
+ @deactivate-items=${this.onDeactivateItems}
300
+ @deactivate-typeahead=${this.handleDeactivateTypeahead}
301
+ @activate-typeahead=${this.handleActivateTypeahead}></slot>`;
287
302
  }
288
303
  /**
289
304
  * Renders the elevation component.
@@ -304,14 +319,20 @@ export class Menu extends LitElement {
304
319
  'has-overflow': this.hasOverflow,
305
320
  };
306
321
  }
307
- onListFocus() {
322
+ handleListFocus() {
308
323
  this.focusRing.visible = shouldShowStrongFocus();
309
324
  }
310
- onListClick() {
325
+ handleListClick() {
311
326
  pointerPress();
312
327
  this.focusRing.visible = shouldShowStrongFocus();
313
328
  }
314
- onListBlur() {
329
+ // Capture so that we can grab the event before it reaches the list item
330
+ // istelf. Specifically useful for the case where typeahead encounters a space
331
+ // and we don't want the menu item to close the menu.
332
+ handleListKeydown(e) {
333
+ this.typeaheadController.onKeydown(e);
334
+ }
335
+ handleListBlur() {
315
336
  this.focusRing.visible = false;
316
337
  }
317
338
  /**
@@ -482,14 +503,14 @@ export class Menu extends LitElement {
482
503
  }
483
504
  connectedCallback() {
484
505
  super.connectedCallback();
485
- if (window && window.addEventListener) {
506
+ if (!isServer) {
486
507
  window.addEventListener('click', this.onWindowClick, { capture: true });
487
508
  }
488
509
  }
489
510
  disconnectedCallback() {
490
511
  super.disconnectedCallback();
491
- if (window && window.removeEventListener) {
492
- window.removeEventListener('click', this.onWindowClick);
512
+ if (!isServer) {
513
+ window.removeEventListener('click', this.onWindowClick, { capture: true });
493
514
  }
494
515
  }
495
516
  onCloseMenu(e) {
@@ -502,6 +523,18 @@ export class Menu extends LitElement {
502
523
  item.active = false;
503
524
  }
504
525
  }
526
+ handleDeactivateTypeahead(e) {
527
+ // stopPropagation so that this does not deactivate any typeaheads in menus
528
+ // nested above it e.g. md-sub-menu-item
529
+ e.stopPropagation();
530
+ this.typeaheadActive = false;
531
+ }
532
+ handleActivateTypeahead(e) {
533
+ // stopPropagation so that this does not activate any typeaheads in menus
534
+ // nested above it e.g. md-sub-menu-item
535
+ e.stopPropagation();
536
+ this.typeaheadActive = true;
537
+ }
505
538
  focus() {
506
539
  this.listElement?.focus();
507
540
  }
@@ -538,7 +571,7 @@ __decorate([
538
571
  ], Menu.prototype, "ariaLabel", void 0);
539
572
  __decorate([
540
573
  property({ attribute: false }),
541
- __metadata("design:type", HTMLElement)
574
+ __metadata("design:type", Object)
542
575
  ], Menu.prototype, "anchor", void 0);
543
576
  __decorate([
544
577
  property({ type: Boolean }),
@@ -568,6 +601,11 @@ __decorate([
568
601
  property({ type: Number, attribute: 'list-tab-index' }),
569
602
  __metadata("design:type", Object)
570
603
  ], Menu.prototype, "listTabIndex", void 0);
604
+ __decorate([
605
+ ariaProperty,
606
+ property({ type: String, attribute: 'data-role', noAccessor: true }),
607
+ __metadata("design:type", String)
608
+ ], Menu.prototype, "role", void 0);
571
609
  __decorate([
572
610
  property({ type: Number, attribute: 'typeahead-delay' }),
573
611
  __metadata("design:type", Object)
@@ -592,4 +630,14 @@ __decorate([
592
630
  property({ type: String, attribute: 'default-focus' }),
593
631
  __metadata("design:type", String)
594
632
  ], Menu.prototype, "defaultFocus", void 0);
633
+ __decorate([
634
+ state(),
635
+ __metadata("design:type", Object)
636
+ ], Menu.prototype, "typeaheadActive", void 0);
637
+ __decorate([
638
+ eventOptions({ capture: true }),
639
+ __metadata("design:type", Function),
640
+ __metadata("design:paramtypes", [KeyboardEvent]),
641
+ __metadata("design:returntype", void 0)
642
+ ], Menu.prototype, "handleListKeydown", null);
595
643
  //# sourceMappingURL=menu.js.map