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

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 (504) hide show
  1. package/README.md +8 -8
  2. package/aria/aria.d.ts +43 -0
  3. package/aria/aria.js +80 -0
  4. package/aria/aria.js.map +1 -0
  5. package/aria/delegate.d.ts +37 -0
  6. package/aria/delegate.js +53 -0
  7. package/aria/delegate.js.map +1 -0
  8. package/badge/badge.d.ts +0 -1
  9. package/badge/badge.js +0 -1
  10. package/badge/badge.js.map +1 -1
  11. package/badge/lib/badge.d.ts +5 -7
  12. package/badge/lib/badge.js +9 -12
  13. package/badge/lib/badge.js.map +1 -1
  14. package/button/lib/_elevated-button.scss +35 -6
  15. package/button/lib/_elevation.scss +13 -3
  16. package/button/lib/_filled-button.scss +35 -3
  17. package/button/lib/_outlined-button.scss +35 -6
  18. package/button/lib/_shared.scss +4 -2
  19. package/button/lib/_text-button.scss +35 -6
  20. package/button/lib/_tonal-button.scss +34 -7
  21. package/button/lib/button.d.ts +24 -38
  22. package/button/lib/button.js +40 -89
  23. package/button/lib/button.js.map +1 -1
  24. package/button/lib/elevated-button.d.ts +6 -4
  25. package/button/lib/elevated-button.js.map +1 -1
  26. package/button/lib/elevated-styles.css.js +1 -1
  27. package/button/lib/elevated-styles.css.js.map +1 -1
  28. package/button/lib/filled-button.d.ts +6 -4
  29. package/button/lib/filled-button.js.map +1 -1
  30. package/button/lib/filled-styles.css.js +1 -1
  31. package/button/lib/filled-styles.css.js.map +1 -1
  32. package/button/lib/outlined-button.d.ts +6 -4
  33. package/button/lib/outlined-button.js.map +1 -1
  34. package/button/lib/outlined-styles.css.js +1 -1
  35. package/button/lib/outlined-styles.css.js.map +1 -1
  36. package/button/lib/shared-elevation-styles.css.js +1 -1
  37. package/button/lib/shared-elevation-styles.css.js.map +1 -1
  38. package/button/lib/shared-styles.css.js +1 -1
  39. package/button/lib/shared-styles.css.js.map +1 -1
  40. package/button/lib/text-button.d.ts +5 -2
  41. package/button/lib/text-button.js.map +1 -1
  42. package/button/lib/text-styles.css.js +1 -1
  43. package/button/lib/text-styles.css.js.map +1 -1
  44. package/button/lib/tonal-button.d.ts +6 -4
  45. package/button/lib/tonal-button.js.map +1 -1
  46. package/button/lib/tonal-styles.css.js +1 -1
  47. package/button/lib/tonal-styles.css.js.map +1 -1
  48. package/checkbox/lib/_checkbox.scss +48 -47
  49. package/checkbox/lib/checkbox-styles.css.js +1 -1
  50. package/checkbox/lib/checkbox-styles.css.js.map +1 -1
  51. package/checkbox/lib/checkbox.d.ts +2 -7
  52. package/checkbox/lib/checkbox.js +35 -62
  53. package/checkbox/lib/checkbox.js.map +1 -1
  54. package/checkbox/lib/forced-colors-styles.css.js +1 -1
  55. package/checkbox/lib/forced-colors-styles.css.js.map +1 -1
  56. package/chips/_filter-chip.scss +6 -0
  57. package/chips/assist-chip.js +2 -1
  58. package/chips/assist-chip.js.map +1 -1
  59. package/chips/filter-chip.d.ts +20 -0
  60. package/chips/filter-chip.js +25 -0
  61. package/chips/filter-chip.js.map +1 -0
  62. package/chips/lib/_assist-chip.scss +37 -3
  63. package/chips/lib/_elevated.scss +60 -0
  64. package/chips/lib/_filter-chip.scss +175 -0
  65. package/chips/lib/_shared.scss +48 -84
  66. package/chips/lib/_suggestion-chip.scss +36 -5
  67. package/chips/lib/assist-chip.d.ts +12 -0
  68. package/chips/lib/assist-chip.js +64 -0
  69. package/chips/lib/assist-chip.js.map +1 -1
  70. package/chips/lib/assist-styles.css.js +1 -1
  71. package/chips/lib/assist-styles.css.js.map +1 -1
  72. package/chips/lib/chip.d.ts +24 -16
  73. package/chips/lib/chip.js +53 -74
  74. package/chips/lib/chip.js.map +1 -1
  75. package/chips/lib/elevated-styles.css.js +9 -0
  76. package/chips/lib/elevated-styles.css.js.map +1 -0
  77. package/{fab/lib/fab-extended-styles.scss → chips/lib/elevated-styles.scss} +3 -3
  78. package/chips/lib/filter-chip.d.ts +26 -0
  79. package/chips/lib/filter-chip.js +80 -0
  80. package/chips/lib/filter-chip.js.map +1 -0
  81. package/chips/lib/filter-styles.css.js +9 -0
  82. package/chips/lib/filter-styles.css.js.map +1 -0
  83. package/chips/lib/filter-styles.scss +10 -0
  84. package/chips/lib/shared-styles.css.js +1 -1
  85. package/chips/lib/shared-styles.css.js.map +1 -1
  86. package/chips/lib/suggestion-chip.d.ts +2 -2
  87. package/chips/lib/suggestion-chip.js +4 -2
  88. package/chips/lib/suggestion-chip.js.map +1 -1
  89. package/chips/lib/suggestion-styles.css.js +1 -1
  90. package/chips/lib/suggestion-styles.css.js.map +1 -1
  91. package/chips/suggestion-chip.js +2 -1
  92. package/chips/suggestion-chip.js.map +1 -1
  93. package/circularprogress/harness.d.ts +1 -0
  94. package/circularprogress/harness.js +4 -0
  95. package/circularprogress/harness.js.map +1 -1
  96. package/circularprogress/lib/_circular-progress.scss +13 -7
  97. package/circularprogress/lib/circular-progress-styles.css.js +1 -1
  98. package/circularprogress/lib/circular-progress-styles.css.js.map +1 -1
  99. package/circularprogress/lib/circular-progress.d.ts +5 -7
  100. package/circularprogress/lib/circular-progress.js +17 -21
  101. package/circularprogress/lib/circular-progress.js.map +1 -1
  102. package/dialog/lib/_dialog.scss +8 -9
  103. package/dialog/lib/_tokens.scss +0 -1
  104. package/dialog/lib/dialog-styles.css.js +1 -1
  105. package/dialog/lib/dialog-styles.css.js.map +1 -1
  106. package/dialog/lib/dialog.d.ts +10 -10
  107. package/dialog/lib/dialog.js +33 -56
  108. package/dialog/lib/dialog.js.map +1 -1
  109. package/divider/lib/divider.js +4 -7
  110. package/divider/lib/divider.js.map +1 -1
  111. package/elevation/lib/_elevation.scss +5 -7
  112. package/elevation/lib/elevation-styles.css.js +1 -1
  113. package/elevation/lib/elevation-styles.css.js.map +1 -1
  114. package/elevation/lib/elevation.d.ts +1 -1
  115. package/elevation/lib/elevation.js.map +1 -1
  116. package/fab/_fab.scss +1 -0
  117. package/fab/branded-fab.d.ts +56 -0
  118. package/fab/branded-fab.js +56 -0
  119. package/fab/branded-fab.js.map +1 -0
  120. package/fab/fab.d.ts +25 -5
  121. package/fab/fab.js +27 -10
  122. package/fab/fab.js.map +1 -1
  123. package/fab/harness.d.ts +1 -2
  124. package/fab/harness.js +1 -1
  125. package/fab/harness.js.map +1 -1
  126. package/fab/lib/_fab-branded.scss +81 -0
  127. package/fab/lib/_fab.scss +221 -19
  128. package/fab/lib/_shared.scss +161 -131
  129. package/fab/lib/fab-branded-styles.css.d.ts +1 -0
  130. package/fab/lib/fab-branded-styles.css.js +9 -0
  131. package/fab/lib/fab-branded-styles.css.js.map +1 -0
  132. package/fab/lib/fab-branded-styles.scss +10 -0
  133. package/fab/lib/fab-styles.css.js +1 -1
  134. package/fab/lib/fab-styles.css.js.map +1 -1
  135. package/fab/lib/fab.d.ts +18 -10
  136. package/fab/lib/fab.js +19 -12
  137. package/fab/lib/fab.js.map +1 -1
  138. package/fab/lib/forced-colors-styles.css.d.ts +1 -0
  139. package/fab/lib/forced-colors-styles.css.js +9 -0
  140. package/fab/lib/forced-colors-styles.css.js.map +1 -0
  141. package/fab/lib/forced-colors-styles.scss +26 -0
  142. package/fab/lib/shared-styles.css.d.ts +1 -0
  143. package/fab/lib/shared-styles.css.js +9 -0
  144. package/fab/lib/shared-styles.css.js.map +1 -0
  145. package/fab/lib/{fab-shared-styles.scss → shared-styles.scss} +1 -1
  146. package/fab/lib/shared.d.ts +49 -0
  147. package/fab/lib/shared.js +113 -0
  148. package/fab/lib/shared.js.map +1 -0
  149. package/field/lib/_filled-field.scss +47 -12
  150. package/field/lib/_outlined-field.scss +39 -12
  151. package/field/lib/field.js +14 -27
  152. package/field/lib/field.js.map +1 -1
  153. package/field/lib/filled-styles.css.js +1 -1
  154. package/field/lib/filled-styles.css.js.map +1 -1
  155. package/field/lib/outlined-styles.css.js +1 -1
  156. package/field/lib/outlined-styles.css.js.map +1 -1
  157. package/focus/focus-ring.d.ts +2 -1
  158. package/focus/focus-ring.js +2 -1
  159. package/focus/focus-ring.js.map +1 -1
  160. package/focus/lib/_focus-ring.scss +49 -34
  161. package/focus/lib/focus-ring-styles.css.js +1 -1
  162. package/focus/lib/focus-ring-styles.css.js.map +1 -1
  163. package/focus/lib/focus-ring.d.ts +59 -12
  164. package/focus/lib/focus-ring.js +118 -14
  165. package/focus/lib/focus-ring.js.map +1 -1
  166. package/icon/icon.d.ts +0 -1
  167. package/icon/icon.js +0 -1
  168. package/icon/icon.js.map +1 -1
  169. package/icon/lib/_icon.scss +2 -0
  170. package/icon/lib/icon-styles.css.js +1 -1
  171. package/icon/lib/icon-styles.css.js.map +1 -1
  172. package/icon/lib/icon.d.ts +5 -4
  173. package/icon/lib/icon.js +3 -2
  174. package/icon/lib/icon.js.map +1 -1
  175. package/iconbutton/filled-icon-button.d.ts +6 -2
  176. package/iconbutton/filled-icon-button.js.map +1 -1
  177. package/iconbutton/filled-tonal-icon-button.d.ts +6 -2
  178. package/iconbutton/filled-tonal-icon-button.js.map +1 -1
  179. package/iconbutton/harness.d.ts +1 -1
  180. package/iconbutton/harness.js +4 -1
  181. package/iconbutton/harness.js.map +1 -1
  182. package/iconbutton/lib/_filled-icon-button.scss +38 -13
  183. package/iconbutton/lib/_filled-tonal-icon-button.scss +38 -11
  184. package/iconbutton/lib/_outlined-icon-button.scss +38 -13
  185. package/iconbutton/lib/_shared.scss +4 -6
  186. package/iconbutton/lib/_standard-icon-button.scss +14 -14
  187. package/iconbutton/lib/filled-styles.css.js +1 -1
  188. package/iconbutton/lib/filled-styles.css.js.map +1 -1
  189. package/iconbutton/lib/filled-tonal-styles.css.js +1 -1
  190. package/iconbutton/lib/filled-tonal-styles.css.js.map +1 -1
  191. package/iconbutton/lib/icon-button.d.ts +17 -25
  192. package/iconbutton/lib/icon-button.js +37 -73
  193. package/iconbutton/lib/icon-button.js.map +1 -1
  194. package/iconbutton/lib/outlined-styles.css.js +1 -1
  195. package/iconbutton/lib/outlined-styles.css.js.map +1 -1
  196. package/iconbutton/lib/shared-styles.css.js +1 -1
  197. package/iconbutton/lib/shared-styles.css.js.map +1 -1
  198. package/iconbutton/lib/standard-styles.css.js +1 -1
  199. package/iconbutton/lib/standard-styles.css.js.map +1 -1
  200. package/iconbutton/outlined-icon-button.d.ts +5 -2
  201. package/iconbutton/outlined-icon-button.js.map +1 -1
  202. package/iconbutton/standard-icon-button.d.ts +5 -2
  203. package/iconbutton/standard-icon-button.js.map +1 -1
  204. package/linearprogress/_linear-progress.scss +6 -0
  205. package/linearprogress/harness.d.ts +13 -0
  206. package/linearprogress/harness.js +18 -0
  207. package/linearprogress/harness.js.map +1 -0
  208. package/linearprogress/lib/_linear-progress.scss +386 -0
  209. package/linearprogress/lib/linear-progress-styles.css.d.ts +1 -0
  210. package/linearprogress/lib/linear-progress-styles.css.js +9 -0
  211. package/linearprogress/lib/linear-progress-styles.css.js.map +1 -0
  212. package/linearprogress/lib/linear-progress-styles.scss +8 -0
  213. package/linearprogress/lib/linear-progress.d.ts +35 -0
  214. package/linearprogress/lib/linear-progress.js +127 -0
  215. package/linearprogress/lib/linear-progress.js.map +1 -0
  216. package/linearprogress/linear-progress.d.ts +23 -0
  217. package/linearprogress/linear-progress.js +26 -0
  218. package/linearprogress/linear-progress.js.map +1 -0
  219. package/list/lib/_list.scss +9 -50
  220. package/list/lib/list-styles.css.js +1 -1
  221. package/list/lib/list-styles.css.js.map +1 -1
  222. package/list/lib/list.d.ts +8 -15
  223. package/list/lib/list.js +20 -45
  224. package/list/lib/list.js.map +1 -1
  225. package/list/lib/listitem/_list-item.scss +17 -72
  226. package/list/lib/listitem/forced-colors-styles.css.js +1 -1
  227. package/list/lib/listitem/forced-colors-styles.css.js.map +1 -1
  228. package/list/lib/listitem/list-item-styles.css.js +1 -1
  229. package/list/lib/listitem/list-item-styles.css.js.map +1 -1
  230. package/list/lib/listitem/list-item.d.ts +29 -31
  231. package/list/lib/listitem/list-item.js +26 -80
  232. package/list/lib/listitem/list-item.js.map +1 -1
  233. package/list/lib/listitemlink/list-item-link.js +5 -9
  234. package/list/lib/listitemlink/list-item-link.js.map +1 -1
  235. package/menu/lib/_menu.scss +9 -29
  236. package/menu/lib/menu-styles.css.js +1 -1
  237. package/menu/lib/menu-styles.css.js.map +1 -1
  238. package/menu/lib/menu.d.ts +32 -41
  239. package/menu/lib/menu.js +51 -82
  240. package/menu/lib/menu.js.map +1 -1
  241. package/menu/lib/menuitem/_menu-item.scss +16 -33
  242. package/menu/lib/menuitem/menu-item-styles.css.js +1 -1
  243. package/menu/lib/menuitem/menu-item-styles.css.js.map +1 -1
  244. package/menu/lib/menuitem/menu-item.d.ts +1 -1
  245. package/menu/lib/menuitem/menu-item.js +4 -6
  246. package/menu/lib/menuitem/menu-item.js.map +1 -1
  247. package/menu/lib/menuitemlink/menu-item-link.d.ts +0 -2
  248. package/menu/lib/menuitemlink/menu-item-link.js +3 -6
  249. package/menu/lib/menuitemlink/menu-item-link.js.map +1 -1
  250. package/menu/lib/shared.d.ts +20 -2
  251. package/menu/lib/shared.js +18 -0
  252. package/menu/lib/shared.js.map +1 -1
  253. package/menu/lib/submenuitem/sub-menu-item.d.ts +16 -13
  254. package/menu/lib/submenuitem/sub-menu-item.js +27 -18
  255. package/menu/lib/submenuitem/sub-menu-item.js.map +1 -1
  256. package/menu/lib/typeaheadController.d.ts +9 -9
  257. package/menu/lib/typeaheadController.js.map +1 -1
  258. package/navigationbar/lib/_navigation-bar.scss +7 -1
  259. package/navigationbar/lib/navigation-bar-styles.css.js +1 -1
  260. package/navigationbar/lib/navigation-bar-styles.css.js.map +1 -1
  261. package/navigationbar/lib/navigation-bar.d.ts +6 -6
  262. package/navigationbar/lib/navigation-bar.js +17 -18
  263. package/navigationbar/lib/navigation-bar.js.map +1 -1
  264. package/navigationbar/navigation-bar.d.ts +0 -1
  265. package/navigationbar/navigation-bar.js +0 -1
  266. package/navigationbar/navigation-bar.js.map +1 -1
  267. package/navigationdrawer/lib/_navigation-drawer-modal.scss +0 -3
  268. package/navigationdrawer/lib/_navigation-drawer.scss +0 -3
  269. package/navigationdrawer/lib/_shared.scss +1 -4
  270. package/navigationdrawer/lib/navigation-drawer-modal-styles.css.js +1 -1
  271. package/navigationdrawer/lib/navigation-drawer-modal-styles.css.js.map +1 -1
  272. package/navigationdrawer/lib/navigation-drawer-modal.d.ts +7 -12
  273. package/navigationdrawer/lib/navigation-drawer-modal.js +19 -41
  274. package/navigationdrawer/lib/navigation-drawer-modal.js.map +1 -1
  275. package/navigationdrawer/lib/navigation-drawer-styles.css.js +1 -1
  276. package/navigationdrawer/lib/navigation-drawer-styles.css.js.map +1 -1
  277. package/navigationdrawer/lib/navigation-drawer.d.ts +6 -10
  278. package/navigationdrawer/lib/navigation-drawer.js +17 -38
  279. package/navigationdrawer/lib/navigation-drawer.js.map +1 -1
  280. package/navigationdrawer/lib/shared-styles.css.js +1 -1
  281. package/navigationdrawer/lib/shared-styles.css.js.map +1 -1
  282. package/navigationdrawer/navigation-drawer-modal.d.ts +0 -1
  283. package/navigationdrawer/navigation-drawer-modal.js +0 -1
  284. package/navigationdrawer/navigation-drawer-modal.js.map +1 -1
  285. package/navigationdrawer/navigation-drawer.d.ts +0 -1
  286. package/navigationdrawer/navigation-drawer.js +0 -1
  287. package/navigationdrawer/navigation-drawer.js.map +1 -1
  288. package/navigationtab/lib/_navigation-tab.scss +2 -2
  289. package/navigationtab/lib/navigation-tab-styles.css.js +1 -1
  290. package/navigationtab/lib/navigation-tab-styles.css.js.map +1 -1
  291. package/navigationtab/lib/navigation-tab.d.ts +16 -29
  292. package/navigationtab/lib/navigation-tab.js +49 -88
  293. package/navigationtab/lib/navigation-tab.js.map +1 -1
  294. package/navigationtab/lib/state.d.ts +1 -1
  295. package/navigationtab/lib/state.js.map +1 -1
  296. package/navigationtab/navigation-tab.d.ts +0 -1
  297. package/navigationtab/navigation-tab.js +0 -1
  298. package/navigationtab/navigation-tab.js.map +1 -1
  299. package/package.json +1 -1
  300. package/radio/lib/_radio.scss +1 -1
  301. package/radio/lib/radio-styles.css.js +1 -1
  302. package/radio/lib/radio-styles.css.js.map +1 -1
  303. package/radio/lib/radio.d.ts +2 -8
  304. package/radio/lib/radio.js +31 -58
  305. package/radio/lib/radio.js.map +1 -1
  306. package/ripple/lib/ripple.js +11 -13
  307. package/ripple/lib/ripple.js.map +1 -1
  308. package/segmentedbutton/lib/outlined-segmented-button.d.ts +16 -7
  309. package/segmentedbutton/lib/outlined-segmented-button.js +3 -3
  310. package/segmentedbutton/lib/outlined-segmented-button.js.map +1 -1
  311. package/segmentedbutton/lib/segmented-button.d.ts +28 -40
  312. package/segmentedbutton/lib/segmented-button.js +42 -96
  313. package/segmentedbutton/lib/segmented-button.js.map +1 -1
  314. package/segmentedbutton/outlined-segmented-button.d.ts +0 -1
  315. package/segmentedbutton/outlined-segmented-button.js +0 -1
  316. package/segmentedbutton/outlined-segmented-button.js.map +1 -1
  317. package/segmentedbuttonset/lib/_outlined-segmented-button-set.scss +32 -13
  318. package/segmentedbuttonset/lib/outlined-segmented-button-set.d.ts +6 -4
  319. package/segmentedbuttonset/lib/outlined-segmented-button-set.js +3 -2
  320. package/segmentedbuttonset/lib/outlined-segmented-button-set.js.map +1 -1
  321. package/segmentedbuttonset/lib/outlined-styles.css.js +1 -1
  322. package/segmentedbuttonset/lib/outlined-styles.css.js.map +1 -1
  323. package/segmentedbuttonset/lib/segmented-button-set.d.ts +3 -9
  324. package/segmentedbuttonset/lib/segmented-button-set.js +14 -20
  325. package/segmentedbuttonset/lib/segmented-button-set.js.map +1 -1
  326. package/segmentedbuttonset/outlined-segmented-button-set.d.ts +0 -1
  327. package/segmentedbuttonset/outlined-segmented-button-set.js +0 -1
  328. package/segmentedbuttonset/outlined-segmented-button-set.js.map +1 -1
  329. package/select/_filled-select.scss +6 -0
  330. package/select/_outlined-select.scss +6 -0
  331. package/select/filled-select.d.ts +41 -0
  332. package/select/filled-select.js +46 -0
  333. package/select/filled-select.js.map +1 -0
  334. package/select/harness.d.ts +24 -0
  335. package/select/harness.js +53 -0
  336. package/select/harness.js.map +1 -0
  337. package/select/lib/_filled-select.scss +222 -0
  338. package/select/lib/_outlined-select.scss +180 -0
  339. package/select/lib/_shared.scss +48 -0
  340. package/select/lib/filled-forced-colors-styles.css.d.ts +1 -0
  341. package/select/lib/filled-forced-colors-styles.css.js +9 -0
  342. package/select/lib/filled-forced-colors-styles.css.js.map +1 -0
  343. package/select/lib/filled-forced-colors-styles.scss +29 -0
  344. package/select/lib/filled-select-styles.css.d.ts +1 -0
  345. package/select/lib/filled-select-styles.css.js +9 -0
  346. package/select/lib/filled-select-styles.css.js.map +1 -0
  347. package/select/lib/filled-select-styles.scss +10 -0
  348. package/select/lib/filled-select.d.ts +10 -0
  349. package/select/lib/filled-select.js +16 -0
  350. package/select/lib/filled-select.js.map +1 -0
  351. package/select/lib/outlined-forced-colors-styles.css.d.ts +1 -0
  352. package/select/lib/outlined-forced-colors-styles.css.js +9 -0
  353. package/select/lib/outlined-forced-colors-styles.css.js.map +1 -0
  354. package/select/lib/outlined-forced-colors-styles.scss +29 -0
  355. package/select/lib/outlined-select-styles.css.d.ts +1 -0
  356. package/select/lib/outlined-select-styles.css.js +9 -0
  357. package/select/lib/outlined-select-styles.css.js.map +1 -0
  358. package/select/lib/outlined-select-styles.scss +10 -0
  359. package/select/lib/outlined-select.d.ts +10 -0
  360. package/select/lib/outlined-select.js +16 -0
  361. package/select/lib/outlined-select.js.map +1 -0
  362. package/select/lib/select.d.ts +216 -0
  363. package/select/lib/select.js +589 -0
  364. package/select/lib/select.js.map +1 -0
  365. package/select/lib/selectoption/harness.d.ts +11 -0
  366. package/select/lib/selectoption/harness.js +12 -0
  367. package/select/lib/selectoption/harness.js.map +1 -0
  368. package/select/lib/selectoption/select-option.d.ts +30 -0
  369. package/select/lib/selectoption/select-option.js +71 -0
  370. package/select/lib/selectoption/select-option.js.map +1 -0
  371. package/select/lib/shared-styles.css.d.ts +1 -0
  372. package/select/lib/shared-styles.css.js +9 -0
  373. package/select/lib/shared-styles.css.js.map +1 -0
  374. package/select/lib/shared-styles.scss +10 -0
  375. package/select/lib/shared.d.ts +52 -0
  376. package/select/lib/shared.js +41 -0
  377. package/select/lib/shared.js.map +1 -0
  378. package/select/outlined-select.d.ts +41 -0
  379. package/select/outlined-select.js +46 -0
  380. package/select/outlined-select.js.map +1 -0
  381. package/select/select-option.d.ts +44 -0
  382. package/select/select-option.js +51 -0
  383. package/select/select-option.js.map +1 -0
  384. package/slider/harness.d.ts +2 -1
  385. package/slider/harness.js +14 -9
  386. package/slider/harness.js.map +1 -1
  387. package/slider/lib/_slider.scss +149 -167
  388. package/slider/lib/forced-colors-styles.css.js +1 -1
  389. package/slider/lib/forced-colors-styles.css.js.map +1 -1
  390. package/slider/lib/forced-colors-styles.scss +2 -2
  391. package/slider/lib/slider-styles.css.js +1 -1
  392. package/slider/lib/slider-styles.css.js.map +1 -1
  393. package/slider/lib/slider.d.ts +23 -57
  394. package/slider/lib/slider.js +77 -167
  395. package/slider/lib/slider.js.map +1 -1
  396. package/switch/lib/_switch.scss +63 -18
  397. package/switch/lib/switch-styles.css.js +1 -1
  398. package/switch/lib/switch-styles.css.js.map +1 -1
  399. package/switch/lib/switch.d.ts +0 -7
  400. package/switch/lib/switch.js +32 -79
  401. package/switch/lib/switch.js.map +1 -1
  402. package/textfield/harness.d.ts +1 -1
  403. package/textfield/harness.js.map +1 -1
  404. package/textfield/lib/_filled-text-field.scss +70 -14
  405. package/textfield/lib/_outlined-text-field.scss +60 -35
  406. package/textfield/lib/filled-forced-colors-styles.css.js +1 -1
  407. package/textfield/lib/filled-forced-colors-styles.css.js.map +1 -1
  408. package/textfield/lib/filled-styles.css.js +1 -1
  409. package/textfield/lib/filled-styles.css.js.map +1 -1
  410. package/textfield/lib/outlined-forced-colors-styles.css.js +1 -1
  411. package/textfield/lib/outlined-forced-colors-styles.css.js.map +1 -1
  412. package/textfield/lib/outlined-styles.css.js +1 -1
  413. package/textfield/lib/outlined-styles.css.js.map +1 -1
  414. package/textfield/lib/text-field.d.ts +1 -11
  415. package/textfield/lib/text-field.js +45 -115
  416. package/textfield/lib/text-field.js.map +1 -1
  417. package/tokens/_index.scss +5 -18
  418. package/tokens/_md-comp-assist-chip.scss +25 -29
  419. package/tokens/_md-comp-checkbox.scss +78 -1
  420. package/tokens/_md-comp-circular-progress-indicator.scss +39 -13
  421. package/tokens/_md-comp-elevated-button.scss +0 -10
  422. package/tokens/_md-comp-elevation.scss +0 -4
  423. package/tokens/_md-comp-fab-branded.scss +84 -1
  424. package/tokens/_md-comp-fab.scss +249 -0
  425. package/tokens/_md-comp-filled-button.scss +0 -10
  426. package/{field/lib → tokens}/_md-comp-filled-field.scss +91 -9
  427. package/tokens/_md-comp-filled-icon-button.scss +46 -1
  428. package/tokens/_md-comp-filled-select.scss +124 -1
  429. package/tokens/_md-comp-filled-text-field.scss +93 -9
  430. package/tokens/_md-comp-filled-tonal-button.scss +0 -11
  431. package/tokens/_md-comp-filled-tonal-icon-button.scss +45 -3
  432. package/tokens/_md-comp-filter-chip.scss +103 -103
  433. package/tokens/_md-comp-focus-ring.scss +23 -24
  434. package/tokens/_md-comp-icon-button.scss +37 -1
  435. package/tokens/_md-comp-input-chip.scss +77 -95
  436. package/tokens/_md-comp-linear-progress-indicator.scss +31 -3
  437. package/tokens/_md-comp-list-item.scss +174 -0
  438. package/tokens/_md-comp-list.scss +81 -26
  439. package/tokens/_md-comp-menu-item.scss +50 -0
  440. package/tokens/_md-comp-menu.scss +29 -2
  441. package/tokens/_md-comp-outlined-button.scss +0 -10
  442. package/{field/lib → tokens}/_md-comp-outlined-field.scss +85 -9
  443. package/tokens/_md-comp-outlined-icon-button.scss +41 -1
  444. package/tokens/_md-comp-outlined-segmented-button.scss +57 -11
  445. package/tokens/_md-comp-outlined-select.scss +123 -1
  446. package/tokens/_md-comp-outlined-text-field.scss +85 -8
  447. package/tokens/_md-comp-slider.scss +13 -1
  448. package/tokens/_md-comp-suggestion-chip.scss +29 -30
  449. package/tokens/_md-comp-switch.scss +81 -1
  450. package/tokens/_md-comp-text-button.scss +0 -10
  451. package/tokens/_values.scss +2 -4
  452. package/types/aria.d.ts +59 -1
  453. package/actionelement/action-element.d.ts +0 -79
  454. package/actionelement/action-element.js +0 -97
  455. package/actionelement/action-element.js.map +0 -1
  456. package/button/lib/state.d.ts +0 -10
  457. package/button/lib/state.js +0 -7
  458. package/button/lib/state.js.map +0 -1
  459. package/controller/action-controller.d.ts +0 -147
  460. package/controller/action-controller.js +0 -286
  461. package/controller/action-controller.js.map +0 -1
  462. package/decorators/aria-property.d.ts +0 -32
  463. package/decorators/aria-property.js +0 -99
  464. package/decorators/aria-property.js.map +0 -1
  465. package/fab/_fab-extended.scss +0 -6
  466. package/fab/fab-extended.d.ts +0 -23
  467. package/fab/fab-extended.js +0 -29
  468. package/fab/fab-extended.js.map +0 -1
  469. package/fab/lib/_fab-extended.scss +0 -73
  470. package/fab/lib/fab-extended-styles.css.js +0 -9
  471. package/fab/lib/fab-extended-styles.css.js.map +0 -1
  472. package/fab/lib/fab-extended.d.ts +0 -19
  473. package/fab/lib/fab-extended.js +0 -28
  474. package/fab/lib/fab-extended.js.map +0 -1
  475. package/fab/lib/fab-shared-styles.css.js +0 -9
  476. package/fab/lib/fab-shared-styles.css.js.map +0 -1
  477. package/fab/lib/fab-shared.d.ts +0 -44
  478. package/fab/lib/fab-shared.js +0 -121
  479. package/fab/lib/fab-shared.js.map +0 -1
  480. package/focus/strong-focus.d.ts +0 -56
  481. package/focus/strong-focus.js +0 -96
  482. package/focus/strong-focus.js.map +0 -1
  483. package/sass/_shape.scss +0 -154
  484. package/slider/lib/_tokens.scss +0 -65
  485. package/tokens/_md-comp-extended-fab-branded.scss +0 -45
  486. package/tokens/_md-comp-extended-fab-primary.scss +0 -45
  487. package/tokens/_md-comp-extended-fab-secondary.scss +0 -48
  488. package/tokens/_md-comp-extended-fab-surface.scss +0 -45
  489. package/tokens/_md-comp-extended-fab-tertiary.scss +0 -48
  490. package/tokens/_md-comp-fab-branded-large.scss +0 -23
  491. package/tokens/_md-comp-fab-primary-large.scss +0 -23
  492. package/tokens/_md-comp-fab-primary-small.scss +0 -23
  493. package/tokens/_md-comp-fab-primary.scss +0 -23
  494. package/tokens/_md-comp-fab-secondary-large.scss +0 -23
  495. package/tokens/_md-comp-fab-secondary-small.scss +0 -23
  496. package/tokens/_md-comp-fab-secondary.scss +0 -23
  497. package/tokens/_md-comp-fab-surface-large.scss +0 -23
  498. package/tokens/_md-comp-fab-surface-small.scss +0 -23
  499. package/tokens/_md-comp-fab-surface.scss +0 -23
  500. package/tokens/_md-comp-fab-tertiary-large.scss +0 -23
  501. package/tokens/_md-comp-fab-tertiary-small.scss +0 -23
  502. package/tokens/_md-comp-fab-tertiary.scss +0 -23
  503. /package/{fab/lib/fab-extended-styles.css.d.ts → chips/lib/elevated-styles.css.d.ts} +0 -0
  504. /package/{fab/lib/fab-shared-styles.css.d.ts → chips/lib/filter-styles.css.d.ts} +0 -0
package/fab/lib/_fab.scss CHANGED
@@ -3,41 +3,243 @@
3
3
  // SPDX-License-Identifier: Apache-2.0
4
4
  //
5
5
 
6
- // stylelint-disable selector-class-pattern --
7
- // Selector '.md3-*' should only be used in this project.
8
-
9
6
  // go/keep-sorted start
10
- @use '../../sass/shape';
11
- @use '../../sass/theme';
7
+ @use 'sass:list';
8
+ @use 'sass:map';
9
+ // go/keep-sorted end
10
+ // go/keep-sorted start
11
+ @use '../../focus/focus-ring';
12
+ @use '../../ripple/ripple';
12
13
  @use '../../tokens';
13
- @use './shared';
14
14
  // go/keep-sorted end
15
15
 
16
16
  @mixin theme($tokens) {
17
- $tokens: theme.validate-theme(tokens.md-comp-fab-surface-values(), $tokens);
18
- $tokens: theme.create-theme-vars($tokens, 'fab');
19
- $tokens: shape.resolve-tokens($tokens, 'container-shape');
17
+ $supported-tokens: list.join(
18
+ tokens.$md-comp-fab-supported-tokens,
19
+ (
20
+ 'container-shape-start-start',
21
+ 'container-shape-start-end',
22
+ 'container-shape-end-end',
23
+ 'container-shape-end-start',
24
+ 'large-container-shape-start-start',
25
+ 'large-container-shape-start-end',
26
+ 'large-container-shape-end-end',
27
+ 'large-container-shape-end-start',
28
+ 'small-container-shape-start-start',
29
+ 'small-container-shape-start-end',
30
+ 'small-container-shape-end-end',
31
+ 'small-container-shape-end-start'
32
+ )
33
+ );
34
+
35
+ @each $token, $value in $tokens {
36
+ @if list.index($supported-tokens, $token) == null {
37
+ @error 'Token `#{$token}` is not a supported token.';
38
+ }
20
39
 
21
- @include theme.emit-theme-vars($tokens);
40
+ @if $value {
41
+ --md-fab-#{$token}: #{$value};
42
+ }
43
+ }
22
44
  }
23
45
 
24
46
  @mixin styles() {
25
- $tokens: tokens.md-comp-fab-surface-values();
26
- $tokens: theme.create-theme-vars($tokens, 'fab');
27
- $tokens: shape.resolve-tokens($tokens, 'container-shape');
47
+ $tokens: tokens.md-comp-fab-values();
28
48
 
29
49
  :host {
30
50
  @each $token, $value in $tokens {
31
- --_#{$token}: #{$value};
51
+ --_#{$token}: var(--md-fab-#{$token}, #{$value});
32
52
  }
53
+
54
+ // Support logical shape properties
55
+ --_container-shape-start-start: var(
56
+ --md-fab-container-shape-start-start,
57
+ var(--_container-shape)
58
+ );
59
+ --_container-shape-start-end: var(
60
+ --md-fab-container-shape-start-end,
61
+ var(--_container-shape)
62
+ );
63
+ --_container-shape-end-end: var(
64
+ --md-fab-container-shape-end-end,
65
+ var(--_container-shape)
66
+ );
67
+ --_container-shape-end-start: var(
68
+ --md-fab-container-shape-end-start,
69
+ var(--_container-shape)
70
+ );
71
+ --_large-container-shape-start-start: var(
72
+ --md-fab-large-container-shape-start-start,
73
+ var(--_large-container-shape)
74
+ );
75
+ --_large-container-shape-start-end: var(
76
+ --md-fab-large-container-shape-start-end,
77
+ var(--_large-container-shape)
78
+ );
79
+ --_large-container-shape-end-end: var(
80
+ --md-fab-large-container-shape-end-end,
81
+ var(--_large-container-shape)
82
+ );
83
+ --_large-container-shape-end-start: var(
84
+ --md-fab-large-container-shape-end-start,
85
+ var(--_large-container-shape)
86
+ );
87
+ --_small-container-shape-start-start: var(
88
+ --md-fab-small-container-shape-start-start,
89
+ var(--_small-container-shape)
90
+ );
91
+ --_small-container-shape-start-end: var(
92
+ --md-fab-small-container-shape-start-end,
93
+ var(--_small-container-shape)
94
+ );
95
+ --_small-container-shape-end-end: var(
96
+ --md-fab-small-container-shape-end-end,
97
+ var(--_small-container-shape)
98
+ );
99
+ --_small-container-shape-end-start: var(
100
+ --md-fab-small-container-shape-end-start,
101
+ var(--_small-container-shape)
102
+ );
33
103
  }
34
104
 
35
- .md3-fab {
36
- width: var(--_container-width);
37
- height: var(--_container-height);
105
+ .fab {
106
+ @include color(
107
+ (
108
+ 'focus-icon-color': var(--_focus-icon-color),
109
+ 'hover-icon-color': var(--_hover-icon-color),
110
+ 'icon-color': var(--_icon-color),
111
+ 'pressed-icon-color': var(--_pressed-icon-color),
112
+ )
113
+ );
114
+
115
+ &.primary {
116
+ @include color(
117
+ (
118
+ 'container-color': var(--_primary-container-color),
119
+ 'focus-icon-color': var(--_primary-focus-icon-color),
120
+ 'focus-state-layer-color': var(--_primary-focus-state-layer-color),
121
+ 'hover-icon-color': var(--_primary-hover-icon-color),
122
+ 'hover-state-layer-color': var(--_primary-hover-state-layer-color),
123
+ 'icon-color': var(--_primary-icon-color),
124
+ 'pressed-icon-color': var(--_primary-pressed-icon-color),
125
+ 'pressed-state-layer-color': var(--_primary-pressed-state-layer-color),
126
+ 'label-text-color': var(--_primary-label-text-color),
127
+ 'hover-label-text-color': var(--_primary-hover-label-text-color),
128
+ 'focus-label-text-color': var(--_primary-focus-label-text-color),
129
+ 'pressed-label-text-color': var(--_primary-pressed-label-text-color),
130
+ )
131
+ );
132
+ }
133
+
134
+ &.secondary {
135
+ @include color(
136
+ (
137
+ 'container-color': var(--_secondary-container-color),
138
+ 'focus-icon-color': var(--_secondary-focus-icon-color),
139
+ 'focus-state-layer-color': var(--_secondary-focus-state-layer-color),
140
+ 'hover-icon-color': var(--_secondary-hover-icon-color),
141
+ 'hover-state-layer-color': var(--_secondary-hover-state-layer-color),
142
+ 'icon-color': var(--_secondary-icon-color),
143
+ 'pressed-icon-color': var(--_secondary-pressed-icon-color),
144
+ 'pressed-state-layer-color':
145
+ var(--_secondary-pressed-state-layer-color),
146
+ 'label-text-color': var(--_secondary-label-text-color),
147
+ 'hover-label-text-color': var(--_secondary-hover-label-text-color),
148
+ 'focus-label-text-color': var(--_secondary-focus-label-text-color),
149
+ 'pressed-label-text-color': var(--_secondary-pressed-label-text-color),
150
+ )
151
+ );
152
+ }
153
+
154
+ &.tertiary {
155
+ @include color(
156
+ (
157
+ 'container-color': var(--_tertiary-container-color),
158
+ 'focus-icon-color': var(--_tertiary-focus-icon-color),
159
+ 'focus-state-layer-color': var(--_tertiary-focus-state-layer-color),
160
+ 'hover-icon-color': var(--_tertiary-hover-icon-color),
161
+ 'hover-state-layer-color': var(--_tertiary-hover-state-layer-color),
162
+ 'icon-color': var(--_tertiary-icon-color),
163
+ 'pressed-icon-color': var(--_tertiary-pressed-icon-color),
164
+ 'pressed-state-layer-color':
165
+ var(--_tertiary-pressed-state-layer-color),
166
+ 'label-text-color': var(--_tertiary-label-text-color),
167
+ 'hover-label-text-color': var(--_tertiary-hover-label-text-color),
168
+ 'focus-label-text-color': var(--_tertiary-focus-label-text-color),
169
+ 'pressed-label-text-color': var(--_tertiary-pressed-label-text-color),
170
+ )
171
+ );
172
+ }
38
173
  }
39
174
 
40
- .md3-fab--regular {
41
- padding: 0;
175
+ .fab.small {
176
+ width: var(--_small-container-width);
177
+ height: var(--_small-container-height);
178
+
179
+ .icon ::slotted(*) {
180
+ width: var(--_small-icon-size);
181
+ height: var(--_small-icon-size);
182
+ font-size: var(--_small-icon-size);
183
+ }
184
+
185
+ &,
186
+ .ripple {
187
+ border-start-start-radius: var(--_small-container-shape-start-start);
188
+ border-start-end-radius: var(--_small-container-shape-start-end);
189
+ border-end-start-radius: var(--_small-container-shape-end-start);
190
+ border-end-end-radius: var(--_small-container-shape-end-end);
191
+ @include focus-ring.theme(
192
+ (
193
+ 'shape-start-start': var(--_small-container-shape-start-start),
194
+ 'shape-start-end': var(--_small-container-shape-start-end),
195
+ 'shape-end-end': var(--_small-container-shape-end-end),
196
+ 'shape-end-start': var(--_small-container-shape-end-start),
197
+ )
198
+ );
199
+ }
200
+ }
201
+ }
202
+
203
+ @mixin color($colors) {
204
+ background-color: map.get($colors, 'container-color');
205
+
206
+ @include ripple.theme(
207
+ (
208
+ hover-color: map.get($colors, hover-state-layer-color),
209
+ focus-color: map.get($colors, focus-state-layer-color),
210
+ pressed-color: map.get($colors, pressed-state-layer-color),
211
+ )
212
+ );
213
+
214
+ .icon ::slotted(*) {
215
+ color: map.get($colors, icon-color);
216
+ }
217
+
218
+ &:focus {
219
+ color: map.get($colors, focus-icon-color);
220
+ }
221
+
222
+ &:hover {
223
+ color: map.get($colors, hover-icon-color);
224
+ }
225
+
226
+ &:active {
227
+ color: map.get($colors, pressed-icon-color);
228
+ }
229
+
230
+ .label {
231
+ color: map.get($colors, label-text-color);
232
+
233
+ .fab:hover & {
234
+ color: map.get($colors, hover-label-text-color);
235
+ }
236
+
237
+ .fab:focus & {
238
+ color: map.get($colors, focus-label-text-color);
239
+ }
240
+
241
+ .fab:active & {
242
+ color: map.get($colors, pressed-label-text-color);
243
+ }
42
244
  }
43
245
  }
@@ -3,192 +3,222 @@
3
3
  // SPDX-License-Identifier: Apache-2.0
4
4
  //
5
5
 
6
- // stylelint-disable selector-class-pattern --
7
- // Selector '.md3-*' should only be used in this project.
8
-
9
6
  // go/keep-sorted start
10
7
  @use 'sass:map';
11
- @use 'sass:meta';
12
8
  // go/keep-sorted end
13
9
  // go/keep-sorted start
14
10
  @use '../../elevation/elevation';
15
11
  @use '../../focus/focus-ring';
16
12
  @use '../../ripple/ripple';
17
- @use '../../sass/shape';
18
- @use '../../sass/theme';
19
- @use '../../sass/touch-target';
13
+ @use '../../tokens';
14
+ @use './fab';
20
15
  // go/keep-sorted end
21
16
 
17
+ $_md-sys-motion: tokens.md-sys-motion-values();
18
+
22
19
  @mixin styles() {
23
20
  :host {
21
+ @include ripple.theme(
22
+ (
23
+ hover-opacity: var(--_hover-state-layer-opacity),
24
+ focus-opacity: var(--_focus-state-layer-opacity),
25
+ pressed-opacity: var(--_pressed-state-layer-opacity),
26
+ )
27
+ );
28
+
24
29
  display: inline-flex;
25
- outline: none;
26
- -webkit-tap-highlight-color: transparent;
27
- /**
28
- * Override vertical-align with shortest value "top". Vertical-align's default
29
- * "baseline" value causes buttons to be misaligned next to each other if one
30
- * button has an icon and the other does not.
31
- */
32
- vertical-align: top;
33
30
  }
34
31
 
35
- .md3-fab {
36
- display: inline-flex;
37
- border: none;
38
- outline: none;
39
- user-select: none;
40
- -webkit-appearance: none;
41
- vertical-align: middle;
42
- text-decoration: none;
32
+ .fab,
33
+ .icon,
34
+ .icon ::slotted(*) {
35
+ display: flex;
36
+ }
37
+
38
+ .fab {
43
39
  align-items: center;
44
40
  justify-content: center;
41
+ vertical-align: middle;
42
+ padding: 0;
45
43
  position: relative;
46
- z-index: 0; // Needed for elevation and ripple
47
- background-color: var(--_container-color);
48
-
49
- @include focus-ring.theme(
50
- (
51
- 'shape': shape.corners-to-shape-token('--_container-shape'),
52
- )
53
- );
44
+ height: var(--_container-height);
45
+ transition-property: background-color;
46
+ border-width: 0px;
47
+ outline: none;
48
+ // Required for elevation and ripple to stay below content
49
+ z-index: 0;
50
+
51
+ &.extended {
52
+ width: inherit;
53
+ box-sizing: border-box;
54
+ padding-inline-start: 16px;
55
+ padding-inline-end: 20px;
56
+ }
54
57
 
55
- @include ripple.theme(
56
- (
57
- 'hover-color': var(--_hover-state-layer-color),
58
- 'focus-color': var(--_focus-state-layer-color),
59
- 'pressed-color': var(--_pressed-state-layer-color),
60
- 'hover-opacity': var(--_hover-state-layer-opacity),
61
- 'focus-opacity': var(--_focus-state-layer-opacity),
62
- 'pressed-opacity': var(--_pressed-state-layer-opacity),
63
- )
64
- );
58
+ &:not(.extended) {
59
+ width: var(--_container-width);
60
+ }
65
61
 
66
- @include elevation.theme(
67
- (
68
- // TODO: replace duration with animation tokens
69
- 'duration': 280ms,
70
- 'level': var(--_container-elevation),
71
- 'shadow-color': var(--_container-shadow-color)
72
- )
73
- );
62
+ &.large {
63
+ width: var(--_large-container-width);
64
+ height: var(--_large-container-height);
74
65
 
75
- &.md3-fab--lowered {
76
- @include elevation.theme(
77
- (
78
- 'level': var(--_lowered-container-elevation),
79
- )
80
- );
81
- }
66
+ .icon ::slotted(*) {
67
+ width: var(--_large-icon-size);
68
+ height: var(--_large-icon-size);
69
+ font-size: var(--_large-icon-size);
70
+ }
82
71
 
83
- // apply elevation in order of focused, hovered, pressed
84
- // this ensures a button will have hover elevation after being focused
85
- &:focus {
86
- @include elevation.theme(
87
- (
88
- 'level': var(--_focus-container-elevation),
89
- )
90
- );
72
+ &,
73
+ .ripple {
74
+ border-start-start-radius: var(--_large-container-shape-start-start);
75
+ border-start-end-radius: var(--_large-container-shape-start-end);
76
+ border-end-start-radius: var(--_large-container-shape-end-start);
77
+ border-end-end-radius: var(--_large-container-shape-end-end);
91
78
 
92
- &.md3-fab--lowered {
93
- @include elevation.theme(
79
+ @include focus-ring.theme(
94
80
  (
95
- 'level': var(--_lowered-focus-container-elevation),
81
+ 'shape-start-start': var(--_large-container-shape-start-start),
82
+ 'shape-start-end': var(--_large-container-shape-start-end),
83
+ 'shape-end-end': var(--_large-container-shape-end-end),
84
+ 'shape-end-start': var(--_large-container-shape-end-start),
96
85
  )
97
86
  );
98
87
  }
99
88
  }
100
89
 
101
- &:hover {
102
- cursor: pointer;
90
+ @include _elevation(
91
+ (
92
+ 'default': var(--_container-elevation),
93
+ 'focus': var(--_focus-container-elevation),
94
+ 'hover': var(--_hover-container-elevation),
95
+ 'pressed': var(--_pressed-container-elevation),
96
+ ),
97
+ var(--_container-shadow-color)
98
+ );
99
+
100
+ &.lowered {
101
+ background-color: var(--_lowered-container-color);
103
102
 
104
- @include elevation.theme(
103
+ @include _elevation(
105
104
  (
106
- 'level': var(--_hover-container-elevation),
105
+ 'default': var(--_lowered-container-elevation),
106
+ 'focus': var(--_lowered-focus-container-elevation),
107
+ 'hover': var(--_lowered-hover-container-elevation),
108
+ 'pressed': var(--_lowered-pressed-container-elevation),
107
109
  )
108
110
  );
109
-
110
- &.md3-fab--lowered {
111
- @include elevation.theme(
112
- (
113
- 'level': var(--_lowered-hover-container-elevation),
114
- )
115
- );
116
- }
117
111
  }
118
112
 
119
- &:active {
120
- outline: none;
113
+ @include fab.color(
114
+ (
115
+ 'container-color': var(--_container-color),
116
+ 'focus-state-layer-color': var(--_focus-state-layer-color),
117
+ 'hover-state-layer-color': var(--_hover-state-layer-color),
118
+ 'pressed-state-layer-color': var(--_pressed-state-layer-color),
119
+ 'label-text-color': var(--_label-text-color),
120
+ 'hover-label-text-color': var(--_hover-label-text-color),
121
+ 'focus-label-text-color': var(--_focus-label-text-color),
122
+ 'pressed-label-text-color': var(--_pressed-label-text-color),
123
+ )
124
+ );
125
+ }
121
126
 
122
- @include elevation.theme(
123
- (
124
- 'level': var(--_pressed-container-elevation),
125
- )
126
- );
127
+ .label {
128
+ padding-inline-start: 12px;
129
+ overflow: hidden;
130
+ text-overflow: ellipsis;
131
+ white-space: nowrap;
132
+ font: var(--_label-text-type);
133
+ }
127
134
 
128
- &.md3-fab--lowered {
129
- @include elevation.theme(
130
- (
131
- 'level': var(--_lowered-pressed-container-elevation),
132
- )
133
- );
134
- }
135
- }
135
+ .ripple {
136
+ overflow: hidden;
136
137
  }
137
138
 
139
+ .ripple,
138
140
  md-elevation {
139
- z-index: -1; // Place behind content
141
+ // puts both behind content
142
+ z-index: -1;
140
143
  }
141
144
 
142
- .md3-fab__ripple {
143
- overflow: hidden;
144
- z-index: -1; // Place behind content
145
+ .touch-target {
146
+ position: absolute;
147
+ top: 50%;
148
+ height: 48px;
149
+ left: 50%;
150
+ width: 48px;
151
+ transform: translate(-50%, -50%);
145
152
  }
146
153
 
147
- .md3-fab,
148
- .md3-fab__ripple {
154
+ md-elevation,
155
+ .fab {
156
+ // TODO: replace duration with animation tokens
157
+ transition-duration: 280ms;
158
+ transition-timing-function: map.get($_md-sys-motion, 'easing-emphasized');
159
+ }
160
+
161
+ .fab,
162
+ .ripple {
149
163
  border-start-start-radius: var(--_container-shape-start-start);
150
164
  border-start-end-radius: var(--_container-shape-start-end);
151
165
  border-end-start-radius: var(--_container-shape-end-start);
152
166
  border-end-end-radius: var(--_container-shape-end-end);
167
+ @include focus-ring.theme(
168
+ (
169
+ 'shape-start-start': var(--_container-shape-start-start),
170
+ 'shape-start-end': var(--_container-shape-start-end),
171
+ 'shape-end-end': var(--_container-shape-end-end),
172
+ 'shape-end-start': var(--_container-shape-end-start),
173
+ )
174
+ );
153
175
  }
154
176
 
155
- .md3-fab__icon {
156
- display: inline-flex;
157
- }
158
-
159
- .md3-fab__touch {
160
- @include touch-target.touch-target();
177
+ .icon ::slotted(*) {
178
+ width: var(--_icon-size);
179
+ height: var(--_icon-size);
180
+ font-size: var(--_icon-size);
161
181
  }
182
+ }
162
183
 
163
- .md3-fab__icon ::slotted(*),
164
- .md3-fab__icon {
165
- color: var(--_icon-color);
166
- font-size: var(--_icon-size);
167
- height: var(--_icon-size);
168
- width: var(--_icon-size);
184
+ @mixin _elevation($states, $shadow-color: null) {
185
+ @include elevation.theme(
186
+ (
187
+ 'level': map.get($states, 'default'),
188
+ )
189
+ );
169
190
 
170
- .md3-fab:hover & {
171
- color: var(--_hover-icon-color);
172
- }
191
+ @if $shadow-color {
192
+ @include elevation.theme(
193
+ (
194
+ 'shadow-color': $shadow-color,
195
+ )
196
+ );
197
+ }
173
198
 
174
- .md3-fab:focus & {
175
- color: var(--_focus-icon-color);
176
- }
199
+ // apply elevation in order of focused, hovered, pressed, disabled
200
+ // this ensures a button will have hover elevation after being focused
201
+ &:focus {
202
+ @include elevation.theme(
203
+ (
204
+ 'level': map.get($states, 'focus'),
205
+ )
206
+ );
207
+ }
177
208
 
178
- .md3-fab:active & {
179
- color: var(--_pressed-icon-color);
180
- }
209
+ &:hover {
210
+ @include elevation.theme(
211
+ (
212
+ 'level': map.get($states, 'hover'),
213
+ )
214
+ );
181
215
  }
182
216
 
183
- @media (forced-colors: active) {
184
- .md3-fab {
185
- // Adjust the focus ring padding to account for the 1px border in HCM.
186
- @include focus-ring.theme(
187
- (
188
- 'offset': 3px,
189
- )
190
- );
191
- border: 1px solid ButtonText;
192
- }
217
+ &:active {
218
+ @include elevation.theme(
219
+ (
220
+ 'level': map.get($states, 'pressed'),
221
+ )
222
+ );
193
223
  }
194
224
  }
@@ -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{--_container-color: var(--md-fab-branded-container-color, var(--md-sys-color-surface-container-high, #ece6f0));--_container-elevation: var(--md-fab-branded-container-elevation, 3);--_container-height: var(--md-fab-branded-container-height, 56px);--_container-shadow-color: var(--md-fab-branded-container-shadow-color, var(--md-sys-color-shadow, #000));--_container-shape: var(--md-fab-branded-container-shape, 16px);--_container-width: var(--md-fab-branded-container-width, 56px);--_focus-container-elevation: var(--md-fab-branded-focus-container-elevation, 3);--_focus-state-layer-color: var(--md-fab-branded-focus-state-layer-color, var(--md-sys-color-primary, #6750a4));--_focus-state-layer-opacity: var(--md-fab-branded-focus-state-layer-opacity, 0.12);--_hover-container-elevation: var(--md-fab-branded-hover-container-elevation, 4);--_hover-state-layer-color: var(--md-fab-branded-hover-state-layer-color, var(--md-sys-color-primary, #6750a4));--_hover-state-layer-opacity: var(--md-fab-branded-hover-state-layer-opacity, 0.08);--_icon-size: var(--md-fab-branded-icon-size, 36px);--_lowered-container-color: var(--md-fab-branded-lowered-container-color, var(--md-sys-color-surface-container-low, #f7f2fa));--_lowered-container-elevation: var(--md-fab-branded-lowered-container-elevation, 1);--_lowered-focus-container-elevation: var(--md-fab-branded-lowered-focus-container-elevation, 1);--_lowered-hover-container-elevation: var(--md-fab-branded-lowered-hover-container-elevation, 2);--_lowered-pressed-container-elevation: var(--md-fab-branded-lowered-pressed-container-elevation, 1);--_pressed-container-elevation: var(--md-fab-branded-pressed-container-elevation, 3);--_pressed-state-layer-color: var(--md-fab-branded-pressed-state-layer-color, var(--md-sys-color-primary, #6750a4));--_pressed-state-layer-opacity: var(--md-fab-branded-pressed-state-layer-opacity, 0.12);--_focus-label-text-color: var(--md-fab-branded-focus-label-text-color, var(--md-sys-color-primary, #6750a4));--_hover-label-text-color: var(--md-fab-branded-hover-label-text-color, var(--md-sys-color-primary, #6750a4));--_label-text-color: var(--md-fab-branded-label-text-color, var(--md-sys-color-on-surface, #1d1b20));--_label-text-type: var(--md-fab-branded-label-text-type, var(--md-sys-typescale-label-large, 500 0.875rem / 1.25rem var(--md-ref-typeface-plain, Roboto)));--_large-container-height: var(--md-fab-branded-large-container-height, 96px);--_large-container-shape: var(--md-fab-branded-large-container-shape, 28px);--_large-container-width: var(--md-fab-branded-large-container-width, 96px);--_large-icon-size: var(--md-fab-branded-large-icon-size, 48px);--_pressed-label-text-color: var(--md-fab-branded-pressed-label-text-color, var(--md-sys-color-primary, #6750a4));--_container-shape-start-start: var( --md-fab-branded-container-shape-start-start, var(--_container-shape) );--_container-shape-start-end: var( --md-fab-branded-container-shape-start-end, var(--_container-shape) );--_container-shape-end-end: var( --md-fab-branded-container-shape-end-end, var(--_container-shape) );--_container-shape-end-start: var( --md-fab-branded-container-shape-end-start, var(--_container-shape) );--_large-container-shape-start-start: var( --md-fab-branded-large-container-shape-start-start, var(--_large-container-shape) );--_large-container-shape-start-end: var( --md-fab-branded-large-container-shape-start-end, var(--_large-container-shape) );--_large-container-shape-end-end: var( --md-fab-branded-large-container-shape-end-end, var(--_large-container-shape) );--_large-container-shape-end-start: var( --md-fab-branded-large-container-shape-end-start, var(--_large-container-shape) )}/*# sourceMappingURL=fab-branded-styles.css.map */
8
+ `;
9
+ //# sourceMappingURL=fab-branded-styles.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fab-branded-styles.css.js","sourceRoot":"","sources":["fab-branded-styles.css.ts"],"names":[],"mappings":"AAAA;;;;IAII;AACH,OAAO,EAAC,GAAG,EAAC,MAAM,KAAK,CAAC;AACxB,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;CACzB,CAAC","sourcesContent":["/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n import {css} from 'lit';\n export const styles = css`:host{--_container-color: var(--md-fab-branded-container-color, var(--md-sys-color-surface-container-high, #ece6f0));--_container-elevation: var(--md-fab-branded-container-elevation, 3);--_container-height: var(--md-fab-branded-container-height, 56px);--_container-shadow-color: var(--md-fab-branded-container-shadow-color, var(--md-sys-color-shadow, #000));--_container-shape: var(--md-fab-branded-container-shape, 16px);--_container-width: var(--md-fab-branded-container-width, 56px);--_focus-container-elevation: var(--md-fab-branded-focus-container-elevation, 3);--_focus-state-layer-color: var(--md-fab-branded-focus-state-layer-color, var(--md-sys-color-primary, #6750a4));--_focus-state-layer-opacity: var(--md-fab-branded-focus-state-layer-opacity, 0.12);--_hover-container-elevation: var(--md-fab-branded-hover-container-elevation, 4);--_hover-state-layer-color: var(--md-fab-branded-hover-state-layer-color, var(--md-sys-color-primary, #6750a4));--_hover-state-layer-opacity: var(--md-fab-branded-hover-state-layer-opacity, 0.08);--_icon-size: var(--md-fab-branded-icon-size, 36px);--_lowered-container-color: var(--md-fab-branded-lowered-container-color, var(--md-sys-color-surface-container-low, #f7f2fa));--_lowered-container-elevation: var(--md-fab-branded-lowered-container-elevation, 1);--_lowered-focus-container-elevation: var(--md-fab-branded-lowered-focus-container-elevation, 1);--_lowered-hover-container-elevation: var(--md-fab-branded-lowered-hover-container-elevation, 2);--_lowered-pressed-container-elevation: var(--md-fab-branded-lowered-pressed-container-elevation, 1);--_pressed-container-elevation: var(--md-fab-branded-pressed-container-elevation, 3);--_pressed-state-layer-color: var(--md-fab-branded-pressed-state-layer-color, var(--md-sys-color-primary, #6750a4));--_pressed-state-layer-opacity: var(--md-fab-branded-pressed-state-layer-opacity, 0.12);--_focus-label-text-color: var(--md-fab-branded-focus-label-text-color, var(--md-sys-color-primary, #6750a4));--_hover-label-text-color: var(--md-fab-branded-hover-label-text-color, var(--md-sys-color-primary, #6750a4));--_label-text-color: var(--md-fab-branded-label-text-color, var(--md-sys-color-on-surface, #1d1b20));--_label-text-type: var(--md-fab-branded-label-text-type, var(--md-sys-typescale-label-large, 500 0.875rem / 1.25rem var(--md-ref-typeface-plain, Roboto)));--_large-container-height: var(--md-fab-branded-large-container-height, 96px);--_large-container-shape: var(--md-fab-branded-large-container-shape, 28px);--_large-container-width: var(--md-fab-branded-large-container-width, 96px);--_large-icon-size: var(--md-fab-branded-large-icon-size, 48px);--_pressed-label-text-color: var(--md-fab-branded-pressed-label-text-color, var(--md-sys-color-primary, #6750a4));--_container-shape-start-start: var( --md-fab-branded-container-shape-start-start, var(--_container-shape) );--_container-shape-start-end: var( --md-fab-branded-container-shape-start-end, var(--_container-shape) );--_container-shape-end-end: var( --md-fab-branded-container-shape-end-end, var(--_container-shape) );--_container-shape-end-start: var( --md-fab-branded-container-shape-end-start, var(--_container-shape) );--_large-container-shape-start-start: var( --md-fab-branded-large-container-shape-start-start, var(--_large-container-shape) );--_large-container-shape-start-end: var( --md-fab-branded-large-container-shape-start-end, var(--_large-container-shape) );--_large-container-shape-end-end: var( --md-fab-branded-large-container-shape-end-end, var(--_large-container-shape) );--_large-container-shape-end-start: var( --md-fab-branded-large-container-shape-end-start, var(--_large-container-shape) )}/*# sourceMappingURL=fab-branded-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 './fab-branded';
8
+ // go/keep-sorted end
9
+
10
+ @include fab-branded.styles;