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

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 (334) hide show
  1. package/README.md +7 -7
  2. package/aria/aria.d.ts +43 -0
  3. package/aria/aria.js +56 -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 +8 -7
  12. package/badge/lib/badge.js +5 -6
  13. package/badge/lib/badge.js.map +1 -1
  14. package/button/lib/_elevation.scss +13 -3
  15. package/button/lib/button.d.ts +1 -12
  16. package/button/lib/button.js +29 -60
  17. package/button/lib/button.js.map +1 -1
  18. package/button/lib/shared-elevation-styles.css.js +1 -1
  19. package/button/lib/shared-elevation-styles.css.js.map +1 -1
  20. package/checkbox/lib/checkbox.d.ts +0 -1
  21. package/checkbox/lib/checkbox.js +33 -43
  22. package/checkbox/lib/checkbox.js.map +1 -1
  23. package/chips/_filter-chip.scss +6 -0
  24. package/chips/filter-chip.d.ts +20 -0
  25. package/chips/filter-chip.js +24 -0
  26. package/chips/filter-chip.js.map +1 -0
  27. package/chips/lib/_filter-chip.scss +141 -0
  28. package/chips/lib/_shared.scss +18 -14
  29. package/chips/lib/assist-styles.css.js +1 -1
  30. package/chips/lib/assist-styles.css.js.map +1 -1
  31. package/chips/lib/chip.d.ts +8 -3
  32. package/chips/lib/chip.js +29 -30
  33. package/chips/lib/chip.js.map +1 -1
  34. package/chips/lib/filter-chip.d.ts +21 -0
  35. package/chips/lib/filter-chip.js +47 -0
  36. package/chips/lib/filter-chip.js.map +1 -0
  37. package/chips/lib/filter-styles.css.js +9 -0
  38. package/chips/lib/filter-styles.css.js.map +1 -0
  39. package/{fab/lib/fab-extended-styles.scss → chips/lib/filter-styles.scss} +3 -3
  40. package/chips/lib/shared-styles.css.js +1 -1
  41. package/chips/lib/shared-styles.css.js.map +1 -1
  42. package/chips/lib/suggestion-styles.css.js +1 -1
  43. package/chips/lib/suggestion-styles.css.js.map +1 -1
  44. package/circularprogress/harness.d.ts +1 -0
  45. package/circularprogress/harness.js +4 -0
  46. package/circularprogress/harness.js.map +1 -1
  47. package/circularprogress/lib/circular-progress.d.ts +0 -1
  48. package/circularprogress/lib/circular-progress.js +16 -19
  49. package/circularprogress/lib/circular-progress.js.map +1 -1
  50. package/dialog/lib/_dialog.scss +8 -8
  51. package/dialog/lib/dialog-styles.css.js +1 -1
  52. package/dialog/lib/dialog-styles.css.js.map +1 -1
  53. package/dialog/lib/dialog.js +25 -49
  54. package/dialog/lib/dialog.js.map +1 -1
  55. package/divider/lib/divider.js +4 -7
  56. package/divider/lib/divider.js.map +1 -1
  57. package/elevation/lib/_elevation.scss +5 -7
  58. package/elevation/lib/elevation-styles.css.js +1 -1
  59. package/elevation/lib/elevation-styles.css.js.map +1 -1
  60. package/fab/_fab.scss +1 -0
  61. package/fab/branded-fab.d.ts +53 -0
  62. package/fab/branded-fab.js +56 -0
  63. package/fab/branded-fab.js.map +1 -0
  64. package/fab/fab.d.ts +25 -5
  65. package/fab/fab.js +27 -10
  66. package/fab/fab.js.map +1 -1
  67. package/fab/harness.d.ts +1 -2
  68. package/fab/harness.js +1 -1
  69. package/fab/harness.js.map +1 -1
  70. package/fab/lib/_fab-branded.scss +27 -0
  71. package/fab/lib/_fab.scss +144 -16
  72. package/fab/lib/_shared.scss +155 -130
  73. package/fab/lib/fab-branded-styles.css.js +9 -0
  74. package/fab/lib/fab-branded-styles.css.js.map +1 -0
  75. package/fab/lib/fab-branded-styles.scss +10 -0
  76. package/fab/lib/fab-styles.css.js +1 -1
  77. package/fab/lib/fab-styles.css.js.map +1 -1
  78. package/fab/lib/fab.d.ts +14 -10
  79. package/fab/lib/fab.js +19 -12
  80. package/fab/lib/fab.js.map +1 -1
  81. package/fab/lib/forced-colors-styles.css.d.ts +1 -0
  82. package/fab/lib/forced-colors-styles.css.js +9 -0
  83. package/fab/lib/forced-colors-styles.css.js.map +1 -0
  84. package/fab/lib/forced-colors-styles.scss +26 -0
  85. package/fab/lib/shared-styles.css.d.ts +1 -0
  86. package/fab/lib/shared-styles.css.js +9 -0
  87. package/fab/lib/shared-styles.css.js.map +1 -0
  88. package/fab/lib/{fab-shared-styles.scss → shared-styles.scss} +1 -1
  89. package/fab/lib/{fab-shared.d.ts → shared.d.ts} +24 -16
  90. package/fab/lib/shared.js +137 -0
  91. package/fab/lib/shared.js.map +1 -0
  92. package/field/lib/field.js +14 -27
  93. package/field/lib/field.js.map +1 -1
  94. package/focus/focus-ring.d.ts +0 -1
  95. package/focus/focus-ring.js +0 -1
  96. package/focus/focus-ring.js.map +1 -1
  97. package/focus/lib/focus-ring.js +2 -3
  98. package/focus/lib/focus-ring.js.map +1 -1
  99. package/focus/strong-focus.js +5 -0
  100. package/focus/strong-focus.js.map +1 -1
  101. package/icon/icon.d.ts +0 -1
  102. package/icon/icon.js +0 -1
  103. package/icon/icon.js.map +1 -1
  104. package/icon/lib/_icon.scss +2 -0
  105. package/icon/lib/icon-styles.css.js +1 -1
  106. package/icon/lib/icon-styles.css.js.map +1 -1
  107. package/icon/lib/icon.d.ts +5 -4
  108. package/icon/lib/icon.js +3 -2
  109. package/icon/lib/icon.js.map +1 -1
  110. package/iconbutton/lib/icon-button.d.ts +0 -4
  111. package/iconbutton/lib/icon-button.js +28 -48
  112. package/iconbutton/lib/icon-button.js.map +1 -1
  113. package/linearprogress/_linear-progress.scss +6 -0
  114. package/linearprogress/harness.d.ts +13 -0
  115. package/linearprogress/harness.js +18 -0
  116. package/linearprogress/harness.js.map +1 -0
  117. package/linearprogress/lib/_linear-progress.scss +380 -0
  118. package/linearprogress/lib/linear-progress-styles.css.d.ts +1 -0
  119. package/linearprogress/lib/linear-progress-styles.css.js +9 -0
  120. package/linearprogress/lib/linear-progress-styles.css.js.map +1 -0
  121. package/linearprogress/lib/linear-progress-styles.scss +8 -0
  122. package/linearprogress/lib/linear-progress.d.ts +35 -0
  123. package/linearprogress/lib/linear-progress.js +127 -0
  124. package/linearprogress/lib/linear-progress.js.map +1 -0
  125. package/linearprogress/linear-progress.d.ts +23 -0
  126. package/linearprogress/linear-progress.js +26 -0
  127. package/linearprogress/linear-progress.js.map +1 -0
  128. package/list/lib/_list.scss +6 -49
  129. package/list/lib/list-styles.css.js +1 -1
  130. package/list/lib/list-styles.css.js.map +1 -1
  131. package/list/lib/list.d.ts +1 -3
  132. package/list/lib/list.js +18 -34
  133. package/list/lib/list.js.map +1 -1
  134. package/list/lib/listitem/_list-item.scss +10 -69
  135. package/list/lib/listitem/forced-colors-styles.css.js +1 -1
  136. package/list/lib/listitem/forced-colors-styles.css.js.map +1 -1
  137. package/list/lib/listitem/list-item-styles.css.js +1 -1
  138. package/list/lib/listitem/list-item-styles.css.js.map +1 -1
  139. package/list/lib/listitem/list-item.d.ts +2 -4
  140. package/list/lib/listitem/list-item.js +24 -53
  141. package/list/lib/listitem/list-item.js.map +1 -1
  142. package/list/lib/listitemlink/list-item-link.js +4 -6
  143. package/list/lib/listitemlink/list-item-link.js.map +1 -1
  144. package/menu/lib/_menu.scss +6 -28
  145. package/menu/lib/menu-styles.css.js +1 -1
  146. package/menu/lib/menu-styles.css.js.map +1 -1
  147. package/menu/lib/menu.d.ts +1 -2
  148. package/menu/lib/menu.js +38 -63
  149. package/menu/lib/menu.js.map +1 -1
  150. package/menu/lib/menuitem/_menu-item.scss +13 -32
  151. package/menu/lib/menuitem/menu-item-styles.css.js +1 -1
  152. package/menu/lib/menuitem/menu-item-styles.css.js.map +1 -1
  153. package/menu/lib/menuitem/menu-item.d.ts +1 -1
  154. package/menu/lib/menuitem/menu-item.js +4 -6
  155. package/menu/lib/menuitem/menu-item.js.map +1 -1
  156. package/menu/lib/menuitemlink/menu-item-link.d.ts +0 -2
  157. package/menu/lib/menuitemlink/menu-item-link.js +3 -6
  158. package/menu/lib/menuitemlink/menu-item-link.js.map +1 -1
  159. package/menu/lib/shared.d.ts +6 -2
  160. package/menu/lib/shared.js.map +1 -1
  161. package/menu/lib/submenuitem/sub-menu-item.d.ts +0 -2
  162. package/menu/lib/submenuitem/sub-menu-item.js +7 -15
  163. package/menu/lib/submenuitem/sub-menu-item.js.map +1 -1
  164. package/navigationbar/lib/_navigation-bar.scss +7 -1
  165. package/navigationbar/lib/navigation-bar-styles.css.js +1 -1
  166. package/navigationbar/lib/navigation-bar-styles.css.js.map +1 -1
  167. package/navigationbar/lib/navigation-bar.d.ts +5 -5
  168. package/navigationbar/lib/navigation-bar.js +17 -18
  169. package/navigationbar/lib/navigation-bar.js.map +1 -1
  170. package/navigationbar/navigation-bar.d.ts +0 -1
  171. package/navigationbar/navigation-bar.js +0 -1
  172. package/navigationbar/navigation-bar.js.map +1 -1
  173. package/navigationdrawer/lib/navigation-drawer-modal.d.ts +5 -10
  174. package/navigationdrawer/lib/navigation-drawer-modal.js +19 -41
  175. package/navigationdrawer/lib/navigation-drawer-modal.js.map +1 -1
  176. package/navigationdrawer/lib/navigation-drawer.d.ts +5 -9
  177. package/navigationdrawer/lib/navigation-drawer.js +17 -38
  178. package/navigationdrawer/lib/navigation-drawer.js.map +1 -1
  179. package/navigationdrawer/navigation-drawer-modal.d.ts +0 -1
  180. package/navigationdrawer/navigation-drawer-modal.js +0 -1
  181. package/navigationdrawer/navigation-drawer-modal.js.map +1 -1
  182. package/navigationdrawer/navigation-drawer.d.ts +0 -1
  183. package/navigationdrawer/navigation-drawer.js +0 -1
  184. package/navigationdrawer/navigation-drawer.js.map +1 -1
  185. package/navigationtab/lib/navigation-tab.d.ts +19 -24
  186. package/navigationtab/lib/navigation-tab.js +48 -68
  187. package/navigationtab/lib/navigation-tab.js.map +1 -1
  188. package/navigationtab/navigation-tab.d.ts +0 -1
  189. package/navigationtab/navigation-tab.js +0 -1
  190. package/navigationtab/navigation-tab.js.map +1 -1
  191. package/package.json +1 -1
  192. package/radio/lib/radio.d.ts +0 -1
  193. package/radio/lib/radio.js +30 -37
  194. package/radio/lib/radio.js.map +1 -1
  195. package/ripple/lib/ripple.js +7 -13
  196. package/ripple/lib/ripple.js.map +1 -1
  197. package/segmentedbutton/lib/outlined-segmented-button.d.ts +16 -7
  198. package/segmentedbutton/lib/outlined-segmented-button.js +3 -3
  199. package/segmentedbutton/lib/outlined-segmented-button.js.map +1 -1
  200. package/segmentedbutton/lib/segmented-button.d.ts +27 -33
  201. package/segmentedbutton/lib/segmented-button.js +42 -75
  202. package/segmentedbutton/lib/segmented-button.js.map +1 -1
  203. package/segmentedbutton/outlined-segmented-button.d.ts +0 -1
  204. package/segmentedbutton/outlined-segmented-button.js +0 -1
  205. package/segmentedbutton/outlined-segmented-button.js.map +1 -1
  206. package/segmentedbuttonset/lib/outlined-segmented-button-set.d.ts +6 -4
  207. package/segmentedbuttonset/lib/outlined-segmented-button-set.js +3 -2
  208. package/segmentedbuttonset/lib/outlined-segmented-button-set.js.map +1 -1
  209. package/segmentedbuttonset/lib/segmented-button-set.d.ts +3 -9
  210. package/segmentedbuttonset/lib/segmented-button-set.js +14 -20
  211. package/segmentedbuttonset/lib/segmented-button-set.js.map +1 -1
  212. package/segmentedbuttonset/outlined-segmented-button-set.d.ts +0 -1
  213. package/segmentedbuttonset/outlined-segmented-button-set.js +0 -1
  214. package/segmentedbuttonset/outlined-segmented-button-set.js.map +1 -1
  215. package/select/_filled-select.scss +6 -0
  216. package/select/_outlined-select.scss +6 -0
  217. package/select/filled-select.d.ts +41 -0
  218. package/select/filled-select.js +46 -0
  219. package/select/filled-select.js.map +1 -0
  220. package/select/harness.d.ts +24 -0
  221. package/select/harness.js +53 -0
  222. package/select/harness.js.map +1 -0
  223. package/select/lib/_filled-select.scss +163 -0
  224. package/select/lib/_outlined-select.scss +146 -0
  225. package/select/lib/_shared.scss +48 -0
  226. package/select/lib/filled-forced-colors-styles.css.d.ts +1 -0
  227. package/select/lib/filled-forced-colors-styles.css.js +9 -0
  228. package/select/lib/filled-forced-colors-styles.css.js.map +1 -0
  229. package/select/lib/filled-forced-colors-styles.scss +29 -0
  230. package/select/lib/filled-select-styles.css.d.ts +1 -0
  231. package/select/lib/filled-select-styles.css.js +9 -0
  232. package/select/lib/filled-select-styles.css.js.map +1 -0
  233. package/select/lib/filled-select-styles.scss +10 -0
  234. package/select/lib/filled-select.d.ts +10 -0
  235. package/select/lib/filled-select.js +16 -0
  236. package/select/lib/filled-select.js.map +1 -0
  237. package/select/lib/outlined-forced-colors-styles.css.d.ts +1 -0
  238. package/select/lib/outlined-forced-colors-styles.css.js +9 -0
  239. package/select/lib/outlined-forced-colors-styles.css.js.map +1 -0
  240. package/select/lib/outlined-forced-colors-styles.scss +29 -0
  241. package/select/lib/outlined-select-styles.css.d.ts +1 -0
  242. package/select/lib/outlined-select-styles.css.js +9 -0
  243. package/select/lib/outlined-select-styles.css.js.map +1 -0
  244. package/select/lib/outlined-select-styles.scss +10 -0
  245. package/select/lib/outlined-select.d.ts +10 -0
  246. package/select/lib/outlined-select.js +16 -0
  247. package/select/lib/outlined-select.js.map +1 -0
  248. package/select/lib/select.d.ts +218 -0
  249. package/select/lib/select.js +587 -0
  250. package/select/lib/select.js.map +1 -0
  251. package/select/lib/selectoption/harness.d.ts +11 -0
  252. package/select/lib/selectoption/harness.js +12 -0
  253. package/select/lib/selectoption/harness.js.map +1 -0
  254. package/select/lib/selectoption/select-option.d.ts +30 -0
  255. package/select/lib/selectoption/select-option.js +71 -0
  256. package/select/lib/selectoption/select-option.js.map +1 -0
  257. package/select/lib/shared-styles.css.d.ts +1 -0
  258. package/select/lib/shared-styles.css.js +9 -0
  259. package/select/lib/shared-styles.css.js.map +1 -0
  260. package/select/lib/shared-styles.scss +10 -0
  261. package/select/lib/shared.d.ts +52 -0
  262. package/select/lib/shared.js +41 -0
  263. package/select/lib/shared.js.map +1 -0
  264. package/select/outlined-select.d.ts +41 -0
  265. package/select/outlined-select.js +46 -0
  266. package/select/outlined-select.js.map +1 -0
  267. package/select/select-option.d.ts +44 -0
  268. package/select/select-option.js +51 -0
  269. package/select/select-option.js.map +1 -0
  270. package/slider/harness.d.ts +1 -0
  271. package/slider/harness.js +5 -0
  272. package/slider/harness.js.map +1 -1
  273. package/slider/lib/_slider.scss +146 -164
  274. package/slider/lib/forced-colors-styles.css.js +1 -1
  275. package/slider/lib/forced-colors-styles.css.js.map +1 -1
  276. package/slider/lib/forced-colors-styles.scss +2 -2
  277. package/slider/lib/slider-styles.css.js +1 -1
  278. package/slider/lib/slider-styles.css.js.map +1 -1
  279. package/slider/lib/slider.d.ts +2 -7
  280. package/slider/lib/slider.js +64 -118
  281. package/slider/lib/slider.js.map +1 -1
  282. package/switch/lib/switch.d.ts +0 -2
  283. package/switch/lib/switch.js +32 -54
  284. package/switch/lib/switch.js.map +1 -1
  285. package/textfield/lib/text-field.d.ts +0 -10
  286. package/textfield/lib/text-field.js +45 -115
  287. package/textfield/lib/text-field.js.map +1 -1
  288. package/tokens/_index.scss +3 -0
  289. package/tokens/_md-comp-assist-chip.scss +25 -20
  290. package/tokens/_md-comp-elevation.scss +0 -4
  291. package/tokens/_md-comp-fab-branded.scss +109 -1
  292. package/tokens/_md-comp-fab.scss +290 -0
  293. package/tokens/_md-comp-filled-select.scss +150 -1
  294. package/tokens/_md-comp-filter-chip.scss +103 -93
  295. package/tokens/_md-comp-input-chip.scss +77 -85
  296. package/tokens/_md-comp-linear-progress-indicator.scss +14 -1
  297. package/tokens/_md-comp-list-item.scss +201 -0
  298. package/tokens/_md-comp-list.scss +107 -26
  299. package/tokens/_md-comp-menu-item.scss +76 -0
  300. package/tokens/_md-comp-menu.scss +52 -2
  301. package/tokens/_md-comp-outlined-select.scss +150 -1
  302. package/tokens/_md-comp-slider.scss +13 -1
  303. package/tokens/_md-comp-suggestion-chip.scss +29 -21
  304. package/tokens/_values.scss +5 -2
  305. package/types/aria.d.ts +61 -1
  306. package/actionelement/action-element.d.ts +0 -79
  307. package/actionelement/action-element.js +0 -97
  308. package/actionelement/action-element.js.map +0 -1
  309. package/button/lib/state.d.ts +0 -10
  310. package/button/lib/state.js +0 -7
  311. package/button/lib/state.js.map +0 -1
  312. package/controller/action-controller.d.ts +0 -147
  313. package/controller/action-controller.js +0 -286
  314. package/controller/action-controller.js.map +0 -1
  315. package/decorators/aria-property.d.ts +0 -32
  316. package/decorators/aria-property.js +0 -99
  317. package/decorators/aria-property.js.map +0 -1
  318. package/fab/_fab-extended.scss +0 -6
  319. package/fab/fab-extended.d.ts +0 -23
  320. package/fab/fab-extended.js +0 -29
  321. package/fab/fab-extended.js.map +0 -1
  322. package/fab/lib/_fab-extended.scss +0 -73
  323. package/fab/lib/fab-extended-styles.css.js +0 -9
  324. package/fab/lib/fab-extended-styles.css.js.map +0 -1
  325. package/fab/lib/fab-extended.d.ts +0 -19
  326. package/fab/lib/fab-extended.js +0 -28
  327. package/fab/lib/fab-extended.js.map +0 -1
  328. package/fab/lib/fab-shared-styles.css.js +0 -9
  329. package/fab/lib/fab-shared-styles.css.js.map +0 -1
  330. package/fab/lib/fab-shared.js +0 -121
  331. package/fab/lib/fab-shared.js.map +0 -1
  332. package/slider/lib/_tokens.scss +0 -65
  333. /package/{fab/lib/fab-extended-styles.css.d.ts → chips/lib/filter-styles.css.d.ts} +0 -0
  334. /package/fab/lib/{fab-shared-styles.css.d.ts → fab-branded-styles.css.d.ts} +0 -0
package/fab/fab.d.ts CHANGED
@@ -3,21 +3,41 @@
3
3
  * Copyright 2022 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import '../icon/icon.js';
7
- import { TemplateResult } from 'lit';
8
6
  import { Fab } from './lib/fab.js';
7
+ export { Variant } from './lib/fab.js';
8
+ export { FabSize } from './lib/shared.js';
9
9
  declare global {
10
10
  interface HTMLElementTagNameMap {
11
11
  'md-fab': MdFab;
12
12
  }
13
13
  }
14
14
  /**
15
- * @soyCompatible
15
+ * @summary Floating action buttons (FABs) help people take primary actions.
16
+ * They’re used to represent the most important action on a screen, such as
17
+ * Create or Reply.
18
+ *
19
+ * @description
20
+ * __Emphasis:__ High emphasis – For the primary, most important, or most common
21
+ * action on a screen
22
+ *
23
+ * __Rationale:__ The FAB remains the default component for a screen’s primary
24
+ * action. It comes in three sizes: small FAB, FAB, and large FAB. The extended
25
+ * FAB’s wider format and text label give it more visual prominence than a FAB.
26
+ * It’s often used on larger screens where a FAB would seem too small.
27
+ *
28
+ * __Example usages:__
29
+ * - FAB
30
+ * - Create
31
+ * - Compose
32
+ * - Extended FAB
33
+ * - Create
34
+ * - Compose
35
+ * - New Thread
36
+ * - New File
37
+ *
16
38
  * @final
17
39
  * @suppress {visibility}
18
40
  */
19
41
  export declare class MdFab extends Fab {
20
42
  static styles: import("lit").CSSResult[];
21
- /** @soyTemplate */
22
- protected renderIcon(icon: string): TemplateResult | string;
23
43
  }
package/fab/fab.js CHANGED
@@ -4,24 +4,41 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  import { __decorate } from "tslib";
7
- import '../icon/icon.js';
8
- import { html } from 'lit';
9
7
  import { customElement } from 'lit/decorators.js';
10
8
  import { Fab } from './lib/fab.js';
11
- import { styles as sharedStyles } from './lib/fab-shared-styles.css.js';
12
- import { styles as fabStyles } from './lib/fab-styles.css.js';
9
+ import { styles } from './lib/fab-styles.css.js';
10
+ import { styles as forcedColors } from './lib/forced-colors-styles.css.js';
11
+ import { styles as sharedStyles } from './lib/shared-styles.css.js';
13
12
  /**
14
- * @soyCompatible
13
+ * @summary Floating action buttons (FABs) help people take primary actions.
14
+ * They’re used to represent the most important action on a screen, such as
15
+ * Create or Reply.
16
+ *
17
+ * @description
18
+ * __Emphasis:__ High emphasis – For the primary, most important, or most common
19
+ * action on a screen
20
+ *
21
+ * __Rationale:__ The FAB remains the default component for a screen’s primary
22
+ * action. It comes in three sizes: small FAB, FAB, and large FAB. The extended
23
+ * FAB’s wider format and text label give it more visual prominence than a FAB.
24
+ * It’s often used on larger screens where a FAB would seem too small.
25
+ *
26
+ * __Example usages:__
27
+ * - FAB
28
+ * - Create
29
+ * - Compose
30
+ * - Extended FAB
31
+ * - Create
32
+ * - Compose
33
+ * - New Thread
34
+ * - New File
35
+ *
15
36
  * @final
16
37
  * @suppress {visibility}
17
38
  */
18
39
  let MdFab = class MdFab extends Fab {
19
- /** @soyTemplate */
20
- renderIcon(icon) {
21
- return icon ? html `<md-icon class="md3-fab__icon">${icon}</md-icon>` : '';
22
- }
23
40
  };
24
- MdFab.styles = [sharedStyles, fabStyles];
41
+ MdFab.styles = [sharedStyles, styles, forcedColors];
25
42
  MdFab = __decorate([
26
43
  customElement('md-fab')
27
44
  ], MdFab);
package/fab/fab.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"fab.js","sourceRoot":"","sources":["fab.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;AAEH,OAAO,iBAAiB,CAAC;AAEzB,OAAO,EAAC,IAAI,EAAiB,MAAM,KAAK,CAAC;AACzC,OAAO,EAAC,aAAa,EAAC,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAC,GAAG,EAAC,MAAM,cAAc,CAAC;AACjC,OAAO,EAAC,MAAM,IAAI,YAAY,EAAC,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAC,MAAM,IAAI,SAAS,EAAC,MAAM,yBAAyB,CAAC;AAQ5D;;;;GAIG;AAEI,IAAM,KAAK,GAAX,MAAM,KAAM,SAAQ,GAAG;IAG5B,mBAAmB;IACA,UAAU,CAAC,IAAY;QACxC,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAA,kCAAkC,IAAI,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5E,CAAC;;AALe,YAAM,GAAG,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;AADxC,KAAK;IADjB,aAAa,CAAC,QAAQ,CAAC;GACX,KAAK,CAOjB;SAPY,KAAK","sourcesContent":["/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport '../icon/icon.js';\n\nimport {html, TemplateResult} from 'lit';\nimport {customElement} from 'lit/decorators.js';\n\nimport {Fab} from './lib/fab.js';\nimport {styles as sharedStyles} from './lib/fab-shared-styles.css.js';\nimport {styles as fabStyles} from './lib/fab-styles.css.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'md-fab': MdFab;\n }\n}\n\n/**\n * @soyCompatible\n * @final\n * @suppress {visibility}\n */\n@customElement('md-fab')\nexport class MdFab extends Fab {\n static override styles = [sharedStyles, fabStyles];\n\n /** @soyTemplate */\n protected override renderIcon(icon: string): TemplateResult|string {\n return icon ? html`<md-icon class=\"md3-fab__icon\">${icon}</md-icon>` : '';\n }\n}\n"]}
1
+ {"version":3,"file":"fab.js","sourceRoot":"","sources":["fab.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;AAEH,OAAO,EAAC,aAAa,EAAC,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAC,GAAG,EAAC,MAAM,cAAc,CAAC;AACjC,OAAO,EAAC,MAAM,EAAC,MAAM,yBAAyB,CAAC;AAC/C,OAAO,EAAC,MAAM,IAAI,YAAY,EAAC,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAC,MAAM,IAAI,YAAY,EAAC,MAAM,4BAA4B,CAAC;AAWlE;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEI,IAAM,KAAK,GAAX,MAAM,KAAM,SAAQ,GAAG;;AACZ,YAAM,GAClB,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;AAF9B,KAAK;IADjB,aAAa,CAAC,QAAQ,CAAC;GACX,KAAK,CAGjB;SAHY,KAAK","sourcesContent":["/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {customElement} from 'lit/decorators.js';\n\nimport {Fab} from './lib/fab.js';\nimport {styles} from './lib/fab-styles.css.js';\nimport {styles as forcedColors} from './lib/forced-colors-styles.css.js';\nimport {styles as sharedStyles} from './lib/shared-styles.css.js';\n\nexport {Variant} from './lib/fab.js';\nexport {FabSize} from './lib/shared.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'md-fab': MdFab;\n }\n}\n\n/**\n * @summary Floating action buttons (FABs) help people take primary actions.\n * They’re used to represent the most important action on a screen, such as\n * Create or Reply.\n *\n * @description\n * __Emphasis:__ High emphasis – For the primary, most important, or most common\n * action on a screen\n *\n * __Rationale:__ The FAB remains the default component for a screen’s primary\n * action. It comes in three sizes: small FAB, FAB, and large FAB. The extended\n * FAB’s wider format and text label give it more visual prominence than a FAB.\n * It’s often used on larger screens where a FAB would seem too small.\n *\n * __Example usages:__\n * - FAB\n * - Create\n * - Compose\n * - Extended FAB\n * - Create\n * - Compose\n * - New Thread\n * - New File\n *\n * @final\n * @suppress {visibility}\n */\n@customElement('md-fab')\nexport class MdFab extends Fab {\n static override styles =\n [sharedStyles, styles, forcedColors];\n}\n"]}
package/fab/harness.d.ts CHANGED
@@ -5,10 +5,9 @@
5
5
  */
6
6
  import { Harness } from '../testing/harness.js';
7
7
  import { Fab } from './lib/fab.js';
8
- import { FabExtended } from './lib/fab-extended.js';
9
8
  /**
10
9
  * Test harness for floating action buttons.
11
10
  */
12
- export declare class FabHarness extends Harness<Fab | FabExtended> {
11
+ export declare class FabHarness extends Harness<Fab> {
13
12
  getInteractiveElement(): Promise<HTMLButtonElement>;
14
13
  }
package/fab/harness.js CHANGED
@@ -10,7 +10,7 @@ import { Harness } from '../testing/harness.js';
10
10
  export class FabHarness extends Harness {
11
11
  async getInteractiveElement() {
12
12
  await this.element.updateComplete;
13
- return this.element.renderRoot.querySelector('.md3-fab');
13
+ return this.element.renderRoot.querySelector('.fab');
14
14
  }
15
15
  }
16
16
  //# sourceMappingURL=harness.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"harness.js","sourceRoot":"","sources":["harness.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAC,OAAO,EAAC,MAAM,uBAAuB,CAAC;AAM9C;;GAEG;AACH,MAAM,OAAO,UAAW,SAAQ,OAAwB;IAC7C,KAAK,CAAC,qBAAqB;QAClC,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC;QAClC,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,UAAU,CAClC,CAAC;IACxB,CAAC;CACF","sourcesContent":["/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {Harness} from '../testing/harness.js';\n\nimport {Fab} from './lib/fab.js';\nimport {FabExtended} from './lib/fab-extended.js';\n\n\n/**\n * Test harness for floating action buttons.\n */\nexport class FabHarness extends Harness<Fab|FabExtended> {\n override async getInteractiveElement() {\n await this.element.updateComplete;\n return this.element.renderRoot.querySelector('.md3-fab') as\n HTMLButtonElement;\n }\n}\n"]}
1
+ {"version":3,"file":"harness.js","sourceRoot":"","sources":["harness.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAC,OAAO,EAAC,MAAM,uBAAuB,CAAC;AAI9C;;GAEG;AACH,MAAM,OAAO,UAAW,SAAQ,OAAY;IACjC,KAAK,CAAC,qBAAqB;QAClC,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC;QAClC,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,MAAM,CAC9B,CAAC;IACxB,CAAC;CACF","sourcesContent":["/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {Harness} from '../testing/harness.js';\n\nimport {Fab} from './lib/fab.js';\n\n/**\n * Test harness for floating action buttons.\n */\nexport class FabHarness extends Harness<Fab> {\n override async getInteractiveElement() {\n await this.element.updateComplete;\n return this.element.renderRoot.querySelector('.fab') as\n HTMLButtonElement;\n }\n}\n"]}
@@ -0,0 +1,27 @@
1
+ //
2
+ // Copyright 2023 Google LLC
3
+ // SPDX-License-Identifier: Apache-2.0
4
+ //
5
+
6
+ // go/keep-sorted start
7
+ @use '../../sass/theme';
8
+ @use '../../tokens';
9
+ // go/keep-sorted end
10
+
11
+ @mixin theme($tokens) {
12
+ $tokens: theme.validate-theme(tokens.md-comp-fab-branded-values(), $tokens);
13
+
14
+ @each $token, $value in $tokens {
15
+ --md-fab-branded-#{$token}: #{$value};
16
+ }
17
+ }
18
+
19
+ @mixin styles() {
20
+ $tokens: tokens.md-comp-fab-branded-values();
21
+
22
+ :host {
23
+ @each $token, $value in $tokens {
24
+ --_#{$token}: #{$value};
25
+ }
26
+ }
27
+ }
package/fab/lib/_fab.scss CHANGED
@@ -3,28 +3,27 @@
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
7
+ @use 'sass:map';
8
+ // go/keep-sorted end
9
+ // go/keep-sorted start
10
+ @use '../../focus/focus-ring';
11
+ @use '../../ripple/ripple';
10
12
  @use '../../sass/shape';
11
13
  @use '../../sass/theme';
12
14
  @use '../../tokens';
13
- @use './shared';
14
15
  // go/keep-sorted end
15
16
 
16
17
  @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');
18
+ $tokens: theme.validate-theme(tokens.md-comp-fab-values(), $tokens);
20
19
 
21
- @include theme.emit-theme-vars($tokens);
20
+ @each $token, $value in $tokens {
21
+ --md-fab-#{$token}: #{$value};
22
+ }
22
23
  }
23
24
 
24
25
  @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');
26
+ $tokens: tokens.md-comp-fab-values();
28
27
 
29
28
  :host {
30
29
  @each $token, $value in $tokens {
@@ -32,12 +31,141 @@
32
31
  }
33
32
  }
34
33
 
35
- .md3-fab {
36
- width: var(--_container-width);
37
- height: var(--_container-height);
34
+ .fab {
35
+ @include color(
36
+ (
37
+ 'focus-icon-color': var(--_focus-icon-color),
38
+ 'hover-icon-color': var(--_hover-icon-color),
39
+ 'icon-color': var(--_icon-color),
40
+ 'pressed-icon-color': var(--_pressed-icon-color),
41
+ )
42
+ );
43
+
44
+ &.primary {
45
+ @include color(
46
+ (
47
+ 'container-color': var(--_primary-container-color),
48
+ 'focus-icon-color': var(--_primary-focus-icon-color),
49
+ 'focus-state-layer-color': var(--_primary-focus-state-layer-color),
50
+ 'hover-icon-color': var(--_primary-hover-icon-color),
51
+ 'hover-state-layer-color': var(--_primary-hover-state-layer-color),
52
+ 'icon-color': var(--_primary-icon-color),
53
+ 'pressed-icon-color': var(--_primary-pressed-icon-color),
54
+ 'pressed-state-layer-color': var(--_primary-pressed-state-layer-color),
55
+ 'label-text-color': var(--_primary-label-text-color),
56
+ 'hover-label-text-color': var(--_primary-hover-label-text-color),
57
+ 'focus-label-text-color': var(--_primary-focus-label-text-color),
58
+ 'pressed-label-text-color': var(--_primary-pressed-label-text-color),
59
+ )
60
+ );
61
+ }
62
+
63
+ &.secondary {
64
+ @include color(
65
+ (
66
+ 'container-color': var(--_secondary-container-color),
67
+ 'focus-icon-color': var(--_secondary-focus-icon-color),
68
+ 'focus-state-layer-color': var(--_secondary-focus-state-layer-color),
69
+ 'hover-icon-color': var(--_secondary-hover-icon-color),
70
+ 'hover-state-layer-color': var(--_secondary-hover-state-layer-color),
71
+ 'icon-color': var(--_secondary-icon-color),
72
+ 'pressed-icon-color': var(--_secondary-pressed-icon-color),
73
+ 'pressed-state-layer-color':
74
+ var(--_secondary-pressed-state-layer-color),
75
+ 'label-text-color': var(--_secondary-label-text-color),
76
+ 'hover-label-text-color': var(--_secondary-hover-label-text-color),
77
+ 'focus-label-text-color': var(--_secondary-focus-label-text-color),
78
+ 'pressed-label-text-color': var(--_secondary-pressed-label-text-color),
79
+ )
80
+ );
81
+ }
82
+
83
+ &.tertiary {
84
+ @include color(
85
+ (
86
+ 'container-color': var(--_tertiary-container-color),
87
+ 'focus-icon-color': var(--_tertiary-focus-icon-color),
88
+ 'focus-state-layer-color': var(--_tertiary-focus-state-layer-color),
89
+ 'hover-icon-color': var(--_tertiary-hover-icon-color),
90
+ 'hover-state-layer-color': var(--_tertiary-hover-state-layer-color),
91
+ 'icon-color': var(--_tertiary-icon-color),
92
+ 'pressed-icon-color': var(--_tertiary-pressed-icon-color),
93
+ 'pressed-state-layer-color':
94
+ var(--_tertiary-pressed-state-layer-color),
95
+ 'label-text-color': var(--_tertiary-label-text-color),
96
+ 'hover-label-text-color': var(--_tertiary-hover-label-text-color),
97
+ 'focus-label-text-color': var(--_tertiary-focus-label-text-color),
98
+ 'pressed-label-text-color': var(--_tertiary-pressed-label-text-color),
99
+ )
100
+ );
101
+ }
102
+ }
103
+
104
+ .fab.small {
105
+ width: var(--_small-container-width);
106
+ height: var(--_small-container-height);
107
+
108
+ .icon ::slotted(*) {
109
+ width: var(--_small-icon-size);
110
+ height: var(--_small-icon-size);
111
+ font-size: var(--_small-icon-size);
112
+ }
113
+
114
+ &,
115
+ .ripple {
116
+ border-start-start-radius: var(--_small-container-shape-start-start);
117
+ border-start-end-radius: var(--_small-container-shape-start-end);
118
+ border-end-start-radius: var(--_small-container-shape-end-start);
119
+ border-end-end-radius: var(--_small-container-shape-end-end);
120
+ @include focus-ring.theme(
121
+ (
122
+ 'shape': shape.corners-to-shape-token('--_small-container-shape'),
123
+ )
124
+ );
125
+ }
38
126
  }
127
+ }
39
128
 
40
- .md3-fab--regular {
41
- padding: 0;
129
+ @mixin color($colors) {
130
+ background-color: map.get($colors, 'container-color');
131
+
132
+ @include ripple.theme(
133
+ (
134
+ hover-color: map.get($colors, hover-state-layer-color),
135
+ focus-color: map.get($colors, focus-state-layer-color),
136
+ pressed-color: map.get($colors, pressed-state-layer-color),
137
+ )
138
+ );
139
+
140
+ .icon ::slotted(*) {
141
+ color: map.get($colors, icon-color);
142
+ }
143
+
144
+ &:focus {
145
+ color: map.get($colors, focus-icon-color);
146
+ }
147
+
148
+ &:hover {
149
+ color: map.get($colors, hover-icon-color);
150
+ }
151
+
152
+ &:active {
153
+ color: map.get($colors, pressed-icon-color);
154
+ }
155
+
156
+ .label {
157
+ color: map.get($colors, label-text-color);
158
+
159
+ .fab:hover & {
160
+ color: map.get($colors, hover-label-text-color);
161
+ }
162
+
163
+ .fab:focus & {
164
+ color: map.get($colors, focus-label-text-color);
165
+ }
166
+
167
+ .fab:active & {
168
+ color: map.get($colors, pressed-label-text-color);
169
+ }
42
170
  }
43
171
  }