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

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 (798) hide show
  1. package/README.md +5 -5
  2. package/badge/lib/_badge.scss +2 -10
  3. package/badge/lib/badge-styles.css.js +1 -1
  4. package/badge/lib/badge-styles.css.js.map +1 -1
  5. package/button/lib/_elevated-button.scss +5 -30
  6. package/button/lib/_elevation.scss +8 -29
  7. package/button/lib/_filled-button.scss +4 -31
  8. package/button/lib/_icon.scss +1 -0
  9. package/button/lib/_outlined-button.scss +6 -23
  10. package/button/lib/_shared.scss +23 -52
  11. package/button/lib/_text-button.scss +8 -34
  12. package/button/lib/_tonal-button.scss +5 -28
  13. package/button/lib/button.d.ts +16 -1
  14. package/button/lib/button.js +41 -15
  15. package/button/lib/button.js.map +1 -1
  16. package/button/lib/elevated-button.d.ts +3 -0
  17. package/button/lib/elevated-button.js +4 -2
  18. package/button/lib/elevated-button.js.map +1 -1
  19. package/button/lib/elevated-styles.css.js +1 -1
  20. package/button/lib/elevated-styles.css.js.map +1 -1
  21. package/button/lib/filled-button.d.ts +3 -1
  22. package/button/lib/filled-button.js +4 -3
  23. package/button/lib/filled-button.js.map +1 -1
  24. package/button/lib/filled-styles.css.js +1 -1
  25. package/button/lib/filled-styles.css.js.map +1 -1
  26. package/button/lib/outlined-button.d.ts +3 -0
  27. package/button/lib/outlined-button.js +3 -1
  28. package/button/lib/outlined-button.js.map +1 -1
  29. package/button/lib/outlined-styles.css.js +1 -1
  30. package/button/lib/outlined-styles.css.js.map +1 -1
  31. package/button/lib/shared-elevation-styles.css.js +1 -1
  32. package/button/lib/shared-elevation-styles.css.js.map +1 -1
  33. package/button/lib/shared-styles.css.js +1 -1
  34. package/button/lib/shared-styles.css.js.map +1 -1
  35. package/button/lib/text-button.d.ts +3 -0
  36. package/button/lib/text-button.js +3 -1
  37. package/button/lib/text-button.js.map +1 -1
  38. package/button/lib/text-styles.css.js +1 -1
  39. package/button/lib/text-styles.css.js.map +1 -1
  40. package/button/lib/tonal-button.d.ts +3 -1
  41. package/button/lib/tonal-button.js +4 -3
  42. package/button/lib/tonal-button.js.map +1 -1
  43. package/button/lib/tonal-styles.css.js +1 -1
  44. package/button/lib/tonal-styles.css.js.map +1 -1
  45. package/checkbox/lib/_checkbox.scss +1 -2
  46. package/checkbox/lib/checkbox-styles.css.js +1 -1
  47. package/checkbox/lib/checkbox-styles.css.js.map +1 -1
  48. package/chips/_assist-chip.scss +6 -0
  49. package/chips/_suggestion-chip.scss +6 -0
  50. package/chips/assist-chip.d.ts +20 -0
  51. package/chips/assist-chip.js +24 -0
  52. package/chips/assist-chip.js.map +1 -0
  53. package/chips/lib/_assist-chip.scss +27 -0
  54. package/chips/lib/_shared.scss +213 -0
  55. package/chips/lib/_suggestion-chip.scss +30 -0
  56. package/chips/lib/assist-chip.d.ts +11 -0
  57. package/chips/lib/assist-chip.js +12 -0
  58. package/chips/lib/assist-chip.js.map +1 -0
  59. package/chips/lib/assist-styles.css.js +9 -0
  60. package/chips/lib/assist-styles.css.js.map +1 -0
  61. package/{menusurface/lib/menu-surface-styles.scss → chips/lib/assist-styles.scss} +3 -3
  62. package/chips/lib/chip.d.ts +29 -0
  63. package/chips/lib/chip.js +110 -0
  64. package/chips/lib/chip.js.map +1 -0
  65. package/chips/lib/shared-styles.css.js +9 -0
  66. package/chips/lib/shared-styles.css.js.map +1 -0
  67. package/{autocomplete → chips}/lib/shared-styles.scss +1 -1
  68. package/chips/lib/suggestion-chip.d.ts +11 -0
  69. package/chips/lib/suggestion-chip.js +12 -0
  70. package/chips/lib/suggestion-chip.js.map +1 -0
  71. package/chips/lib/suggestion-styles.css.js +9 -0
  72. package/chips/lib/suggestion-styles.css.js.map +1 -0
  73. package/{autocomplete/lib/autocompletelist/autocomplete-list-styles.scss → chips/lib/suggestion-styles.scss} +3 -3
  74. package/chips/suggestion-chip.d.ts +20 -0
  75. package/chips/suggestion-chip.js +24 -0
  76. package/chips/suggestion-chip.js.map +1 -0
  77. package/circularprogress/_circular-progress.scss +6 -0
  78. package/circularprogress/circular-progress.d.ts +24 -0
  79. package/circularprogress/circular-progress.js +27 -0
  80. package/circularprogress/circular-progress.js.map +1 -0
  81. package/circularprogress/harness.d.ts +12 -0
  82. package/circularprogress/harness.js +12 -0
  83. package/circularprogress/harness.js.map +1 -0
  84. package/circularprogress/lib/_circular-progress.scss +282 -0
  85. package/circularprogress/lib/circular-progress-styles.css.js +9 -0
  86. package/circularprogress/lib/circular-progress-styles.css.js.map +1 -0
  87. package/circularprogress/lib/circular-progress-styles.scss +8 -0
  88. package/circularprogress/lib/circular-progress.d.ts +29 -0
  89. package/circularprogress/lib/circular-progress.js +98 -0
  90. package/circularprogress/lib/circular-progress.js.map +1 -0
  91. package/dialog/lib/_dialog.scss +5 -8
  92. package/dialog/lib/_tokens.scss +1 -2
  93. package/dialog/lib/dialog-styles.css.js +1 -1
  94. package/dialog/lib/dialog-styles.css.js.map +1 -1
  95. package/dialog/lib/dialog.js +1 -1
  96. package/dialog/lib/dialog.js.map +1 -1
  97. package/elevation/lib/_elevation.scss +14 -69
  98. package/elevation/lib/elevation-styles.css.js +1 -1
  99. package/elevation/lib/elevation-styles.css.js.map +1 -1
  100. package/elevation/lib/elevation.d.ts +0 -8
  101. package/elevation/lib/elevation.js +1 -25
  102. package/elevation/lib/elevation.js.map +1 -1
  103. package/fab/lib/_fab-extended.scss +3 -10
  104. package/fab/lib/_fab.scss +0 -3
  105. package/fab/lib/_shared.scss +19 -44
  106. package/fab/lib/fab-extended-styles.css.js +1 -1
  107. package/fab/lib/fab-extended-styles.css.js.map +1 -1
  108. package/fab/lib/fab-shared-styles.css.js +1 -1
  109. package/fab/lib/fab-shared-styles.css.js.map +1 -1
  110. package/fab/lib/fab-shared.d.ts +0 -1
  111. package/fab/lib/fab-shared.js +2 -8
  112. package/fab/lib/fab-shared.js.map +1 -1
  113. package/fab/lib/fab-styles.css.js +1 -1
  114. package/fab/lib/fab-styles.css.js.map +1 -1
  115. package/field/lib/field.d.ts +4 -1
  116. package/field/lib/field.js +7 -0
  117. package/field/lib/field.js.map +1 -1
  118. package/field/lib/filled-styles.css.js +1 -1
  119. package/field/lib/filled-styles.css.js.map +1 -1
  120. package/field/lib/outlined-styles.css.js +1 -1
  121. package/field/lib/outlined-styles.css.js.map +1 -1
  122. package/focus/lib/_focus-ring.scss +30 -14
  123. package/focus/lib/focus-ring-styles.css.js +1 -1
  124. package/focus/lib/focus-ring-styles.css.js.map +1 -1
  125. package/focus/strong-focus.d.ts +11 -0
  126. package/focus/strong-focus.js +11 -1
  127. package/focus/strong-focus.js.map +1 -1
  128. package/iconbutton/filled-icon-button.js +1 -0
  129. package/iconbutton/filled-icon-button.js.map +1 -1
  130. package/iconbutton/filled-tonal-icon-button.js +1 -0
  131. package/iconbutton/filled-tonal-icon-button.js.map +1 -1
  132. package/iconbutton/harness.d.ts +1 -2
  133. package/iconbutton/harness.js.map +1 -1
  134. package/iconbutton/lib/_filled-icon-button.scss +1 -12
  135. package/iconbutton/lib/_filled-tonal-icon-button.scss +1 -12
  136. package/iconbutton/lib/_outlined-icon-button.scss +1 -13
  137. package/iconbutton/lib/_shared.scss +10 -6
  138. package/iconbutton/lib/_standard-icon-button.scss +5 -12
  139. package/iconbutton/lib/filled-styles.css.js +1 -1
  140. package/iconbutton/lib/filled-styles.css.js.map +1 -1
  141. package/iconbutton/lib/filled-tonal-styles.css.js +1 -1
  142. package/iconbutton/lib/filled-tonal-styles.css.js.map +1 -1
  143. package/iconbutton/lib/icon-button.d.ts +33 -2
  144. package/iconbutton/lib/icon-button.js +104 -18
  145. package/iconbutton/lib/icon-button.js.map +1 -1
  146. package/iconbutton/lib/outlined-styles.css.js +1 -1
  147. package/iconbutton/lib/outlined-styles.css.js.map +1 -1
  148. package/iconbutton/lib/shared-styles.css.js +1 -1
  149. package/iconbutton/lib/shared-styles.css.js.map +1 -1
  150. package/iconbutton/lib/standard-styles.css.js +1 -1
  151. package/iconbutton/lib/standard-styles.css.js.map +1 -1
  152. package/list/harness.d.ts +1 -0
  153. package/list/harness.js +1 -0
  154. package/list/harness.js.map +1 -1
  155. package/list/lib/_list.scss +15 -9
  156. package/list/lib/list-styles.css.js +1 -1
  157. package/list/lib/list-styles.css.js.map +1 -1
  158. package/list/lib/list.js +2 -0
  159. package/list/lib/list.js.map +1 -1
  160. package/list/lib/listitem/_list-item.scss +50 -57
  161. package/list/lib/listitem/forced-colors-styles.css.js +9 -0
  162. package/list/lib/listitem/forced-colors-styles.css.js.map +1 -0
  163. package/list/lib/listitem/forced-colors-styles.scss +23 -0
  164. package/list/lib/listitem/list-item-styles.css.js +1 -1
  165. package/list/lib/listitem/list-item-styles.css.js.map +1 -1
  166. package/list/lib/listitem/list-item.d.ts +4 -3
  167. package/list/lib/listitem/list-item.js +7 -4
  168. package/list/lib/listitem/list-item.js.map +1 -1
  169. package/list/list-item-link.js +2 -1
  170. package/list/list-item-link.js.map +1 -1
  171. package/list/list-item.js +2 -1
  172. package/list/list-item.js.map +1 -1
  173. package/menu/harness.d.ts +1 -0
  174. package/menu/harness.js +1 -0
  175. package/menu/harness.js.map +1 -1
  176. package/menu/lib/_menu.scss +11 -19
  177. package/menu/lib/forced-colors-styles.css.js +9 -0
  178. package/menu/lib/forced-colors-styles.css.js.map +1 -0
  179. package/menu/lib/forced-colors-styles.scss +12 -0
  180. package/menu/lib/menu-styles.css.js +1 -1
  181. package/menu/lib/menu-styles.css.js.map +1 -1
  182. package/menu/lib/menu.d.ts +34 -10
  183. package/menu/lib/menu.js +116 -30
  184. package/menu/lib/menu.js.map +1 -1
  185. package/menu/lib/menuitem/_menu-item.scss +5 -11
  186. package/menu/lib/menuitem/forced-colors-styles.css.js +9 -0
  187. package/menu/lib/menuitem/forced-colors-styles.css.js.map +1 -0
  188. package/menu/lib/menuitem/forced-colors-styles.scss +22 -0
  189. package/menu/lib/menuitem/menu-item-styles.css.js +1 -1
  190. package/menu/lib/menuitem/menu-item-styles.css.js.map +1 -1
  191. package/menu/lib/menuitem/menu-item.js +1 -1
  192. package/menu/lib/menuitem/menu-item.js.map +1 -1
  193. package/menu/lib/menuitemlink/menu-item-link.js +2 -1
  194. package/menu/lib/menuitemlink/menu-item-link.js.map +1 -1
  195. package/menu/lib/shared.d.ts +26 -0
  196. package/menu/lib/shared.js +39 -0
  197. package/menu/lib/shared.js.map +1 -1
  198. package/menu/lib/submenuitem/sub-menu-item.d.ts +8 -0
  199. package/menu/lib/submenuitem/sub-menu-item.js +21 -2
  200. package/menu/lib/submenuitem/sub-menu-item.js.map +1 -1
  201. package/menu/lib/surfacePositionController.d.ts +10 -2
  202. package/menu/lib/surfacePositionController.js +6 -2
  203. package/menu/lib/surfacePositionController.js.map +1 -1
  204. package/menu/lib/typeaheadController.d.ts +15 -2
  205. package/menu/lib/typeaheadController.js +27 -17
  206. package/menu/lib/typeaheadController.js.map +1 -1
  207. package/menu/menu-item-link.js +3 -1
  208. package/menu/menu-item-link.js.map +1 -1
  209. package/menu/menu-item.js +4 -2
  210. package/menu/menu-item.js.map +1 -1
  211. package/menu/menu.js +2 -1
  212. package/menu/menu.js.map +1 -1
  213. package/menu/sub-menu-item.js +3 -1
  214. package/menu/sub-menu-item.js.map +1 -1
  215. package/navigationbar/lib/_navigation-bar.scss +4 -10
  216. package/navigationbar/lib/navigation-bar-styles.css.js +1 -1
  217. package/navigationbar/lib/navigation-bar-styles.css.js.map +1 -1
  218. package/navigationbar/lib/navigation-bar.js +2 -2
  219. package/navigationbar/lib/navigation-bar.js.map +1 -1
  220. package/navigationdrawer/lib/_navigation-drawer-modal.scss +10 -14
  221. package/navigationdrawer/lib/_navigation-drawer.scss +9 -17
  222. package/navigationdrawer/lib/_shared.scss +0 -9
  223. package/navigationdrawer/lib/navigation-drawer-modal-styles.css.js +1 -1
  224. package/navigationdrawer/lib/navigation-drawer-modal-styles.css.js.map +1 -1
  225. package/navigationdrawer/lib/navigation-drawer-styles.css.js +1 -1
  226. package/navigationdrawer/lib/navigation-drawer-styles.css.js.map +1 -1
  227. package/navigationdrawer/lib/navigation-drawer.js +1 -1
  228. package/navigationdrawer/lib/navigation-drawer.js.map +1 -1
  229. package/navigationtab/lib/_navigation-tab.scss +4 -10
  230. package/navigationtab/lib/navigation-tab-styles.css.js +1 -1
  231. package/navigationtab/lib/navigation-tab-styles.css.js.map +1 -1
  232. package/package.json +2 -1
  233. package/radio/lib/_radio.scss +1 -2
  234. package/radio/lib/radio-styles.css.js +1 -1
  235. package/radio/lib/radio-styles.css.js.map +1 -1
  236. package/ripple/lib/_md-comp-ripple.scss +3 -3
  237. package/ripple/lib/ripple-styles.css.js +1 -1
  238. package/ripple/lib/ripple-styles.css.js.map +1 -1
  239. package/segmentedbutton/lib/_shared.scss +0 -2
  240. package/segmentedbutton/lib/outlined-styles.css.js +1 -1
  241. package/segmentedbutton/lib/outlined-styles.css.js.map +1 -1
  242. package/segmentedbuttonset/lib/outlined-styles.css.js +1 -1
  243. package/segmentedbuttonset/lib/outlined-styles.css.js.map +1 -1
  244. package/slider/lib/_slider.scss +2 -11
  245. package/slider/lib/_tokens.scss +7 -8
  246. package/slider/lib/slider-styles.css.js +1 -1
  247. package/slider/lib/slider-styles.css.js.map +1 -1
  248. package/slider/lib/slider.js +1 -1
  249. package/slider/lib/slider.js.map +1 -1
  250. package/switch/lib/switch-styles.css.js +1 -1
  251. package/switch/lib/switch-styles.css.js.map +1 -1
  252. package/textfield/lib/_filled-text-field.scss +1 -7
  253. package/textfield/lib/_outlined-text-field.scss +1 -7
  254. package/textfield/lib/filled-styles.css.js +1 -1
  255. package/textfield/lib/filled-styles.css.js.map +1 -1
  256. package/textfield/lib/outlined-styles.css.js +1 -1
  257. package/textfield/lib/outlined-styles.css.js.map +1 -1
  258. package/tokens/_index.scss +104 -2
  259. package/tokens/_md-comp-assist-chip.scss +123 -0
  260. package/tokens/_md-comp-badge.scss +41 -0
  261. package/tokens/_md-comp-banner.scss +23 -0
  262. package/tokens/_md-comp-bottom-app-bar.scss +21 -0
  263. package/tokens/_md-comp-carousel-item.scss +23 -0
  264. package/tokens/_md-comp-checkbox.scss +21 -0
  265. package/tokens/_md-comp-circular-progress-indicator.scss +37 -0
  266. package/tokens/_md-comp-data-table.scss +23 -0
  267. package/tokens/_md-comp-date-input-modal.scss +23 -0
  268. package/tokens/_md-comp-date-picker-docked.scss +25 -0
  269. package/tokens/_md-comp-date-picker-modal.scss +25 -0
  270. package/tokens/_md-comp-dialog.scss +52 -0
  271. package/tokens/_md-comp-divider.scss +17 -0
  272. package/tokens/_md-comp-elevated-button.scss +118 -0
  273. package/tokens/_md-comp-elevated-card.scss +23 -0
  274. package/tokens/_md-comp-elevation.scss +28 -0
  275. package/tokens/_md-comp-extended-fab-branded.scss +45 -0
  276. package/tokens/_md-comp-extended-fab-primary.scss +45 -0
  277. package/tokens/_md-comp-extended-fab-secondary.scss +48 -0
  278. package/tokens/_md-comp-extended-fab-surface.scss +45 -0
  279. package/tokens/_md-comp-extended-fab-tertiary.scss +48 -0
  280. package/tokens/_md-comp-fab-branded-large.scss +23 -0
  281. package/tokens/_md-comp-fab-branded.scss +23 -0
  282. package/tokens/_md-comp-fab-primary-large.scss +23 -0
  283. package/tokens/_md-comp-fab-primary-small.scss +23 -0
  284. package/tokens/_md-comp-fab-primary.scss +23 -0
  285. package/tokens/_md-comp-fab-secondary-large.scss +23 -0
  286. package/tokens/_md-comp-fab-secondary-small.scss +23 -0
  287. package/tokens/_md-comp-fab-secondary.scss +23 -0
  288. package/tokens/_md-comp-fab-surface-large.scss +23 -0
  289. package/tokens/_md-comp-fab-surface-small.scss +23 -0
  290. package/tokens/_md-comp-fab-surface.scss +23 -0
  291. package/tokens/_md-comp-fab-tertiary-large.scss +23 -0
  292. package/tokens/_md-comp-fab-tertiary-small.scss +23 -0
  293. package/tokens/_md-comp-fab-tertiary.scss +23 -0
  294. package/tokens/_md-comp-filled-autocomplete.scss +25 -0
  295. package/tokens/_md-comp-filled-button.scss +118 -0
  296. package/tokens/_md-comp-filled-card.scss +23 -0
  297. package/tokens/_md-comp-filled-icon-button.scss +21 -0
  298. package/tokens/_md-comp-filled-menu-button.scss +25 -0
  299. package/tokens/_md-comp-filled-select.scss +25 -0
  300. package/tokens/_md-comp-filled-text-field.scss +55 -0
  301. package/tokens/_md-comp-filled-tonal-button.scss +119 -0
  302. package/tokens/_md-comp-filled-tonal-icon-button.scss +24 -0
  303. package/tokens/_md-comp-filter-chip.scss +228 -0
  304. package/tokens/_md-comp-focus-ring.scss +46 -0
  305. package/tokens/_md-comp-full-screen-dialog.scss +25 -0
  306. package/tokens/_md-comp-icon-button.scss +21 -0
  307. package/tokens/_md-comp-input-chip.scss +221 -0
  308. package/tokens/_md-comp-linear-progress-indicator.scss +22 -0
  309. package/tokens/_md-comp-list.scss +75 -0
  310. package/tokens/_md-comp-menu.scss +21 -0
  311. package/tokens/_md-comp-navigation-bar.scss +25 -0
  312. package/tokens/_md-comp-navigation-drawer.scss +25 -0
  313. package/tokens/_md-comp-navigation-rail.scss +25 -0
  314. package/tokens/_md-comp-outlined-autocomplete.scss +28 -0
  315. package/tokens/_md-comp-outlined-button.scss +114 -0
  316. package/tokens/_md-comp-outlined-card.scss +23 -0
  317. package/tokens/_md-comp-outlined-icon-button.scss +21 -0
  318. package/tokens/_md-comp-outlined-menu-button.scss +23 -0
  319. package/tokens/_md-comp-outlined-segmented-button.scss +47 -0
  320. package/tokens/_md-comp-outlined-select.scss +25 -0
  321. package/tokens/_md-comp-outlined-text-field.scss +53 -0
  322. package/tokens/_md-comp-plain-tooltip.scss +21 -0
  323. package/tokens/_md-comp-primary-navigation-tab.scss +50 -0
  324. package/tokens/_md-comp-radio-button.scss +19 -0
  325. package/tokens/_md-comp-rich-tooltip.scss +25 -0
  326. package/tokens/_md-comp-scrim.scss +17 -0
  327. package/tokens/_md-comp-search-bar.scss +25 -0
  328. package/tokens/_md-comp-search-view.scss +23 -0
  329. package/tokens/_md-comp-secondary-navigation-tab.scss +49 -0
  330. package/tokens/_md-comp-sheet-bottom.scss +21 -0
  331. package/tokens/_md-comp-sheet-floating.scss +21 -0
  332. package/tokens/_md-comp-sheet-side.scss +25 -0
  333. package/tokens/_md-comp-slider.scss +47 -0
  334. package/tokens/_md-comp-snackbar.scss +25 -0
  335. package/tokens/_md-comp-standard-menu-button.scss +23 -0
  336. package/tokens/_md-comp-suggestion-chip.scss +123 -0
  337. package/tokens/_md-comp-switch.scss +21 -0
  338. package/tokens/_md-comp-test-table.scss +31 -0
  339. package/tokens/_md-comp-text-button.scss +107 -0
  340. package/tokens/_md-comp-time-input.scss +25 -0
  341. package/tokens/_md-comp-time-picker.scss +25 -0
  342. package/tokens/_md-comp-top-app-bar-large.scss +23 -0
  343. package/tokens/_md-comp-top-app-bar-medium.scss +23 -0
  344. package/tokens/_md-comp-top-app-bar-small-centered.scss +26 -0
  345. package/tokens/_md-comp-top-app-bar-small.scss +23 -0
  346. package/tokens/_md-ref-palette.scss +12 -0
  347. package/tokens/_md-ref-typeface.scss +34 -0
  348. package/tokens/_md-sys-color.scss +25 -0
  349. package/tokens/_md-sys-elevation.scss +30 -0
  350. package/tokens/_md-sys-motion.scss +12 -0
  351. package/tokens/_md-sys-shape.scss +12 -0
  352. package/tokens/_md-sys-state.scss +12 -0
  353. package/tokens/_md-sys-typescale.scss +51 -0
  354. package/tokens/_values.scss +111 -0
  355. package/tokens/{v0_161 → v0_172}/_md-comp-assist-chip.scss +3 -4
  356. package/tokens/{v0_160 → v0_172}/_md-comp-badge.scss +1 -1
  357. package/tokens/{v0_160 → v0_172}/_md-comp-banner.scss +2 -4
  358. package/tokens/{v0_160 → v0_172}/_md-comp-bottom-app-bar.scss +3 -5
  359. package/tokens/{v0_160 → v0_172}/_md-comp-carousel-item.scss +1 -3
  360. package/tokens/{v0_161 → v0_172}/_md-comp-checkbox.scss +1 -1
  361. package/tokens/{v0_161 → v0_172}/_md-comp-circular-progress-indicator.scss +1 -1
  362. package/tokens/{v0_160 → v0_172}/_md-comp-data-table.scss +2 -2
  363. package/tokens/{v0_161 → v0_172}/_md-comp-date-input-modal.scss +2 -4
  364. package/tokens/{v0_161 → v0_172}/_md-comp-date-picker-docked.scss +2 -4
  365. package/tokens/{v0_161 → v0_172}/_md-comp-date-picker-modal.scss +2 -4
  366. package/tokens/{v0_160 → v0_172}/_md-comp-dialog.scss +2 -4
  367. package/tokens/{v0_161 → v0_172}/_md-comp-divider.scss +1 -1
  368. package/tokens/{v0_160 → v0_172}/_md-comp-elevated-button.scss +2 -4
  369. package/tokens/{v0_160 → v0_172}/_md-comp-elevated-card.scss +2 -4
  370. package/tokens/{v0_161 → v0_172}/_md-comp-extended-fab-branded.scss +4 -4
  371. package/tokens/{v0_161 → v0_172}/_md-comp-extended-fab-primary.scss +1 -1
  372. package/tokens/{v0_160 → v0_172}/_md-comp-extended-fab-secondary.scss +1 -1
  373. package/tokens/{v0_161 → v0_172}/_md-comp-extended-fab-surface.scss +4 -4
  374. package/tokens/{v0_161 → v0_172}/_md-comp-extended-fab-tertiary.scss +1 -1
  375. package/tokens/{v0_161 → v0_172}/_md-comp-fab-branded-large.scss +4 -4
  376. package/tokens/{v0_160 → v0_172}/_md-comp-fab-branded.scss +4 -4
  377. package/tokens/{v0_161 → v0_172}/_md-comp-fab-primary-large.scss +1 -1
  378. package/tokens/{v0_161 → v0_172}/_md-comp-fab-primary-small.scss +1 -1
  379. package/tokens/{v0_160 → v0_172}/_md-comp-fab-primary.scss +1 -1
  380. package/tokens/{v0_161 → v0_172}/_md-comp-fab-secondary-large.scss +1 -1
  381. package/tokens/{v0_161 → v0_172}/_md-comp-fab-secondary-small.scss +1 -1
  382. package/tokens/{v0_160 → v0_172}/_md-comp-fab-secondary.scss +1 -1
  383. package/tokens/{v0_160 → v0_172}/_md-comp-fab-surface-large.scss +4 -4
  384. package/tokens/{v0_161 → v0_172}/_md-comp-fab-surface-small.scss +4 -4
  385. package/tokens/{v0_161 → v0_172}/_md-comp-fab-surface.scss +4 -4
  386. package/tokens/{v0_160 → v0_172}/_md-comp-fab-tertiary-large.scss +1 -1
  387. package/tokens/{v0_160 → v0_172}/_md-comp-fab-tertiary-small.scss +1 -1
  388. package/tokens/{v0_160 → v0_172}/_md-comp-fab-tertiary.scss +1 -1
  389. package/tokens/{v0_161 → v0_172}/_md-comp-filled-autocomplete.scss +4 -6
  390. package/tokens/{v0_161 → v0_172}/_md-comp-filled-button.scss +1 -1
  391. package/tokens/{v0_161 → v0_172}/_md-comp-filled-card.scss +3 -2
  392. package/tokens/{v0_161 → v0_172}/_md-comp-filled-icon-button.scss +2 -2
  393. package/tokens/{v0_161 → v0_172}/_md-comp-filled-menu-button.scss +1 -1
  394. package/tokens/{v0_161 → v0_172}/_md-comp-filled-select.scss +4 -6
  395. package/tokens/{v0_161 → v0_172}/_md-comp-filled-text-field.scss +3 -2
  396. package/tokens/{v0_161 → v0_172}/_md-comp-filled-tonal-button.scss +1 -1
  397. package/tokens/{v0_160 → v0_172}/_md-comp-filled-tonal-icon-button.scss +2 -2
  398. package/tokens/{v0_160 → v0_172}/_md-comp-filter-chip.scss +2 -4
  399. package/tokens/{v0_160 → v0_172}/_md-comp-full-screen-dialog.scss +3 -3
  400. package/tokens/{v0_160 → v0_172}/_md-comp-icon-button.scss +1 -1
  401. package/tokens/{v0_160 → v0_172}/_md-comp-input-chip.scss +1 -1
  402. package/tokens/{v0_160 → v0_172}/_md-comp-linear-progress-indicator.scss +2 -2
  403. package/tokens/{v0_160 → v0_172}/_md-comp-list.scss +1 -1
  404. package/tokens/{v0_161 → v0_172}/_md-comp-menu.scss +3 -5
  405. package/tokens/{v0_161 → v0_172}/_md-comp-navigation-bar.scss +2 -4
  406. package/tokens/{v0_161 → v0_172}/_md-comp-navigation-drawer.scss +4 -4
  407. package/tokens/{v0_160/_md-comp-navigation-bar.scss → v0_172/_md-comp-navigation-rail.scss} +9 -7
  408. package/tokens/{v0_160 → v0_172}/_md-comp-outlined-autocomplete.scss +4 -6
  409. package/tokens/{v0_161 → v0_172}/_md-comp-outlined-button.scss +1 -1
  410. package/tokens/{v0_161 → v0_172}/_md-comp-outlined-card.scss +1 -3
  411. package/tokens/{v0_161 → v0_172}/_md-comp-outlined-icon-button.scss +1 -1
  412. package/tokens/{v0_160 → v0_172}/_md-comp-outlined-menu-button.scss +1 -1
  413. package/tokens/{v0_160 → v0_172}/_md-comp-outlined-segmented-button.scss +1 -1
  414. package/tokens/{v0_160 → v0_172}/_md-comp-outlined-select.scss +4 -6
  415. package/tokens/{v0_161 → v0_172}/_md-comp-outlined-text-field.scss +1 -1
  416. package/tokens/{v0_161 → v0_172}/_md-comp-plain-tooltip.scss +1 -1
  417. package/tokens/{v0_160 → v0_172}/_md-comp-primary-navigation-tab.scss +1 -1
  418. package/tokens/{v0_160 → v0_172}/_md-comp-radio-button.scss +1 -1
  419. package/tokens/{v0_160 → v0_172}/_md-comp-rich-tooltip.scss +3 -5
  420. package/tokens/{v0_160 → v0_172}/_md-comp-scrim.scss +1 -1
  421. package/tokens/{v0_161 → v0_172}/_md-comp-search-bar.scss +2 -4
  422. package/tokens/{v0_161 → v0_172}/_md-comp-search-view.scss +2 -4
  423. package/tokens/{v0_160 → v0_172}/_md-comp-secondary-navigation-tab.scss +3 -3
  424. package/tokens/{v0_160 → v0_172}/_md-comp-sheet-bottom.scss +3 -4
  425. package/tokens/{v0_161 → v0_172}/_md-comp-sheet-floating.scss +3 -5
  426. package/tokens/{v0_161 → v0_172}/_md-comp-sheet-side.scss +4 -4
  427. package/tokens/{v0_160 → v0_172}/_md-comp-slider.scss +3 -2
  428. package/tokens/{v0_161 → v0_172}/_md-comp-snackbar.scss +1 -1
  429. package/tokens/{v0_161 → v0_172}/_md-comp-standard-menu-button.scss +1 -1
  430. package/tokens/{v0_161 → v0_172}/_md-comp-suggestion-chip.scss +3 -4
  431. package/tokens/{v0_161 → v0_172}/_md-comp-switch.scss +13 -11
  432. package/tokens/{v0_161 → v0_172}/_md-comp-text-button.scss +1 -1
  433. package/tokens/{v0_160 → v0_172}/_md-comp-time-input.scss +3 -4
  434. package/tokens/{v0_160 → v0_172}/_md-comp-time-picker.scss +5 -5
  435. package/tokens/{v0_161 → v0_172}/_md-comp-top-app-bar-large.scss +1 -3
  436. package/tokens/{v0_161 → v0_172}/_md-comp-top-app-bar-medium.scss +1 -3
  437. package/tokens/{v0_161 → v0_172}/_md-comp-top-app-bar-small-centered.scss +3 -1
  438. package/tokens/{v0_160 → v0_172}/_md-comp-top-app-bar-small.scss +3 -3
  439. package/tokens/{v0_161 → v0_172}/_md-ref-palette.scss +23 -23
  440. package/tokens/{v0_161 → v0_172}/_md-ref-typeface.scss +1 -1
  441. package/tokens/{v0_161 → v0_172}/_md-sys-color.scss +9 -9
  442. package/tokens/{v0_160 → v0_172}/_md-sys-elevation.scss +1 -1
  443. package/tokens/{v0_160 → v0_172}/_md-sys-motion.scss +1 -1
  444. package/tokens/{v0_160 → v0_172}/_md-sys-shape.scss +1 -1
  445. package/tokens/{v0_160 → v0_172}/_md-sys-state.scss +1 -1
  446. package/tokens/{v0_160 → v0_172}/_md-sys-typescale.scss +1 -1
  447. package/autocomplete/_filled-autocomplete.scss +0 -6
  448. package/autocomplete/_outlined-autocomplete.scss +0 -6
  449. package/autocomplete/autocomplete-item.d.ts +0 -19
  450. package/autocomplete/autocomplete-item.js +0 -22
  451. package/autocomplete/autocomplete-item.js.map +0 -1
  452. package/autocomplete/autocomplete-list.d.ts +0 -19
  453. package/autocomplete/autocomplete-list.js +0 -23
  454. package/autocomplete/autocomplete-list.js.map +0 -1
  455. package/autocomplete/autocomplete-surface.d.ts +0 -19
  456. package/autocomplete/autocomplete-surface.js +0 -23
  457. package/autocomplete/autocomplete-surface.js.map +0 -1
  458. package/autocomplete/filled-autocomplete.d.ts +0 -28
  459. package/autocomplete/filled-autocomplete.js +0 -46
  460. package/autocomplete/filled-autocomplete.js.map +0 -1
  461. package/autocomplete/lib/_filled-autocomplete.scss +0 -189
  462. package/autocomplete/lib/_outlined-autocomplete.scss +0 -178
  463. package/autocomplete/lib/_shared.scss +0 -25
  464. package/autocomplete/lib/autocomplete.d.ts +0 -54
  465. package/autocomplete/lib/autocomplete.js +0 -265
  466. package/autocomplete/lib/autocomplete.js.map +0 -1
  467. package/autocomplete/lib/autocompleteitem/autocomplete-item.d.ts +0 -11
  468. package/autocomplete/lib/autocompleteitem/autocomplete-item.js +0 -14
  469. package/autocomplete/lib/autocompleteitem/autocomplete-item.js.map +0 -1
  470. package/autocomplete/lib/autocompleteitem/harness.d.ts +0 -11
  471. package/autocomplete/lib/autocompleteitem/harness.js +0 -12
  472. package/autocomplete/lib/autocompleteitem/harness.js.map +0 -1
  473. package/autocomplete/lib/autocompletelist/_autocomplete-list.scss +0 -13
  474. package/autocomplete/lib/autocompletelist/autocomplete-list-styles.css.js +0 -9
  475. package/autocomplete/lib/autocompletelist/autocomplete-list-styles.css.js.map +0 -1
  476. package/autocomplete/lib/autocompletelist/autocomplete-list.d.ts +0 -14
  477. package/autocomplete/lib/autocompletelist/autocomplete-list.js +0 -21
  478. package/autocomplete/lib/autocompletelist/autocomplete-list.js.map +0 -1
  479. package/autocomplete/lib/autocompletelist/harness.d.ts +0 -11
  480. package/autocomplete/lib/autocompletelist/harness.js +0 -12
  481. package/autocomplete/lib/autocompletelist/harness.js.map +0 -1
  482. package/autocomplete/lib/autocompletesurface/_autocomplete-surface.scss +0 -13
  483. package/autocomplete/lib/autocompletesurface/autocomplete-surface-styles.css.js +0 -9
  484. package/autocomplete/lib/autocompletesurface/autocomplete-surface-styles.css.js.map +0 -1
  485. package/autocomplete/lib/autocompletesurface/autocomplete-surface-styles.scss +0 -10
  486. package/autocomplete/lib/autocompletesurface/autocomplete-surface.d.ts +0 -13
  487. package/autocomplete/lib/autocompletesurface/autocomplete-surface.js +0 -21
  488. package/autocomplete/lib/autocompletesurface/autocomplete-surface.js.map +0 -1
  489. package/autocomplete/lib/filled-styles.css.js +0 -9
  490. package/autocomplete/lib/filled-styles.css.js.map +0 -1
  491. package/autocomplete/lib/filled-styles.scss +0 -10
  492. package/autocomplete/lib/outlined-styles.css.js +0 -9
  493. package/autocomplete/lib/outlined-styles.css.js.map +0 -1
  494. package/autocomplete/lib/outlined-styles.scss +0 -10
  495. package/autocomplete/lib/shared-styles.css.js +0 -9
  496. package/autocomplete/lib/shared-styles.css.js.map +0 -1
  497. package/autocomplete/outlined-autocomplete.d.ts +0 -28
  498. package/autocomplete/outlined-autocomplete.js +0 -46
  499. package/autocomplete/outlined-autocomplete.js.map +0 -1
  500. package/button/elevated-link-button.d.ts +0 -36
  501. package/button/elevated-link-button.js +0 -41
  502. package/button/elevated-link-button.js.map +0 -1
  503. package/button/filled-link-button.d.ts +0 -34
  504. package/button/filled-link-button.js +0 -39
  505. package/button/filled-link-button.js.map +0 -1
  506. package/button/lib/elevated-link-button.d.ts +0 -13
  507. package/button/lib/elevated-link-button.js +0 -21
  508. package/button/lib/elevated-link-button.js.map +0 -1
  509. package/button/lib/filled-link-button.d.ts +0 -14
  510. package/button/lib/filled-link-button.js +0 -22
  511. package/button/lib/filled-link-button.js.map +0 -1
  512. package/button/lib/link-button.d.ts +0 -24
  513. package/button/lib/link-button.js +0 -59
  514. package/button/lib/link-button.js.map +0 -1
  515. package/button/lib/outlined-link-button.d.ts +0 -12
  516. package/button/lib/outlined-link-button.js +0 -20
  517. package/button/lib/outlined-link-button.js.map +0 -1
  518. package/button/lib/text-link-button.d.ts +0 -10
  519. package/button/lib/text-link-button.js +0 -16
  520. package/button/lib/text-link-button.js.map +0 -1
  521. package/button/lib/tonal-link-button.d.ts +0 -14
  522. package/button/lib/tonal-link-button.js +0 -22
  523. package/button/lib/tonal-link-button.js.map +0 -1
  524. package/button/outlined-link-button.d.ts +0 -36
  525. package/button/outlined-link-button.js +0 -40
  526. package/button/outlined-link-button.js.map +0 -1
  527. package/button/text-link-button.d.ts +0 -34
  528. package/button/text-link-button.js +0 -38
  529. package/button/text-link-button.js.map +0 -1
  530. package/button/tonal-link-button.d.ts +0 -35
  531. package/button/tonal-link-button.js +0 -40
  532. package/button/tonal-link-button.js.map +0 -1
  533. package/chips/action/delete-action.d.ts +0 -18
  534. package/chips/action/delete-action.js +0 -20
  535. package/chips/action/delete-action.js.map +0 -1
  536. package/chips/action/lib/action.d.ts +0 -47
  537. package/chips/action/lib/action.js +0 -162
  538. package/chips/action/lib/action.js.map +0 -1
  539. package/chips/action/lib/constants.d.ts +0 -62
  540. package/chips/action/lib/constants.js +0 -69
  541. package/chips/action/lib/constants.js.map +0 -1
  542. package/chips/action/lib/delete-action.d.ts +0 -20
  543. package/chips/action/lib/delete-action.js +0 -65
  544. package/chips/action/lib/delete-action.js.map +0 -1
  545. package/chips/action/lib/events.d.ts +0 -14
  546. package/chips/action/lib/events.js +0 -16
  547. package/chips/action/lib/events.js.map +0 -1
  548. package/chips/action/lib/link-action.d.ts +0 -19
  549. package/chips/action/lib/link-action.js +0 -55
  550. package/chips/action/lib/link-action.js.map +0 -1
  551. package/chips/action/lib/presentational-action.d.ts +0 -15
  552. package/chips/action/lib/presentational-action.js +0 -30
  553. package/chips/action/lib/presentational-action.js.map +0 -1
  554. package/chips/action/lib/primary-action.d.ts +0 -28
  555. package/chips/action/lib/primary-action.js +0 -88
  556. package/chips/action/lib/primary-action.js.map +0 -1
  557. package/chips/action/lib/selectable-action.d.ts +0 -17
  558. package/chips/action/lib/selectable-action.js +0 -67
  559. package/chips/action/lib/selectable-action.js.map +0 -1
  560. package/chips/action/lib/types.d.ts +0 -23
  561. package/chips/action/lib/types.js +0 -7
  562. package/chips/action/lib/types.js.map +0 -1
  563. package/chips/action/link-action.d.ts +0 -18
  564. package/chips/action/link-action.js +0 -20
  565. package/chips/action/link-action.js.map +0 -1
  566. package/chips/action/presentational-action.d.ts +0 -18
  567. package/chips/action/presentational-action.js +0 -20
  568. package/chips/action/presentational-action.js.map +0 -1
  569. package/chips/action/primary-action.d.ts +0 -18
  570. package/chips/action/primary-action.js +0 -20
  571. package/chips/action/primary-action.js.map +0 -1
  572. package/chips/action/selectable-action.d.ts +0 -18
  573. package/chips/action/selectable-action.js +0 -20
  574. package/chips/action/selectable-action.js.map +0 -1
  575. package/chips/chip/lib/_assist-chip-theme.scss +0 -99
  576. package/chips/chip/lib/_chip-theme.scss +0 -1285
  577. package/chips/chip/lib/_chip.scss +0 -444
  578. package/chips/chip/lib/_filter-chip-theme.scss +0 -130
  579. package/chips/chip/lib/_input-chip-theme.scss +0 -91
  580. package/chips/chip/lib/_suggestion-chip-theme.scss +0 -92
  581. package/chips/chip/lib/action-chip.d.ts +0 -18
  582. package/chips/chip/lib/action-chip.js +0 -39
  583. package/chips/chip/lib/action-chip.js.map +0 -1
  584. package/chips/chip/lib/adapter.d.ts +0 -50
  585. package/chips/chip/lib/adapter.js +0 -7
  586. package/chips/chip/lib/adapter.js.map +0 -1
  587. package/chips/chip/lib/animationframe.d.ts +0 -31
  588. package/chips/chip/lib/animationframe.js +0 -66
  589. package/chips/chip/lib/animationframe.js.map +0 -1
  590. package/chips/chip/lib/chip.d.ts +0 -43
  591. package/chips/chip/lib/chip.js +0 -134
  592. package/chips/chip/lib/chip.js.map +0 -1
  593. package/chips/chip/lib/constants.d.ts +0 -43
  594. package/chips/chip/lib/constants.js +0 -48
  595. package/chips/chip/lib/constants.js.map +0 -1
  596. package/chips/chip/lib/foundation.d.ts +0 -41
  597. package/chips/chip/lib/foundation.js +0 -255
  598. package/chips/chip/lib/foundation.js.map +0 -1
  599. package/chips/chip/lib/link-chip.d.ts +0 -21
  600. package/chips/chip/lib/link-chip.js +0 -53
  601. package/chips/chip/lib/link-chip.js.map +0 -1
  602. package/chips/chip/lib/presentational-chip.d.ts +0 -18
  603. package/chips/chip/lib/presentational-chip.js +0 -39
  604. package/chips/chip/lib/presentational-chip.js.map +0 -1
  605. package/chips/chip/lib/selectable-chip.d.ts +0 -22
  606. package/chips/chip/lib/selectable-chip.js +0 -57
  607. package/chips/chip/lib/selectable-chip.js.map +0 -1
  608. package/chips/chip/lib/types.d.ts +0 -42
  609. package/chips/chip/lib/types.js +0 -7
  610. package/chips/chip/lib/types.js.map +0 -1
  611. package/chips/chipset/lib/_chip-set-theme.scss +0 -50
  612. package/chips/chipset/lib/_chip-set.scss +0 -48
  613. package/chips/chipset/lib/adapter.d.ts +0 -45
  614. package/chips/chipset/lib/adapter.js +0 -7
  615. package/chips/chipset/lib/adapter.js.map +0 -1
  616. package/chips/chipset/lib/constants.d.ts +0 -26
  617. package/chips/chipset/lib/constants.js +0 -30
  618. package/chips/chipset/lib/constants.js.map +0 -1
  619. package/chips/chipset/lib/foundation.d.ts +0 -68
  620. package/chips/chipset/lib/foundation.js +0 -314
  621. package/chips/chipset/lib/foundation.js.map +0 -1
  622. package/chips/chipset/lib/types.d.ts +0 -41
  623. package/chips/chipset/lib/types.js +0 -7
  624. package/chips/chipset/lib/types.js.map +0 -1
  625. package/elevation/lib/_md-comp-elevation.scss +0 -27
  626. package/focus/lib/_md-comp-focus-ring.scss +0 -31
  627. package/iconbutton/filled-icon-button-toggle.d.ts +0 -31
  628. package/iconbutton/filled-icon-button-toggle.js +0 -40
  629. package/iconbutton/filled-icon-button-toggle.js.map +0 -1
  630. package/iconbutton/filled-link-icon-button.d.ts +0 -31
  631. package/iconbutton/filled-link-icon-button.js +0 -39
  632. package/iconbutton/filled-link-icon-button.js.map +0 -1
  633. package/iconbutton/filled-tonal-icon-button-toggle.d.ts +0 -31
  634. package/iconbutton/filled-tonal-icon-button-toggle.js +0 -40
  635. package/iconbutton/filled-tonal-icon-button-toggle.js.map +0 -1
  636. package/iconbutton/filled-tonal-link-icon-button.d.ts +0 -31
  637. package/iconbutton/filled-tonal-link-icon-button.js +0 -39
  638. package/iconbutton/filled-tonal-link-icon-button.js.map +0 -1
  639. package/iconbutton/lib/icon-button-toggle.d.ts +0 -34
  640. package/iconbutton/lib/icon-button-toggle.js +0 -87
  641. package/iconbutton/lib/icon-button-toggle.js.map +0 -1
  642. package/iconbutton/lib/link-icon-button.d.ts +0 -23
  643. package/iconbutton/lib/link-icon-button.js +0 -58
  644. package/iconbutton/lib/link-icon-button.js.map +0 -1
  645. package/iconbutton/outlined-icon-button-toggle.d.ts +0 -31
  646. package/iconbutton/outlined-icon-button-toggle.js +0 -39
  647. package/iconbutton/outlined-icon-button-toggle.js.map +0 -1
  648. package/iconbutton/outlined-link-icon-button.d.ts +0 -31
  649. package/iconbutton/outlined-link-icon-button.js +0 -39
  650. package/iconbutton/outlined-link-icon-button.js.map +0 -1
  651. package/iconbutton/standard-icon-button-toggle.d.ts +0 -31
  652. package/iconbutton/standard-icon-button-toggle.js +0 -39
  653. package/iconbutton/standard-icon-button-toggle.js.map +0 -1
  654. package/iconbutton/standard-link-icon-button.d.ts +0 -31
  655. package/iconbutton/standard-link-icon-button.js +0 -39
  656. package/iconbutton/standard-link-icon-button.js.map +0 -1
  657. package/menusurface/_menu-surface.scss +0 -6
  658. package/menusurface/lib/_md-comp-menu-surface.scss +0 -31
  659. package/menusurface/lib/_menu-surface.scss +0 -122
  660. package/menusurface/lib/adapter.d.ts +0 -46
  661. package/menusurface/lib/adapter.js +0 -7
  662. package/menusurface/lib/adapter.js.map +0 -1
  663. package/menusurface/lib/constants.d.ts +0 -71
  664. package/menusurface/lib/constants.js +0 -83
  665. package/menusurface/lib/constants.js.map +0 -1
  666. package/menusurface/lib/foundation.d.ts +0 -176
  667. package/menusurface/lib/foundation.js +0 -544
  668. package/menusurface/lib/foundation.js.map +0 -1
  669. package/menusurface/lib/menu-surface-styles.css.js +0 -9
  670. package/menusurface/lib/menu-surface-styles.css.js.map +0 -1
  671. package/menusurface/lib/menu-surface.d.ts +0 -62
  672. package/menusurface/lib/menu-surface.js +0 -347
  673. package/menusurface/lib/menu-surface.js.map +0 -1
  674. package/menusurface/lib/types.d.ts +0 -19
  675. package/menusurface/lib/types.js +0 -7
  676. package/menusurface/lib/types.js.map +0 -1
  677. package/menusurface/menu-surface.d.ts +0 -14
  678. package/menusurface/menu-surface.js +0 -17
  679. package/menusurface/menu-surface.js.map +0 -1
  680. package/sass/_elevation.scss +0 -159
  681. package/sass/_resolvers.scss +0 -16
  682. package/sass/_typography.scss +0 -39
  683. package/tokens/v0_160/_md-comp-assist-chip.scss +0 -109
  684. package/tokens/v0_160/_md-comp-checkbox.scss +0 -126
  685. package/tokens/v0_160/_md-comp-circular-progress-indicator.scss +0 -39
  686. package/tokens/v0_160/_md-comp-date-input-modal.scss +0 -89
  687. package/tokens/v0_160/_md-comp-date-picker-docked.scss +0 -246
  688. package/tokens/v0_160/_md-comp-date-picker-modal.scss +0 -305
  689. package/tokens/v0_160/_md-comp-divider.scss +0 -25
  690. package/tokens/v0_160/_md-comp-extended-fab-branded.scss +0 -86
  691. package/tokens/v0_160/_md-comp-extended-fab-primary.scss +0 -94
  692. package/tokens/v0_160/_md-comp-extended-fab-surface.scss +0 -90
  693. package/tokens/v0_160/_md-comp-extended-fab-tertiary.scss +0 -95
  694. package/tokens/v0_160/_md-comp-fab-branded-large.scss +0 -60
  695. package/tokens/v0_160/_md-comp-fab-primary-large.scss +0 -65
  696. package/tokens/v0_160/_md-comp-fab-primary-small.scss +0 -65
  697. package/tokens/v0_160/_md-comp-fab-secondary-large.scss +0 -66
  698. package/tokens/v0_160/_md-comp-fab-secondary-small.scss +0 -66
  699. package/tokens/v0_160/_md-comp-fab-surface-small.scss +0 -64
  700. package/tokens/v0_160/_md-comp-fab-surface.scss +0 -64
  701. package/tokens/v0_160/_md-comp-filled-autocomplete.scss +0 -267
  702. package/tokens/v0_160/_md-comp-filled-button.scss +0 -89
  703. package/tokens/v0_160/_md-comp-filled-card.scss +0 -58
  704. package/tokens/v0_160/_md-comp-filled-icon-button.scss +0 -79
  705. package/tokens/v0_160/_md-comp-filled-menu-button.scss +0 -98
  706. package/tokens/v0_160/_md-comp-filled-select.scss +0 -272
  707. package/tokens/v0_160/_md-comp-filled-text-field.scss +0 -189
  708. package/tokens/v0_160/_md-comp-filled-tonal-button.scss +0 -99
  709. package/tokens/v0_160/_md-comp-menu.scss +0 -121
  710. package/tokens/v0_160/_md-comp-navigation-drawer.scss +0 -162
  711. package/tokens/v0_160/_md-comp-navigation-rail.scss +0 -131
  712. package/tokens/v0_160/_md-comp-outlined-button.scss +0 -84
  713. package/tokens/v0_160/_md-comp-outlined-card.scss +0 -65
  714. package/tokens/v0_160/_md-comp-outlined-icon-button.scss +0 -79
  715. package/tokens/v0_160/_md-comp-outlined-text-field.scss +0 -171
  716. package/tokens/v0_160/_md-comp-plain-tooltip.scss +0 -55
  717. package/tokens/v0_160/_md-comp-search-bar.scss +0 -99
  718. package/tokens/v0_160/_md-comp-search-view.scss +0 -93
  719. package/tokens/v0_160/_md-comp-sheet-floating.scss +0 -34
  720. package/tokens/v0_160/_md-comp-sheet-side.scss +0 -91
  721. package/tokens/v0_160/_md-comp-snackbar.scss +0 -127
  722. package/tokens/v0_160/_md-comp-standard-menu-button.scss +0 -98
  723. package/tokens/v0_160/_md-comp-suggestion-chip.scss +0 -125
  724. package/tokens/v0_160/_md-comp-switch.scss +0 -136
  725. package/tokens/v0_160/_md-comp-text-button.scss +0 -77
  726. package/tokens/v0_160/_md-comp-top-app-bar-large.scss +0 -63
  727. package/tokens/v0_160/_md-comp-top-app-bar-medium.scss +0 -63
  728. package/tokens/v0_160/_md-comp-top-app-bar-small-centered.scss +0 -66
  729. package/tokens/v0_160/_md-ref-palette.scss +0 -107
  730. package/tokens/v0_160/_md-ref-typeface.scss +0 -21
  731. package/tokens/v0_160/_md-sys-color.scss +0 -904
  732. package/tokens/v0_161/_index.scss +0 -107
  733. package/tokens/v0_161/_md-comp-badge.scss +0 -58
  734. package/tokens/v0_161/_md-comp-banner.scss +0 -75
  735. package/tokens/v0_161/_md-comp-bottom-app-bar.scss +0 -35
  736. package/tokens/v0_161/_md-comp-carousel-item.scss +0 -65
  737. package/tokens/v0_161/_md-comp-data-table.scss +0 -96
  738. package/tokens/v0_161/_md-comp-dialog.scss +0 -123
  739. package/tokens/v0_161/_md-comp-elevated-button.scss +0 -91
  740. package/tokens/v0_161/_md-comp-elevated-card.scss +0 -59
  741. package/tokens/v0_161/_md-comp-extended-fab-secondary.scss +0 -95
  742. package/tokens/v0_161/_md-comp-fab-branded.scss +0 -60
  743. package/tokens/v0_161/_md-comp-fab-primary.scss +0 -65
  744. package/tokens/v0_161/_md-comp-fab-secondary.scss +0 -66
  745. package/tokens/v0_161/_md-comp-fab-surface-large.scss +0 -64
  746. package/tokens/v0_161/_md-comp-fab-tertiary-large.scss +0 -66
  747. package/tokens/v0_161/_md-comp-fab-tertiary-small.scss +0 -66
  748. package/tokens/v0_161/_md-comp-fab-tertiary.scss +0 -66
  749. package/tokens/v0_161/_md-comp-filled-tonal-icon-button.scss +0 -86
  750. package/tokens/v0_161/_md-comp-filter-chip.scss +0 -209
  751. package/tokens/v0_161/_md-comp-full-screen-dialog.scss +0 -111
  752. package/tokens/v0_161/_md-comp-icon-button.scss +0 -70
  753. package/tokens/v0_161/_md-comp-input-chip.scss +0 -184
  754. package/tokens/v0_161/_md-comp-linear-progress-indicator.scss +0 -41
  755. package/tokens/v0_161/_md-comp-list.scss +0 -248
  756. package/tokens/v0_161/_md-comp-navigation-rail.scss +0 -131
  757. package/tokens/v0_161/_md-comp-outlined-autocomplete.scss +0 -257
  758. package/tokens/v0_161/_md-comp-outlined-menu-button.scss +0 -94
  759. package/tokens/v0_161/_md-comp-outlined-segmented-button.scss +0 -112
  760. package/tokens/v0_161/_md-comp-outlined-select.scss +0 -262
  761. package/tokens/v0_161/_md-comp-primary-navigation-tab.scss +0 -121
  762. package/tokens/v0_161/_md-comp-radio-button.scss +0 -68
  763. package/tokens/v0_161/_md-comp-rich-tooltip.scss +0 -121
  764. package/tokens/v0_161/_md-comp-scrim.scss +0 -25
  765. package/tokens/v0_161/_md-comp-secondary-navigation-tab.scss +0 -84
  766. package/tokens/v0_161/_md-comp-sheet-bottom.scss +0 -45
  767. package/tokens/v0_161/_md-comp-slider.scss +0 -114
  768. package/tokens/v0_161/_md-comp-time-input.scss +0 -218
  769. package/tokens/v0_161/_md-comp-time-picker.scss +0 -264
  770. package/tokens/v0_161/_md-comp-top-app-bar-small.scss +0 -64
  771. package/tokens/v0_161/_md-sys-elevation.scss +0 -21
  772. package/tokens/v0_161/_md-sys-motion.scss +0 -53
  773. package/tokens/v0_161/_md-sys-shape.scss +0 -30
  774. package/tokens/v0_161/_md-sys-state.scss +0 -19
  775. package/tokens/v0_161/_md-sys-typescale.scss +0 -284
  776. package/tokens/v0_161/index.test.css.js +0 -9
  777. package/tokens/v0_161/index.test.css.js.map +0 -1
  778. package/tokens/v0_161/index.test.scss +0 -584
  779. package/tokens/v0_161/lib.test.css.d.ts +0 -1
  780. package/tokens/v0_161/lib.test.css.js +0 -9
  781. package/tokens/v0_161/lib.test.css.js.map +0 -1
  782. package/tokens/v0_161/lib.test.scss +0 -663
  783. /package/{autocomplete/lib/autocompletelist/autocomplete-list-styles.css.d.ts → chips/lib/assist-styles.css.d.ts} +0 -0
  784. /package/{autocomplete → chips}/lib/shared-styles.css.d.ts +0 -0
  785. /package/{autocomplete/lib/autocompletesurface/autocomplete-surface-styles.css.d.ts → chips/lib/suggestion-styles.css.d.ts} +0 -0
  786. /package/{autocomplete/lib/filled-styles.css.d.ts → circularprogress/lib/circular-progress-styles.css.d.ts} +0 -0
  787. /package/{autocomplete/lib/outlined-styles.css.d.ts → list/lib/listitem/forced-colors-styles.css.d.ts} +0 -0
  788. /package/{menusurface/lib/menu-surface-styles.css.d.ts → menu/lib/forced-colors-styles.css.d.ts} +0 -0
  789. /package/{tokens/v0_160/index.test.css.d.ts → menu/lib/menuitem/forced-colors-styles.css.d.ts} +0 -0
  790. /package/tokens/{v0_160 → v0_172}/_index.scss +0 -0
  791. /package/tokens/{v0_161 → v0_172}/index.test.css.d.ts +0 -0
  792. /package/tokens/{v0_160 → v0_172}/index.test.css.js +0 -0
  793. /package/tokens/{v0_160 → v0_172}/index.test.css.js.map +0 -0
  794. /package/tokens/{v0_160 → v0_172}/index.test.scss +0 -0
  795. /package/tokens/{v0_160 → v0_172}/lib.test.css.d.ts +0 -0
  796. /package/tokens/{v0_160 → v0_172}/lib.test.css.js +0 -0
  797. /package/tokens/{v0_160 → v0_172}/lib.test.css.js.map +0 -0
  798. /package/tokens/{v0_160 → v0_172}/lib.test.scss +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"menu.js","sourceRoot":"","sources":["menu.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\nimport '../../list/list.js';\nimport '../../focus/focus-ring.js';\nimport '../../elevation/elevation.js';\n\nimport {html, LitElement} from 'lit';\nimport {property, query} from 'lit/decorators.js';\nimport {classMap} from 'lit/directives/class-map.js';\nimport {styleMap} from 'lit/directives/style-map.js';\n\nimport {ariaProperty} from '../../decorators/aria-property.js';\nimport {MdFocusRing} from '../../focus/focus-ring.js';\nimport {pointerPress, shouldShowStrongFocus} from '../../focus/strong-focus.js';\nimport {List} from '../../list/lib/list.js';\nimport {createAnimationSignal, EASING} from '../../motion/animation.js';\n\nimport {MenuItem} from './shared.js';\nimport {Corner, SurfacePositionController} from './surfacePositionController.js';\nimport {TypeaheadController} from './typeaheadController.js';\n\nexport {Corner} from './surfacePositionController.js';\n\n/**\n * Element to focus on when menu is first opened.\n */\nexport type DefaultFocusState = 'NONE'|'LIST_ROOT'|'FIRST_ITEM'|'LAST_ITEM';\n\n/**\n * Gets the currently focused element on the page.\n *\n * @param activeDoc The document or shadowroot from which to start the search.\n * Defaults to `window.document`\n * @return Returns the currently deeply focused element or `null` if none.\n */\nfunction getFocusedElement(activeDoc: Document|ShadowRoot = document):\n HTMLElement|null {\n const activeEl = activeDoc.activeElement as HTMLElement | null;\n\n if (!activeEl) {\n return null;\n }\n\n if (activeEl.shadowRoot) {\n return getFocusedElement(activeEl.shadowRoot) ?? activeEl;\n }\n\n return activeEl;\n}\n\n/**\n * @fires opening Fired before the opening animation begins (not fired on quick)\n * @fires opened Fired once the menu is open, after any animations\n * @fires closing Fired before the closing animation begins (not fired on quick)\n * @fires closed Fired once the menu is closed, after any animations\n */\nexport abstract class Menu extends LitElement {\n @query('md-list') protected readonly listElement!: List|null;\n @query('.menu') protected readonly surfaceEl!: HTMLElement|null;\n @query('slot') protected readonly slotEl!: HTMLSlotElement|null;\n @query('md-focus-ring') protected readonly focusRing!: MdFocusRing;\n\n @ariaProperty\n @property({type: String, attribute: 'data-aria-label', noAccessor: true})\n override ariaLabel!: string;\n\n /**\n * The element in which the menu should align to.\n */\n @property({attribute: false}) anchor: HTMLElement|null = null;\n /**\n * Makes the element use `position:fixed` instead of `position:absolute`. In\n * most cases, the menu should position itself above most other\n * `position:absolute` or `position:fixed` elements when placed inside of\n * them. e.g. using a menu inside of an `md-dialog`.\n *\n * __NOTE__: Fixed menus will not scroll with the page and will be fixed to\n * the window instead.\n */\n @property({type: Boolean}) fixed = false;\n /**\n * Skips the opening and closing animations.\n */\n @property({type: Boolean}) quick = false;\n /**\n * Displays overflow content like a submenu.\n *\n * __NOTE__: This may cause adverse effects if you set\n * `md-menu {max-height:...}`\n * and have items overflowing items in the \"y\" direction.\n */\n @property({type: Boolean, attribute: 'has-overflow'}) hasOverflow = false;\n /**\n * Opens the menu and makes it visible. Alternative to the `.show()` and\n * `.close()` methods\n */\n @property({type: Boolean, reflect: true}) open = false;\n /**\n * Offsets the menu's inline alignment from the anchor by the given number in\n * pixels. This value is direction aware and will follow the LTR / RTL\n * direction.\n *\n * e.g. LTR: positive -> right, negative -> left\n * RTL: positive -> left, negative -> right\n */\n @property({type: Number, attribute: 'x-offset'}) xOffset = 0;\n /**\n * Offsets the menu's block alignment from the anchor by the given number in\n * pixels.\n *\n * e.g. positive -> down, negative -> up\n */\n @property({type: Number, attribute: 'y-offset'}) yOffset = 0;\n /**\n * The tabindex of the underlying list element.\n */\n @property({type: Number, attribute: 'list-tab-index'}) listTabIndex = 0;\n /**\n * The max time between the keystrokes of the typeahead menu behavior before\n * it clears the typeahead buffer.\n */\n @property({type: Number, attribute: 'typeahead-delay'})\n typeaheadBufferTime = 200;\n /**\n * The corner of the anchor which to align the menu in the standard logical\n * property style of <block>_<inline>.\n */\n @property({type: String, attribute: 'anchor-corner'})\n anchorCorner: Corner = 'END_START';\n /**\n * The corner of the menu which to align the anchor in the standard logical\n * property style of <block>_<inline>.\n */\n @property({type: String, attribute: 'menu-corner'})\n menuCorner: Corner = 'START_START';\n /**\n * Keeps the user clicks outside the menu\n */\n @property({type: Boolean, attribute: 'stay-open-on-outside-click'})\n stayOpenOnOutsideClick = false;\n /**\n * After closing, does not restore focus to the last focused element before\n * the menu was opened.\n */\n @property({type: Boolean, attribute: 'skip-restore-focus'})\n skipRestoreFocus = false;\n /**\n * The element that should be focused by default once opened.\n */\n @property({type: String, attribute: 'default-focus'})\n defaultFocus: DefaultFocusState = 'LIST_ROOT';\n\n protected openCloseAnimationSignal = createAnimationSignal();\n\n /**\n * Whether the menu is animating upwards or downwards when opening. This is\n * helpful for calculating some animation calculations.\n */\n protected get openDirection(): 'UP'|'DOWN' {\n const menuCornerBlock = this.menuCorner.split('_')[0];\n return menuCornerBlock === 'START' ? 'DOWN' : 'UP';\n }\n\n /**\n * The element that was focused before the menu opened.\n */\n protected lastFocusedElement: HTMLElement|null = null;\n\n /**\n * Handles typeahead navigation through the menu.\n */\n protected typeaheadController = new TypeaheadController(() => {\n return {\n getItems: () => this.items,\n typeaheadBufferTime: this.typeaheadBufferTime,\n };\n });\n\n /**\n * Handles positioning the surface and aligning it to the anchor.\n */\n protected menuPositionController = new SurfacePositionController(this, () => {\n return {\n anchorCorner: this.anchorCorner,\n surfaceCorner: this.menuCorner,\n surfaceEl: this.surfaceEl,\n anchorEl: this.anchor,\n isTopLayer: this.fixed,\n isOpen: this.open,\n xOffset: this.xOffset,\n yOffset: this.yOffset,\n onOpen: this.onOpened,\n beforeClose: this.beforeClose,\n onClose: this.onClosed,\n };\n });\n\n /**\n * The menu items associated with this menu. The items must be `MenuItem`s and\n * have both the `md-menu-item` and `md-list-item` attributes.\n */\n get items(): MenuItem[] {\n const listElement = this.listElement;\n\n if (listElement) {\n return listElement.items.filter(el => el.hasAttribute('md-menu-item')) as\n MenuItem[];\n }\n\n return [];\n }\n\n override render() {\n return this.renderSurface();\n }\n\n /**\n * Renders the positionable surface element and its contents.\n */\n protected renderSurface() {\n return html`\n <div\n class=\"menu ${classMap(this.getSurfaceClasses())}\"\n style=${styleMap(this.menuPositionController.surfaceStyles)}>\n ${this.renderList()} \n ${this.renderElevation()}\n ${this.renderFocusRing()}\n </div>\n `;\n }\n\n /**\n * Renders the List element and its items\n */\n protected renderList() {\n return html`\n <md-list\n role=\"menu\"\n class=\"list\"\n .ariaLabel=${this.ariaLabel}\n listTabIndex=${this.listTabIndex}\n @focus=${this.onListFocus}\n @blur=${this.onListBlur}\n @click=${this.onListClick}\n @keydown=${this.typeaheadController.onKeydown}>\n ${this.renderMenuItems()}\n </md-list>`;\n }\n\n /**\n * Renders the menu items' slot\n */\n protected renderMenuItems() {\n return html`<slot\n @close-menu=${this.onCloseMenu}\n @deactivate-items=${this.onDeactivateItems}></slot>`;\n }\n\n /**\n * Renders the elevation component.\n */\n protected renderElevation() {\n return html`<md-elevation shadow surface></md-elevation>`;\n }\n\n /**\n * Renders the focus ring component.\n */\n protected renderFocusRing() {\n return html`<md-focus-ring></md-focus-ring>`;\n }\n\n protected getSurfaceClasses() {\n return {\n open: this.open,\n fixed: this.fixed,\n 'has-overflow': this.hasOverflow,\n };\n }\n\n protected onListFocus() {\n this.focusRing.visible = shouldShowStrongFocus();\n }\n\n protected onListClick() {\n pointerPress();\n this.focusRing.visible = shouldShowStrongFocus();\n }\n\n protected onListBlur() {\n this.focusRing.visible = false;\n }\n\n /**\n * Saves the last focused element focuses the new element based on\n * `defaultFocus`, and animates open.\n */\n protected onOpened = () => {\n this.lastFocusedElement = getFocusedElement();\n\n if (!this.listElement) return;\n\n const items = this.listElement.items;\n const activeItemRecord = List.getActiveItem(items);\n\n if (activeItemRecord && this.defaultFocus !== 'NONE') {\n activeItemRecord.item.active = false;\n }\n\n switch (this.defaultFocus) {\n case 'FIRST_ITEM':\n const first = List.getFirstActivatableItem(items);\n if (first) {\n first.active = true;\n }\n break;\n case 'LAST_ITEM':\n const last = List.getLastActivatableItem(items);\n if (last) {\n last.active = true;\n }\n break;\n case 'LIST_ROOT':\n this.listElement?.focus();\n break;\n default:\n case 'NONE':\n // Do nothing.\n break;\n }\n\n if (this.quick) {\n this.dispatchEvent(new Event('opened'));\n } else {\n this.animateOpen();\n }\n };\n\n /**\n * Animates closed.\n */\n protected beforeClose = async () => {\n this.open = false;\n\n if (!this.quick) {\n await this.animateClose();\n }\n };\n\n /**\n * Focuses the last focused element.\n */\n protected onClosed = () => {\n if (this.quick) {\n this.dispatchEvent(new Event('closed'));\n }\n\n if (!this.skipRestoreFocus) {\n this.lastFocusedElement?.focus?.();\n }\n };\n\n /**\n * Performs the opening animation:\n *\n * https://direct.googleplex.com/#/spec/295000003+271060003\n */\n protected animateOpen() {\n const surfaceEl = this.surfaceEl;\n const slotEl = this.slotEl;\n\n if (!surfaceEl || !slotEl) return;\n\n const openDirection = this.openDirection;\n this.dispatchEvent(new Event('opening'));\n // needs to be imperative because we don't want to mix animation and Lit\n // render timing\n surfaceEl.classList.toggle('animating', true);\n\n const signal = this.openCloseAnimationSignal.start();\n const height = surfaceEl.offsetHeight;\n const openingUpwards = openDirection === 'UP';\n const children = this.items;\n const FULL_DURATION = 500;\n const SURFACE_OPACITY_DURATION = 50;\n const ITEM_OPACITY_DURATION = 250;\n // We want to fit every child fade-in animation within the full duration of\n // the animation.\n const DELAY_BETWEEN_ITEMS =\n (FULL_DURATION - ITEM_OPACITY_DURATION) / children.length;\n\n const surfaceHeightAnimation =\n surfaceEl.animate([{height: '0px'}, {height: `${height}px`}], {\n duration: FULL_DURATION,\n easing: EASING.EMPHASIZED,\n });\n // When we are opening upwards, we want to make sure the last item is always\n // in view, so we need to translate it upwards the opposite direction of the\n // height animation\n const upPositionCorrectionAnimation = slotEl.animate(\n [\n {transform: openingUpwards ? `translateY(-${height}px)` : ''},\n {transform: ''}\n ],\n {duration: FULL_DURATION, easing: EASING.EMPHASIZED});\n\n const surfaceOpacityAnimation = surfaceEl.animate(\n [{opacity: 0}, {opacity: 1}], SURFACE_OPACITY_DURATION);\n\n const childrenAnimations: Array<[HTMLElement, Animation]> = [];\n\n for (let i = 0; i < children.length; i++) {\n // If we are animating upwards, then reverse the children list.\n const directionalIndex = openingUpwards ? children.length - 1 - i : i;\n const child = children[directionalIndex];\n const animation = child.animate([{opacity: 0}, {opacity: 1}], {\n duration: ITEM_OPACITY_DURATION,\n delay: DELAY_BETWEEN_ITEMS * i,\n });\n\n // Make them all initially hidden and then clean up at the end of each\n // animation.\n child.classList.toggle('hidden', true);\n animation.addEventListener('finish', () => {\n child.classList.toggle('hidden', false);\n });\n\n childrenAnimations.push([child, animation]);\n }\n\n signal.addEventListener('abort', () => {\n surfaceHeightAnimation.cancel();\n upPositionCorrectionAnimation.cancel();\n surfaceOpacityAnimation.cancel();\n childrenAnimations.forEach(([child, animation]) => {\n child.classList.toggle('hidden', false);\n animation.cancel();\n });\n });\n\n surfaceHeightAnimation.addEventListener('finish', () => {\n surfaceEl.classList.toggle('animating', false);\n this.openCloseAnimationSignal.finish();\n this.dispatchEvent(new Event('opened'));\n });\n }\n\n /**\n * Performs the closing animation:\n *\n * https://direct.googleplex.com/#/spec/295000003+271060003\n */\n protected animateClose() {\n let resolve!: (value: unknown) => void;\n let reject!: () => void;\n\n // This promise blocks the surface position controller from setting\n // display: none on the surface which will interfere with this animation.\n const animationEnded = new Promise((res, rej) => {\n resolve = res;\n reject = rej;\n });\n\n const surfaceEl = this.surfaceEl;\n const slotEl = this.slotEl;\n\n if (!surfaceEl || !slotEl) {\n reject();\n return animationEnded;\n }\n\n const openDirection = this.openDirection;\n const closingDownwards = openDirection === 'UP';\n this.dispatchEvent(new Event('closing'));\n // needs to be imperative because we don't want to mix animation and Lit\n // render timing\n surfaceEl.classList.toggle('animating', true);\n const signal = this.openCloseAnimationSignal.start();\n const height = surfaceEl.offsetHeight;\n const children = this.items;\n const FULL_DURATION = 150;\n const SURFACE_OPACITY_DURATION = 50;\n // The surface fades away at the very end\n const SURFACE_OPACITY_DELAY = FULL_DURATION - SURFACE_OPACITY_DURATION;\n const ITEM_OPACITY_DURATION = 50;\n const ITEM_OPACITY_INITIAL_DELAY = 50;\n const END_HEIGHT_PRECENTAGE = .35;\n\n // We want to fit every child fade-out animation within the full duration of\n // the animation.\n const DELAY_BETWEEN_ITEMS =\n (FULL_DURATION - ITEM_OPACITY_INITIAL_DELAY - ITEM_OPACITY_DURATION) /\n children.length;\n\n // The mock has the animation shrink to 35%\n const surfaceHeightAnimation = surfaceEl.animate(\n [\n {height: `${height}px`},\n {height: `${height * END_HEIGHT_PRECENTAGE}px`}\n ],\n {\n duration: FULL_DURATION,\n easing: EASING.EMPHASIZED_ACCELERATE,\n });\n\n // When we are closing downwards, we want to make sure the last item is\n // always in view, so we need to translate it upwards the opposite direction\n // of the height animation\n const downPositionCorrectionAnimation = slotEl.animate(\n [\n {transform: ''}, {\n transform: closingDownwards ?\n `translateY(-${height * (1 - END_HEIGHT_PRECENTAGE)}px)` :\n ''\n }\n ],\n {duration: FULL_DURATION, easing: EASING.EMPHASIZED_ACCELERATE});\n\n const surfaceOpacityAnimation = surfaceEl.animate(\n [{opacity: 1}, {opacity: 0}],\n {duration: SURFACE_OPACITY_DURATION, delay: SURFACE_OPACITY_DELAY});\n\n const childrenAnimations: Array<[HTMLElement, Animation]> = [];\n\n for (let i = 0; i < children.length; i++) {\n // If the animation is closing upwards, then reverse the list of\n // children so that we animate in the opposite direction.\n const directionalIndex = closingDownwards ? i : children.length - 1 - i;\n const child = children[directionalIndex];\n const animation = child.animate([{opacity: 1}, {opacity: 0}], {\n duration: ITEM_OPACITY_DURATION,\n delay: ITEM_OPACITY_INITIAL_DELAY + DELAY_BETWEEN_ITEMS * i,\n });\n\n // Make sure the items stay hidden at the end of each child animation.\n // We clean this up at the end of the overall animation.\n animation.addEventListener('finish', () => {\n child.classList.toggle('hidden', true);\n });\n childrenAnimations.push([child, animation]);\n }\n\n signal.addEventListener('abort', () => {\n surfaceHeightAnimation.cancel();\n downPositionCorrectionAnimation.cancel();\n surfaceOpacityAnimation.cancel();\n childrenAnimations.forEach(([child, animation]) => {\n animation.cancel();\n child.classList.toggle('hidden', false);\n });\n reject();\n });\n\n surfaceHeightAnimation.addEventListener('finish', () => {\n surfaceEl.classList.toggle('animating', false);\n childrenAnimations.forEach(([child]) => {\n child.classList.toggle('hidden', false);\n });\n this.openCloseAnimationSignal.finish();\n this.dispatchEvent(new Event('closed'));\n resolve(true);\n });\n\n return animationEnded;\n }\n\n override connectedCallback() {\n super.connectedCallback();\n if (window && window.addEventListener) {\n window.addEventListener('click', this.onWindowClick, {capture: true});\n }\n }\n\n override disconnectedCallback() {\n super.disconnectedCallback();\n if (window && window.removeEventListener) {\n window.removeEventListener('click', this.onWindowClick);\n }\n }\n\n protected onWindowClick = (e: MouseEvent) => {\n if (!this.stayOpenOnOutsideClick && !e.composedPath().includes(this)) {\n this.open = false;\n }\n };\n\n protected onCloseMenu(e: Event) {\n this.close();\n }\n\n protected onDeactivateItems(e: Event) {\n e.stopPropagation();\n const items = this.items;\n for (const item of items) {\n item.active = false;\n }\n }\n\n override focus() {\n this.listElement?.focus();\n }\n\n close() {\n this.open = false;\n this.items.forEach(item => {\n item.close?.();\n });\n }\n\n show() {\n this.open = true;\n }\n}\n"]}
1
+ {"version":3,"file":"menu.js","sourceRoot":"","sources":["menu.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\nimport '../../list/list.js';\nimport '../../focus/focus-ring.js';\nimport '../../elevation/elevation.js';\n\nimport {html, isServer, LitElement} from 'lit';\nimport {eventOptions, property, query, state} from 'lit/decorators.js';\nimport {classMap} from 'lit/directives/class-map.js';\nimport {styleMap} from 'lit/directives/style-map.js';\n\nimport {ariaProperty} from '../../decorators/aria-property.js';\nimport {MdFocusRing} from '../../focus/focus-ring.js';\nimport {pointerPress, shouldShowStrongFocus} from '../../focus/strong-focus.js';\nimport {List} from '../../list/lib/list.js';\nimport {createAnimationSignal, EASING} from '../../motion/animation.js';\nimport {ARIARole} from '../../types/aria.js';\n\nimport {ActivateTypeaheadEvent, DeactivateTypeaheadEvent, isElementInSubtree, MenuItem} from './shared.js';\nimport {Corner, SurfacePositionController, SurfacePositionTarget} from './surfacePositionController.js';\nimport {TypeaheadController} from './typeaheadController.js';\n\nexport {Corner} from './surfacePositionController.js';\n\n/**\n * The default value for the typeahead buffer time in Milliseconds.\n */\nexport const DEFAULT_TYPEAHEAD_BUFFER_TIME = 200;\n\n/**\n * Element to focus on when menu is first opened.\n */\nexport type DefaultFocusState = 'NONE'|'LIST_ROOT'|'FIRST_ITEM'|'LAST_ITEM';\n\n/**\n * Gets the currently focused element on the page.\n *\n * @param activeDoc The document or shadowroot from which to start the search.\n * Defaults to `window.document`\n * @return Returns the currently deeply focused element or `null` if none.\n */\nfunction getFocusedElement(activeDoc: Document|ShadowRoot = document):\n HTMLElement|null {\n const activeEl = activeDoc.activeElement as HTMLElement | null;\n\n if (!activeEl) {\n return null;\n }\n\n if (activeEl.shadowRoot) {\n return getFocusedElement(activeEl.shadowRoot) ?? activeEl;\n }\n\n return activeEl;\n}\n\n/**\n * @fires opening Fired before the opening animation begins\n * @fires opened Fired once the menu is open, after any animations\n * @fires closing Fired before the closing animation begins\n * @fires closed Fired once the menu is closed, after any animations\n */\nexport abstract class Menu extends LitElement {\n @query('md-list') protected readonly listElement!: List|null;\n @query('.menu') protected readonly surfaceEl!: HTMLElement|null;\n @query('slot') protected readonly slotEl!: HTMLSlotElement|null;\n @query('md-focus-ring') protected readonly focusRing!: MdFocusRing;\n\n @ariaProperty\n @property({type: String, attribute: 'data-aria-label', noAccessor: true})\n override ariaLabel!: string;\n\n /**\n * The element in which the menu should align to.\n */\n @property({attribute: false})\n anchor: HTMLElement&Partial<SurfacePositionTarget>|null = null;\n /**\n * Makes the element use `position:fixed` instead of `position:absolute`. In\n * most cases, the menu should position itself above most other\n * `position:absolute` or `position:fixed` elements when placed inside of\n * them. e.g. using a menu inside of an `md-dialog`.\n *\n * __NOTE__: Fixed menus will not scroll with the page and will be fixed to\n * the window instead.\n */\n @property({type: Boolean}) fixed = false;\n /**\n * Skips the opening and closing animations.\n */\n @property({type: Boolean}) quick = false;\n /**\n * Displays overflow content like a submenu.\n *\n * __NOTE__: This may cause adverse effects if you set\n * `md-menu {max-height:...}`\n * and have items overflowing items in the \"y\" direction.\n */\n @property({type: Boolean, attribute: 'has-overflow'}) hasOverflow = false;\n /**\n * Opens the menu and makes it visible. Alternative to the `.show()` and\n * `.close()` methods\n */\n @property({type: Boolean, reflect: true}) open = false;\n /**\n * Offsets the menu's inline alignment from the anchor by the given number in\n * pixels. This value is direction aware and will follow the LTR / RTL\n * direction.\n *\n * e.g. LTR: positive -> right, negative -> left\n * RTL: positive -> left, negative -> right\n */\n @property({type: Number, attribute: 'x-offset'}) xOffset = 0;\n /**\n * Offsets the menu's block alignment from the anchor by the given number in\n * pixels.\n *\n * e.g. positive -> down, negative -> up\n */\n @property({type: Number, attribute: 'y-offset'}) yOffset = 0;\n /**\n * The tabindex of the underlying list element.\n */\n @property({type: Number, attribute: 'list-tab-index'}) listTabIndex = 0;\n /**\n * The role of the underlying list element.\n */\n @ariaProperty\n @property({type: String, attribute: 'data-role', noAccessor: true})\n override role: ARIARole = 'list';\n /**\n * The max time between the keystrokes of the typeahead menu behavior before\n * it clears the typeahead buffer.\n */\n @property({type: Number, attribute: 'typeahead-delay'})\n typeaheadBufferTime = DEFAULT_TYPEAHEAD_BUFFER_TIME;\n /**\n * The corner of the anchor which to align the menu in the standard logical\n * property style of <block>_<inline>.\n */\n @property({type: String, attribute: 'anchor-corner'})\n anchorCorner: Corner = 'END_START';\n /**\n * The corner of the menu which to align the anchor in the standard logical\n * property style of <block>_<inline>.\n */\n @property({type: String, attribute: 'menu-corner'})\n menuCorner: Corner = 'START_START';\n /**\n * Keeps the user clicks outside the menu.\n *\n * NOTE: clicking outside may still cause focusout to close the menu so see\n * `stayOpenOnFocusout`.\n */\n @property({type: Boolean, attribute: 'stay-open-on-outside-click'})\n stayOpenOnOutsideClick = false;\n /**\n * Keeps the menu open when focus leaves the menu's composed subtree.\n *\n * NOTE: Focusout behavior will stop propagation of the focusout event. Set\n * this property to true to opt-out of menu's focuout handling altogether.\n */\n @property({type: Boolean, attribute: 'stay-open-on-focusout'})\n stayOpenOnFocusout = false;\n /**\n * After closing, does not restore focus to the last focused element before\n * the menu was opened.\n */\n @property({type: Boolean, attribute: 'skip-restore-focus'})\n skipRestoreFocus = false;\n /**\n * The element that should be focused by default once opened.\n */\n @property({type: String, attribute: 'default-focus'})\n defaultFocus: DefaultFocusState = 'LIST_ROOT';\n\n @state() protected typeaheadActive = true;\n\n protected openCloseAnimationSignal = createAnimationSignal();\n\n /**\n * Whether the menu is animating upwards or downwards when opening. This is\n * helpful for calculating some animation calculations.\n */\n protected get openDirection(): 'UP'|'DOWN' {\n const menuCornerBlock = this.menuCorner.split('_')[0];\n return menuCornerBlock === 'START' ? 'DOWN' : 'UP';\n }\n\n /**\n * The element that was focused before the menu opened.\n */\n protected lastFocusedElement: HTMLElement|null = null;\n\n /**\n * Handles typeahead navigation through the menu.\n */\n typeaheadController = new TypeaheadController(() => {\n return {\n getItems: () => this.items,\n typeaheadBufferTime: this.typeaheadBufferTime,\n active: this.typeaheadActive\n };\n });\n\n /**\n * Handles positioning the surface and aligning it to the anchor.\n */\n protected menuPositionController = new SurfacePositionController(this, () => {\n return {\n anchorCorner: this.anchorCorner,\n surfaceCorner: this.menuCorner,\n surfaceEl: this.surfaceEl,\n anchorEl: this.anchor,\n isTopLayer: this.fixed,\n isOpen: this.open,\n xOffset: this.xOffset,\n yOffset: this.yOffset,\n onOpen: this.onOpened,\n beforeClose: this.beforeClose,\n onClose: this.onClosed,\n };\n });\n\n /**\n * The menu items associated with this menu. The items must be `MenuItem`s and\n * have both the `md-menu-item` and `md-list-item` attributes.\n */\n get items(): MenuItem[] {\n const listElement = this.listElement;\n\n if (listElement) {\n return listElement.items.filter(el => el.hasAttribute('md-menu-item')) as\n MenuItem[];\n }\n\n return [];\n }\n\n override render() {\n return this.renderSurface();\n }\n\n /**\n * Renders the positionable surface element and its contents.\n */\n protected renderSurface() {\n // TODO(b/274140618): elevation should be an underlay, not an overlay that\n // tints content\n return html`\n <div\n class=\"menu ${classMap(this.getSurfaceClasses())}\"\n style=${styleMap(this.menuPositionController.surfaceStyles)}\n @focusout=${this.handleFocusout}>\n ${this.renderList()}\n ${this.renderElevation()}\n ${this.renderFocusRing()}\n </div>\n `;\n }\n\n /**\n * Renders the List element and its items\n */\n protected renderList() {\n return html`\n <md-list\n .ariaLabel=${this.ariaLabel}\n .role=${this.role}\n listTabIndex=${this.listTabIndex}\n @focus=${this.handleListFocus}\n @blur=${this.handleListBlur}\n @click=${this.handleListClick}\n @keydown=${this.handleListKeydown}>\n ${this.renderMenuItems()}\n </md-list>`;\n }\n\n /**\n * Renders the menu items' slot\n */\n protected renderMenuItems() {\n return html`<slot\n @close-menu=${this.onCloseMenu}\n @deactivate-items=${this.onDeactivateItems}\n @deactivate-typeahead=${this.handleDeactivateTypeahead}\n @activate-typeahead=${this.handleActivateTypeahead}></slot>`;\n }\n\n /**\n * Renders the elevation component.\n */\n protected renderElevation() {\n return html`<md-elevation></md-elevation>`;\n }\n\n /**\n * Renders the focus ring component.\n */\n protected renderFocusRing() {\n return html`<md-focus-ring></md-focus-ring>`;\n }\n\n protected getSurfaceClasses() {\n return {\n open: this.open,\n fixed: this.fixed,\n 'has-overflow': this.hasOverflow,\n };\n }\n\n protected async handleFocusout(e: FocusEvent) {\n if (this.stayOpenOnFocusout) {\n return;\n }\n\n // Stop propagation to prevent nested menus from interfering with each other\n e.stopPropagation();\n\n if (e.relatedTarget) {\n // Don't close the menu if we are switching focus between menu,\n // md-menu-item, and md-list\n if (isElementInSubtree(e.relatedTarget, this)) {\n return;\n }\n }\n\n const oldRestoreFocus = this.skipRestoreFocus;\n // allow focus to continue to the next focused object rather than returning\n this.skipRestoreFocus = true;\n this.close();\n // await for close\n await this.updateComplete;\n // return to previous behavior\n this.skipRestoreFocus = oldRestoreFocus;\n }\n\n protected handleListFocus() {\n this.focusRing.visible = shouldShowStrongFocus();\n }\n\n protected handleListClick() {\n pointerPress();\n this.focusRing.visible = shouldShowStrongFocus();\n }\n\n // Capture so that we can grab the event before it reaches the list item\n // istelf. Specifically useful for the case where typeahead encounters a space\n // and we don't want the menu item to close the menu.\n @eventOptions({capture: true})\n protected handleListKeydown(e: KeyboardEvent) {\n this.typeaheadController.onKeydown(e);\n }\n\n protected handleListBlur() {\n this.focusRing.visible = false;\n }\n\n /**\n * Saves the last focused element focuses the new element based on\n * `defaultFocus`, and animates open.\n */\n protected onOpened = () => {\n this.lastFocusedElement = getFocusedElement();\n\n if (!this.listElement) return;\n\n const items = this.listElement.items;\n const activeItemRecord = List.getActiveItem(items);\n\n if (activeItemRecord && this.defaultFocus !== 'NONE') {\n activeItemRecord.item.active = false;\n }\n\n switch (this.defaultFocus) {\n case 'FIRST_ITEM':\n const first = List.getFirstActivatableItem(items);\n if (first) {\n first.active = true;\n }\n break;\n case 'LAST_ITEM':\n const last = List.getLastActivatableItem(items);\n if (last) {\n last.active = true;\n }\n break;\n case 'LIST_ROOT':\n this.listElement?.focus();\n break;\n default:\n case 'NONE':\n // Do nothing.\n break;\n }\n\n if (this.quick) {\n this.dispatchEvent(new Event('opening'));\n this.dispatchEvent(new Event('opened'));\n } else {\n this.animateOpen();\n }\n };\n\n /**\n * Animates closed.\n */\n protected beforeClose = async () => {\n this.open = false;\n\n if (!this.skipRestoreFocus) {\n this.lastFocusedElement?.focus?.();\n }\n\n if (!this.quick) {\n await this.animateClose();\n }\n };\n\n /**\n * Focuses the last focused element.\n */\n protected onClosed = () => {\n if (this.quick) {\n this.dispatchEvent(new Event('closing'));\n this.dispatchEvent(new Event('closed'));\n }\n };\n\n /**\n * Performs the opening animation:\n *\n * https://direct.googleplex.com/#/spec/295000003+271060003\n */\n protected animateOpen() {\n const surfaceEl = this.surfaceEl;\n const slotEl = this.slotEl;\n\n if (!surfaceEl || !slotEl) return;\n\n const openDirection = this.openDirection;\n this.dispatchEvent(new Event('opening'));\n // needs to be imperative because we don't want to mix animation and Lit\n // render timing\n surfaceEl.classList.toggle('animating', true);\n\n const signal = this.openCloseAnimationSignal.start();\n const height = surfaceEl.offsetHeight;\n const openingUpwards = openDirection === 'UP';\n const children = this.items;\n const FULL_DURATION = 500;\n const SURFACE_OPACITY_DURATION = 50;\n const ITEM_OPACITY_DURATION = 250;\n // We want to fit every child fade-in animation within the full duration of\n // the animation.\n const DELAY_BETWEEN_ITEMS =\n (FULL_DURATION - ITEM_OPACITY_DURATION) / children.length;\n\n const surfaceHeightAnimation =\n surfaceEl.animate([{height: '0px'}, {height: `${height}px`}], {\n duration: FULL_DURATION,\n easing: EASING.EMPHASIZED,\n });\n // When we are opening upwards, we want to make sure the last item is always\n // in view, so we need to translate it upwards the opposite direction of the\n // height animation\n const upPositionCorrectionAnimation = slotEl.animate(\n [\n {transform: openingUpwards ? `translateY(-${height}px)` : ''},\n {transform: ''}\n ],\n {duration: FULL_DURATION, easing: EASING.EMPHASIZED});\n\n const surfaceOpacityAnimation = surfaceEl.animate(\n [{opacity: 0}, {opacity: 1}], SURFACE_OPACITY_DURATION);\n\n const childrenAnimations: Array<[HTMLElement, Animation]> = [];\n\n for (let i = 0; i < children.length; i++) {\n // If we are animating upwards, then reverse the children list.\n const directionalIndex = openingUpwards ? children.length - 1 - i : i;\n const child = children[directionalIndex];\n const animation = child.animate([{opacity: 0}, {opacity: 1}], {\n duration: ITEM_OPACITY_DURATION,\n delay: DELAY_BETWEEN_ITEMS * i,\n });\n\n // Make them all initially hidden and then clean up at the end of each\n // animation.\n child.classList.toggle('hidden', true);\n animation.addEventListener('finish', () => {\n child.classList.toggle('hidden', false);\n });\n\n childrenAnimations.push([child, animation]);\n }\n\n signal.addEventListener('abort', () => {\n surfaceHeightAnimation.cancel();\n upPositionCorrectionAnimation.cancel();\n surfaceOpacityAnimation.cancel();\n childrenAnimations.forEach(([child, animation]) => {\n child.classList.toggle('hidden', false);\n animation.cancel();\n });\n });\n\n surfaceHeightAnimation.addEventListener('finish', () => {\n surfaceEl.classList.toggle('animating', false);\n this.openCloseAnimationSignal.finish();\n this.dispatchEvent(new Event('opened'));\n });\n }\n\n /**\n * Performs the closing animation:\n *\n * https://direct.googleplex.com/#/spec/295000003+271060003\n */\n protected animateClose() {\n let resolve!: (value: unknown) => void;\n let reject!: () => void;\n\n // This promise blocks the surface position controller from setting\n // display: none on the surface which will interfere with this animation.\n const animationEnded = new Promise((res, rej) => {\n resolve = res;\n reject = rej;\n });\n\n const surfaceEl = this.surfaceEl;\n const slotEl = this.slotEl;\n\n if (!surfaceEl || !slotEl) {\n reject();\n return animationEnded;\n }\n\n const openDirection = this.openDirection;\n const closingDownwards = openDirection === 'UP';\n this.dispatchEvent(new Event('closing'));\n // needs to be imperative because we don't want to mix animation and Lit\n // render timing\n surfaceEl.classList.toggle('animating', true);\n const signal = this.openCloseAnimationSignal.start();\n const height = surfaceEl.offsetHeight;\n const children = this.items;\n const FULL_DURATION = 150;\n const SURFACE_OPACITY_DURATION = 50;\n // The surface fades away at the very end\n const SURFACE_OPACITY_DELAY = FULL_DURATION - SURFACE_OPACITY_DURATION;\n const ITEM_OPACITY_DURATION = 50;\n const ITEM_OPACITY_INITIAL_DELAY = 50;\n const END_HEIGHT_PRECENTAGE = .35;\n\n // We want to fit every child fade-out animation within the full duration of\n // the animation.\n const DELAY_BETWEEN_ITEMS =\n (FULL_DURATION - ITEM_OPACITY_INITIAL_DELAY - ITEM_OPACITY_DURATION) /\n children.length;\n\n // The mock has the animation shrink to 35%\n const surfaceHeightAnimation = surfaceEl.animate(\n [\n {height: `${height}px`},\n {height: `${height * END_HEIGHT_PRECENTAGE}px`}\n ],\n {\n duration: FULL_DURATION,\n easing: EASING.EMPHASIZED_ACCELERATE,\n });\n\n // When we are closing downwards, we want to make sure the last item is\n // always in view, so we need to translate it upwards the opposite direction\n // of the height animation\n const downPositionCorrectionAnimation = slotEl.animate(\n [\n {transform: ''}, {\n transform: closingDownwards ?\n `translateY(-${height * (1 - END_HEIGHT_PRECENTAGE)}px)` :\n ''\n }\n ],\n {duration: FULL_DURATION, easing: EASING.EMPHASIZED_ACCELERATE});\n\n const surfaceOpacityAnimation = surfaceEl.animate(\n [{opacity: 1}, {opacity: 0}],\n {duration: SURFACE_OPACITY_DURATION, delay: SURFACE_OPACITY_DELAY});\n\n const childrenAnimations: Array<[HTMLElement, Animation]> = [];\n\n for (let i = 0; i < children.length; i++) {\n // If the animation is closing upwards, then reverse the list of\n // children so that we animate in the opposite direction.\n const directionalIndex = closingDownwards ? i : children.length - 1 - i;\n const child = children[directionalIndex];\n const animation = child.animate([{opacity: 1}, {opacity: 0}], {\n duration: ITEM_OPACITY_DURATION,\n delay: ITEM_OPACITY_INITIAL_DELAY + DELAY_BETWEEN_ITEMS * i,\n });\n\n // Make sure the items stay hidden at the end of each child animation.\n // We clean this up at the end of the overall animation.\n animation.addEventListener('finish', () => {\n child.classList.toggle('hidden', true);\n });\n childrenAnimations.push([child, animation]);\n }\n\n signal.addEventListener('abort', () => {\n surfaceHeightAnimation.cancel();\n downPositionCorrectionAnimation.cancel();\n surfaceOpacityAnimation.cancel();\n childrenAnimations.forEach(([child, animation]) => {\n animation.cancel();\n child.classList.toggle('hidden', false);\n });\n reject();\n });\n\n surfaceHeightAnimation.addEventListener('finish', () => {\n surfaceEl.classList.toggle('animating', false);\n childrenAnimations.forEach(([child]) => {\n child.classList.toggle('hidden', false);\n });\n this.openCloseAnimationSignal.finish();\n this.dispatchEvent(new Event('closed'));\n resolve(true);\n });\n\n return animationEnded;\n }\n\n override connectedCallback() {\n super.connectedCallback();\n if (!isServer) {\n window.addEventListener('click', this.onWindowClick, {capture: true});\n }\n }\n\n override disconnectedCallback() {\n super.disconnectedCallback();\n if (!isServer) {\n window.removeEventListener('click', this.onWindowClick, {capture: true});\n }\n }\n\n protected onWindowClick = (e: MouseEvent) => {\n if (!this.stayOpenOnOutsideClick && !e.composedPath().includes(this)) {\n this.open = false;\n }\n };\n\n protected onCloseMenu(e: Event) {\n this.close();\n }\n\n protected onDeactivateItems(e: Event) {\n e.stopPropagation();\n const items = this.items;\n for (const item of items) {\n item.active = false;\n }\n }\n\n protected handleDeactivateTypeahead(e: DeactivateTypeaheadEvent) {\n // stopPropagation so that this does not deactivate any typeaheads in menus\n // nested above it e.g. md-sub-menu-item\n e.stopPropagation();\n this.typeaheadActive = false;\n }\n\n protected handleActivateTypeahead(e: ActivateTypeaheadEvent) {\n // stopPropagation so that this does not activate any typeaheads in menus\n // nested above it e.g. md-sub-menu-item\n e.stopPropagation();\n this.typeaheadActive = true;\n }\n\n override focus() {\n this.listElement?.focus();\n }\n\n close() {\n this.open = false;\n this.items.forEach(item => {\n item.close?.();\n });\n }\n\n show() {\n this.open = true;\n }\n}\n"]}
@@ -36,22 +36,16 @@ $_custom-property-prefix: 'menu';
36
36
  }
37
37
 
38
38
  .list-item {
39
- :host([active]) &,
40
- :host(:active) &,
41
- &:focus {
39
+ :host([selected]) & {
42
40
  background-color: var(--_list-item-selected-container-color);
43
41
  }
44
42
  }
45
43
 
46
- /*
47
- Set the ripple opacity to 0 if there is a submenu that is hovered.
48
- */
44
+ // Set the ripple opacity to 0 if there is a submenu that is hovered.
49
45
  .list-item:has(.submenu:hover) {
50
- /*
51
- Have to use ripple theme directly because :has selector in this case does
52
- not work in this case with the :has selector, thus we cannot override the
53
- custom props set in :host
54
- */
46
+ // Have to use ripple theme directly because :has selector in this case does
47
+ // not work in this case with the :has selector, thus we cannot override the
48
+ // custom props set in :host
55
49
  @include ripple.theme(
56
50
  (
57
51
  hover-opacity: 0,
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { css } from 'lit';
7
+ export const styles = css `@media(forced-colors: active){.list-item{position:relative}:host([selected]) .list-item:not(:has(.focus-ring[visible]))::before{content:"";position:absolute;inset:0;box-sizing:border-box;border-radius:inherit;pointer-events:none;border:3px double CanvasText}}/*# sourceMappingURL=forced-colors-styles.css.map */
8
+ `;
9
+ //# sourceMappingURL=forced-colors-styles.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"forced-colors-styles.css.js","sourceRoot":"","sources":["forced-colors-styles.css.ts"],"names":[],"mappings":"AAAA;;;;IAII;AACH,OAAO,EAAC,GAAG,EAAC,MAAM,KAAK,CAAC;AACxB,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;CACzB,CAAC","sourcesContent":["/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n import {css} from 'lit';\n export const styles = css`@media(forced-colors: active){.list-item{position:relative}:host([selected]) .list-item:not(:has(.focus-ring[visible]))::before{content:\"\";position:absolute;inset:0;box-sizing:border-box;border-radius:inherit;pointer-events:none;border:3px double CanvasText}}/*# sourceMappingURL=forced-colors-styles.css.map */\n`;\n "]}
@@ -0,0 +1,22 @@
1
+ //
2
+ // Copyright 2023 Google LLC
3
+ // SPDX-License-Identifier: Apache-2.0
4
+ //
5
+
6
+ @media (forced-colors: active) {
7
+ .list-item {
8
+ position: relative;
9
+ }
10
+
11
+ // Show double border only when selected, and the current list item does not
12
+ // have a focus ring on it.
13
+ :host([selected]) .list-item:not(:has(.focus-ring[visible]))::before {
14
+ content: '';
15
+ position: absolute;
16
+ inset: 0;
17
+ box-sizing: border-box;
18
+ border-radius: inherit;
19
+ pointer-events: none;
20
+ border: 3px double CanvasText;
21
+ }
22
+ }
@@ -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{--_list-item-selected-container-color: var(--md-menu-list-item-selected-container-color, var(--md-sys-color-surface-variant, #e7e0ec))}:host([active]) .list-item,:host(:active) .list-item,.list-item:focus{background-color:var(--_list-item-selected-container-color)}.list-item:has(.submenu:hover){--md-ripple-hover-opacity:0}/*# sourceMappingURL=menu-item-styles.css.map */
7
+ export const styles = css `:host{--_list-item-selected-container-color: var(--md-menu-list-item-selected-container-color, var(--md-sys-color-surface-container-highest, #e6e0e9))}:host([selected]) .list-item{background-color:var(--_list-item-selected-container-color)}.list-item:has(.submenu:hover){--md-ripple-hover-opacity:0}/*# sourceMappingURL=menu-item-styles.css.map */
8
8
  `;
9
9
  //# sourceMappingURL=menu-item-styles.css.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"menu-item-styles.css.js","sourceRoot":"","sources":["menu-item-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{--_list-item-selected-container-color: var(--md-menu-list-item-selected-container-color, var(--md-sys-color-surface-variant, #e7e0ec))}:host([active]) .list-item,:host(:active) .list-item,.list-item:focus{background-color:var(--_list-item-selected-container-color)}.list-item:has(.submenu:hover){--md-ripple-hover-opacity:0}/*# sourceMappingURL=menu-item-styles.css.map */\n`;\n "]}
1
+ {"version":3,"file":"menu-item-styles.css.js","sourceRoot":"","sources":["menu-item-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{--_list-item-selected-container-color: var(--md-menu-list-item-selected-container-color, var(--md-sys-color-surface-container-highest, #e6e0e9))}:host([selected]) .list-item{background-color:var(--_list-item-selected-container-color)}.list-item:has(.submenu:hover){--md-ripple-hover-opacity:0}/*# sourceMappingURL=menu-item-styles.css.map */\n`;\n "]}
@@ -36,7 +36,7 @@ export class MenuItemEl extends ListItemEl {
36
36
  if (this.keepOpen)
37
37
  return;
38
38
  const keyCode = e.code;
39
- if (isClosableKey(keyCode)) {
39
+ if (!e.defaultPrevented && isClosableKey(keyCode)) {
40
40
  e.preventDefault();
41
41
  this.dispatchEvent(new DefaultCloseMenuEvent(this, { kind: CLOSE_REASON.KEYDOWN, key: keyCode }));
42
42
  }
@@ -1 +1 @@
1
- {"version":3,"file":"menu-item.js","sourceRoot":"","sources":["menu-item.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;AAEH,OAAO,EAAC,QAAQ,EAAC,MAAM,mBAAmB,CAAC;AAE3C,OAAO,EAAC,UAAU,EAAC,MAAM,yCAAyC,CAAC;AAEnE,OAAO,EAAC,YAAY,EAAE,qBAAqB,EAAE,aAAa,EAAW,MAAM,cAAc,CAAC;AAE1F;;GAEG;AACH,MAAM,OAAO,UAAW,SAAQ,UAAU;IAA1C;;QACW,SAAI,GAAa,UAAU,CAAC;QACrC;;WAEG;QAEH,eAAU,GAAG,IAAI,CAAC;QAElB;;WAEG;QACgD,aAAQ,GAAG,KAAK,CAAC;QAEpE;;WAEG;QACO,oBAAe,GAAG,KAAK,CAAC;IAkBpC,CAAC;IAhBoB,OAAO;QACxB,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,eAAe;YAAE,OAAO;QAElD,IAAI,CAAC,aAAa,CACd,IAAI,qBAAqB,CAAC,IAAI,EAAE,EAAC,IAAI,EAAE,YAAY,CAAC,eAAe,EAAC,CAAC,CAAC,CAAC;IAC7E,CAAC;IAEkB,SAAS,CAAC,CAAgB;QAC3C,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC1B,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC;QACvB,IAAI,aAAa,CAAC,OAAO,CAAC,EAAE;YAC1B,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,IAAI,CAAC,aAAa,CAAC,IAAI,qBAAqB,CACxC,IAAI,EAAE,EAAC,IAAI,EAAE,YAAY,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,EAAC,CAAC,CAAC,CAAC;SACxD;IACH,CAAC;CACF;AA7BC;IAAC,QAAQ,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAC,CAAC;;8CAClD;AAKlB;IAAC,QAAQ,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAC,CAAC;;4CAAkB","sourcesContent":["/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {property} from 'lit/decorators.js';\n\nimport {ListItemEl} from '../../../list/lib/listitem/list-item.js';\nimport {ARIARole} from '../../../types/aria.js';\nimport {CLOSE_REASON, DefaultCloseMenuEvent, isClosableKey, MenuItem} from '../shared.js';\n\n/**\n * @fires close-menu {CloseMenuEvent}\n */\nexport class MenuItemEl extends ListItemEl implements MenuItem {\n override role: ARIARole = 'menuitem';\n /**\n * READONLY: self-identifies as a menu item and sets its identifying attribute\n */\n @property({type: Boolean, attribute: 'md-menu-item', reflect: true})\n isMenuItem = true;\n\n /**\n * Keeps the menu open if clicked or keyboard selected.\n */\n @property({type: Boolean, attribute: 'keep-open'}) keepOpen = false;\n\n /**\n * Used for overriding e.g. sub-menu-item.\n */\n protected keepOpenOnClick = false;\n\n protected override onClick() {\n if (this.keepOpen || this.keepOpenOnClick) return;\n\n this.dispatchEvent(\n new DefaultCloseMenuEvent(this, {kind: CLOSE_REASON.CLICK_SELECTION}));\n }\n\n protected override onKeydown(e: KeyboardEvent) {\n if (this.keepOpen) return;\n const keyCode = e.code;\n if (isClosableKey(keyCode)) {\n e.preventDefault();\n this.dispatchEvent(new DefaultCloseMenuEvent(\n this, {kind: CLOSE_REASON.KEYDOWN, key: keyCode}));\n }\n }\n}\n"]}
1
+ {"version":3,"file":"menu-item.js","sourceRoot":"","sources":["menu-item.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;AAEH,OAAO,EAAC,QAAQ,EAAC,MAAM,mBAAmB,CAAC;AAE3C,OAAO,EAAC,UAAU,EAAC,MAAM,yCAAyC,CAAC;AAEnE,OAAO,EAAC,YAAY,EAAE,qBAAqB,EAAE,aAAa,EAAW,MAAM,cAAc,CAAC;AAE1F;;GAEG;AACH,MAAM,OAAO,UAAW,SAAQ,UAAU;IAA1C;;QACW,SAAI,GAAa,UAAU,CAAC;QACrC;;WAEG;QAEH,eAAU,GAAG,IAAI,CAAC;QAElB;;WAEG;QACgD,aAAQ,GAAG,KAAK,CAAC;QAEpE;;WAEG;QACO,oBAAe,GAAG,KAAK,CAAC;IAmBpC,CAAC;IAjBoB,OAAO;QACxB,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,eAAe;YAAE,OAAO;QAElD,IAAI,CAAC,aAAa,CACd,IAAI,qBAAqB,CAAC,IAAI,EAAE,EAAC,IAAI,EAAE,YAAY,CAAC,eAAe,EAAC,CAAC,CAAC,CAAC;IAC7E,CAAC;IAEkB,SAAS,CAAC,CAAgB;QAC3C,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC1B,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC;QAEvB,IAAI,CAAC,CAAC,CAAC,gBAAgB,IAAI,aAAa,CAAC,OAAO,CAAC,EAAE;YACjD,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,IAAI,CAAC,aAAa,CAAC,IAAI,qBAAqB,CACxC,IAAI,EAAE,EAAC,IAAI,EAAE,YAAY,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,EAAC,CAAC,CAAC,CAAC;SACxD;IACH,CAAC;CACF;AA9BC;IAAC,QAAQ,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAC,CAAC;;8CAClD;AAKlB;IAAC,QAAQ,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAC,CAAC;;4CAAkB","sourcesContent":["/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {property} from 'lit/decorators.js';\n\nimport {ListItemEl} from '../../../list/lib/listitem/list-item.js';\nimport {ARIARole} from '../../../types/aria.js';\nimport {CLOSE_REASON, DefaultCloseMenuEvent, isClosableKey, MenuItem} from '../shared.js';\n\n/**\n * @fires close-menu {CloseMenuEvent}\n */\nexport class MenuItemEl extends ListItemEl implements MenuItem {\n override role: ARIARole = 'menuitem';\n /**\n * READONLY: self-identifies as a menu item and sets its identifying attribute\n */\n @property({type: Boolean, attribute: 'md-menu-item', reflect: true})\n isMenuItem = true;\n\n /**\n * Keeps the menu open if clicked or keyboard selected.\n */\n @property({type: Boolean, attribute: 'keep-open'}) keepOpen = false;\n\n /**\n * Used for overriding e.g. sub-menu-item.\n */\n protected keepOpenOnClick = false;\n\n protected override onClick() {\n if (this.keepOpen || this.keepOpenOnClick) return;\n\n this.dispatchEvent(\n new DefaultCloseMenuEvent(this, {kind: CLOSE_REASON.CLICK_SELECTION}));\n }\n\n protected override onKeydown(e: KeyboardEvent) {\n if (this.keepOpen) return;\n const keyCode = e.code;\n\n if (!e.defaultPrevented && isClosableKey(keyCode)) {\n e.preventDefault();\n this.dispatchEvent(new DefaultCloseMenuEvent(\n this, {kind: CLOSE_REASON.KEYDOWN, key: keyCode}));\n }\n }\n}\n"]}
@@ -34,7 +34,8 @@ export class MenuItemLink extends ListItemLink {
34
34
  return;
35
35
  const keyCode = e.code;
36
36
  // Do not preventDefault on enter or else it will prevent from opening links
37
- if (isClosableKey(keyCode) && keyCode !== SELECTION_KEY.ENTER) {
37
+ if (!e.defaultPrevented && isClosableKey(keyCode) &&
38
+ keyCode !== SELECTION_KEY.ENTER) {
38
39
  e.preventDefault();
39
40
  this.dispatchEvent(new DefaultCloseMenuEvent(this, { kind: CLOSE_REASON.KEYDOWN, key: keyCode }));
40
41
  }
@@ -1 +1 @@
1
- {"version":3,"file":"menu-item-link.js","sourceRoot":"","sources":["menu-item-link.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;AAEH,OAAO,EAAC,QAAQ,EAAC,MAAM,mBAAmB,CAAC;AAE3C,OAAO,EAAC,YAAY,EAAC,MAAM,kDAAkD,CAAC;AAE9E,OAAO,EAAC,YAAY,EAAE,qBAAqB,EAAE,aAAa,EAAY,aAAa,EAAC,MAAM,cAAc,CAAC;AAEzG;;GAEG;AACH,MAAM,OAAO,YAAa,SAAQ,YAAY;IAA9C;;QACW,SAAI,GAAa,UAAU,CAAC;QACrC;;WAEG;QAEH,eAAU,GAAG,IAAI,CAAC;QAElB;;WAEG;QACgD,aAAQ,GAAG,KAAK,CAAC;QAE1D,oBAAe,GAAG,KAAK,CAAC;IAoBpC,CAAC;IAlBoB,OAAO;QACxB,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,eAAe;YAAE,OAAO;QAElD,IAAI,CAAC,aAAa,CACd,IAAI,qBAAqB,CAAC,IAAI,EAAE,EAAC,IAAI,EAAE,YAAY,CAAC,eAAe,EAAC,CAAC,CAAC,CAAC;IAC7E,CAAC;IAEkB,SAAS,CAAC,CAAgB;QAC3C,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO;QAE1B,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC;QACvB,4EAA4E;QAC5E,IAAI,aAAa,CAAC,OAAO,CAAC,IAAI,OAAO,KAAK,aAAa,CAAC,KAAK,EAAE;YAC7D,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,IAAI,CAAC,aAAa,CAAC,IAAI,qBAAqB,CACxC,IAAI,EAAE,EAAC,IAAI,EAAE,YAAY,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,EAAC,CAAC,CAAC,CAAC;SACxD;IACH,CAAC;CACF;AA5BC;IAAC,QAAQ,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAC,CAAC;;gDAClD;AAKlB;IAAC,QAAQ,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAC,CAAC;;8CAAkB","sourcesContent":["/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {property} from 'lit/decorators.js';\n\nimport {ListItemLink} from '../../../list/lib/listitemlink/list-item-link.js';\nimport {ARIARole} from '../../../types/aria.js';\nimport {CLOSE_REASON, DefaultCloseMenuEvent, isClosableKey, MenuItem, SELECTION_KEY} from '../shared.js';\n\n/**\n * @fires close-menu {CloseMenuEvent}\n */\nexport class MenuItemLink extends ListItemLink implements MenuItem {\n override role: ARIARole = 'menuitem';\n /**\n * READONLY: self-identifies as a menu item and sets its identifying attribute\n */\n @property({type: Boolean, attribute: 'md-menu-item', reflect: true})\n isMenuItem = true;\n\n /**\n * Keeps the menu open if clicked or keyboard selected.\n */\n @property({type: Boolean, attribute: 'keep-open'}) keepOpen = false;\n\n protected keepOpenOnClick = false;\n\n protected override onClick() {\n if (this.keepOpen || this.keepOpenOnClick) return;\n\n this.dispatchEvent(\n new DefaultCloseMenuEvent(this, {kind: CLOSE_REASON.CLICK_SELECTION}));\n }\n\n protected override onKeydown(e: KeyboardEvent) {\n if (this.keepOpen) return;\n\n const keyCode = e.code;\n // Do not preventDefault on enter or else it will prevent from opening links\n if (isClosableKey(keyCode) && keyCode !== SELECTION_KEY.ENTER) {\n e.preventDefault();\n this.dispatchEvent(new DefaultCloseMenuEvent(\n this, {kind: CLOSE_REASON.KEYDOWN, key: keyCode}));\n }\n }\n}\n"]}
1
+ {"version":3,"file":"menu-item-link.js","sourceRoot":"","sources":["menu-item-link.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;AAEH,OAAO,EAAC,QAAQ,EAAC,MAAM,mBAAmB,CAAC;AAE3C,OAAO,EAAC,YAAY,EAAC,MAAM,kDAAkD,CAAC;AAE9E,OAAO,EAAC,YAAY,EAAE,qBAAqB,EAAE,aAAa,EAAY,aAAa,EAAC,MAAM,cAAc,CAAC;AAEzG;;GAEG;AACH,MAAM,OAAO,YAAa,SAAQ,YAAY;IAA9C;;QACW,SAAI,GAAa,UAAU,CAAC;QACrC;;WAEG;QAEH,eAAU,GAAG,IAAI,CAAC;QAElB;;WAEG;QACgD,aAAQ,GAAG,KAAK,CAAC;QAE1D,oBAAe,GAAG,KAAK,CAAC;IAqBpC,CAAC;IAnBoB,OAAO;QACxB,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,eAAe;YAAE,OAAO;QAElD,IAAI,CAAC,aAAa,CACd,IAAI,qBAAqB,CAAC,IAAI,EAAE,EAAC,IAAI,EAAE,YAAY,CAAC,eAAe,EAAC,CAAC,CAAC,CAAC;IAC7E,CAAC;IAEkB,SAAS,CAAC,CAAgB;QAC3C,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO;QAE1B,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC;QACvB,4EAA4E;QAC5E,IAAI,CAAC,CAAC,CAAC,gBAAgB,IAAI,aAAa,CAAC,OAAO,CAAC;YAC7C,OAAO,KAAK,aAAa,CAAC,KAAK,EAAE;YACnC,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,IAAI,CAAC,aAAa,CAAC,IAAI,qBAAqB,CACxC,IAAI,EAAE,EAAC,IAAI,EAAE,YAAY,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,EAAC,CAAC,CAAC,CAAC;SACxD;IACH,CAAC;CACF;AA7BC;IAAC,QAAQ,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAC,CAAC;;gDAClD;AAKlB;IAAC,QAAQ,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAC,CAAC;;8CAAkB","sourcesContent":["/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {property} from 'lit/decorators.js';\n\nimport {ListItemLink} from '../../../list/lib/listitemlink/list-item-link.js';\nimport {ARIARole} from '../../../types/aria.js';\nimport {CLOSE_REASON, DefaultCloseMenuEvent, isClosableKey, MenuItem, SELECTION_KEY} from '../shared.js';\n\n/**\n * @fires close-menu {CloseMenuEvent}\n */\nexport class MenuItemLink extends ListItemLink implements MenuItem {\n override role: ARIARole = 'menuitem';\n /**\n * READONLY: self-identifies as a menu item and sets its identifying attribute\n */\n @property({type: Boolean, attribute: 'md-menu-item', reflect: true})\n isMenuItem = true;\n\n /**\n * Keeps the menu open if clicked or keyboard selected.\n */\n @property({type: Boolean, attribute: 'keep-open'}) keepOpen = false;\n\n protected keepOpenOnClick = false;\n\n protected override onClick() {\n if (this.keepOpen || this.keepOpenOnClick) return;\n\n this.dispatchEvent(\n new DefaultCloseMenuEvent(this, {kind: CLOSE_REASON.CLICK_SELECTION}));\n }\n\n protected override onKeydown(e: KeyboardEvent) {\n if (this.keepOpen) return;\n\n const keyCode = e.code;\n // Do not preventDefault on enter or else it will prevent from opening links\n if (!e.defaultPrevented && isClosableKey(keyCode) &&\n keyCode !== SELECTION_KEY.ENTER) {\n e.preventDefault();\n this.dispatchEvent(new DefaultCloseMenuEvent(\n this, {kind: CLOSE_REASON.KEYDOWN, key: keyCode}));\n }\n }\n}\n"]}
@@ -21,6 +21,10 @@ interface MenuItemSelf {
21
21
  * If it is a sub-menu-item, a method that can close the submenu.
22
22
  */
23
23
  close?: () => void;
24
+ /**
25
+ * Focuses the item.
26
+ */
27
+ focus: () => void;
24
28
  }
25
29
  /**
26
30
  * The interface of every menu item interactive with a menu. All menu items
@@ -81,6 +85,18 @@ export declare const DefaultCloseMenuEvent: {
81
85
  export declare class DeactivateItemsEvent extends Event {
82
86
  constructor();
83
87
  }
88
+ /**
89
+ * Requests the typeahead functionality of containing menu be deactivated.
90
+ */
91
+ export declare class DeactivateTypeaheadEvent extends Event {
92
+ constructor();
93
+ }
94
+ /**
95
+ * Requests the typeahead functionality of containing menu be activated.
96
+ */
97
+ export declare class ActivateTypeaheadEvent extends Event {
98
+ constructor();
99
+ }
84
100
  /**
85
101
  * Keys that are used to navigate menus.
86
102
  */
@@ -131,4 +147,14 @@ export declare function isClosableKey(code: string): code is Values<typeof KEYDO
131
147
  * menu item.
132
148
  */
133
149
  export declare function isSelectableKey(code: string): code is Values<typeof SELECTION_KEY>;
150
+ /**
151
+ * Determines whether a target element is contained inside another element's
152
+ * composed tree.
153
+ *
154
+ * @param target The potential contained element.
155
+ * @param container The potential containing element of the target.
156
+ * @returns Whether the target element is contained inside the container's
157
+ * composed subtree
158
+ */
159
+ export declare function isElementInSubtree(target: EventTarget, container: EventTarget): boolean;
134
160
  export {};
@@ -29,6 +29,22 @@ export class DeactivateItemsEvent extends Event {
29
29
  super('deactivate-items', { bubbles: true, composed: true });
30
30
  }
31
31
  }
32
+ /**
33
+ * Requests the typeahead functionality of containing menu be deactivated.
34
+ */
35
+ export class DeactivateTypeaheadEvent extends Event {
36
+ constructor() {
37
+ super('deactivate-typeahead', { bubbles: true, composed: true });
38
+ }
39
+ }
40
+ /**
41
+ * Requests the typeahead functionality of containing menu be activated.
42
+ */
43
+ export class ActivateTypeaheadEvent extends Event {
44
+ constructor() {
45
+ super('activate-typeahead', { bubbles: true, composed: true });
46
+ }
47
+ }
32
48
  /**
33
49
  * Keys that are used to navigate menus.
34
50
  */
@@ -82,4 +98,27 @@ export function isClosableKey(code) {
82
98
  export function isSelectableKey(code) {
83
99
  return Object.values(SELECTION_KEY).some(value => (value === code));
84
100
  }
101
+ /**
102
+ * Determines whether a target element is contained inside another element's
103
+ * composed tree.
104
+ *
105
+ * @param target The potential contained element.
106
+ * @param container The potential containing element of the target.
107
+ * @returns Whether the target element is contained inside the container's
108
+ * composed subtree
109
+ */
110
+ export function isElementInSubtree(target, container) {
111
+ // Dispatch a composed, bubbling event to check its path to see if the
112
+ // newly-focused element is contained in container's subtree
113
+ const focusEv = new Event('md-contains', { bubbles: true, composed: true });
114
+ let composedPath = [];
115
+ const listener = (ev) => {
116
+ composedPath = ev.composedPath();
117
+ };
118
+ container.addEventListener('md-contains', listener);
119
+ target.dispatchEvent(focusEv);
120
+ container.removeEventListener('md-contains', listener);
121
+ const isContained = composedPath.length > 0;
122
+ return isContained;
123
+ }
85
124
  //# sourceMappingURL=shared.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"shared.js","sourceRoot":"","sources":["shared.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA4DH;;;GAGG;AACH,MAAM,OAAO,cAAkD,SAAQ,KAAK;IAE1E,YAAmB,SAAmB,EAAW,MAAS;QACxD,KAAK,CAAC,YAAY,EAAE,EAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAC;QADpC,cAAS,GAAT,SAAS,CAAU;QAAW,WAAM,GAAN,MAAM,CAAG;QAExD,IAAI,CAAC,QAAQ,GAAG,CAAC,SAAS,CAAC,CAAC;IAC9B,CAAC;CACF;AAED;;;GAGG;AACH,2BAA2B;AAC3B,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAA,cAA8B,CAAA,CAAC;AAEpE;;GAEG;AACH,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IAC7C;QACE,KAAK,CAAC,kBAAkB,EAAE,EAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAC;IAC7D,CAAC;CACF;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,EAAE,EAAE,SAAS;IACb,IAAI,EAAE,WAAW;IACjB,KAAK,EAAE,YAAY;IACnB,IAAI,EAAE,WAAW;CACT,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,OAAO;CACN,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,eAAe,EAAE,iBAAiB;IAClC,OAAO,EAAE,SAAS;CACV,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,aAAa,CAAC,KAAK;IAC1B,KAAK,EAAE,aAAa,CAAC,KAAK;CAClB,CAAC;AAIX;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY;IAExC,OAAO,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC;AAC3E,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY;IAE1C,OAAO,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC;AACtE,CAAC","sourcesContent":["/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {ListItem} from '../../list/lib/listitem/list-item.js';\n\n/**\n * Interface specific to menu item and not list item.\n */\ninterface MenuItemSelf {\n /**\n * The visible headline text of the item.\n */\n headline: string;\n /**\n * Whether or not the item is in the selected visual state (focuses on\n * selection).\n */\n active: boolean;\n /**\n * If it is a sub-menu-item, a method that can close the submenu.\n */\n close?: () => void;\n}\n\n/**\n * The interface of every menu item interactive with a menu. All menu items\n * should implement this interface to be compatible with md-menu. Additionally\n * they should have both the `md-menu-item` and `md-list-item` attributes set.\n */\nexport type MenuItem = MenuItemSelf&ListItem;\n\n/**\n * The reason the `close-menu` event was dispatched.\n */\nexport interface Reason {\n kind: string;\n}\n\n/**\n * The click selection reason for the `close-menu` event. The menu was closed\n * because an item was selected via user click.\n */\nexport interface ClickReason extends Reason {\n kind: typeof CLOSE_REASON.CLICK_SELECTION;\n}\n\n/**\n * The keydown reason for the `close-menu` event. The menu was closed\n * because a specific key was pressed. The default closing keys for\n * `md-menu-item` are, Space, Enter or Escape.\n */\nexport interface KeydownReason extends Reason {\n kind: typeof CLOSE_REASON.KEYDOWN;\n key: string;\n}\n\n/**\n * The default menu closing reasons for the material md-menu package.\n */\nexport type DefaultReasons = ClickReason|KeydownReason;\n\n/**\n * The event that closes any parent menus. It is recommended to subclass and\n * dispatch this event rather than creating your own `close-menu` event.\n */\nexport class CloseMenuEvent<T extends Reason = DefaultReasons> extends Event {\n readonly itemPath: MenuItem[];\n constructor(public initiator: MenuItem, readonly reason: T) {\n super('close-menu', {bubbles: true, composed: true});\n this.itemPath = [initiator];\n }\n}\n\n/**\n * The default close menu event used by md-menu. To create your own `close-menu`\n * event, you should subclass the `CloseMenuEvent` instead.\n */\n// tslint:disable-next-line\nexport const DefaultCloseMenuEvent = CloseMenuEvent<DefaultReasons>;\n\n/**\n * The event that requests the parent md-menu to deactivate all other items.\n */\nexport class DeactivateItemsEvent extends Event {\n constructor() {\n super('deactivate-items', {bubbles: true, composed: true});\n }\n}\n\n/**\n * Keys that are used to navigate menus.\n */\nexport const NAVIGABLE_KEY = {\n UP: 'ArrowUp',\n DOWN: 'ArrowDown',\n RIGHT: 'ArrowRight',\n LEFT: 'ArrowLeft',\n} as const;\n\n/**\n * Keys that are used for selection in menus.\n */\nexport const SELECTION_KEY = {\n SPACE: 'Space',\n ENTER: 'Enter',\n} as const;\n\n/**\n * Default close `Reason` kind values.\n */\nexport const CLOSE_REASON = {\n CLICK_SELECTION: 'CLICK_SELECTION',\n KEYDOWN: 'KEYDOWN',\n} as const;\n\n/**\n * Keys that can close menus.\n */\nexport const KEYDOWN_CLOSE_KEYS = {\n ESCAPE: 'Escape',\n SPACE: SELECTION_KEY.SPACE,\n ENTER: SELECTION_KEY.ENTER,\n} as const;\n\ntype Values<T> = T[keyof T];\n\n/**\n * Determines whether the given key code is a key code that should close the\n * menu.\n *\n * @param code The KeyboardEvent code to check.\n * @return Whether or not the key code is in the predetermined list to close the\n * menu.\n */\nexport function isClosableKey(code: string):\n code is Values<typeof KEYDOWN_CLOSE_KEYS> {\n return Object.values(KEYDOWN_CLOSE_KEYS).some(value => (value === code));\n}\n\n/**\n * Determines whether the given key code is a key code that should select a menu\n * item.\n *\n * @param code They KeyboardEvent code to check.\n * @return Whether or not the key code is in the predetermined list to select a\n * menu item.\n */\nexport function isSelectableKey(code: string):\n code is Values<typeof SELECTION_KEY> {\n return Object.values(SELECTION_KEY).some(value => (value === code));\n}\n"]}
1
+ {"version":3,"file":"shared.js","sourceRoot":"","sources":["shared.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {ListItem} from '../../list/lib/listitem/list-item.js';\n\n/**\n * Interface specific to menu item and not list item.\n */\ninterface MenuItemSelf {\n /**\n * The visible headline text of the item.\n */\n headline: string;\n /**\n * Whether or not the item is in the selected visual state (focuses on\n * selection).\n */\n active: boolean;\n /**\n * If it is a sub-menu-item, a method that can close the submenu.\n */\n close?: () => void;\n /**\n * Focuses the item.\n */\n focus: () => void;\n}\n\n/**\n * The interface of every menu item interactive with a menu. All menu items\n * should implement this interface to be compatible with md-menu. Additionally\n * they should have both the `md-menu-item` and `md-list-item` attributes set.\n */\nexport type MenuItem = MenuItemSelf&ListItem;\n\n/**\n * The reason the `close-menu` event was dispatched.\n */\nexport interface Reason {\n kind: string;\n}\n\n/**\n * The click selection reason for the `close-menu` event. The menu was closed\n * because an item was selected via user click.\n */\nexport interface ClickReason extends Reason {\n kind: typeof CLOSE_REASON.CLICK_SELECTION;\n}\n\n/**\n * The keydown reason for the `close-menu` event. The menu was closed\n * because a specific key was pressed. The default closing keys for\n * `md-menu-item` are, Space, Enter or Escape.\n */\nexport interface KeydownReason extends Reason {\n kind: typeof CLOSE_REASON.KEYDOWN;\n key: string;\n}\n\n/**\n * The default menu closing reasons for the material md-menu package.\n */\nexport type DefaultReasons = ClickReason|KeydownReason;\n\n/**\n * The event that closes any parent menus. It is recommended to subclass and\n * dispatch this event rather than creating your own `close-menu` event.\n */\nexport class CloseMenuEvent<T extends Reason = DefaultReasons> extends Event {\n readonly itemPath: MenuItem[];\n constructor(public initiator: MenuItem, readonly reason: T) {\n super('close-menu', {bubbles: true, composed: true});\n this.itemPath = [initiator];\n }\n}\n\n/**\n * The default close menu event used by md-menu. To create your own `close-menu`\n * event, you should subclass the `CloseMenuEvent` instead.\n */\n// tslint:disable-next-line\nexport const DefaultCloseMenuEvent = CloseMenuEvent<DefaultReasons>;\n\n/**\n * The event that requests the parent md-menu to deactivate all other items.\n */\nexport class DeactivateItemsEvent extends Event {\n constructor() {\n super('deactivate-items', {bubbles: true, composed: true});\n }\n}\n\n/**\n * Requests the typeahead functionality of containing menu be deactivated.\n */\nexport class DeactivateTypeaheadEvent extends Event {\n constructor() {\n super('deactivate-typeahead', {bubbles: true, composed: true});\n }\n}\n\n/**\n * Requests the typeahead functionality of containing menu be activated.\n */\nexport class ActivateTypeaheadEvent extends Event {\n constructor() {\n super('activate-typeahead', {bubbles: true, composed: true});\n }\n}\n\n/**\n * Keys that are used to navigate menus.\n */\nexport const NAVIGABLE_KEY = {\n UP: 'ArrowUp',\n DOWN: 'ArrowDown',\n RIGHT: 'ArrowRight',\n LEFT: 'ArrowLeft',\n} as const;\n\n/**\n * Keys that are used for selection in menus.\n */\nexport const SELECTION_KEY = {\n SPACE: 'Space',\n ENTER: 'Enter',\n} as const;\n\n/**\n * Default close `Reason` kind values.\n */\nexport const CLOSE_REASON = {\n CLICK_SELECTION: 'CLICK_SELECTION',\n KEYDOWN: 'KEYDOWN',\n} as const;\n\n/**\n * Keys that can close menus.\n */\nexport const KEYDOWN_CLOSE_KEYS = {\n ESCAPE: 'Escape',\n SPACE: SELECTION_KEY.SPACE,\n ENTER: SELECTION_KEY.ENTER,\n} as const;\n\ntype Values<T> = T[keyof T];\n\n/**\n * Determines whether the given key code is a key code that should close the\n * menu.\n *\n * @param code The KeyboardEvent code to check.\n * @return Whether or not the key code is in the predetermined list to close the\n * menu.\n */\nexport function isClosableKey(code: string):\n code is Values<typeof KEYDOWN_CLOSE_KEYS> {\n return Object.values(KEYDOWN_CLOSE_KEYS).some(value => (value === code));\n}\n\n/**\n * Determines whether the given key code is a key code that should select a menu\n * item.\n *\n * @param code They KeyboardEvent code to check.\n * @return Whether or not the key code is in the predetermined list to select a\n * menu item.\n */\nexport function isSelectableKey(code: string):\n code is Values<typeof SELECTION_KEY> {\n return Object.values(SELECTION_KEY).some(value => (value === code));\n}\n\n/**\n * Determines whether a target element is contained inside another element's\n * composed tree.\n *\n * @param target The potential contained element.\n * @param container The potential containing element of the target.\n * @returns Whether the target element is contained inside the container's\n * composed subtree\n */\nexport function isElementInSubtree(\n target: EventTarget, container: EventTarget) {\n // Dispatch a composed, bubbling event to check its path to see if the\n // newly-focused element is contained in container's subtree\n const focusEv = new Event('md-contains', {bubbles: true, composed: true});\n let composedPath: EventTarget[] = [];\n const listener = (ev: Event) => {\n composedPath = ev.composedPath();\n };\n\n container.addEventListener('md-contains', listener);\n target.dispatchEvent(focusEv);\n container.removeEventListener('md-contains', listener);\n\n const isContained = composedPath.length > 0;\n return isContained;\n}\n"]}
@@ -10,6 +10,10 @@ import { CloseMenuEvent } from '../shared.js';
10
10
  /**
11
11
  * @fires deactivate-items {DeactivateItemsEvent} Requests the parent menu to
12
12
  * deselect other items when a submenu opens
13
+ * @fires deactivate-typeahead {DeactivateItemsEvent} Requests the parent menu
14
+ * to deactivate the typeahead functionality when a submenu opens
15
+ * @fires activate-typeahead {DeactivateItemsEvent} Requests the parent menu to
16
+ * activate the typeahead functionality when a submenu closes
13
17
  */
14
18
  export declare class SubMenuItem extends MenuItemEl {
15
19
  role: ARIARole;
@@ -29,6 +33,10 @@ export declare class SubMenuItem extends MenuItemEl {
29
33
  * The delay between ponterleave and the submenu closing.
30
34
  */
31
35
  hoverCloseDelay: number;
36
+ /**
37
+ * Sets the item in the selected visual state when a submenu is opened.
38
+ */
39
+ selected: boolean;
32
40
  protected menus: Menu[];
33
41
  protected keepOpenOnClick: boolean;
34
42
  protected previousOpenTimeout: number;
@@ -8,13 +8,17 @@ import { html } from 'lit';
8
8
  import { property, queryAssignedElements } from 'lit/decorators.js';
9
9
  import { List } from '../../../list/lib/list.js';
10
10
  import { MenuItemEl } from '../menuitem/menu-item.js';
11
- import { CLOSE_REASON, DeactivateItemsEvent, KEYDOWN_CLOSE_KEYS, NAVIGABLE_KEY, SELECTION_KEY } from '../shared.js';
11
+ import { ActivateTypeaheadEvent, CLOSE_REASON, DeactivateItemsEvent, DeactivateTypeaheadEvent, KEYDOWN_CLOSE_KEYS, NAVIGABLE_KEY, SELECTION_KEY } from '../shared.js';
12
12
  function stopPropagation(e) {
13
13
  e.stopPropagation();
14
14
  }
15
15
  /**
16
16
  * @fires deactivate-items {DeactivateItemsEvent} Requests the parent menu to
17
17
  * deselect other items when a submenu opens
18
+ * @fires deactivate-typeahead {DeactivateItemsEvent} Requests the parent menu
19
+ * to deactivate the typeahead functionality when a submenu opens
20
+ * @fires activate-typeahead {DeactivateItemsEvent} Requests the parent menu to
21
+ * activate the typeahead functionality when a submenu closes
18
22
  */
19
23
  export class SubMenuItem extends MenuItemEl {
20
24
  constructor() {
@@ -36,6 +40,10 @@ export class SubMenuItem extends MenuItemEl {
36
40
  * The delay between ponterleave and the submenu closing.
37
41
  */
38
42
  this.hoverCloseDelay = 400;
43
+ /**
44
+ * Sets the item in the selected visual state when a submenu is opened.
45
+ */
46
+ this.selected = false;
39
47
  this.keepOpenOnClick = true;
40
48
  this.previousOpenTimeout = 0;
41
49
  this.previousCloseTimeout = 0;
@@ -127,17 +135,20 @@ export class SubMenuItem extends MenuItemEl {
127
135
  }
128
136
  onCloseSubmenu(e) {
129
137
  e.itemPath.push(this);
138
+ this.dispatchEvent(new ActivateTypeaheadEvent());
130
139
  // Escape should only close one menu not all of the menus unlike space or
131
140
  // click selection which should close all menus.
132
141
  if (e.reason.kind === CLOSE_REASON.KEYDOWN &&
133
142
  e.reason.key === KEYDOWN_CLOSE_KEYS.ESCAPE) {
134
143
  e.stopPropagation();
135
144
  this.active = true;
145
+ this.selected = false;
136
146
  // It might already be active so manually focus
137
147
  this.listItemRoot.focus();
138
148
  return;
139
149
  }
140
150
  this.active = false;
151
+ this.selected = false;
141
152
  }
142
153
  async onSubMenuKeydown(e) {
143
154
  // Stop propagation so that we don't accidentally close every parent menu.
@@ -180,7 +191,9 @@ export class SubMenuItem extends MenuItemEl {
180
191
  // Deactivate other items. This can be the case if the user has tabbed
181
192
  // around the menu and then mouses over an md-sub-menu.
182
193
  this.dispatchEvent(new DeactivateItemsEvent());
194
+ this.dispatchEvent(new DeactivateTypeaheadEvent());
183
195
  this.active = true;
196
+ this.selected = true;
184
197
  // This is the case of mouse hovering when already opened via keyboard or
185
198
  // vice versa
186
199
  if (menuAlreadyOpen) {
@@ -199,9 +212,11 @@ export class SubMenuItem extends MenuItemEl {
199
212
  const menu = this.submenuEl;
200
213
  if (!menu || !menu.open)
201
214
  return;
215
+ this.dispatchEvent(new ActivateTypeaheadEvent());
202
216
  menu.quick = true;
203
217
  menu.close();
204
218
  this.active = false;
219
+ this.selected = false;
205
220
  menu.addEventListener('closed', onClosed, { once: true });
206
221
  }
207
222
  /**
@@ -259,7 +274,11 @@ __decorate([
259
274
  __metadata("design:type", Object)
260
275
  ], SubMenuItem.prototype, "hoverCloseDelay", void 0);
261
276
  __decorate([
262
- queryAssignedElements({ slot: 'submenu' }),
277
+ property({ type: Boolean, reflect: true }),
278
+ __metadata("design:type", Object)
279
+ ], SubMenuItem.prototype, "selected", void 0);
280
+ __decorate([
281
+ queryAssignedElements({ slot: 'submenu', flatten: true }),
263
282
  __metadata("design:type", Array)
264
283
  ], SubMenuItem.prototype, "menus", void 0);
265
284
  //# sourceMappingURL=sub-menu-item.js.map