@material/web 1.0.0-pre.2 → 1.0.0-pre.4

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 (684) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +41 -41
  3. package/autocomplete/autocomplete-item.js.map +1 -1
  4. package/autocomplete/autocomplete-list.js.map +1 -1
  5. package/autocomplete/autocomplete-surface.js.map +1 -1
  6. package/autocomplete/filled-autocomplete.d.ts +0 -2
  7. package/autocomplete/filled-autocomplete.js +0 -7
  8. package/autocomplete/filled-autocomplete.js.map +1 -1
  9. package/autocomplete/lib/_filled-autocomplete.scss +22 -28
  10. package/autocomplete/lib/_outlined-autocomplete.scss +23 -29
  11. package/autocomplete/lib/_shared.scss +6 -10
  12. package/autocomplete/lib/autocomplete.d.ts +2 -2
  13. package/autocomplete/lib/autocomplete.js +4 -5
  14. package/autocomplete/lib/autocomplete.js.map +1 -1
  15. package/autocomplete/lib/autocompletelist/autocomplete-list-styles.scss +2 -0
  16. package/autocomplete/lib/autocompletesurface/autocomplete-surface-styles.scss +2 -0
  17. package/autocomplete/lib/filled-styles.css.js +1 -1
  18. package/autocomplete/lib/filled-styles.css.js.map +1 -1
  19. package/autocomplete/lib/filled-styles.scss +2 -0
  20. package/autocomplete/lib/outlined-styles.css.js +1 -1
  21. package/autocomplete/lib/outlined-styles.css.js.map +1 -1
  22. package/autocomplete/lib/outlined-styles.scss +2 -0
  23. package/autocomplete/lib/shared-styles.scss +2 -0
  24. package/autocomplete/outlined-autocomplete.d.ts +0 -2
  25. package/autocomplete/outlined-autocomplete.js +0 -7
  26. package/autocomplete/outlined-autocomplete.js.map +1 -1
  27. package/badge/badge.js.map +1 -1
  28. package/badge/lib/_badge.scss +10 -13
  29. package/badge/lib/badge-styles.css.js +1 -1
  30. package/badge/lib/badge-styles.css.js.map +1 -1
  31. package/badge/lib/badge-styles.scss +2 -0
  32. package/badge/lib/badge.js.map +1 -1
  33. package/button/elevated-button.js.map +1 -1
  34. package/button/elevated-link-button.js.map +1 -1
  35. package/button/filled-button.js.map +1 -1
  36. package/button/filled-link-button.js.map +1 -1
  37. package/button/lib/_elevated-button.scss +10 -15
  38. package/button/lib/_elevation.scss +4 -1
  39. package/button/lib/_filled-button.scss +12 -14
  40. package/button/lib/_icon.scss +1 -0
  41. package/button/lib/_outlined-button.scss +10 -15
  42. package/button/lib/_shared.scss +14 -19
  43. package/button/lib/_text-button.scss +12 -14
  44. package/button/lib/_tonal-button.scss +10 -15
  45. package/button/lib/button.js.map +1 -1
  46. package/button/lib/elevated-styles.css.js +1 -1
  47. package/button/lib/elevated-styles.css.js.map +1 -1
  48. package/button/lib/elevated-styles.scss +2 -0
  49. package/button/lib/filled-styles.css.js +1 -1
  50. package/button/lib/filled-styles.css.js.map +1 -1
  51. package/button/lib/filled-styles.scss +2 -0
  52. package/button/lib/link-button.js.map +1 -1
  53. package/button/lib/outlined-styles.css.js +1 -1
  54. package/button/lib/outlined-styles.css.js.map +1 -1
  55. package/button/lib/outlined-styles.scss +2 -0
  56. package/button/lib/shared-elevation-styles.scss +2 -0
  57. package/button/lib/shared-styles.css.js +1 -1
  58. package/button/lib/shared-styles.css.js.map +1 -1
  59. package/button/lib/shared-styles.scss +2 -0
  60. package/button/lib/text-styles.css.js +1 -1
  61. package/button/lib/text-styles.css.js.map +1 -1
  62. package/button/lib/text-styles.scss +2 -0
  63. package/button/lib/tonal-styles.css.js +1 -1
  64. package/button/lib/tonal-styles.css.js.map +1 -1
  65. package/button/lib/tonal-styles.scss +2 -0
  66. package/button/outlined-button.js.map +1 -1
  67. package/button/outlined-link-button.js.map +1 -1
  68. package/button/text-button.js.map +1 -1
  69. package/button/text-link-button.js.map +1 -1
  70. package/button/tonal-button.js.map +1 -1
  71. package/button/tonal-link-button.js.map +1 -1
  72. package/checkbox/checkbox.js.map +1 -1
  73. package/checkbox/lib/_checkbox.scss +26 -31
  74. package/checkbox/lib/checkbox-styles.css.js +1 -1
  75. package/checkbox/lib/checkbox-styles.css.js.map +1 -1
  76. package/checkbox/lib/checkbox-styles.scss +2 -0
  77. package/checkbox/lib/checkbox.js +6 -6
  78. package/checkbox/lib/checkbox.js.map +1 -1
  79. package/checkbox/lib/forced-colors-styles.scss +2 -0
  80. package/chips/action/delete-action.js.map +1 -1
  81. package/chips/action/lib/action.js +4 -4
  82. package/chips/action/lib/action.js.map +1 -1
  83. package/chips/action/lib/link-action.js +1 -1
  84. package/chips/action/lib/link-action.js.map +1 -1
  85. package/chips/action/lib/primary-action.js.map +1 -1
  86. package/chips/action/lib/selectable-action.js.map +1 -1
  87. package/chips/action/link-action.js.map +1 -1
  88. package/chips/action/presentational-action.js.map +1 -1
  89. package/chips/action/primary-action.js.map +1 -1
  90. package/chips/action/selectable-action.js.map +1 -1
  91. package/chips/chip/lib/_assist-chip-theme.scss +4 -0
  92. package/chips/chip/lib/_chip-theme.scss +29 -40
  93. package/chips/chip/lib/_chip.scss +2 -0
  94. package/chips/chip/lib/_filter-chip-theme.scss +4 -0
  95. package/chips/chip/lib/_input-chip-theme.scss +4 -0
  96. package/chips/chip/lib/_suggestion-chip-theme.scss +4 -0
  97. package/chips/chip/lib/chip.js.map +1 -1
  98. package/chips/chip/lib/foundation.js +4 -4
  99. package/chips/chip/lib/foundation.js.map +1 -1
  100. package/chips/chip/lib/link-chip.js.map +1 -1
  101. package/chips/chip/lib/selectable-chip.js.map +1 -1
  102. package/chips/chip/lib/types.d.ts +2 -2
  103. package/chips/chipset/lib/_chip-set-theme.scss +2 -0
  104. package/chips/chipset/lib/_chip-set.scss +2 -0
  105. package/chips/chipset/lib/foundation.js +3 -3
  106. package/chips/chipset/lib/foundation.js.map +1 -1
  107. package/chips/chipset/lib/types.d.ts +3 -3
  108. package/controller/events.js +4 -0
  109. package/controller/events.js.map +1 -1
  110. package/controller/form-controller.d.ts +1 -1
  111. package/controller/form-controller.js +21 -29
  112. package/controller/form-controller.js.map +1 -1
  113. package/dialog/dialog.js.map +1 -1
  114. package/dialog/harness.d.ts +2 -2
  115. package/dialog/harness.js +11 -8
  116. package/dialog/harness.js.map +1 -1
  117. package/dialog/lib/_dialog.scss +7 -11
  118. package/dialog/lib/_tokens.scss +9 -6
  119. package/dialog/lib/dialog-styles.css.js +1 -1
  120. package/dialog/lib/dialog-styles.css.js.map +1 -1
  121. package/dialog/lib/dialog-styles.scss +2 -0
  122. package/dialog/lib/dialog.js +9 -7
  123. package/dialog/lib/dialog.js.map +1 -1
  124. package/divider/divider.js.map +1 -1
  125. package/divider/lib/_divider.scss +2 -0
  126. package/divider/lib/divider-styles.scss +2 -0
  127. package/divider/lib/divider.js.map +1 -1
  128. package/elevation/elevation.js.map +1 -1
  129. package/elevation/lib/_elevation.scss +4 -0
  130. package/elevation/lib/_md-comp-elevation.scss +4 -0
  131. package/elevation/lib/elevation-styles.scss +2 -0
  132. package/elevation/lib/elevation.js.map +1 -1
  133. package/fab/fab-extended.js.map +1 -1
  134. package/fab/fab.js.map +1 -1
  135. package/fab/lib/_fab-extended.scss +18 -11
  136. package/fab/lib/_fab.scss +7 -2
  137. package/fab/lib/_shared.scss +16 -8
  138. package/fab/lib/fab-extended-styles.css.js +1 -1
  139. package/fab/lib/fab-extended-styles.css.js.map +1 -1
  140. package/fab/lib/fab-extended-styles.scss +2 -0
  141. package/fab/lib/fab-shared-styles.css.js +1 -1
  142. package/fab/lib/fab-shared-styles.css.js.map +1 -1
  143. package/fab/lib/fab-shared-styles.scss +2 -0
  144. package/fab/lib/fab-shared.d.ts +9 -15
  145. package/fab/lib/fab-shared.js +21 -33
  146. package/fab/lib/fab-shared.js.map +1 -1
  147. package/fab/lib/fab-styles.css.js +1 -1
  148. package/fab/lib/fab-styles.css.js.map +1 -1
  149. package/fab/lib/fab-styles.scss +2 -0
  150. package/field/filled-field.d.ts +1 -1
  151. package/field/filled-field.js +1 -1
  152. package/field/filled-field.js.map +1 -1
  153. package/field/harness.js +1 -1
  154. package/field/harness.js.map +1 -1
  155. package/field/lib/_content.scss +120 -57
  156. package/field/lib/_filled-field.scss +73 -130
  157. package/field/lib/_label.scss +27 -65
  158. package/field/lib/_md-comp-filled-field.scss +127 -56
  159. package/field/lib/_md-comp-outlined-field.scss +104 -52
  160. package/field/lib/_outlined-field.scss +108 -120
  161. package/field/lib/_shared.scss +27 -45
  162. package/field/lib/_supporting-text.scss +25 -52
  163. package/field/lib/field.d.ts +15 -31
  164. package/field/lib/field.js +130 -139
  165. package/field/lib/field.js.map +1 -1
  166. package/field/lib/filled-field.d.ts +5 -16
  167. package/field/lib/filled-field.js +8 -70
  168. package/field/lib/filled-field.js.map +1 -1
  169. package/field/lib/filled-styles.css.js +1 -1
  170. package/field/lib/filled-styles.css.js.map +1 -1
  171. package/field/lib/outlined-field.d.ts +4 -10
  172. package/field/lib/outlined-field.js +13 -33
  173. package/field/lib/outlined-field.js.map +1 -1
  174. package/field/lib/outlined-styles.css.js +1 -1
  175. package/field/lib/outlined-styles.css.js.map +1 -1
  176. package/field/lib/shared-styles.css.js +1 -1
  177. package/field/lib/shared-styles.css.js.map +1 -1
  178. package/field/outlined-field.d.ts +1 -1
  179. package/field/outlined-field.js +1 -1
  180. package/field/outlined-field.js.map +1 -1
  181. package/focus/focus-ring.js.map +1 -1
  182. package/focus/lib/_focus-ring.scss +7 -13
  183. package/focus/lib/_md-comp-focus-ring.scss +4 -0
  184. package/focus/lib/focus-ring-styles.css.js +1 -1
  185. package/focus/lib/focus-ring-styles.css.js.map +1 -1
  186. package/focus/lib/focus-ring-styles.scss +2 -0
  187. package/focus/lib/focus-ring.js.map +1 -1
  188. package/icon/icon.js.map +1 -1
  189. package/icon/lib/_icon.scss +3 -1
  190. package/icon/lib/_md-comp-icon.scss +1 -2
  191. package/icon/lib/icon-styles.css.js +1 -1
  192. package/icon/lib/icon-styles.css.js.map +1 -1
  193. package/icon/lib/icon-styles.scss +2 -0
  194. package/iconbutton/filled-icon-button-toggle.js.map +1 -1
  195. package/iconbutton/filled-icon-button.js.map +1 -1
  196. package/iconbutton/filled-link-icon-button.js.map +1 -1
  197. package/iconbutton/filled-tonal-icon-button-toggle.js.map +1 -1
  198. package/iconbutton/filled-tonal-icon-button.js.map +1 -1
  199. package/iconbutton/filled-tonal-link-icon-button.js.map +1 -1
  200. package/iconbutton/lib/_filled-icon-button.scss +19 -19
  201. package/iconbutton/lib/_filled-tonal-icon-button.scss +19 -19
  202. package/iconbutton/lib/_outlined-icon-button.scss +20 -16
  203. package/iconbutton/lib/_shared.scss +8 -8
  204. package/iconbutton/lib/_standard-icon-button.scss +21 -18
  205. package/iconbutton/lib/filled-styles.css.js +1 -1
  206. package/iconbutton/lib/filled-styles.css.js.map +1 -1
  207. package/iconbutton/lib/filled-styles.scss +2 -0
  208. package/iconbutton/lib/filled-tonal-styles.css.js +1 -1
  209. package/iconbutton/lib/filled-tonal-styles.css.js.map +1 -1
  210. package/iconbutton/lib/filled-tonal-styles.scss +2 -0
  211. package/iconbutton/lib/icon-button-toggle.js.map +1 -1
  212. package/iconbutton/lib/icon-button.js.map +1 -1
  213. package/iconbutton/lib/link-icon-button.js.map +1 -1
  214. package/iconbutton/lib/outlined-styles.css.js +1 -1
  215. package/iconbutton/lib/outlined-styles.css.js.map +1 -1
  216. package/iconbutton/lib/outlined-styles.scss +2 -0
  217. package/iconbutton/lib/shared-styles.scss +2 -0
  218. package/iconbutton/lib/standard-styles.css.js +1 -1
  219. package/iconbutton/lib/standard-styles.css.js.map +1 -1
  220. package/iconbutton/lib/standard-styles.scss +2 -0
  221. package/iconbutton/outlined-icon-button-toggle.js.map +1 -1
  222. package/iconbutton/outlined-icon-button.js.map +1 -1
  223. package/iconbutton/outlined-link-icon-button.js.map +1 -1
  224. package/iconbutton/standard-icon-button-toggle.js.map +1 -1
  225. package/iconbutton/standard-icon-button.js.map +1 -1
  226. package/iconbutton/standard-link-icon-button.js.map +1 -1
  227. package/list/lib/_list.scss +25 -11
  228. package/list/lib/list-styles.scss +2 -0
  229. package/list/lib/list.js +3 -1
  230. package/list/lib/list.js.map +1 -1
  231. package/list/lib/listitem/_list-item.scss +320 -128
  232. package/list/lib/listitem/list-item-styles.css.js +1 -1
  233. package/list/lib/listitem/list-item-styles.css.js.map +1 -1
  234. package/list/lib/listitem/list-item-styles.scss +2 -0
  235. package/list/lib/listitem/list-item.d.ts +8 -7
  236. package/list/lib/listitem/list-item.js +25 -27
  237. package/list/lib/listitem/list-item.js.map +1 -1
  238. package/list/lib/listitemlink/list-item-link.js.map +1 -1
  239. package/list/list-item-link.d.ts +18 -0
  240. package/list/list-item-link.js +19 -2
  241. package/list/list-item-link.js.map +1 -1
  242. package/list/list-item.d.ts +19 -0
  243. package/list/list-item.js +20 -2
  244. package/list/list-item.js.map +1 -1
  245. package/list/list.js.map +1 -1
  246. package/menu/lib/_menu.scss +32 -8
  247. package/menu/lib/menu-styles.css.js +1 -1
  248. package/menu/lib/menu-styles.css.js.map +1 -1
  249. package/menu/lib/menu-styles.scss +2 -0
  250. package/menu/lib/menu.d.ts +1 -1
  251. package/menu/lib/menu.js +8 -7
  252. package/menu/lib/menu.js.map +1 -1
  253. package/menu/lib/menuitem/_menu-item.scss +44 -76
  254. package/menu/lib/menuitem/menu-item-styles.css.js +1 -1
  255. package/menu/lib/menuitem/menu-item-styles.css.js.map +1 -1
  256. package/menu/lib/menuitem/menu-item-styles.scss +2 -0
  257. package/menu/lib/menuitem/menu-item.js.map +1 -1
  258. package/menu/lib/menuitemlink/menu-item-link.js.map +1 -1
  259. package/menu/lib/shared.d.ts +3 -3
  260. package/menu/lib/submenuitem/sub-menu-item.d.ts +0 -1
  261. package/menu/lib/submenuitem/sub-menu-item.js +0 -1
  262. package/menu/lib/submenuitem/sub-menu-item.js.map +1 -1
  263. package/menu/lib/surfacePositionController.d.ts +1 -1
  264. package/menu/lib/typeaheadController.d.ts +1 -1
  265. package/menu/menu-item-link.js +1 -2
  266. package/menu/menu-item-link.js.map +1 -1
  267. package/menu/menu-item.js +2 -3
  268. package/menu/menu-item.js.map +1 -1
  269. package/menu/menu.js.map +1 -1
  270. package/menu/sub-menu-item.js +1 -2
  271. package/menu/sub-menu-item.js.map +1 -1
  272. package/menusurface/lib/_md-comp-menu-surface.scss +5 -1
  273. package/menusurface/lib/_menu-surface.scss +4 -0
  274. package/menusurface/lib/foundation.js +31 -31
  275. package/menusurface/lib/foundation.js.map +1 -1
  276. package/menusurface/lib/menu-surface-styles.scss +2 -0
  277. package/menusurface/lib/menu-surface.d.ts +2 -2
  278. package/menusurface/lib/menu-surface.js.map +1 -1
  279. package/menusurface/menu-surface.js.map +1 -1
  280. package/navigationbar/lib/_navigation-bar.scss +2 -0
  281. package/navigationbar/lib/constants.d.ts +1 -1
  282. package/navigationbar/lib/navigation-bar-styles.scss +2 -0
  283. package/navigationbar/lib/navigation-bar.js.map +1 -1
  284. package/navigationbar/navigation-bar.js.map +1 -1
  285. package/navigationdrawer/lib/_navigation-drawer-modal.scss +11 -2
  286. package/navigationdrawer/lib/_navigation-drawer.scss +10 -5
  287. package/navigationdrawer/lib/_shared.scss +4 -8
  288. package/navigationdrawer/lib/navigation-drawer-modal-styles.css.js +1 -1
  289. package/navigationdrawer/lib/navigation-drawer-modal-styles.css.js.map +1 -1
  290. package/navigationdrawer/lib/navigation-drawer-modal-styles.scss +2 -0
  291. package/navigationdrawer/lib/navigation-drawer-modal.js.map +1 -1
  292. package/navigationdrawer/lib/navigation-drawer-styles.css.js +1 -1
  293. package/navigationdrawer/lib/navigation-drawer-styles.css.js.map +1 -1
  294. package/navigationdrawer/lib/navigation-drawer-styles.scss +2 -0
  295. package/navigationdrawer/lib/navigation-drawer.js.map +1 -1
  296. package/navigationdrawer/lib/shared-styles.scss +2 -0
  297. package/navigationdrawer/navigation-drawer-modal.js.map +1 -1
  298. package/navigationdrawer/navigation-drawer.js.map +1 -1
  299. package/navigationtab/lib/_navigation-tab.scss +26 -22
  300. package/navigationtab/lib/navigation-tab-styles.css.js +1 -1
  301. package/navigationtab/lib/navigation-tab-styles.css.js.map +1 -1
  302. package/navigationtab/lib/navigation-tab-styles.scss +2 -0
  303. package/navigationtab/lib/navigation-tab.js +4 -4
  304. package/navigationtab/lib/navigation-tab.js.map +1 -1
  305. package/navigationtab/navigation-tab.js.map +1 -1
  306. package/package.json +2 -2
  307. package/radio/lib/_radio.scss +16 -14
  308. package/radio/lib/forced-colors-styles.scss +2 -0
  309. package/radio/lib/radio-styles.css.js +1 -1
  310. package/radio/lib/radio-styles.css.js.map +1 -1
  311. package/radio/lib/radio-styles.scss +2 -0
  312. package/radio/lib/radio.js +21 -21
  313. package/radio/lib/radio.js.map +1 -1
  314. package/radio/radio.js.map +1 -1
  315. package/ripple/directive.d.ts +1 -33
  316. package/ripple/directive.js +7 -194
  317. package/ripple/directive.js.map +1 -1
  318. package/ripple/lib/_md-comp-ripple.scss +20 -19
  319. package/ripple/lib/_ripple.scss +20 -20
  320. package/ripple/lib/ripple-styles.css.js +1 -1
  321. package/ripple/lib/ripple-styles.css.js.map +1 -1
  322. package/ripple/lib/ripple-styles.scss +2 -0
  323. package/ripple/lib/ripple.d.ts +50 -48
  324. package/ripple/lib/ripple.js +214 -76
  325. package/ripple/lib/ripple.js.map +1 -1
  326. package/ripple/ripple.d.ts +9 -1
  327. package/ripple/ripple.js +9 -1
  328. package/ripple/ripple.js.map +1 -1
  329. package/sass/_assert.scss +2 -0
  330. package/sass/_color-scheme.scss +4 -0
  331. package/sass/_color.scss +4 -0
  332. package/sass/_elevation.scss +4 -0
  333. package/sass/_feature-flags.scss +2 -0
  334. package/sass/_map-ext.scss +2 -0
  335. package/sass/_resolvers.scss +4 -4
  336. package/sass/_shape.scss +75 -27
  337. package/sass/_string-ext.scss +44 -0
  338. package/sass/_theme.scss +4 -0
  339. package/sass/_typography.scss +18 -93
  340. package/sass/_var.scss +4 -0
  341. package/segmentedbutton/lib/_outlined-segmented-button.scss +4 -0
  342. package/segmentedbutton/lib/_shared.scss +18 -22
  343. package/segmentedbutton/lib/outlined-styles.css.js +1 -1
  344. package/segmentedbutton/lib/outlined-styles.css.js.map +1 -1
  345. package/segmentedbutton/lib/outlined-styles.scss +2 -0
  346. package/segmentedbutton/lib/segmented-button.js +4 -4
  347. package/segmentedbutton/lib/segmented-button.js.map +1 -1
  348. package/segmentedbutton/lib/shared-styles.css.js +1 -1
  349. package/segmentedbutton/lib/shared-styles.css.js.map +1 -1
  350. package/segmentedbutton/lib/shared-styles.scss +2 -0
  351. package/segmentedbutton/outlined-segmented-button.js.map +1 -1
  352. package/segmentedbuttonset/lib/_outlined-segmented-button-set.scss +9 -5
  353. package/segmentedbuttonset/lib/_shared.scss +0 -13
  354. package/segmentedbuttonset/lib/outlined-styles.css.js +1 -1
  355. package/segmentedbuttonset/lib/outlined-styles.css.js.map +1 -1
  356. package/segmentedbuttonset/lib/outlined-styles.scss +2 -0
  357. package/segmentedbuttonset/lib/segmented-button-set.js.map +1 -1
  358. package/segmentedbuttonset/lib/shared-styles.scss +2 -0
  359. package/segmentedbuttonset/outlined-segmented-button-set.js.map +1 -1
  360. package/{list/lib/listitem/list-item-private-styles.scss → slider/_slider.scss} +1 -3
  361. package/slider/harness.d.ts +20 -0
  362. package/slider/harness.js +63 -0
  363. package/slider/harness.js.map +1 -0
  364. package/slider/lib/_slider.scss +503 -0
  365. package/slider/lib/_tokens.scss +66 -0
  366. package/slider/lib/forced-colors-styles.css.js +9 -0
  367. package/slider/lib/forced-colors-styles.css.js.map +1 -0
  368. package/slider/lib/forced-colors-styles.scss +53 -0
  369. package/slider/lib/slider-styles.css.js +9 -0
  370. package/slider/lib/slider-styles.css.js.map +1 -0
  371. package/{menu/lib/menuitem/menu-item-private-styles.scss → slider/lib/slider-styles.scss} +2 -2
  372. package/slider/lib/slider.d.ts +158 -0
  373. package/slider/lib/slider.js +575 -0
  374. package/slider/lib/slider.js.map +1 -0
  375. package/slider/slider.d.ts +28 -0
  376. package/slider/slider.js +32 -0
  377. package/slider/slider.js.map +1 -0
  378. package/switch/lib/README.md +55 -0
  379. package/switch/lib/_handle.scss +17 -18
  380. package/switch/lib/_icon.scss +4 -0
  381. package/switch/lib/_switch.scss +11 -18
  382. package/switch/lib/_track.scss +2 -0
  383. package/switch/lib/switch-styles.css.js +1 -1
  384. package/switch/lib/switch-styles.css.js.map +1 -1
  385. package/switch/lib/switch-styles.scss +2 -0
  386. package/switch/lib/switch.js +9 -9
  387. package/switch/lib/switch.js.map +1 -1
  388. package/switch/switch.js.map +1 -1
  389. package/textfield/filled-text-field.d.ts +1 -1
  390. package/textfield/filled-text-field.js +1 -2
  391. package/textfield/filled-text-field.js.map +1 -1
  392. package/textfield/harness.js +1 -1
  393. package/textfield/harness.js.map +1 -1
  394. package/textfield/lib/_filled-text-field.scss +116 -110
  395. package/textfield/lib/_icon.scss +14 -73
  396. package/textfield/lib/_input.scss +15 -36
  397. package/textfield/lib/_outlined-text-field.scss +107 -103
  398. package/textfield/lib/_shared.scss +10 -29
  399. package/textfield/lib/filled-forced-colors-styles.scss +2 -0
  400. package/textfield/lib/filled-styles.css.js +1 -1
  401. package/textfield/lib/filled-styles.css.js.map +1 -1
  402. package/textfield/lib/filled-styles.scss +2 -0
  403. package/textfield/lib/filled-text-field.d.ts +6 -5
  404. package/textfield/lib/filled-text-field.js +8 -7
  405. package/textfield/lib/filled-text-field.js.map +1 -1
  406. package/textfield/lib/outlined-forced-colors-styles.scss +2 -0
  407. package/textfield/lib/outlined-styles.css.js +1 -1
  408. package/textfield/lib/outlined-styles.css.js.map +1 -1
  409. package/textfield/lib/outlined-styles.scss +2 -0
  410. package/textfield/lib/outlined-text-field.d.ts +6 -5
  411. package/textfield/lib/outlined-text-field.js +8 -7
  412. package/textfield/lib/outlined-text-field.js.map +1 -1
  413. package/textfield/lib/shared-styles.css.js +1 -1
  414. package/textfield/lib/shared-styles.css.js.map +1 -1
  415. package/textfield/lib/shared-styles.scss +2 -0
  416. package/textfield/lib/text-field.d.ts +40 -88
  417. package/textfield/lib/text-field.js +194 -270
  418. package/textfield/lib/text-field.js.map +1 -1
  419. package/textfield/outlined-text-field.d.ts +1 -1
  420. package/textfield/outlined-text-field.js +1 -2
  421. package/textfield/outlined-text-field.js.map +1 -1
  422. package/tokens/_index.scss +1 -1
  423. package/tokens/{v0_152 → v0_160}/_md-comp-assist-chip.scss +1 -1
  424. package/tokens/{v0_152 → v0_160}/_md-comp-badge.scss +1 -1
  425. package/tokens/{v0_152 → v0_160}/_md-comp-banner.scss +1 -1
  426. package/tokens/{v0_152 → v0_160}/_md-comp-bottom-app-bar.scss +1 -1
  427. package/tokens/{v0_152 → v0_160}/_md-comp-carousel-item.scss +1 -1
  428. package/tokens/{v0_152 → v0_160}/_md-comp-checkbox.scss +4 -15
  429. package/tokens/{v0_152 → v0_160}/_md-comp-circular-progress-indicator.scss +1 -1
  430. package/tokens/{v0_152 → v0_160}/_md-comp-data-table.scss +1 -3
  431. package/tokens/{v0_152 → v0_160}/_md-comp-date-input-modal.scss +10 -10
  432. package/tokens/{v0_152 → v0_160}/_md-comp-date-picker-docked.scss +23 -23
  433. package/tokens/{v0_152 → v0_160}/_md-comp-date-picker-modal.scss +34 -34
  434. package/tokens/{v0_152 → v0_160}/_md-comp-dialog.scss +1 -1
  435. package/tokens/{v0_152 → v0_160}/_md-comp-divider.scss +1 -1
  436. package/tokens/{v0_152 → v0_160}/_md-comp-elevated-button.scss +1 -1
  437. package/tokens/{v0_152 → v0_160}/_md-comp-elevated-card.scss +1 -1
  438. package/tokens/{v0_152 → v0_160}/_md-comp-extended-fab-branded.scss +1 -1
  439. package/tokens/{v0_152 → v0_160}/_md-comp-extended-fab-primary.scss +1 -1
  440. package/tokens/{v0_152 → v0_160}/_md-comp-extended-fab-secondary.scss +1 -1
  441. package/tokens/{v0_152 → v0_160}/_md-comp-extended-fab-surface.scss +1 -1
  442. package/tokens/{v0_152 → v0_160}/_md-comp-extended-fab-tertiary.scss +1 -1
  443. package/tokens/{v0_152 → v0_160}/_md-comp-fab-branded-large.scss +1 -1
  444. package/tokens/{v0_152 → v0_160}/_md-comp-fab-branded.scss +1 -1
  445. package/tokens/{v0_152 → v0_160}/_md-comp-fab-primary-large.scss +1 -1
  446. package/tokens/{v0_152 → v0_160}/_md-comp-fab-primary-small.scss +1 -1
  447. package/tokens/{v0_152 → v0_160}/_md-comp-fab-primary.scss +1 -1
  448. package/tokens/{v0_152 → v0_160}/_md-comp-fab-secondary-large.scss +1 -1
  449. package/tokens/{v0_152 → v0_160}/_md-comp-fab-secondary-small.scss +1 -1
  450. package/tokens/{v0_152 → v0_160}/_md-comp-fab-secondary.scss +1 -1
  451. package/tokens/{v0_152 → v0_160}/_md-comp-fab-surface-large.scss +1 -1
  452. package/tokens/{v0_152 → v0_160}/_md-comp-fab-surface-small.scss +1 -1
  453. package/tokens/{v0_152 → v0_160}/_md-comp-fab-surface.scss +1 -1
  454. package/tokens/{v0_152 → v0_160}/_md-comp-fab-tertiary-large.scss +1 -1
  455. package/tokens/{v0_152 → v0_160}/_md-comp-fab-tertiary-small.scss +1 -1
  456. package/tokens/{v0_152 → v0_160}/_md-comp-fab-tertiary.scss +1 -1
  457. package/tokens/{v0_152 → v0_160}/_md-comp-filled-autocomplete.scss +1 -1
  458. package/tokens/{v0_152 → v0_160}/_md-comp-filled-button.scss +1 -1
  459. package/tokens/{v0_152 → v0_160}/_md-comp-filled-card.scss +1 -1
  460. package/tokens/{v0_152 → v0_160}/_md-comp-filled-icon-button.scss +1 -1
  461. package/tokens/{v0_152 → v0_160}/_md-comp-filled-menu-button.scss +1 -1
  462. package/tokens/{v0_152 → v0_160}/_md-comp-filled-select.scss +1 -1
  463. package/tokens/{v0_152 → v0_160}/_md-comp-filled-text-field.scss +1 -1
  464. package/tokens/{v0_152 → v0_160}/_md-comp-filled-tonal-button.scss +1 -1
  465. package/tokens/{v0_152 → v0_160}/_md-comp-filled-tonal-icon-button.scss +1 -1
  466. package/tokens/{v0_152 → v0_160}/_md-comp-filter-chip.scss +1 -1
  467. package/tokens/{v0_152 → v0_160}/_md-comp-full-screen-dialog.scss +1 -1
  468. package/tokens/{v0_152 → v0_160}/_md-comp-icon-button.scss +1 -1
  469. package/tokens/{v0_152 → v0_160}/_md-comp-input-chip.scss +1 -1
  470. package/tokens/{v0_152 → v0_160}/_md-comp-linear-progress-indicator.scss +1 -1
  471. package/tokens/{v0_152 → v0_160}/_md-comp-list.scss +1 -1
  472. package/tokens/{v0_152 → v0_160}/_md-comp-menu.scss +1 -1
  473. package/tokens/{v0_152 → v0_160}/_md-comp-navigation-bar.scss +1 -1
  474. package/tokens/{v0_152 → v0_160}/_md-comp-navigation-drawer.scss +1 -1
  475. package/tokens/{v0_152 → v0_160}/_md-comp-navigation-rail.scss +1 -1
  476. package/tokens/{v0_152 → v0_160}/_md-comp-outlined-autocomplete.scss +1 -1
  477. package/tokens/{v0_152 → v0_160}/_md-comp-outlined-button.scss +1 -1
  478. package/tokens/{v0_152 → v0_160}/_md-comp-outlined-card.scss +1 -1
  479. package/tokens/{v0_152 → v0_160}/_md-comp-outlined-icon-button.scss +1 -1
  480. package/tokens/{v0_152 → v0_160}/_md-comp-outlined-menu-button.scss +1 -1
  481. package/tokens/{v0_152 → v0_160}/_md-comp-outlined-segmented-button.scss +1 -1
  482. package/tokens/{v0_152 → v0_160}/_md-comp-outlined-select.scss +1 -1
  483. package/tokens/{v0_152 → v0_160}/_md-comp-outlined-text-field.scss +1 -1
  484. package/tokens/{v0_152 → v0_160}/_md-comp-plain-tooltip.scss +1 -1
  485. package/tokens/{v0_152 → v0_160}/_md-comp-primary-navigation-tab.scss +1 -3
  486. package/tokens/{v0_152 → v0_160}/_md-comp-radio-button.scss +1 -1
  487. package/tokens/{v0_152 → v0_160}/_md-comp-rich-tooltip.scss +1 -1
  488. package/tokens/{v0_152 → v0_160}/_md-comp-scrim.scss +1 -1
  489. package/tokens/{v0_152 → v0_160}/_md-comp-search-bar.scss +1 -1
  490. package/tokens/{v0_152 → v0_160}/_md-comp-search-view.scss +1 -1
  491. package/tokens/{v0_152 → v0_160}/_md-comp-secondary-navigation-tab.scss +1 -3
  492. package/tokens/{v0_152 → v0_160}/_md-comp-sheet-bottom.scss +1 -1
  493. package/tokens/{v0_152 → v0_160}/_md-comp-sheet-floating.scss +1 -1
  494. package/tokens/{v0_152 → v0_160}/_md-comp-sheet-side.scss +10 -10
  495. package/tokens/{v0_152 → v0_160}/_md-comp-slider.scss +1 -1
  496. package/tokens/{v0_152 → v0_160}/_md-comp-snackbar.scss +1 -1
  497. package/tokens/{v0_152 → v0_160}/_md-comp-standard-menu-button.scss +1 -1
  498. package/tokens/{v0_152 → v0_160}/_md-comp-suggestion-chip.scss +1 -1
  499. package/tokens/{v0_152 → v0_160}/_md-comp-switch.scss +1 -1
  500. package/tokens/{v0_152 → v0_160}/_md-comp-text-button.scss +1 -1
  501. package/tokens/{v0_152 → v0_160}/_md-comp-time-input.scss +1 -1
  502. package/tokens/{v0_152 → v0_160}/_md-comp-time-picker.scss +1 -1
  503. package/tokens/{v0_152 → v0_160}/_md-comp-top-app-bar-large.scss +1 -1
  504. package/tokens/{v0_152 → v0_160}/_md-comp-top-app-bar-medium.scss +1 -1
  505. package/tokens/{v0_152 → v0_160}/_md-comp-top-app-bar-small-centered.scss +1 -1
  506. package/tokens/{v0_152 → v0_160}/_md-comp-top-app-bar-small.scss +1 -1
  507. package/tokens/{v0_152 → v0_160}/_md-ref-palette.scss +1 -1
  508. package/tokens/{v0_152 → v0_160}/_md-ref-typeface.scss +1 -1
  509. package/tokens/{v0_152 → v0_160}/_md-sys-color.scss +217 -1
  510. package/tokens/{v0_152 → v0_160}/_md-sys-elevation.scss +1 -1
  511. package/tokens/{v0_152 → v0_160}/_md-sys-motion.scss +1 -1
  512. package/tokens/{v0_152 → v0_160}/_md-sys-shape.scss +1 -1
  513. package/tokens/{v0_152 → v0_160}/_md-sys-state.scss +1 -1
  514. package/tokens/{v0_152 → v0_160}/_md-sys-typescale.scss +1 -1
  515. package/tokens/v0_161/_index.scss +107 -0
  516. package/tokens/v0_161/_md-comp-assist-chip.scss +109 -0
  517. package/tokens/v0_161/_md-comp-badge.scss +58 -0
  518. package/tokens/v0_161/_md-comp-banner.scss +75 -0
  519. package/tokens/v0_161/_md-comp-bottom-app-bar.scss +35 -0
  520. package/tokens/v0_161/_md-comp-carousel-item.scss +65 -0
  521. package/tokens/v0_161/_md-comp-checkbox.scss +126 -0
  522. package/tokens/v0_161/_md-comp-circular-progress-indicator.scss +39 -0
  523. package/tokens/v0_161/_md-comp-data-table.scss +96 -0
  524. package/tokens/v0_161/_md-comp-date-input-modal.scss +89 -0
  525. package/tokens/v0_161/_md-comp-date-picker-docked.scss +246 -0
  526. package/tokens/v0_161/_md-comp-date-picker-modal.scss +305 -0
  527. package/tokens/v0_161/_md-comp-dialog.scss +123 -0
  528. package/tokens/v0_161/_md-comp-divider.scss +25 -0
  529. package/tokens/v0_161/_md-comp-elevated-button.scss +91 -0
  530. package/tokens/v0_161/_md-comp-elevated-card.scss +59 -0
  531. package/tokens/v0_161/_md-comp-extended-fab-branded.scss +86 -0
  532. package/tokens/v0_161/_md-comp-extended-fab-primary.scss +94 -0
  533. package/tokens/v0_161/_md-comp-extended-fab-secondary.scss +95 -0
  534. package/tokens/v0_161/_md-comp-extended-fab-surface.scss +90 -0
  535. package/tokens/v0_161/_md-comp-extended-fab-tertiary.scss +95 -0
  536. package/tokens/v0_161/_md-comp-fab-branded-large.scss +60 -0
  537. package/tokens/v0_161/_md-comp-fab-branded.scss +60 -0
  538. package/tokens/v0_161/_md-comp-fab-primary-large.scss +65 -0
  539. package/tokens/v0_161/_md-comp-fab-primary-small.scss +65 -0
  540. package/tokens/v0_161/_md-comp-fab-primary.scss +65 -0
  541. package/tokens/v0_161/_md-comp-fab-secondary-large.scss +66 -0
  542. package/tokens/v0_161/_md-comp-fab-secondary-small.scss +66 -0
  543. package/tokens/v0_161/_md-comp-fab-secondary.scss +66 -0
  544. package/tokens/v0_161/_md-comp-fab-surface-large.scss +64 -0
  545. package/tokens/v0_161/_md-comp-fab-surface-small.scss +64 -0
  546. package/tokens/v0_161/_md-comp-fab-surface.scss +64 -0
  547. package/tokens/v0_161/_md-comp-fab-tertiary-large.scss +66 -0
  548. package/tokens/v0_161/_md-comp-fab-tertiary-small.scss +66 -0
  549. package/tokens/v0_161/_md-comp-fab-tertiary.scss +66 -0
  550. package/tokens/v0_161/_md-comp-filled-autocomplete.scss +267 -0
  551. package/tokens/v0_161/_md-comp-filled-button.scss +89 -0
  552. package/tokens/v0_161/_md-comp-filled-card.scss +58 -0
  553. package/tokens/v0_161/_md-comp-filled-icon-button.scss +79 -0
  554. package/tokens/v0_161/_md-comp-filled-menu-button.scss +98 -0
  555. package/tokens/v0_161/_md-comp-filled-select.scss +272 -0
  556. package/tokens/v0_161/_md-comp-filled-text-field.scss +189 -0
  557. package/tokens/v0_161/_md-comp-filled-tonal-button.scss +99 -0
  558. package/tokens/v0_161/_md-comp-filled-tonal-icon-button.scss +86 -0
  559. package/tokens/v0_161/_md-comp-filter-chip.scss +209 -0
  560. package/tokens/v0_161/_md-comp-full-screen-dialog.scss +111 -0
  561. package/tokens/v0_161/_md-comp-icon-button.scss +70 -0
  562. package/tokens/v0_161/_md-comp-input-chip.scss +184 -0
  563. package/tokens/v0_161/_md-comp-linear-progress-indicator.scss +41 -0
  564. package/tokens/v0_161/_md-comp-list.scss +248 -0
  565. package/tokens/v0_161/_md-comp-menu.scss +37 -0
  566. package/tokens/v0_161/_md-comp-navigation-bar.scss +114 -0
  567. package/tokens/v0_161/_md-comp-navigation-drawer.scss +162 -0
  568. package/tokens/v0_161/_md-comp-navigation-rail.scss +131 -0
  569. package/tokens/v0_161/_md-comp-outlined-autocomplete.scss +257 -0
  570. package/tokens/v0_161/_md-comp-outlined-button.scss +84 -0
  571. package/tokens/v0_161/_md-comp-outlined-card.scss +65 -0
  572. package/tokens/v0_161/_md-comp-outlined-icon-button.scss +79 -0
  573. package/tokens/v0_161/_md-comp-outlined-menu-button.scss +94 -0
  574. package/tokens/v0_161/_md-comp-outlined-segmented-button.scss +112 -0
  575. package/tokens/v0_161/_md-comp-outlined-select.scss +262 -0
  576. package/tokens/v0_161/_md-comp-outlined-text-field.scss +171 -0
  577. package/tokens/v0_161/_md-comp-plain-tooltip.scss +55 -0
  578. package/tokens/v0_161/_md-comp-primary-navigation-tab.scss +121 -0
  579. package/tokens/v0_161/_md-comp-radio-button.scss +68 -0
  580. package/tokens/v0_161/_md-comp-rich-tooltip.scss +121 -0
  581. package/tokens/v0_161/_md-comp-scrim.scss +25 -0
  582. package/tokens/v0_161/_md-comp-search-bar.scss +99 -0
  583. package/tokens/v0_161/_md-comp-search-view.scss +93 -0
  584. package/tokens/v0_161/_md-comp-secondary-navigation-tab.scss +84 -0
  585. package/tokens/v0_161/_md-comp-sheet-bottom.scss +45 -0
  586. package/tokens/v0_161/_md-comp-sheet-floating.scss +34 -0
  587. package/tokens/v0_161/_md-comp-sheet-side.scss +91 -0
  588. package/tokens/v0_161/_md-comp-slider.scss +114 -0
  589. package/tokens/v0_161/_md-comp-snackbar.scss +127 -0
  590. package/tokens/v0_161/_md-comp-standard-menu-button.scss +98 -0
  591. package/tokens/v0_161/_md-comp-suggestion-chip.scss +125 -0
  592. package/tokens/v0_161/_md-comp-switch.scss +136 -0
  593. package/tokens/v0_161/_md-comp-text-button.scss +77 -0
  594. package/tokens/v0_161/_md-comp-time-input.scss +218 -0
  595. package/tokens/v0_161/_md-comp-time-picker.scss +264 -0
  596. package/tokens/v0_161/_md-comp-top-app-bar-large.scss +63 -0
  597. package/tokens/v0_161/_md-comp-top-app-bar-medium.scss +63 -0
  598. package/tokens/v0_161/_md-comp-top-app-bar-small-centered.scss +66 -0
  599. package/tokens/v0_161/_md-comp-top-app-bar-small.scss +64 -0
  600. package/tokens/v0_161/_md-ref-palette.scss +107 -0
  601. package/tokens/v0_161/_md-ref-typeface.scss +21 -0
  602. package/tokens/v0_161/_md-sys-color.scss +904 -0
  603. package/tokens/v0_161/_md-sys-elevation.scss +21 -0
  604. package/tokens/v0_161/_md-sys-motion.scss +53 -0
  605. package/tokens/v0_161/_md-sys-shape.scss +30 -0
  606. package/tokens/v0_161/_md-sys-state.scss +19 -0
  607. package/tokens/v0_161/_md-sys-typescale.scss +284 -0
  608. package/tokens/v0_161/index.test.css.js +9 -0
  609. package/tokens/v0_161/index.test.css.js.map +1 -0
  610. package/tokens/v0_161/index.test.scss +584 -0
  611. package/tokens/v0_161/lib.test.css.js +9 -0
  612. package/tokens/v0_161/lib.test.css.js.map +1 -0
  613. package/tokens/v0_161/lib.test.scss +663 -0
  614. package/controller/foundation.d.ts +0 -24
  615. package/controller/foundation.js +0 -18
  616. package/controller/foundation.js.map +0 -1
  617. package/controller/observer-foundation.d.ts +0 -25
  618. package/controller/observer-foundation.js +0 -37
  619. package/controller/observer-foundation.js.map +0 -1
  620. package/controller/observer.d.ts +0 -52
  621. package/controller/observer.js +0 -149
  622. package/controller/observer.js.map +0 -1
  623. package/decorators/bound.d.ts +0 -40
  624. package/decorators/bound.js +0 -49
  625. package/decorators/bound.js.map +0 -1
  626. package/list/lib/avatar/_list-item-avatar.scss +0 -38
  627. package/list/lib/avatar/list-item-avatar-styles.css.js +0 -9
  628. package/list/lib/avatar/list-item-avatar-styles.css.js.map +0 -1
  629. package/list/lib/avatar/list-item-avatar-styles.scss +0 -8
  630. package/list/lib/avatar/list-item-avatar.d.ts +0 -21
  631. package/list/lib/avatar/list-item-avatar.js +0 -48
  632. package/list/lib/avatar/list-item-avatar.js.map +0 -1
  633. package/list/lib/icon/_list-item-icon.scss +0 -67
  634. package/list/lib/icon/list-item-icon-styles.css.js +0 -9
  635. package/list/lib/icon/list-item-icon-styles.css.js.map +0 -1
  636. package/list/lib/icon/list-item-icon-styles.scss +0 -8
  637. package/list/lib/icon/list-item-icon.d.ts +0 -9
  638. package/list/lib/icon/list-item-icon.js +0 -15
  639. package/list/lib/icon/list-item-icon.js.map +0 -1
  640. package/list/lib/image/_list-item-image.scss +0 -59
  641. package/list/lib/image/list-item-image-styles.css.js +0 -9
  642. package/list/lib/image/list-item-image-styles.css.js.map +0 -1
  643. package/list/lib/image/list-item-image-styles.scss +0 -8
  644. package/list/lib/image/list-item-image.d.ts +0 -21
  645. package/list/lib/image/list-item-image.js +0 -48
  646. package/list/lib/image/list-item-image.js.map +0 -1
  647. package/list/lib/listitem/list-item-private-styles.css.js +0 -9
  648. package/list/lib/listitem/list-item-private-styles.css.js.map +0 -1
  649. package/list/lib/video/_list-item-video.scss +0 -67
  650. package/list/lib/video/list-item-video-styles.css.d.ts +0 -1
  651. package/list/lib/video/list-item-video-styles.css.js +0 -9
  652. package/list/lib/video/list-item-video-styles.css.js.map +0 -1
  653. package/list/lib/video/list-item-video-styles.scss +0 -8
  654. package/list/lib/video/list-item-video.d.ts +0 -53
  655. package/list/lib/video/list-item-video.js +0 -115
  656. package/list/lib/video/list-item-video.js.map +0 -1
  657. package/list/list-item-avatar.d.ts +0 -20
  658. package/list/list-item-avatar.js +0 -23
  659. package/list/list-item-avatar.js.map +0 -1
  660. package/list/list-item-icon.d.ts +0 -20
  661. package/list/list-item-icon.js +0 -23
  662. package/list/list-item-icon.js.map +0 -1
  663. package/list/list-item-image.d.ts +0 -20
  664. package/list/list-item-image.js +0 -23
  665. package/list/list-item-image.js.map +0 -1
  666. package/list/list-item-video.d.ts +0 -20
  667. package/list/list-item-video.js +0 -23
  668. package/list/list-item-video.js.map +0 -1
  669. package/menu/lib/menuitem/menu-item-private-styles.css.d.ts +0 -1
  670. package/menu/lib/menuitem/menu-item-private-styles.css.js +0 -9
  671. package/menu/lib/menuitem/menu-item-private-styles.css.js.map +0 -1
  672. /package/{list/lib/avatar/list-item-avatar-styles.css.d.ts → slider/lib/forced-colors-styles.css.d.ts} +0 -0
  673. /package/{list/lib/icon/list-item-icon-styles.css.d.ts → slider/lib/slider-styles.css.d.ts} +0 -0
  674. /package/tokens/{v0_152 → v0_160}/_index.scss +0 -0
  675. /package/tokens/{v0_152 → v0_160}/index.test.css.d.ts +0 -0
  676. /package/tokens/{v0_152 → v0_160}/index.test.css.js +0 -0
  677. /package/tokens/{v0_152 → v0_160}/index.test.css.js.map +0 -0
  678. /package/tokens/{v0_152 → v0_160}/index.test.scss +0 -0
  679. /package/tokens/{v0_152 → v0_160}/lib.test.css.d.ts +0 -0
  680. /package/tokens/{v0_152 → v0_160}/lib.test.css.js +0 -0
  681. /package/tokens/{v0_152 → v0_160}/lib.test.css.js.map +0 -0
  682. /package/tokens/{v0_152 → v0_160}/lib.test.scss +0 -0
  683. /package/{list/lib/image/list-item-image-styles.css.d.ts → tokens/v0_161/index.test.css.d.ts} +0 -0
  684. /package/{list/lib/listitem/list-item-private-styles.css.d.ts → tokens/v0_161/lib.test.css.d.ts} +0 -0
@@ -3,12 +3,16 @@
3
3
  // SPDX-License-Identifier: Apache-2.0
4
4
  //
5
5
 
6
+ // go/keep-sorted start
6
7
  @use 'sass:map';
8
+ // go/keep-sorted end
9
+ // go/keep-sorted start
7
10
  @use '../../focus/focus-ring';
8
11
  @use '../../motion/animation';
9
12
  @use '../../ripple/ripple';
10
13
  @use '../../sass/theme';
11
14
  @use '../../tokens';
15
+ // go/keep-sorted end
12
16
 
13
17
  $_md-sys-motion: tokens.md-sys-motion-values();
14
18
 
@@ -30,13 +34,12 @@ $_md-sys-motion: tokens.md-sys-motion-values();
30
34
 
31
35
  @include ripple.theme(
32
36
  (
33
- focus-state-layer-color: var(--_unselected-focus-state-layer-color),
34
- focus-state-layer-opacity: var(--_unselected-focus-state-layer-opacity),
35
- hover-state-layer-color: var(--_unselected-hover-state-layer-color),
36
- hover-state-layer-opacity: var(--_unselected-hover-state-layer-opacity),
37
- pressed-state-layer-color: var(--_unselected-pressed-state-layer-color),
38
- pressed-state-layer-opacity:
39
- var(--_unselected-pressed-state-layer-opacity),
37
+ focus-color: var(--_unselected-focus-state-layer-color),
38
+ focus-opacity: var(--_unselected-focus-state-layer-opacity),
39
+ hover-color: var(--_unselected-hover-state-layer-color),
40
+ hover-opacity: var(--_unselected-hover-state-layer-opacity),
41
+ pressed-color: var(--_unselected-pressed-state-layer-color),
42
+ pressed-opacity: var(--_unselected-pressed-state-layer-opacity),
40
43
  )
41
44
  );
42
45
 
@@ -59,13 +62,12 @@ $_md-sys-motion: tokens.md-sys-motion-values();
59
62
  :host([checked]) {
60
63
  @include ripple.theme(
61
64
  (
62
- focus-state-layer-color: var(--_selected-focus-state-layer-color),
63
- focus-state-layer-opacity: var(--_selected-focus-state-layer-opacity),
64
- hover-state-layer-color: var(--_selected-hover-state-layer-color),
65
- hover-state-layer-opacity: var(--_selected-hover-state-layer-opacity),
66
- pressed-state-layer-color: var(--_selected-pressed-state-layer-color),
67
- pressed-state-layer-opacity:
68
- var(--_selected-pressed-state-layer-opacity),
65
+ focus-color: var(--_selected-focus-state-layer-color),
66
+ focus-opacity: var(--_selected-focus-state-layer-opacity),
67
+ hover-color: var(--_selected-hover-state-layer-color),
68
+ hover-opacity: var(--_selected-hover-state-layer-opacity),
69
+ pressed-color: var(--_selected-pressed-state-layer-color),
70
+ pressed-opacity: var(--_selected-pressed-state-layer-opacity),
69
71
  )
70
72
  );
71
73
  }
@@ -3,7 +3,9 @@
3
3
  // SPDX-License-Identifier: Apache-2.0
4
4
  //
5
5
 
6
+ // go/keep-sorted start
6
7
  @use './radio';
8
+ // go/keep-sorted end
7
9
 
8
10
  @media (forced-colors: active) {
9
11
  :host {
@@ -4,6 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  import { css } from 'lit';
7
- export const styles = css `:host{--_disabled-selected-icon-color: var(--md-radio-disabled-selected-icon-color, var(--md-sys-color-on-surface, #1c1b1f));--_disabled-selected-icon-opacity: var(--md-radio-disabled-selected-icon-opacity, 0.38);--_disabled-unselected-icon-color: var(--md-radio-disabled-unselected-icon-color, var(--md-sys-color-on-surface, #1c1b1f));--_disabled-unselected-icon-opacity: var(--md-radio-disabled-unselected-icon-opacity, 0.38);--_icon-size: var(--md-radio-icon-size, 20px);--_selected-focus-icon-color: var(--md-radio-selected-focus-icon-color, var(--md-sys-color-primary, #6750a4));--_selected-focus-state-layer-color: var(--md-radio-selected-focus-state-layer-color, var(--md-sys-color-primary, #6750a4));--_selected-focus-state-layer-opacity: var(--md-radio-selected-focus-state-layer-opacity, 0.12);--_selected-hover-icon-color: var(--md-radio-selected-hover-icon-color, var(--md-sys-color-primary, #6750a4));--_selected-hover-state-layer-color: var(--md-radio-selected-hover-state-layer-color, var(--md-sys-color-primary, #6750a4));--_selected-hover-state-layer-opacity: var(--md-radio-selected-hover-state-layer-opacity, 0.08);--_selected-icon-color: var(--md-radio-selected-icon-color, var(--md-sys-color-primary, #6750a4));--_selected-pressed-icon-color: var(--md-radio-selected-pressed-icon-color, var(--md-sys-color-primary, #6750a4));--_selected-pressed-state-layer-color: var(--md-radio-selected-pressed-state-layer-color, var(--md-sys-color-on-surface, #1c1b1f));--_selected-pressed-state-layer-opacity: var(--md-radio-selected-pressed-state-layer-opacity, 0.12);--_state-layer-size: var(--md-radio-state-layer-size, 40px);--_unselected-focus-icon-color: var(--md-radio-unselected-focus-icon-color, var(--md-sys-color-on-surface, #1c1b1f));--_unselected-focus-state-layer-color: var(--md-radio-unselected-focus-state-layer-color, var(--md-sys-color-on-surface, #1c1b1f));--_unselected-focus-state-layer-opacity: var(--md-radio-unselected-focus-state-layer-opacity, 0.12);--_unselected-hover-icon-color: var(--md-radio-unselected-hover-icon-color, var(--md-sys-color-on-surface, #1c1b1f));--_unselected-hover-state-layer-color: var(--md-radio-unselected-hover-state-layer-color, var(--md-sys-color-on-surface, #1c1b1f));--_unselected-hover-state-layer-opacity: var(--md-radio-unselected-hover-state-layer-opacity, 0.08);--_unselected-icon-color: var(--md-radio-unselected-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_unselected-pressed-icon-color: var(--md-radio-unselected-pressed-icon-color, var(--md-sys-color-on-surface, #1c1b1f));--_unselected-pressed-state-layer-color: var(--md-radio-unselected-pressed-state-layer-color, var(--md-sys-color-primary, #6750a4));--_unselected-pressed-state-layer-opacity: var(--md-radio-unselected-pressed-state-layer-opacity, 0.12);--md-ripple-focus-state-layer-color:var(--_unselected-focus-state-layer-color);--md-ripple-focus-state-layer-opacity:var(--_unselected-focus-state-layer-opacity);--md-ripple-hover-state-layer-color:var(--_unselected-hover-state-layer-color);--md-ripple-hover-state-layer-opacity:var(--_unselected-hover-state-layer-opacity);--md-ripple-pressed-state-layer-color:var(--_unselected-pressed-state-layer-color);--md-ripple-pressed-state-layer-opacity:var(--_unselected-pressed-state-layer-opacity);--md-focus-ring-offset-vertical:-2px;--md-focus-ring-offset-horizontal:-2px;display:inline-flex;height:48px;position:relative;vertical-align:top;width:48px;-webkit-tap-highlight-color:rgba(0,0,0,0)}:host([checked]){--md-ripple-focus-state-layer-color:var(--_selected-focus-state-layer-color);--md-ripple-focus-state-layer-opacity:var(--_selected-focus-state-layer-opacity);--md-ripple-hover-state-layer-color:var(--_selected-hover-state-layer-color);--md-ripple-hover-state-layer-opacity:var(--_selected-hover-state-layer-opacity);--md-ripple-pressed-state-layer-color:var(--_selected-pressed-state-layer-color);--md-ripple-pressed-state-layer-opacity:var(--_selected-pressed-state-layer-opacity)}input,md-ripple,.icon{inset:0;margin:auto;position:absolute}input{appearance:none;outline:none}md-ripple{height:var(--_state-layer-size);width:var(--_state-layer-size)}.icon{fill:var(--_unselected-icon-color);height:var(--_icon-size);width:var(--_icon-size)}.outer.circle{transition:fill 50ms linear}.inner.circle{opacity:0;transform-origin:center;transition:opacity 50ms linear}:host([checked]) .icon{fill:var(--_selected-icon-color)}:host([checked]) .inner.circle{animation:inner-circle-grow 300ms cubic-bezier(0.05, 0.7, 0.1, 1);opacity:1}@keyframes inner-circle-grow{from{transform:scale(0)}to{transform:scale(1)}}:host([disabled]) .circle{animation-duration:0s;transition-duration:0s}:host(:hover) .icon{fill:var(--_unselected-hover-icon-color)}:host(:focus-within) .icon{fill:var(--_unselected-focus-icon-color)}:host(:active) .icon{fill:var(--_unselected-pressed-icon-color)}:host([disabled]) .icon{fill:var(--_disabled-unselected-icon-color);opacity:var(--_disabled-unselected-icon-opacity)}:host([checked]:hover) .icon{fill:var(--_selected-hover-icon-color)}:host([checked]:focus-within) .icon{fill:var(--_selected-focus-icon-color)}:host([checked]:active) .icon{fill:var(--_selected-pressed-icon-color)}:host([checked][disabled]) .icon{fill:var(--_disabled-selected-icon-color);opacity:var(--_disabled-selected-icon-opacity)}/*# sourceMappingURL=radio-styles.css.map */
7
+ export const styles = css `:host{--_disabled-selected-icon-color: var(--md-radio-disabled-selected-icon-color, var(--md-sys-color-on-surface, #1c1b1f));--_disabled-selected-icon-opacity: var(--md-radio-disabled-selected-icon-opacity, 0.38);--_disabled-unselected-icon-color: var(--md-radio-disabled-unselected-icon-color, var(--md-sys-color-on-surface, #1c1b1f));--_disabled-unselected-icon-opacity: var(--md-radio-disabled-unselected-icon-opacity, 0.38);--_icon-size: var(--md-radio-icon-size, 20px);--_selected-focus-icon-color: var(--md-radio-selected-focus-icon-color, var(--md-sys-color-primary, #6750a4));--_selected-focus-state-layer-color: var(--md-radio-selected-focus-state-layer-color, var(--md-sys-color-primary, #6750a4));--_selected-focus-state-layer-opacity: var(--md-radio-selected-focus-state-layer-opacity, 0.12);--_selected-hover-icon-color: var(--md-radio-selected-hover-icon-color, var(--md-sys-color-primary, #6750a4));--_selected-hover-state-layer-color: var(--md-radio-selected-hover-state-layer-color, var(--md-sys-color-primary, #6750a4));--_selected-hover-state-layer-opacity: var(--md-radio-selected-hover-state-layer-opacity, 0.08);--_selected-icon-color: var(--md-radio-selected-icon-color, var(--md-sys-color-primary, #6750a4));--_selected-pressed-icon-color: var(--md-radio-selected-pressed-icon-color, var(--md-sys-color-primary, #6750a4));--_selected-pressed-state-layer-color: var(--md-radio-selected-pressed-state-layer-color, var(--md-sys-color-on-surface, #1c1b1f));--_selected-pressed-state-layer-opacity: var(--md-radio-selected-pressed-state-layer-opacity, 0.12);--_state-layer-size: var(--md-radio-state-layer-size, 40px);--_unselected-focus-icon-color: var(--md-radio-unselected-focus-icon-color, var(--md-sys-color-on-surface, #1c1b1f));--_unselected-focus-state-layer-color: var(--md-radio-unselected-focus-state-layer-color, var(--md-sys-color-on-surface, #1c1b1f));--_unselected-focus-state-layer-opacity: var(--md-radio-unselected-focus-state-layer-opacity, 0.12);--_unselected-hover-icon-color: var(--md-radio-unselected-hover-icon-color, var(--md-sys-color-on-surface, #1c1b1f));--_unselected-hover-state-layer-color: var(--md-radio-unselected-hover-state-layer-color, var(--md-sys-color-on-surface, #1c1b1f));--_unselected-hover-state-layer-opacity: var(--md-radio-unselected-hover-state-layer-opacity, 0.08);--_unselected-icon-color: var(--md-radio-unselected-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_unselected-pressed-icon-color: var(--md-radio-unselected-pressed-icon-color, var(--md-sys-color-on-surface, #1c1b1f));--_unselected-pressed-state-layer-color: var(--md-radio-unselected-pressed-state-layer-color, var(--md-sys-color-primary, #6750a4));--_unselected-pressed-state-layer-opacity: var(--md-radio-unselected-pressed-state-layer-opacity, 0.12);--md-ripple-focus-color:var(--_unselected-focus-state-layer-color);--md-ripple-focus-opacity:var(--_unselected-focus-state-layer-opacity);--md-ripple-hover-color:var(--_unselected-hover-state-layer-color);--md-ripple-hover-opacity:var(--_unselected-hover-state-layer-opacity);--md-ripple-pressed-color:var(--_unselected-pressed-state-layer-color);--md-ripple-pressed-opacity:var(--_unselected-pressed-state-layer-opacity);--md-focus-ring-offset-vertical:-2px;--md-focus-ring-offset-horizontal:-2px;display:inline-flex;height:48px;position:relative;vertical-align:top;width:48px;-webkit-tap-highlight-color:rgba(0,0,0,0)}:host([checked]){--md-ripple-focus-color:var(--_selected-focus-state-layer-color);--md-ripple-focus-opacity:var(--_selected-focus-state-layer-opacity);--md-ripple-hover-color:var(--_selected-hover-state-layer-color);--md-ripple-hover-opacity:var(--_selected-hover-state-layer-opacity);--md-ripple-pressed-color:var(--_selected-pressed-state-layer-color);--md-ripple-pressed-opacity:var(--_selected-pressed-state-layer-opacity)}input,md-ripple,.icon{inset:0;margin:auto;position:absolute}input{appearance:none;outline:none}md-ripple{height:var(--_state-layer-size);width:var(--_state-layer-size)}.icon{fill:var(--_unselected-icon-color);height:var(--_icon-size);width:var(--_icon-size)}.outer.circle{transition:fill 50ms linear}.inner.circle{opacity:0;transform-origin:center;transition:opacity 50ms linear}:host([checked]) .icon{fill:var(--_selected-icon-color)}:host([checked]) .inner.circle{animation:inner-circle-grow 300ms cubic-bezier(0.05, 0.7, 0.1, 1);opacity:1}@keyframes inner-circle-grow{from{transform:scale(0)}to{transform:scale(1)}}:host([disabled]) .circle{animation-duration:0s;transition-duration:0s}:host(:hover) .icon{fill:var(--_unselected-hover-icon-color)}:host(:focus-within) .icon{fill:var(--_unselected-focus-icon-color)}:host(:active) .icon{fill:var(--_unselected-pressed-icon-color)}:host([disabled]) .icon{fill:var(--_disabled-unselected-icon-color);opacity:var(--_disabled-unselected-icon-opacity)}:host([checked]:hover) .icon{fill:var(--_selected-hover-icon-color)}:host([checked]:focus-within) .icon{fill:var(--_selected-focus-icon-color)}:host([checked]:active) .icon{fill:var(--_selected-pressed-icon-color)}:host([checked][disabled]) .icon{fill:var(--_disabled-selected-icon-color);opacity:var(--_disabled-selected-icon-opacity)}/*# sourceMappingURL=radio-styles.css.map */
8
8
  `;
9
9
  //# sourceMappingURL=radio-styles.css.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"radio-styles.css.js","sourceRoot":"","sources":["radio-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{--_disabled-selected-icon-color: var(--md-radio-disabled-selected-icon-color, var(--md-sys-color-on-surface, #1c1b1f));--_disabled-selected-icon-opacity: var(--md-radio-disabled-selected-icon-opacity, 0.38);--_disabled-unselected-icon-color: var(--md-radio-disabled-unselected-icon-color, var(--md-sys-color-on-surface, #1c1b1f));--_disabled-unselected-icon-opacity: var(--md-radio-disabled-unselected-icon-opacity, 0.38);--_icon-size: var(--md-radio-icon-size, 20px);--_selected-focus-icon-color: var(--md-radio-selected-focus-icon-color, var(--md-sys-color-primary, #6750a4));--_selected-focus-state-layer-color: var(--md-radio-selected-focus-state-layer-color, var(--md-sys-color-primary, #6750a4));--_selected-focus-state-layer-opacity: var(--md-radio-selected-focus-state-layer-opacity, 0.12);--_selected-hover-icon-color: var(--md-radio-selected-hover-icon-color, var(--md-sys-color-primary, #6750a4));--_selected-hover-state-layer-color: var(--md-radio-selected-hover-state-layer-color, var(--md-sys-color-primary, #6750a4));--_selected-hover-state-layer-opacity: var(--md-radio-selected-hover-state-layer-opacity, 0.08);--_selected-icon-color: var(--md-radio-selected-icon-color, var(--md-sys-color-primary, #6750a4));--_selected-pressed-icon-color: var(--md-radio-selected-pressed-icon-color, var(--md-sys-color-primary, #6750a4));--_selected-pressed-state-layer-color: var(--md-radio-selected-pressed-state-layer-color, var(--md-sys-color-on-surface, #1c1b1f));--_selected-pressed-state-layer-opacity: var(--md-radio-selected-pressed-state-layer-opacity, 0.12);--_state-layer-size: var(--md-radio-state-layer-size, 40px);--_unselected-focus-icon-color: var(--md-radio-unselected-focus-icon-color, var(--md-sys-color-on-surface, #1c1b1f));--_unselected-focus-state-layer-color: var(--md-radio-unselected-focus-state-layer-color, var(--md-sys-color-on-surface, #1c1b1f));--_unselected-focus-state-layer-opacity: var(--md-radio-unselected-focus-state-layer-opacity, 0.12);--_unselected-hover-icon-color: var(--md-radio-unselected-hover-icon-color, var(--md-sys-color-on-surface, #1c1b1f));--_unselected-hover-state-layer-color: var(--md-radio-unselected-hover-state-layer-color, var(--md-sys-color-on-surface, #1c1b1f));--_unselected-hover-state-layer-opacity: var(--md-radio-unselected-hover-state-layer-opacity, 0.08);--_unselected-icon-color: var(--md-radio-unselected-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_unselected-pressed-icon-color: var(--md-radio-unselected-pressed-icon-color, var(--md-sys-color-on-surface, #1c1b1f));--_unselected-pressed-state-layer-color: var(--md-radio-unselected-pressed-state-layer-color, var(--md-sys-color-primary, #6750a4));--_unselected-pressed-state-layer-opacity: var(--md-radio-unselected-pressed-state-layer-opacity, 0.12);--md-ripple-focus-state-layer-color:var(--_unselected-focus-state-layer-color);--md-ripple-focus-state-layer-opacity:var(--_unselected-focus-state-layer-opacity);--md-ripple-hover-state-layer-color:var(--_unselected-hover-state-layer-color);--md-ripple-hover-state-layer-opacity:var(--_unselected-hover-state-layer-opacity);--md-ripple-pressed-state-layer-color:var(--_unselected-pressed-state-layer-color);--md-ripple-pressed-state-layer-opacity:var(--_unselected-pressed-state-layer-opacity);--md-focus-ring-offset-vertical:-2px;--md-focus-ring-offset-horizontal:-2px;display:inline-flex;height:48px;position:relative;vertical-align:top;width:48px;-webkit-tap-highlight-color:rgba(0,0,0,0)}:host([checked]){--md-ripple-focus-state-layer-color:var(--_selected-focus-state-layer-color);--md-ripple-focus-state-layer-opacity:var(--_selected-focus-state-layer-opacity);--md-ripple-hover-state-layer-color:var(--_selected-hover-state-layer-color);--md-ripple-hover-state-layer-opacity:var(--_selected-hover-state-layer-opacity);--md-ripple-pressed-state-layer-color:var(--_selected-pressed-state-layer-color);--md-ripple-pressed-state-layer-opacity:var(--_selected-pressed-state-layer-opacity)}input,md-ripple,.icon{inset:0;margin:auto;position:absolute}input{appearance:none;outline:none}md-ripple{height:var(--_state-layer-size);width:var(--_state-layer-size)}.icon{fill:var(--_unselected-icon-color);height:var(--_icon-size);width:var(--_icon-size)}.outer.circle{transition:fill 50ms linear}.inner.circle{opacity:0;transform-origin:center;transition:opacity 50ms linear}:host([checked]) .icon{fill:var(--_selected-icon-color)}:host([checked]) .inner.circle{animation:inner-circle-grow 300ms cubic-bezier(0.05, 0.7, 0.1, 1);opacity:1}@keyframes inner-circle-grow{from{transform:scale(0)}to{transform:scale(1)}}:host([disabled]) .circle{animation-duration:0s;transition-duration:0s}:host(:hover) .icon{fill:var(--_unselected-hover-icon-color)}:host(:focus-within) .icon{fill:var(--_unselected-focus-icon-color)}:host(:active) .icon{fill:var(--_unselected-pressed-icon-color)}:host([disabled]) .icon{fill:var(--_disabled-unselected-icon-color);opacity:var(--_disabled-unselected-icon-opacity)}:host([checked]:hover) .icon{fill:var(--_selected-hover-icon-color)}:host([checked]:focus-within) .icon{fill:var(--_selected-focus-icon-color)}:host([checked]:active) .icon{fill:var(--_selected-pressed-icon-color)}:host([checked][disabled]) .icon{fill:var(--_disabled-selected-icon-color);opacity:var(--_disabled-selected-icon-opacity)}/*# sourceMappingURL=radio-styles.css.map */\n`;\n "]}
1
+ {"version":3,"file":"radio-styles.css.js","sourceRoot":"","sources":["radio-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{--_disabled-selected-icon-color: var(--md-radio-disabled-selected-icon-color, var(--md-sys-color-on-surface, #1c1b1f));--_disabled-selected-icon-opacity: var(--md-radio-disabled-selected-icon-opacity, 0.38);--_disabled-unselected-icon-color: var(--md-radio-disabled-unselected-icon-color, var(--md-sys-color-on-surface, #1c1b1f));--_disabled-unselected-icon-opacity: var(--md-radio-disabled-unselected-icon-opacity, 0.38);--_icon-size: var(--md-radio-icon-size, 20px);--_selected-focus-icon-color: var(--md-radio-selected-focus-icon-color, var(--md-sys-color-primary, #6750a4));--_selected-focus-state-layer-color: var(--md-radio-selected-focus-state-layer-color, var(--md-sys-color-primary, #6750a4));--_selected-focus-state-layer-opacity: var(--md-radio-selected-focus-state-layer-opacity, 0.12);--_selected-hover-icon-color: var(--md-radio-selected-hover-icon-color, var(--md-sys-color-primary, #6750a4));--_selected-hover-state-layer-color: var(--md-radio-selected-hover-state-layer-color, var(--md-sys-color-primary, #6750a4));--_selected-hover-state-layer-opacity: var(--md-radio-selected-hover-state-layer-opacity, 0.08);--_selected-icon-color: var(--md-radio-selected-icon-color, var(--md-sys-color-primary, #6750a4));--_selected-pressed-icon-color: var(--md-radio-selected-pressed-icon-color, var(--md-sys-color-primary, #6750a4));--_selected-pressed-state-layer-color: var(--md-radio-selected-pressed-state-layer-color, var(--md-sys-color-on-surface, #1c1b1f));--_selected-pressed-state-layer-opacity: var(--md-radio-selected-pressed-state-layer-opacity, 0.12);--_state-layer-size: var(--md-radio-state-layer-size, 40px);--_unselected-focus-icon-color: var(--md-radio-unselected-focus-icon-color, var(--md-sys-color-on-surface, #1c1b1f));--_unselected-focus-state-layer-color: var(--md-radio-unselected-focus-state-layer-color, var(--md-sys-color-on-surface, #1c1b1f));--_unselected-focus-state-layer-opacity: var(--md-radio-unselected-focus-state-layer-opacity, 0.12);--_unselected-hover-icon-color: var(--md-radio-unselected-hover-icon-color, var(--md-sys-color-on-surface, #1c1b1f));--_unselected-hover-state-layer-color: var(--md-radio-unselected-hover-state-layer-color, var(--md-sys-color-on-surface, #1c1b1f));--_unselected-hover-state-layer-opacity: var(--md-radio-unselected-hover-state-layer-opacity, 0.08);--_unselected-icon-color: var(--md-radio-unselected-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_unselected-pressed-icon-color: var(--md-radio-unselected-pressed-icon-color, var(--md-sys-color-on-surface, #1c1b1f));--_unselected-pressed-state-layer-color: var(--md-radio-unselected-pressed-state-layer-color, var(--md-sys-color-primary, #6750a4));--_unselected-pressed-state-layer-opacity: var(--md-radio-unselected-pressed-state-layer-opacity, 0.12);--md-ripple-focus-color:var(--_unselected-focus-state-layer-color);--md-ripple-focus-opacity:var(--_unselected-focus-state-layer-opacity);--md-ripple-hover-color:var(--_unselected-hover-state-layer-color);--md-ripple-hover-opacity:var(--_unselected-hover-state-layer-opacity);--md-ripple-pressed-color:var(--_unselected-pressed-state-layer-color);--md-ripple-pressed-opacity:var(--_unselected-pressed-state-layer-opacity);--md-focus-ring-offset-vertical:-2px;--md-focus-ring-offset-horizontal:-2px;display:inline-flex;height:48px;position:relative;vertical-align:top;width:48px;-webkit-tap-highlight-color:rgba(0,0,0,0)}:host([checked]){--md-ripple-focus-color:var(--_selected-focus-state-layer-color);--md-ripple-focus-opacity:var(--_selected-focus-state-layer-opacity);--md-ripple-hover-color:var(--_selected-hover-state-layer-color);--md-ripple-hover-opacity:var(--_selected-hover-state-layer-opacity);--md-ripple-pressed-color:var(--_selected-pressed-state-layer-color);--md-ripple-pressed-opacity:var(--_selected-pressed-state-layer-opacity)}input,md-ripple,.icon{inset:0;margin:auto;position:absolute}input{appearance:none;outline:none}md-ripple{height:var(--_state-layer-size);width:var(--_state-layer-size)}.icon{fill:var(--_unselected-icon-color);height:var(--_icon-size);width:var(--_icon-size)}.outer.circle{transition:fill 50ms linear}.inner.circle{opacity:0;transform-origin:center;transition:opacity 50ms linear}:host([checked]) .icon{fill:var(--_selected-icon-color)}:host([checked]) .inner.circle{animation:inner-circle-grow 300ms cubic-bezier(0.05, 0.7, 0.1, 1);opacity:1}@keyframes inner-circle-grow{from{transform:scale(0)}to{transform:scale(1)}}:host([disabled]) .circle{animation-duration:0s;transition-duration:0s}:host(:hover) .icon{fill:var(--_unselected-hover-icon-color)}:host(:focus-within) .icon{fill:var(--_unselected-focus-icon-color)}:host(:active) .icon{fill:var(--_unselected-pressed-icon-color)}:host([disabled]) .icon{fill:var(--_disabled-unselected-icon-color);opacity:var(--_disabled-unselected-icon-opacity)}:host([checked]:hover) .icon{fill:var(--_selected-hover-icon-color)}:host([checked]:focus-within) .icon{fill:var(--_selected-focus-icon-color)}:host([checked]:active) .icon{fill:var(--_selected-pressed-icon-color)}:host([checked][disabled]) .icon{fill:var(--_disabled-selected-icon-color);opacity:var(--_disabled-selected-icon-opacity)}/*# sourceMappingURL=radio-styles.css.map */\n`;\n "]}
@@ -3,6 +3,8 @@
3
3
  // SPDX-License-Identifier: Apache-2.0
4
4
  //
5
5
 
6
+ // go/keep-sorted start
6
7
  @use './radio';
8
+ // go/keep-sorted end
7
9
 
8
10
  @include radio.styles;
@@ -21,6 +21,27 @@ const CHECKED = Symbol('checked');
21
21
  * A radio component.
22
22
  */
23
23
  export class Radio extends LitElement {
24
+ /**
25
+ * Whether or not the radio is selected.
26
+ */
27
+ get checked() {
28
+ return this[CHECKED];
29
+ }
30
+ set checked(checked) {
31
+ const wasChecked = this.checked;
32
+ if (wasChecked === checked) {
33
+ return;
34
+ }
35
+ this[CHECKED] = checked;
36
+ this.requestUpdate('checked', wasChecked);
37
+ this.selectionController.handleCheckedChange();
38
+ }
39
+ /**
40
+ * The associated form element with which this element's value will submit.
41
+ */
42
+ get form() {
43
+ return this.closest('form');
44
+ }
24
45
  constructor() {
25
46
  super();
26
47
  this[_a] = false;
@@ -56,27 +77,6 @@ export class Radio extends LitElement {
56
77
  dispatchActivationClick(this.input);
57
78
  });
58
79
  }
59
- /**
60
- * Whether or not the radio is selected.
61
- */
62
- get checked() {
63
- return this[CHECKED];
64
- }
65
- set checked(checked) {
66
- const wasChecked = this.checked;
67
- if (wasChecked === checked) {
68
- return;
69
- }
70
- this[CHECKED] = checked;
71
- this.requestUpdate('checked', wasChecked);
72
- this.selectionController.handleCheckedChange();
73
- }
74
- /**
75
- * The associated form element with which this element's value will submit.
76
- */
77
- get form() {
78
- return this.closest('form');
79
- }
80
80
  [(_a = CHECKED, getFormValue)]() {
81
81
  return this.checked ? this.value : null;
82
82
  }
@@ -1 +1 @@
1
- {"version":3,"file":"radio.js","sourceRoot":"","sources":["radio.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport '../../focus/focus-ring.js';\nimport '../../ripple/ripple.js';\n\nimport {html, LitElement, nothing, TemplateResult} from 'lit';\nimport {property, query, queryAsync, state} from 'lit/decorators.js';\nimport {when} from 'lit/directives/when.js';\n\nimport {dispatchActivationClick, isActivationClick, redispatchEvent} from '../../controller/events.js';\nimport {FormController, getFormValue} from '../../controller/form-controller.js';\nimport {ariaProperty} from '../../decorators/aria-property.js';\nimport {pointerPress, shouldShowStrongFocus} from '../../focus/strong-focus.js';\nimport {ripple} from '../../ripple/directive.js';\nimport {MdRipple} from '../../ripple/ripple.js';\n\nimport {SingleSelectionController} from './single-selection-controller.js';\n\nconst CHECKED = Symbol('checked');\n\n/**\n * A radio component.\n */\nexport class Radio extends LitElement {\n static override shadowRootOptions:\n ShadowRootInit = {...LitElement.shadowRootOptions, delegatesFocus: true};\n\n /**\n * @nocollapse\n */\n static formAssociated = true;\n\n /**\n * Whether or not the radio is selected.\n */\n @property({type: Boolean, reflect: true})\n get checked() {\n return this[CHECKED];\n }\n set checked(checked: boolean) {\n const wasChecked = this.checked;\n if (wasChecked === checked) {\n return;\n }\n\n this[CHECKED] = checked;\n this.requestUpdate('checked', wasChecked);\n this.selectionController.handleCheckedChange();\n }\n\n [CHECKED] = false;\n\n /**\n * Whether or not the radio is disabled.\n */\n @property({type: Boolean, reflect: true}) disabled = false;\n\n /**\n * The element value to use in form submission when checked.\n */\n @property({type: String}) value = 'on';\n\n /**\n * The HTML name to use in form submission.\n */\n @property({type: String, reflect: true}) name = '';\n\n @ariaProperty // tslint:disable-line:no-new-decorators\n @property({attribute: 'data-aria-label', noAccessor: true})\n override ariaLabel!: string;\n\n /**\n * The associated form element with which this element's value will submit.\n */\n get form() {\n return this.closest('form');\n }\n\n @query('input') private readonly input!: HTMLInputElement|null;\n @queryAsync('md-ripple') private readonly ripple!: Promise<MdRipple|null>;\n private readonly selectionController = new SingleSelectionController(this);\n @state() private showFocusRing = false;\n @state() private showRipple = false;\n\n constructor() {\n super();\n this.addController(new FormController(this));\n this.addController(this.selectionController);\n this.addEventListener('click', (event: Event) => {\n if (!isActivationClick(event)) {\n return;\n }\n this.focus();\n dispatchActivationClick(this.input!);\n });\n }\n\n [getFormValue]() {\n return this.checked ? this.value : null;\n }\n\n override focus() {\n this.input?.focus();\n }\n\n protected override render(): TemplateResult {\n return html`\n ${when(this.showRipple, this.renderRipple)}\n ${this.renderFocusRing()}\n <svg class=\"icon\" viewBox=\"0 0 20 20\">\n <mask id=\"cutout\">\n <rect width=\"100%\" height=\"100%\" fill=\"white\" />\n <circle cx=\"10\" cy=\"10\" r=\"8\" fill=\"black\" />\n </mask>\n <circle class=\"outer circle\" cx=\"10\" cy=\"10\" r=\"10\" mask=\"url(#cutout)\" />\n <circle class=\"inner circle\" cx=\"10\" cy=\"10\" r=\"5\" />\n </svg>\n <input\n type=\"radio\"\n name=${this.name}\n aria-label=${this.ariaLabel || nothing}\n .checked=${this.checked}\n .value=${this.value}\n ?disabled=${this.disabled}\n @change=${this.handleChange}\n @focus=${this.handleFocus}\n @blur=${this.handleBlur}\n @pointerdown=${this.handlePointerDown}\n ${ripple(this.getRipple)}\n >\n `;\n }\n\n private handleBlur() {\n this.showFocusRing = false;\n }\n\n private handleFocus() {\n this.showFocusRing = shouldShowStrongFocus();\n }\n\n private handleChange(event: Event) {\n if (this.disabled) {\n return;\n }\n\n // Per spec, the change event on a radio input always represents checked.\n this.checked = true;\n redispatchEvent(this, event);\n }\n\n private handlePointerDown() {\n pointerPress();\n this.showFocusRing = shouldShowStrongFocus();\n }\n\n private readonly getRipple = () => {\n this.showRipple = true;\n return this.ripple;\n };\n\n private readonly renderRipple = () => {\n return html`<md-ripple unbounded ?disabled=${this.disabled}></md-ripple>`;\n };\n\n private renderFocusRing(): TemplateResult {\n return html`<md-focus-ring .visible=${this.showFocusRing}></md-focus-ring>`;\n }\n}\n"]}
1
+ {"version":3,"file":"radio.js","sourceRoot":"","sources":["radio.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport '../../focus/focus-ring.js';\nimport '../../ripple/ripple.js';\n\nimport {html, LitElement, nothing, TemplateResult} from 'lit';\nimport {property, query, queryAsync, state} from 'lit/decorators.js';\nimport {when} from 'lit/directives/when.js';\n\nimport {dispatchActivationClick, isActivationClick, redispatchEvent} from '../../controller/events.js';\nimport {FormController, getFormValue} from '../../controller/form-controller.js';\nimport {ariaProperty} from '../../decorators/aria-property.js';\nimport {pointerPress, shouldShowStrongFocus} from '../../focus/strong-focus.js';\nimport {ripple} from '../../ripple/directive.js';\nimport {MdRipple} from '../../ripple/ripple.js';\n\nimport {SingleSelectionController} from './single-selection-controller.js';\n\nconst CHECKED = Symbol('checked');\n\n/**\n * A radio component.\n */\nexport class Radio extends LitElement {\n static override shadowRootOptions:\n ShadowRootInit = {...LitElement.shadowRootOptions, delegatesFocus: true};\n\n /**\n * @nocollapse\n */\n static formAssociated = true;\n\n /**\n * Whether or not the radio is selected.\n */\n @property({type: Boolean, reflect: true})\n get checked() {\n return this[CHECKED];\n }\n set checked(checked: boolean) {\n const wasChecked = this.checked;\n if (wasChecked === checked) {\n return;\n }\n\n this[CHECKED] = checked;\n this.requestUpdate('checked', wasChecked);\n this.selectionController.handleCheckedChange();\n }\n\n [CHECKED] = false;\n\n /**\n * Whether or not the radio is disabled.\n */\n @property({type: Boolean, reflect: true}) disabled = false;\n\n /**\n * The element value to use in form submission when checked.\n */\n @property({type: String}) value = 'on';\n\n /**\n * The HTML name to use in form submission.\n */\n @property({type: String, reflect: true}) name = '';\n\n @ariaProperty // tslint:disable-line:no-new-decorators\n @property({attribute: 'data-aria-label', noAccessor: true})\n override ariaLabel!: string;\n\n /**\n * The associated form element with which this element's value will submit.\n */\n get form() {\n return this.closest('form');\n }\n\n @query('input') private readonly input!: HTMLInputElement|null;\n @queryAsync('md-ripple') private readonly ripple!: Promise<MdRipple|null>;\n private readonly selectionController = new SingleSelectionController(this);\n @state() private showFocusRing = false;\n @state() private showRipple = false;\n\n constructor() {\n super();\n this.addController(new FormController(this));\n this.addController(this.selectionController);\n this.addEventListener('click', (event: Event) => {\n if (!isActivationClick(event)) {\n return;\n }\n this.focus();\n dispatchActivationClick(this.input!);\n });\n }\n\n [getFormValue]() {\n return this.checked ? this.value : null;\n }\n\n override focus() {\n this.input?.focus();\n }\n\n protected override render(): TemplateResult {\n return html`\n ${when(this.showRipple, this.renderRipple)}\n ${this.renderFocusRing()}\n <svg class=\"icon\" viewBox=\"0 0 20 20\">\n <mask id=\"cutout\">\n <rect width=\"100%\" height=\"100%\" fill=\"white\" />\n <circle cx=\"10\" cy=\"10\" r=\"8\" fill=\"black\" />\n </mask>\n <circle class=\"outer circle\" cx=\"10\" cy=\"10\" r=\"10\" mask=\"url(#cutout)\" />\n <circle class=\"inner circle\" cx=\"10\" cy=\"10\" r=\"5\" />\n </svg>\n <input\n type=\"radio\"\n name=${this.name}\n aria-label=${this.ariaLabel || nothing}\n .checked=${this.checked}\n .value=${this.value}\n ?disabled=${this.disabled}\n @change=${this.handleChange}\n @focus=${this.handleFocus}\n @blur=${this.handleBlur}\n @pointerdown=${this.handlePointerDown}\n ${ripple(this.getRipple)}\n >\n `;\n }\n\n private handleBlur() {\n this.showFocusRing = false;\n }\n\n private handleFocus() {\n this.showFocusRing = shouldShowStrongFocus();\n }\n\n private handleChange(event: Event) {\n if (this.disabled) {\n return;\n }\n\n // Per spec, the change event on a radio input always represents checked.\n this.checked = true;\n redispatchEvent(this, event);\n }\n\n private handlePointerDown() {\n pointerPress();\n this.showFocusRing = shouldShowStrongFocus();\n }\n\n private readonly getRipple = () => {\n this.showRipple = true;\n return this.ripple;\n };\n\n private readonly renderRipple = () => {\n return html`<md-ripple unbounded ?disabled=${this.disabled}></md-ripple>`;\n };\n\n private renderFocusRing(): TemplateResult {\n return html`<md-focus-ring .visible=${this.showFocusRing}></md-focus-ring>`;\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"radio.js","sourceRoot":"","sources":["radio.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;AAEH,OAAO,EAAC,aAAa,EAAC,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAC,MAAM,IAAI,kBAAkB,EAAC,MAAM,mCAAmC,CAAC;AAC/E,OAAO,EAAC,KAAK,EAAC,MAAM,gBAAgB,CAAC;AACrC,OAAO,EAAC,MAAM,EAAC,MAAM,2BAA2B,CAAC;AAQjD;;;;;;;;;;;;;;;GAeG;AAEH,IAAa,OAAO,GAApB,MAAa,OAAQ,SAAQ,KAAK;CAEjC,CAAA;AADiB,cAAM,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAE,CAAA;AAD3C,OAAO;IADnB,aAAa,CAAC,UAAU,CAAC;GACb,OAAO,CAEnB;SAFY,OAAO","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 {styles as forcedColorsStyles} from './lib/forced-colors-styles.css.js';\nimport {Radio} from './lib/radio.js';\nimport {styles} from './lib/radio-styles.css.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'md-radio': MdRadio;\n }\n}\n\n/**\n * @summary Radio buttons allow users to select one option from a set.\n *\n * @description\n * Radio buttons are the recommended way to allow users to make a single\n * selection from a list of options.\n *\n * Only one radio button can be selected at a time.\n *\n * Use radio buttons to:\n * - Select a single option from a set\n * - Expose all available options\n *\n * @final\n * @suppress {visibility}\n */\n@customElement('md-radio')\nexport class MdRadio extends Radio {\n static override styles = [styles, forcedColorsStyles];\n}\n"]}
1
+ {"version":3,"file":"radio.js","sourceRoot":"","sources":["radio.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;AAEH,OAAO,EAAC,aAAa,EAAC,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAC,MAAM,IAAI,kBAAkB,EAAC,MAAM,mCAAmC,CAAC;AAC/E,OAAO,EAAC,KAAK,EAAC,MAAM,gBAAgB,CAAC;AACrC,OAAO,EAAC,MAAM,EAAC,MAAM,2BAA2B,CAAC;AAQjD;;;;;;;;;;;;;;;GAeG;AAEI,IAAM,OAAO,GAAb,MAAM,OAAQ,SAAQ,KAAK;;AAChB,cAAM,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;AAD3C,OAAO;IADnB,aAAa,CAAC,UAAU,CAAC;GACb,OAAO,CAEnB;SAFY,OAAO","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 {styles as forcedColorsStyles} from './lib/forced-colors-styles.css.js';\nimport {Radio} from './lib/radio.js';\nimport {styles} from './lib/radio-styles.css.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'md-radio': MdRadio;\n }\n}\n\n/**\n * @summary Radio buttons allow users to select one option from a set.\n *\n * @description\n * Radio buttons are the recommended way to allow users to make a single\n * selection from a list of options.\n *\n * Only one radio button can be selected at a time.\n *\n * Use radio buttons to:\n * - Select a single option from a set\n * - Expose all available options\n *\n * @final\n * @suppress {visibility}\n */\n@customElement('md-radio')\nexport class MdRadio extends Radio {\n static override styles = [styles, forcedColorsStyles];\n}\n"]}
@@ -10,46 +10,14 @@ import { Ripple } from './lib/ripple.js';
10
10
  *
11
11
  * Use with `await rippleFunction()`
12
12
  */
13
- declare type RippleFunction = () => Ripple | null | Promise<Ripple | null>;
13
+ type RippleFunction = () => Ripple | null | Promise<Ripple | null>;
14
14
  declare class RippleDirective extends Directive {
15
15
  private rippleGetter;
16
16
  private element?;
17
- private state;
18
- private checkBoundsAfterContextMenu;
19
- private rippleStartEvent;
20
- private touchTimer;
21
- private clickTimer;
22
17
  constructor(partInfo: PartInfo);
23
18
  render(ripple: RippleFunction | Promise<Ripple | null>): symbol;
24
19
  handleEvent(event: Event): Promise<void>;
25
20
  update(part: ElementPart, [ripple]: DirectiveParameters<this>): symbol;
26
- /**
27
- * Returns `true` if
28
- * - the ripple element is enabled
29
- * - the pointer is primary for the input type
30
- * - the pointer is the pointer that started the interaction, or will start
31
- * the interaction
32
- * - the pointer is a touch, or the pointer state has the primary button
33
- * held, or the pointer is hovering
34
- */
35
- private shouldReactToEvent;
36
- private isTouch;
37
- /**
38
- * Check if the event is within the bounds of the element.
39
- *
40
- * This is only needed for the "stuck" contextmenu longpress on Chrome.
41
- */
42
- private inBounds;
43
- private beginPress;
44
- private endPress;
45
- private waitForTouchHold;
46
- private click;
47
- private contextMenu;
48
- private pointerDown;
49
- private pointerUp;
50
- private pointerCancel;
51
- private pointerEnter;
52
- private pointerLeave;
53
21
  }
54
22
  /**
55
23
  * Connects a Ripple element to a node that drives the interaction
@@ -5,65 +5,10 @@
5
5
  */
6
6
  import { noChange } from 'lit';
7
7
  import { Directive, directive, PartType } from 'lit/directive.js';
8
- /**
9
- * Delay reacting to touch so that we do not show the ripple for a swipe or
10
- * scroll interaction.
11
- */
12
- const TOUCH_DELAY_MS = 150;
13
- /**
14
- * Interaction states for the ripple.
15
- *
16
- * On Touch:
17
- * - `INACTIVE -> TOUCH_DELAY -> WAITING_FOR_CLICK -> INACTIVE`
18
- * - `INACTIVE -> TOUCH_DELAY -> HOLDING -> WAITING_FOR_CLICK -> INACTIVE`
19
- *
20
- * On Mouse or Pen:
21
- * - `INACTIVE -> WAITING_FOR_CLICK -> INACTIVE`
22
- */
23
- var State;
24
- (function (State) {
25
- /**
26
- * Initial state of the control, no touch in progress.
27
- *
28
- * Transitions:
29
- * - on touch down: transition to `TOUCH_DELAY`.
30
- * - on mouse down: transition to `WAITING_FOR_CLICK`.
31
- */
32
- State[State["INACTIVE"] = 0] = "INACTIVE";
33
- /**
34
- * Touch down has been received, waiting to determine if it's a swipe or
35
- * scroll.
36
- *
37
- * Transitions:
38
- * - on touch up: beginPress(); transition to `WAITING_FOR_CLICK`.
39
- * - on cancel: transition to `INACTIVE`.
40
- * - after `TOUCH_DELAY_MS`: beginPress(); transition to `HOLDING`.
41
- */
42
- State[State["TOUCH_DELAY"] = 1] = "TOUCH_DELAY";
43
- /**
44
- * A touch has been deemed to be a press
45
- *
46
- * Transitions:
47
- * - on up: transition to `WAITING_FOR_CLICK`.
48
- */
49
- State[State["HOLDING"] = 2] = "HOLDING";
50
- /**
51
- * The user touch has finished, transition into rest state.
52
- *
53
- * Transitions:
54
- * - on click endPress(); transition to `INACTIVE`.
55
- */
56
- State[State["WAITING_FOR_CLICK"] = 3] = "WAITING_FOR_CLICK";
57
- })(State || (State = {}));
58
8
  class RippleDirective extends Directive {
59
9
  constructor(partInfo) {
60
10
  super(partInfo);
61
11
  this.rippleGetter = async () => null;
62
- this.state = State.INACTIVE;
63
- this.checkBoundsAfterContextMenu = false;
64
- this.rippleStartEvent = null;
65
- this.touchTimer = null;
66
- this.clickTimer = null;
67
12
  if (partInfo.type !== PartType.ELEMENT) {
68
13
  throw new Error('The `ripple` directive must be used on an element');
69
14
  }
@@ -80,25 +25,25 @@ class RippleDirective extends Directive {
80
25
  }
81
26
  switch (event.type) {
82
27
  case 'click':
83
- this.click(ripple);
28
+ ripple.handleClick();
84
29
  break;
85
30
  case 'contextmenu':
86
- this.contextMenu(ripple);
31
+ ripple.handleContextmenu();
87
32
  break;
88
33
  case 'pointercancel':
89
- this.pointerCancel(ripple, event);
34
+ ripple.handlePointercancel(event);
90
35
  break;
91
36
  case 'pointerdown':
92
- this.pointerDown(ripple, event);
37
+ await ripple.handlePointerdown(event);
93
38
  break;
94
39
  case 'pointerenter':
95
- this.pointerEnter(ripple, event);
40
+ ripple.handlePointerenter(event);
96
41
  break;
97
42
  case 'pointerleave':
98
- this.pointerLeave(ripple, event);
43
+ ripple.handlePointerleave(event);
99
44
  break;
100
45
  case 'pointerup':
101
- this.pointerUp(ripple, event);
46
+ ripple.handlePointerup(event);
102
47
  break;
103
48
  default:
104
49
  break;
@@ -121,138 +66,6 @@ class RippleDirective extends Directive {
121
66
  this.rippleGetter = typeof ripple === 'function' ? ripple : () => ripple;
122
67
  return noChange;
123
68
  }
124
- /**
125
- * Returns `true` if
126
- * - the ripple element is enabled
127
- * - the pointer is primary for the input type
128
- * - the pointer is the pointer that started the interaction, or will start
129
- * the interaction
130
- * - the pointer is a touch, or the pointer state has the primary button
131
- * held, or the pointer is hovering
132
- */
133
- shouldReactToEvent(ripple, ev, hovering = false) {
134
- const enabled = !ripple.disabled;
135
- const isPrimaryPointer = ev.isPrimary;
136
- const isInteractionPointer = this.rippleStartEvent === null ||
137
- this.rippleStartEvent.pointerId === ev.pointerId;
138
- const isPrimaryButton = ev.buttons === 1;
139
- return enabled && isPrimaryPointer && isInteractionPointer &&
140
- (this.isTouch(ev) || isPrimaryButton || hovering);
141
- }
142
- isTouch({ pointerType }) {
143
- return pointerType === 'touch';
144
- }
145
- /**
146
- * Check if the event is within the bounds of the element.
147
- *
148
- * This is only needed for the "stuck" contextmenu longpress on Chrome.
149
- */
150
- inBounds({ x, y }) {
151
- const { top, left, bottom, right } = this.element.getBoundingClientRect();
152
- return x >= left && x <= right && y >= top && y <= bottom;
153
- }
154
- beginPress(ripple) {
155
- ripple.beginPress(this.rippleStartEvent);
156
- }
157
- endPress(ripple) {
158
- ripple.endPress();
159
- this.state = State.INACTIVE;
160
- this.rippleStartEvent = null;
161
- if (this.touchTimer) {
162
- clearTimeout(this.touchTimer);
163
- this.touchTimer = null;
164
- }
165
- if (this.clickTimer) {
166
- clearTimeout(this.clickTimer);
167
- this.clickTimer = null;
168
- }
169
- }
170
- waitForTouchHold() {
171
- if (this.touchTimer !== null) {
172
- clearTimeout(this.touchTimer);
173
- }
174
- this.state = State.TOUCH_DELAY;
175
- this.touchTimer = setTimeout(async () => {
176
- const ripple = await this.rippleGetter();
177
- if (ripple === null || this.state !== State.TOUCH_DELAY) {
178
- return;
179
- }
180
- this.state = State.HOLDING;
181
- this.beginPress(ripple);
182
- }, TOUCH_DELAY_MS);
183
- }
184
- click(ripple) {
185
- // Click is a MouseEvent in Firefox and Safari, so we cannot use
186
- // `shouldReactToEvent`
187
- if (ripple.disabled) {
188
- return;
189
- }
190
- if (this.state === State.WAITING_FOR_CLICK) {
191
- this.endPress(ripple);
192
- }
193
- else if (this.state === State.INACTIVE) {
194
- // keyboard synthesized click event
195
- this.beginPress(ripple);
196
- this.endPress(ripple);
197
- }
198
- }
199
- contextMenu(ripple) {
200
- if (!ripple.disabled) {
201
- this.checkBoundsAfterContextMenu = true;
202
- this.endPress(ripple);
203
- }
204
- }
205
- pointerDown(ripple, ev) {
206
- if (!this.shouldReactToEvent(ripple, ev)) {
207
- return;
208
- }
209
- this.rippleStartEvent = ev;
210
- if (this.isTouch(ev)) {
211
- // after a longpress contextmenu event, an extra `pointerdown` can be
212
- // dispatched to the pressed element. Check that the down is within
213
- // bounds of the element in this case.
214
- if (this.checkBoundsAfterContextMenu && !this.inBounds(ev)) {
215
- return;
216
- }
217
- this.checkBoundsAfterContextMenu = false;
218
- this.waitForTouchHold();
219
- }
220
- else {
221
- this.state = State.WAITING_FOR_CLICK;
222
- this.beginPress(ripple);
223
- }
224
- }
225
- pointerUp(ripple, ev) {
226
- if (!this.isTouch(ev) || !this.shouldReactToEvent(ripple, ev)) {
227
- return;
228
- }
229
- if (this.state === State.HOLDING) {
230
- this.state = State.WAITING_FOR_CLICK;
231
- }
232
- else if (this.state === State.TOUCH_DELAY) {
233
- this.state = State.WAITING_FOR_CLICK;
234
- this.beginPress(ripple);
235
- }
236
- }
237
- pointerCancel(ripple, ev) {
238
- if (this.shouldReactToEvent(ripple, ev)) {
239
- this.endPress(ripple);
240
- }
241
- }
242
- pointerEnter(ripple, ev) {
243
- if (this.shouldReactToEvent(ripple, ev, true)) {
244
- ripple.beginHover(ev);
245
- }
246
- }
247
- pointerLeave(ripple, ev) {
248
- if (this.shouldReactToEvent(ripple, ev, true)) {
249
- ripple.endHover();
250
- // release a held mouse or pen press that moves outside the element
251
- if (!this.isTouch(ev) && this.state !== State.INACTIVE) {
252
- this.endPress(ripple);
253
- }
254
- }
255
- }
256
69
  }
257
70
  /**
258
71
  * Connects a Ripple element to a node that drives the interaction
@@ -1 +1 @@
1
- {"version":3,"file":"directive.js","sourceRoot":"","sources":["directive.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {noChange} from 'lit';\nimport {Directive, directive, DirectiveParameters, ElementPart, PartInfo, PartType} from 'lit/directive.js';\n\nimport {Ripple} from './lib/ripple.js';\n\n/**\n * Delay reacting to touch so that we do not show the ripple for a swipe or\n * scroll interaction.\n */\nconst TOUCH_DELAY_MS = 150;\n\n/**\n * Interaction states for the ripple.\n *\n * On Touch:\n * - `INACTIVE -> TOUCH_DELAY -> WAITING_FOR_CLICK -> INACTIVE`\n * - `INACTIVE -> TOUCH_DELAY -> HOLDING -> WAITING_FOR_CLICK -> INACTIVE`\n *\n * On Mouse or Pen:\n * - `INACTIVE -> WAITING_FOR_CLICK -> INACTIVE`\n */\nenum State {\n /**\n * Initial state of the control, no touch in progress.\n *\n * Transitions:\n * - on touch down: transition to `TOUCH_DELAY`.\n * - on mouse down: transition to `WAITING_FOR_CLICK`.\n */\n INACTIVE,\n /**\n * Touch down has been received, waiting to determine if it's a swipe or\n * scroll.\n *\n * Transitions:\n * - on touch up: beginPress(); transition to `WAITING_FOR_CLICK`.\n * - on cancel: transition to `INACTIVE`.\n * - after `TOUCH_DELAY_MS`: beginPress(); transition to `HOLDING`.\n */\n TOUCH_DELAY,\n /**\n * A touch has been deemed to be a press\n *\n * Transitions:\n * - on up: transition to `WAITING_FOR_CLICK`.\n */\n HOLDING,\n /**\n * The user touch has finished, transition into rest state.\n *\n * Transitions:\n * - on click endPress(); transition to `INACTIVE`.\n */\n WAITING_FOR_CLICK\n}\n\n/**\n * Normalized ripple accessor type.\n *\n * Use with `await rippleFunction()`\n */\ntype RippleFunction = () => Ripple|null|Promise<Ripple|null>;\n\nclass RippleDirective extends Directive {\n private rippleGetter: RippleFunction = async () => null;\n private element?: HTMLElement;\n private state: State = State.INACTIVE;\n private checkBoundsAfterContextMenu = false;\n private rippleStartEvent: PointerEvent|null = null;\n private touchTimer: number|null = null;\n private clickTimer: number|null = null;\n\n constructor(partInfo: PartInfo) {\n super(partInfo);\n if (partInfo.type !== PartType.ELEMENT) {\n throw new Error('The `ripple` directive must be used on an element');\n }\n }\n\n render(ripple: RippleFunction|Promise<Ripple|null>) {\n return noChange;\n }\n\n // Use EventListenerObject::handleEvent interface to handle events without\n // generating bound event handlers\n async handleEvent(event: Event) {\n const ripple = await this.rippleGetter();\n if (!ripple) {\n return;\n }\n switch (event.type) {\n case 'click':\n this.click(ripple);\n break;\n case 'contextmenu':\n this.contextMenu(ripple);\n break;\n case 'pointercancel':\n this.pointerCancel(ripple, event as PointerEvent);\n break;\n case 'pointerdown':\n this.pointerDown(ripple, event as PointerEvent);\n break;\n case 'pointerenter':\n this.pointerEnter(ripple, event as PointerEvent);\n break;\n case 'pointerleave':\n this.pointerLeave(ripple, event as PointerEvent);\n break;\n case 'pointerup':\n this.pointerUp(ripple, event as PointerEvent);\n break;\n default:\n break;\n }\n }\n\n override update(part: ElementPart, [ripple]: DirectiveParameters<this>) {\n if (!this.element) {\n // NOTE: addEventListener typing needs to be used with HTMLElements or a\n // subclass\n this.element = part.element as HTMLElement;\n this.element.addEventListener('click', this);\n this.element.addEventListener('contextmenu', this);\n this.element.addEventListener('pointercancel', this);\n this.element.addEventListener('pointerdown', this);\n this.element.addEventListener('pointerenter', this);\n this.element.addEventListener('pointerleave', this);\n this.element.addEventListener('pointerup', this);\n }\n // Normalize given ripple accessor\n this.rippleGetter = typeof ripple === 'function' ? ripple : () => ripple;\n return noChange;\n }\n\n /**\n * Returns `true` if\n * - the ripple element is enabled\n * - the pointer is primary for the input type\n * - the pointer is the pointer that started the interaction, or will start\n * the interaction\n * - the pointer is a touch, or the pointer state has the primary button\n * held, or the pointer is hovering\n */\n private shouldReactToEvent(\n ripple: Ripple, ev: PointerEvent, hovering = false) {\n const enabled = !ripple.disabled;\n const isPrimaryPointer = ev.isPrimary;\n const isInteractionPointer = this.rippleStartEvent === null ||\n this.rippleStartEvent.pointerId === ev.pointerId;\n const isPrimaryButton = ev.buttons === 1;\n return enabled && isPrimaryPointer && isInteractionPointer &&\n (this.isTouch(ev) || isPrimaryButton || hovering);\n }\n\n private isTouch({pointerType}: PointerEvent) {\n return pointerType === 'touch';\n }\n\n /**\n * Check if the event is within the bounds of the element.\n *\n * This is only needed for the \"stuck\" contextmenu longpress on Chrome.\n */\n private inBounds({x, y}: PointerEvent) {\n const {top, left, bottom, right} = this.element!.getBoundingClientRect();\n return x >= left && x <= right && y >= top && y <= bottom;\n }\n\n private beginPress(ripple: Ripple) {\n ripple.beginPress(this.rippleStartEvent);\n }\n\n private endPress(ripple: Ripple) {\n ripple.endPress();\n this.state = State.INACTIVE;\n this.rippleStartEvent = null;\n if (this.touchTimer) {\n clearTimeout(this.touchTimer);\n this.touchTimer = null;\n }\n if (this.clickTimer) {\n clearTimeout(this.clickTimer);\n this.clickTimer = null;\n }\n }\n\n private waitForTouchHold() {\n if (this.touchTimer !== null) {\n clearTimeout(this.touchTimer);\n }\n this.state = State.TOUCH_DELAY;\n this.touchTimer = setTimeout(async () => {\n const ripple = await this.rippleGetter();\n if (ripple === null || this.state !== State.TOUCH_DELAY) {\n return;\n }\n this.state = State.HOLDING;\n this.beginPress(ripple);\n }, TOUCH_DELAY_MS);\n }\n\n private click(ripple: Ripple) {\n // Click is a MouseEvent in Firefox and Safari, so we cannot use\n // `shouldReactToEvent`\n if (ripple.disabled) {\n return;\n }\n if (this.state === State.WAITING_FOR_CLICK) {\n this.endPress(ripple);\n } else if (this.state === State.INACTIVE) {\n // keyboard synthesized click event\n this.beginPress(ripple);\n this.endPress(ripple);\n }\n }\n\n private contextMenu(ripple: Ripple) {\n if (!ripple.disabled) {\n this.checkBoundsAfterContextMenu = true;\n this.endPress(ripple);\n }\n }\n\n private pointerDown(ripple: Ripple, ev: PointerEvent) {\n if (!this.shouldReactToEvent(ripple, ev)) {\n return;\n }\n this.rippleStartEvent = ev;\n if (this.isTouch(ev)) {\n // after a longpress contextmenu event, an extra `pointerdown` can be\n // dispatched to the pressed element. Check that the down is within\n // bounds of the element in this case.\n if (this.checkBoundsAfterContextMenu && !this.inBounds(ev)) {\n return;\n }\n this.checkBoundsAfterContextMenu = false;\n this.waitForTouchHold();\n } else {\n this.state = State.WAITING_FOR_CLICK;\n this.beginPress(ripple);\n }\n }\n\n private pointerUp(ripple: Ripple, ev: PointerEvent) {\n if (!this.isTouch(ev) || !this.shouldReactToEvent(ripple, ev)) {\n return;\n }\n if (this.state === State.HOLDING) {\n this.state = State.WAITING_FOR_CLICK;\n } else if (this.state === State.TOUCH_DELAY) {\n this.state = State.WAITING_FOR_CLICK;\n this.beginPress(ripple);\n }\n }\n\n private pointerCancel(ripple: Ripple, ev: PointerEvent) {\n if (this.shouldReactToEvent(ripple, ev)) {\n this.endPress(ripple);\n }\n }\n\n private pointerEnter(ripple: Ripple, ev: PointerEvent) {\n if (this.shouldReactToEvent(ripple, ev, true)) {\n ripple.beginHover(ev);\n }\n }\n\n private pointerLeave(ripple: Ripple, ev: PointerEvent) {\n if (this.shouldReactToEvent(ripple, ev, true)) {\n ripple.endHover();\n // release a held mouse or pen press that moves outside the element\n if (!this.isTouch(ev) && this.state !== State.INACTIVE) {\n this.endPress(ripple);\n }\n }\n }\n}\n\n/**\n * Connects a Ripple element to a node that drives the interaction\n *\n * @param rippleGetter A function that returns an `md-ripple` element\n * @param simulateKeyboardClick For elements that do not issue a click on\n * keyboard interaction, pass `true` to enable press animations on Enter or\n * Spacebar\n */\nexport const ripple = directive(RippleDirective);"]}
1
+ {"version":3,"file":"directive.js","sourceRoot":"","sources":["directive.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAC,QAAQ,EAAC,MAAM,KAAK,CAAC;AAC7B,OAAO,EAAC,SAAS,EAAE,SAAS,EAA8C,QAAQ,EAAC,MAAM,kBAAkB,CAAC;AAW5G,MAAM,eAAgB,SAAQ,SAAS;IAIrC,YAAY,QAAkB;QAC5B,KAAK,CAAC,QAAQ,CAAC,CAAC;QAJV,iBAAY,GAAmB,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC;QAKtD,IAAI,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC,OAAO,EAAE;YACtC,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;SACtE;IACH,CAAC;IAED,MAAM,CAAC,MAA2C;QAChD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,0EAA0E;IAC1E,kCAAkC;IAClC,KAAK,CAAC,WAAW,CAAC,KAAY;QAC5B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QACzC,IAAI,CAAC,MAAM,EAAE;YACX,OAAO;SACR;QACD,QAAQ,KAAK,CAAC,IAAI,EAAE;YAClB,KAAK,OAAO;gBACV,MAAM,CAAC,WAAW,EAAE,CAAC;gBACrB,MAAM;YACR,KAAK,aAAa;gBAChB,MAAM,CAAC,iBAAiB,EAAE,CAAC;gBAC3B,MAAM;YACR,KAAK,eAAe;gBAClB,MAAM,CAAC,mBAAmB,CAAC,KAAqB,CAAC,CAAC;gBAClD,MAAM;YACR,KAAK,aAAa;gBAChB,MAAM,MAAM,CAAC,iBAAiB,CAAC,KAAqB,CAAC,CAAC;gBACtD,MAAM;YACR,KAAK,cAAc;gBACjB,MAAM,CAAC,kBAAkB,CAAC,KAAqB,CAAC,CAAC;gBACjD,MAAM;YACR,KAAK,cAAc;gBACjB,MAAM,CAAC,kBAAkB,CAAC,KAAqB,CAAC,CAAC;gBACjD,MAAM;YACR,KAAK,WAAW;gBACd,MAAM,CAAC,eAAe,CAAC,KAAqB,CAAC,CAAC;gBAC9C,MAAM;YACR;gBACE,MAAM;SACT;IACH,CAAC;IAEQ,MAAM,CAAC,IAAiB,EAAE,CAAC,MAAM,CAA4B;QACpE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACjB,wEAAwE;YACxE,WAAW;YACX,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAsB,CAAC;YAC3C,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC7C,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;YACnD,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;YACrD,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;YACnD,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;YACpD,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;YACpD,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;SAClD;QACD,kCAAkC;QAClC,IAAI,CAAC,YAAY,GAAG,OAAO,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC;QACzE,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,SAAS,CAAC,eAAe,CAAC,CAAC","sourcesContent":["/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {noChange} from 'lit';\nimport {Directive, directive, DirectiveParameters, ElementPart, PartInfo, PartType} from 'lit/directive.js';\n\nimport {Ripple} from './lib/ripple.js';\n\n/**\n * Normalized ripple accessor type.\n *\n * Use with `await rippleFunction()`\n */\ntype RippleFunction = () => Ripple|null|Promise<Ripple|null>;\n\nclass RippleDirective extends Directive {\n private rippleGetter: RippleFunction = async () => null;\n private element?: HTMLElement;\n\n constructor(partInfo: PartInfo) {\n super(partInfo);\n if (partInfo.type !== PartType.ELEMENT) {\n throw new Error('The `ripple` directive must be used on an element');\n }\n }\n\n render(ripple: RippleFunction|Promise<Ripple|null>) {\n return noChange;\n }\n\n // Use EventListenerObject::handleEvent interface to handle events without\n // generating bound event handlers\n async handleEvent(event: Event) {\n const ripple = await this.rippleGetter();\n if (!ripple) {\n return;\n }\n switch (event.type) {\n case 'click':\n ripple.handleClick();\n break;\n case 'contextmenu':\n ripple.handleContextmenu();\n break;\n case 'pointercancel':\n ripple.handlePointercancel(event as PointerEvent);\n break;\n case 'pointerdown':\n await ripple.handlePointerdown(event as PointerEvent);\n break;\n case 'pointerenter':\n ripple.handlePointerenter(event as PointerEvent);\n break;\n case 'pointerleave':\n ripple.handlePointerleave(event as PointerEvent);\n break;\n case 'pointerup':\n ripple.handlePointerup(event as PointerEvent);\n break;\n default:\n break;\n }\n }\n\n override update(part: ElementPart, [ripple]: DirectiveParameters<this>) {\n if (!this.element) {\n // NOTE: addEventListener typing needs to be used with HTMLElements or a\n // subclass\n this.element = part.element as HTMLElement;\n this.element.addEventListener('click', this);\n this.element.addEventListener('contextmenu', this);\n this.element.addEventListener('pointercancel', this);\n this.element.addEventListener('pointerdown', this);\n this.element.addEventListener('pointerenter', this);\n this.element.addEventListener('pointerleave', this);\n this.element.addEventListener('pointerup', this);\n }\n // Normalize given ripple accessor\n this.rippleGetter = typeof ripple === 'function' ? ripple : () => ripple;\n return noChange;\n }\n}\n\n/**\n * Connects a Ripple element to a node that drives the interaction\n *\n * @param rippleGetter A function that returns an `md-ripple` element\n * @param simulateKeyboardClick For elements that do not issue a click on\n * keyboard interaction, pass `true` to enable press animations on Enter or\n * Spacebar\n */\nexport const ripple = directive(RippleDirective);\n"]}
@@ -3,27 +3,28 @@
3
3
  // SPDX-License-Identifier: Apache-2.0
4
4
  //
5
5
 
6
+ // go/keep-sorted start
6
7
  @use 'sass:map';
8
+ // go/keep-sorted end
9
+ // go/keep-sorted start
7
10
  @use '../../tokens';
11
+ // go/keep-sorted end
8
12
 
9
- @function values($exclude-hardcoded-values: false) {
10
- $state-values: tokens.md-sys-state-values($exclude-hardcoded-values);
11
- $default-shape: map.get(
12
- tokens.md-sys-shape-values($exclude-hardcoded-values),
13
- corner-none
14
- );
15
- $default-color: if($exclude-hardcoded-values, null, black);
16
- // add missing tokens
17
- $values: map.merge(
18
- $state-values,
19
- (
20
- state-layer-shape: $default-shape,
21
- focus-state-layer-color: $default-color,
22
- hover-state-layer-color: $default-color,
23
- pressed-state-layer-color: $default-color,
24
- dragged-state-layer-color: $default-color,
25
- )
26
- );
13
+ $_default-deps: (
14
+ md-sys-color: tokens.md-sys-color-values-light(),
15
+ md-sys-shape: tokens.md-sys-shape-values(),
16
+ md-sys-state: tokens.md-sys-state-values(),
17
+ );
27
18
 
28
- @return $values;
19
+ @function values($deps: $_default-deps) {
20
+ @return (
21
+ 'focus-color': map.get($deps, 'md-sys-color', 'on-surface'),
22
+ 'focus-opacity': map.get($deps, 'md-sys-state', 'focus-state-layer-opacity'),
23
+ 'hover-color': map.get($deps, 'md-sys-color', 'on-surface'),
24
+ 'hover-opacity': map.get($deps, 'md-sys-state', 'hover-state-layer-opacity'),
25
+ 'pressed-color': map.get($deps, 'md-sys-color', 'on-surface'),
26
+ 'pressed-opacity':
27
+ map.get($deps, 'md-sys-state', 'pressed-state-layer-opacity'),
28
+ 'shape': map.get($deps, 'md-sys-shape', 'corner-none')
29
+ );
29
30
  }