@material/web 1.0.0-pre.8 → 1.0.0

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 (1624) hide show
  1. package/README.md +14 -75
  2. package/all.d.ts +95 -0
  3. package/all.js +104 -0
  4. package/all.js.map +1 -0
  5. package/button/_elevated-button.scss +1 -1
  6. package/button/_filled-button.scss +1 -1
  7. package/button/_filled-tonal-button.scss +6 -0
  8. package/button/_outlined-button.scss +1 -1
  9. package/button/_text-button.scss +1 -1
  10. package/button/elevated-button.d.ts +1 -1
  11. package/button/elevated-button.js +5 -6
  12. package/button/elevated-button.js.map +1 -1
  13. package/button/filled-button.d.ts +1 -1
  14. package/button/filled-button.js +5 -6
  15. package/button/filled-button.js.map +1 -1
  16. package/button/filled-tonal-button.d.ts +35 -0
  17. package/button/filled-tonal-button.js +39 -0
  18. package/button/filled-tonal-button.js.map +1 -0
  19. package/button/harness.d.ts +1 -1
  20. package/button/harness.js +1 -1
  21. package/button/harness.js.map +1 -1
  22. package/button/internal/_elevated-button.scss +62 -0
  23. package/button/internal/_elevation.scss +69 -0
  24. package/button/internal/_filled-button.scss +61 -0
  25. package/button/internal/_filled-tonal-button.scss +61 -0
  26. package/button/internal/_icon.scss +39 -0
  27. package/button/internal/_outlined-button.scss +110 -0
  28. package/button/internal/_shared.scss +169 -0
  29. package/button/internal/_text-button.scss +65 -0
  30. package/button/internal/_touch-target.scss +19 -0
  31. package/button/internal/button.d.ts +68 -0
  32. package/button/internal/button.js +159 -0
  33. package/button/internal/button.js.map +1 -0
  34. package/button/internal/elevated-button.d.ts +13 -0
  35. package/button/internal/elevated-button.js +17 -0
  36. package/button/internal/elevated-button.js.map +1 -0
  37. package/button/internal/elevated-styles.css.js +9 -0
  38. package/button/internal/elevated-styles.css.js.map +1 -0
  39. package/button/internal/filled-button.d.ts +13 -0
  40. package/button/internal/filled-button.js +17 -0
  41. package/button/internal/filled-button.js.map +1 -0
  42. package/button/internal/filled-styles.css.js +9 -0
  43. package/button/internal/filled-styles.css.js.map +1 -0
  44. package/button/internal/filled-tonal-button.d.ts +13 -0
  45. package/button/internal/filled-tonal-button.js +17 -0
  46. package/button/internal/filled-tonal-button.js.map +1 -0
  47. package/button/internal/filled-tonal-styles.css.js +9 -0
  48. package/button/internal/filled-tonal-styles.css.js.map +1 -0
  49. package/button/internal/filled-tonal-styles.scss +10 -0
  50. package/button/internal/outlined-button.d.ts +12 -0
  51. package/button/internal/outlined-button.js +16 -0
  52. package/button/internal/outlined-button.js.map +1 -0
  53. package/button/internal/outlined-styles.css.js +9 -0
  54. package/button/internal/outlined-styles.css.js.map +1 -0
  55. package/button/internal/shared-elevation-styles.css.js +9 -0
  56. package/button/internal/shared-elevation-styles.css.js.map +1 -0
  57. package/button/internal/shared-styles.css.js +9 -0
  58. package/button/internal/shared-styles.css.js.map +1 -0
  59. package/button/internal/text-button.d.ts +11 -0
  60. package/button/internal/text-button.js +12 -0
  61. package/button/internal/text-button.js.map +1 -0
  62. package/button/internal/text-styles.css.js +9 -0
  63. package/button/internal/text-styles.css.js.map +1 -0
  64. package/button/outlined-button.d.ts +1 -1
  65. package/button/outlined-button.js +4 -5
  66. package/button/outlined-button.js.map +1 -1
  67. package/button/text-button.d.ts +1 -1
  68. package/button/text-button.js +4 -5
  69. package/button/text-button.js.map +1 -1
  70. package/checkbox/_checkbox.scss +1 -1
  71. package/checkbox/checkbox.d.ts +1 -1
  72. package/checkbox/checkbox.js +4 -6
  73. package/checkbox/checkbox.js.map +1 -1
  74. package/checkbox/harness.d.ts +1 -1
  75. package/checkbox/harness.js.map +1 -1
  76. package/checkbox/internal/_checkbox.scss +416 -0
  77. package/checkbox/internal/checkbox-styles.css.js +9 -0
  78. package/checkbox/internal/checkbox-styles.css.js.map +1 -0
  79. package/checkbox/internal/checkbox.d.ts +138 -0
  80. package/checkbox/internal/checkbox.js +307 -0
  81. package/checkbox/internal/checkbox.js.map +1 -0
  82. package/chips/_assist-chip.scss +1 -1
  83. package/chips/_filter-chip.scss +1 -1
  84. package/chips/_input-chip.scss +6 -0
  85. package/chips/_suggestion-chip.scss +1 -1
  86. package/chips/assist-chip.d.ts +1 -1
  87. package/chips/assist-chip.js +5 -6
  88. package/chips/assist-chip.js.map +1 -1
  89. package/chips/chip-set.d.ts +20 -0
  90. package/chips/chip-set.js +22 -0
  91. package/chips/chip-set.js.map +1 -0
  92. package/chips/filter-chip.d.ts +1 -1
  93. package/chips/filter-chip.js +10 -7
  94. package/chips/filter-chip.js.map +1 -1
  95. package/chips/harness.d.ts +14 -0
  96. package/chips/harness.js +37 -0
  97. package/chips/harness.js.map +1 -0
  98. package/chips/input-chip.d.ts +20 -0
  99. package/chips/input-chip.js +25 -0
  100. package/chips/input-chip.js.map +1 -0
  101. package/chips/internal/_assist-chip.scss +67 -0
  102. package/chips/internal/_chip-set.scss +12 -0
  103. package/chips/internal/_elevated.scss +70 -0
  104. package/chips/internal/_filter-chip.scss +80 -0
  105. package/chips/internal/_input-chip.scss +107 -0
  106. package/chips/internal/_selectable.scss +78 -0
  107. package/chips/internal/_shared.scss +216 -0
  108. package/chips/internal/_suggestion-chip.scss +67 -0
  109. package/chips/internal/_trailing-icon.scss +80 -0
  110. package/chips/internal/assist-chip.d.ts +24 -0
  111. package/chips/internal/assist-chip.js +74 -0
  112. package/chips/internal/assist-chip.js.map +1 -0
  113. package/chips/internal/assist-styles.css.js +9 -0
  114. package/chips/internal/assist-styles.css.js.map +1 -0
  115. package/chips/internal/chip-set-styles.css.js +9 -0
  116. package/chips/internal/chip-set-styles.css.js.map +1 -0
  117. package/chips/internal/chip-set-styles.scss +10 -0
  118. package/chips/internal/chip-set.d.ts +19 -0
  119. package/chips/internal/chip-set.js +130 -0
  120. package/chips/internal/chip-set.js.map +1 -0
  121. package/chips/internal/chip.d.ts +56 -0
  122. package/chips/internal/chip.js +111 -0
  123. package/chips/internal/chip.js.map +1 -0
  124. package/chips/internal/elevated-styles.css.js +9 -0
  125. package/chips/internal/elevated-styles.css.js.map +1 -0
  126. package/chips/internal/filter-chip.d.ts +29 -0
  127. package/chips/internal/filter-chip.js +98 -0
  128. package/chips/internal/filter-chip.js.map +1 -0
  129. package/chips/internal/filter-styles.css.js +9 -0
  130. package/chips/internal/filter-styles.css.js.map +1 -0
  131. package/chips/internal/input-chip.d.ts +29 -0
  132. package/chips/internal/input-chip.js +110 -0
  133. package/chips/internal/input-chip.js.map +1 -0
  134. package/chips/internal/input-styles.css.js +9 -0
  135. package/chips/internal/input-styles.css.js.map +1 -0
  136. package/chips/internal/input-styles.scss +10 -0
  137. package/chips/internal/multi-action-chip.d.ts +23 -0
  138. package/chips/internal/multi-action-chip.js +95 -0
  139. package/chips/internal/multi-action-chip.js.map +1 -0
  140. package/chips/internal/selectable-styles.css.js +9 -0
  141. package/chips/internal/selectable-styles.css.js.map +1 -0
  142. package/chips/internal/selectable-styles.scss +10 -0
  143. package/chips/internal/shared-styles.css.js +9 -0
  144. package/chips/internal/shared-styles.css.js.map +1 -0
  145. package/chips/internal/suggestion-styles.css.js +9 -0
  146. package/chips/internal/suggestion-styles.css.js.map +1 -0
  147. package/chips/internal/trailing-icon-styles.css.js +9 -0
  148. package/chips/internal/trailing-icon-styles.css.js.map +1 -0
  149. package/chips/internal/trailing-icon-styles.scss +10 -0
  150. package/chips/internal/trailing-icons.d.ts +16 -0
  151. package/chips/internal/trailing-icons.js +38 -0
  152. package/chips/internal/trailing-icons.js.map +1 -0
  153. package/chips/suggestion-chip.d.ts +1 -1
  154. package/chips/suggestion-chip.js +5 -6
  155. package/chips/suggestion-chip.js.map +1 -1
  156. package/color/_color.scss +197 -0
  157. package/common.d.ts +57 -0
  158. package/common.js +66 -0
  159. package/common.js.map +1 -0
  160. package/dialog/_dialog.scss +1 -1
  161. package/dialog/dialog.d.ts +1 -1
  162. package/dialog/dialog.js +3 -4
  163. package/dialog/dialog.js.map +1 -1
  164. package/dialog/harness.d.ts +2 -7
  165. package/dialog/harness.js +2 -43
  166. package/dialog/harness.js.map +1 -1
  167. package/dialog/internal/_dialog.scss +278 -0
  168. package/dialog/internal/animations.d.ts +47 -0
  169. package/dialog/internal/animations.js +117 -0
  170. package/dialog/internal/animations.js.map +1 -0
  171. package/dialog/internal/dialog-styles.css.js +9 -0
  172. package/dialog/internal/dialog-styles.css.js.map +1 -0
  173. package/dialog/internal/dialog.d.ts +110 -0
  174. package/dialog/internal/dialog.js +371 -0
  175. package/dialog/internal/dialog.js.map +1 -0
  176. package/divider/_divider.scss +1 -1
  177. package/divider/divider.d.ts +1 -1
  178. package/divider/divider.js +3 -4
  179. package/divider/divider.js.map +1 -1
  180. package/divider/internal/_divider.scss +64 -0
  181. package/docs/theming/README.md +129 -0
  182. package/elevation/_elevation.scss +1 -1
  183. package/elevation/elevation.d.ts +1 -1
  184. package/elevation/elevation.js +3 -4
  185. package/elevation/elevation.js.map +1 -1
  186. package/elevation/internal/_elevation.scss +172 -0
  187. package/elevation/internal/elevation-styles.css.js +9 -0
  188. package/elevation/internal/elevation-styles.css.js.map +1 -0
  189. package/elevation/internal/elevation.d.ts +13 -0
  190. package/elevation/internal/elevation.js +21 -0
  191. package/elevation/internal/elevation.js.map +1 -0
  192. package/fab/_fab.scss +2 -2
  193. package/fab/branded-fab.d.ts +3 -3
  194. package/fab/branded-fab.js +5 -6
  195. package/fab/branded-fab.js.map +1 -1
  196. package/fab/fab.d.ts +3 -3
  197. package/fab/fab.js +5 -6
  198. package/fab/fab.js.map +1 -1
  199. package/fab/harness.d.ts +1 -1
  200. package/fab/harness.js.map +1 -1
  201. package/fab/internal/_fab.scss +261 -0
  202. package/fab/internal/_shared.scss +245 -0
  203. package/fab/internal/fab-branded-styles.css.js +9 -0
  204. package/fab/internal/fab-branded-styles.css.js.map +1 -0
  205. package/fab/internal/fab-styles.css.js +9 -0
  206. package/fab/internal/fab-styles.css.js.map +1 -0
  207. package/fab/internal/fab.d.ts +25 -0
  208. package/fab/internal/fab.js.map +1 -0
  209. package/fab/internal/forced-colors-styles.css.js +9 -0
  210. package/fab/internal/forced-colors-styles.css.js.map +1 -0
  211. package/fab/internal/forced-colors-styles.scss +29 -0
  212. package/fab/internal/shared-styles.css.js +9 -0
  213. package/fab/internal/shared-styles.css.js.map +1 -0
  214. package/fab/internal/shared.d.ts +42 -0
  215. package/fab/internal/shared.js +94 -0
  216. package/fab/internal/shared.js.map +1 -0
  217. package/field/_filled-field.scss +1 -1
  218. package/field/_outlined-field.scss +1 -1
  219. package/field/filled-field.d.ts +1 -1
  220. package/field/filled-field.js +4 -5
  221. package/field/filled-field.js.map +1 -1
  222. package/field/harness.d.ts +1 -1
  223. package/field/harness.js.map +1 -1
  224. package/field/internal/_content.scss +199 -0
  225. package/field/internal/_filled-field.scss +215 -0
  226. package/field/internal/_label.scss +94 -0
  227. package/field/internal/_outlined-field.scss +356 -0
  228. package/field/internal/_shared.scss +78 -0
  229. package/field/internal/_supporting-text.scss +50 -0
  230. package/field/internal/field.d.ts +65 -0
  231. package/field/internal/field.js +337 -0
  232. package/field/internal/field.js.map +1 -0
  233. package/field/internal/filled-styles.css.js +9 -0
  234. package/field/internal/filled-styles.css.js.map +1 -0
  235. package/field/internal/outlined-field.d.ts +12 -0
  236. package/field/internal/outlined-field.js.map +1 -0
  237. package/field/internal/outlined-styles.css.js +9 -0
  238. package/field/internal/outlined-styles.css.js.map +1 -0
  239. package/field/internal/shared-styles.css.js +9 -0
  240. package/field/internal/shared-styles.css.js.map +1 -0
  241. package/field/outlined-field.d.ts +1 -1
  242. package/field/outlined-field.js +4 -5
  243. package/field/outlined-field.js.map +1 -1
  244. package/focus/_focus-ring.scss +1 -1
  245. package/focus/internal/_focus-ring.scss +139 -0
  246. package/focus/internal/focus-ring-styles.css.js +9 -0
  247. package/focus/internal/focus-ring-styles.css.js.map +1 -0
  248. package/focus/internal/focus-ring.d.ts +37 -0
  249. package/focus/internal/focus-ring.js +100 -0
  250. package/focus/internal/focus-ring.js.map +1 -0
  251. package/focus/md-focus-ring.d.ts +20 -0
  252. package/focus/md-focus-ring.js +22 -0
  253. package/focus/md-focus-ring.js.map +1 -0
  254. package/icon/_icon.scss +1 -1
  255. package/icon/icon.d.ts +2 -1
  256. package/icon/icon.js +4 -4
  257. package/icon/icon.js.map +1 -1
  258. package/icon/internal/_icon.scss +66 -0
  259. package/icon/internal/icon-styles.css.js +9 -0
  260. package/icon/internal/icon-styles.css.js.map +1 -0
  261. package/icon/internal/icon.d.ts +13 -0
  262. package/icon/internal/icon.js +28 -0
  263. package/icon/internal/icon.js.map +1 -0
  264. package/iconbutton/_filled-icon-button.scss +1 -1
  265. package/iconbutton/_filled-tonal-icon-button.scss +1 -1
  266. package/iconbutton/_icon-button.scss +6 -0
  267. package/iconbutton/_outlined-icon-button.scss +1 -1
  268. package/iconbutton/filled-icon-button.d.ts +5 -5
  269. package/iconbutton/filled-icon-button.js +6 -7
  270. package/iconbutton/filled-icon-button.js.map +1 -1
  271. package/iconbutton/filled-tonal-icon-button.d.ts +5 -5
  272. package/iconbutton/filled-tonal-icon-button.js +6 -7
  273. package/iconbutton/filled-tonal-icon-button.js.map +1 -1
  274. package/iconbutton/harness.d.ts +1 -1
  275. package/iconbutton/harness.js.map +1 -1
  276. package/iconbutton/icon-button.d.ts +34 -0
  277. package/iconbutton/icon-button.js +38 -0
  278. package/iconbutton/icon-button.js.map +1 -0
  279. package/iconbutton/internal/_filled-icon-button.scss +171 -0
  280. package/iconbutton/internal/_filled-tonal-icon-button.scss +173 -0
  281. package/iconbutton/internal/_icon-button.scss +131 -0
  282. package/iconbutton/internal/_outlined-icon-button.scss +182 -0
  283. package/iconbutton/internal/_shared.scss +116 -0
  284. package/iconbutton/internal/filled-styles.css.js +9 -0
  285. package/iconbutton/internal/filled-styles.css.js.map +1 -0
  286. package/iconbutton/internal/filled-tonal-styles.css.js +9 -0
  287. package/iconbutton/internal/filled-tonal-styles.css.js.map +1 -0
  288. package/iconbutton/internal/icon-button.d.ts +81 -0
  289. package/iconbutton/internal/icon-button.js +207 -0
  290. package/iconbutton/internal/icon-button.js.map +1 -0
  291. package/iconbutton/internal/outlined-styles.css.js +9 -0
  292. package/iconbutton/internal/outlined-styles.css.js.map +1 -0
  293. package/iconbutton/internal/shared-styles.css.js +9 -0
  294. package/iconbutton/internal/shared-styles.css.js.map +1 -0
  295. package/iconbutton/internal/standard-styles.css.js +9 -0
  296. package/iconbutton/internal/standard-styles.css.js.map +1 -0
  297. package/iconbutton/internal/standard-styles.scss +10 -0
  298. package/iconbutton/outlined-icon-button.d.ts +4 -4
  299. package/iconbutton/outlined-icon-button.js +5 -6
  300. package/iconbutton/outlined-icon-button.js.map +1 -1
  301. package/internal/README.md +6 -0
  302. package/internal/aria/aria.d.ts +154 -0
  303. package/internal/aria/aria.js +239 -0
  304. package/internal/aria/aria.js.map +1 -0
  305. package/internal/aria/delegate.d.ts +37 -0
  306. package/internal/aria/delegate.js +53 -0
  307. package/internal/aria/delegate.js.map +1 -0
  308. package/internal/controller/attachable-controller.d.ts +114 -0
  309. package/internal/controller/attachable-controller.js +123 -0
  310. package/internal/controller/attachable-controller.js.map +1 -0
  311. package/internal/controller/element-internals.d.ts +35 -0
  312. package/internal/controller/element-internals.js +24 -0
  313. package/internal/controller/element-internals.js.map +1 -0
  314. package/internal/controller/form-submitter.d.ts +72 -0
  315. package/internal/controller/form-submitter.js +71 -0
  316. package/internal/controller/form-submitter.js.map +1 -0
  317. package/internal/motion/animation.d.ts +80 -0
  318. package/internal/motion/animation.js +101 -0
  319. package/internal/motion/animation.js.map +1 -0
  320. package/internal/sass/_var.scss +237 -0
  321. package/labs/README.md +6 -0
  322. package/labs/badge/_badge.scss +6 -0
  323. package/labs/badge/badge.d.ts +18 -0
  324. package/labs/badge/badge.js +20 -0
  325. package/labs/badge/badge.js.map +1 -0
  326. package/labs/badge/internal/_badge.scss +76 -0
  327. package/labs/badge/internal/badge-styles.css.js +9 -0
  328. package/labs/badge/internal/badge-styles.css.js.map +1 -0
  329. package/labs/item/internal/_item.scss +99 -0
  330. package/labs/item/internal/item-styles.css.js +9 -0
  331. package/labs/item/internal/item-styles.css.js.map +1 -0
  332. package/labs/item/internal/item-styles.scss +10 -0
  333. package/labs/item/internal/item.d.ts +22 -0
  334. package/labs/item/internal/item.js +78 -0
  335. package/labs/item/internal/item.js.map +1 -0
  336. package/labs/item/item.d.ts +70 -0
  337. package/labs/item/item.js +72 -0
  338. package/labs/item/item.js.map +1 -0
  339. package/labs/navigationbar/_navigation-bar.scss +6 -0
  340. package/labs/navigationbar/harness.d.ts +19 -0
  341. package/labs/navigationbar/harness.js +29 -0
  342. package/labs/navigationbar/harness.js.map +1 -0
  343. package/labs/navigationbar/internal/_navigation-bar.scss +70 -0
  344. package/labs/navigationbar/internal/constants.d.ts +17 -0
  345. package/labs/navigationbar/internal/constants.js.map +1 -0
  346. package/labs/navigationbar/internal/navigation-bar-styles.css.js +9 -0
  347. package/labs/navigationbar/internal/navigation-bar-styles.css.js.map +1 -0
  348. package/labs/navigationbar/internal/navigation-bar.d.ts +27 -0
  349. package/labs/navigationbar/internal/navigation-bar.js +138 -0
  350. package/labs/navigationbar/internal/navigation-bar.js.map +1 -0
  351. package/labs/navigationbar/internal/state.d.ts +23 -0
  352. package/labs/navigationbar/internal/state.js.map +1 -0
  353. package/labs/navigationbar/navigation-bar.d.ts +18 -0
  354. package/labs/navigationbar/navigation-bar.js +20 -0
  355. package/labs/navigationbar/navigation-bar.js.map +1 -0
  356. package/labs/navigationdrawer/_navigation-drawer-modal.scss +6 -0
  357. package/labs/navigationdrawer/_navigation-drawer.scss +6 -0
  358. package/labs/navigationdrawer/internal/_navigation-drawer-modal.scss +110 -0
  359. package/labs/navigationdrawer/internal/_navigation-drawer.scss +97 -0
  360. package/labs/navigationdrawer/internal/navigation-drawer-modal-styles.css.js +9 -0
  361. package/labs/navigationdrawer/internal/navigation-drawer-modal-styles.css.js.map +1 -0
  362. package/labs/navigationdrawer/internal/navigation-drawer-modal.js +81 -0
  363. package/labs/navigationdrawer/internal/navigation-drawer-modal.js.map +1 -0
  364. package/labs/navigationdrawer/internal/navigation-drawer-styles.css.js +9 -0
  365. package/labs/navigationdrawer/internal/navigation-drawer-styles.css.js.map +1 -0
  366. package/labs/navigationdrawer/internal/navigation-drawer.d.ts +17 -0
  367. package/labs/navigationdrawer/internal/navigation-drawer.js +64 -0
  368. package/labs/navigationdrawer/internal/navigation-drawer.js.map +1 -0
  369. package/labs/navigationdrawer/navigation-drawer-modal.d.ts +18 -0
  370. package/labs/navigationdrawer/navigation-drawer-modal.js +21 -0
  371. package/labs/navigationdrawer/navigation-drawer-modal.js.map +1 -0
  372. package/labs/navigationdrawer/navigation-drawer.d.ts +18 -0
  373. package/labs/navigationdrawer/navigation-drawer.js +21 -0
  374. package/labs/navigationdrawer/navigation-drawer.js.map +1 -0
  375. package/labs/navigationtab/_navigation-tab.scss +6 -0
  376. package/labs/navigationtab/harness.d.ts +13 -0
  377. package/labs/navigationtab/harness.js +16 -0
  378. package/labs/navigationtab/harness.js.map +1 -0
  379. package/labs/navigationtab/internal/_navigation-tab.scss +262 -0
  380. package/labs/navigationtab/internal/navigation-tab-styles.css.js +9 -0
  381. package/labs/navigationtab/internal/navigation-tab-styles.css.js.map +1 -0
  382. package/labs/navigationtab/internal/navigation-tab.d.ts +30 -0
  383. package/labs/navigationtab/internal/navigation-tab.js +117 -0
  384. package/labs/navigationtab/internal/navigation-tab.js.map +1 -0
  385. package/labs/navigationtab/navigation-tab.d.ts +18 -0
  386. package/labs/navigationtab/navigation-tab.js +20 -0
  387. package/labs/navigationtab/navigation-tab.js.map +1 -0
  388. package/labs/segmentedbutton/internal/_outlined-segmented-button.scss +42 -0
  389. package/labs/segmentedbutton/internal/_shared.scss +358 -0
  390. package/labs/segmentedbutton/internal/outlined-styles.css.js +9 -0
  391. package/labs/segmentedbutton/internal/outlined-styles.css.js.map +1 -0
  392. package/labs/segmentedbutton/internal/segmented-button.d.ts +44 -0
  393. package/labs/segmentedbutton/internal/segmented-button.js +157 -0
  394. package/labs/segmentedbutton/internal/segmented-button.js.map +1 -0
  395. package/labs/segmentedbutton/internal/shared-styles.css.js +9 -0
  396. package/labs/segmentedbutton/internal/shared-styles.css.js.map +1 -0
  397. package/labs/segmentedbutton/outlined-segmented-button.d.ts +20 -0
  398. package/labs/segmentedbutton/outlined-segmented-button.js +23 -0
  399. package/labs/segmentedbutton/outlined-segmented-button.js.map +1 -0
  400. package/labs/segmentedbuttonset/internal/_outlined-segmented-button-set.scss +53 -0
  401. package/labs/segmentedbuttonset/internal/outlined-styles.css.js +9 -0
  402. package/labs/segmentedbuttonset/internal/outlined-styles.css.js.map +1 -0
  403. package/labs/segmentedbuttonset/internal/segmented-button-set.d.ts +26 -0
  404. package/labs/segmentedbuttonset/internal/segmented-button-set.js +108 -0
  405. package/labs/segmentedbuttonset/internal/segmented-button-set.js.map +1 -0
  406. package/labs/segmentedbuttonset/outlined-segmented-button-set.d.ts +20 -0
  407. package/labs/segmentedbuttonset/outlined-segmented-button-set.js +23 -0
  408. package/labs/segmentedbuttonset/outlined-segmented-button-set.js.map +1 -0
  409. package/list/_list-item.scss +1 -1
  410. package/list/_list.scss +1 -1
  411. package/list/harness.d.ts +28 -4
  412. package/list/harness.js +27 -3
  413. package/list/harness.js.map +1 -1
  414. package/list/internal/_list.scss +46 -0
  415. package/list/internal/list-controller.d.ts +108 -0
  416. package/list/internal/list-controller.js +176 -0
  417. package/list/internal/list-controller.js.map +1 -0
  418. package/list/internal/list-navigation-helpers.d.ts +132 -0
  419. package/list/internal/list-navigation-helpers.js +218 -0
  420. package/list/internal/list-navigation-helpers.js.map +1 -0
  421. package/list/internal/list-styles.css.js +9 -0
  422. package/list/internal/list-styles.css.js.map +1 -0
  423. package/list/internal/list.d.ts +44 -0
  424. package/list/internal/list.js +73 -0
  425. package/list/internal/list.js.map +1 -0
  426. package/list/internal/listitem/_list-item.scss +146 -0
  427. package/list/internal/listitem/forced-colors-styles.css.js +9 -0
  428. package/list/internal/listitem/forced-colors-styles.css.js.map +1 -0
  429. package/list/internal/listitem/forced-colors-styles.scss +19 -0
  430. package/list/internal/listitem/harness.d.ts +27 -0
  431. package/list/internal/listitem/harness.js +25 -0
  432. package/list/internal/listitem/harness.js.map +1 -0
  433. package/list/internal/listitem/list-item-styles.css.js +9 -0
  434. package/list/internal/listitem/list-item-styles.css.js.map +1 -0
  435. package/list/internal/listitem/list-item.d.ts +77 -0
  436. package/list/internal/listitem/list-item.js +194 -0
  437. package/list/internal/listitem/list-item.js.map +1 -0
  438. package/list/list-item.d.ts +15 -8
  439. package/list/list-item.js +17 -12
  440. package/list/list-item.js.map +1 -1
  441. package/list/list.d.ts +1 -1
  442. package/list/list.js +3 -4
  443. package/list/list.js.map +1 -1
  444. package/menu/_menu-item.scss +1 -1
  445. package/menu/_menu.scss +1 -1
  446. package/menu/harness.d.ts +5 -5
  447. package/menu/harness.js +4 -6
  448. package/menu/harness.js.map +1 -1
  449. package/menu/internal/_menu.scss +124 -0
  450. package/menu/internal/controllers/menuItemController.d.ts +107 -0
  451. package/menu/internal/controllers/menuItemController.js +99 -0
  452. package/menu/internal/controllers/menuItemController.js.map +1 -0
  453. package/menu/internal/controllers/shared.d.ts +221 -0
  454. package/menu/internal/controllers/shared.js +137 -0
  455. package/menu/internal/controllers/shared.js.map +1 -0
  456. package/menu/internal/controllers/surfacePositionController.d.ts +152 -0
  457. package/menu/internal/controllers/surfacePositionController.js +316 -0
  458. package/menu/internal/controllers/surfacePositionController.js.map +1 -0
  459. package/menu/internal/controllers/typeaheadController.d.ts +157 -0
  460. package/menu/internal/controllers/typeaheadController.js +254 -0
  461. package/menu/internal/controllers/typeaheadController.js.map +1 -0
  462. package/menu/internal/menu-styles.css.js +9 -0
  463. package/menu/internal/menu-styles.css.js.map +1 -0
  464. package/menu/internal/menu.d.ts +259 -0
  465. package/menu/internal/menu.js +788 -0
  466. package/menu/internal/menu.js.map +1 -0
  467. package/menu/internal/menuitem/_menu-item.scss +180 -0
  468. package/menu/internal/menuitem/forced-colors-styles.css.js +9 -0
  469. package/menu/internal/menuitem/forced-colors-styles.css.js.map +1 -0
  470. package/menu/internal/menuitem/forced-colors-styles.scss +26 -0
  471. package/menu/internal/menuitem/harness.d.ts +11 -0
  472. package/menu/internal/menuitem/harness.js +12 -0
  473. package/menu/internal/menuitem/harness.js.map +1 -0
  474. package/menu/internal/menuitem/menu-item-styles.css.js +9 -0
  475. package/menu/internal/menuitem/menu-item-styles.css.js.map +1 -0
  476. package/menu/internal/menuitem/menu-item.d.ts +80 -0
  477. package/menu/internal/menuitem/menu-item.js +200 -0
  478. package/menu/internal/menuitem/menu-item.js.map +1 -0
  479. package/menu/internal/submenu/_sub-menu.scss +12 -0
  480. package/menu/internal/submenu/sub-menu-styles.css.js +9 -0
  481. package/menu/internal/submenu/sub-menu-styles.css.js.map +1 -0
  482. package/menu/internal/submenu/sub-menu-styles.scss +10 -0
  483. package/menu/internal/submenu/sub-menu.d.ts +101 -0
  484. package/menu/internal/submenu/sub-menu.js +351 -0
  485. package/menu/internal/submenu/sub-menu.js.map +1 -0
  486. package/menu/menu-item.d.ts +3 -3
  487. package/menu/menu-item.js +5 -9
  488. package/menu/menu-item.js.map +1 -1
  489. package/menu/menu.d.ts +21 -13
  490. package/menu/menu.js +22 -15
  491. package/menu/menu.js.map +1 -1
  492. package/menu/sub-menu.d.ts +62 -0
  493. package/menu/sub-menu.js +64 -0
  494. package/menu/sub-menu.js.map +1 -0
  495. package/package.json +85 -16
  496. package/progress/_circular-progress.scss +6 -0
  497. package/progress/_linear-progress.scss +6 -0
  498. package/progress/circular-progress.d.ts +24 -0
  499. package/progress/circular-progress.js +26 -0
  500. package/progress/circular-progress.js.map +1 -0
  501. package/progress/harness.d.ts +20 -0
  502. package/progress/harness.js +25 -0
  503. package/progress/harness.js.map +1 -0
  504. package/progress/internal/_circular-progress.scss +287 -0
  505. package/progress/internal/_linear-progress.scss +340 -0
  506. package/progress/internal/circular-progress-styles.css.js +9 -0
  507. package/progress/internal/circular-progress-styles.css.js.map +1 -0
  508. package/progress/internal/circular-progress.d.ts +14 -0
  509. package/progress/internal/circular-progress.js +49 -0
  510. package/progress/internal/circular-progress.js.map +1 -0
  511. package/progress/internal/linear-progress-styles.css.js +9 -0
  512. package/progress/internal/linear-progress-styles.css.js.map +1 -0
  513. package/progress/internal/linear-progress.d.ts +16 -0
  514. package/progress/internal/linear-progress.js +47 -0
  515. package/progress/internal/linear-progress.js.map +1 -0
  516. package/progress/internal/progress.d.ts +34 -0
  517. package/progress/internal/progress.js +70 -0
  518. package/progress/internal/progress.js.map +1 -0
  519. package/progress/linear-progress.d.ts +23 -0
  520. package/progress/linear-progress.js +25 -0
  521. package/progress/linear-progress.js.map +1 -0
  522. package/radio/_radio.scss +1 -1
  523. package/radio/harness.d.ts +2 -2
  524. package/radio/harness.js +1 -1
  525. package/radio/harness.js.map +1 -1
  526. package/radio/internal/_radio.scss +185 -0
  527. package/radio/internal/forced-colors-styles.css.js +9 -0
  528. package/radio/internal/forced-colors-styles.css.js.map +1 -0
  529. package/radio/internal/forced-colors-styles.scss +29 -0
  530. package/radio/internal/radio-styles.css.js +9 -0
  531. package/radio/internal/radio-styles.css.js.map +1 -0
  532. package/radio/internal/radio.d.ts +56 -0
  533. package/radio/internal/radio.js +165 -0
  534. package/radio/internal/radio.js.map +1 -0
  535. package/radio/internal/single-selection-controller.js +197 -0
  536. package/radio/internal/single-selection-controller.js.map +1 -0
  537. package/radio/radio.d.ts +1 -1
  538. package/radio/radio.js +4 -5
  539. package/radio/radio.js.map +1 -1
  540. package/ripple/_ripple.scss +1 -1
  541. package/ripple/internal/_ripple.scss +96 -0
  542. package/ripple/internal/ripple-styles.css.js +9 -0
  543. package/ripple/internal/ripple-styles.css.js.map +1 -0
  544. package/ripple/internal/ripple.d.ts +76 -0
  545. package/ripple/internal/ripple.js +408 -0
  546. package/ripple/internal/ripple.js.map +1 -0
  547. package/ripple/ripple.d.ts +1 -1
  548. package/ripple/ripple.js +3 -4
  549. package/ripple/ripple.js.map +1 -1
  550. package/select/_filled-select.scss +1 -1
  551. package/select/_outlined-select.scss +1 -1
  552. package/select/filled-select.d.ts +1 -1
  553. package/select/filled-select.js +5 -6
  554. package/select/filled-select.js.map +1 -1
  555. package/select/harness.d.ts +4 -4
  556. package/select/harness.js +3 -5
  557. package/select/harness.js.map +1 -1
  558. package/select/internal/_filled-select.scss +231 -0
  559. package/select/internal/_outlined-select.scss +189 -0
  560. package/select/internal/_shared.scss +84 -0
  561. package/select/internal/filled-select-styles.css.js +9 -0
  562. package/select/internal/filled-select-styles.css.js.map +1 -0
  563. package/select/internal/outlined-select-styles.css.js +9 -0
  564. package/select/internal/outlined-select-styles.css.js.map +1 -0
  565. package/select/internal/select.d.ts +313 -0
  566. package/select/internal/select.js +773 -0
  567. package/select/internal/select.js.map +1 -0
  568. package/select/internal/selectoption/harness.d.ts +11 -0
  569. package/select/internal/selectoption/harness.js +12 -0
  570. package/select/internal/selectoption/harness.js.map +1 -0
  571. package/select/internal/selectoption/select-option.d.ts +82 -0
  572. package/select/internal/selectoption/select-option.js +183 -0
  573. package/select/internal/selectoption/select-option.js.map +1 -0
  574. package/select/internal/selectoption/selectOptionController.d.ts +91 -0
  575. package/select/internal/selectoption/selectOptionController.js +118 -0
  576. package/select/internal/selectoption/selectOptionController.js.map +1 -0
  577. package/select/internal/shared-styles.css.js +9 -0
  578. package/select/internal/shared-styles.css.js.map +1 -0
  579. package/select/internal/shared.d.ts +18 -0
  580. package/select/internal/shared.js +23 -0
  581. package/select/internal/shared.js.map +1 -0
  582. package/select/outlined-select.d.ts +1 -1
  583. package/select/outlined-select.js +5 -6
  584. package/select/outlined-select.js.map +1 -1
  585. package/select/select-option.d.ts +1 -1
  586. package/select/select-option.js +5 -8
  587. package/select/select-option.js.map +1 -1
  588. package/slider/_slider.scss +1 -1
  589. package/slider/harness.d.ts +1 -1
  590. package/slider/harness.js +7 -5
  591. package/slider/harness.js.map +1 -1
  592. package/slider/internal/_slider.scss +508 -0
  593. package/slider/internal/forced-colors-styles.css.js +9 -0
  594. package/slider/internal/forced-colors-styles.css.js.map +1 -0
  595. package/slider/internal/forced-colors-styles.scss +88 -0
  596. package/slider/internal/slider-styles.css.js +9 -0
  597. package/slider/internal/slider-styles.css.js.map +1 -0
  598. package/slider/internal/slider.d.ts +187 -0
  599. package/slider/internal/slider.js +718 -0
  600. package/slider/internal/slider.js.map +1 -0
  601. package/slider/slider.d.ts +1 -1
  602. package/slider/slider.js +4 -5
  603. package/slider/slider.js.map +1 -1
  604. package/switch/_switch.scss +1 -1
  605. package/switch/harness.d.ts +2 -2
  606. package/switch/harness.js +1 -1
  607. package/switch/harness.js.map +1 -1
  608. package/switch/internal/README.md +55 -0
  609. package/switch/internal/_handle.scss +160 -0
  610. package/switch/internal/_icon.scss +92 -0
  611. package/switch/internal/_switch.scss +154 -0
  612. package/switch/internal/_track.scss +91 -0
  613. package/switch/internal/forced-colors-styles.css.js +9 -0
  614. package/switch/internal/forced-colors-styles.css.js.map +1 -0
  615. package/switch/internal/forced-colors-styles.scss +42 -0
  616. package/switch/internal/switch-styles.css.js +9 -0
  617. package/switch/internal/switch-styles.css.js.map +1 -0
  618. package/switch/internal/switch.d.ts +150 -0
  619. package/switch/internal/switch.js +326 -0
  620. package/switch/internal/switch.js.map +1 -0
  621. package/switch/switch.d.ts +1 -1
  622. package/switch/switch.js +5 -5
  623. package/switch/switch.js.map +1 -1
  624. package/tabs/_primary-tab.scss +6 -0
  625. package/tabs/_secondary-tab.scss +6 -0
  626. package/tabs/harness.d.ts +23 -0
  627. package/tabs/harness.js +51 -0
  628. package/tabs/harness.js.map +1 -0
  629. package/tabs/internal/_primary-tab.scss +70 -0
  630. package/tabs/internal/_secondary-tab.scss +61 -0
  631. package/tabs/internal/_tab.scss +205 -0
  632. package/tabs/internal/_tabs.scss +45 -0
  633. package/tabs/internal/primary-tab-styles.css.js +9 -0
  634. package/tabs/internal/primary-tab-styles.css.js.map +1 -0
  635. package/tabs/internal/primary-tab-styles.scss +10 -0
  636. package/tabs/internal/primary-tab.d.ts +20 -0
  637. package/tabs/internal/primary-tab.js +30 -0
  638. package/tabs/internal/primary-tab.js.map +1 -0
  639. package/tabs/internal/secondary-tab-styles.css.d.ts +1 -0
  640. package/tabs/internal/secondary-tab-styles.css.js +9 -0
  641. package/tabs/internal/secondary-tab-styles.css.js.map +1 -0
  642. package/tabs/internal/secondary-tab-styles.scss +10 -0
  643. package/tabs/internal/secondary-tab.d.ts +12 -0
  644. package/tabs/internal/secondary-tab.js +16 -0
  645. package/tabs/internal/secondary-tab.js.map +1 -0
  646. package/tabs/internal/tab-styles.css.d.ts +1 -0
  647. package/tabs/internal/tab-styles.css.js +9 -0
  648. package/tabs/internal/tab-styles.css.js.map +1 -0
  649. package/tabs/internal/tab-styles.scss +10 -0
  650. package/tabs/internal/tab.d.ts +61 -0
  651. package/tabs/internal/tab.js +188 -0
  652. package/tabs/internal/tab.js.map +1 -0
  653. package/tabs/internal/tabs-styles.css.d.ts +1 -0
  654. package/tabs/internal/tabs-styles.css.js +9 -0
  655. package/tabs/internal/tabs-styles.css.js.map +1 -0
  656. package/tabs/internal/tabs-styles.scss +10 -0
  657. package/tabs/internal/tabs.d.ts +74 -0
  658. package/tabs/internal/tabs.js +283 -0
  659. package/tabs/internal/tabs.js.map +1 -0
  660. package/tabs/primary-tab.d.ts +18 -0
  661. package/tabs/primary-tab.js +22 -0
  662. package/tabs/primary-tab.js.map +1 -0
  663. package/tabs/secondary-tab.d.ts +18 -0
  664. package/tabs/secondary-tab.js +22 -0
  665. package/tabs/secondary-tab.js.map +1 -0
  666. package/tabs/tabs.d.ts +18 -0
  667. package/tabs/tabs.js +21 -0
  668. package/tabs/tabs.js.map +1 -0
  669. package/textfield/_filled-text-field.scss +1 -1
  670. package/textfield/_outlined-text-field.scss +1 -1
  671. package/textfield/filled-text-field.d.ts +2 -2
  672. package/textfield/filled-text-field.js +5 -6
  673. package/textfield/filled-text-field.js.map +1 -1
  674. package/textfield/harness.d.ts +5 -5
  675. package/textfield/harness.js +5 -12
  676. package/textfield/harness.js.map +1 -1
  677. package/textfield/internal/_filled-text-field.scss +203 -0
  678. package/textfield/internal/_input.scss +79 -0
  679. package/textfield/internal/_outlined-text-field.scss +176 -0
  680. package/textfield/internal/_shared.scss +47 -0
  681. package/textfield/internal/filled-forced-colors-styles.css.d.ts +1 -0
  682. package/textfield/internal/filled-styles.css.d.ts +1 -0
  683. package/textfield/internal/filled-styles.css.js +9 -0
  684. package/textfield/internal/filled-styles.css.js.map +1 -0
  685. package/textfield/internal/outlined-forced-colors-styles.css.d.ts +1 -0
  686. package/textfield/internal/outlined-styles.css.d.ts +1 -0
  687. package/textfield/internal/outlined-styles.css.js +9 -0
  688. package/textfield/internal/outlined-styles.css.js.map +1 -0
  689. package/textfield/internal/shared-styles.css.d.ts +1 -0
  690. package/textfield/internal/shared-styles.css.js +9 -0
  691. package/textfield/internal/shared-styles.css.js.map +1 -0
  692. package/textfield/internal/text-field.d.ts +350 -0
  693. package/textfield/internal/text-field.js +754 -0
  694. package/textfield/internal/text-field.js.map +1 -0
  695. package/textfield/outlined-text-field.d.ts +2 -2
  696. package/textfield/outlined-text-field.js +5 -6
  697. package/textfield/outlined-text-field.js.map +1 -1
  698. package/tokens/_index.scss +9 -40
  699. package/tokens/_md-comp-assist-chip.scss +9 -17
  700. package/tokens/_md-comp-badge.scss +2 -15
  701. package/tokens/_md-comp-checkbox.scss +72 -46
  702. package/tokens/_md-comp-circular-progress.scss +65 -0
  703. package/tokens/_md-comp-dialog.scss +55 -19
  704. package/tokens/_md-comp-divider.scss +13 -2
  705. package/tokens/_md-comp-elevated-button.scss +39 -35
  706. package/tokens/_md-comp-elevation.scss +11 -2
  707. package/tokens/_md-comp-fab-branded.scss +20 -15
  708. package/tokens/_md-comp-fab.scss +27 -31
  709. package/tokens/_md-comp-filled-button.scss +39 -35
  710. package/tokens/_md-comp-filled-field.scss +46 -20
  711. package/tokens/_md-comp-filled-icon-button.scss +35 -13
  712. package/tokens/_md-comp-filled-select.scss +38 -17
  713. package/tokens/_md-comp-filled-text-field.scss +20 -21
  714. package/tokens/_md-comp-filled-tonal-button.scss +39 -35
  715. package/tokens/_md-comp-filled-tonal-icon-button.scss +35 -13
  716. package/tokens/_md-comp-filter-chip.scss +10 -18
  717. package/tokens/_md-comp-focus-ring.scss +4 -2
  718. package/tokens/_md-comp-full-screen-dialog.scss +1 -1
  719. package/tokens/_md-comp-icon-button.scss +35 -15
  720. package/tokens/_md-comp-icon.scss +32 -0
  721. package/tokens/_md-comp-input-chip.scss +15 -16
  722. package/tokens/_md-comp-item.scss +87 -0
  723. package/tokens/_md-comp-linear-progress.scss +50 -0
  724. package/tokens/_md-comp-list-item.scss +125 -139
  725. package/tokens/_md-comp-list.scss +11 -109
  726. package/tokens/_md-comp-menu-item.scss +15 -10
  727. package/tokens/_md-comp-menu-list-item.scss +162 -0
  728. package/tokens/_md-comp-menu.scss +15 -12
  729. package/tokens/_md-comp-navigation-bar.scss +1 -1
  730. package/tokens/_md-comp-navigation-drawer.scss +1 -1
  731. package/tokens/_md-comp-outlined-button.scss +41 -37
  732. package/tokens/_md-comp-outlined-field.scss +42 -16
  733. package/tokens/_md-comp-outlined-icon-button.scss +37 -16
  734. package/tokens/_md-comp-outlined-segmented-button.scss +22 -24
  735. package/tokens/_md-comp-outlined-select.scss +24 -16
  736. package/tokens/_md-comp-outlined-text-field.scss +19 -20
  737. package/tokens/_md-comp-primary-tab.scss +131 -0
  738. package/tokens/_md-comp-radio.scss +73 -0
  739. package/tokens/_md-comp-ripple.scss +40 -0
  740. package/tokens/_md-comp-secondary-tab.scss +131 -0
  741. package/tokens/_md-comp-slider.scss +71 -23
  742. package/tokens/_md-comp-suggestion-chip.scss +9 -16
  743. package/tokens/_md-comp-switch.scss +75 -35
  744. package/tokens/_md-comp-test-table.scss +14 -3
  745. package/tokens/_md-comp-text-button.scss +39 -35
  746. package/tokens/_md-ref-palette.scss +102 -2
  747. package/tokens/_md-ref-typeface.scss +24 -12
  748. package/tokens/_md-sys-color.scss +99 -5
  749. package/tokens/_md-sys-elevation.scss +1 -1
  750. package/tokens/_md-sys-motion.scss +1 -1
  751. package/tokens/_md-sys-shape.scss +1 -1
  752. package/tokens/_md-sys-state.scss +1 -1
  753. package/tokens/_md-sys-typescale.scss +115 -17
  754. package/tokens/_values.scss +1 -1
  755. package/tokens/v0_192/_md-comp-assist-chip.scss +111 -0
  756. package/tokens/v0_192/_md-comp-badge.scss +61 -0
  757. package/tokens/v0_192/_md-comp-banner.scss +76 -0
  758. package/tokens/v0_192/_md-comp-bottom-app-bar.scss +36 -0
  759. package/tokens/v0_192/_md-comp-carousel-item.scss +66 -0
  760. package/tokens/v0_192/_md-comp-checkbox.scss +129 -0
  761. package/tokens/v0_192/_md-comp-circular-progress-indicator.scss +41 -0
  762. package/tokens/v0_192/_md-comp-data-table.scss +99 -0
  763. package/tokens/v0_192/_md-comp-date-input-modal.scss +90 -0
  764. package/tokens/v0_192/_md-comp-date-picker-docked.scss +247 -0
  765. package/tokens/v0_192/_md-comp-date-picker-modal.scss +306 -0
  766. package/tokens/v0_192/_md-comp-dialog.scss +124 -0
  767. package/tokens/v0_192/_md-comp-divider.scss +28 -0
  768. package/tokens/v0_192/_md-comp-elevated-button.scss +92 -0
  769. package/tokens/v0_192/_md-comp-elevated-card.scss +60 -0
  770. package/tokens/v0_192/_md-comp-extended-fab-branded.scss +89 -0
  771. package/tokens/v0_192/_md-comp-extended-fab-primary.scss +97 -0
  772. package/tokens/v0_192/_md-comp-extended-fab-secondary.scss +98 -0
  773. package/tokens/v0_192/_md-comp-extended-fab-surface.scss +93 -0
  774. package/tokens/v0_192/_md-comp-extended-fab-tertiary.scss +98 -0
  775. package/tokens/v0_192/_md-comp-fab-branded-large.scss +63 -0
  776. package/tokens/v0_192/_md-comp-fab-branded.scss +63 -0
  777. package/tokens/v0_192/_md-comp-fab-primary-large.scss +68 -0
  778. package/tokens/v0_192/_md-comp-fab-primary-small.scss +68 -0
  779. package/tokens/v0_192/_md-comp-fab-primary.scss +68 -0
  780. package/tokens/v0_192/_md-comp-fab-secondary-large.scss +69 -0
  781. package/tokens/v0_192/_md-comp-fab-secondary-small.scss +69 -0
  782. package/tokens/v0_192/_md-comp-fab-secondary.scss +69 -0
  783. package/tokens/v0_192/_md-comp-fab-surface-large.scss +67 -0
  784. package/tokens/v0_192/_md-comp-fab-surface-small.scss +67 -0
  785. package/tokens/v0_192/_md-comp-fab-surface.scss +67 -0
  786. package/tokens/v0_192/_md-comp-fab-tertiary-large.scss +69 -0
  787. package/tokens/v0_192/_md-comp-fab-tertiary-small.scss +69 -0
  788. package/tokens/v0_192/_md-comp-fab-tertiary.scss +69 -0
  789. package/tokens/v0_192/_md-comp-filled-autocomplete.scss +239 -0
  790. package/tokens/v0_192/_md-comp-filled-button.scss +92 -0
  791. package/tokens/v0_192/_md-comp-filled-card.scss +62 -0
  792. package/tokens/v0_192/_md-comp-filled-icon-button.scss +83 -0
  793. package/tokens/v0_192/_md-comp-filled-menu-button.scss +101 -0
  794. package/tokens/v0_192/_md-comp-filled-select.scss +273 -0
  795. package/tokens/v0_192/_md-comp-filled-text-field.scss +193 -0
  796. package/tokens/v0_192/_md-comp-filled-tonal-button.scss +102 -0
  797. package/tokens/v0_192/_md-comp-filled-tonal-icon-button.scss +90 -0
  798. package/tokens/v0_192/_md-comp-filter-chip.scss +210 -0
  799. package/tokens/v0_192/_md-comp-full-screen-dialog.scss +114 -0
  800. package/tokens/v0_192/_md-comp-icon-button.scss +74 -0
  801. package/tokens/v0_192/_md-comp-input-chip.scss +187 -0
  802. package/tokens/v0_192/_md-comp-linear-progress-indicator.scss +43 -0
  803. package/tokens/v0_192/_md-comp-list.scss +255 -0
  804. package/tokens/v0_192/_md-comp-menu.scss +44 -0
  805. package/tokens/v0_192/_md-comp-navigation-bar.scss +115 -0
  806. package/tokens/v0_192/_md-comp-navigation-drawer.scss +165 -0
  807. package/tokens/v0_192/_md-comp-navigation-rail.scss +119 -0
  808. package/tokens/v0_192/_md-comp-outlined-autocomplete.scss +229 -0
  809. package/tokens/v0_192/_md-comp-outlined-button.scss +87 -0
  810. package/tokens/v0_192/_md-comp-outlined-card.scss +66 -0
  811. package/tokens/v0_192/_md-comp-outlined-icon-button.scss +83 -0
  812. package/tokens/v0_192/_md-comp-outlined-menu-button.scss +97 -0
  813. package/tokens/v0_192/_md-comp-outlined-segmented-button.scss +115 -0
  814. package/tokens/v0_192/_md-comp-outlined-select.scss +263 -0
  815. package/tokens/v0_192/_md-comp-outlined-text-field.scss +174 -0
  816. package/tokens/v0_192/_md-comp-plain-tooltip.scss +58 -0
  817. package/tokens/v0_192/_md-comp-primary-navigation-tab.scss +124 -0
  818. package/tokens/v0_192/_md-comp-radio-button.scss +71 -0
  819. package/tokens/v0_192/_md-comp-rich-tooltip.scss +122 -0
  820. package/tokens/v0_192/_md-comp-scrim.scss +28 -0
  821. package/tokens/v0_192/_md-comp-search-bar.scss +100 -0
  822. package/tokens/v0_192/_md-comp-search-view.scss +94 -0
  823. package/tokens/v0_192/_md-comp-secondary-navigation-tab.scss +87 -0
  824. package/tokens/v0_192/_md-comp-sheet-bottom.scss +46 -0
  825. package/tokens/v0_192/_md-comp-sheet-floating.scss +35 -0
  826. package/tokens/v0_192/_md-comp-sheet-side.scss +94 -0
  827. package/tokens/v0_192/_md-comp-slider.scss +118 -0
  828. package/tokens/v0_192/_md-comp-snackbar.scss +130 -0
  829. package/tokens/v0_192/_md-comp-standard-menu-button.scss +101 -0
  830. package/tokens/v0_192/_md-comp-suggestion-chip.scss +127 -0
  831. package/tokens/v0_192/_md-comp-switch.scss +141 -0
  832. package/tokens/v0_192/_md-comp-text-button.scss +80 -0
  833. package/tokens/v0_192/_md-comp-time-input.scss +220 -0
  834. package/tokens/v0_192/_md-comp-time-picker.scss +267 -0
  835. package/tokens/v0_192/_md-comp-top-app-bar-large.scss +64 -0
  836. package/tokens/v0_192/_md-comp-top-app-bar-medium.scss +64 -0
  837. package/tokens/v0_192/_md-comp-top-app-bar-small-centered.scss +71 -0
  838. package/tokens/v0_192/_md-comp-top-app-bar-small.scss +67 -0
  839. package/tokens/v0_192/_md-ref-palette.scss +109 -0
  840. package/tokens/v0_192/_md-ref-typeface.scss +23 -0
  841. package/tokens/v0_192/_md-sys-color.scss +135 -0
  842. package/tokens/v0_192/_md-sys-elevation.scss +24 -0
  843. package/tokens/v0_192/_md-sys-motion.scss +55 -0
  844. package/tokens/v0_192/_md-sys-shape.scss +33 -0
  845. package/tokens/v0_192/_md-sys-state.scss +22 -0
  846. package/tokens/v0_192/_md-sys-typescale.scss +286 -0
  847. package/tokens/v0_192/index.test.css.d.ts +1 -0
  848. package/tokens/v0_192/lib.test.css.d.ts +1 -0
  849. package/typography/_typeface.scss +49 -0
  850. package/typography/_typescale.scss +50 -0
  851. package/aria/aria.d.ts +0 -43
  852. package/aria/aria.js +0 -80
  853. package/aria/aria.js.map +0 -1
  854. package/aria/delegate.d.ts +0 -37
  855. package/aria/delegate.js +0 -53
  856. package/aria/delegate.js.map +0 -1
  857. package/badge/_badge.scss +0 -6
  858. package/badge/badge.d.ts +0 -18
  859. package/badge/badge.js +0 -21
  860. package/badge/badge.js.map +0 -1
  861. package/badge/lib/_badge.scss +0 -69
  862. package/badge/lib/badge-styles.css.js +0 -9
  863. package/badge/lib/badge-styles.css.js.map +0 -1
  864. package/button/_tonal-button.scss +0 -6
  865. package/button/lib/_elevated-button.scss +0 -62
  866. package/button/lib/_elevation.scss +0 -68
  867. package/button/lib/_filled-button.scss +0 -62
  868. package/button/lib/_icon.scss +0 -42
  869. package/button/lib/_outlined-button.scss +0 -103
  870. package/button/lib/_shared.scss +0 -159
  871. package/button/lib/_text-button.scss +0 -65
  872. package/button/lib/_tonal-button.scss +0 -61
  873. package/button/lib/_touch-target.scss +0 -18
  874. package/button/lib/button.d.ts +0 -69
  875. package/button/lib/button.js +0 -174
  876. package/button/lib/button.js.map +0 -1
  877. package/button/lib/elevated-button.d.ts +0 -18
  878. package/button/lib/elevated-button.js +0 -23
  879. package/button/lib/elevated-button.js.map +0 -1
  880. package/button/lib/elevated-styles.css.js +0 -9
  881. package/button/lib/elevated-styles.css.js.map +0 -1
  882. package/button/lib/filled-button.d.ts +0 -18
  883. package/button/lib/filled-button.js +0 -23
  884. package/button/lib/filled-button.js.map +0 -1
  885. package/button/lib/filled-styles.css.js +0 -9
  886. package/button/lib/filled-styles.css.js.map +0 -1
  887. package/button/lib/outlined-button.d.ts +0 -17
  888. package/button/lib/outlined-button.js +0 -22
  889. package/button/lib/outlined-button.js.map +0 -1
  890. package/button/lib/outlined-styles.css.js +0 -9
  891. package/button/lib/outlined-styles.css.js.map +0 -1
  892. package/button/lib/shared-elevation-styles.css.js +0 -9
  893. package/button/lib/shared-elevation-styles.css.js.map +0 -1
  894. package/button/lib/shared-styles.css.js +0 -9
  895. package/button/lib/shared-styles.css.js.map +0 -1
  896. package/button/lib/text-button.d.ts +0 -16
  897. package/button/lib/text-button.js +0 -18
  898. package/button/lib/text-button.js.map +0 -1
  899. package/button/lib/text-styles.css.js +0 -9
  900. package/button/lib/text-styles.css.js.map +0 -1
  901. package/button/lib/tonal-button.d.ts +0 -18
  902. package/button/lib/tonal-button.js +0 -23
  903. package/button/lib/tonal-button.js.map +0 -1
  904. package/button/lib/tonal-styles.css.js +0 -9
  905. package/button/lib/tonal-styles.css.js.map +0 -1
  906. package/button/lib/tonal-styles.scss +0 -10
  907. package/button/tonal-button.d.ts +0 -35
  908. package/button/tonal-button.js +0 -40
  909. package/button/tonal-button.js.map +0 -1
  910. package/checkbox/lib/_checkbox.scss +0 -457
  911. package/checkbox/lib/checkbox-styles.css.js +0 -9
  912. package/checkbox/lib/checkbox-styles.css.js.map +0 -1
  913. package/checkbox/lib/checkbox.d.ts +0 -64
  914. package/checkbox/lib/checkbox.js +0 -190
  915. package/checkbox/lib/checkbox.js.map +0 -1
  916. package/checkbox/lib/forced-colors-styles.css.js +0 -9
  917. package/checkbox/lib/forced-colors-styles.css.js.map +0 -1
  918. package/checkbox/lib/forced-colors-styles.scss +0 -49
  919. package/chips/lib/_assist-chip.scss +0 -61
  920. package/chips/lib/_elevated.scss +0 -60
  921. package/chips/lib/_filter-chip.scss +0 -175
  922. package/chips/lib/_shared.scss +0 -177
  923. package/chips/lib/_suggestion-chip.scss +0 -61
  924. package/chips/lib/assist-chip.d.ts +0 -23
  925. package/chips/lib/assist-chip.js +0 -76
  926. package/chips/lib/assist-chip.js.map +0 -1
  927. package/chips/lib/assist-styles.css.js +0 -9
  928. package/chips/lib/assist-styles.css.js.map +0 -1
  929. package/chips/lib/chip.d.ts +0 -37
  930. package/chips/lib/chip.js +0 -89
  931. package/chips/lib/chip.js.map +0 -1
  932. package/chips/lib/elevated-styles.css.js +0 -9
  933. package/chips/lib/elevated-styles.css.js.map +0 -1
  934. package/chips/lib/filter-chip.d.ts +0 -26
  935. package/chips/lib/filter-chip.js +0 -80
  936. package/chips/lib/filter-chip.js.map +0 -1
  937. package/chips/lib/filter-styles.css.js +0 -9
  938. package/chips/lib/filter-styles.css.js.map +0 -1
  939. package/chips/lib/shared-styles.css.js +0 -9
  940. package/chips/lib/shared-styles.css.js.map +0 -1
  941. package/chips/lib/suggestion-styles.css.js +0 -9
  942. package/chips/lib/suggestion-styles.css.js.map +0 -1
  943. package/circularprogress/_circular-progress.scss +0 -6
  944. package/circularprogress/circular-progress.d.ts +0 -24
  945. package/circularprogress/circular-progress.js +0 -27
  946. package/circularprogress/circular-progress.js.map +0 -1
  947. package/circularprogress/harness.d.ts +0 -13
  948. package/circularprogress/harness.js +0 -16
  949. package/circularprogress/harness.js.map +0 -1
  950. package/circularprogress/lib/_circular-progress.scss +0 -288
  951. package/circularprogress/lib/circular-progress-styles.css.js +0 -9
  952. package/circularprogress/lib/circular-progress-styles.css.js.map +0 -1
  953. package/circularprogress/lib/circular-progress.d.ts +0 -27
  954. package/circularprogress/lib/circular-progress.js +0 -94
  955. package/circularprogress/lib/circular-progress.js.map +0 -1
  956. package/controller/form-associated.d.ts +0 -14
  957. package/controller/form-associated.js +0 -12
  958. package/controller/form-associated.js.map +0 -1
  959. package/controller/form-controller.d.ts +0 -66
  960. package/controller/form-controller.js +0 -74
  961. package/controller/form-controller.js.map +0 -1
  962. package/controller/shim-label-activation.d.ts +0 -18
  963. package/controller/shim-label-activation.js +0 -72
  964. package/controller/shim-label-activation.js.map +0 -1
  965. package/dialog/lib/_dialog.scss +0 -378
  966. package/dialog/lib/_tokens.scss +0 -87
  967. package/dialog/lib/dialog-styles.css.js +0 -9
  968. package/dialog/lib/dialog-styles.css.js.map +0 -1
  969. package/dialog/lib/dialog.d.ts +0 -190
  970. package/dialog/lib/dialog.js +0 -545
  971. package/dialog/lib/dialog.js.map +0 -1
  972. package/divider/lib/_divider.scss +0 -56
  973. package/elevation/lib/_elevation.scss +0 -165
  974. package/elevation/lib/elevation-styles.css.js +0 -9
  975. package/elevation/lib/elevation-styles.css.js.map +0 -1
  976. package/elevation/lib/elevation.d.ts +0 -12
  977. package/elevation/lib/elevation.js +0 -15
  978. package/elevation/lib/elevation.js.map +0 -1
  979. package/fab/lib/_fab.scss +0 -245
  980. package/fab/lib/_shared.scss +0 -224
  981. package/fab/lib/fab-branded-styles.css.js +0 -9
  982. package/fab/lib/fab-branded-styles.css.js.map +0 -1
  983. package/fab/lib/fab-styles.css.js +0 -9
  984. package/fab/lib/fab-styles.css.js.map +0 -1
  985. package/fab/lib/fab.d.ts +0 -25
  986. package/fab/lib/fab.js.map +0 -1
  987. package/fab/lib/forced-colors-styles.css.js +0 -9
  988. package/fab/lib/forced-colors-styles.css.js.map +0 -1
  989. package/fab/lib/forced-colors-styles.scss +0 -26
  990. package/fab/lib/shared-styles.css.js +0 -9
  991. package/fab/lib/shared-styles.css.js.map +0 -1
  992. package/fab/lib/shared.d.ts +0 -49
  993. package/fab/lib/shared.js +0 -113
  994. package/fab/lib/shared.js.map +0 -1
  995. package/field/lib/_content.scss +0 -175
  996. package/field/lib/_filled-field.scss +0 -189
  997. package/field/lib/_label.scss +0 -74
  998. package/field/lib/_outlined-field.scss +0 -313
  999. package/field/lib/_shared.scss +0 -65
  1000. package/field/lib/_supporting-text.scss +0 -56
  1001. package/field/lib/field.d.ts +0 -41
  1002. package/field/lib/field.js +0 -236
  1003. package/field/lib/field.js.map +0 -1
  1004. package/field/lib/filled-styles.css.js +0 -9
  1005. package/field/lib/filled-styles.css.js.map +0 -1
  1006. package/field/lib/outlined-field.d.ts +0 -13
  1007. package/field/lib/outlined-field.js.map +0 -1
  1008. package/field/lib/outlined-styles.css.js +0 -9
  1009. package/field/lib/outlined-styles.css.js.map +0 -1
  1010. package/field/lib/shared-styles.css.js +0 -9
  1011. package/field/lib/shared-styles.css.js.map +0 -1
  1012. package/focus/focus-ring.d.ts +0 -20
  1013. package/focus/focus-ring.js +0 -23
  1014. package/focus/focus-ring.js.map +0 -1
  1015. package/focus/lib/_focus-ring.scss +0 -86
  1016. package/focus/lib/focus-ring-styles.css.js +0 -9
  1017. package/focus/lib/focus-ring-styles.css.js.map +0 -1
  1018. package/focus/lib/focus-ring.d.ts +0 -72
  1019. package/focus/lib/focus-ring.js +0 -139
  1020. package/focus/lib/focus-ring.js.map +0 -1
  1021. package/icon/lib/_icon.scss +0 -61
  1022. package/icon/lib/_md-comp-icon.scss +0 -18
  1023. package/icon/lib/icon-styles.css.js +0 -9
  1024. package/icon/lib/icon-styles.css.js.map +0 -1
  1025. package/icon/lib/icon.d.ts +0 -12
  1026. package/icon/lib/icon.js +0 -15
  1027. package/icon/lib/icon.js.map +0 -1
  1028. package/iconbutton/_standard-icon-button.scss +0 -6
  1029. package/iconbutton/lib/_filled-icon-button.scss +0 -157
  1030. package/iconbutton/lib/_filled-tonal-icon-button.scss +0 -159
  1031. package/iconbutton/lib/_outlined-icon-button.scss +0 -180
  1032. package/iconbutton/lib/_shared.scss +0 -163
  1033. package/iconbutton/lib/_standard-icon-button.scss +0 -115
  1034. package/iconbutton/lib/filled-styles.css.js +0 -9
  1035. package/iconbutton/lib/filled-styles.css.js.map +0 -1
  1036. package/iconbutton/lib/filled-tonal-styles.css.js +0 -9
  1037. package/iconbutton/lib/filled-tonal-styles.css.js.map +0 -1
  1038. package/iconbutton/lib/icon-button.d.ts +0 -63
  1039. package/iconbutton/lib/icon-button.js +0 -179
  1040. package/iconbutton/lib/icon-button.js.map +0 -1
  1041. package/iconbutton/lib/outlined-styles.css.js +0 -9
  1042. package/iconbutton/lib/outlined-styles.css.js.map +0 -1
  1043. package/iconbutton/lib/shared-styles.css.js +0 -9
  1044. package/iconbutton/lib/shared-styles.css.js.map +0 -1
  1045. package/iconbutton/lib/standard-styles.css.js +0 -9
  1046. package/iconbutton/lib/standard-styles.css.js.map +0 -1
  1047. package/iconbutton/lib/standard-styles.scss +0 -10
  1048. package/iconbutton/standard-icon-button.d.ts +0 -34
  1049. package/iconbutton/standard-icon-button.js +0 -39
  1050. package/iconbutton/standard-icon-button.js.map +0 -1
  1051. package/linearprogress/_linear-progress.scss +0 -6
  1052. package/linearprogress/harness.d.ts +0 -13
  1053. package/linearprogress/harness.js +0 -18
  1054. package/linearprogress/harness.js.map +0 -1
  1055. package/linearprogress/lib/_linear-progress.scss +0 -386
  1056. package/linearprogress/lib/linear-progress-styles.css.js +0 -9
  1057. package/linearprogress/lib/linear-progress-styles.css.js.map +0 -1
  1058. package/linearprogress/lib/linear-progress.d.ts +0 -35
  1059. package/linearprogress/lib/linear-progress.js +0 -127
  1060. package/linearprogress/lib/linear-progress.js.map +0 -1
  1061. package/linearprogress/linear-progress.d.ts +0 -23
  1062. package/linearprogress/linear-progress.js +0 -26
  1063. package/linearprogress/linear-progress.js.map +0 -1
  1064. package/list/lib/_list.scss +0 -55
  1065. package/list/lib/list-styles.css.js +0 -9
  1066. package/list/lib/list-styles.css.js.map +0 -1
  1067. package/list/lib/list.d.ts +0 -110
  1068. package/list/lib/list.js +0 -260
  1069. package/list/lib/list.js.map +0 -1
  1070. package/list/lib/listitem/_list-item.scss +0 -425
  1071. package/list/lib/listitem/forced-colors-styles.css.js +0 -9
  1072. package/list/lib/listitem/forced-colors-styles.css.js.map +0 -1
  1073. package/list/lib/listitem/forced-colors-styles.scss +0 -23
  1074. package/list/lib/listitem/harness.d.ts +0 -13
  1075. package/list/lib/listitem/harness.js +0 -17
  1076. package/list/lib/listitem/harness.js.map +0 -1
  1077. package/list/lib/listitem/list-item-styles.css.js +0 -9
  1078. package/list/lib/listitem/list-item-styles.css.js.map +0 -1
  1079. package/list/lib/listitem/list-item.d.ts +0 -129
  1080. package/list/lib/listitem/list-item.js +0 -236
  1081. package/list/lib/listitem/list-item.js.map +0 -1
  1082. package/list/lib/listitemlink/list-item-link.d.ts +0 -17
  1083. package/list/lib/listitemlink/list-item-link.js +0 -38
  1084. package/list/lib/listitemlink/list-item-link.js.map +0 -1
  1085. package/list/list-item-link.d.ts +0 -53
  1086. package/list/list-item-link.js +0 -57
  1087. package/list/list-item-link.js.map +0 -1
  1088. package/localization/localize.d.ts +0 -15
  1089. package/localization/localize.js +0 -18
  1090. package/localization/localize.js.map +0 -1
  1091. package/menu/lib/_menu.scss +0 -103
  1092. package/menu/lib/menu-styles.css.js +0 -9
  1093. package/menu/lib/menu-styles.css.js.map +0 -1
  1094. package/menu/lib/menu.d.ts +0 -211
  1095. package/menu/lib/menu.js +0 -650
  1096. package/menu/lib/menu.js.map +0 -1
  1097. package/menu/lib/menuitem/_menu-item.scss +0 -60
  1098. package/menu/lib/menuitem/forced-colors-styles.css.js +0 -9
  1099. package/menu/lib/menuitem/forced-colors-styles.css.js.map +0 -1
  1100. package/menu/lib/menuitem/forced-colors-styles.scss +0 -22
  1101. package/menu/lib/menuitem/harness.d.ts +0 -11
  1102. package/menu/lib/menuitem/harness.js +0 -12
  1103. package/menu/lib/menuitem/harness.js.map +0 -1
  1104. package/menu/lib/menuitem/menu-item-styles.css.js +0 -9
  1105. package/menu/lib/menuitem/menu-item-styles.css.js.map +0 -1
  1106. package/menu/lib/menuitem/menu-item.d.ts +0 -28
  1107. package/menu/lib/menuitem/menu-item.js +0 -51
  1108. package/menu/lib/menuitem/menu-item.js.map +0 -1
  1109. package/menu/lib/menuitemlink/menu-item-link.d.ts +0 -23
  1110. package/menu/lib/menuitemlink/menu-item-link.js +0 -49
  1111. package/menu/lib/menuitemlink/menu-item-link.js.map +0 -1
  1112. package/menu/lib/shared.d.ts +0 -178
  1113. package/menu/lib/shared.js +0 -142
  1114. package/menu/lib/shared.js.map +0 -1
  1115. package/menu/lib/submenuitem/harness.d.ts +0 -11
  1116. package/menu/lib/submenuitem/harness.js +0 -12
  1117. package/menu/lib/submenuitem/harness.js.map +0 -1
  1118. package/menu/lib/submenuitem/sub-menu-item.d.ts +0 -99
  1119. package/menu/lib/submenuitem/sub-menu-item.js +0 -293
  1120. package/menu/lib/submenuitem/sub-menu-item.js.map +0 -1
  1121. package/menu/lib/surfacePositionController.d.ts +0 -125
  1122. package/menu/lib/surfacePositionController.js +0 -200
  1123. package/menu/lib/surfacePositionController.js.map +0 -1
  1124. package/menu/lib/typeaheadController.d.ts +0 -157
  1125. package/menu/lib/typeaheadController.js +0 -252
  1126. package/menu/lib/typeaheadController.js.map +0 -1
  1127. package/menu/menu-item-link.d.ts +0 -33
  1128. package/menu/menu-item-link.js +0 -38
  1129. package/menu/menu-item-link.js.map +0 -1
  1130. package/menu/sub-menu-item.d.ts +0 -60
  1131. package/menu/sub-menu-item.js +0 -65
  1132. package/menu/sub-menu-item.js.map +0 -1
  1133. package/motion/animation.d.ts +0 -80
  1134. package/motion/animation.js +0 -101
  1135. package/motion/animation.js.map +0 -1
  1136. package/navigationbar/_navigation-bar.scss +0 -6
  1137. package/navigationbar/harness.d.ts +0 -19
  1138. package/navigationbar/harness.js +0 -29
  1139. package/navigationbar/harness.js.map +0 -1
  1140. package/navigationbar/lib/_navigation-bar.scss +0 -68
  1141. package/navigationbar/lib/constants.d.ts +0 -17
  1142. package/navigationbar/lib/constants.js.map +0 -1
  1143. package/navigationbar/lib/navigation-bar-styles.css.js +0 -9
  1144. package/navigationbar/lib/navigation-bar-styles.css.js.map +0 -1
  1145. package/navigationbar/lib/navigation-bar.d.ts +0 -27
  1146. package/navigationbar/lib/navigation-bar.js +0 -140
  1147. package/navigationbar/lib/navigation-bar.js.map +0 -1
  1148. package/navigationbar/lib/state.d.ts +0 -23
  1149. package/navigationbar/lib/state.js.map +0 -1
  1150. package/navigationbar/navigation-bar.d.ts +0 -18
  1151. package/navigationbar/navigation-bar.js +0 -21
  1152. package/navigationbar/navigation-bar.js.map +0 -1
  1153. package/navigationdrawer/_navigation-drawer-modal.scss +0 -6
  1154. package/navigationdrawer/_navigation-drawer.scss +0 -6
  1155. package/navigationdrawer/lib/_navigation-drawer-modal.scss +0 -107
  1156. package/navigationdrawer/lib/_navigation-drawer.scss +0 -94
  1157. package/navigationdrawer/lib/navigation-drawer-modal-styles.css.js +0 -9
  1158. package/navigationdrawer/lib/navigation-drawer-modal-styles.css.js.map +0 -1
  1159. package/navigationdrawer/lib/navigation-drawer-modal.js +0 -83
  1160. package/navigationdrawer/lib/navigation-drawer-modal.js.map +0 -1
  1161. package/navigationdrawer/lib/navigation-drawer-styles.css.js +0 -9
  1162. package/navigationdrawer/lib/navigation-drawer-styles.css.js.map +0 -1
  1163. package/navigationdrawer/lib/navigation-drawer.d.ts +0 -17
  1164. package/navigationdrawer/lib/navigation-drawer.js +0 -66
  1165. package/navigationdrawer/lib/navigation-drawer.js.map +0 -1
  1166. package/navigationdrawer/navigation-drawer-modal.d.ts +0 -18
  1167. package/navigationdrawer/navigation-drawer-modal.js +0 -22
  1168. package/navigationdrawer/navigation-drawer-modal.js.map +0 -1
  1169. package/navigationdrawer/navigation-drawer.d.ts +0 -18
  1170. package/navigationdrawer/navigation-drawer.js +0 -22
  1171. package/navigationdrawer/navigation-drawer.js.map +0 -1
  1172. package/navigationtab/_navigation-tab.scss +0 -6
  1173. package/navigationtab/harness.d.ts +0 -13
  1174. package/navigationtab/harness.js +0 -16
  1175. package/navigationtab/harness.js.map +0 -1
  1176. package/navigationtab/lib/_navigation-tab.scss +0 -261
  1177. package/navigationtab/lib/navigation-tab-styles.css.js +0 -9
  1178. package/navigationtab/lib/navigation-tab-styles.css.js.map +0 -1
  1179. package/navigationtab/lib/navigation-tab.d.ts +0 -35
  1180. package/navigationtab/lib/navigation-tab.js +0 -135
  1181. package/navigationtab/lib/navigation-tab.js.map +0 -1
  1182. package/navigationtab/navigation-tab.d.ts +0 -18
  1183. package/navigationtab/navigation-tab.js +0 -21
  1184. package/navigationtab/navigation-tab.js.map +0 -1
  1185. package/radio/lib/_radio.scss +0 -167
  1186. package/radio/lib/forced-colors-styles.css.js +0 -9
  1187. package/radio/lib/forced-colors-styles.css.js.map +0 -1
  1188. package/radio/lib/forced-colors-styles.scss +0 -29
  1189. package/radio/lib/radio-styles.css.js +0 -9
  1190. package/radio/lib/radio-styles.css.js.map +0 -1
  1191. package/radio/lib/radio.d.ts +0 -54
  1192. package/radio/lib/radio.js +0 -152
  1193. package/radio/lib/radio.js.map +0 -1
  1194. package/radio/lib/single-selection-controller.js +0 -193
  1195. package/radio/lib/single-selection-controller.js.map +0 -1
  1196. package/ripple/directive.d.ts +0 -31
  1197. package/ripple/directive.js +0 -79
  1198. package/ripple/directive.js.map +0 -1
  1199. package/ripple/lib/_md-comp-ripple.scss +0 -30
  1200. package/ripple/lib/_ripple.scss +0 -114
  1201. package/ripple/lib/ripple-styles.css.js +0 -9
  1202. package/ripple/lib/ripple-styles.css.js.map +0 -1
  1203. package/ripple/lib/ripple.d.ts +0 -64
  1204. package/ripple/lib/ripple.js +0 -354
  1205. package/ripple/lib/ripple.js.map +0 -1
  1206. package/sass/_assert.scss +0 -23
  1207. package/sass/_color-scheme.scss +0 -92
  1208. package/sass/_color.scss +0 -170
  1209. package/sass/_dom.scss +0 -52
  1210. package/sass/_feature-flags.scss +0 -119
  1211. package/sass/_map-ext.scss +0 -51
  1212. package/sass/_theme.scss +0 -249
  1213. package/sass/_touch-target.scss +0 -22
  1214. package/sass/_var.scss +0 -245
  1215. package/segmentedbutton/lib/_outlined-segmented-button.scss +0 -46
  1216. package/segmentedbutton/lib/_shared.scss +0 -382
  1217. package/segmentedbutton/lib/outlined-styles.css.js +0 -9
  1218. package/segmentedbutton/lib/outlined-styles.css.js.map +0 -1
  1219. package/segmentedbutton/lib/segmented-button.d.ts +0 -48
  1220. package/segmentedbutton/lib/segmented-button.js +0 -175
  1221. package/segmentedbutton/lib/segmented-button.js.map +0 -1
  1222. package/segmentedbutton/lib/shared-styles.css.js +0 -9
  1223. package/segmentedbutton/lib/shared-styles.css.js.map +0 -1
  1224. package/segmentedbutton/outlined-segmented-button.d.ts +0 -20
  1225. package/segmentedbutton/outlined-segmented-button.js +0 -24
  1226. package/segmentedbutton/outlined-segmented-button.js.map +0 -1
  1227. package/segmentedbuttonset/lib/_outlined-segmented-button-set.scss +0 -53
  1228. package/segmentedbuttonset/lib/outlined-styles.css.js +0 -9
  1229. package/segmentedbuttonset/lib/outlined-styles.css.js.map +0 -1
  1230. package/segmentedbuttonset/lib/segmented-button-set.d.ts +0 -26
  1231. package/segmentedbuttonset/lib/segmented-button-set.js +0 -110
  1232. package/segmentedbuttonset/lib/segmented-button-set.js.map +0 -1
  1233. package/segmentedbuttonset/outlined-segmented-button-set.d.ts +0 -20
  1234. package/segmentedbuttonset/outlined-segmented-button-set.js +0 -24
  1235. package/segmentedbuttonset/outlined-segmented-button-set.js.map +0 -1
  1236. package/select/lib/_filled-select.scss +0 -222
  1237. package/select/lib/_outlined-select.scss +0 -180
  1238. package/select/lib/_shared.scss +0 -48
  1239. package/select/lib/filled-select-styles.css.js +0 -9
  1240. package/select/lib/filled-select-styles.css.js.map +0 -1
  1241. package/select/lib/outlined-select-styles.css.js +0 -9
  1242. package/select/lib/outlined-select-styles.css.js.map +0 -1
  1243. package/select/lib/select.d.ts +0 -216
  1244. package/select/lib/select.js +0 -589
  1245. package/select/lib/select.js.map +0 -1
  1246. package/select/lib/selectoption/harness.d.ts +0 -11
  1247. package/select/lib/selectoption/harness.js +0 -12
  1248. package/select/lib/selectoption/harness.js.map +0 -1
  1249. package/select/lib/selectoption/select-option.d.ts +0 -30
  1250. package/select/lib/selectoption/select-option.js +0 -71
  1251. package/select/lib/selectoption/select-option.js.map +0 -1
  1252. package/select/lib/shared-styles.css.js +0 -9
  1253. package/select/lib/shared-styles.css.js.map +0 -1
  1254. package/select/lib/shared.d.ts +0 -52
  1255. package/select/lib/shared.js +0 -41
  1256. package/select/lib/shared.js.map +0 -1
  1257. package/slider/lib/_slider.scss +0 -476
  1258. package/slider/lib/forced-colors-styles.css.js +0 -9
  1259. package/slider/lib/forced-colors-styles.css.js.map +0 -1
  1260. package/slider/lib/forced-colors-styles.scss +0 -53
  1261. package/slider/lib/slider-styles.css.js +0 -9
  1262. package/slider/lib/slider-styles.css.js.map +0 -1
  1263. package/slider/lib/slider.d.ts +0 -124
  1264. package/slider/lib/slider.js +0 -485
  1265. package/slider/lib/slider.js.map +0 -1
  1266. package/switch/lib/README.md +0 -55
  1267. package/switch/lib/_handle.scss +0 -168
  1268. package/switch/lib/_icon.scss +0 -73
  1269. package/switch/lib/_switch.scss +0 -226
  1270. package/switch/lib/_track.scss +0 -98
  1271. package/switch/lib/switch-styles.css.js +0 -9
  1272. package/switch/lib/switch-styles.css.js.map +0 -1
  1273. package/switch/lib/switch.d.ts +0 -75
  1274. package/switch/lib/switch.js +0 -215
  1275. package/switch/lib/switch.js.map +0 -1
  1276. package/textfield/lib/_filled-text-field.scss +0 -205
  1277. package/textfield/lib/_input.scss +0 -61
  1278. package/textfield/lib/_outlined-text-field.scss +0 -161
  1279. package/textfield/lib/_shared.scss +0 -41
  1280. package/textfield/lib/filled-styles.css.js +0 -9
  1281. package/textfield/lib/filled-styles.css.js.map +0 -1
  1282. package/textfield/lib/outlined-styles.css.js +0 -9
  1283. package/textfield/lib/outlined-styles.css.js.map +0 -1
  1284. package/textfield/lib/shared-styles.css.js +0 -9
  1285. package/textfield/lib/shared-styles.css.js.map +0 -1
  1286. package/textfield/lib/text-field.d.ts +0 -338
  1287. package/textfield/lib/text-field.js +0 -720
  1288. package/textfield/lib/text-field.js.map +0 -1
  1289. package/tokens/_md-comp-banner.scss +0 -23
  1290. package/tokens/_md-comp-bottom-app-bar.scss +0 -21
  1291. package/tokens/_md-comp-carousel-item.scss +0 -23
  1292. package/tokens/_md-comp-circular-progress-indicator.scss +0 -63
  1293. package/tokens/_md-comp-data-table.scss +0 -23
  1294. package/tokens/_md-comp-date-input-modal.scss +0 -23
  1295. package/tokens/_md-comp-date-picker-docked.scss +0 -25
  1296. package/tokens/_md-comp-date-picker-modal.scss +0 -25
  1297. package/tokens/_md-comp-elevated-card.scss +0 -23
  1298. package/tokens/_md-comp-filled-autocomplete.scss +0 -25
  1299. package/tokens/_md-comp-filled-card.scss +0 -23
  1300. package/tokens/_md-comp-filled-menu-button.scss +0 -25
  1301. package/tokens/_md-comp-linear-progress-indicator.scss +0 -50
  1302. package/tokens/_md-comp-navigation-rail.scss +0 -25
  1303. package/tokens/_md-comp-outlined-autocomplete.scss +0 -28
  1304. package/tokens/_md-comp-outlined-card.scss +0 -23
  1305. package/tokens/_md-comp-outlined-menu-button.scss +0 -23
  1306. package/tokens/_md-comp-plain-tooltip.scss +0 -21
  1307. package/tokens/_md-comp-primary-navigation-tab.scss +0 -50
  1308. package/tokens/_md-comp-radio-button.scss +0 -19
  1309. package/tokens/_md-comp-rich-tooltip.scss +0 -25
  1310. package/tokens/_md-comp-scrim.scss +0 -17
  1311. package/tokens/_md-comp-search-bar.scss +0 -25
  1312. package/tokens/_md-comp-search-view.scss +0 -23
  1313. package/tokens/_md-comp-secondary-navigation-tab.scss +0 -49
  1314. package/tokens/_md-comp-sheet-bottom.scss +0 -21
  1315. package/tokens/_md-comp-sheet-floating.scss +0 -21
  1316. package/tokens/_md-comp-sheet-side.scss +0 -25
  1317. package/tokens/_md-comp-snackbar.scss +0 -25
  1318. package/tokens/_md-comp-standard-menu-button.scss +0 -23
  1319. package/tokens/_md-comp-time-input.scss +0 -25
  1320. package/tokens/_md-comp-time-picker.scss +0 -25
  1321. package/tokens/_md-comp-top-app-bar-large.scss +0 -23
  1322. package/tokens/_md-comp-top-app-bar-medium.scss +0 -23
  1323. package/tokens/_md-comp-top-app-bar-small-centered.scss +0 -26
  1324. package/tokens/_md-comp-top-app-bar-small.scss +0 -23
  1325. package/tokens/v0_172/_md-comp-assist-chip.scss +0 -108
  1326. package/tokens/v0_172/_md-comp-badge.scss +0 -58
  1327. package/tokens/v0_172/_md-comp-banner.scss +0 -73
  1328. package/tokens/v0_172/_md-comp-bottom-app-bar.scss +0 -33
  1329. package/tokens/v0_172/_md-comp-carousel-item.scss +0 -63
  1330. package/tokens/v0_172/_md-comp-checkbox.scss +0 -126
  1331. package/tokens/v0_172/_md-comp-circular-progress-indicator.scss +0 -39
  1332. package/tokens/v0_172/_md-comp-data-table.scss +0 -96
  1333. package/tokens/v0_172/_md-comp-date-input-modal.scss +0 -87
  1334. package/tokens/v0_172/_md-comp-date-picker-docked.scss +0 -244
  1335. package/tokens/v0_172/_md-comp-date-picker-modal.scss +0 -303
  1336. package/tokens/v0_172/_md-comp-dialog.scss +0 -121
  1337. package/tokens/v0_172/_md-comp-divider.scss +0 -25
  1338. package/tokens/v0_172/_md-comp-elevated-button.scss +0 -89
  1339. package/tokens/v0_172/_md-comp-elevated-card.scss +0 -57
  1340. package/tokens/v0_172/_md-comp-extended-fab-branded.scss +0 -86
  1341. package/tokens/v0_172/_md-comp-extended-fab-primary.scss +0 -94
  1342. package/tokens/v0_172/_md-comp-extended-fab-secondary.scss +0 -95
  1343. package/tokens/v0_172/_md-comp-extended-fab-surface.scss +0 -90
  1344. package/tokens/v0_172/_md-comp-extended-fab-tertiary.scss +0 -95
  1345. package/tokens/v0_172/_md-comp-fab-branded-large.scss +0 -60
  1346. package/tokens/v0_172/_md-comp-fab-branded.scss +0 -60
  1347. package/tokens/v0_172/_md-comp-fab-primary-large.scss +0 -65
  1348. package/tokens/v0_172/_md-comp-fab-primary-small.scss +0 -65
  1349. package/tokens/v0_172/_md-comp-fab-primary.scss +0 -65
  1350. package/tokens/v0_172/_md-comp-fab-secondary-large.scss +0 -66
  1351. package/tokens/v0_172/_md-comp-fab-secondary-small.scss +0 -66
  1352. package/tokens/v0_172/_md-comp-fab-secondary.scss +0 -66
  1353. package/tokens/v0_172/_md-comp-fab-surface-large.scss +0 -64
  1354. package/tokens/v0_172/_md-comp-fab-surface-small.scss +0 -64
  1355. package/tokens/v0_172/_md-comp-fab-surface.scss +0 -64
  1356. package/tokens/v0_172/_md-comp-fab-tertiary-large.scss +0 -66
  1357. package/tokens/v0_172/_md-comp-fab-tertiary-small.scss +0 -66
  1358. package/tokens/v0_172/_md-comp-fab-tertiary.scss +0 -66
  1359. package/tokens/v0_172/_md-comp-filled-autocomplete.scss +0 -265
  1360. package/tokens/v0_172/_md-comp-filled-button.scss +0 -89
  1361. package/tokens/v0_172/_md-comp-filled-card.scss +0 -59
  1362. package/tokens/v0_172/_md-comp-filled-icon-button.scss +0 -79
  1363. package/tokens/v0_172/_md-comp-filled-menu-button.scss +0 -98
  1364. package/tokens/v0_172/_md-comp-filled-select.scss +0 -270
  1365. package/tokens/v0_172/_md-comp-filled-text-field.scss +0 -190
  1366. package/tokens/v0_172/_md-comp-filled-tonal-button.scss +0 -99
  1367. package/tokens/v0_172/_md-comp-filled-tonal-icon-button.scss +0 -86
  1368. package/tokens/v0_172/_md-comp-filter-chip.scss +0 -207
  1369. package/tokens/v0_172/_md-comp-full-screen-dialog.scss +0 -111
  1370. package/tokens/v0_172/_md-comp-icon-button.scss +0 -70
  1371. package/tokens/v0_172/_md-comp-input-chip.scss +0 -184
  1372. package/tokens/v0_172/_md-comp-linear-progress-indicator.scss +0 -41
  1373. package/tokens/v0_172/_md-comp-list.scss +0 -248
  1374. package/tokens/v0_172/_md-comp-menu.scss +0 -35
  1375. package/tokens/v0_172/_md-comp-navigation-bar.scss +0 -112
  1376. package/tokens/v0_172/_md-comp-navigation-drawer.scss +0 -162
  1377. package/tokens/v0_172/_md-comp-navigation-rail.scss +0 -116
  1378. package/tokens/v0_172/_md-comp-outlined-autocomplete.scss +0 -255
  1379. package/tokens/v0_172/_md-comp-outlined-button.scss +0 -84
  1380. package/tokens/v0_172/_md-comp-outlined-card.scss +0 -63
  1381. package/tokens/v0_172/_md-comp-outlined-icon-button.scss +0 -79
  1382. package/tokens/v0_172/_md-comp-outlined-menu-button.scss +0 -94
  1383. package/tokens/v0_172/_md-comp-outlined-segmented-button.scss +0 -112
  1384. package/tokens/v0_172/_md-comp-outlined-select.scss +0 -260
  1385. package/tokens/v0_172/_md-comp-outlined-text-field.scss +0 -171
  1386. package/tokens/v0_172/_md-comp-plain-tooltip.scss +0 -55
  1387. package/tokens/v0_172/_md-comp-primary-navigation-tab.scss +0 -121
  1388. package/tokens/v0_172/_md-comp-radio-button.scss +0 -68
  1389. package/tokens/v0_172/_md-comp-rich-tooltip.scss +0 -119
  1390. package/tokens/v0_172/_md-comp-scrim.scss +0 -25
  1391. package/tokens/v0_172/_md-comp-search-bar.scss +0 -97
  1392. package/tokens/v0_172/_md-comp-search-view.scss +0 -91
  1393. package/tokens/v0_172/_md-comp-secondary-navigation-tab.scss +0 -84
  1394. package/tokens/v0_172/_md-comp-sheet-bottom.scss +0 -44
  1395. package/tokens/v0_172/_md-comp-sheet-floating.scss +0 -32
  1396. package/tokens/v0_172/_md-comp-sheet-side.scss +0 -91
  1397. package/tokens/v0_172/_md-comp-slider.scss +0 -115
  1398. package/tokens/v0_172/_md-comp-snackbar.scss +0 -127
  1399. package/tokens/v0_172/_md-comp-standard-menu-button.scss +0 -98
  1400. package/tokens/v0_172/_md-comp-suggestion-chip.scss +0 -124
  1401. package/tokens/v0_172/_md-comp-switch.scss +0 -138
  1402. package/tokens/v0_172/_md-comp-text-button.scss +0 -77
  1403. package/tokens/v0_172/_md-comp-time-input.scss +0 -217
  1404. package/tokens/v0_172/_md-comp-time-picker.scss +0 -264
  1405. package/tokens/v0_172/_md-comp-top-app-bar-large.scss +0 -61
  1406. package/tokens/v0_172/_md-comp-top-app-bar-medium.scss +0 -61
  1407. package/tokens/v0_172/_md-comp-top-app-bar-small-centered.scss +0 -68
  1408. package/tokens/v0_172/_md-comp-top-app-bar-small.scss +0 -64
  1409. package/tokens/v0_172/_md-ref-palette.scss +0 -107
  1410. package/tokens/v0_172/_md-ref-typeface.scss +0 -21
  1411. package/tokens/v0_172/_md-sys-color.scss +0 -904
  1412. package/tokens/v0_172/_md-sys-elevation.scss +0 -21
  1413. package/tokens/v0_172/_md-sys-motion.scss +0 -53
  1414. package/tokens/v0_172/_md-sys-shape.scss +0 -30
  1415. package/tokens/v0_172/_md-sys-state.scss +0 -19
  1416. package/tokens/v0_172/_md-sys-typescale.scss +0 -284
  1417. package/types/aria.d.ts +0 -106
  1418. package/types/keys.d.ts +0 -57
  1419. /package/button/{lib → internal}/elevated-styles.css.d.ts +0 -0
  1420. /package/button/{lib → internal}/elevated-styles.scss +0 -0
  1421. /package/button/{lib → internal}/filled-styles.css.d.ts +0 -0
  1422. /package/button/{lib → internal}/filled-styles.scss +0 -0
  1423. /package/{iconbutton/lib → button/internal}/filled-tonal-styles.css.d.ts +0 -0
  1424. /package/button/{lib → internal}/outlined-styles.css.d.ts +0 -0
  1425. /package/button/{lib → internal}/outlined-styles.scss +0 -0
  1426. /package/button/{lib → internal}/shared-elevation-styles.css.d.ts +0 -0
  1427. /package/button/{lib → internal}/shared-elevation-styles.scss +0 -0
  1428. /package/button/{lib → internal}/shared-styles.css.d.ts +0 -0
  1429. /package/button/{lib → internal}/shared-styles.scss +0 -0
  1430. /package/button/{lib → internal}/text-styles.css.d.ts +0 -0
  1431. /package/button/{lib → internal}/text-styles.scss +0 -0
  1432. /package/checkbox/{lib → internal}/checkbox-styles.css.d.ts +0 -0
  1433. /package/checkbox/{lib → internal}/checkbox-styles.scss +0 -0
  1434. /package/chips/{lib → internal}/assist-styles.css.d.ts +0 -0
  1435. /package/chips/{lib → internal}/assist-styles.scss +0 -0
  1436. /package/{badge/lib/badge-styles.css.d.ts → chips/internal/chip-set-styles.css.d.ts} +0 -0
  1437. /package/chips/{lib → internal}/elevated-styles.css.d.ts +0 -0
  1438. /package/chips/{lib → internal}/elevated-styles.scss +0 -0
  1439. /package/chips/{lib → internal}/filter-styles.css.d.ts +0 -0
  1440. /package/chips/{lib → internal}/filter-styles.scss +0 -0
  1441. /package/{button/lib/tonal-styles.css.d.ts → chips/internal/input-styles.css.d.ts} +0 -0
  1442. /package/{checkbox/lib/forced-colors-styles.css.d.ts → chips/internal/selectable-styles.css.d.ts} +0 -0
  1443. /package/chips/{lib → internal}/shared-styles.css.d.ts +0 -0
  1444. /package/chips/{lib → internal}/shared-styles.scss +0 -0
  1445. /package/chips/{lib → internal}/suggestion-chip.d.ts +0 -0
  1446. /package/chips/{lib → internal}/suggestion-chip.js +0 -0
  1447. /package/chips/{lib → internal}/suggestion-chip.js.map +0 -0
  1448. /package/chips/{lib → internal}/suggestion-styles.css.d.ts +0 -0
  1449. /package/chips/{lib → internal}/suggestion-styles.scss +0 -0
  1450. /package/{circularprogress/lib/circular-progress-styles.css.d.ts → chips/internal/trailing-icon-styles.css.d.ts} +0 -0
  1451. /package/dialog/{lib → internal}/dialog-styles.css.d.ts +0 -0
  1452. /package/dialog/{lib → internal}/dialog-styles.scss +0 -0
  1453. /package/divider/{lib → internal}/divider-styles.css.d.ts +0 -0
  1454. /package/divider/{lib → internal}/divider-styles.css.js +0 -0
  1455. /package/divider/{lib → internal}/divider-styles.css.js.map +0 -0
  1456. /package/divider/{lib → internal}/divider-styles.scss +0 -0
  1457. /package/divider/{lib → internal}/divider.d.ts +0 -0
  1458. /package/divider/{lib → internal}/divider.js +0 -0
  1459. /package/divider/{lib → internal}/divider.js.map +0 -0
  1460. /package/elevation/{lib → internal}/elevation-styles.css.d.ts +0 -0
  1461. /package/elevation/{lib → internal}/elevation-styles.scss +0 -0
  1462. /package/fab/{lib → internal}/_fab-branded.scss +0 -0
  1463. /package/fab/{lib → internal}/fab-branded-styles.css.d.ts +0 -0
  1464. /package/fab/{lib → internal}/fab-branded-styles.scss +0 -0
  1465. /package/fab/{lib → internal}/fab-styles.css.d.ts +0 -0
  1466. /package/fab/{lib → internal}/fab-styles.scss +0 -0
  1467. /package/fab/{lib → internal}/fab.js +0 -0
  1468. /package/fab/{lib → internal}/forced-colors-styles.css.d.ts +0 -0
  1469. /package/fab/{lib → internal}/shared-styles.css.d.ts +0 -0
  1470. /package/fab/{lib → internal}/shared-styles.scss +0 -0
  1471. /package/field/{lib → internal}/filled-field.d.ts +0 -0
  1472. /package/field/{lib → internal}/filled-field.js +0 -0
  1473. /package/field/{lib → internal}/filled-field.js.map +0 -0
  1474. /package/field/{lib → internal}/filled-styles.css.d.ts +0 -0
  1475. /package/field/{lib → internal}/filled-styles.scss +0 -0
  1476. /package/field/{lib → internal}/outlined-field.js +0 -0
  1477. /package/field/{lib → internal}/outlined-styles.css.d.ts +0 -0
  1478. /package/field/{lib → internal}/outlined-styles.scss +0 -0
  1479. /package/field/{lib → internal}/shared-styles.css.d.ts +0 -0
  1480. /package/field/{lib → internal}/shared-styles.scss +0 -0
  1481. /package/focus/{lib → internal}/focus-ring-styles.css.d.ts +0 -0
  1482. /package/focus/{lib → internal}/focus-ring-styles.scss +0 -0
  1483. /package/icon/{lib → internal}/icon-styles.css.d.ts +0 -0
  1484. /package/icon/{lib → internal}/icon-styles.scss +0 -0
  1485. /package/iconbutton/{lib → internal}/filled-styles.css.d.ts +0 -0
  1486. /package/iconbutton/{lib → internal}/filled-styles.scss +0 -0
  1487. /package/iconbutton/{lib/outlined-styles.css.d.ts → internal/filled-tonal-styles.css.d.ts} +0 -0
  1488. /package/iconbutton/{lib → internal}/filled-tonal-styles.scss +0 -0
  1489. /package/{segmentedbutton/lib → iconbutton/internal}/outlined-styles.css.d.ts +0 -0
  1490. /package/iconbutton/{lib → internal}/outlined-styles.scss +0 -0
  1491. /package/iconbutton/{lib → internal}/shared-styles.css.d.ts +0 -0
  1492. /package/iconbutton/{lib → internal}/shared-styles.scss +0 -0
  1493. /package/iconbutton/{lib → internal}/standard-styles.css.d.ts +0 -0
  1494. /package/{controller → internal/controller}/events.d.ts +0 -0
  1495. /package/{controller → internal/controller}/events.js +0 -0
  1496. /package/{controller → internal/controller}/events.js.map +0 -0
  1497. /package/{controller → internal/controller}/is-rtl.d.ts +0 -0
  1498. /package/{controller → internal/controller}/is-rtl.js +0 -0
  1499. /package/{controller → internal/controller}/is-rtl.js.map +0 -0
  1500. /package/{controller → internal/controller}/string-converter.d.ts +0 -0
  1501. /package/{controller → internal/controller}/string-converter.js +0 -0
  1502. /package/{controller → internal/controller}/string-converter.js.map +0 -0
  1503. /package/{motion → internal/motion}/_animation.scss +0 -0
  1504. /package/{sass → internal/sass}/_string-ext.scss +0 -0
  1505. /package/{linearprogress/lib/linear-progress-styles.css.d.ts → labs/badge/internal/badge-styles.css.d.ts} +0 -0
  1506. /package/{badge/lib → labs/badge/internal}/badge-styles.scss +0 -0
  1507. /package/{badge/lib → labs/badge/internal}/badge.d.ts +0 -0
  1508. /package/{badge/lib → labs/badge/internal}/badge.js +0 -0
  1509. /package/{badge/lib → labs/badge/internal}/badge.js.map +0 -0
  1510. /package/{list/lib/list-styles.css.d.ts → labs/item/internal/item-styles.css.d.ts} +0 -0
  1511. /package/{navigationbar/lib → labs/navigationbar/internal}/constants.js +0 -0
  1512. /package/{navigationbar/lib → labs/navigationbar/internal}/navigation-bar-styles.css.d.ts +0 -0
  1513. /package/{navigationbar/lib → labs/navigationbar/internal}/navigation-bar-styles.scss +0 -0
  1514. /package/{navigationbar/lib → labs/navigationbar/internal}/state.js +0 -0
  1515. /package/{navigationdrawer/lib → labs/navigationdrawer/internal}/_shared.scss +0 -0
  1516. /package/{navigationdrawer/lib → labs/navigationdrawer/internal}/navigation-drawer-modal-styles.css.d.ts +0 -0
  1517. /package/{navigationdrawer/lib → labs/navigationdrawer/internal}/navigation-drawer-modal-styles.scss +0 -0
  1518. /package/{navigationdrawer/lib → labs/navigationdrawer/internal}/navigation-drawer-modal.d.ts +0 -0
  1519. /package/{navigationdrawer/lib → labs/navigationdrawer/internal}/navigation-drawer-styles.css.d.ts +0 -0
  1520. /package/{navigationdrawer/lib → labs/navigationdrawer/internal}/navigation-drawer-styles.scss +0 -0
  1521. /package/{navigationdrawer/lib → labs/navigationdrawer/internal}/shared-styles.css.d.ts +0 -0
  1522. /package/{navigationdrawer/lib → labs/navigationdrawer/internal}/shared-styles.css.js +0 -0
  1523. /package/{navigationdrawer/lib → labs/navigationdrawer/internal}/shared-styles.css.js.map +0 -0
  1524. /package/{navigationdrawer/lib → labs/navigationdrawer/internal}/shared-styles.scss +0 -0
  1525. /package/{navigationtab/lib → labs/navigationtab/internal}/navigation-tab-styles.css.d.ts +0 -0
  1526. /package/{navigationtab/lib → labs/navigationtab/internal}/navigation-tab-styles.scss +0 -0
  1527. /package/{navigationtab/lib → labs/navigationtab/internal}/state.d.ts +0 -0
  1528. /package/{navigationtab/lib → labs/navigationtab/internal}/state.js +0 -0
  1529. /package/{navigationtab/lib → labs/navigationtab/internal}/state.js.map +0 -0
  1530. /package/{segmentedbutton/lib → labs/segmentedbutton/internal}/outlined-segmented-button.d.ts +0 -0
  1531. /package/{segmentedbutton/lib → labs/segmentedbutton/internal}/outlined-segmented-button.js +0 -0
  1532. /package/{segmentedbutton/lib → labs/segmentedbutton/internal}/outlined-segmented-button.js.map +0 -0
  1533. /package/{segmentedbuttonset/lib → labs/segmentedbutton/internal}/outlined-styles.css.d.ts +0 -0
  1534. /package/{segmentedbutton/lib → labs/segmentedbutton/internal}/outlined-styles.scss +0 -0
  1535. /package/{segmentedbutton/lib → labs/segmentedbutton/internal}/shared-styles.css.d.ts +0 -0
  1536. /package/{segmentedbutton/lib → labs/segmentedbutton/internal}/shared-styles.scss +0 -0
  1537. /package/{segmentedbuttonset/lib → labs/segmentedbuttonset/internal}/_shared.scss +0 -0
  1538. /package/{segmentedbuttonset/lib → labs/segmentedbuttonset/internal}/outlined-segmented-button-set.d.ts +0 -0
  1539. /package/{segmentedbuttonset/lib → labs/segmentedbuttonset/internal}/outlined-segmented-button-set.js +0 -0
  1540. /package/{segmentedbuttonset/lib → labs/segmentedbuttonset/internal}/outlined-segmented-button-set.js.map +0 -0
  1541. /package/{textfield/lib → labs/segmentedbuttonset/internal}/outlined-styles.css.d.ts +0 -0
  1542. /package/{segmentedbuttonset/lib → labs/segmentedbuttonset/internal}/outlined-styles.scss +0 -0
  1543. /package/{segmentedbuttonset/lib → labs/segmentedbuttonset/internal}/shared-styles.css.d.ts +0 -0
  1544. /package/{segmentedbuttonset/lib → labs/segmentedbuttonset/internal}/shared-styles.css.js +0 -0
  1545. /package/{segmentedbuttonset/lib → labs/segmentedbuttonset/internal}/shared-styles.css.js.map +0 -0
  1546. /package/{segmentedbuttonset/lib → labs/segmentedbuttonset/internal}/shared-styles.scss +0 -0
  1547. /package/list/{lib/listitem/forced-colors-styles.css.d.ts → internal/list-styles.css.d.ts} +0 -0
  1548. /package/list/{lib → internal}/list-styles.scss +0 -0
  1549. /package/{menu/lib → list/internal/listitem}/forced-colors-styles.css.d.ts +0 -0
  1550. /package/list/{lib → internal}/listitem/list-item-styles.css.d.ts +0 -0
  1551. /package/list/{lib → internal}/listitem/list-item-styles.scss +0 -0
  1552. /package/menu/{lib/menuitem → internal}/forced-colors-styles.css.d.ts +0 -0
  1553. /package/menu/{lib → internal}/forced-colors-styles.css.js +0 -0
  1554. /package/menu/{lib → internal}/forced-colors-styles.css.js.map +0 -0
  1555. /package/menu/{lib → internal}/forced-colors-styles.scss +0 -0
  1556. /package/menu/{lib → internal}/menu-styles.css.d.ts +0 -0
  1557. /package/menu/{lib → internal}/menu-styles.scss +0 -0
  1558. /package/{radio/lib → menu/internal/menuitem}/forced-colors-styles.css.d.ts +0 -0
  1559. /package/menu/{lib → internal}/menuitem/menu-item-styles.css.d.ts +0 -0
  1560. /package/menu/{lib → internal}/menuitem/menu-item-styles.scss +0 -0
  1561. /package/{radio/lib/radio-styles.css.d.ts → menu/internal/submenu/sub-menu-styles.css.d.ts} +0 -0
  1562. /package/menu/{lib → internal}/types.d.ts +0 -0
  1563. /package/menu/{lib → internal}/types.js +0 -0
  1564. /package/menu/{lib → internal}/types.js.map +0 -0
  1565. /package/{ripple/lib/ripple-styles.css.d.ts → progress/internal/circular-progress-styles.css.d.ts} +0 -0
  1566. /package/{circularprogress/lib → progress/internal}/circular-progress-styles.scss +0 -0
  1567. /package/{select/lib/filled-forced-colors-styles.css.d.ts → progress/internal/linear-progress-styles.css.d.ts} +0 -0
  1568. /package/{linearprogress/lib → progress/internal}/linear-progress-styles.scss +0 -0
  1569. /package/{slider/lib → radio/internal}/forced-colors-styles.css.d.ts +0 -0
  1570. /package/{select/lib/filled-select-styles.css.d.ts → radio/internal/radio-styles.css.d.ts} +0 -0
  1571. /package/radio/{lib → internal}/radio-styles.scss +0 -0
  1572. /package/radio/{lib → internal}/single-selection-controller.d.ts +0 -0
  1573. /package/{select/lib/outlined-forced-colors-styles.css.d.ts → ripple/internal/ripple-styles.css.d.ts} +0 -0
  1574. /package/ripple/{lib → internal}/ripple-styles.scss +0 -0
  1575. /package/{textfield/lib → select/internal}/filled-forced-colors-styles.css.d.ts +0 -0
  1576. /package/select/{lib → internal}/filled-forced-colors-styles.css.js +0 -0
  1577. /package/select/{lib → internal}/filled-forced-colors-styles.css.js.map +0 -0
  1578. /package/select/{lib → internal}/filled-forced-colors-styles.scss +0 -0
  1579. /package/select/{lib/outlined-select-styles.css.d.ts → internal/filled-select-styles.css.d.ts} +0 -0
  1580. /package/select/{lib → internal}/filled-select-styles.scss +0 -0
  1581. /package/select/{lib → internal}/filled-select.d.ts +0 -0
  1582. /package/select/{lib → internal}/filled-select.js +0 -0
  1583. /package/select/{lib → internal}/filled-select.js.map +0 -0
  1584. /package/{textfield/lib → select/internal}/outlined-forced-colors-styles.css.d.ts +0 -0
  1585. /package/select/{lib → internal}/outlined-forced-colors-styles.css.js +0 -0
  1586. /package/select/{lib → internal}/outlined-forced-colors-styles.css.js.map +0 -0
  1587. /package/select/{lib → internal}/outlined-forced-colors-styles.scss +0 -0
  1588. /package/select/{lib/shared-styles.css.d.ts → internal/outlined-select-styles.css.d.ts} +0 -0
  1589. /package/select/{lib → internal}/outlined-select-styles.scss +0 -0
  1590. /package/select/{lib → internal}/outlined-select.d.ts +0 -0
  1591. /package/select/{lib → internal}/outlined-select.js +0 -0
  1592. /package/select/{lib → internal}/outlined-select.js.map +0 -0
  1593. /package/{textfield/lib → select/internal}/shared-styles.css.d.ts +0 -0
  1594. /package/select/{lib → internal}/shared-styles.scss +0 -0
  1595. /package/slider/{lib/slider-styles.css.d.ts → internal/forced-colors-styles.css.d.ts} +0 -0
  1596. /package/{switch/lib/switch-styles.css.d.ts → slider/internal/slider-styles.css.d.ts} +0 -0
  1597. /package/slider/{lib → internal}/slider-styles.scss +0 -0
  1598. /package/{textfield/lib/filled-styles.css.d.ts → switch/internal/forced-colors-styles.css.d.ts} +0 -0
  1599. /package/{tokens/v0_172/index.test.css.d.ts → switch/internal/switch-styles.css.d.ts} +0 -0
  1600. /package/switch/{lib → internal}/switch-styles.scss +0 -0
  1601. /package/{tokens/v0_172/lib.test.css.d.ts → tabs/internal/primary-tab-styles.css.d.ts} +0 -0
  1602. /package/textfield/{lib → internal}/_icon.scss +0 -0
  1603. /package/textfield/{lib → internal}/filled-forced-colors-styles.css.js +0 -0
  1604. /package/textfield/{lib → internal}/filled-forced-colors-styles.css.js.map +0 -0
  1605. /package/textfield/{lib → internal}/filled-forced-colors-styles.scss +0 -0
  1606. /package/textfield/{lib → internal}/filled-styles.scss +0 -0
  1607. /package/textfield/{lib → internal}/filled-text-field.d.ts +0 -0
  1608. /package/textfield/{lib → internal}/filled-text-field.js +0 -0
  1609. /package/textfield/{lib → internal}/filled-text-field.js.map +0 -0
  1610. /package/textfield/{lib → internal}/outlined-forced-colors-styles.css.js +0 -0
  1611. /package/textfield/{lib → internal}/outlined-forced-colors-styles.css.js.map +0 -0
  1612. /package/textfield/{lib → internal}/outlined-forced-colors-styles.scss +0 -0
  1613. /package/textfield/{lib → internal}/outlined-styles.scss +0 -0
  1614. /package/textfield/{lib → internal}/outlined-text-field.d.ts +0 -0
  1615. /package/textfield/{lib → internal}/outlined-text-field.js +0 -0
  1616. /package/textfield/{lib → internal}/outlined-text-field.js.map +0 -0
  1617. /package/textfield/{lib → internal}/shared-styles.scss +0 -0
  1618. /package/tokens/{v0_172 → v0_192}/_index.scss +0 -0
  1619. /package/tokens/{v0_172 → v0_192}/index.test.css.js +0 -0
  1620. /package/tokens/{v0_172 → v0_192}/index.test.css.js.map +0 -0
  1621. /package/tokens/{v0_172 → v0_192}/index.test.scss +0 -0
  1622. /package/tokens/{v0_172 → v0_192}/lib.test.css.js +0 -0
  1623. /package/tokens/{v0_172 → v0_192}/lib.test.css.js.map +0 -0
  1624. /package/tokens/{v0_172 → v0_192}/lib.test.scss +0 -0
@@ -0,0 +1,188 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2023 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ var _a;
7
+ import { __decorate } from "tslib";
8
+ import '../../elevation/elevation.js';
9
+ import '../../focus/md-focus-ring.js';
10
+ import '../../ripple/ripple.js';
11
+ import { html, isServer, LitElement, nothing } from 'lit';
12
+ import { property, query, queryAssignedElements, queryAssignedNodes, state } from 'lit/decorators.js';
13
+ import { classMap } from 'lit/directives/class-map.js';
14
+ import { polyfillElementInternalsAria, setupHostAria } from '../../internal/aria/aria.js';
15
+ import { EASING } from '../../internal/motion/animation.js';
16
+ /**
17
+ * Symbol for tabs to use to animate their indicators based off another tab's
18
+ * indicator.
19
+ */
20
+ const INDICATOR = Symbol('indicator');
21
+ /**
22
+ * Symbol used by the tab bar to request a tab to animate its indicator from a
23
+ * previously selected tab.
24
+ */
25
+ export const ANIMATE_INDICATOR = Symbol('animateIndicator');
26
+ /**
27
+ * Tab component.
28
+ */
29
+ export class Tab extends LitElement {
30
+ /**
31
+ * TODO(b/293476210): remove after migrating
32
+ * @deprecated use `active`
33
+ */
34
+ get selected() {
35
+ return this.active;
36
+ }
37
+ set selected(active) {
38
+ this.active = active;
39
+ }
40
+ constructor() {
41
+ super();
42
+ /**
43
+ * Whether or not the tab is selected.
44
+ **/
45
+ this.active = false;
46
+ /**
47
+ * In SSR, set this to true when an icon is present.
48
+ */
49
+ this.hasIcon = false;
50
+ /**
51
+ * In SSR, set this to true when there is no label and only an icon.
52
+ */
53
+ this.iconOnly = false;
54
+ this.fullWidthIndicator = false;
55
+ this.internals = polyfillElementInternalsAria(this, this /* needed for closure */.attachInternals());
56
+ if (!isServer) {
57
+ this.internals.role = 'tab';
58
+ this.addEventListener('keydown', this.handleKeydown.bind(this));
59
+ }
60
+ }
61
+ render() {
62
+ const indicator = html `<div class="indicator"></div>`;
63
+ return html `
64
+ <div class="button" role="presentation" @click=${this.handleContentClick}>
65
+ <md-focus-ring part="focus-ring" inward
66
+ .control=${this}></md-focus-ring>
67
+ <md-elevation></md-elevation>
68
+ <md-ripple .control=${this}></md-ripple>
69
+ <div class="content ${classMap(this.getContentClasses())}"
70
+ role="presentation">
71
+ <slot name="icon" @slotchange=${this.handleIconSlotChange}></slot>
72
+ <slot @slotchange=${this.handleSlotChange}></slot>
73
+ ${this.fullWidthIndicator ? nothing : indicator}
74
+ </div>
75
+ ${this.fullWidthIndicator ? indicator : nothing}
76
+ </div>`;
77
+ }
78
+ getContentClasses() {
79
+ return {
80
+ 'has-icon': this.hasIcon,
81
+ 'has-label': !this.iconOnly,
82
+ };
83
+ }
84
+ updated() {
85
+ this.internals.ariaSelected = String(this.active);
86
+ }
87
+ async handleKeydown(event) {
88
+ // Allow event to bubble.
89
+ await 0;
90
+ if (event.defaultPrevented) {
91
+ return;
92
+ }
93
+ if (event.key === 'Enter' || event.key === ' ') {
94
+ // Prevent default behavior such as scrolling when pressing spacebar.
95
+ event.preventDefault();
96
+ this.click();
97
+ }
98
+ }
99
+ handleContentClick(event) {
100
+ // Ensure the "click" target is always the tab, and not content, by stopping
101
+ // propagation of content clicks and re-clicking the host.
102
+ event.stopPropagation();
103
+ this.click();
104
+ }
105
+ [(_a = INDICATOR, ANIMATE_INDICATOR)](previousTab) {
106
+ if (!this[INDICATOR]) {
107
+ return;
108
+ }
109
+ this[INDICATOR].getAnimations().forEach(a => {
110
+ a.cancel();
111
+ });
112
+ const frames = this.getKeyframes(previousTab);
113
+ if (frames !== null) {
114
+ this[INDICATOR].animate(frames, { duration: 250, easing: EASING.EMPHASIZED });
115
+ }
116
+ }
117
+ getKeyframes(previousTab) {
118
+ const reduceMotion = shouldReduceMotion();
119
+ if (!this.active) {
120
+ return reduceMotion ? [{ 'opacity': 1 }, { 'transform': 'none' }] : null;
121
+ }
122
+ const from = {};
123
+ const fromRect = previousTab[INDICATOR]?.getBoundingClientRect() ?? {};
124
+ const fromPos = fromRect.left;
125
+ const fromExtent = fromRect.width;
126
+ const toRect = this[INDICATOR].getBoundingClientRect();
127
+ const toPos = toRect.left;
128
+ const toExtent = toRect.width;
129
+ const scale = fromExtent / toExtent;
130
+ if (!reduceMotion && fromPos !== undefined && toPos !== undefined &&
131
+ !isNaN(scale)) {
132
+ from['transform'] = `translateX(${(fromPos - toPos).toFixed(4)}px) scaleX(${scale.toFixed(4)})`;
133
+ }
134
+ else {
135
+ from['opacity'] = 0;
136
+ }
137
+ // note, including `transform: none` avoids quirky Safari behavior
138
+ // that can hide the animation.
139
+ return [from, { 'transform': 'none' }];
140
+ }
141
+ handleSlotChange() {
142
+ this.iconOnly = false;
143
+ // Check if there's any label text or elements. If not, then there is only
144
+ // an icon.
145
+ for (const node of this.assignedDefaultNodes) {
146
+ const hasTextContent = node.nodeType === Node.TEXT_NODE &&
147
+ !!node.wholeText.match(/\S/);
148
+ if (node.nodeType === Node.ELEMENT_NODE || hasTextContent) {
149
+ return;
150
+ }
151
+ }
152
+ this.iconOnly = true;
153
+ }
154
+ handleIconSlotChange() {
155
+ this.hasIcon = this.assignedIcons.length > 0;
156
+ }
157
+ }
158
+ (() => {
159
+ setupHostAria(Tab);
160
+ })();
161
+ __decorate([
162
+ property({ type: Boolean, reflect: true })
163
+ ], Tab.prototype, "active", void 0);
164
+ __decorate([
165
+ property({ type: Boolean })
166
+ ], Tab.prototype, "selected", null);
167
+ __decorate([
168
+ property({ type: Boolean, attribute: 'has-icon' })
169
+ ], Tab.prototype, "hasIcon", void 0);
170
+ __decorate([
171
+ property({ type: Boolean, attribute: 'icon-only' })
172
+ ], Tab.prototype, "iconOnly", void 0);
173
+ __decorate([
174
+ query('.indicator')
175
+ ], Tab.prototype, _a, void 0);
176
+ __decorate([
177
+ state()
178
+ ], Tab.prototype, "fullWidthIndicator", void 0);
179
+ __decorate([
180
+ queryAssignedNodes({ flatten: true })
181
+ ], Tab.prototype, "assignedDefaultNodes", void 0);
182
+ __decorate([
183
+ queryAssignedElements({ slot: 'icon', flatten: true })
184
+ ], Tab.prototype, "assignedIcons", void 0);
185
+ function shouldReduceMotion() {
186
+ return window.matchMedia('(prefers-reduced-motion: reduce)').matches;
187
+ }
188
+ //# sourceMappingURL=tab.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tab.js","sourceRoot":"","sources":["tab.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport '../../elevation/elevation.js';\nimport '../../focus/md-focus-ring.js';\nimport '../../ripple/ripple.js';\n\nimport {html, isServer, LitElement, nothing} from 'lit';\nimport {property, query, queryAssignedElements, queryAssignedNodes, state} from 'lit/decorators.js';\nimport {classMap} from 'lit/directives/class-map.js';\n\nimport {polyfillElementInternalsAria, setupHostAria} from '../../internal/aria/aria.js';\nimport {EASING} from '../../internal/motion/animation.js';\n\n/**\n * Symbol for tabs to use to animate their indicators based off another tab's\n * indicator.\n */\nconst INDICATOR = Symbol('indicator');\n\n/**\n * Symbol used by the tab bar to request a tab to animate its indicator from a\n * previously selected tab.\n */\nexport const ANIMATE_INDICATOR = Symbol('animateIndicator');\n\n/**\n * Tab component.\n */\nexport class Tab extends LitElement {\n static {\n setupHostAria(Tab);\n }\n\n /**\n * Whether or not the tab is selected.\n **/\n @property({type: Boolean, reflect: true}) active = false;\n\n /**\n * TODO(b/293476210): remove after migrating\n * @deprecated use `active`\n */\n @property({type: Boolean})\n get selected() {\n return this.active;\n }\n set selected(active: boolean) {\n this.active = active;\n }\n\n /**\n * In SSR, set this to true when an icon is present.\n */\n @property({type: Boolean, attribute: 'has-icon'}) hasIcon = false;\n\n /**\n * In SSR, set this to true when there is no label and only an icon.\n */\n @property({type: Boolean, attribute: 'icon-only'}) iconOnly = false;\n\n @query('.indicator') readonly[INDICATOR]!: HTMLElement|null;\n @state() protected fullWidthIndicator = false;\n @queryAssignedNodes({flatten: true})\n private readonly assignedDefaultNodes!: Node[];\n @queryAssignedElements({slot: 'icon', flatten: true})\n private readonly assignedIcons!: HTMLElement[];\n private readonly internals = polyfillElementInternalsAria(\n this, (this as HTMLElement /* needed for closure */).attachInternals());\n\n constructor() {\n super();\n if (!isServer) {\n this.internals.role = 'tab';\n this.addEventListener('keydown', this.handleKeydown.bind(this));\n }\n }\n\n protected override render() {\n const indicator = html`<div class=\"indicator\"></div>`;\n return html`\n <div class=\"button\" role=\"presentation\" @click=${this.handleContentClick}>\n <md-focus-ring part=\"focus-ring\" inward\n .control=${this}></md-focus-ring>\n <md-elevation></md-elevation>\n <md-ripple .control=${this}></md-ripple>\n <div class=\"content ${classMap(this.getContentClasses())}\"\n role=\"presentation\">\n <slot name=\"icon\" @slotchange=${this.handleIconSlotChange}></slot>\n <slot @slotchange=${this.handleSlotChange}></slot>\n ${this.fullWidthIndicator ? nothing : indicator}\n </div>\n ${this.fullWidthIndicator ? indicator : nothing}\n </div>`;\n }\n\n protected getContentClasses() {\n return {\n 'has-icon': this.hasIcon,\n 'has-label': !this.iconOnly,\n };\n }\n\n protected override updated() {\n this.internals.ariaSelected = String(this.active);\n }\n\n private async handleKeydown(event: KeyboardEvent) {\n // Allow event to bubble.\n await 0;\n if (event.defaultPrevented) {\n return;\n }\n\n if (event.key === 'Enter' || event.key === ' ') {\n // Prevent default behavior such as scrolling when pressing spacebar.\n event.preventDefault();\n this.click();\n }\n }\n\n private handleContentClick(event: Event) {\n // Ensure the \"click\" target is always the tab, and not content, by stopping\n // propagation of content clicks and re-clicking the host.\n event.stopPropagation();\n this.click();\n }\n\n [ANIMATE_INDICATOR](previousTab: Tab) {\n if (!this[INDICATOR]) {\n return;\n }\n\n this[INDICATOR].getAnimations().forEach(a => {\n a.cancel();\n });\n const frames = this.getKeyframes(previousTab);\n if (frames !== null) {\n this[INDICATOR].animate(\n frames, {duration: 250, easing: EASING.EMPHASIZED});\n }\n }\n\n private getKeyframes(previousTab: Tab) {\n const reduceMotion = shouldReduceMotion();\n if (!this.active) {\n return reduceMotion ? [{'opacity': 1}, {'transform': 'none'}] : null;\n }\n\n const from: Keyframe = {};\n const fromRect =\n previousTab[INDICATOR]?.getBoundingClientRect() ?? ({} as DOMRect);\n const fromPos = fromRect.left;\n const fromExtent = fromRect.width;\n const toRect = this[INDICATOR]!.getBoundingClientRect();\n const toPos = toRect.left;\n const toExtent = toRect.width;\n const scale = fromExtent / toExtent;\n if (!reduceMotion && fromPos !== undefined && toPos !== undefined &&\n !isNaN(scale)) {\n from['transform'] = `translateX(${\n (fromPos - toPos).toFixed(4)}px) scaleX(${scale.toFixed(4)})`;\n } else {\n from['opacity'] = 0;\n }\n // note, including `transform: none` avoids quirky Safari behavior\n // that can hide the animation.\n return [from, {'transform': 'none'}];\n }\n\n private handleSlotChange() {\n this.iconOnly = false;\n // Check if there's any label text or elements. If not, then there is only\n // an icon.\n for (const node of this.assignedDefaultNodes) {\n const hasTextContent = node.nodeType === Node.TEXT_NODE &&\n !!(node as Text).wholeText.match(/\\S/);\n if (node.nodeType === Node.ELEMENT_NODE || hasTextContent) {\n return;\n }\n }\n\n this.iconOnly = true;\n }\n\n private handleIconSlotChange() {\n this.hasIcon = this.assignedIcons.length > 0;\n }\n}\n\nfunction shouldReduceMotion() {\n return window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n}\n"]}
@@ -0,0 +1 @@
1
+ export declare const styles: import("lit").CSSResult;
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { css } from 'lit';
7
+ export const styles = css `:host{box-sizing:border-box;display:flex;flex-direction:column;overflow:auto;scroll-behavior:smooth;scrollbar-width:none;position:relative}:host([hidden]){display:none}:host::-webkit-scrollbar{display:none}.tabs{align-items:end;display:flex;height:100%;overflow:inherit;justify-content:space-between;width:100%}::slotted(*){flex:1}::slotted([active]){z-index:1}/*# sourceMappingURL=tabs-styles.css.map */
8
+ `;
9
+ //# sourceMappingURL=tabs-styles.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tabs-styles.css.js","sourceRoot":"","sources":["tabs-styles.css.ts"],"names":[],"mappings":"AAAA;;;;IAII;AACH,OAAO,EAAC,GAAG,EAAC,MAAM,KAAK,CAAC;AACxB,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;CACzB,CAAC","sourcesContent":["/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n import {css} from 'lit';\n export const styles = css`:host{box-sizing:border-box;display:flex;flex-direction:column;overflow:auto;scroll-behavior:smooth;scrollbar-width:none;position:relative}:host([hidden]){display:none}:host::-webkit-scrollbar{display:none}.tabs{align-items:end;display:flex;height:100%;overflow:inherit;justify-content:space-between;width:100%}::slotted(*){flex:1}::slotted([active]){z-index:1}/*# sourceMappingURL=tabs-styles.css.map */\n`;\n "]}
@@ -0,0 +1,10 @@
1
+ //
2
+ // Copyright 2023 Google LLC
3
+ // SPDX-License-Identifier: Apache-2.0
4
+ //
5
+
6
+ // go/keep-sorted start
7
+ @use './tabs';
8
+ // go/keep-sorted end
9
+
10
+ @include tabs.styles;
@@ -0,0 +1,74 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2023 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import '../../divider/divider.js';
7
+ import { LitElement } from 'lit';
8
+ import { Tab } from './tab.js';
9
+ /**
10
+ * @fires change Fired when the selected tab changes. The target's selected or
11
+ * selectedItem and previousSelected or previousSelectedItem provide information
12
+ * about the selection change. The change event is fired when a user interaction
13
+ * like a space/enter key or click cause a selection change. The tab selection
14
+ * based on these actions can be cancelled by calling preventDefault on the
15
+ * triggering `keydown` or `click` event.
16
+ *
17
+ * @example
18
+ * // perform an action if a tab is clicked
19
+ * tabs.addEventListener('change', (event: Event) => {
20
+ * if (event.target.selected === 2)
21
+ * takeAction();
22
+ * }
23
+ * });
24
+ *
25
+ * // prevent a click from triggering tab selection under some condition
26
+ * tabs.addEventListener('click', (event: Event) => {
27
+ * if (notReady)
28
+ * event.preventDefault();
29
+ * }
30
+ * });
31
+ *
32
+ */
33
+ export declare class Tabs extends LitElement {
34
+ /**
35
+ * The tabs of this tab bar.
36
+ */
37
+ get tabs(): Tab[];
38
+ /**
39
+ * The currently selected tab, `null` only when there are no tab children.
40
+ */
41
+ get activeTab(): Tab | null;
42
+ set activeTab(tab: Tab | null);
43
+ /**
44
+ * The index of the currently selected tab.
45
+ */
46
+ get activeTabIndex(): number;
47
+ set activeTabIndex(index: number);
48
+ /**
49
+ * Whether or not to automatically select a tab when it is focused.
50
+ */
51
+ autoActivate: boolean;
52
+ private readonly slotElement;
53
+ private readonly maybeTabs;
54
+ private get focusedTab();
55
+ private readonly internals;
56
+ constructor();
57
+ /**
58
+ * Scrolls the toolbar, if overflowing, to the active tab, or the provided
59
+ * tab.
60
+ *
61
+ * @param tabToScrollTo The tab that should be scrolled to. Defaults to the
62
+ * active tab.
63
+ * @return A Promise that resolves after the tab has been scrolled to.
64
+ */
65
+ scrollToTab(tabToScrollTo?: Tab | null): Promise<void>;
66
+ protected render(): import("lit-html").TemplateResult<1>;
67
+ private handleTabClick;
68
+ private activateTab;
69
+ private updateFocusableTab;
70
+ private handleKeydown;
71
+ private handleKeyup;
72
+ private handleFocusout;
73
+ private handleSlotChange;
74
+ }
@@ -0,0 +1,283 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2023 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { __decorate } from "tslib";
7
+ import '../../divider/divider.js';
8
+ import { html, isServer, LitElement } from 'lit';
9
+ import { property, query, queryAssignedElements } from 'lit/decorators.js';
10
+ import { polyfillElementInternalsAria, setupHostAria } from '../../internal/aria/aria.js';
11
+ import { ANIMATE_INDICATOR, Tab } from './tab.js';
12
+ /**
13
+ * @fires change Fired when the selected tab changes. The target's selected or
14
+ * selectedItem and previousSelected or previousSelectedItem provide information
15
+ * about the selection change. The change event is fired when a user interaction
16
+ * like a space/enter key or click cause a selection change. The tab selection
17
+ * based on these actions can be cancelled by calling preventDefault on the
18
+ * triggering `keydown` or `click` event.
19
+ *
20
+ * @example
21
+ * // perform an action if a tab is clicked
22
+ * tabs.addEventListener('change', (event: Event) => {
23
+ * if (event.target.selected === 2)
24
+ * takeAction();
25
+ * }
26
+ * });
27
+ *
28
+ * // prevent a click from triggering tab selection under some condition
29
+ * tabs.addEventListener('click', (event: Event) => {
30
+ * if (notReady)
31
+ * event.preventDefault();
32
+ * }
33
+ * });
34
+ *
35
+ */
36
+ export class Tabs extends LitElement {
37
+ /**
38
+ * The tabs of this tab bar.
39
+ */
40
+ get tabs() {
41
+ return this.maybeTabs.filter(isTab);
42
+ }
43
+ /**
44
+ * The currently selected tab, `null` only when there are no tab children.
45
+ */
46
+ get activeTab() {
47
+ return this.tabs.find(tab => tab.active) ?? null;
48
+ }
49
+ set activeTab(tab) {
50
+ // Ignore setting activeTab to null. As long as there are children, one tab
51
+ // must be selected.
52
+ if (tab) {
53
+ this.activateTab(tab);
54
+ }
55
+ }
56
+ /**
57
+ * The index of the currently selected tab.
58
+ */
59
+ get activeTabIndex() {
60
+ return this.tabs.findIndex(tab => tab.active);
61
+ }
62
+ set activeTabIndex(index) {
63
+ const activateTabAtIndex = () => {
64
+ const tab = this.tabs[index];
65
+ // Ignore out-of-bound indices.
66
+ if (tab) {
67
+ this.activateTab(tab);
68
+ }
69
+ };
70
+ if (!this.slotElement) {
71
+ // This is needed to support setting the activeTabIndex via a lit property
72
+ // binding.
73
+ //
74
+ // ```ts
75
+ // html`
76
+ // <md-tabs .activeTabIndex=${1}>
77
+ // <md-tab>First</md-tab>
78
+ // <md-tab>Second</md-tab>
79
+ // </md-tabs>
80
+ // `;
81
+ // ```
82
+ //
83
+ // It's needed since lit's rendering lifecycle is asynchronous, and the
84
+ // `<slot>` element hasn't rendered, so `tabs` is empty.
85
+ this.updateComplete.then(activateTabAtIndex);
86
+ return;
87
+ }
88
+ activateTabAtIndex();
89
+ }
90
+ get focusedTab() {
91
+ return this.tabs.find(tab => tab.matches(':focus-within'));
92
+ }
93
+ constructor() {
94
+ super();
95
+ /**
96
+ * Whether or not to automatically select a tab when it is focused.
97
+ */
98
+ this.autoActivate = false;
99
+ this.internals = polyfillElementInternalsAria(this, this /* needed for closure */.attachInternals());
100
+ if (!isServer) {
101
+ this.internals.role = 'tablist';
102
+ this.addEventListener('keydown', this.handleKeydown.bind(this));
103
+ this.addEventListener('keyup', this.handleKeyup.bind(this));
104
+ this.addEventListener('focusout', this.handleFocusout.bind(this));
105
+ }
106
+ }
107
+ /**
108
+ * Scrolls the toolbar, if overflowing, to the active tab, or the provided
109
+ * tab.
110
+ *
111
+ * @param tabToScrollTo The tab that should be scrolled to. Defaults to the
112
+ * active tab.
113
+ * @return A Promise that resolves after the tab has been scrolled to.
114
+ */
115
+ async scrollToTab(tabToScrollTo) {
116
+ await this.updateComplete;
117
+ const { tabs } = this;
118
+ tabToScrollTo ?? (tabToScrollTo = this.activeTab);
119
+ if (!tabToScrollTo || !tabs.includes(tabToScrollTo)) {
120
+ return;
121
+ }
122
+ // wait for tabs to render.
123
+ for (const tab of this.tabs) {
124
+ await tab.updateComplete;
125
+ }
126
+ const offset = tabToScrollTo.offsetLeft;
127
+ const extent = tabToScrollTo.offsetWidth;
128
+ const scroll = this.scrollLeft;
129
+ const hostExtent = this.offsetWidth;
130
+ const scrollMargin = 48;
131
+ const min = offset - scrollMargin;
132
+ const max = offset + extent - hostExtent + scrollMargin;
133
+ const to = Math.min(min, Math.max(max, scroll));
134
+ // TODO(b/299934312): improve focus smoothness
135
+ const behavior = !this.focusedTab ? 'smooth' : 'instant';
136
+ this.scrollTo({ behavior, top: 0, left: to });
137
+ }
138
+ render() {
139
+ return html `
140
+ <div class="tabs">
141
+ <slot @slotchange=${this.handleSlotChange}
142
+ @click=${this.handleTabClick}></slot>
143
+ </div>
144
+ <md-divider part="divider"></md-divider>
145
+ `;
146
+ }
147
+ async handleTabClick(event) {
148
+ const tab = event.target;
149
+ // Allow event to bubble
150
+ await 0;
151
+ if (event.defaultPrevented || !isTab(tab) || tab.active) {
152
+ return;
153
+ }
154
+ this.activateTab(tab);
155
+ }
156
+ activateTab(activeTab) {
157
+ const { tabs } = this;
158
+ const previousTab = this.activeTab;
159
+ if (!tabs.includes(activeTab) || previousTab === activeTab) {
160
+ // Ignore setting activeTab to a tab element that is not a child.
161
+ return;
162
+ }
163
+ for (const tab of tabs) {
164
+ tab.active = tab === activeTab;
165
+ }
166
+ if (previousTab) {
167
+ // Don't dispatch a change event if activating a tab when no previous tabs
168
+ // were selected, such as when md-tabs auto-selects the first tab.
169
+ const defaultPrevented = !this.dispatchEvent(new Event('change', { bubbles: true, cancelable: true }));
170
+ if (defaultPrevented) {
171
+ for (const tab of tabs) {
172
+ tab.active = tab === previousTab;
173
+ }
174
+ return;
175
+ }
176
+ activeTab[ANIMATE_INDICATOR](previousTab);
177
+ }
178
+ this.updateFocusableTab(activeTab);
179
+ this.scrollToTab(activeTab);
180
+ }
181
+ updateFocusableTab(focusableTab) {
182
+ for (const tab of this.tabs) {
183
+ tab.tabIndex = tab === focusableTab ? 0 : -1;
184
+ }
185
+ }
186
+ // focus item on keydown and optionally select it
187
+ async handleKeydown(event) {
188
+ // Allow event to bubble.
189
+ await 0;
190
+ const isLeft = event.key === 'ArrowLeft';
191
+ const isRight = event.key === 'ArrowRight';
192
+ const isHome = event.key === 'Home';
193
+ const isEnd = event.key === 'End';
194
+ // Ignore non-navigation keys
195
+ if (event.defaultPrevented || !isLeft && !isRight && !isHome && !isEnd) {
196
+ return;
197
+ }
198
+ const { tabs } = this;
199
+ // Don't try to select another tab if there aren't any.
200
+ if (tabs.length < 2) {
201
+ return;
202
+ }
203
+ // Prevent default interactions, such as scrolling.
204
+ event.preventDefault();
205
+ let indexToFocus;
206
+ if (isHome || isEnd) {
207
+ indexToFocus = isHome ? 0 : tabs.length - 1;
208
+ }
209
+ else {
210
+ // Check if moving forwards or backwards
211
+ const isRtl = getComputedStyle(this).direction === 'rtl';
212
+ const forwards = isRtl ? isLeft : isRight;
213
+ const { focusedTab } = this;
214
+ if (!focusedTab) {
215
+ // If there is not already a tab focused, select the first or last tab
216
+ // based on the direction we're traveling.
217
+ indexToFocus = forwards ? 0 : tabs.length - 1;
218
+ }
219
+ else {
220
+ const focusedIndex = this.tabs.indexOf(focusedTab);
221
+ indexToFocus = forwards ? focusedIndex + 1 : focusedIndex - 1;
222
+ if (indexToFocus >= tabs.length) {
223
+ // Return to start if moving past the last item.
224
+ indexToFocus = 0;
225
+ }
226
+ else if (indexToFocus < 0) {
227
+ // Go to end if moving before the first item.
228
+ indexToFocus = tabs.length - 1;
229
+ }
230
+ }
231
+ }
232
+ const tabToFocus = tabs[indexToFocus];
233
+ tabToFocus.focus();
234
+ if (this.autoActivate) {
235
+ this.activateTab(tabToFocus);
236
+ }
237
+ else {
238
+ this.updateFocusableTab(tabToFocus);
239
+ }
240
+ }
241
+ // scroll to item on keyup.
242
+ handleKeyup() {
243
+ this.scrollToTab(this.focusedTab ?? this.activeTab);
244
+ }
245
+ handleFocusout() {
246
+ // restore focus to selected item when blurring the tab bar.
247
+ if (this.matches(':focus-within')) {
248
+ return;
249
+ }
250
+ const { activeTab } = this;
251
+ if (activeTab) {
252
+ this.updateFocusableTab(activeTab);
253
+ }
254
+ }
255
+ handleSlotChange() {
256
+ const firstTab = this.tabs[0];
257
+ if (!this.activeTab && firstTab) {
258
+ // If the active tab was removed, auto-select the first one. There should
259
+ // always be a selected tab while the bar has children.
260
+ this.activateTab(firstTab);
261
+ }
262
+ // When children shift, ensure the active tab is visible. For example, if
263
+ // many children are added before the active tab, it'd be pushed off screen.
264
+ // This ensures it stays visible.
265
+ this.scrollToTab(this.activeTab);
266
+ }
267
+ }
268
+ (() => {
269
+ setupHostAria(Tabs, { focusable: false });
270
+ })();
271
+ __decorate([
272
+ property({ type: Boolean, attribute: 'auto-activate' })
273
+ ], Tabs.prototype, "autoActivate", void 0);
274
+ __decorate([
275
+ query('slot')
276
+ ], Tabs.prototype, "slotElement", void 0);
277
+ __decorate([
278
+ queryAssignedElements({ flatten: true })
279
+ ], Tabs.prototype, "maybeTabs", void 0);
280
+ function isTab(element) {
281
+ return element instanceof Tab;
282
+ }
283
+ //# sourceMappingURL=tabs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tabs.js","sourceRoot":"","sources":["tabs.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport '../../divider/divider.js';\n\nimport {html, isServer, LitElement} from 'lit';\nimport {property, query, queryAssignedElements} from 'lit/decorators.js';\n\nimport {polyfillElementInternalsAria, setupHostAria} from '../../internal/aria/aria.js';\n\nimport {ANIMATE_INDICATOR, Tab} from './tab.js';\n\n/**\n * @fires change Fired when the selected tab changes. The target's selected or\n * selectedItem and previousSelected or previousSelectedItem provide information\n * about the selection change. The change event is fired when a user interaction\n * like a space/enter key or click cause a selection change. The tab selection\n * based on these actions can be cancelled by calling preventDefault on the\n * triggering `keydown` or `click` event.\n *\n * @example\n * // perform an action if a tab is clicked\n * tabs.addEventListener('change', (event: Event) => {\n * if (event.target.selected === 2)\n * takeAction();\n * }\n * });\n *\n * // prevent a click from triggering tab selection under some condition\n * tabs.addEventListener('click', (event: Event) => {\n * if (notReady)\n * event.preventDefault();\n * }\n * });\n *\n */\nexport class Tabs extends LitElement {\n static {\n setupHostAria(Tabs, {focusable: false});\n }\n\n /**\n * The tabs of this tab bar.\n */\n get tabs() {\n return this.maybeTabs.filter(isTab);\n }\n\n /**\n * The currently selected tab, `null` only when there are no tab children.\n */\n get activeTab() {\n return this.tabs.find(tab => tab.active) ?? null;\n }\n set activeTab(tab: Tab|null) {\n // Ignore setting activeTab to null. As long as there are children, one tab\n // must be selected.\n if (tab) {\n this.activateTab(tab);\n }\n }\n\n /**\n * The index of the currently selected tab.\n */\n get activeTabIndex() {\n return this.tabs.findIndex(tab => tab.active);\n }\n set activeTabIndex(index: number) {\n const activateTabAtIndex = () => {\n const tab = this.tabs[index];\n // Ignore out-of-bound indices.\n if (tab) {\n this.activateTab(tab);\n }\n };\n\n if (!this.slotElement) {\n // This is needed to support setting the activeTabIndex via a lit property\n // binding.\n //\n // ```ts\n // html`\n // <md-tabs .activeTabIndex=${1}>\n // <md-tab>First</md-tab>\n // <md-tab>Second</md-tab>\n // </md-tabs>\n // `;\n // ```\n //\n // It's needed since lit's rendering lifecycle is asynchronous, and the\n // `<slot>` element hasn't rendered, so `tabs` is empty.\n this.updateComplete.then(activateTabAtIndex);\n return;\n }\n\n activateTabAtIndex();\n }\n\n /**\n * Whether or not to automatically select a tab when it is focused.\n */\n @property({type: Boolean, attribute: 'auto-activate'}) autoActivate = false;\n\n @query('slot') private readonly slotElement!: HTMLSlotElement|null;\n @queryAssignedElements({flatten: true})\n private readonly maybeTabs!: HTMLElement[];\n\n private get focusedTab() {\n return this.tabs.find(tab => tab.matches(':focus-within'));\n }\n\n private readonly internals = polyfillElementInternalsAria(\n this, (this as HTMLElement /* needed for closure */).attachInternals());\n\n constructor() {\n super();\n if (!isServer) {\n this.internals.role = 'tablist';\n this.addEventListener('keydown', this.handleKeydown.bind(this));\n this.addEventListener('keyup', this.handleKeyup.bind(this));\n this.addEventListener('focusout', this.handleFocusout.bind(this));\n }\n }\n\n /**\n * Scrolls the toolbar, if overflowing, to the active tab, or the provided\n * tab.\n *\n * @param tabToScrollTo The tab that should be scrolled to. Defaults to the\n * active tab.\n * @return A Promise that resolves after the tab has been scrolled to.\n */\n async scrollToTab(tabToScrollTo?: Tab|null) {\n await this.updateComplete;\n const {tabs} = this;\n tabToScrollTo ??= this.activeTab;\n if (!tabToScrollTo || !tabs.includes(tabToScrollTo)) {\n return;\n }\n\n // wait for tabs to render.\n for (const tab of this.tabs) {\n await tab.updateComplete;\n }\n\n const offset = tabToScrollTo.offsetLeft;\n const extent = tabToScrollTo.offsetWidth;\n const scroll = this.scrollLeft;\n const hostExtent = this.offsetWidth;\n const scrollMargin = 48;\n const min = offset - scrollMargin;\n const max = offset + extent - hostExtent + scrollMargin;\n const to = Math.min(min, Math.max(max, scroll));\n // TODO(b/299934312): improve focus smoothness\n const behavior = !this.focusedTab ? 'smooth' : 'instant' as const;\n this.scrollTo({behavior, top: 0, left: to});\n }\n\n protected override render() {\n return html`\n <div class=\"tabs\">\n <slot @slotchange=${this.handleSlotChange}\n @click=${this.handleTabClick}></slot>\n </div>\n <md-divider part=\"divider\"></md-divider>\n `;\n }\n\n private async handleTabClick(event: Event) {\n const tab = event.target;\n // Allow event to bubble\n await 0;\n if (event.defaultPrevented || !isTab(tab) || tab.active) {\n return;\n }\n\n this.activateTab(tab);\n }\n\n private activateTab(activeTab: Tab) {\n const {tabs} = this;\n const previousTab = this.activeTab;\n if (!tabs.includes(activeTab) || previousTab === activeTab) {\n // Ignore setting activeTab to a tab element that is not a child.\n return;\n }\n\n for (const tab of tabs) {\n tab.active = tab === activeTab;\n }\n\n if (previousTab) {\n // Don't dispatch a change event if activating a tab when no previous tabs\n // were selected, such as when md-tabs auto-selects the first tab.\n const defaultPrevented = !this.dispatchEvent(\n new Event('change', {bubbles: true, cancelable: true}));\n if (defaultPrevented) {\n for (const tab of tabs) {\n tab.active = tab === previousTab;\n }\n return;\n }\n\n activeTab[ANIMATE_INDICATOR](previousTab);\n }\n\n this.updateFocusableTab(activeTab);\n this.scrollToTab(activeTab);\n }\n\n private updateFocusableTab(focusableTab: Tab) {\n for (const tab of this.tabs) {\n tab.tabIndex = tab === focusableTab ? 0 : -1;\n }\n }\n\n // focus item on keydown and optionally select it\n private async handleKeydown(event: KeyboardEvent) {\n // Allow event to bubble.\n await 0;\n const isLeft = event.key === 'ArrowLeft';\n const isRight = event.key === 'ArrowRight';\n const isHome = event.key === 'Home';\n const isEnd = event.key === 'End';\n // Ignore non-navigation keys\n if (event.defaultPrevented || !isLeft && !isRight && !isHome && !isEnd) {\n return;\n }\n\n const {tabs} = this;\n // Don't try to select another tab if there aren't any.\n if (tabs.length < 2) {\n return;\n }\n\n // Prevent default interactions, such as scrolling.\n event.preventDefault();\n\n let indexToFocus: number;\n if (isHome || isEnd) {\n indexToFocus = isHome ? 0 : tabs.length - 1;\n } else {\n // Check if moving forwards or backwards\n const isRtl = getComputedStyle(this).direction === 'rtl';\n const forwards = isRtl ? isLeft : isRight;\n const {focusedTab} = this;\n if (!focusedTab) {\n // If there is not already a tab focused, select the first or last tab\n // based on the direction we're traveling.\n indexToFocus = forwards ? 0 : tabs.length - 1;\n } else {\n const focusedIndex = this.tabs.indexOf(focusedTab);\n indexToFocus = forwards ? focusedIndex + 1 : focusedIndex - 1;\n if (indexToFocus >= tabs.length) {\n // Return to start if moving past the last item.\n indexToFocus = 0;\n } else if (indexToFocus < 0) {\n // Go to end if moving before the first item.\n indexToFocus = tabs.length - 1;\n }\n }\n }\n\n const tabToFocus = tabs[indexToFocus];\n tabToFocus.focus();\n if (this.autoActivate) {\n this.activateTab(tabToFocus);\n } else {\n this.updateFocusableTab(tabToFocus);\n }\n }\n\n // scroll to item on keyup.\n private handleKeyup() {\n this.scrollToTab(this.focusedTab ?? this.activeTab);\n }\n\n private handleFocusout() {\n // restore focus to selected item when blurring the tab bar.\n if (this.matches(':focus-within')) {\n return;\n }\n\n const {activeTab} = this;\n if (activeTab) {\n this.updateFocusableTab(activeTab);\n }\n }\n\n private handleSlotChange() {\n const firstTab = this.tabs[0];\n if (!this.activeTab && firstTab) {\n // If the active tab was removed, auto-select the first one. There should\n // always be a selected tab while the bar has children.\n this.activateTab(firstTab);\n }\n\n // When children shift, ensure the active tab is visible. For example, if\n // many children are added before the active tab, it'd be pushed off screen.\n // This ensures it stays visible.\n this.scrollToTab(this.activeTab);\n }\n}\n\nfunction isTab(element: unknown): element is Tab {\n return element instanceof Tab;\n}\n"]}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2023 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { PrimaryTab } from './internal/primary-tab.js';
7
+ declare global {
8
+ interface HTMLElementTagNameMap {
9
+ 'md-primary-tab': MdPrimaryTab;
10
+ }
11
+ }
12
+ /**
13
+ * @summary Tab allow users to display a tab within a Tabs.
14
+ *
15
+ */
16
+ export declare class MdPrimaryTab extends PrimaryTab {
17
+ static styles: import("lit").CSSResult[];
18
+ }