@material/web 1.0.0 → 1.0.2-nightly.6a1fb38.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 (370) hide show
  1. package/all.d.ts +2 -0
  2. package/all.js +2 -0
  3. package/all.js.map +1 -1
  4. package/button/elevated-button.js +5 -1
  5. package/button/elevated-button.js.map +1 -1
  6. package/button/internal/_elevation.scss +32 -32
  7. package/button/internal/_icon.scss +22 -23
  8. package/button/internal/_outlined-button.scss +21 -19
  9. package/button/internal/_shared.scss +84 -77
  10. package/button/internal/_touch-target.scss +4 -0
  11. package/button/internal/button.d.ts +7 -11
  12. package/button/internal/button.js +52 -38
  13. package/button/internal/button.js.map +1 -1
  14. package/button/internal/elevated-button.d.ts +1 -1
  15. package/button/internal/elevated-button.js +1 -1
  16. package/button/internal/elevated-button.js.map +1 -1
  17. package/button/internal/filled-button.d.ts +1 -1
  18. package/button/internal/filled-button.js +1 -1
  19. package/button/internal/filled-button.js.map +1 -1
  20. package/button/internal/filled-tonal-button.d.ts +1 -1
  21. package/button/internal/filled-tonal-button.js +1 -1
  22. package/button/internal/filled-tonal-button.js.map +1 -1
  23. package/button/internal/outlined-button.d.ts +1 -1
  24. package/button/internal/outlined-button.js +2 -2
  25. package/button/internal/outlined-button.js.map +1 -1
  26. package/button/internal/outlined-styles.css.js +1 -1
  27. package/button/internal/outlined-styles.css.js.map +1 -1
  28. package/button/internal/shared-elevation-styles.css.js +1 -1
  29. package/button/internal/shared-elevation-styles.css.js.map +1 -1
  30. package/button/internal/shared-styles.css.js +1 -1
  31. package/button/internal/shared-styles.css.js.map +1 -1
  32. package/checkbox/internal/_checkbox.scss +6 -0
  33. package/checkbox/internal/checkbox-styles.css.js +1 -1
  34. package/checkbox/internal/checkbox-styles.css.js.map +1 -1
  35. package/checkbox/internal/checkbox.d.ts +16 -23
  36. package/checkbox/internal/checkbox.js +38 -52
  37. package/checkbox/internal/checkbox.js.map +1 -1
  38. package/chips/filter-chip.js +5 -1
  39. package/chips/filter-chip.js.map +1 -1
  40. package/chips/harness.js.map +1 -1
  41. package/chips/input-chip.js +6 -1
  42. package/chips/input-chip.js.map +1 -1
  43. package/chips/internal/assist-chip.js +8 -4
  44. package/chips/internal/assist-chip.js.map +1 -1
  45. package/chips/internal/chip-set.js +6 -4
  46. package/chips/internal/chip-set.js.map +1 -1
  47. package/chips/internal/chip.d.ts +3 -0
  48. package/chips/internal/chip.js +7 -5
  49. package/chips/internal/chip.js.map +1 -1
  50. package/chips/internal/filter-chip.d.ts +2 -0
  51. package/chips/internal/filter-chip.js +11 -5
  52. package/chips/internal/filter-chip.js.map +1 -1
  53. package/chips/internal/input-chip.d.ts +2 -0
  54. package/chips/internal/input-chip.js +10 -4
  55. package/chips/internal/input-chip.js.map +1 -1
  56. package/chips/internal/multi-action-chip.js.map +1 -1
  57. package/chips/internal/trailing-icons.d.ts +1 -1
  58. package/chips/internal/trailing-icons.js +6 -5
  59. package/chips/internal/trailing-icons.js.map +1 -1
  60. package/common.d.ts +2 -0
  61. package/common.js +2 -0
  62. package/common.js.map +1 -1
  63. package/dialog/harness.js +1 -2
  64. package/dialog/harness.js.map +1 -1
  65. package/dialog/internal/_dialog.scss +1 -1
  66. package/dialog/internal/animations.js +14 -12
  67. package/dialog/internal/animations.js.map +1 -1
  68. package/dialog/internal/dialog-styles.css.js +1 -1
  69. package/dialog/internal/dialog-styles.css.js.map +1 -1
  70. package/dialog/internal/dialog.d.ts +6 -6
  71. package/dialog/internal/dialog.js +24 -24
  72. package/dialog/internal/dialog.js.map +1 -1
  73. package/fab/harness.js.map +1 -1
  74. package/fab/internal/_fab.scss +4 -0
  75. package/fab/internal/fab-styles.css.js +1 -1
  76. package/fab/internal/fab-styles.css.js.map +1 -1
  77. package/fab/internal/fab.js.map +1 -1
  78. package/fab/internal/shared.js +10 -11
  79. package/fab/internal/shared.js.map +1 -1
  80. package/field/harness.js.map +1 -1
  81. package/field/internal/_content.scss +185 -174
  82. package/field/internal/_filled-field.scss +147 -135
  83. package/field/internal/_label.scss +83 -72
  84. package/field/internal/_outlined-field.scss +276 -261
  85. package/field/internal/_supporting-text.scss +53 -42
  86. package/field/internal/field.js +26 -22
  87. package/field/internal/field.js.map +1 -1
  88. package/field/internal/filled-styles.css.js +1 -1
  89. package/field/internal/filled-styles.css.js.map +1 -1
  90. package/field/internal/outlined-styles.css.js +1 -1
  91. package/field/internal/outlined-styles.css.js.map +1 -1
  92. package/field/internal/shared-styles.css.js +1 -1
  93. package/field/internal/shared-styles.css.js.map +1 -1
  94. package/focus/internal/focus-ring.d.ts +2 -0
  95. package/focus/internal/focus-ring.js +3 -3
  96. package/focus/internal/focus-ring.js.map +1 -1
  97. package/icon/internal/_icon.scss +7 -4
  98. package/icon/internal/icon-styles.css.js +1 -1
  99. package/icon/internal/icon-styles.css.js.map +1 -1
  100. package/iconbutton/internal/icon-button.d.ts +9 -4
  101. package/iconbutton/internal/icon-button.js +35 -22
  102. package/iconbutton/internal/icon-button.js.map +1 -1
  103. package/internal/aria/aria.d.ts +4 -26
  104. package/internal/aria/aria.js +10 -28
  105. package/internal/aria/aria.js.map +1 -1
  106. package/internal/aria/delegate.js +2 -2
  107. package/internal/aria/delegate.js.map +1 -1
  108. package/internal/controller/attachable-controller.js +3 -5
  109. package/internal/controller/attachable-controller.js.map +1 -1
  110. package/internal/controller/form-submitter.d.ts +3 -5
  111. package/internal/controller/form-submitter.js +5 -7
  112. package/internal/controller/form-submitter.js.map +1 -1
  113. package/internal/controller/is-rtl.js +2 -2
  114. package/internal/controller/is-rtl.js.map +1 -1
  115. package/internal/controller/string-converter.js +1 -1
  116. package/internal/controller/string-converter.js.map +1 -1
  117. package/internal/motion/animation.js.map +1 -1
  118. package/labs/behaviors/element-internals.d.ts +45 -0
  119. package/labs/behaviors/element-internals.js +50 -0
  120. package/labs/behaviors/element-internals.js.map +1 -0
  121. package/labs/behaviors/focusable.d.ts +39 -0
  122. package/labs/behaviors/focusable.js +82 -0
  123. package/labs/behaviors/focusable.js.map +1 -0
  124. package/labs/behaviors/form-associated.d.ts +199 -0
  125. package/labs/behaviors/form-associated.js +155 -0
  126. package/labs/behaviors/form-associated.js.map +1 -0
  127. package/labs/behaviors/mixin.d.ts +54 -0
  128. package/labs/behaviors/mixin.js +7 -0
  129. package/labs/behaviors/mixin.js.map +1 -0
  130. package/labs/card/_elevated-card.scss +6 -0
  131. package/labs/card/_filled-card.scss +6 -0
  132. package/labs/card/_outlined-card.scss +6 -0
  133. package/labs/card/elevated-card.d.ts +18 -0
  134. package/labs/card/elevated-card.js +21 -0
  135. package/labs/card/elevated-card.js.map +1 -0
  136. package/labs/card/filled-card.d.ts +18 -0
  137. package/labs/card/filled-card.js +21 -0
  138. package/labs/card/filled-card.js.map +1 -0
  139. package/labs/card/internal/_elevated-card.scss +35 -0
  140. package/labs/card/internal/_filled-card.scss +35 -0
  141. package/labs/card/internal/_outlined-card.scss +39 -0
  142. package/labs/card/internal/_shared.scss +40 -0
  143. package/labs/card/internal/card.d.ts +13 -0
  144. package/labs/card/internal/card.js +20 -0
  145. package/labs/card/internal/card.js.map +1 -0
  146. package/labs/card/internal/elevated-styles.css.js +9 -0
  147. package/labs/card/internal/elevated-styles.css.js.map +1 -0
  148. package/labs/card/internal/elevated-styles.scss +10 -0
  149. package/labs/card/internal/filled-styles.css.js +9 -0
  150. package/labs/card/internal/filled-styles.css.js.map +1 -0
  151. package/labs/card/internal/filled-styles.scss +10 -0
  152. package/labs/card/internal/outlined-styles.css.js +9 -0
  153. package/labs/card/internal/outlined-styles.css.js.map +1 -0
  154. package/labs/card/internal/outlined-styles.scss +10 -0
  155. package/labs/card/internal/shared-styles.css.js +9 -0
  156. package/labs/card/internal/shared-styles.css.js.map +1 -0
  157. package/labs/card/internal/shared-styles.scss +10 -0
  158. package/labs/card/outlined-card.d.ts +18 -0
  159. package/labs/card/outlined-card.js +21 -0
  160. package/labs/card/outlined-card.js.map +1 -0
  161. package/labs/item/internal/_item.scss +1 -1
  162. package/labs/item/internal/item-styles.css.js +1 -1
  163. package/labs/item/internal/item-styles.css.js.map +1 -1
  164. package/labs/item/internal/item.js +8 -8
  165. package/labs/item/internal/item.js.map +1 -1
  166. package/labs/navigationbar/internal/constants.js.map +1 -1
  167. package/labs/navigationbar/internal/navigation-bar.d.ts +3 -0
  168. package/labs/navigationbar/internal/navigation-bar.js +18 -11
  169. package/labs/navigationbar/internal/navigation-bar.js.map +1 -1
  170. package/labs/navigationdrawer/internal/navigation-drawer-modal.d.ts +3 -0
  171. package/labs/navigationdrawer/internal/navigation-drawer-modal.js +10 -3
  172. package/labs/navigationdrawer/internal/navigation-drawer-modal.js.map +1 -1
  173. package/labs/navigationdrawer/internal/navigation-drawer.d.ts +3 -0
  174. package/labs/navigationdrawer/internal/navigation-drawer.js +8 -1
  175. package/labs/navigationdrawer/internal/navigation-drawer.js.map +1 -1
  176. package/labs/navigationtab/harness.js.map +1 -1
  177. package/labs/navigationtab/internal/navigation-tab.d.ts +6 -0
  178. package/labs/navigationtab/internal/navigation-tab.js +43 -27
  179. package/labs/navigationtab/internal/navigation-tab.js.map +1 -1
  180. package/labs/navigationtab/internal/state.js.map +1 -1
  181. package/labs/segmentedbutton/internal/segmented-button.d.ts +3 -0
  182. package/labs/segmentedbutton/internal/segmented-button.js +26 -12
  183. package/labs/segmentedbutton/internal/segmented-button.js.map +1 -1
  184. package/labs/segmentedbuttonset/internal/segmented-button-set.d.ts +5 -0
  185. package/labs/segmentedbuttonset/internal/segmented-button-set.js +14 -9
  186. package/labs/segmentedbuttonset/internal/segmented-button-set.js.map +1 -1
  187. package/list/harness.d.ts +3 -2
  188. package/list/harness.js.map +1 -1
  189. package/list/internal/list-controller.d.ts +1 -1
  190. package/list/internal/list-controller.js +7 -3
  191. package/list/internal/list-controller.js.map +1 -1
  192. package/list/internal/list-navigation-helpers.js.map +1 -1
  193. package/list/internal/list.d.ts +2 -2
  194. package/list/internal/list.js +8 -6
  195. package/list/internal/list.js.map +1 -1
  196. package/list/internal/listitem/_list-item.scss +18 -0
  197. package/list/internal/listitem/harness.d.ts +3 -3
  198. package/list/internal/listitem/harness.js.map +1 -1
  199. package/list/internal/listitem/list-item-styles.css.js +1 -1
  200. package/list/internal/listitem/list-item-styles.css.js.map +1 -1
  201. package/list/internal/listitem/list-item.d.ts +3 -2
  202. package/list/internal/listitem/list-item.js +20 -21
  203. package/list/internal/listitem/list-item.js.map +1 -1
  204. package/list/list-item.d.ts +4 -12
  205. package/list/list-item.js +5 -14
  206. package/list/list-item.js.map +1 -1
  207. package/menu/harness.js.map +1 -1
  208. package/menu/internal/_menu.scss +20 -1
  209. package/menu/internal/controllers/menuItemController.d.ts +7 -0
  210. package/menu/internal/controllers/menuItemController.js +17 -4
  211. package/menu/internal/controllers/menuItemController.js.map +1 -1
  212. package/menu/internal/controllers/shared.d.ts +9 -1
  213. package/menu/internal/controllers/shared.js +4 -4
  214. package/menu/internal/controllers/shared.js.map +1 -1
  215. package/menu/internal/controllers/surfacePositionController.d.ts +15 -2
  216. package/menu/internal/controllers/surfacePositionController.js +134 -56
  217. package/menu/internal/controllers/surfacePositionController.js.map +1 -1
  218. package/menu/internal/controllers/typeaheadController.js +19 -14
  219. package/menu/internal/controllers/typeaheadController.js.map +1 -1
  220. package/menu/internal/menu-styles.css.js +1 -1
  221. package/menu/internal/menu-styles.css.js.map +1 -1
  222. package/menu/internal/menu.d.ts +55 -17
  223. package/menu/internal/menu.js +175 -88
  224. package/menu/internal/menu.js.map +1 -1
  225. package/menu/internal/menuitem/_menu-item.scss +24 -0
  226. package/menu/internal/menuitem/harness.d.ts +3 -1
  227. package/menu/internal/menuitem/harness.js.map +1 -1
  228. package/menu/internal/menuitem/menu-item-styles.css.js +1 -1
  229. package/menu/internal/menuitem/menu-item-styles.css.js.map +1 -1
  230. package/menu/internal/menuitem/menu-item.d.ts +3 -2
  231. package/menu/internal/menuitem/menu-item.js +20 -20
  232. package/menu/internal/menuitem/menu-item.js.map +1 -1
  233. package/menu/internal/submenu/sub-menu.d.ts +9 -8
  234. package/menu/internal/submenu/sub-menu.js +35 -22
  235. package/menu/internal/submenu/sub-menu.js.map +1 -1
  236. package/menu/internal/types.js.map +1 -1
  237. package/menu/menu-item.js +1 -2
  238. package/menu/menu-item.js.map +1 -1
  239. package/menu/menu.js +1 -2
  240. package/menu/menu.js.map +1 -1
  241. package/package.json +1 -1
  242. package/progress/internal/_circular-progress.scss +2 -2
  243. package/progress/internal/_linear-progress.scss +1 -1
  244. package/progress/internal/circular-progress-styles.css.js +1 -1
  245. package/progress/internal/circular-progress-styles.css.js.map +1 -1
  246. package/progress/internal/circular-progress.js +11 -10
  247. package/progress/internal/circular-progress.js.map +1 -1
  248. package/progress/internal/linear-progress-styles.css.js +1 -1
  249. package/progress/internal/linear-progress-styles.css.js.map +1 -1
  250. package/progress/internal/linear-progress.d.ts +1 -1
  251. package/progress/internal/linear-progress.js +3 -3
  252. package/progress/internal/linear-progress.js.map +1 -1
  253. package/progress/internal/progress.js +4 -2
  254. package/progress/internal/progress.js.map +1 -1
  255. package/radio/internal/_radio.scss +144 -123
  256. package/radio/internal/radio-styles.css.js +1 -1
  257. package/radio/internal/radio-styles.css.js.map +1 -1
  258. package/radio/internal/radio.d.ts +12 -23
  259. package/radio/internal/radio.js +31 -50
  260. package/radio/internal/radio.js.map +1 -1
  261. package/radio/internal/single-selection-controller.js +1 -1
  262. package/radio/internal/single-selection-controller.js.map +1 -1
  263. package/radio/radio.js +1 -2
  264. package/radio/radio.js.map +1 -1
  265. package/ripple/internal/ripple.js +21 -18
  266. package/ripple/internal/ripple.js.map +1 -1
  267. package/select/filled-select.js +1 -2
  268. package/select/filled-select.js.map +1 -1
  269. package/select/harness.js +1 -1
  270. package/select/harness.js.map +1 -1
  271. package/select/internal/_shared.scss +4 -0
  272. package/select/internal/select.d.ts +25 -34
  273. package/select/internal/select.js +101 -91
  274. package/select/internal/select.js.map +1 -1
  275. package/select/internal/selectoption/select-option.d.ts +8 -6
  276. package/select/internal/selectoption/select-option.js +25 -23
  277. package/select/internal/selectoption/select-option.js.map +1 -1
  278. package/select/internal/selectoption/selectOptionController.js +1 -1
  279. package/select/internal/selectoption/selectOptionController.js.map +1 -1
  280. package/select/internal/shared-styles.css.js +1 -1
  281. package/select/internal/shared-styles.css.js.map +1 -1
  282. package/select/outlined-select.js +1 -2
  283. package/select/outlined-select.js.map +1 -1
  284. package/select/select-option.js +1 -2
  285. package/select/select-option.js.map +1 -1
  286. package/slider/harness.js +5 -5
  287. package/slider/harness.js.map +1 -1
  288. package/slider/internal/_slider.scss +68 -30
  289. package/slider/internal/slider-styles.css.js +1 -1
  290. package/slider/internal/slider-styles.css.js.map +1 -1
  291. package/slider/internal/slider.d.ts +16 -25
  292. package/slider/internal/slider.js +111 -115
  293. package/slider/internal/slider.js.map +1 -1
  294. package/switch/internal/_handle.scss +159 -141
  295. package/switch/internal/_icon.scss +95 -72
  296. package/switch/internal/_switch.scss +90 -95
  297. package/switch/internal/_track.scss +110 -77
  298. package/switch/internal/switch-styles.css.js +1 -1
  299. package/switch/internal/switch-styles.css.js.map +1 -1
  300. package/switch/internal/switch.d.ts +9 -25
  301. package/switch/internal/switch.js +31 -57
  302. package/switch/internal/switch.js.map +1 -1
  303. package/switch/switch.js +1 -2
  304. package/switch/switch.js.map +1 -1
  305. package/tabs/harness.js +3 -3
  306. package/tabs/harness.js.map +1 -1
  307. package/tabs/internal/_tab.scss +27 -35
  308. package/tabs/internal/primary-tab.d.ts +0 -2
  309. package/tabs/internal/tab-styles.css.js +1 -1
  310. package/tabs/internal/tab-styles.css.js.map +1 -1
  311. package/tabs/internal/tab.d.ts +10 -5
  312. package/tabs/internal/tab.js +43 -22
  313. package/tabs/internal/tab.js.map +1 -1
  314. package/tabs/internal/tabs.d.ts +7 -4
  315. package/tabs/internal/tabs.js +23 -22
  316. package/tabs/internal/tabs.js.map +1 -1
  317. package/textfield/filled-text-field.js +1 -2
  318. package/textfield/filled-text-field.js.map +1 -1
  319. package/textfield/harness.js +3 -2
  320. package/textfield/harness.js.map +1 -1
  321. package/textfield/internal/text-field.d.ts +33 -18
  322. package/textfield/internal/text-field.js +96 -58
  323. package/textfield/internal/text-field.js.map +1 -1
  324. package/textfield/outlined-text-field.js +1 -2
  325. package/textfield/outlined-text-field.js.map +1 -1
  326. package/tokens/_index.scss +3 -0
  327. package/tokens/_md-comp-elevated-card.scss +63 -0
  328. package/tokens/_md-comp-filled-card.scss +63 -0
  329. package/tokens/_md-comp-icon.scss +2 -0
  330. package/tokens/_md-comp-outlined-card.scss +69 -0
  331. package/tokens/_md-comp-test-table.scss +1 -0
  332. package/internal/controller/element-internals.d.ts +0 -35
  333. package/internal/controller/element-internals.js +0 -24
  334. package/internal/controller/element-internals.js.map +0 -1
  335. package/list/internal/listitem/forced-colors-styles.css.js +0 -9
  336. package/list/internal/listitem/forced-colors-styles.css.js.map +0 -1
  337. package/list/internal/listitem/forced-colors-styles.scss +0 -19
  338. package/menu/internal/forced-colors-styles.css.js +0 -9
  339. package/menu/internal/forced-colors-styles.css.js.map +0 -1
  340. package/menu/internal/forced-colors-styles.scss +0 -12
  341. package/menu/internal/menuitem/forced-colors-styles.css.js +0 -9
  342. package/menu/internal/menuitem/forced-colors-styles.css.js.map +0 -1
  343. package/menu/internal/menuitem/forced-colors-styles.scss +0 -26
  344. package/radio/internal/forced-colors-styles.css.js +0 -9
  345. package/radio/internal/forced-colors-styles.css.js.map +0 -1
  346. package/radio/internal/forced-colors-styles.scss +0 -29
  347. package/select/internal/filled-forced-colors-styles.css.d.ts +0 -1
  348. package/select/internal/filled-forced-colors-styles.css.js +0 -9
  349. package/select/internal/filled-forced-colors-styles.css.js.map +0 -1
  350. package/select/internal/filled-forced-colors-styles.scss +0 -29
  351. package/select/internal/outlined-forced-colors-styles.css.d.ts +0 -1
  352. package/select/internal/outlined-forced-colors-styles.css.js +0 -9
  353. package/select/internal/outlined-forced-colors-styles.css.js.map +0 -1
  354. package/select/internal/outlined-forced-colors-styles.scss +0 -29
  355. package/switch/internal/forced-colors-styles.css.d.ts +0 -1
  356. package/switch/internal/forced-colors-styles.css.js +0 -9
  357. package/switch/internal/forced-colors-styles.css.js.map +0 -1
  358. package/switch/internal/forced-colors-styles.scss +0 -42
  359. package/textfield/internal/filled-forced-colors-styles.css.d.ts +0 -1
  360. package/textfield/internal/filled-forced-colors-styles.css.js +0 -9
  361. package/textfield/internal/filled-forced-colors-styles.css.js.map +0 -1
  362. package/textfield/internal/filled-forced-colors-styles.scss +0 -29
  363. package/textfield/internal/outlined-forced-colors-styles.css.d.ts +0 -1
  364. package/textfield/internal/outlined-forced-colors-styles.css.js +0 -9
  365. package/textfield/internal/outlined-forced-colors-styles.css.js.map +0 -1
  366. package/textfield/internal/outlined-forced-colors-styles.scss +0 -29
  367. /package/{list/internal/listitem/forced-colors-styles.css.d.ts → labs/card/internal/elevated-styles.css.d.ts} +0 -0
  368. /package/{menu/internal/forced-colors-styles.css.d.ts → labs/card/internal/filled-styles.css.d.ts} +0 -0
  369. /package/{menu/internal/menuitem/forced-colors-styles.css.d.ts → labs/card/internal/outlined-styles.css.d.ts} +0 -0
  370. /package/{radio/internal/forced-colors-styles.css.d.ts → labs/card/internal/shared-styles.css.d.ts} +0 -0
@@ -43,173 +43,185 @@ $_md-sys-motion: tokens.md-sys-motion-values();
43
43
  @mixin styles() {
44
44
  $tokens: tokens.md-comp-filled-field-values();
45
45
 
46
- :host {
47
- @each $token, $value in $tokens {
48
- @if $token == 'container-shape' {
49
- // Support logical shape properties. Filled field has a default oblong
50
- // shape, which is why the fallback value is unique per corner.
51
- --_container-shape-start-start: var(
52
- --md-filled-field-container-shape-start-start,
53
- var(--md-filled-field-container-shape, #{list.nth($value, 1)})
54
- );
55
- --_container-shape-start-end: var(
56
- --md-filled-field-container-shape-start-end,
57
- var(--md-filled-field-container-shape, #{list.nth($value, 2)})
58
- );
59
- --_container-shape-end-end: var(
60
- --md-filled-field-container-shape-end-end,
61
- var(--md-filled-field-container-shape, #{list.nth($value, 3)})
62
- );
63
- --_container-shape-end-start: var(
64
- --md-filled-field-container-shape-end-start,
65
- var(--md-filled-field-container-shape, #{list.nth($value, 4)})
66
- );
67
- } @else {
68
- --_#{$token}: var(--md-filled-field-#{$token}, #{$value});
46
+ @layer styles {
47
+ :host {
48
+ @each $token, $value in $tokens {
49
+ @if $token == 'container-shape' {
50
+ // Support logical shape properties. Filled field has a default oblong
51
+ // shape, which is why the fallback value is unique per corner.
52
+ --_container-shape-start-start: var(
53
+ --md-filled-field-container-shape-start-start,
54
+ var(--md-filled-field-container-shape, #{list.nth($value, 1)})
55
+ );
56
+ --_container-shape-start-end: var(
57
+ --md-filled-field-container-shape-start-end,
58
+ var(--md-filled-field-container-shape, #{list.nth($value, 2)})
59
+ );
60
+ --_container-shape-end-end: var(
61
+ --md-filled-field-container-shape-end-end,
62
+ var(--md-filled-field-container-shape, #{list.nth($value, 3)})
63
+ );
64
+ --_container-shape-end-start: var(
65
+ --md-filled-field-container-shape-end-start,
66
+ var(--md-filled-field-container-shape, #{list.nth($value, 4)})
67
+ );
68
+ } @else {
69
+ --_#{$token}: var(--md-filled-field-#{$token}, #{$value});
70
+ }
69
71
  }
70
72
  }
71
- }
72
73
 
73
- .background,
74
- .state-layer {
75
- border-radius: inherit;
76
- inset: 0;
77
- pointer-events: none;
78
- position: absolute;
79
- }
74
+ .background,
75
+ .state-layer {
76
+ border-radius: inherit;
77
+ inset: 0;
78
+ pointer-events: none;
79
+ position: absolute;
80
+ }
80
81
 
81
- .background {
82
- background: var(--_container-color);
83
- }
82
+ .background {
83
+ background: var(--_container-color);
84
+ }
84
85
 
85
- .state-layer {
86
- visibility: hidden;
87
- }
86
+ .state-layer {
87
+ visibility: hidden;
88
+ }
88
89
 
89
- .field:not(.disabled):hover .state-layer {
90
- visibility: visible;
91
- }
90
+ .field:not(.disabled):hover .state-layer {
91
+ visibility: visible;
92
+ }
92
93
 
93
- .label.floating {
94
- position: absolute;
95
- top: var(--_with-label-top-space);
96
- }
94
+ .label.floating {
95
+ position: absolute;
96
+ top: var(--_with-label-top-space);
97
+ }
97
98
 
98
- .field:not(.with-start) .label-wrapper {
99
- margin-inline-start: var(--_leading-space);
100
- }
99
+ .field:not(.with-start) .label-wrapper {
100
+ margin-inline-start: var(--_leading-space);
101
+ }
101
102
 
102
- .field:not(.with-end) .label-wrapper {
103
- margin-inline-end: var(--_trailing-space);
104
- }
103
+ .field:not(.with-end) .label-wrapper {
104
+ margin-inline-end: var(--_trailing-space);
105
+ }
105
106
 
106
- .active-indicator {
107
- inset: auto 0 0 0;
108
- // Prevent click events on the indicator element since it has no width and
109
- // causes bugs when handled by the foundation for updating transform-origin.
110
- pointer-events: none;
111
- position: absolute;
112
- width: 100%;
113
-
114
- &::before,
115
- &::after {
116
- border-bottom: var(--_active-indicator-height) solid
117
- var(--_active-indicator-color);
107
+ .active-indicator {
118
108
  inset: auto 0 0 0;
119
- content: '';
109
+ // Prevent click events on the indicator element since it has no width and
110
+ // causes bugs when handled by the foundation for updating transform-origin.
111
+ pointer-events: none;
120
112
  position: absolute;
121
113
  width: 100%;
114
+ z-index: 1;
115
+
116
+ &::before,
117
+ &::after {
118
+ border-bottom: var(--_active-indicator-height) solid
119
+ var(--_active-indicator-color);
120
+ inset: auto 0 0 0;
121
+ content: '';
122
+ position: absolute;
123
+ width: 100%;
124
+ }
125
+
126
+ // focused indicator
127
+ &::after {
128
+ opacity: 0;
129
+ transition: opacity map.get($_md-sys-motion, 'duration-short3')
130
+ map.get($_md-sys-motion, 'easing-emphasized');
131
+ }
122
132
  }
123
133
 
124
- // focused indicator
125
- &::after {
126
- opacity: 0;
127
- transition: opacity map.get($_md-sys-motion, 'duration-short3')
128
- map.get($_md-sys-motion, 'easing-emphasized');
134
+ .focused .active-indicator::after {
135
+ opacity: 1;
129
136
  }
130
- }
131
137
 
132
- .focused .active-indicator::after {
133
- opacity: 1;
134
- }
138
+ .field:not(.with-start) .content ::slotted(*) {
139
+ padding-inline-start: var(--_leading-space);
140
+ }
135
141
 
136
- .field:not(.with-start) .content ::slotted(*) {
137
- padding-inline-start: var(--_leading-space);
138
- }
142
+ .field:not(.with-end) .content ::slotted(*) {
143
+ padding-inline-end: var(--_trailing-space);
144
+ }
139
145
 
140
- .field:not(.with-end) .content ::slotted(*) {
141
- padding-inline-end: var(--_trailing-space);
142
- }
146
+ .field:not(.no-label) .content ::slotted(:not(textarea)) {
147
+ padding-bottom: var(--_with-label-bottom-space);
148
+ padding-top: calc(
149
+ var(--_with-label-top-space) + var(--_label-text-populated-line-height)
150
+ );
151
+ }
143
152
 
144
- .field:not(.no-label) .content ::slotted(:not(textarea)) {
145
- padding-bottom: var(--_with-label-bottom-space);
146
- padding-top: calc(
147
- var(--_with-label-top-space) + var(--_label-text-populated-line-height)
148
- );
149
- }
153
+ .field:not(.no-label) .content ::slotted(textarea) {
154
+ // Use margin for textareas since they will scroll over the label if not.
155
+ margin-bottom: var(--_with-label-bottom-space);
156
+ margin-top: calc(
157
+ var(--_with-label-top-space) + var(--_label-text-populated-line-height)
158
+ );
159
+ }
150
160
 
151
- .field:not(.no-label) .content ::slotted(textarea) {
152
- // Use margin for textareas since they will scroll over the label if not.
153
- margin-bottom: var(--_with-label-bottom-space);
154
- margin-top: calc(
155
- var(--_with-label-top-space) + var(--_label-text-populated-line-height)
156
- );
157
- }
161
+ :hover .active-indicator::before {
162
+ border-bottom-color: var(--_hover-active-indicator-color);
163
+ border-bottom-width: var(--_hover-active-indicator-height);
164
+ }
158
165
 
159
- :hover .active-indicator::before {
160
- border-bottom-color: var(--_hover-active-indicator-color);
161
- border-bottom-width: var(--_hover-active-indicator-height);
162
- }
166
+ // Focus is on a separate element and does not need a focus selector
167
+ .active-indicator::after {
168
+ border-bottom-color: var(--_focus-active-indicator-color);
169
+ border-bottom-width: var(--_focus-active-indicator-height);
170
+ }
163
171
 
164
- // Focus is on a separate element and does not need a focus selector
165
- .active-indicator::after {
166
- border-bottom-color: var(--_focus-active-indicator-color);
167
- border-bottom-width: var(--_focus-active-indicator-height);
168
- }
172
+ :hover .state-layer {
173
+ background: var(--_hover-state-layer-color);
174
+ opacity: var(--_hover-state-layer-opacity);
175
+ }
169
176
 
170
- :hover .state-layer {
171
- background: var(--_hover-state-layer-color);
172
- opacity: var(--_hover-state-layer-opacity);
173
- }
177
+ .disabled .active-indicator::before {
178
+ border-bottom-color: var(--_disabled-active-indicator-color);
179
+ border-bottom-width: var(--_disabled-active-indicator-height);
180
+ opacity: var(--_disabled-active-indicator-opacity);
181
+ }
174
182
 
175
- .disabled .active-indicator::before {
176
- border-bottom-color: var(--_disabled-active-indicator-color);
177
- border-bottom-width: var(--_disabled-active-indicator-height);
178
- opacity: var(--_disabled-active-indicator-opacity);
179
- }
183
+ .disabled .background {
184
+ background: var(--_disabled-container-color);
185
+ opacity: var(--_disabled-container-opacity);
186
+ }
180
187
 
181
- .disabled .background {
182
- background: var(--_disabled-container-color);
183
- opacity: var(--_disabled-container-opacity);
184
- }
188
+ .error .active-indicator::before {
189
+ border-bottom-color: var(--_error-active-indicator-color);
190
+ }
185
191
 
186
- .error .active-indicator::before {
187
- border-bottom-color: var(--_error-active-indicator-color);
188
- }
192
+ .error:hover .active-indicator::before {
193
+ border-bottom-color: var(--_error-hover-active-indicator-color);
194
+ }
189
195
 
190
- .error:hover .active-indicator::before {
191
- border-bottom-color: var(--_error-hover-active-indicator-color);
192
- }
196
+ .error:hover .state-layer {
197
+ background: var(--_error-hover-state-layer-color);
198
+ opacity: var(--_error-hover-state-layer-opacity);
199
+ }
193
200
 
194
- .error:hover .state-layer {
195
- background: var(--_error-hover-state-layer-color);
196
- opacity: var(--_error-hover-state-layer-opacity);
197
- }
201
+ // Focus is on a separate element and does not need a focus selector
202
+ .error .active-indicator::after {
203
+ border-bottom-color: var(--_error-focus-active-indicator-color);
204
+ }
198
205
 
199
- // Focus is on a separate element and does not need a focus selector
200
- .error .active-indicator::after {
201
- border-bottom-color: var(--_error-focus-active-indicator-color);
202
- }
206
+ // Move the container up so that the resize handle doesn't overlap the focus
207
+ // indicator. Content is moved back the opposite direction.
208
+ .resizable .container {
209
+ bottom: var(--_focus-active-indicator-height);
210
+ // Ensures the container doesn't create an overhang that can be clicked on.
211
+ clip-path: inset(var(--_focus-active-indicator-height) 0 0 0);
212
+ }
203
213
 
204
- // Move the container up so that the resize handle doesn't overlap the focus
205
- // indicator. Content is moved back the opposite direction.
206
- .resizable .container {
207
- bottom: var(--_focus-active-indicator-height);
208
- // Ensures the container doesn't create an overhang that can be clicked on.
209
- clip-path: inset(var(--_focus-active-indicator-height) 0 0 0);
214
+ .resizable .container > * {
215
+ top: var(--_focus-active-indicator-height);
216
+ }
210
217
  }
211
218
 
212
- .resizable .container > * {
213
- top: var(--_focus-active-indicator-height);
219
+ @layer hcm {
220
+ @media (forced-colors: active) {
221
+ .disabled .active-indicator::before {
222
+ border-color: GrayText;
223
+ opacity: 1;
224
+ }
225
+ }
214
226
  }
215
227
  }
@@ -4,91 +4,102 @@
4
4
  //
5
5
 
6
6
  @mixin styles() {
7
- .label {
8
- box-sizing: border-box;
9
- color: var(--_label-text-color);
10
- overflow: hidden;
11
- max-width: 100%;
12
- // TODO: Check with design, should there be any transition from resting to
13
- // floating when there is a mismatch between ellipsis, such as opacity
14
- // transition?
15
- text-overflow: ellipsis;
16
- white-space: nowrap;
17
- z-index: 1;
18
- font-family: var(--_label-text-font);
19
- font-size: var(--_label-text-size);
20
- line-height: var(--_label-text-line-height);
21
- font-weight: var(--_label-text-weight);
22
- width: min-content;
23
- }
7
+ @layer styles {
8
+ .label {
9
+ box-sizing: border-box;
10
+ color: var(--_label-text-color);
11
+ overflow: hidden;
12
+ max-width: 100%;
13
+ // TODO: Check with design, should there be any transition from resting to
14
+ // floating when there is a mismatch between ellipsis, such as opacity
15
+ // transition?
16
+ text-overflow: ellipsis;
17
+ white-space: nowrap;
18
+ z-index: 1;
19
+ font-family: var(--_label-text-font);
20
+ font-size: var(--_label-text-size);
21
+ line-height: var(--_label-text-line-height);
22
+ font-weight: var(--_label-text-weight);
23
+ width: min-content;
24
+ }
24
25
 
25
- .label-wrapper {
26
- inset: 0;
27
- // The resting label at 100% height can block pointer events to the content
28
- // if it's very long and spans the full width of the field. Additionally,
29
- // selecting the label's text doesn't present a good UX, since the user
30
- // selection should be re-focused to another element (such as the input)
31
- // upon focusing. Finally, since the actual label elements are swapped, it
32
- // is not easy to maintain the user's label text selection.
33
- pointer-events: none;
34
- position: absolute;
35
- }
26
+ .label-wrapper {
27
+ inset: 0;
28
+ // The resting label at 100% height can block pointer events to the content
29
+ // if it's very long and spans the full width of the field. Additionally,
30
+ // selecting the label's text doesn't present a good UX, since the user
31
+ // selection should be re-focused to another element (such as the input)
32
+ // upon focusing. Finally, since the actual label elements are swapped, it
33
+ // is not easy to maintain the user's label text selection.
34
+ pointer-events: none;
35
+ position: absolute;
36
+ }
36
37
 
37
- .label.resting {
38
- position: absolute;
39
- top: var(--_top-space);
40
- }
38
+ .label.resting {
39
+ position: absolute;
40
+ top: var(--_top-space);
41
+ }
41
42
 
42
- .label.floating {
43
- font-size: var(--_label-text-populated-size);
44
- line-height: var(--_label-text-populated-line-height);
45
- transform-origin: top left;
46
- }
43
+ .label.floating {
44
+ font-size: var(--_label-text-populated-size);
45
+ line-height: var(--_label-text-populated-line-height);
46
+ transform-origin: top left;
47
+ }
47
48
 
48
- .label.hidden {
49
- opacity: 0;
50
- }
49
+ .label.hidden {
50
+ opacity: 0;
51
+ }
51
52
 
52
- .no-label .label {
53
- display: none;
54
- }
53
+ .no-label .label {
54
+ display: none;
55
+ }
55
56
 
56
- // Labels need start/end padding when there isn't start/end content so they
57
- // don't sit on the edge of the field. We use a wrapper element around the
58
- // labels so as not to affect the dimensions used in the label keyframes.
59
- .label-wrapper {
60
- inset: 0;
61
- position: absolute;
62
- // Don't let setting text-align on the field change the label's alignment.
63
- // It should only impact content text.
64
- text-align: initial;
65
- }
57
+ // Labels need start/end padding when there isn't start/end content so they
58
+ // don't sit on the edge of the field. We use a wrapper element around the
59
+ // labels so as not to affect the dimensions used in the label keyframes.
60
+ .label-wrapper {
61
+ inset: 0;
62
+ position: absolute;
63
+ // Don't let setting text-align on the field change the label's alignment.
64
+ // It should only impact content text.
65
+ text-align: initial;
66
+ }
66
67
 
67
- :hover .label {
68
- color: var(--_hover-label-text-color);
69
- }
68
+ :hover .label {
69
+ color: var(--_hover-label-text-color);
70
+ }
70
71
 
71
- .focused .label {
72
- color: var(--_focus-label-text-color);
73
- }
72
+ .focused .label {
73
+ color: var(--_focus-label-text-color);
74
+ }
74
75
 
75
- .disabled .label {
76
- color: var(--_disabled-label-text-color);
77
- }
76
+ .disabled .label {
77
+ color: var(--_disabled-label-text-color);
78
+ }
78
79
 
79
- .disabled .label:not(.hidden) {
80
- opacity: var(--_disabled-label-text-opacity);
81
- }
80
+ .disabled .label:not(.hidden) {
81
+ opacity: var(--_disabled-label-text-opacity);
82
+ }
82
83
 
83
- .error .label {
84
- color: var(--_error-label-text-color);
85
- }
84
+ .error .label {
85
+ color: var(--_error-label-text-color);
86
+ }
87
+
88
+ .error:hover .label {
89
+ color: var(--_error-hover-label-text-color);
90
+ }
86
91
 
87
- .error:hover .label {
88
- color: var(--_error-hover-label-text-color);
92
+ .error.focused .label {
93
+ color: var(--_error-focus-label-text-color);
94
+ }
89
95
  }
90
96
 
91
- .error.focused .label {
92
- color: var(--_error-focus-label-text-color);
97
+ @layer hcm {
98
+ @media (forced-colors: active) {
99
+ .disabled .label:not(.hidden) {
100
+ color: GrayText;
101
+ opacity: 1;
102
+ }
103
+ }
93
104
  }
94
105
  }