material-web-evo 10002.10001.10000

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 (1250) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +9 -0
  3. package/all.d.ts +97 -0
  4. package/all.js +106 -0
  5. package/all.js.map +1 -0
  6. package/button/_elevated-button.scss +6 -0
  7. package/button/_filled-button.scss +6 -0
  8. package/button/_filled-tonal-button.scss +6 -0
  9. package/button/_outlined-button.scss +6 -0
  10. package/button/_text-button.scss +6 -0
  11. package/button/elevated-button.d.ts +37 -0
  12. package/button/elevated-button.js +44 -0
  13. package/button/elevated-button.js.map +1 -0
  14. package/button/filled-button.d.ts +35 -0
  15. package/button/filled-button.js +42 -0
  16. package/button/filled-button.js.map +1 -0
  17. package/button/filled-tonal-button.d.ts +36 -0
  18. package/button/filled-tonal-button.js +43 -0
  19. package/button/filled-tonal-button.js.map +1 -0
  20. package/button/harness.d.ts +13 -0
  21. package/button/harness.js +16 -0
  22. package/button/harness.js.map +1 -0
  23. package/button/internal/_elevated-button.scss +37 -0
  24. package/button/internal/_elevation.scss +69 -0
  25. package/button/internal/_filled-button.scss +37 -0
  26. package/button/internal/_filled-tonal-button.scss +37 -0
  27. package/button/internal/_icon.scss +38 -0
  28. package/button/internal/_outlined-button.scss +87 -0
  29. package/button/internal/_shared.scss +178 -0
  30. package/button/internal/_text-button.scss +41 -0
  31. package/button/internal/_touch-target.scss +23 -0
  32. package/button/internal/button.d.ts +81 -0
  33. package/button/internal/button.js +204 -0
  34. package/button/internal/button.js.map +1 -0
  35. package/button/internal/elevated-button.d.ts +13 -0
  36. package/button/internal/elevated-button.js +17 -0
  37. package/button/internal/elevated-button.js.map +1 -0
  38. package/button/internal/elevated-styles.css +1 -0
  39. package/button/internal/elevated-styles.css.map +1 -0
  40. package/button/internal/elevated-styles.d.ts +1 -0
  41. package/button/internal/elevated-styles.js +10 -0
  42. package/button/internal/elevated-styles.js.map +1 -0
  43. package/button/internal/elevated-styles.scss +10 -0
  44. package/button/internal/filled-button.d.ts +13 -0
  45. package/button/internal/filled-button.js +17 -0
  46. package/button/internal/filled-button.js.map +1 -0
  47. package/button/internal/filled-styles.css +1 -0
  48. package/button/internal/filled-styles.css.map +1 -0
  49. package/button/internal/filled-styles.d.ts +1 -0
  50. package/button/internal/filled-styles.js +10 -0
  51. package/button/internal/filled-styles.js.map +1 -0
  52. package/button/internal/filled-styles.scss +10 -0
  53. package/button/internal/filled-tonal-button.d.ts +13 -0
  54. package/button/internal/filled-tonal-button.js +17 -0
  55. package/button/internal/filled-tonal-button.js.map +1 -0
  56. package/button/internal/filled-tonal-styles.css +1 -0
  57. package/button/internal/filled-tonal-styles.css.map +1 -0
  58. package/button/internal/filled-tonal-styles.d.ts +1 -0
  59. package/button/internal/filled-tonal-styles.js +10 -0
  60. package/button/internal/filled-tonal-styles.js.map +1 -0
  61. package/button/internal/filled-tonal-styles.scss +10 -0
  62. package/button/internal/outlined-button.d.ts +12 -0
  63. package/button/internal/outlined-button.js +16 -0
  64. package/button/internal/outlined-button.js.map +1 -0
  65. package/button/internal/outlined-styles.css +1 -0
  66. package/button/internal/outlined-styles.css.map +1 -0
  67. package/button/internal/outlined-styles.d.ts +1 -0
  68. package/button/internal/outlined-styles.js +10 -0
  69. package/button/internal/outlined-styles.js.map +1 -0
  70. package/button/internal/outlined-styles.scss +10 -0
  71. package/button/internal/shared-elevation-styles.css +1 -0
  72. package/button/internal/shared-elevation-styles.css.map +1 -0
  73. package/button/internal/shared-elevation-styles.d.ts +1 -0
  74. package/button/internal/shared-elevation-styles.js +10 -0
  75. package/button/internal/shared-elevation-styles.js.map +1 -0
  76. package/button/internal/shared-elevation-styles.scss +10 -0
  77. package/button/internal/shared-styles.css +1 -0
  78. package/button/internal/shared-styles.css.map +1 -0
  79. package/button/internal/shared-styles.d.ts +1 -0
  80. package/button/internal/shared-styles.js +10 -0
  81. package/button/internal/shared-styles.js.map +1 -0
  82. package/button/internal/shared-styles.scss +14 -0
  83. package/button/internal/text-button.d.ts +11 -0
  84. package/button/internal/text-button.js +12 -0
  85. package/button/internal/text-button.js.map +1 -0
  86. package/button/internal/text-styles.css +1 -0
  87. package/button/internal/text-styles.css.map +1 -0
  88. package/button/internal/text-styles.d.ts +1 -0
  89. package/button/internal/text-styles.js +10 -0
  90. package/button/internal/text-styles.js.map +1 -0
  91. package/button/internal/text-styles.scss +10 -0
  92. package/button/outlined-button.d.ts +37 -0
  93. package/button/outlined-button.js +39 -0
  94. package/button/outlined-button.js.map +1 -0
  95. package/button/text-button.d.ts +35 -0
  96. package/button/text-button.js +37 -0
  97. package/button/text-button.js.map +1 -0
  98. package/checkbox/_checkbox.scss +6 -0
  99. package/checkbox/checkbox.d.ts +28 -0
  100. package/checkbox/checkbox.js +29 -0
  101. package/checkbox/checkbox.js.map +1 -0
  102. package/checkbox/harness.d.ts +13 -0
  103. package/checkbox/harness.js +16 -0
  104. package/checkbox/harness.js.map +1 -0
  105. package/checkbox/internal/_checkbox.scss +392 -0
  106. package/checkbox/internal/checkbox-styles.css +1 -0
  107. package/checkbox/internal/checkbox-styles.css.map +1 -0
  108. package/checkbox/internal/checkbox-styles.d.ts +1 -0
  109. package/checkbox/internal/checkbox-styles.js +10 -0
  110. package/checkbox/internal/checkbox-styles.js.map +1 -0
  111. package/checkbox/internal/checkbox-styles.scss +10 -0
  112. package/checkbox/internal/checkbox.d.ts +72 -0
  113. package/checkbox/internal/checkbox.js +192 -0
  114. package/checkbox/internal/checkbox.js.map +1 -0
  115. package/chips/_assist-chip.scss +6 -0
  116. package/chips/_filter-chip.scss +6 -0
  117. package/chips/_input-chip.scss +6 -0
  118. package/chips/_suggestion-chip.scss +6 -0
  119. package/chips/assist-chip.d.ts +21 -0
  120. package/chips/assist-chip.js +24 -0
  121. package/chips/assist-chip.js.map +1 -0
  122. package/chips/chip-set.d.ts +21 -0
  123. package/chips/chip-set.js +22 -0
  124. package/chips/chip-set.js.map +1 -0
  125. package/chips/filter-chip.d.ts +21 -0
  126. package/chips/filter-chip.js +32 -0
  127. package/chips/filter-chip.js.map +1 -0
  128. package/chips/harness.d.ts +14 -0
  129. package/chips/harness.js +37 -0
  130. package/chips/harness.js.map +1 -0
  131. package/chips/input-chip.d.ts +21 -0
  132. package/chips/input-chip.js +30 -0
  133. package/chips/input-chip.js.map +1 -0
  134. package/chips/internal/_assist-chip.scss +43 -0
  135. package/chips/internal/_chip-set.scss +12 -0
  136. package/chips/internal/_elevated.scss +70 -0
  137. package/chips/internal/_filter-chip.scss +56 -0
  138. package/chips/internal/_input-chip.scss +83 -0
  139. package/chips/internal/_selectable.scss +78 -0
  140. package/chips/internal/_shared.scss +248 -0
  141. package/chips/internal/_suggestion-chip.scss +43 -0
  142. package/chips/internal/_trailing-icon.scss +81 -0
  143. package/chips/internal/assist-chip.d.ts +24 -0
  144. package/chips/internal/assist-chip.js +79 -0
  145. package/chips/internal/assist-chip.js.map +1 -0
  146. package/chips/internal/assist-styles.css +1 -0
  147. package/chips/internal/assist-styles.css.map +1 -0
  148. package/chips/internal/assist-styles.d.ts +1 -0
  149. package/chips/internal/assist-styles.js +10 -0
  150. package/chips/internal/assist-styles.js.map +1 -0
  151. package/chips/internal/assist-styles.scss +10 -0
  152. package/chips/internal/chip-set-styles.css +1 -0
  153. package/chips/internal/chip-set-styles.css.map +1 -0
  154. package/chips/internal/chip-set-styles.d.ts +1 -0
  155. package/chips/internal/chip-set-styles.js +10 -0
  156. package/chips/internal/chip-set-styles.js.map +1 -0
  157. package/chips/internal/chip-set-styles.scss +10 -0
  158. package/chips/internal/chip-set.d.ts +19 -0
  159. package/chips/internal/chip-set.js +128 -0
  160. package/chips/internal/chip-set.js.map +1 -0
  161. package/chips/internal/chip.d.ts +84 -0
  162. package/chips/internal/chip.js +161 -0
  163. package/chips/internal/chip.js.map +1 -0
  164. package/chips/internal/elevated-styles.css +1 -0
  165. package/chips/internal/elevated-styles.css.map +1 -0
  166. package/chips/internal/elevated-styles.d.ts +1 -0
  167. package/chips/internal/elevated-styles.js +10 -0
  168. package/chips/internal/elevated-styles.js.map +1 -0
  169. package/chips/internal/elevated-styles.scss +10 -0
  170. package/chips/internal/filter-chip.d.ts +39 -0
  171. package/chips/internal/filter-chip.js +124 -0
  172. package/chips/internal/filter-chip.js.map +1 -0
  173. package/chips/internal/filter-styles.css +1 -0
  174. package/chips/internal/filter-styles.css.map +1 -0
  175. package/chips/internal/filter-styles.d.ts +1 -0
  176. package/chips/internal/filter-styles.js +10 -0
  177. package/chips/internal/filter-styles.js.map +1 -0
  178. package/chips/internal/filter-styles.scss +10 -0
  179. package/chips/internal/input-chip.d.ts +31 -0
  180. package/chips/internal/input-chip.js +117 -0
  181. package/chips/internal/input-chip.js.map +1 -0
  182. package/chips/internal/input-styles.css +1 -0
  183. package/chips/internal/input-styles.css.map +1 -0
  184. package/chips/internal/input-styles.d.ts +1 -0
  185. package/chips/internal/input-styles.js +10 -0
  186. package/chips/internal/input-styles.js.map +1 -0
  187. package/chips/internal/input-styles.scss +10 -0
  188. package/chips/internal/multi-action-chip.d.ts +23 -0
  189. package/chips/internal/multi-action-chip.js +99 -0
  190. package/chips/internal/multi-action-chip.js.map +1 -0
  191. package/chips/internal/selectable-styles.css +1 -0
  192. package/chips/internal/selectable-styles.css.map +1 -0
  193. package/chips/internal/selectable-styles.d.ts +1 -0
  194. package/chips/internal/selectable-styles.js +10 -0
  195. package/chips/internal/selectable-styles.js.map +1 -0
  196. package/chips/internal/selectable-styles.scss +10 -0
  197. package/chips/internal/shared-styles.css +1 -0
  198. package/chips/internal/shared-styles.css.map +1 -0
  199. package/chips/internal/shared-styles.d.ts +1 -0
  200. package/chips/internal/shared-styles.js +10 -0
  201. package/chips/internal/shared-styles.js.map +1 -0
  202. package/chips/internal/shared-styles.scss +10 -0
  203. package/chips/internal/suggestion-chip.d.ts +11 -0
  204. package/chips/internal/suggestion-chip.js +14 -0
  205. package/chips/internal/suggestion-chip.js.map +1 -0
  206. package/chips/internal/suggestion-styles.css +1 -0
  207. package/chips/internal/suggestion-styles.css.map +1 -0
  208. package/chips/internal/suggestion-styles.d.ts +1 -0
  209. package/chips/internal/suggestion-styles.js +10 -0
  210. package/chips/internal/suggestion-styles.js.map +1 -0
  211. package/chips/internal/suggestion-styles.scss +10 -0
  212. package/chips/internal/trailing-icon-styles.css +1 -0
  213. package/chips/internal/trailing-icon-styles.css.map +1 -0
  214. package/chips/internal/trailing-icon-styles.d.ts +1 -0
  215. package/chips/internal/trailing-icon-styles.js +10 -0
  216. package/chips/internal/trailing-icon-styles.js.map +1 -0
  217. package/chips/internal/trailing-icon-styles.scss +10 -0
  218. package/chips/internal/trailing-icons.d.ts +16 -0
  219. package/chips/internal/trailing-icons.js +48 -0
  220. package/chips/internal/trailing-icons.js.map +1 -0
  221. package/chips/suggestion-chip.d.ts +21 -0
  222. package/chips/suggestion-chip.js +24 -0
  223. package/chips/suggestion-chip.js.map +1 -0
  224. package/color/_color.scss +197 -0
  225. package/common.d.ts +59 -0
  226. package/common.js +68 -0
  227. package/common.js.map +1 -0
  228. package/dialog/_dialog.scss +6 -0
  229. package/dialog/dialog.d.ts +42 -0
  230. package/dialog/dialog.js +43 -0
  231. package/dialog/dialog.js.map +1 -0
  232. package/dialog/harness.d.ts +13 -0
  233. package/dialog/harness.js +16 -0
  234. package/dialog/harness.js.map +1 -0
  235. package/dialog/internal/_dialog.scss +248 -0
  236. package/dialog/internal/animations.d.ts +47 -0
  237. package/dialog/internal/animations.js +119 -0
  238. package/dialog/internal/animations.js.map +1 -0
  239. package/dialog/internal/dialog-styles.css +1 -0
  240. package/dialog/internal/dialog-styles.css.map +1 -0
  241. package/dialog/internal/dialog-styles.d.ts +1 -0
  242. package/dialog/internal/dialog-styles.js +10 -0
  243. package/dialog/internal/dialog-styles.js.map +1 -0
  244. package/dialog/internal/dialog-styles.scss +10 -0
  245. package/dialog/internal/dialog.d.ts +131 -0
  246. package/dialog/internal/dialog.js +556 -0
  247. package/dialog/internal/dialog.js.map +1 -0
  248. package/divider/_divider.scss +6 -0
  249. package/divider/divider.d.ts +25 -0
  250. package/divider/divider.js +26 -0
  251. package/divider/divider.js.map +1 -0
  252. package/divider/internal/_divider.scss +61 -0
  253. package/divider/internal/divider-styles.css +1 -0
  254. package/divider/internal/divider-styles.css.map +1 -0
  255. package/divider/internal/divider-styles.d.ts +1 -0
  256. package/divider/internal/divider-styles.js +10 -0
  257. package/divider/internal/divider-styles.js.map +1 -0
  258. package/divider/internal/divider-styles.scss +10 -0
  259. package/divider/internal/divider.d.ts +23 -0
  260. package/divider/internal/divider.js +38 -0
  261. package/divider/internal/divider.js.map +1 -0
  262. package/elevation/_elevation.scss +6 -0
  263. package/elevation/elevation.d.ts +23 -0
  264. package/elevation/elevation.js +24 -0
  265. package/elevation/elevation.js.map +1 -0
  266. package/elevation/internal/_elevation.scss +176 -0
  267. package/elevation/internal/elevation-styles.css +1 -0
  268. package/elevation/internal/elevation-styles.css.map +1 -0
  269. package/elevation/internal/elevation-styles.d.ts +1 -0
  270. package/elevation/internal/elevation-styles.js +10 -0
  271. package/elevation/internal/elevation-styles.js.map +1 -0
  272. package/elevation/internal/elevation-styles.scss +10 -0
  273. package/elevation/internal/elevation.d.ts +13 -0
  274. package/elevation/internal/elevation.js +21 -0
  275. package/elevation/internal/elevation.js.map +1 -0
  276. package/fab/_fab.scss +7 -0
  277. package/fab/branded-fab.d.ts +57 -0
  278. package/fab/branded-fab.js +55 -0
  279. package/fab/branded-fab.js.map +1 -0
  280. package/fab/fab.d.ts +44 -0
  281. package/fab/fab.js +45 -0
  282. package/fab/fab.js.map +1 -0
  283. package/fab/harness.d.ts +13 -0
  284. package/fab/harness.js +16 -0
  285. package/fab/harness.js.map +1 -0
  286. package/fab/internal/_fab-branded.scss +37 -0
  287. package/fab/internal/_fab.scss +206 -0
  288. package/fab/internal/_shared.scss +248 -0
  289. package/fab/internal/fab-branded-styles.css +1 -0
  290. package/fab/internal/fab-branded-styles.css.map +1 -0
  291. package/fab/internal/fab-branded-styles.d.ts +1 -0
  292. package/fab/internal/fab-branded-styles.js +10 -0
  293. package/fab/internal/fab-branded-styles.js.map +1 -0
  294. package/fab/internal/fab-branded-styles.scss +10 -0
  295. package/fab/internal/fab-styles.css +1 -0
  296. package/fab/internal/fab-styles.css.map +1 -0
  297. package/fab/internal/fab-styles.d.ts +1 -0
  298. package/fab/internal/fab-styles.js +10 -0
  299. package/fab/internal/fab-styles.js.map +1 -0
  300. package/fab/internal/fab-styles.scss +10 -0
  301. package/fab/internal/fab.d.ts +25 -0
  302. package/fab/internal/fab.js +30 -0
  303. package/fab/internal/fab.js.map +1 -0
  304. package/fab/internal/forced-colors-styles.css +1 -0
  305. package/fab/internal/forced-colors-styles.css.map +1 -0
  306. package/fab/internal/forced-colors-styles.d.ts +1 -0
  307. package/fab/internal/forced-colors-styles.js +10 -0
  308. package/fab/internal/forced-colors-styles.js.map +1 -0
  309. package/fab/internal/forced-colors-styles.scss +29 -0
  310. package/fab/internal/shared-styles.css +1 -0
  311. package/fab/internal/shared-styles.css.map +1 -0
  312. package/fab/internal/shared-styles.d.ts +1 -0
  313. package/fab/internal/shared-styles.js +10 -0
  314. package/fab/internal/shared-styles.js.map +1 -0
  315. package/fab/internal/shared-styles.scss +10 -0
  316. package/fab/internal/shared.d.ts +44 -0
  317. package/fab/internal/shared.js +92 -0
  318. package/fab/internal/shared.js.map +1 -0
  319. package/field/_filled-field.scss +6 -0
  320. package/field/_outlined-field.scss +6 -0
  321. package/field/filled-field.d.ts +20 -0
  322. package/field/filled-field.js +22 -0
  323. package/field/filled-field.js.map +1 -0
  324. package/field/harness.d.ts +16 -0
  325. package/field/harness.js +29 -0
  326. package/field/harness.js.map +1 -0
  327. package/field/internal/_content.scss +208 -0
  328. package/field/internal/_filled-field.scss +208 -0
  329. package/field/internal/_label.scss +102 -0
  330. package/field/internal/_outlined-field.scss +344 -0
  331. package/field/internal/_shared.scss +78 -0
  332. package/field/internal/_supporting-text.scss +61 -0
  333. package/field/internal/field.d.ts +67 -0
  334. package/field/internal/field.js +357 -0
  335. package/field/internal/field.js.map +1 -0
  336. package/field/internal/filled-field.d.ts +13 -0
  337. package/field/internal/filled-field.js +22 -0
  338. package/field/internal/filled-field.js.map +1 -0
  339. package/field/internal/filled-styles.css +1 -0
  340. package/field/internal/filled-styles.css.map +1 -0
  341. package/field/internal/filled-styles.d.ts +1 -0
  342. package/field/internal/filled-styles.js +10 -0
  343. package/field/internal/filled-styles.js.map +1 -0
  344. package/field/internal/filled-styles.scss +8 -0
  345. package/field/internal/outlined-field.d.ts +12 -0
  346. package/field/internal/outlined-field.js +26 -0
  347. package/field/internal/outlined-field.js.map +1 -0
  348. package/field/internal/outlined-styles.css +1 -0
  349. package/field/internal/outlined-styles.css.map +1 -0
  350. package/field/internal/outlined-styles.d.ts +1 -0
  351. package/field/internal/outlined-styles.js +10 -0
  352. package/field/internal/outlined-styles.js.map +1 -0
  353. package/field/internal/outlined-styles.scss +7 -0
  354. package/field/internal/shared-styles.css +1 -0
  355. package/field/internal/shared-styles.css.map +1 -0
  356. package/field/internal/shared-styles.d.ts +1 -0
  357. package/field/internal/shared-styles.js +10 -0
  358. package/field/internal/shared-styles.js.map +1 -0
  359. package/field/internal/shared-styles.scss +8 -0
  360. package/field/outlined-field.d.ts +20 -0
  361. package/field/outlined-field.js +22 -0
  362. package/field/outlined-field.js.map +1 -0
  363. package/focus/_focus-ring.scss +6 -0
  364. package/focus/internal/_focus-ring.scss +113 -0
  365. package/focus/internal/focus-ring-styles.css +1 -0
  366. package/focus/internal/focus-ring-styles.css.map +1 -0
  367. package/focus/internal/focus-ring-styles.d.ts +1 -0
  368. package/focus/internal/focus-ring-styles.js +10 -0
  369. package/focus/internal/focus-ring-styles.js.map +1 -0
  370. package/focus/internal/focus-ring-styles.scss +10 -0
  371. package/focus/internal/focus-ring.d.ts +39 -0
  372. package/focus/internal/focus-ring.js +100 -0
  373. package/focus/internal/focus-ring.js.map +1 -0
  374. package/focus/md-focus-ring.d.ts +21 -0
  375. package/focus/md-focus-ring.js +22 -0
  376. package/focus/md-focus-ring.js.map +1 -0
  377. package/icon/_icon.scss +6 -0
  378. package/icon/icon.d.ts +20 -0
  379. package/icon/icon.js +21 -0
  380. package/icon/icon.js.map +1 -0
  381. package/icon/internal/_icon.scss +76 -0
  382. package/icon/internal/icon-styles.css +1 -0
  383. package/icon/internal/icon-styles.css.map +1 -0
  384. package/icon/internal/icon-styles.d.ts +1 -0
  385. package/icon/internal/icon-styles.js +10 -0
  386. package/icon/internal/icon-styles.js.map +1 -0
  387. package/icon/internal/icon-styles.scss +10 -0
  388. package/icon/internal/icon.d.ts +13 -0
  389. package/icon/internal/icon.js +28 -0
  390. package/icon/internal/icon.js.map +1 -0
  391. package/iconbutton/_filled-icon-button.scss +6 -0
  392. package/iconbutton/_filled-tonal-icon-button.scss +6 -0
  393. package/iconbutton/_icon-button.scss +6 -0
  394. package/iconbutton/_outlined-icon-button.scss +6 -0
  395. package/iconbutton/filled-icon-button.d.ts +39 -0
  396. package/iconbutton/filled-icon-button.js +42 -0
  397. package/iconbutton/filled-icon-button.js.map +1 -0
  398. package/iconbutton/filled-tonal-icon-button.d.ts +39 -0
  399. package/iconbutton/filled-tonal-icon-button.js +42 -0
  400. package/iconbutton/filled-tonal-icon-button.js.map +1 -0
  401. package/iconbutton/harness.d.ts +13 -0
  402. package/iconbutton/harness.js +19 -0
  403. package/iconbutton/harness.js.map +1 -0
  404. package/iconbutton/icon-button.d.ts +38 -0
  405. package/iconbutton/icon-button.js +41 -0
  406. package/iconbutton/icon-button.js.map +1 -0
  407. package/iconbutton/internal/_filled-icon-button.scss +146 -0
  408. package/iconbutton/internal/_filled-tonal-icon-button.scss +146 -0
  409. package/iconbutton/internal/_icon-button.scss +131 -0
  410. package/iconbutton/internal/_outlined-icon-button.scss +157 -0
  411. package/iconbutton/internal/_shared.scss +117 -0
  412. package/iconbutton/internal/filled-styles.css +1 -0
  413. package/iconbutton/internal/filled-styles.css.map +1 -0
  414. package/iconbutton/internal/filled-styles.d.ts +1 -0
  415. package/iconbutton/internal/filled-styles.js +10 -0
  416. package/iconbutton/internal/filled-styles.js.map +1 -0
  417. package/iconbutton/internal/filled-styles.scss +10 -0
  418. package/iconbutton/internal/filled-tonal-styles.css +1 -0
  419. package/iconbutton/internal/filled-tonal-styles.css.map +1 -0
  420. package/iconbutton/internal/filled-tonal-styles.d.ts +1 -0
  421. package/iconbutton/internal/filled-tonal-styles.js +10 -0
  422. package/iconbutton/internal/filled-tonal-styles.js.map +1 -0
  423. package/iconbutton/internal/filled-tonal-styles.scss +10 -0
  424. package/iconbutton/internal/icon-button.d.ts +106 -0
  425. package/iconbutton/internal/icon-button.js +260 -0
  426. package/iconbutton/internal/icon-button.js.map +1 -0
  427. package/iconbutton/internal/outlined-styles.css +1 -0
  428. package/iconbutton/internal/outlined-styles.css.map +1 -0
  429. package/iconbutton/internal/outlined-styles.d.ts +1 -0
  430. package/iconbutton/internal/outlined-styles.js +10 -0
  431. package/iconbutton/internal/outlined-styles.js.map +1 -0
  432. package/iconbutton/internal/outlined-styles.scss +10 -0
  433. package/iconbutton/internal/shared-styles.css +1 -0
  434. package/iconbutton/internal/shared-styles.css.map +1 -0
  435. package/iconbutton/internal/shared-styles.d.ts +1 -0
  436. package/iconbutton/internal/shared-styles.js +10 -0
  437. package/iconbutton/internal/shared-styles.js.map +1 -0
  438. package/iconbutton/internal/shared-styles.scss +10 -0
  439. package/iconbutton/internal/standard-styles.css +1 -0
  440. package/iconbutton/internal/standard-styles.css.map +1 -0
  441. package/iconbutton/internal/standard-styles.d.ts +1 -0
  442. package/iconbutton/internal/standard-styles.js +10 -0
  443. package/iconbutton/internal/standard-styles.js.map +1 -0
  444. package/iconbutton/internal/standard-styles.scss +10 -0
  445. package/iconbutton/outlined-icon-button.d.ts +38 -0
  446. package/iconbutton/outlined-icon-button.js +41 -0
  447. package/iconbutton/outlined-icon-button.js.map +1 -0
  448. package/internal/aria/aria.d.ts +103 -0
  449. package/internal/aria/aria.js +81 -0
  450. package/internal/aria/aria.js.map +1 -0
  451. package/internal/aria/delegate.d.ts +54 -0
  452. package/internal/aria/delegate.js +176 -0
  453. package/internal/aria/delegate.js.map +1 -0
  454. package/internal/controller/attachable-controller.d.ts +114 -0
  455. package/internal/controller/attachable-controller.js +121 -0
  456. package/internal/controller/attachable-controller.js.map +1 -0
  457. package/internal/controller/form-submitter.d.ts +70 -0
  458. package/internal/controller/form-submitter.js +69 -0
  459. package/internal/controller/form-submitter.js.map +1 -0
  460. package/internal/controller/is-rtl.d.ts +14 -0
  461. package/internal/controller/is-rtl.js +18 -0
  462. package/internal/controller/is-rtl.js.map +1 -0
  463. package/internal/controller/string-converter.d.ts +9 -0
  464. package/internal/controller/string-converter.js +14 -0
  465. package/internal/controller/string-converter.js.map +1 -0
  466. package/internal/events/dispatch-hooks.d.ts +85 -0
  467. package/internal/events/dispatch-hooks.js +151 -0
  468. package/internal/events/dispatch-hooks.js.map +1 -0
  469. package/internal/events/form-label-activation.d.ts +55 -0
  470. package/internal/events/form-label-activation.js +96 -0
  471. package/internal/events/form-label-activation.js.map +1 -0
  472. package/internal/events/redispatch-event.d.ts +27 -0
  473. package/internal/events/redispatch-event.js +40 -0
  474. package/internal/events/redispatch-event.js.map +1 -0
  475. package/internal/motion/_animation.scss +33 -0
  476. package/internal/motion/animation.d.ts +80 -0
  477. package/internal/motion/animation.js +101 -0
  478. package/internal/motion/animation.js.map +1 -0
  479. package/internal/sass/_string-ext.scss +195 -0
  480. package/internal/sass/_var.scss +237 -0
  481. package/labs/badge/_badge.scss +6 -0
  482. package/labs/badge/badge.d.ts +19 -0
  483. package/labs/badge/badge.js +20 -0
  484. package/labs/badge/badge.js.map +1 -0
  485. package/labs/badge/internal/_badge.scss +76 -0
  486. package/labs/badge/internal/badge-styles.css +1 -0
  487. package/labs/badge/internal/badge-styles.css.map +1 -0
  488. package/labs/badge/internal/badge-styles.d.ts +1 -0
  489. package/labs/badge/internal/badge-styles.js +10 -0
  490. package/labs/badge/internal/badge-styles.js.map +1 -0
  491. package/labs/badge/internal/badge-styles.scss +10 -0
  492. package/labs/badge/internal/badge.d.ts +13 -0
  493. package/labs/badge/internal/badge.js +28 -0
  494. package/labs/badge/internal/badge.js.map +1 -0
  495. package/labs/behaviors/constraint-validation.d.ts +133 -0
  496. package/labs/behaviors/constraint-validation.js +131 -0
  497. package/labs/behaviors/constraint-validation.js.map +1 -0
  498. package/labs/behaviors/element-internals.d.ts +45 -0
  499. package/labs/behaviors/element-internals.js +46 -0
  500. package/labs/behaviors/element-internals.js.map +1 -0
  501. package/labs/behaviors/focusable.d.ts +39 -0
  502. package/labs/behaviors/focusable.js +87 -0
  503. package/labs/behaviors/focusable.js.map +1 -0
  504. package/labs/behaviors/form-associated.d.ts +199 -0
  505. package/labs/behaviors/form-associated.js +175 -0
  506. package/labs/behaviors/form-associated.js.map +1 -0
  507. package/labs/behaviors/mixin.d.ts +54 -0
  508. package/labs/behaviors/mixin.js +7 -0
  509. package/labs/behaviors/mixin.js.map +1 -0
  510. package/labs/behaviors/on-report-validity.d.ts +71 -0
  511. package/labs/behaviors/on-report-validity.js +289 -0
  512. package/labs/behaviors/on-report-validity.js.map +1 -0
  513. package/labs/behaviors/validators/checkbox-validator.d.ts +35 -0
  514. package/labs/behaviors/validators/checkbox-validator.js +32 -0
  515. package/labs/behaviors/validators/checkbox-validator.js.map +1 -0
  516. package/labs/behaviors/validators/radio-validator.d.ts +38 -0
  517. package/labs/behaviors/validators/radio-validator.js +65 -0
  518. package/labs/behaviors/validators/radio-validator.js.map +1 -0
  519. package/labs/behaviors/validators/select-validator.d.ts +35 -0
  520. package/labs/behaviors/validators/select-validator.js +33 -0
  521. package/labs/behaviors/validators/select-validator.js.map +1 -0
  522. package/labs/behaviors/validators/text-field-validator.d.ts +110 -0
  523. package/labs/behaviors/validators/text-field-validator.js +154 -0
  524. package/labs/behaviors/validators/text-field-validator.js.map +1 -0
  525. package/labs/behaviors/validators/validator.d.ts +96 -0
  526. package/labs/behaviors/validators/validator.js +73 -0
  527. package/labs/behaviors/validators/validator.js.map +1 -0
  528. package/labs/card/_elevated-card.scss +6 -0
  529. package/labs/card/_filled-card.scss +6 -0
  530. package/labs/card/_outlined-card.scss +6 -0
  531. package/labs/card/elevated-card.d.ts +19 -0
  532. package/labs/card/elevated-card.js +21 -0
  533. package/labs/card/elevated-card.js.map +1 -0
  534. package/labs/card/filled-card.d.ts +19 -0
  535. package/labs/card/filled-card.js +21 -0
  536. package/labs/card/filled-card.js.map +1 -0
  537. package/labs/card/internal/_elevated-card.scss +35 -0
  538. package/labs/card/internal/_filled-card.scss +35 -0
  539. package/labs/card/internal/_outlined-card.scss +40 -0
  540. package/labs/card/internal/_shared.scss +62 -0
  541. package/labs/card/internal/card.d.ts +13 -0
  542. package/labs/card/internal/card.js +21 -0
  543. package/labs/card/internal/card.js.map +1 -0
  544. package/labs/card/internal/elevated-styles.css +1 -0
  545. package/labs/card/internal/elevated-styles.css.map +1 -0
  546. package/labs/card/internal/elevated-styles.d.ts +1 -0
  547. package/labs/card/internal/elevated-styles.js +10 -0
  548. package/labs/card/internal/elevated-styles.js.map +1 -0
  549. package/labs/card/internal/elevated-styles.scss +10 -0
  550. package/labs/card/internal/filled-styles.css +1 -0
  551. package/labs/card/internal/filled-styles.css.map +1 -0
  552. package/labs/card/internal/filled-styles.d.ts +1 -0
  553. package/labs/card/internal/filled-styles.js +10 -0
  554. package/labs/card/internal/filled-styles.js.map +1 -0
  555. package/labs/card/internal/filled-styles.scss +10 -0
  556. package/labs/card/internal/outlined-styles.css +1 -0
  557. package/labs/card/internal/outlined-styles.css.map +1 -0
  558. package/labs/card/internal/outlined-styles.d.ts +1 -0
  559. package/labs/card/internal/outlined-styles.js +10 -0
  560. package/labs/card/internal/outlined-styles.js.map +1 -0
  561. package/labs/card/internal/outlined-styles.scss +10 -0
  562. package/labs/card/internal/shared-styles.css +1 -0
  563. package/labs/card/internal/shared-styles.css.map +1 -0
  564. package/labs/card/internal/shared-styles.d.ts +1 -0
  565. package/labs/card/internal/shared-styles.js +10 -0
  566. package/labs/card/internal/shared-styles.js.map +1 -0
  567. package/labs/card/internal/shared-styles.scss +10 -0
  568. package/labs/card/outlined-card.d.ts +19 -0
  569. package/labs/card/outlined-card.js +21 -0
  570. package/labs/card/outlined-card.js.map +1 -0
  571. package/labs/item/internal/_item.scss +99 -0
  572. package/labs/item/internal/item-styles.css +1 -0
  573. package/labs/item/internal/item-styles.css.map +1 -0
  574. package/labs/item/internal/item-styles.d.ts +1 -0
  575. package/labs/item/internal/item-styles.js +10 -0
  576. package/labs/item/internal/item-styles.js.map +1 -0
  577. package/labs/item/internal/item-styles.scss +10 -0
  578. package/labs/item/internal/item.d.ts +22 -0
  579. package/labs/item/internal/item.js +78 -0
  580. package/labs/item/internal/item.js.map +1 -0
  581. package/labs/item/item.d.ts +74 -0
  582. package/labs/item/item.js +75 -0
  583. package/labs/item/item.js.map +1 -0
  584. package/labs/navigationbar/_navigation-bar.scss +6 -0
  585. package/labs/navigationbar/harness.d.ts +19 -0
  586. package/labs/navigationbar/harness.js +29 -0
  587. package/labs/navigationbar/harness.js.map +1 -0
  588. package/labs/navigationbar/internal/_navigation-bar.scss +70 -0
  589. package/labs/navigationbar/internal/constants.d.ts +17 -0
  590. package/labs/navigationbar/internal/constants.js +7 -0
  591. package/labs/navigationbar/internal/constants.js.map +1 -0
  592. package/labs/navigationbar/internal/navigation-bar-styles.css +1 -0
  593. package/labs/navigationbar/internal/navigation-bar-styles.css.map +1 -0
  594. package/labs/navigationbar/internal/navigation-bar-styles.d.ts +1 -0
  595. package/labs/navigationbar/internal/navigation-bar-styles.js +10 -0
  596. package/labs/navigationbar/internal/navigation-bar-styles.js.map +1 -0
  597. package/labs/navigationbar/internal/navigation-bar-styles.scss +10 -0
  598. package/labs/navigationbar/internal/navigation-bar.d.ts +32 -0
  599. package/labs/navigationbar/internal/navigation-bar.js +144 -0
  600. package/labs/navigationbar/internal/navigation-bar.js.map +1 -0
  601. package/labs/navigationbar/internal/state.d.ts +23 -0
  602. package/labs/navigationbar/internal/state.js +7 -0
  603. package/labs/navigationbar/internal/state.js.map +1 -0
  604. package/labs/navigationbar/navigation-bar.d.ts +19 -0
  605. package/labs/navigationbar/navigation-bar.js +20 -0
  606. package/labs/navigationbar/navigation-bar.js.map +1 -0
  607. package/labs/navigationdrawer/_navigation-drawer-modal.scss +6 -0
  608. package/labs/navigationdrawer/_navigation-drawer.scss +6 -0
  609. package/labs/navigationdrawer/internal/_navigation-drawer-modal.scss +110 -0
  610. package/labs/navigationdrawer/internal/_navigation-drawer.scss +97 -0
  611. package/labs/navigationdrawer/internal/_shared.scss +31 -0
  612. package/labs/navigationdrawer/internal/navigation-drawer-modal-styles.css +1 -0
  613. package/labs/navigationdrawer/internal/navigation-drawer-modal-styles.css.map +1 -0
  614. package/labs/navigationdrawer/internal/navigation-drawer-modal-styles.d.ts +1 -0
  615. package/labs/navigationdrawer/internal/navigation-drawer-modal-styles.js +10 -0
  616. package/labs/navigationdrawer/internal/navigation-drawer-modal-styles.js.map +1 -0
  617. package/labs/navigationdrawer/internal/navigation-drawer-modal-styles.scss +10 -0
  618. package/labs/navigationdrawer/internal/navigation-drawer-modal.d.ts +24 -0
  619. package/labs/navigationdrawer/internal/navigation-drawer-modal.js +87 -0
  620. package/labs/navigationdrawer/internal/navigation-drawer-modal.js.map +1 -0
  621. package/labs/navigationdrawer/internal/navigation-drawer-styles.css +1 -0
  622. package/labs/navigationdrawer/internal/navigation-drawer-styles.css.map +1 -0
  623. package/labs/navigationdrawer/internal/navigation-drawer-styles.d.ts +1 -0
  624. package/labs/navigationdrawer/internal/navigation-drawer-styles.js +10 -0
  625. package/labs/navigationdrawer/internal/navigation-drawer-styles.js.map +1 -0
  626. package/labs/navigationdrawer/internal/navigation-drawer-styles.scss +10 -0
  627. package/labs/navigationdrawer/internal/navigation-drawer.d.ts +22 -0
  628. package/labs/navigationdrawer/internal/navigation-drawer.js +70 -0
  629. package/labs/navigationdrawer/internal/navigation-drawer.js.map +1 -0
  630. package/labs/navigationdrawer/internal/shared-styles.css +1 -0
  631. package/labs/navigationdrawer/internal/shared-styles.css.map +1 -0
  632. package/labs/navigationdrawer/internal/shared-styles.d.ts +1 -0
  633. package/labs/navigationdrawer/internal/shared-styles.js +10 -0
  634. package/labs/navigationdrawer/internal/shared-styles.js.map +1 -0
  635. package/labs/navigationdrawer/internal/shared-styles.scss +10 -0
  636. package/labs/navigationdrawer/navigation-drawer-modal.d.ts +18 -0
  637. package/labs/navigationdrawer/navigation-drawer-modal.js +21 -0
  638. package/labs/navigationdrawer/navigation-drawer-modal.js.map +1 -0
  639. package/labs/navigationdrawer/navigation-drawer.d.ts +18 -0
  640. package/labs/navigationdrawer/navigation-drawer.js +21 -0
  641. package/labs/navigationdrawer/navigation-drawer.js.map +1 -0
  642. package/labs/navigationtab/_navigation-tab.scss +6 -0
  643. package/labs/navigationtab/harness.d.ts +13 -0
  644. package/labs/navigationtab/harness.js +16 -0
  645. package/labs/navigationtab/harness.js.map +1 -0
  646. package/labs/navigationtab/internal/_navigation-tab.scss +264 -0
  647. package/labs/navigationtab/internal/navigation-tab-styles.css +1 -0
  648. package/labs/navigationtab/internal/navigation-tab-styles.css.map +1 -0
  649. package/labs/navigationtab/internal/navigation-tab-styles.d.ts +1 -0
  650. package/labs/navigationtab/internal/navigation-tab-styles.js +10 -0
  651. package/labs/navigationtab/internal/navigation-tab-styles.js.map +1 -0
  652. package/labs/navigationtab/internal/navigation-tab-styles.scss +10 -0
  653. package/labs/navigationtab/internal/navigation-tab.d.ts +38 -0
  654. package/labs/navigationtab/internal/navigation-tab.js +132 -0
  655. package/labs/navigationtab/internal/navigation-tab.js.map +1 -0
  656. package/labs/navigationtab/internal/state.d.ts +18 -0
  657. package/labs/navigationtab/internal/state.js +7 -0
  658. package/labs/navigationtab/internal/state.js.map +1 -0
  659. package/labs/navigationtab/navigation-tab.d.ts +19 -0
  660. package/labs/navigationtab/navigation-tab.js +20 -0
  661. package/labs/navigationtab/navigation-tab.js.map +1 -0
  662. package/labs/segmentedbutton/internal/_outlined-segmented-button.scss +42 -0
  663. package/labs/segmentedbutton/internal/_shared.scss +361 -0
  664. package/labs/segmentedbutton/internal/outlined-segmented-button.d.ts +24 -0
  665. package/labs/segmentedbutton/internal/outlined-segmented-button.js +22 -0
  666. package/labs/segmentedbutton/internal/outlined-segmented-button.js.map +1 -0
  667. package/labs/segmentedbutton/internal/outlined-styles.css +1 -0
  668. package/labs/segmentedbutton/internal/outlined-styles.css.map +1 -0
  669. package/labs/segmentedbutton/internal/outlined-styles.d.ts +1 -0
  670. package/labs/segmentedbutton/internal/outlined-styles.js +10 -0
  671. package/labs/segmentedbutton/internal/outlined-styles.js.map +1 -0
  672. package/labs/segmentedbutton/internal/outlined-styles.scss +10 -0
  673. package/labs/segmentedbutton/internal/segmented-button.d.ts +49 -0
  674. package/labs/segmentedbutton/internal/segmented-button.js +170 -0
  675. package/labs/segmentedbutton/internal/segmented-button.js.map +1 -0
  676. package/labs/segmentedbutton/internal/shared-styles.css +1 -0
  677. package/labs/segmentedbutton/internal/shared-styles.css.map +1 -0
  678. package/labs/segmentedbutton/internal/shared-styles.d.ts +1 -0
  679. package/labs/segmentedbutton/internal/shared-styles.js +10 -0
  680. package/labs/segmentedbutton/internal/shared-styles.js.map +1 -0
  681. package/labs/segmentedbutton/internal/shared-styles.scss +10 -0
  682. package/labs/segmentedbutton/outlined-segmented-button.d.ts +21 -0
  683. package/labs/segmentedbutton/outlined-segmented-button.js +23 -0
  684. package/labs/segmentedbutton/outlined-segmented-button.js.map +1 -0
  685. package/labs/segmentedbuttonset/internal/_outlined-segmented-button-set.scss +40 -0
  686. package/labs/segmentedbuttonset/internal/_shared.scss +33 -0
  687. package/labs/segmentedbuttonset/internal/outlined-segmented-button-set.d.ts +14 -0
  688. package/labs/segmentedbuttonset/internal/outlined-segmented-button-set.js +18 -0
  689. package/labs/segmentedbuttonset/internal/outlined-segmented-button-set.js.map +1 -0
  690. package/labs/segmentedbuttonset/internal/outlined-styles.css +1 -0
  691. package/labs/segmentedbuttonset/internal/outlined-styles.css.map +1 -0
  692. package/labs/segmentedbuttonset/internal/outlined-styles.d.ts +1 -0
  693. package/labs/segmentedbuttonset/internal/outlined-styles.js +10 -0
  694. package/labs/segmentedbuttonset/internal/outlined-styles.js.map +1 -0
  695. package/labs/segmentedbuttonset/internal/outlined-styles.scss +10 -0
  696. package/labs/segmentedbuttonset/internal/segmented-button-set.d.ts +33 -0
  697. package/labs/segmentedbuttonset/internal/segmented-button-set.js +112 -0
  698. package/labs/segmentedbuttonset/internal/segmented-button-set.js.map +1 -0
  699. package/labs/segmentedbuttonset/internal/shared-styles.css +1 -0
  700. package/labs/segmentedbuttonset/internal/shared-styles.css.map +1 -0
  701. package/labs/segmentedbuttonset/internal/shared-styles.d.ts +1 -0
  702. package/labs/segmentedbuttonset/internal/shared-styles.js +10 -0
  703. package/labs/segmentedbuttonset/internal/shared-styles.js.map +1 -0
  704. package/labs/segmentedbuttonset/internal/shared-styles.scss +10 -0
  705. package/labs/segmentedbuttonset/outlined-segmented-button-set.d.ts +21 -0
  706. package/labs/segmentedbuttonset/outlined-segmented-button-set.js +23 -0
  707. package/labs/segmentedbuttonset/outlined-segmented-button-set.js.map +1 -0
  708. package/list/_list-item.scss +6 -0
  709. package/list/_list.scss +6 -0
  710. package/list/harness.d.ts +45 -0
  711. package/list/harness.js +49 -0
  712. package/list/harness.js.map +1 -0
  713. package/list/internal/_list.scss +43 -0
  714. package/list/internal/list-controller.d.ts +114 -0
  715. package/list/internal/list-controller.js +186 -0
  716. package/list/internal/list-controller.js.map +1 -0
  717. package/list/internal/list-navigation-helpers.d.ts +136 -0
  718. package/list/internal/list-navigation-helpers.js +230 -0
  719. package/list/internal/list-navigation-helpers.js.map +1 -0
  720. package/list/internal/list-styles.css +1 -0
  721. package/list/internal/list-styles.css.map +1 -0
  722. package/list/internal/list-styles.d.ts +1 -0
  723. package/list/internal/list-styles.js +10 -0
  724. package/list/internal/list-styles.js.map +1 -0
  725. package/list/internal/list-styles.scss +10 -0
  726. package/list/internal/list.d.ts +44 -0
  727. package/list/internal/list.js +71 -0
  728. package/list/internal/list.js.map +1 -0
  729. package/list/internal/listitem/_list-item.scss +163 -0
  730. package/list/internal/listitem/harness.d.ts +27 -0
  731. package/list/internal/listitem/harness.js +25 -0
  732. package/list/internal/listitem/harness.js.map +1 -0
  733. package/list/internal/listitem/list-item-styles.css +1 -0
  734. package/list/internal/listitem/list-item-styles.css.map +1 -0
  735. package/list/internal/listitem/list-item-styles.d.ts +1 -0
  736. package/list/internal/listitem/list-item-styles.js +10 -0
  737. package/list/internal/listitem/list-item-styles.js.map +1 -0
  738. package/list/internal/listitem/list-item-styles.scss +10 -0
  739. package/list/internal/listitem/list-item.d.ts +80 -0
  740. package/list/internal/listitem/list-item.js +192 -0
  741. package/list/internal/listitem/list-item.js.map +1 -0
  742. package/list/list-item.d.ts +54 -0
  743. package/list/list-item.js +54 -0
  744. package/list/list-item.js.map +1 -0
  745. package/list/list.d.ts +34 -0
  746. package/list/list.js +35 -0
  747. package/list/list.js.map +1 -0
  748. package/menu/_menu-item.scss +6 -0
  749. package/menu/_menu.scss +6 -0
  750. package/menu/harness.d.ts +21 -0
  751. package/menu/harness.js +38 -0
  752. package/menu/harness.js.map +1 -0
  753. package/menu/internal/_menu.scss +143 -0
  754. package/menu/internal/controllers/menuItemController.d.ts +126 -0
  755. package/menu/internal/controllers/menuItemController.js +138 -0
  756. package/menu/internal/controllers/menuItemController.js.map +1 -0
  757. package/menu/internal/controllers/shared.d.ts +229 -0
  758. package/menu/internal/controllers/shared.js +137 -0
  759. package/menu/internal/controllers/shared.js.map +1 -0
  760. package/menu/internal/controllers/surfacePositionController.d.ts +174 -0
  761. package/menu/internal/controllers/surfacePositionController.js +394 -0
  762. package/menu/internal/controllers/surfacePositionController.js.map +1 -0
  763. package/menu/internal/controllers/typeaheadController.d.ts +157 -0
  764. package/menu/internal/controllers/typeaheadController.js +259 -0
  765. package/menu/internal/controllers/typeaheadController.js.map +1 -0
  766. package/menu/internal/menu-styles.css +1 -0
  767. package/menu/internal/menu-styles.css.map +1 -0
  768. package/menu/internal/menu-styles.d.ts +1 -0
  769. package/menu/internal/menu-styles.js +10 -0
  770. package/menu/internal/menu-styles.js.map +1 -0
  771. package/menu/internal/menu-styles.scss +10 -0
  772. package/menu/internal/menu.d.ts +317 -0
  773. package/menu/internal/menu.js +914 -0
  774. package/menu/internal/menu.js.map +1 -0
  775. package/menu/internal/menuitem/_menu-item.scss +180 -0
  776. package/menu/internal/menuitem/harness.d.ts +13 -0
  777. package/menu/internal/menuitem/harness.js +12 -0
  778. package/menu/internal/menuitem/harness.js.map +1 -0
  779. package/menu/internal/menuitem/menu-item-styles.css +1 -0
  780. package/menu/internal/menuitem/menu-item-styles.css.map +1 -0
  781. package/menu/internal/menuitem/menu-item-styles.d.ts +1 -0
  782. package/menu/internal/menuitem/menu-item-styles.js +10 -0
  783. package/menu/internal/menuitem/menu-item-styles.js.map +1 -0
  784. package/menu/internal/menuitem/menu-item-styles.scss +10 -0
  785. package/menu/internal/menuitem/menu-item.d.ts +85 -0
  786. package/menu/internal/menuitem/menu-item.js +211 -0
  787. package/menu/internal/menuitem/menu-item.js.map +1 -0
  788. package/menu/internal/submenu/_sub-menu.scss +12 -0
  789. package/menu/internal/submenu/sub-menu-styles.css +1 -0
  790. package/menu/internal/submenu/sub-menu-styles.css.map +1 -0
  791. package/menu/internal/submenu/sub-menu-styles.d.ts +1 -0
  792. package/menu/internal/submenu/sub-menu-styles.js +10 -0
  793. package/menu/internal/submenu/sub-menu-styles.js.map +1 -0
  794. package/menu/internal/submenu/sub-menu-styles.scss +10 -0
  795. package/menu/internal/submenu/sub-menu.d.ts +102 -0
  796. package/menu/internal/submenu/sub-menu.js +364 -0
  797. package/menu/internal/submenu/sub-menu.js.map +1 -0
  798. package/menu/internal/types.d.ts +23 -0
  799. package/menu/internal/types.js +7 -0
  800. package/menu/internal/types.js.map +1 -0
  801. package/menu/menu-item.d.ts +32 -0
  802. package/menu/menu-item.js +31 -0
  803. package/menu/menu-item.js.map +1 -0
  804. package/menu/menu.d.ts +68 -0
  805. package/menu/menu.js +67 -0
  806. package/menu/menu.js.map +1 -0
  807. package/menu/sub-menu.d.ts +63 -0
  808. package/menu/sub-menu.js +64 -0
  809. package/menu/sub-menu.js.map +1 -0
  810. package/migrations/v2/query-selector-aria.d.ts +22 -0
  811. package/migrations/v2/query-selector-aria.js +30 -0
  812. package/migrations/v2/query-selector-aria.js.map +1 -0
  813. package/package.json +184 -0
  814. package/progress/_circular-progress.scss +6 -0
  815. package/progress/_linear-progress.scss +6 -0
  816. package/progress/circular-progress.d.ts +28 -0
  817. package/progress/circular-progress.js +29 -0
  818. package/progress/circular-progress.js.map +1 -0
  819. package/progress/harness.d.ts +20 -0
  820. package/progress/harness.js +25 -0
  821. package/progress/harness.js.map +1 -0
  822. package/progress/internal/_circular-progress.scss +287 -0
  823. package/progress/internal/_linear-progress.scss +335 -0
  824. package/progress/internal/circular-progress-styles.css +1 -0
  825. package/progress/internal/circular-progress-styles.css.map +1 -0
  826. package/progress/internal/circular-progress-styles.d.ts +1 -0
  827. package/progress/internal/circular-progress-styles.js +10 -0
  828. package/progress/internal/circular-progress-styles.js.map +1 -0
  829. package/progress/internal/circular-progress-styles.scss +8 -0
  830. package/progress/internal/circular-progress.d.ts +14 -0
  831. package/progress/internal/circular-progress.js +50 -0
  832. package/progress/internal/circular-progress.js.map +1 -0
  833. package/progress/internal/linear-progress-styles.css +1 -0
  834. package/progress/internal/linear-progress-styles.css.map +1 -0
  835. package/progress/internal/linear-progress-styles.d.ts +1 -0
  836. package/progress/internal/linear-progress-styles.js +10 -0
  837. package/progress/internal/linear-progress-styles.js.map +1 -0
  838. package/progress/internal/linear-progress-styles.scss +8 -0
  839. package/progress/internal/linear-progress.d.ts +17 -0
  840. package/progress/internal/linear-progress.js +54 -0
  841. package/progress/internal/linear-progress.js.map +1 -0
  842. package/progress/internal/progress.d.ts +36 -0
  843. package/progress/internal/progress.js +71 -0
  844. package/progress/internal/progress.js.map +1 -0
  845. package/progress/linear-progress.d.ts +27 -0
  846. package/progress/linear-progress.js +28 -0
  847. package/progress/linear-progress.js.map +1 -0
  848. package/radio/_radio.scss +6 -0
  849. package/radio/harness.d.ts +13 -0
  850. package/radio/harness.js +16 -0
  851. package/radio/harness.js.map +1 -0
  852. package/radio/internal/_radio.scss +203 -0
  853. package/radio/internal/radio-styles.css +1 -0
  854. package/radio/internal/radio-styles.css.map +1 -0
  855. package/radio/internal/radio-styles.d.ts +1 -0
  856. package/radio/internal/radio-styles.js +10 -0
  857. package/radio/internal/radio-styles.js.map +1 -0
  858. package/radio/internal/radio-styles.scss +10 -0
  859. package/radio/internal/radio.d.ts +55 -0
  860. package/radio/internal/radio.js +172 -0
  861. package/radio/internal/radio.js.map +1 -0
  862. package/radio/internal/single-selection-controller.d.ts +80 -0
  863. package/radio/internal/single-selection-controller.js +199 -0
  864. package/radio/internal/single-selection-controller.js.map +1 -0
  865. package/radio/radio.d.ts +31 -0
  866. package/radio/radio.js +32 -0
  867. package/radio/radio.js.map +1 -0
  868. package/ripple/_ripple.scss +6 -0
  869. package/ripple/internal/_ripple.scss +92 -0
  870. package/ripple/internal/ripple-styles.css +1 -0
  871. package/ripple/internal/ripple-styles.css.map +1 -0
  872. package/ripple/internal/ripple-styles.d.ts +1 -0
  873. package/ripple/internal/ripple-styles.js +10 -0
  874. package/ripple/internal/ripple-styles.js.map +1 -0
  875. package/ripple/internal/ripple-styles.scss +10 -0
  876. package/ripple/internal/ripple.d.ts +76 -0
  877. package/ripple/internal/ripple.js +423 -0
  878. package/ripple/internal/ripple.js.map +1 -0
  879. package/ripple/ripple.d.ts +28 -0
  880. package/ripple/ripple.js +29 -0
  881. package/ripple/ripple.js.map +1 -0
  882. package/select/_filled-select.scss +6 -0
  883. package/select/_outlined-select.scss +6 -0
  884. package/select/filled-select.d.ts +42 -0
  885. package/select/filled-select.js +44 -0
  886. package/select/filled-select.js.map +1 -0
  887. package/select/harness.d.ts +25 -0
  888. package/select/harness.js +58 -0
  889. package/select/harness.js.map +1 -0
  890. package/select/internal/_filled-select.scss +191 -0
  891. package/select/internal/_outlined-select.scss +164 -0
  892. package/select/internal/_shared.scss +102 -0
  893. package/select/internal/filled-select-styles.css +1 -0
  894. package/select/internal/filled-select-styles.css.map +1 -0
  895. package/select/internal/filled-select-styles.d.ts +1 -0
  896. package/select/internal/filled-select-styles.js +10 -0
  897. package/select/internal/filled-select-styles.js.map +1 -0
  898. package/select/internal/filled-select-styles.scss +10 -0
  899. package/select/internal/filled-select.d.ts +10 -0
  900. package/select/internal/filled-select.js +16 -0
  901. package/select/internal/filled-select.js.map +1 -0
  902. package/select/internal/outlined-select-styles.css +1 -0
  903. package/select/internal/outlined-select-styles.css.map +1 -0
  904. package/select/internal/outlined-select-styles.d.ts +1 -0
  905. package/select/internal/outlined-select-styles.js +10 -0
  906. package/select/internal/outlined-select-styles.js.map +1 -0
  907. package/select/internal/outlined-select-styles.scss +10 -0
  908. package/select/internal/outlined-select.d.ts +10 -0
  909. package/select/internal/outlined-select.js +16 -0
  910. package/select/internal/outlined-select.js.map +1 -0
  911. package/select/internal/select.d.ts +269 -0
  912. package/select/internal/select.js +758 -0
  913. package/select/internal/select.js.map +1 -0
  914. package/select/internal/selectoption/harness.d.ts +11 -0
  915. package/select/internal/selectoption/harness.js +12 -0
  916. package/select/internal/selectoption/harness.js.map +1 -0
  917. package/select/internal/selectoption/select-option.d.ts +112 -0
  918. package/select/internal/selectoption/select-option.js +196 -0
  919. package/select/internal/selectoption/select-option.js.map +1 -0
  920. package/select/internal/selectoption/selectOptionController.d.ts +71 -0
  921. package/select/internal/selectoption/selectOptionController.js +115 -0
  922. package/select/internal/selectoption/selectOptionController.js.map +1 -0
  923. package/select/internal/shared-styles.css +1 -0
  924. package/select/internal/shared-styles.css.map +1 -0
  925. package/select/internal/shared-styles.d.ts +1 -0
  926. package/select/internal/shared-styles.js +10 -0
  927. package/select/internal/shared-styles.js.map +1 -0
  928. package/select/internal/shared-styles.scss +10 -0
  929. package/select/internal/shared.d.ts +18 -0
  930. package/select/internal/shared.js +23 -0
  931. package/select/internal/shared.js.map +1 -0
  932. package/select/outlined-select.d.ts +42 -0
  933. package/select/outlined-select.js +44 -0
  934. package/select/outlined-select.js.map +1 -0
  935. package/select/select-option.d.ts +46 -0
  936. package/select/select-option.js +46 -0
  937. package/select/select-option.js.map +1 -0
  938. package/slider/_slider.scss +6 -0
  939. package/slider/harness.d.ts +21 -0
  940. package/slider/harness.js +70 -0
  941. package/slider/harness.js.map +1 -0
  942. package/slider/internal/_slider.scss +519 -0
  943. package/slider/internal/forced-colors-styles.css +1 -0
  944. package/slider/internal/forced-colors-styles.css.map +1 -0
  945. package/slider/internal/forced-colors-styles.d.ts +1 -0
  946. package/slider/internal/forced-colors-styles.js +10 -0
  947. package/slider/internal/forced-colors-styles.js.map +1 -0
  948. package/slider/internal/forced-colors-styles.scss +88 -0
  949. package/slider/internal/slider-styles.css +1 -0
  950. package/slider/internal/slider-styles.css.map +1 -0
  951. package/slider/internal/slider-styles.d.ts +1 -0
  952. package/slider/internal/slider-styles.js +10 -0
  953. package/slider/internal/slider-styles.js.map +1 -0
  954. package/slider/internal/slider-styles.scss +8 -0
  955. package/slider/internal/slider.d.ts +178 -0
  956. package/slider/internal/slider.js +714 -0
  957. package/slider/internal/slider.js.map +1 -0
  958. package/slider/slider.d.ts +32 -0
  959. package/slider/slider.js +34 -0
  960. package/slider/slider.js.map +1 -0
  961. package/switch/_switch.scss +6 -0
  962. package/switch/harness.d.ts +13 -0
  963. package/switch/harness.js +16 -0
  964. package/switch/harness.js.map +1 -0
  965. package/switch/internal/_handle.scss +183 -0
  966. package/switch/internal/_icon.scss +119 -0
  967. package/switch/internal/_switch.scss +101 -0
  968. package/switch/internal/_track.scss +124 -0
  969. package/switch/internal/switch-styles.css +1 -0
  970. package/switch/internal/switch-styles.css.map +1 -0
  971. package/switch/internal/switch-styles.d.ts +1 -0
  972. package/switch/internal/switch-styles.js +10 -0
  973. package/switch/internal/switch-styles.js.map +1 -0
  974. package/switch/internal/switch-styles.scss +10 -0
  975. package/switch/internal/switch.d.ts +75 -0
  976. package/switch/internal/switch.js +219 -0
  977. package/switch/internal/switch.js.map +1 -0
  978. package/switch/switch.d.ts +25 -0
  979. package/switch/switch.js +26 -0
  980. package/switch/switch.js.map +1 -0
  981. package/tabs/_primary-tab.scss +6 -0
  982. package/tabs/_secondary-tab.scss +6 -0
  983. package/tabs/harness.d.ts +23 -0
  984. package/tabs/harness.js +51 -0
  985. package/tabs/harness.js.map +1 -0
  986. package/tabs/internal/_primary-tab.scss +46 -0
  987. package/tabs/internal/_secondary-tab.scss +37 -0
  988. package/tabs/internal/_tab.scss +199 -0
  989. package/tabs/internal/_tabs.scss +47 -0
  990. package/tabs/internal/primary-tab-styles.css +1 -0
  991. package/tabs/internal/primary-tab-styles.css.map +1 -0
  992. package/tabs/internal/primary-tab-styles.d.ts +1 -0
  993. package/tabs/internal/primary-tab-styles.js +10 -0
  994. package/tabs/internal/primary-tab-styles.js.map +1 -0
  995. package/tabs/internal/primary-tab-styles.scss +10 -0
  996. package/tabs/internal/primary-tab.d.ts +18 -0
  997. package/tabs/internal/primary-tab.js +30 -0
  998. package/tabs/internal/primary-tab.js.map +1 -0
  999. package/tabs/internal/secondary-tab-styles.css +1 -0
  1000. package/tabs/internal/secondary-tab-styles.css.map +1 -0
  1001. package/tabs/internal/secondary-tab-styles.d.ts +1 -0
  1002. package/tabs/internal/secondary-tab-styles.js +10 -0
  1003. package/tabs/internal/secondary-tab-styles.js.map +1 -0
  1004. package/tabs/internal/secondary-tab-styles.scss +10 -0
  1005. package/tabs/internal/secondary-tab.d.ts +12 -0
  1006. package/tabs/internal/secondary-tab.js +16 -0
  1007. package/tabs/internal/secondary-tab.js.map +1 -0
  1008. package/tabs/internal/tab-styles.css +1 -0
  1009. package/tabs/internal/tab-styles.css.map +1 -0
  1010. package/tabs/internal/tab-styles.d.ts +1 -0
  1011. package/tabs/internal/tab-styles.js +10 -0
  1012. package/tabs/internal/tab-styles.js.map +1 -0
  1013. package/tabs/internal/tab-styles.scss +10 -0
  1014. package/tabs/internal/tab.d.ts +65 -0
  1015. package/tabs/internal/tab.js +204 -0
  1016. package/tabs/internal/tab.js.map +1 -0
  1017. package/tabs/internal/tabs-styles.css +1 -0
  1018. package/tabs/internal/tabs-styles.css.map +1 -0
  1019. package/tabs/internal/tabs-styles.d.ts +1 -0
  1020. package/tabs/internal/tabs-styles.js +10 -0
  1021. package/tabs/internal/tabs-styles.js.map +1 -0
  1022. package/tabs/internal/tabs-styles.scss +10 -0
  1023. package/tabs/internal/tabs.d.ts +78 -0
  1024. package/tabs/internal/tabs.js +291 -0
  1025. package/tabs/internal/tabs.js.map +1 -0
  1026. package/tabs/primary-tab.d.ts +21 -0
  1027. package/tabs/primary-tab.js +24 -0
  1028. package/tabs/primary-tab.js.map +1 -0
  1029. package/tabs/secondary-tab.d.ts +21 -0
  1030. package/tabs/secondary-tab.js +24 -0
  1031. package/tabs/secondary-tab.js.map +1 -0
  1032. package/tabs/tabs.d.ts +21 -0
  1033. package/tabs/tabs.js +23 -0
  1034. package/tabs/tabs.js.map +1 -0
  1035. package/testing/harness.d.ts +371 -0
  1036. package/testing/harness.js +737 -0
  1037. package/testing/harness.js.map +1 -0
  1038. package/testing/transform-pseudo-classes.d.ts +39 -0
  1039. package/testing/transform-pseudo-classes.js +172 -0
  1040. package/testing/transform-pseudo-classes.js.map +1 -0
  1041. package/textfield/_filled-text-field.scss +6 -0
  1042. package/textfield/_outlined-text-field.scss +6 -0
  1043. package/textfield/filled-text-field.d.ts +23 -0
  1044. package/textfield/filled-text-field.js +28 -0
  1045. package/textfield/filled-text-field.js.map +1 -0
  1046. package/textfield/harness.d.ts +51 -0
  1047. package/textfield/harness.js +112 -0
  1048. package/textfield/harness.js.map +1 -0
  1049. package/textfield/internal/_filled-text-field.scss +154 -0
  1050. package/textfield/internal/_icon.scss +36 -0
  1051. package/textfield/internal/_input.scss +91 -0
  1052. package/textfield/internal/_outlined-text-field.scss +134 -0
  1053. package/textfield/internal/_shared.scss +49 -0
  1054. package/textfield/internal/filled-styles.css +1 -0
  1055. package/textfield/internal/filled-styles.css.map +1 -0
  1056. package/textfield/internal/filled-styles.d.ts +1 -0
  1057. package/textfield/internal/filled-styles.js +10 -0
  1058. package/textfield/internal/filled-styles.js.map +1 -0
  1059. package/textfield/internal/filled-styles.scss +10 -0
  1060. package/textfield/internal/filled-text-field.d.ts +13 -0
  1061. package/textfield/internal/filled-text-field.js +18 -0
  1062. package/textfield/internal/filled-text-field.js.map +1 -0
  1063. package/textfield/internal/outlined-styles.css +1 -0
  1064. package/textfield/internal/outlined-styles.css.map +1 -0
  1065. package/textfield/internal/outlined-styles.d.ts +1 -0
  1066. package/textfield/internal/outlined-styles.js +10 -0
  1067. package/textfield/internal/outlined-styles.js.map +1 -0
  1068. package/textfield/internal/outlined-styles.scss +10 -0
  1069. package/textfield/internal/outlined-text-field.d.ts +13 -0
  1070. package/textfield/internal/outlined-text-field.js +18 -0
  1071. package/textfield/internal/outlined-text-field.js.map +1 -0
  1072. package/textfield/internal/shared-styles.css +1 -0
  1073. package/textfield/internal/shared-styles.css.map +1 -0
  1074. package/textfield/internal/shared-styles.d.ts +1 -0
  1075. package/textfield/internal/shared-styles.js +10 -0
  1076. package/textfield/internal/shared-styles.js.map +1 -0
  1077. package/textfield/internal/shared-styles.scss +10 -0
  1078. package/textfield/internal/text-field.d.ts +338 -0
  1079. package/textfield/internal/text-field.js +724 -0
  1080. package/textfield/internal/text-field.js.map +1 -0
  1081. package/textfield/outlined-text-field.d.ts +23 -0
  1082. package/textfield/outlined-text-field.js +28 -0
  1083. package/textfield/outlined-text-field.js.map +1 -0
  1084. package/tokens/_index.scss +66 -0
  1085. package/tokens/_md-comp-assist-chip.scss +153 -0
  1086. package/tokens/_md-comp-badge.scss +39 -0
  1087. package/tokens/_md-comp-checkbox.scss +156 -0
  1088. package/tokens/_md-comp-circular-progress.scss +79 -0
  1089. package/tokens/_md-comp-dialog.scss +112 -0
  1090. package/tokens/_md-comp-divider.scss +43 -0
  1091. package/tokens/_md-comp-elevated-button.scss +143 -0
  1092. package/tokens/_md-comp-elevated-card.scss +80 -0
  1093. package/tokens/_md-comp-elevation.scss +48 -0
  1094. package/tokens/_md-comp-fab-branded.scss +155 -0
  1095. package/tokens/_md-comp-fab.scss +296 -0
  1096. package/tokens/_md-comp-filled-button.scss +143 -0
  1097. package/tokens/_md-comp-filled-card.scss +80 -0
  1098. package/tokens/_md-comp-filled-field.scss +293 -0
  1099. package/tokens/_md-comp-filled-icon-button.scss +119 -0
  1100. package/tokens/_md-comp-filled-select.scss +198 -0
  1101. package/tokens/_md-comp-filled-text-field.scss +200 -0
  1102. package/tokens/_md-comp-filled-tonal-button.scss +143 -0
  1103. package/tokens/_md-comp-filled-tonal-icon-button.scss +123 -0
  1104. package/tokens/_md-comp-filter-chip.scss +265 -0
  1105. package/tokens/_md-comp-focus-ring.scss +78 -0
  1106. package/tokens/_md-comp-full-screen-dialog.scss +25 -0
  1107. package/tokens/_md-comp-icon-button.scss +94 -0
  1108. package/tokens/_md-comp-icon.scss +46 -0
  1109. package/tokens/_md-comp-input-chip.scss +247 -0
  1110. package/tokens/_md-comp-item.scss +88 -0
  1111. package/tokens/_md-comp-linear-progress.scss +64 -0
  1112. package/tokens/_md-comp-list-item.scss +173 -0
  1113. package/tokens/_md-comp-list.scss +44 -0
  1114. package/tokens/_md-comp-menu-item.scss +125 -0
  1115. package/tokens/_md-comp-menu.scss +59 -0
  1116. package/tokens/_md-comp-navigation-bar.scss +44 -0
  1117. package/tokens/_md-comp-navigation-drawer.scss +44 -0
  1118. package/tokens/_md-comp-outlined-button.scss +139 -0
  1119. package/tokens/_md-comp-outlined-card.scss +86 -0
  1120. package/tokens/_md-comp-outlined-field.scss +268 -0
  1121. package/tokens/_md-comp-outlined-icon-button.scss +117 -0
  1122. package/tokens/_md-comp-outlined-segmented-button.scss +123 -0
  1123. package/tokens/_md-comp-outlined-select.scss +186 -0
  1124. package/tokens/_md-comp-outlined-text-field.scss +187 -0
  1125. package/tokens/_md-comp-primary-tab.scss +160 -0
  1126. package/tokens/_md-comp-radio.scss +86 -0
  1127. package/tokens/_md-comp-ripple.scss +48 -0
  1128. package/tokens/_md-comp-secondary-tab.scss +158 -0
  1129. package/tokens/_md-comp-slider.scss +117 -0
  1130. package/tokens/_md-comp-suggestion-chip.scss +157 -0
  1131. package/tokens/_md-comp-switch.scss +187 -0
  1132. package/tokens/_md-comp-test-table.scss +43 -0
  1133. package/tokens/_md-comp-text-button.scss +132 -0
  1134. package/tokens/_md-ref-palette.scss +112 -0
  1135. package/tokens/_md-ref-typeface.scss +46 -0
  1136. package/tokens/_md-sys-color.scss +119 -0
  1137. package/tokens/_md-sys-elevation.scss +31 -0
  1138. package/tokens/_md-sys-motion.scss +12 -0
  1139. package/tokens/_md-sys-shape.scss +102 -0
  1140. package/tokens/_md-sys-state.scss +12 -0
  1141. package/tokens/_md-sys-typescale.scss +149 -0
  1142. package/tokens/internal/_shape.scss +93 -0
  1143. package/tokens/internal/_validate.scss +109 -0
  1144. package/tokens/v0_192/_index.scss +107 -0
  1145. package/tokens/v0_192/_md-comp-assist-chip.scss +111 -0
  1146. package/tokens/v0_192/_md-comp-badge.scss +61 -0
  1147. package/tokens/v0_192/_md-comp-banner.scss +76 -0
  1148. package/tokens/v0_192/_md-comp-bottom-app-bar.scss +36 -0
  1149. package/tokens/v0_192/_md-comp-carousel-item.scss +66 -0
  1150. package/tokens/v0_192/_md-comp-checkbox.scss +129 -0
  1151. package/tokens/v0_192/_md-comp-circular-progress-indicator.scss +41 -0
  1152. package/tokens/v0_192/_md-comp-data-table.scss +99 -0
  1153. package/tokens/v0_192/_md-comp-date-input-modal.scss +90 -0
  1154. package/tokens/v0_192/_md-comp-date-picker-docked.scss +247 -0
  1155. package/tokens/v0_192/_md-comp-date-picker-modal.scss +306 -0
  1156. package/tokens/v0_192/_md-comp-dialog.scss +124 -0
  1157. package/tokens/v0_192/_md-comp-divider.scss +28 -0
  1158. package/tokens/v0_192/_md-comp-elevated-button.scss +92 -0
  1159. package/tokens/v0_192/_md-comp-elevated-card.scss +60 -0
  1160. package/tokens/v0_192/_md-comp-extended-fab-branded.scss +89 -0
  1161. package/tokens/v0_192/_md-comp-extended-fab-primary.scss +97 -0
  1162. package/tokens/v0_192/_md-comp-extended-fab-secondary.scss +98 -0
  1163. package/tokens/v0_192/_md-comp-extended-fab-surface.scss +93 -0
  1164. package/tokens/v0_192/_md-comp-extended-fab-tertiary.scss +98 -0
  1165. package/tokens/v0_192/_md-comp-fab-branded-large.scss +63 -0
  1166. package/tokens/v0_192/_md-comp-fab-branded.scss +63 -0
  1167. package/tokens/v0_192/_md-comp-fab-primary-large.scss +68 -0
  1168. package/tokens/v0_192/_md-comp-fab-primary-small.scss +68 -0
  1169. package/tokens/v0_192/_md-comp-fab-primary.scss +68 -0
  1170. package/tokens/v0_192/_md-comp-fab-secondary-large.scss +69 -0
  1171. package/tokens/v0_192/_md-comp-fab-secondary-small.scss +69 -0
  1172. package/tokens/v0_192/_md-comp-fab-secondary.scss +69 -0
  1173. package/tokens/v0_192/_md-comp-fab-surface-large.scss +67 -0
  1174. package/tokens/v0_192/_md-comp-fab-surface-small.scss +67 -0
  1175. package/tokens/v0_192/_md-comp-fab-surface.scss +67 -0
  1176. package/tokens/v0_192/_md-comp-fab-tertiary-large.scss +69 -0
  1177. package/tokens/v0_192/_md-comp-fab-tertiary-small.scss +69 -0
  1178. package/tokens/v0_192/_md-comp-fab-tertiary.scss +69 -0
  1179. package/tokens/v0_192/_md-comp-filled-autocomplete.scss +239 -0
  1180. package/tokens/v0_192/_md-comp-filled-button.scss +92 -0
  1181. package/tokens/v0_192/_md-comp-filled-card.scss +62 -0
  1182. package/tokens/v0_192/_md-comp-filled-icon-button.scss +83 -0
  1183. package/tokens/v0_192/_md-comp-filled-menu-button.scss +101 -0
  1184. package/tokens/v0_192/_md-comp-filled-select.scss +273 -0
  1185. package/tokens/v0_192/_md-comp-filled-text-field.scss +193 -0
  1186. package/tokens/v0_192/_md-comp-filled-tonal-button.scss +102 -0
  1187. package/tokens/v0_192/_md-comp-filled-tonal-icon-button.scss +90 -0
  1188. package/tokens/v0_192/_md-comp-filter-chip.scss +210 -0
  1189. package/tokens/v0_192/_md-comp-full-screen-dialog.scss +114 -0
  1190. package/tokens/v0_192/_md-comp-icon-button.scss +74 -0
  1191. package/tokens/v0_192/_md-comp-input-chip.scss +187 -0
  1192. package/tokens/v0_192/_md-comp-linear-progress-indicator.scss +43 -0
  1193. package/tokens/v0_192/_md-comp-list.scss +255 -0
  1194. package/tokens/v0_192/_md-comp-menu.scss +44 -0
  1195. package/tokens/v0_192/_md-comp-navigation-bar.scss +115 -0
  1196. package/tokens/v0_192/_md-comp-navigation-drawer.scss +165 -0
  1197. package/tokens/v0_192/_md-comp-navigation-rail.scss +119 -0
  1198. package/tokens/v0_192/_md-comp-outlined-autocomplete.scss +229 -0
  1199. package/tokens/v0_192/_md-comp-outlined-button.scss +87 -0
  1200. package/tokens/v0_192/_md-comp-outlined-card.scss +66 -0
  1201. package/tokens/v0_192/_md-comp-outlined-icon-button.scss +83 -0
  1202. package/tokens/v0_192/_md-comp-outlined-menu-button.scss +97 -0
  1203. package/tokens/v0_192/_md-comp-outlined-segmented-button.scss +115 -0
  1204. package/tokens/v0_192/_md-comp-outlined-select.scss +263 -0
  1205. package/tokens/v0_192/_md-comp-outlined-text-field.scss +174 -0
  1206. package/tokens/v0_192/_md-comp-plain-tooltip.scss +58 -0
  1207. package/tokens/v0_192/_md-comp-primary-navigation-tab.scss +124 -0
  1208. package/tokens/v0_192/_md-comp-radio-button.scss +71 -0
  1209. package/tokens/v0_192/_md-comp-rich-tooltip.scss +122 -0
  1210. package/tokens/v0_192/_md-comp-scrim.scss +28 -0
  1211. package/tokens/v0_192/_md-comp-search-bar.scss +100 -0
  1212. package/tokens/v0_192/_md-comp-search-view.scss +94 -0
  1213. package/tokens/v0_192/_md-comp-secondary-navigation-tab.scss +87 -0
  1214. package/tokens/v0_192/_md-comp-sheet-bottom.scss +46 -0
  1215. package/tokens/v0_192/_md-comp-sheet-floating.scss +35 -0
  1216. package/tokens/v0_192/_md-comp-sheet-side.scss +94 -0
  1217. package/tokens/v0_192/_md-comp-slider.scss +118 -0
  1218. package/tokens/v0_192/_md-comp-snackbar.scss +130 -0
  1219. package/tokens/v0_192/_md-comp-standard-menu-button.scss +101 -0
  1220. package/tokens/v0_192/_md-comp-suggestion-chip.scss +127 -0
  1221. package/tokens/v0_192/_md-comp-switch.scss +141 -0
  1222. package/tokens/v0_192/_md-comp-text-button.scss +80 -0
  1223. package/tokens/v0_192/_md-comp-time-input.scss +220 -0
  1224. package/tokens/v0_192/_md-comp-time-picker.scss +267 -0
  1225. package/tokens/v0_192/_md-comp-top-app-bar-large.scss +64 -0
  1226. package/tokens/v0_192/_md-comp-top-app-bar-medium.scss +64 -0
  1227. package/tokens/v0_192/_md-comp-top-app-bar-small-centered.scss +71 -0
  1228. package/tokens/v0_192/_md-comp-top-app-bar-small.scss +67 -0
  1229. package/tokens/v0_192/_md-ref-palette.scss +109 -0
  1230. package/tokens/v0_192/_md-ref-typeface.scss +23 -0
  1231. package/tokens/v0_192/_md-sys-color.scss +135 -0
  1232. package/tokens/v0_192/_md-sys-elevation.scss +24 -0
  1233. package/tokens/v0_192/_md-sys-motion.scss +55 -0
  1234. package/tokens/v0_192/_md-sys-shape.scss +33 -0
  1235. package/tokens/v0_192/_md-sys-state.scss +22 -0
  1236. package/tokens/v0_192/_md-sys-typescale.scss +286 -0
  1237. package/tokens/v0_192/index.test.css +1 -0
  1238. package/tokens/v0_192/index.test.css.map +1 -0
  1239. package/tokens/v0_192/index.test.scss +584 -0
  1240. package/tokens/v0_192/lib.test.css +1 -0
  1241. package/tokens/v0_192/lib.test.css.map +1 -0
  1242. package/tokens/v0_192/lib.test.scss +663 -0
  1243. package/typography/_typeface.scss +49 -0
  1244. package/typography/_typescale.scss +157 -0
  1245. package/typography/md-typescale-styles.css +1 -0
  1246. package/typography/md-typescale-styles.css.map +1 -0
  1247. package/typography/md-typescale-styles.d.ts +1 -0
  1248. package/typography/md-typescale-styles.js +10 -0
  1249. package/typography/md-typescale-styles.js.map +1 -0
  1250. package/typography/md-typescale-styles.scss +11 -0
@@ -0,0 +1,914 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2023 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { __decorate } from "tslib";
7
+ import '../../elevation/elevation.js';
8
+ import '../../focus/md-focus-ring.js';
9
+ import { LitElement, html, isServer, nothing } from 'lit';
10
+ import { property, query, queryAssignedElements, state } from 'lit/decorators.js';
11
+ import { classMap } from 'lit/directives/class-map.js';
12
+ import { styleMap } from 'lit/directives/style-map.js';
13
+ import { EASING, createAnimationSignal } from '../../internal/motion/animation.js';
14
+ import { ListController, NavigableKeys, } from '../../list/internal/list-controller.js';
15
+ import { getActiveItem, getFirstActivatableItem, getLastActivatableItem, } from '../../list/internal/list-navigation-helpers.js';
16
+ import { FocusState, isClosableKey, isElementInSubtree, } from './controllers/shared.js';
17
+ import { Corner, SurfacePositionController, } from './controllers/surfacePositionController.js';
18
+ import { TypeaheadController } from './controllers/typeaheadController.js';
19
+ export { Corner } from './controllers/surfacePositionController.js';
20
+ /**
21
+ * The default value for the typeahead buffer time in Milliseconds.
22
+ */
23
+ export const DEFAULT_TYPEAHEAD_BUFFER_TIME = 200;
24
+ const submenuNavKeys = new Set([
25
+ NavigableKeys.ArrowDown,
26
+ NavigableKeys.ArrowUp,
27
+ NavigableKeys.Home,
28
+ NavigableKeys.End,
29
+ ]);
30
+ const menuNavKeys = new Set([
31
+ NavigableKeys.ArrowLeft,
32
+ NavigableKeys.ArrowRight,
33
+ ...submenuNavKeys,
34
+ ]);
35
+ /**
36
+ * Gets the currently focused element on the page.
37
+ *
38
+ * @param activeDoc The document or shadowroot from which to start the search.
39
+ * Defaults to `window.document`
40
+ * @return Returns the currently deeply focused element or `null` if none.
41
+ */
42
+ function getFocusedElement(activeDoc = document) {
43
+ let activeEl = activeDoc.activeElement;
44
+ // Check for activeElement in the case that an element with a shadow root host
45
+ // is currently focused.
46
+ while (activeEl && activeEl?.shadowRoot?.activeElement) {
47
+ activeEl = activeEl.shadowRoot.activeElement;
48
+ }
49
+ return activeEl;
50
+ }
51
+ /**
52
+ * @fires opening {Event} Fired before the opening animation begins
53
+ * @fires opened {Event} Fired once the menu is open, after any animations
54
+ * @fires closing {Event} Fired before the closing animation begins
55
+ * @fires closed {Event} Fired once the menu is closed, after any animations
56
+ */
57
+ export class Menu extends LitElement {
58
+ /**
59
+ * Whether the menu is animating upwards or downwards when opening. This is
60
+ * helpful for calculating some animation calculations.
61
+ */
62
+ get openDirection() {
63
+ const menuCornerBlock = this.menuCorner.split('-')[0];
64
+ return menuCornerBlock === 'start' ? 'DOWN' : 'UP';
65
+ }
66
+ /**
67
+ * The element which the menu should align to. If `anchor` is set to a
68
+ * non-empty idref string, then `anchorEl` will resolve to the element with
69
+ * the given id in the same root node. Otherwise, `null`.
70
+ */
71
+ get anchorElement() {
72
+ if (this.anchor) {
73
+ return this.getRootNode().querySelector(`#${this.anchor}`);
74
+ }
75
+ return this.currentAnchorElement;
76
+ }
77
+ set anchorElement(element) {
78
+ this.currentAnchorElement = element;
79
+ this.requestUpdate('anchorElement');
80
+ }
81
+ constructor() {
82
+ super();
83
+ /**
84
+ * The ID of the element in the same root node in which the menu should align
85
+ * to. Overrides setting `anchorElement = elementReference`.
86
+ *
87
+ * __NOTE__: anchor or anchorElement must either be an HTMLElement or resolve
88
+ * to an HTMLElement in order for menu to open.
89
+ */
90
+ this.anchor = '';
91
+ /**
92
+ * Whether the positioning algorithm should calculate relative to the parent
93
+ * of the anchor element (`absolute`), relative to the window (`fixed`), or
94
+ * relative to the document (`document`). `popover` will use the popover API
95
+ * to render the menu in the top-layer. If your browser does not support the
96
+ * popover API, it will fall back to `fixed`.
97
+ *
98
+ * __Examples for `position = 'fixed'`:__
99
+ *
100
+ * - If there is no `position:relative` in the given parent tree and the
101
+ * surface is `position:absolute`
102
+ * - If the surface is `position:fixed`
103
+ * - If the surface is in the "top layer"
104
+ * - The anchor and the surface do not share a common `position:relative`
105
+ * ancestor
106
+ *
107
+ * When using `positioning=fixed`, in most cases, the menu should position
108
+ * itself above most other `position:absolute` or `position:fixed` elements
109
+ * when placed inside of them. e.g. using a menu inside of an `md-dialog`.
110
+ *
111
+ * __NOTE__: Fixed menus will not scroll with the page and will be fixed to
112
+ * the window instead.
113
+ *
114
+ * __Examples for `position = 'document'`:__
115
+ *
116
+ * - There is no parent that creates a relative positioning context e.g.
117
+ * `position: relative`, `position: absolute`, `transform: translate(x, y)`,
118
+ * etc.
119
+ * - You put the effort into hoisting the menu to the top of the DOM like the
120
+ * end of the `<body>` to render over everything or in a top-layer.
121
+ * - You are reusing a single `md-menu` element that dynamically renders
122
+ * content.
123
+ *
124
+ * __Examples for `position = 'popover'`:__
125
+ *
126
+ * - Your browser supports `popover`.
127
+ * - Most cases. Once popover is in browsers, this will become the default.
128
+ */
129
+ this.positioning = 'absolute';
130
+ /**
131
+ * Skips the opening and closing animations.
132
+ */
133
+ this.quick = false;
134
+ /**
135
+ * Displays overflow content like a submenu. Not required in most cases when
136
+ * using `positioning="popover"`.
137
+ *
138
+ * __NOTE__: This may cause adverse effects if you set
139
+ * `md-menu {max-height:...}`
140
+ * and have items overflowing items in the "y" direction.
141
+ */
142
+ this.hasOverflow = false;
143
+ /**
144
+ * Opens the menu and makes it visible. Alternative to the `.show()` and
145
+ * `.close()` methods
146
+ */
147
+ this.open = false;
148
+ /**
149
+ * Offsets the menu's inline alignment from the anchor by the given number in
150
+ * pixels. This value is direction aware and will follow the LTR / RTL
151
+ * direction.
152
+ *
153
+ * e.g. LTR: positive -> right, negative -> left
154
+ * RTL: positive -> left, negative -> right
155
+ */
156
+ this.xOffset = 0;
157
+ /**
158
+ * Offsets the menu's block alignment from the anchor by the given number in
159
+ * pixels.
160
+ *
161
+ * e.g. positive -> down, negative -> up
162
+ */
163
+ this.yOffset = 0;
164
+ /**
165
+ * Disable the `flip` behavior that usually happens on the horizontal axis
166
+ * when the surface would render outside the viewport.
167
+ */
168
+ this.noHorizontalFlip = false;
169
+ /**
170
+ * Disable the `flip` behavior that usually happens on the vertical axis when
171
+ * the surface would render outside the viewport.
172
+ */
173
+ this.noVerticalFlip = false;
174
+ /**
175
+ * The max time between the keystrokes of the typeahead menu behavior before
176
+ * it clears the typeahead buffer.
177
+ */
178
+ this.typeaheadDelay = DEFAULT_TYPEAHEAD_BUFFER_TIME;
179
+ /**
180
+ * The corner of the anchor which to align the menu in the standard logical
181
+ * property style of <block>-<inline> e.g. `'end-start'`.
182
+ *
183
+ * NOTE: This value may not be respected by the menu positioning algorithm
184
+ * if the menu would render outisde the viewport.
185
+ * Use `no-horizontal-flip` or `no-vertical-flip` to force the usage of the value
186
+ */
187
+ this.anchorCorner = Corner.END_START;
188
+ /**
189
+ * The corner of the menu which to align the anchor in the standard logical
190
+ * property style of <block>-<inline> e.g. `'start-start'`.
191
+ *
192
+ * NOTE: This value may not be respected by the menu positioning algorithm
193
+ * if the menu would render outisde the viewport.
194
+ * Use `no-horizontal-flip` or `no-vertical-flip` to force the usage of the value
195
+ */
196
+ this.menuCorner = Corner.START_START;
197
+ /**
198
+ * Keeps the user clicks outside the menu.
199
+ *
200
+ * NOTE: clicking outside may still cause focusout to close the menu so see
201
+ * `stayOpenOnFocusout`.
202
+ */
203
+ this.stayOpenOnOutsideClick = false;
204
+ /**
205
+ * Keeps the menu open when focus leaves the menu's composed subtree.
206
+ *
207
+ * NOTE: Focusout behavior will stop propagation of the focusout event. Set
208
+ * this property to true to opt-out of menu's focusout handling altogether.
209
+ */
210
+ this.stayOpenOnFocusout = false;
211
+ /**
212
+ * After closing, does not restore focus to the last focused element before
213
+ * the menu was opened.
214
+ */
215
+ this.skipRestoreFocus = false;
216
+ /**
217
+ * The element that should be focused by default once opened.
218
+ *
219
+ * NOTE: When setting default focus to 'LIST_ROOT', remember to change
220
+ * `tabindex` to `0` and change md-menu's display to something other than
221
+ * `display: contents` when necessary.
222
+ */
223
+ this.defaultFocus = FocusState.FIRST_ITEM;
224
+ /**
225
+ * Turns off navigation wrapping. By default, navigating past the end of the
226
+ * menu items will wrap focus back to the beginning and vice versa. Use this
227
+ * for ARIA patterns that do not wrap focus, like combobox.
228
+ */
229
+ this.noNavigationWrap = false;
230
+ this.typeaheadActive = true;
231
+ /**
232
+ * Whether or not the current menu is a submenu and should not handle specific
233
+ * navigation keys.
234
+ *
235
+ * @export
236
+ */
237
+ this.isSubmenu = false;
238
+ /**
239
+ * The event path of the last window pointerdown event.
240
+ */
241
+ this.pointerPath = [];
242
+ /**
243
+ * Whether or not the menu is repositoining due to window / document resize
244
+ */
245
+ this.isRepositioning = false;
246
+ this.openCloseAnimationSignal = createAnimationSignal();
247
+ this.listController = new ListController({
248
+ isItem: (maybeItem) => {
249
+ return maybeItem.hasAttribute('md-menu-item');
250
+ },
251
+ getPossibleItems: () => this.slotItems,
252
+ isRtl: () => getComputedStyle(this).direction === 'rtl',
253
+ deactivateItem: (item) => {
254
+ item.selected = false;
255
+ item.tabIndex = -1;
256
+ },
257
+ activateItem: (item) => {
258
+ item.selected = true;
259
+ item.tabIndex = 0;
260
+ },
261
+ isNavigableKey: (key) => {
262
+ if (!this.isSubmenu) {
263
+ return menuNavKeys.has(key);
264
+ }
265
+ const isRtl = getComputedStyle(this).direction === 'rtl';
266
+ // we want md-submenu to handle the submenu's left/right arrow exit
267
+ // key so it can close the menu instead of navigate the list.
268
+ // Therefore we need to include all keys but left/right arrow close
269
+ // key
270
+ const arrowOpen = isRtl
271
+ ? NavigableKeys.ArrowLeft
272
+ : NavigableKeys.ArrowRight;
273
+ if (key === arrowOpen) {
274
+ return true;
275
+ }
276
+ return submenuNavKeys.has(key);
277
+ },
278
+ wrapNavigation: () => !this.noNavigationWrap,
279
+ });
280
+ /**
281
+ * The element that was focused before the menu opened.
282
+ */
283
+ this.lastFocusedElement = null;
284
+ /**
285
+ * Handles typeahead navigation through the menu.
286
+ */
287
+ this.typeaheadController = new TypeaheadController(() => {
288
+ return {
289
+ getItems: () => this.items,
290
+ typeaheadBufferTime: this.typeaheadDelay,
291
+ active: this.typeaheadActive,
292
+ };
293
+ });
294
+ this.currentAnchorElement = null;
295
+ this.internals =
296
+ // Cast needed for closure
297
+ this.attachInternals();
298
+ /**
299
+ * Handles positioning the surface and aligning it to the anchor as well as
300
+ * keeping it in the viewport.
301
+ */
302
+ this.menuPositionController = new SurfacePositionController(this, () => {
303
+ return {
304
+ anchorCorner: this.anchorCorner,
305
+ surfaceCorner: this.menuCorner,
306
+ surfaceEl: this.surfaceEl,
307
+ anchorEl: this.anchorElement,
308
+ positioning: this.positioning === 'popover' ? 'document' : this.positioning,
309
+ isOpen: this.open,
310
+ xOffset: this.xOffset,
311
+ yOffset: this.yOffset,
312
+ disableBlockFlip: this.noVerticalFlip,
313
+ disableInlineFlip: this.noHorizontalFlip,
314
+ onOpen: this.onOpened,
315
+ beforeClose: this.beforeClose,
316
+ onClose: this.onClosed,
317
+ // We can't resize components that have overflow like menus with
318
+ // submenus because the overflow-y will show menu items / content
319
+ // outside the bounds of the menu. Popover API fixes this because each
320
+ // submenu is hoisted to the top-layer and are not considered overflow
321
+ // content.
322
+ repositionStrategy: this.hasOverflow && this.positioning !== 'popover'
323
+ ? 'move'
324
+ : 'resize',
325
+ };
326
+ });
327
+ this.onWindowResize = () => {
328
+ if (this.isRepositioning ||
329
+ (this.positioning !== 'document' &&
330
+ this.positioning !== 'fixed' &&
331
+ this.positioning !== 'popover')) {
332
+ return;
333
+ }
334
+ this.isRepositioning = true;
335
+ this.reposition();
336
+ this.isRepositioning = false;
337
+ };
338
+ this.handleFocusout = async (event) => {
339
+ const anchorEl = this.anchorElement;
340
+ // Do not close if we focused out by clicking on the anchor element. We
341
+ // can't assume anchor buttons can be the related target because of iOS does
342
+ // not focus buttons.
343
+ if (this.stayOpenOnFocusout ||
344
+ !this.open ||
345
+ this.pointerPath.includes(anchorEl)) {
346
+ return;
347
+ }
348
+ if (event.relatedTarget) {
349
+ // Don't close the menu if we are switching focus between menu,
350
+ // md-menu-item, and md-list or if the anchor was click focused, but check
351
+ // if length of pointerPath is 0 because that means something was at least
352
+ // clicked (shift+tab case).
353
+ if (isElementInSubtree(event.relatedTarget, this) ||
354
+ (this.pointerPath.length !== 0 &&
355
+ isElementInSubtree(event.relatedTarget, anchorEl))) {
356
+ return;
357
+ }
358
+ }
359
+ else if (this.pointerPath.includes(this)) {
360
+ // If menu tabindex == -1 and the user clicks on the menu or a divider, we
361
+ // want to keep the menu open.
362
+ return;
363
+ }
364
+ const oldRestoreFocus = this.skipRestoreFocus;
365
+ // allow focus to continue to the next focused object rather than returning
366
+ this.skipRestoreFocus = true;
367
+ this.close();
368
+ // await for close
369
+ await this.updateComplete;
370
+ // return to previous behavior
371
+ this.skipRestoreFocus = oldRestoreFocus;
372
+ };
373
+ /**
374
+ * Saves the last focused element focuses the new element based on
375
+ * `defaultFocus`, and animates open.
376
+ */
377
+ this.onOpened = async () => {
378
+ this.lastFocusedElement = getFocusedElement();
379
+ const items = this.items;
380
+ const activeItemRecord = getActiveItem(items);
381
+ if (activeItemRecord && this.defaultFocus !== FocusState.NONE) {
382
+ activeItemRecord.item.tabIndex = -1;
383
+ }
384
+ let animationAborted = !this.quick;
385
+ if (this.quick) {
386
+ this.dispatchEvent(new Event('opening'));
387
+ }
388
+ else {
389
+ animationAborted = !!(await this.animateOpen());
390
+ }
391
+ // This must come after the opening animation or else it may focus one of
392
+ // the items before the animation has begun and causes the list to slide
393
+ // (block-padding-of-the-menu)px at the end of the animation
394
+ switch (this.defaultFocus) {
395
+ case FocusState.FIRST_ITEM:
396
+ const first = getFirstActivatableItem(items);
397
+ if (first) {
398
+ first.tabIndex = 0;
399
+ first.focus();
400
+ await first.updateComplete;
401
+ }
402
+ break;
403
+ case FocusState.LAST_ITEM:
404
+ const last = getLastActivatableItem(items);
405
+ if (last) {
406
+ last.tabIndex = 0;
407
+ last.focus();
408
+ await last.updateComplete;
409
+ }
410
+ break;
411
+ case FocusState.LIST_ROOT:
412
+ this.focus();
413
+ break;
414
+ default:
415
+ case FocusState.NONE:
416
+ // Do nothing.
417
+ break;
418
+ }
419
+ if (!animationAborted) {
420
+ this.dispatchEvent(new Event('opened'));
421
+ }
422
+ };
423
+ /**
424
+ * Animates closed.
425
+ */
426
+ this.beforeClose = async () => {
427
+ this.open = false;
428
+ if (!this.skipRestoreFocus) {
429
+ this.lastFocusedElement?.focus?.();
430
+ }
431
+ if (!this.quick) {
432
+ await this.animateClose();
433
+ }
434
+ };
435
+ /**
436
+ * Focuses the last focused element.
437
+ */
438
+ this.onClosed = () => {
439
+ if (this.quick) {
440
+ this.dispatchEvent(new Event('closing'));
441
+ this.dispatchEvent(new Event('closed'));
442
+ }
443
+ };
444
+ this.onWindowPointerdown = (event) => {
445
+ this.pointerPath = event.composedPath();
446
+ };
447
+ /**
448
+ * We cannot listen to window click because Safari on iOS will not bubble a
449
+ * click event on window if the item clicked is not a "clickable" item such as
450
+ * <body>
451
+ */
452
+ this.onDocumentClick = (event) => {
453
+ if (!this.open) {
454
+ return;
455
+ }
456
+ const path = event.composedPath();
457
+ if (!this.stayOpenOnOutsideClick &&
458
+ !path.includes(this) &&
459
+ !path.includes(this.anchorElement)) {
460
+ this.open = false;
461
+ }
462
+ };
463
+ if (!isServer) {
464
+ this.internals.role = 'menu';
465
+ this.addEventListener('keydown', this.handleKeydown);
466
+ // Capture so that we can grab the event before it reaches the menu item
467
+ // istelf. Specifically useful for the case where typeahead encounters a
468
+ // space and we don't want the menu item to close the menu.
469
+ this.addEventListener('keydown', this.captureKeydown, { capture: true });
470
+ this.addEventListener('focusout', this.handleFocusout);
471
+ }
472
+ }
473
+ /**
474
+ * The menu items associated with this menu. The items must be `MenuItem`s and
475
+ * have both the `md-menu-item` and `md-list-item` attributes.
476
+ */
477
+ get items() {
478
+ return this.listController.items;
479
+ }
480
+ willUpdate(changed) {
481
+ if (!changed.has('open')) {
482
+ return;
483
+ }
484
+ if (this.open) {
485
+ this.removeAttribute('aria-hidden');
486
+ return;
487
+ }
488
+ this.setAttribute('aria-hidden', 'true');
489
+ }
490
+ update(changed) {
491
+ if (changed.has('open')) {
492
+ if (this.open) {
493
+ this.setUpGlobalEventListeners();
494
+ }
495
+ else {
496
+ this.cleanUpGlobalEventListeners();
497
+ }
498
+ }
499
+ // Firefox does not support popover. Fall-back to using fixed.
500
+ if (changed.has('positioning') &&
501
+ this.positioning === 'popover' &&
502
+ // type required for Google JS conformance
503
+ !this.showPopover) {
504
+ this.positioning = 'fixed';
505
+ }
506
+ super.update(changed);
507
+ }
508
+ connectedCallback() {
509
+ super.connectedCallback();
510
+ if (this.open) {
511
+ this.setUpGlobalEventListeners();
512
+ }
513
+ }
514
+ disconnectedCallback() {
515
+ super.disconnectedCallback();
516
+ this.cleanUpGlobalEventListeners();
517
+ }
518
+ getBoundingClientRect() {
519
+ if (!this.surfaceEl) {
520
+ return super.getBoundingClientRect();
521
+ }
522
+ return this.surfaceEl.getBoundingClientRect();
523
+ }
524
+ getClientRects() {
525
+ if (!this.surfaceEl) {
526
+ return super.getClientRects();
527
+ }
528
+ return this.surfaceEl.getClientRects();
529
+ }
530
+ render() {
531
+ return this.renderSurface();
532
+ }
533
+ /**
534
+ * Renders the positionable surface element and its contents.
535
+ */
536
+ renderSurface() {
537
+ return html `
538
+ <div
539
+ class="menu ${classMap(this.getSurfaceClasses())}"
540
+ style=${styleMap(this.menuPositionController.surfaceStyles)}
541
+ popover=${this.positioning === 'popover' ? 'manual' : nothing}>
542
+ ${this.renderElevation()}
543
+ <div class="items">
544
+ <div class="item-padding"> ${this.renderMenuItems()} </div>
545
+ </div>
546
+ </div>
547
+ `;
548
+ }
549
+ /**
550
+ * Renders the menu items' slot
551
+ */
552
+ renderMenuItems() {
553
+ return html `<slot
554
+ @close-menu=${this.onCloseMenu}
555
+ @deactivate-items=${this.onDeactivateItems}
556
+ @request-activation=${this.onRequestActivation}
557
+ @deactivate-typeahead=${this.handleDeactivateTypeahead}
558
+ @activate-typeahead=${this.handleActivateTypeahead}
559
+ @stay-open-on-focusout=${this.handleStayOpenOnFocusout}
560
+ @close-on-focusout=${this.handleCloseOnFocusout}
561
+ @slotchange=${this.listController.onSlotchange}></slot>`;
562
+ }
563
+ /**
564
+ * Renders the elevation component.
565
+ */
566
+ renderElevation() {
567
+ return html `<md-elevation part="elevation"></md-elevation>`;
568
+ }
569
+ getSurfaceClasses() {
570
+ return {
571
+ open: this.open,
572
+ fixed: this.positioning === 'fixed',
573
+ 'has-overflow': this.hasOverflow,
574
+ };
575
+ }
576
+ captureKeydown(event) {
577
+ if (event.target === this &&
578
+ !event.defaultPrevented &&
579
+ isClosableKey(event.code)) {
580
+ event.preventDefault();
581
+ this.close();
582
+ }
583
+ this.typeaheadController.onKeydown(event);
584
+ }
585
+ /**
586
+ * Performs the opening animation:
587
+ *
588
+ * https://direct.googleplex.com/#/spec/295000003+271060003
589
+ *
590
+ * @return A promise that resolve to `true` if the animation was aborted,
591
+ * `false` if it was not aborted.
592
+ */
593
+ async animateOpen() {
594
+ const surfaceEl = this.surfaceEl;
595
+ const slotEl = this.slotEl;
596
+ if (!surfaceEl || !slotEl)
597
+ return true;
598
+ const openDirection = this.openDirection;
599
+ this.dispatchEvent(new Event('opening'));
600
+ // needs to be imperative because we don't want to mix animation and Lit
601
+ // render timing
602
+ surfaceEl.classList.toggle('animating', true);
603
+ const signal = this.openCloseAnimationSignal.start();
604
+ const height = surfaceEl.offsetHeight;
605
+ const openingUpwards = openDirection === 'UP';
606
+ const children = this.items;
607
+ const FULL_DURATION = 500;
608
+ const SURFACE_OPACITY_DURATION = 50;
609
+ const ITEM_OPACITY_DURATION = 250;
610
+ // We want to fit every child fade-in animation within the full duration of
611
+ // the animation.
612
+ const DELAY_BETWEEN_ITEMS = (FULL_DURATION - ITEM_OPACITY_DURATION) / children.length;
613
+ const surfaceHeightAnimation = surfaceEl.animate([{ height: '0px' }, { height: `${height}px` }], {
614
+ duration: FULL_DURATION,
615
+ easing: EASING.EMPHASIZED,
616
+ });
617
+ // When we are opening upwards, we want to make sure the last item is always
618
+ // in view, so we need to translate it upwards the opposite direction of the
619
+ // height animation
620
+ const upPositionCorrectionAnimation = slotEl.animate([
621
+ { transform: openingUpwards ? `translateY(-${height}px)` : '' },
622
+ { transform: '' },
623
+ ], { duration: FULL_DURATION, easing: EASING.EMPHASIZED });
624
+ const surfaceOpacityAnimation = surfaceEl.animate([{ opacity: 0 }, { opacity: 1 }], SURFACE_OPACITY_DURATION);
625
+ const childrenAnimations = [];
626
+ for (let i = 0; i < children.length; i++) {
627
+ // If we are animating upwards, then reverse the children list.
628
+ const directionalIndex = openingUpwards ? children.length - 1 - i : i;
629
+ const child = children[directionalIndex];
630
+ const animation = child.animate([{ opacity: 0 }, { opacity: 1 }], {
631
+ duration: ITEM_OPACITY_DURATION,
632
+ delay: DELAY_BETWEEN_ITEMS * i,
633
+ });
634
+ // Make them all initially hidden and then clean up at the end of each
635
+ // animation.
636
+ child.classList.toggle('md-menu-hidden', true);
637
+ animation.addEventListener('finish', () => {
638
+ child.classList.toggle('md-menu-hidden', false);
639
+ });
640
+ childrenAnimations.push([child, animation]);
641
+ }
642
+ let resolveAnimation = (value) => { };
643
+ const animationFinished = new Promise((resolve) => {
644
+ resolveAnimation = resolve;
645
+ });
646
+ signal.addEventListener('abort', () => {
647
+ surfaceHeightAnimation.cancel();
648
+ upPositionCorrectionAnimation.cancel();
649
+ surfaceOpacityAnimation.cancel();
650
+ childrenAnimations.forEach(([child, animation]) => {
651
+ child.classList.toggle('md-menu-hidden', false);
652
+ animation.cancel();
653
+ });
654
+ resolveAnimation(true);
655
+ });
656
+ surfaceHeightAnimation.addEventListener('finish', () => {
657
+ surfaceEl.classList.toggle('animating', false);
658
+ this.openCloseAnimationSignal.finish();
659
+ resolveAnimation(false);
660
+ });
661
+ return await animationFinished;
662
+ }
663
+ /**
664
+ * Performs the closing animation:
665
+ *
666
+ * https://direct.googleplex.com/#/spec/295000003+271060003
667
+ */
668
+ animateClose() {
669
+ let resolve;
670
+ // This promise blocks the surface position controller from setting
671
+ // display: none on the surface which will interfere with this animation.
672
+ const animationEnded = new Promise((res) => {
673
+ resolve = res;
674
+ });
675
+ const surfaceEl = this.surfaceEl;
676
+ const slotEl = this.slotEl;
677
+ if (!surfaceEl || !slotEl) {
678
+ resolve(false);
679
+ return animationEnded;
680
+ }
681
+ const openDirection = this.openDirection;
682
+ const closingDownwards = openDirection === 'UP';
683
+ this.dispatchEvent(new Event('closing'));
684
+ // needs to be imperative because we don't want to mix animation and Lit
685
+ // render timing
686
+ surfaceEl.classList.toggle('animating', true);
687
+ const signal = this.openCloseAnimationSignal.start();
688
+ const height = surfaceEl.offsetHeight;
689
+ const children = this.items;
690
+ const FULL_DURATION = 150;
691
+ const SURFACE_OPACITY_DURATION = 50;
692
+ // The surface fades away at the very end
693
+ const SURFACE_OPACITY_DELAY = FULL_DURATION - SURFACE_OPACITY_DURATION;
694
+ const ITEM_OPACITY_DURATION = 50;
695
+ const ITEM_OPACITY_INITIAL_DELAY = 50;
696
+ const END_HEIGHT_PERCENTAGE = 0.35;
697
+ // We want to fit every child fade-out animation within the full duration of
698
+ // the animation.
699
+ const DELAY_BETWEEN_ITEMS = (FULL_DURATION - ITEM_OPACITY_INITIAL_DELAY - ITEM_OPACITY_DURATION) /
700
+ children.length;
701
+ // The mock has the animation shrink to 35%
702
+ const surfaceHeightAnimation = surfaceEl.animate([
703
+ { height: `${height}px` },
704
+ { height: `${height * END_HEIGHT_PERCENTAGE}px` },
705
+ ], {
706
+ duration: FULL_DURATION,
707
+ easing: EASING.EMPHASIZED_ACCELERATE,
708
+ });
709
+ // When we are closing downwards, we want to make sure the last item is
710
+ // always in view, so we need to translate it upwards the opposite direction
711
+ // of the height animation
712
+ const downPositionCorrectionAnimation = slotEl.animate([
713
+ { transform: '' },
714
+ {
715
+ transform: closingDownwards
716
+ ? `translateY(-${height * (1 - END_HEIGHT_PERCENTAGE)}px)`
717
+ : '',
718
+ },
719
+ ], { duration: FULL_DURATION, easing: EASING.EMPHASIZED_ACCELERATE });
720
+ const surfaceOpacityAnimation = surfaceEl.animate([{ opacity: 1 }, { opacity: 0 }], { duration: SURFACE_OPACITY_DURATION, delay: SURFACE_OPACITY_DELAY });
721
+ const childrenAnimations = [];
722
+ for (let i = 0; i < children.length; i++) {
723
+ // If the animation is closing upwards, then reverse the list of
724
+ // children so that we animate in the opposite direction.
725
+ const directionalIndex = closingDownwards ? i : children.length - 1 - i;
726
+ const child = children[directionalIndex];
727
+ const animation = child.animate([{ opacity: 1 }, { opacity: 0 }], {
728
+ duration: ITEM_OPACITY_DURATION,
729
+ delay: ITEM_OPACITY_INITIAL_DELAY + DELAY_BETWEEN_ITEMS * i,
730
+ });
731
+ // Make sure the items stay hidden at the end of each child animation.
732
+ // We clean this up at the end of the overall animation.
733
+ animation.addEventListener('finish', () => {
734
+ child.classList.toggle('md-menu-hidden', true);
735
+ });
736
+ childrenAnimations.push([child, animation]);
737
+ }
738
+ signal.addEventListener('abort', () => {
739
+ surfaceHeightAnimation.cancel();
740
+ downPositionCorrectionAnimation.cancel();
741
+ surfaceOpacityAnimation.cancel();
742
+ childrenAnimations.forEach(([child, animation]) => {
743
+ animation.cancel();
744
+ child.classList.toggle('md-menu-hidden', false);
745
+ });
746
+ resolve(false);
747
+ });
748
+ surfaceHeightAnimation.addEventListener('finish', () => {
749
+ surfaceEl.classList.toggle('animating', false);
750
+ childrenAnimations.forEach(([child]) => {
751
+ child.classList.toggle('md-menu-hidden', false);
752
+ });
753
+ this.openCloseAnimationSignal.finish();
754
+ this.dispatchEvent(new Event('closed'));
755
+ resolve(true);
756
+ });
757
+ return animationEnded;
758
+ }
759
+ handleKeydown(event) {
760
+ // At any key event, the pointer interaction is done so we need to clear our
761
+ // cached pointerpath. This handles the case where the user clicks on the
762
+ // anchor, and then hits shift+tab
763
+ this.pointerPath = [];
764
+ this.listController.handleKeydown(event);
765
+ }
766
+ setUpGlobalEventListeners() {
767
+ document.addEventListener('click', this.onDocumentClick, { capture: true });
768
+ window.addEventListener('pointerdown', this.onWindowPointerdown);
769
+ document.addEventListener('resize', this.onWindowResize, { passive: true });
770
+ window.addEventListener('resize', this.onWindowResize, { passive: true });
771
+ }
772
+ cleanUpGlobalEventListeners() {
773
+ document.removeEventListener('click', this.onDocumentClick, {
774
+ capture: true,
775
+ });
776
+ window.removeEventListener('pointerdown', this.onWindowPointerdown);
777
+ document.removeEventListener('resize', this.onWindowResize);
778
+ window.removeEventListener('resize', this.onWindowResize);
779
+ }
780
+ onCloseMenu() {
781
+ this.close();
782
+ }
783
+ onDeactivateItems(event) {
784
+ event.stopPropagation();
785
+ this.listController.onDeactivateItems();
786
+ }
787
+ onRequestActivation(event) {
788
+ event.stopPropagation();
789
+ this.listController.onRequestActivation(event);
790
+ }
791
+ handleDeactivateTypeahead(event) {
792
+ // stopPropagation so that this does not deactivate any typeaheads in menus
793
+ // nested above it e.g. md-sub-menu
794
+ event.stopPropagation();
795
+ this.typeaheadActive = false;
796
+ }
797
+ handleActivateTypeahead(event) {
798
+ // stopPropagation so that this does not activate any typeaheads in menus
799
+ // nested above it e.g. md-sub-menu
800
+ event.stopPropagation();
801
+ this.typeaheadActive = true;
802
+ }
803
+ handleStayOpenOnFocusout(event) {
804
+ event.stopPropagation();
805
+ this.stayOpenOnFocusout = true;
806
+ }
807
+ handleCloseOnFocusout(event) {
808
+ event.stopPropagation();
809
+ this.stayOpenOnFocusout = false;
810
+ }
811
+ close() {
812
+ this.open = false;
813
+ const maybeSubmenu = this.slotItems;
814
+ maybeSubmenu.forEach((item) => {
815
+ item.close?.();
816
+ });
817
+ }
818
+ show() {
819
+ this.open = true;
820
+ }
821
+ /**
822
+ * Activates the next item in the menu. If at the end of the menu, the first
823
+ * item will be activated.
824
+ *
825
+ * @return The activated menu item or `null` if there are no items.
826
+ */
827
+ activateNextItem() {
828
+ return this.listController.activateNextItem() ?? null;
829
+ }
830
+ /**
831
+ * Activates the previous item in the menu. If at the start of the menu, the
832
+ * last item will be activated.
833
+ *
834
+ * @return The activated menu item or `null` if there are no items.
835
+ */
836
+ activatePreviousItem() {
837
+ return this.listController.activatePreviousItem() ?? null;
838
+ }
839
+ /**
840
+ * Repositions the menu if it is open.
841
+ *
842
+ * Useful for the case where document or window-positioned menus have their
843
+ * anchors moved while open.
844
+ */
845
+ reposition() {
846
+ if (this.open) {
847
+ this.menuPositionController.position();
848
+ }
849
+ }
850
+ }
851
+ __decorate([
852
+ query('.menu')
853
+ ], Menu.prototype, "surfaceEl", void 0);
854
+ __decorate([
855
+ query('slot')
856
+ ], Menu.prototype, "slotEl", void 0);
857
+ __decorate([
858
+ property()
859
+ ], Menu.prototype, "anchor", void 0);
860
+ __decorate([
861
+ property()
862
+ ], Menu.prototype, "positioning", void 0);
863
+ __decorate([
864
+ property({ type: Boolean })
865
+ ], Menu.prototype, "quick", void 0);
866
+ __decorate([
867
+ property({ type: Boolean, attribute: 'has-overflow' })
868
+ ], Menu.prototype, "hasOverflow", void 0);
869
+ __decorate([
870
+ property({ type: Boolean, reflect: true })
871
+ ], Menu.prototype, "open", void 0);
872
+ __decorate([
873
+ property({ type: Number, attribute: 'x-offset' })
874
+ ], Menu.prototype, "xOffset", void 0);
875
+ __decorate([
876
+ property({ type: Number, attribute: 'y-offset' })
877
+ ], Menu.prototype, "yOffset", void 0);
878
+ __decorate([
879
+ property({ type: Boolean, attribute: 'no-horizontal-flip' })
880
+ ], Menu.prototype, "noHorizontalFlip", void 0);
881
+ __decorate([
882
+ property({ type: Boolean, attribute: 'no-vertical-flip' })
883
+ ], Menu.prototype, "noVerticalFlip", void 0);
884
+ __decorate([
885
+ property({ type: Number, attribute: 'typeahead-delay' })
886
+ ], Menu.prototype, "typeaheadDelay", void 0);
887
+ __decorate([
888
+ property({ attribute: 'anchor-corner' })
889
+ ], Menu.prototype, "anchorCorner", void 0);
890
+ __decorate([
891
+ property({ attribute: 'menu-corner' })
892
+ ], Menu.prototype, "menuCorner", void 0);
893
+ __decorate([
894
+ property({ type: Boolean, attribute: 'stay-open-on-outside-click' })
895
+ ], Menu.prototype, "stayOpenOnOutsideClick", void 0);
896
+ __decorate([
897
+ property({ type: Boolean, attribute: 'stay-open-on-focusout' })
898
+ ], Menu.prototype, "stayOpenOnFocusout", void 0);
899
+ __decorate([
900
+ property({ type: Boolean, attribute: 'skip-restore-focus' })
901
+ ], Menu.prototype, "skipRestoreFocus", void 0);
902
+ __decorate([
903
+ property({ attribute: 'default-focus' })
904
+ ], Menu.prototype, "defaultFocus", void 0);
905
+ __decorate([
906
+ property({ type: Boolean, attribute: 'no-navigation-wrap' })
907
+ ], Menu.prototype, "noNavigationWrap", void 0);
908
+ __decorate([
909
+ queryAssignedElements({ flatten: true })
910
+ ], Menu.prototype, "slotItems", void 0);
911
+ __decorate([
912
+ state()
913
+ ], Menu.prototype, "typeaheadActive", void 0);
914
+ //# sourceMappingURL=menu.js.map