@material/web 0.1.0-alpha.0 → 0.1.0-alpha.2

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 (1120) hide show
  1. package/actionelement/action-element.d.ts +1 -1
  2. package/actionelement/action-element.js +1 -1
  3. package/actionelement/action-element.js.map +1 -1
  4. package/autocomplete/_filled-autocomplete.scss +6 -0
  5. package/autocomplete/_outlined-autocomplete.scss +6 -0
  6. package/autocomplete/autocomplete-item.d.ts +19 -0
  7. package/autocomplete/autocomplete-item.js +22 -0
  8. package/autocomplete/autocomplete-item.js.map +1 -0
  9. package/autocomplete/autocomplete-list.d.ts +19 -0
  10. package/autocomplete/autocomplete-list.js +23 -0
  11. package/autocomplete/autocomplete-list.js.map +1 -0
  12. package/autocomplete/autocomplete-surface.d.ts +19 -0
  13. package/autocomplete/autocomplete-surface.js +23 -0
  14. package/autocomplete/autocomplete-surface.js.map +1 -0
  15. package/autocomplete/filled-autocomplete.d.ts +30 -0
  16. package/autocomplete/filled-autocomplete.js +53 -0
  17. package/autocomplete/filled-autocomplete.js.map +1 -0
  18. package/autocomplete/lib/_filled-autocomplete.scss +229 -0
  19. package/autocomplete/lib/_outlined-autocomplete.scss +217 -0
  20. package/autocomplete/lib/_shared.scss +34 -0
  21. package/autocomplete/lib/autocomplete.d.ts +58 -0
  22. package/autocomplete/lib/autocomplete.js +273 -0
  23. package/autocomplete/lib/autocomplete.js.map +1 -0
  24. package/autocomplete/lib/autocompleteitem/autocomplete-item.d.ts +11 -0
  25. package/autocomplete/lib/autocompleteitem/autocomplete-item.js +14 -0
  26. package/autocomplete/lib/autocompleteitem/autocomplete-item.js.map +1 -0
  27. package/autocomplete/lib/autocompleteitem/harness.d.ts +11 -0
  28. package/autocomplete/lib/autocompleteitem/harness.js +12 -0
  29. package/autocomplete/lib/autocompleteitem/harness.js.map +1 -0
  30. package/{field/lib/_field-theme.scss → autocomplete/lib/autocompletelist/_autocomplete-list.scss} +4 -6
  31. package/{elevation/lib/elevation-overlay-styles.css.d.ts → autocomplete/lib/autocompletelist/autocomplete-list-styles.css.d.ts} +0 -0
  32. package/autocomplete/lib/autocompletelist/autocomplete-list-styles.css.js +9 -0
  33. package/autocomplete/lib/autocompletelist/autocomplete-list-styles.css.js.map +1 -0
  34. package/{segmentedbutton/lib/segmented-button-styles.scss → autocomplete/lib/autocompletelist/autocomplete-list-styles.scss} +2 -2
  35. package/autocomplete/lib/autocompletelist/autocomplete-list.d.ts +14 -0
  36. package/autocomplete/lib/autocompletelist/autocomplete-list.js +21 -0
  37. package/autocomplete/lib/autocompletelist/autocomplete-list.js.map +1 -0
  38. package/autocomplete/lib/autocompletelist/harness.d.ts +11 -0
  39. package/autocomplete/lib/autocompletelist/harness.js +12 -0
  40. package/autocomplete/lib/autocompletelist/harness.js.map +1 -0
  41. package/autocomplete/lib/autocompletesurface/_autocomplete-surface.scss +13 -0
  42. package/{formfield/lib/formfield-styles.css.d.ts → autocomplete/lib/autocompletesurface/autocomplete-surface-styles.css.d.ts} +0 -0
  43. package/autocomplete/lib/autocompletesurface/autocomplete-surface-styles.css.js +9 -0
  44. package/autocomplete/lib/autocompletesurface/autocomplete-surface-styles.css.js.map +1 -0
  45. package/autocomplete/lib/autocompletesurface/autocomplete-surface-styles.scss +8 -0
  46. package/autocomplete/lib/autocompletesurface/autocomplete-surface.d.ts +13 -0
  47. package/autocomplete/lib/autocompletesurface/autocomplete-surface.js +21 -0
  48. package/autocomplete/lib/autocompletesurface/autocomplete-surface.js.map +1 -0
  49. package/{iconbutton/lib/icon-button-styles.css.d.ts → autocomplete/lib/filled-styles.css.d.ts} +0 -0
  50. package/autocomplete/lib/filled-styles.css.js +9 -0
  51. package/autocomplete/lib/filled-styles.css.js.map +1 -0
  52. package/autocomplete/lib/filled-styles.scss +8 -0
  53. package/{segmentedbutton/lib/segmented-button-styles.css.d.ts → autocomplete/lib/outlined-styles.css.d.ts} +0 -0
  54. package/autocomplete/lib/outlined-styles.css.js +9 -0
  55. package/autocomplete/lib/outlined-styles.css.js.map +1 -0
  56. package/autocomplete/lib/outlined-styles.scss +8 -0
  57. package/autocomplete/lib/shared-styles.css.d.ts +1 -0
  58. package/autocomplete/lib/shared-styles.css.js +9 -0
  59. package/autocomplete/lib/shared-styles.css.js.map +1 -0
  60. package/{iconbutton/lib/icon-button-styles.scss → autocomplete/lib/shared-styles.scss} +2 -2
  61. package/autocomplete/outlined-autocomplete.d.ts +30 -0
  62. package/autocomplete/outlined-autocomplete.js +53 -0
  63. package/autocomplete/outlined-autocomplete.js.map +1 -0
  64. package/badge/_badge.scss +6 -0
  65. package/badge/lib/_badge.scss +60 -21
  66. package/badge/lib/badge-styles.css.js +1 -1
  67. package/badge/lib/badge-styles.css.js.map +1 -1
  68. package/badge/lib/badge-styles.scss +1 -9
  69. package/button/_elevated-button.scss +1 -3
  70. package/button/_filled-button.scss +1 -3
  71. package/button/_outlined-button.scss +1 -3
  72. package/button/_text-button.scss +1 -3
  73. package/button/_tonal-button.scss +1 -3
  74. package/button/elevated-button.d.ts +18 -1
  75. package/button/elevated-button.js +20 -3
  76. package/button/elevated-button.js.map +1 -1
  77. package/button/elevated-link-button.d.ts +18 -1
  78. package/button/elevated-link-button.js +20 -3
  79. package/button/elevated-link-button.js.map +1 -1
  80. package/button/filled-button.d.ts +16 -1
  81. package/button/filled-button.js +18 -2
  82. package/button/filled-button.js.map +1 -1
  83. package/button/filled-link-button.d.ts +16 -1
  84. package/button/filled-link-button.js +18 -2
  85. package/button/filled-link-button.js.map +1 -1
  86. package/button/harness.d.ts +1 -1
  87. package/button/harness.js +1 -1
  88. package/button/harness.js.map +1 -1
  89. package/button/lib/_elevated-button.scss +51 -2
  90. package/button/lib/_elevation.scss +74 -0
  91. package/button/lib/_filled-button.scss +47 -2
  92. package/button/lib/_icon.scss +26 -18
  93. package/button/lib/_outlined-button.scss +70 -8
  94. package/button/lib/_shared.scss +180 -0
  95. package/button/lib/_text-button.scss +52 -2
  96. package/button/lib/_tonal-button.scss +50 -2
  97. package/button/lib/_touch-target.scss +7 -5
  98. package/button/lib/button.d.ts +45 -40
  99. package/button/lib/button.js +83 -88
  100. package/button/lib/button.js.map +1 -1
  101. package/button/lib/elevated-button.d.ts +2 -4
  102. package/button/lib/elevated-button.js +4 -5
  103. package/button/lib/elevated-button.js.map +1 -1
  104. package/button/lib/elevated-link-button.d.ts +2 -4
  105. package/button/lib/elevated-link-button.js +4 -5
  106. package/button/lib/elevated-link-button.js.map +1 -1
  107. package/button/lib/elevated-styles.css.js +1 -1
  108. package/button/lib/elevated-styles.css.js.map +1 -1
  109. package/button/lib/elevated-styles.scss +1 -11
  110. package/button/lib/filled-button.d.ts +4 -2
  111. package/button/lib/filled-button.js +7 -2
  112. package/button/lib/filled-button.js.map +1 -1
  113. package/button/lib/filled-link-button.d.ts +4 -2
  114. package/button/lib/filled-link-button.js +7 -2
  115. package/button/lib/filled-link-button.js.map +1 -1
  116. package/button/lib/filled-styles.css.js +1 -1
  117. package/button/lib/filled-styles.css.js.map +1 -1
  118. package/button/lib/filled-styles.scss +1 -9
  119. package/button/lib/link-button.d.ts +11 -3
  120. package/button/lib/link-button.js +29 -18
  121. package/button/lib/link-button.js.map +1 -1
  122. package/button/lib/outlined-button.d.ts +0 -3
  123. package/button/lib/outlined-button.js +1 -3
  124. package/button/lib/outlined-button.js.map +1 -1
  125. package/button/lib/outlined-link-button.d.ts +0 -3
  126. package/button/lib/outlined-link-button.js +1 -3
  127. package/button/lib/outlined-link-button.js.map +1 -1
  128. package/button/lib/outlined-styles.css.js +1 -1
  129. package/button/lib/outlined-styles.css.js.map +1 -1
  130. package/button/lib/outlined-styles.scss +1 -11
  131. package/button/lib/shared-elevation-styles.css.d.ts +1 -0
  132. package/button/lib/shared-elevation-styles.css.js +9 -0
  133. package/button/lib/shared-elevation-styles.css.js.map +1 -0
  134. package/{ripple/_index.scss → button/lib/shared-elevation-styles.scss} +3 -1
  135. package/button/lib/shared-styles.css.js +1 -1
  136. package/button/lib/shared-styles.css.js.map +1 -1
  137. package/button/lib/shared-styles.scss +4 -4
  138. package/button/lib/text-button.d.ts +0 -2
  139. package/button/lib/text-button.js +1 -2
  140. package/button/lib/text-button.js.map +1 -1
  141. package/button/lib/text-link-button.d.ts +0 -2
  142. package/button/lib/text-link-button.js +1 -2
  143. package/button/lib/text-link-button.js.map +1 -1
  144. package/button/lib/text-styles.css.js +1 -1
  145. package/button/lib/text-styles.css.js.map +1 -1
  146. package/button/lib/text-styles.scss +1 -9
  147. package/button/lib/tonal-button.d.ts +4 -2
  148. package/button/lib/tonal-button.js +7 -2
  149. package/button/lib/tonal-button.js.map +1 -1
  150. package/button/lib/tonal-link-button.d.ts +4 -2
  151. package/button/lib/tonal-link-button.js +7 -2
  152. package/button/lib/tonal-link-button.js.map +1 -1
  153. package/button/lib/tonal-styles.css.js +1 -1
  154. package/button/lib/tonal-styles.css.js.map +1 -1
  155. package/button/lib/tonal-styles.scss +1 -9
  156. package/button/outlined-button.d.ts +18 -1
  157. package/button/outlined-button.js +18 -1
  158. package/button/outlined-button.js.map +1 -1
  159. package/button/outlined-link-button.d.ts +18 -1
  160. package/button/outlined-link-button.js +18 -1
  161. package/button/outlined-link-button.js.map +1 -1
  162. package/button/text-button.d.ts +16 -1
  163. package/button/text-button.js +16 -1
  164. package/button/text-button.js.map +1 -1
  165. package/button/text-link-button.d.ts +16 -1
  166. package/button/text-link-button.js +16 -1
  167. package/button/text-link-button.js.map +1 -1
  168. package/button/tonal-button.d.ts +17 -1
  169. package/button/tonal-button.js +19 -2
  170. package/button/tonal-button.js.map +1 -1
  171. package/button/tonal-link-button.d.ts +17 -1
  172. package/button/tonal-link-button.js +19 -2
  173. package/button/tonal-link-button.js.map +1 -1
  174. package/checkbox/_checkbox.scss +6 -1
  175. package/checkbox/checkbox.d.ts +4 -1
  176. package/checkbox/checkbox.js +6 -2
  177. package/checkbox/checkbox.js.map +1 -1
  178. package/checkbox/harness.d.ts +1 -1
  179. package/checkbox/harness.js +1 -1
  180. package/checkbox/harness.js.map +1 -1
  181. package/checkbox/lib/_checkbox.scss +368 -334
  182. package/checkbox/lib/checkbox-styles.css.js +1 -1
  183. package/checkbox/lib/checkbox-styles.css.js.map +1 -1
  184. package/checkbox/lib/checkbox-styles.scss +1 -8
  185. package/checkbox/lib/checkbox.d.ts +30 -45
  186. package/checkbox/lib/checkbox.js +127 -177
  187. package/checkbox/lib/checkbox.js.map +1 -1
  188. package/checkbox/lib/forced-colors-styles.css.d.ts +1 -0
  189. package/checkbox/lib/forced-colors-styles.css.js +9 -0
  190. package/checkbox/lib/forced-colors-styles.css.js.map +1 -0
  191. package/checkbox/lib/forced-colors-styles.scss +47 -0
  192. package/{formfield/formfield.d.ts → chips/action/delete-action.d.ts} +3 -4
  193. package/chips/action/delete-action.js +20 -0
  194. package/chips/action/delete-action.js.map +1 -0
  195. package/chips/action/lib/action.d.ts +17 -4
  196. package/chips/action/lib/action.js +85 -6
  197. package/chips/action/lib/action.js.map +1 -1
  198. package/chips/action/lib/{trailing-action.d.ts → delete-action.d.ts} +3 -3
  199. package/chips/action/lib/{trailing-action.js → delete-action.js} +22 -19
  200. package/chips/action/lib/delete-action.js.map +1 -0
  201. package/chips/action/lib/events.d.ts +14 -0
  202. package/chips/action/lib/events.js +16 -0
  203. package/chips/action/lib/events.js.map +1 -0
  204. package/chips/action/lib/link-action.d.ts +2 -0
  205. package/chips/action/lib/link-action.js +13 -1
  206. package/chips/action/lib/link-action.js.map +1 -1
  207. package/chips/action/lib/primary-action.d.ts +0 -1
  208. package/chips/action/lib/primary-action.js +11 -6
  209. package/chips/action/lib/primary-action.js.map +1 -1
  210. package/chips/action/lib/selectable-action.js +11 -1
  211. package/chips/action/lib/selectable-action.js.map +1 -1
  212. package/chips/action/link-action.d.ts +18 -0
  213. package/chips/action/link-action.js +20 -0
  214. package/chips/action/link-action.js.map +1 -0
  215. package/chips/action/presentational-action.d.ts +18 -0
  216. package/chips/action/presentational-action.js +20 -0
  217. package/chips/action/presentational-action.js.map +1 -0
  218. package/chips/action/primary-action.d.ts +18 -0
  219. package/chips/action/primary-action.js +20 -0
  220. package/chips/action/primary-action.js.map +1 -0
  221. package/chips/action/selectable-action.d.ts +18 -0
  222. package/chips/action/selectable-action.js +20 -0
  223. package/chips/action/selectable-action.js.map +1 -0
  224. package/chips/chip/lib/_assist-chip-theme.scss +5 -11
  225. package/chips/chip/lib/_chip-theme.scss +191 -220
  226. package/chips/chip/lib/_chip.scss +80 -63
  227. package/chips/chip/lib/_filter-chip-theme.scss +5 -11
  228. package/chips/chip/lib/_input-chip-theme.scss +12 -18
  229. package/chips/chip/lib/_suggestion-chip-theme.scss +5 -11
  230. package/chips/chip/lib/action-chip.d.ts +18 -0
  231. package/chips/chip/lib/action-chip.js +39 -0
  232. package/chips/chip/lib/action-chip.js.map +1 -0
  233. package/{compat/animation → chips/chip/lib}/animationframe.d.ts +0 -0
  234. package/{compat/animation → chips/chip/lib}/animationframe.js +1 -0
  235. package/chips/chip/lib/animationframe.js.map +1 -0
  236. package/chips/chip/lib/chip.d.ts +42 -0
  237. package/chips/chip/lib/chip.js +133 -0
  238. package/chips/chip/lib/chip.js.map +1 -0
  239. package/chips/chip/lib/foundation.js +3 -4
  240. package/chips/chip/lib/foundation.js.map +1 -1
  241. package/chips/chip/lib/link-chip.d.ts +21 -0
  242. package/chips/chip/lib/link-chip.js +53 -0
  243. package/chips/chip/lib/link-chip.js.map +1 -0
  244. package/chips/chip/lib/presentational-chip.d.ts +18 -0
  245. package/chips/chip/lib/presentational-chip.js +39 -0
  246. package/chips/chip/lib/presentational-chip.js.map +1 -0
  247. package/chips/chip/lib/selectable-chip.d.ts +22 -0
  248. package/chips/chip/lib/selectable-chip.js +57 -0
  249. package/chips/chip/lib/selectable-chip.js.map +1 -0
  250. package/chips/chipset/lib/_chip-set-theme.scss +1 -1
  251. package/chips/chipset/lib/foundation.js +8 -10
  252. package/chips/chipset/lib/foundation.js.map +1 -1
  253. package/controller/events.d.ts +50 -0
  254. package/controller/events.js +86 -0
  255. package/controller/events.js.map +1 -1
  256. package/controller/form-associated.d.ts +14 -0
  257. package/controller/form-associated.js +12 -0
  258. package/controller/form-associated.js.map +1 -0
  259. package/controller/form-controller.d.ts +7 -0
  260. package/controller/form-controller.js +15 -1
  261. package/controller/form-controller.js.map +1 -1
  262. package/controller/is-rtl.d.ts +14 -0
  263. package/controller/is-rtl.js +18 -0
  264. package/controller/is-rtl.js.map +1 -0
  265. package/controller/shim-label-activation.d.ts +18 -0
  266. package/controller/shim-label-activation.js +72 -0
  267. package/controller/shim-label-activation.js.map +1 -0
  268. package/decorators/bound.d.ts +1 -1
  269. package/decorators/bound.js.map +1 -1
  270. package/elevation/_elevation.scss +6 -0
  271. package/elevation/elevation.d.ts +19 -0
  272. package/elevation/elevation.js +22 -0
  273. package/elevation/elevation.js.map +1 -0
  274. package/elevation/lib/_elevation.scss +218 -0
  275. package/elevation/lib/_md-comp-elevation.scss +23 -0
  276. package/elevation/lib/elevation-styles.css.d.ts +1 -0
  277. package/elevation/lib/elevation-styles.css.js +9 -0
  278. package/elevation/lib/elevation-styles.css.js.map +1 -0
  279. package/elevation/lib/elevation-styles.scss +8 -0
  280. package/elevation/lib/elevation.d.ts +20 -0
  281. package/elevation/lib/elevation.js +39 -0
  282. package/elevation/lib/elevation.js.map +1 -0
  283. package/{elevation → elevationold}/lib/_elevation-overlay-theme.scss +0 -0
  284. package/{elevation → elevationold}/lib/_elevation-overlay.scss +0 -0
  285. package/{elevation → elevationold}/lib/_elevation-theme.scss +3 -17
  286. package/{elevation → elevationold}/lib/_surface.scss +1 -4
  287. package/elevationold/lib/elevation-overlay-styles.css.d.ts +1 -0
  288. package/{elevation → elevationold}/lib/elevation-overlay-styles.css.js +0 -0
  289. package/{elevation → elevationold}/lib/elevation-overlay-styles.css.js.map +0 -0
  290. package/{elevation → elevationold}/lib/elevation-overlay-styles.scss +0 -0
  291. package/fab/_fab-extended.scss +1 -6
  292. package/fab/_fab.scss +1 -15
  293. package/fab/fab-extended.d.ts +1 -1
  294. package/fab/fab-extended.js +2 -2
  295. package/fab/fab-extended.js.map +1 -1
  296. package/fab/fab.d.ts +1 -1
  297. package/fab/fab.js +2 -2
  298. package/fab/fab.js.map +1 -1
  299. package/fab/harness.d.ts +1 -1
  300. package/fab/harness.js +1 -1
  301. package/fab/harness.js.map +1 -1
  302. package/fab/lib/_fab-extended.scss +55 -21
  303. package/fab/lib/_fab.scss +30 -6
  304. package/fab/lib/_shared.scss +209 -0
  305. package/fab/lib/fab-extended-styles.css.js +1 -1
  306. package/fab/lib/fab-extended-styles.css.js.map +1 -1
  307. package/fab/lib/fab-extended-styles.scss +1 -9
  308. package/fab/lib/fab-shared-styles.css.js +1 -1
  309. package/fab/lib/fab-shared-styles.css.js.map +1 -1
  310. package/fab/lib/fab-shared-styles.scss +2 -2
  311. package/fab/lib/fab-shared.d.ts +6 -5
  312. package/fab/lib/fab-shared.js +9 -8
  313. package/fab/lib/fab-shared.js.map +1 -1
  314. package/fab/lib/fab-styles.css.js +1 -1
  315. package/fab/lib/fab-styles.css.js.map +1 -1
  316. package/fab/lib/fab-styles.scss +1 -9
  317. package/field/_filled-field.scss +1 -3
  318. package/field/_outlined-field.scss +1 -3
  319. package/field/harness.d.ts +1 -1
  320. package/field/harness.js +1 -1
  321. package/field/harness.js.map +1 -1
  322. package/field/lib/_content.scss +51 -2
  323. package/field/lib/_filled-field.scss +167 -88
  324. package/field/lib/_label.scss +65 -2
  325. package/field/lib/_md-comp-filled-field.scss +72 -0
  326. package/field/lib/_md-comp-outlined-field.scss +74 -0
  327. package/field/lib/_outlined-field.scss +222 -118
  328. package/field/lib/{_field.scss → _shared.scss} +30 -1
  329. package/field/lib/_supporting-text.scss +64 -1
  330. package/field/lib/field.d.ts +1 -1
  331. package/field/lib/field.js +1 -1
  332. package/field/lib/field.js.map +1 -1
  333. package/field/lib/filled-field.d.ts +1 -0
  334. package/field/lib/filled-field.js +1 -0
  335. package/field/lib/filled-field.js.map +1 -1
  336. package/field/lib/filled-styles.css.js +1 -1
  337. package/field/lib/filled-styles.css.js.map +1 -1
  338. package/field/lib/filled-styles.scss +1 -9
  339. package/field/lib/outlined-styles.css.js +1 -1
  340. package/field/lib/outlined-styles.css.js.map +1 -1
  341. package/field/lib/outlined-styles.scss +1 -10
  342. package/field/lib/shared-styles.css.js +1 -1
  343. package/field/lib/shared-styles.css.js.map +1 -1
  344. package/field/lib/shared-styles.scss +2 -8
  345. package/focus/_focus-ring.scss +6 -0
  346. package/focus/lib/_focus-ring.scss +48 -21
  347. package/focus/lib/_md-comp-focus-ring.scss +27 -0
  348. package/focus/lib/focus-ring-styles.css.js +1 -1
  349. package/focus/lib/focus-ring-styles.css.js.map +1 -1
  350. package/focus/lib/focus-ring-styles.scss +1 -9
  351. package/focus/lib/focus-ring.d.ts +16 -3
  352. package/focus/lib/focus-ring.js +16 -3
  353. package/focus/lib/focus-ring.js.map +1 -1
  354. package/focus/strong-focus.d.ts +2 -0
  355. package/focus/strong-focus.js +6 -4
  356. package/focus/strong-focus.js.map +1 -1
  357. package/icon/_icon.scss +6 -0
  358. package/icon/lib/_icon.scss +54 -0
  359. package/icon/lib/_md-comp-icon.scss +19 -0
  360. package/icon/lib/icon-styles.css.js +1 -1
  361. package/icon/lib/icon-styles.css.js.map +1 -1
  362. package/icon/lib/icon-styles.scss +2 -19
  363. package/iconbutton/_filled-icon-button.scss +1 -2
  364. package/iconbutton/_filled-tonal-icon-button.scss +6 -0
  365. package/iconbutton/_outlined-icon-button.scss +1 -2
  366. package/iconbutton/_standard-icon-button.scss +1 -2
  367. package/iconbutton/filled-icon-button-toggle.d.ts +15 -3
  368. package/iconbutton/filled-icon-button-toggle.js +16 -4
  369. package/iconbutton/filled-icon-button-toggle.js.map +1 -1
  370. package/iconbutton/filled-icon-button.d.ts +15 -3
  371. package/iconbutton/filled-icon-button.js +16 -4
  372. package/iconbutton/filled-icon-button.js.map +1 -1
  373. package/iconbutton/filled-link-icon-button.d.ts +15 -3
  374. package/iconbutton/filled-link-icon-button.js +16 -4
  375. package/iconbutton/filled-link-icon-button.js.map +1 -1
  376. package/iconbutton/filled-tonal-icon-button-toggle.d.ts +15 -3
  377. package/iconbutton/filled-tonal-icon-button-toggle.js +16 -4
  378. package/iconbutton/filled-tonal-icon-button-toggle.js.map +1 -1
  379. package/iconbutton/filled-tonal-icon-button.d.ts +15 -3
  380. package/iconbutton/filled-tonal-icon-button.js +16 -4
  381. package/iconbutton/filled-tonal-icon-button.js.map +1 -1
  382. package/iconbutton/filled-tonal-link-icon-button.d.ts +15 -3
  383. package/iconbutton/filled-tonal-link-icon-button.js +16 -4
  384. package/iconbutton/filled-tonal-link-icon-button.js.map +1 -1
  385. package/iconbutton/harness.d.ts +1 -1
  386. package/iconbutton/harness.js +1 -1
  387. package/iconbutton/harness.js.map +1 -1
  388. package/iconbutton/lib/_filled-icon-button.scss +123 -2
  389. package/iconbutton/lib/_filled-tonal-icon-button.scss +123 -2
  390. package/iconbutton/lib/_outlined-icon-button.scss +133 -1
  391. package/iconbutton/lib/{_icon-button-theme.scss → _shared.scss} +76 -71
  392. package/iconbutton/lib/_standard-icon-button.scss +94 -2
  393. package/iconbutton/lib/filled-styles.css.js +1 -1
  394. package/iconbutton/lib/filled-styles.css.js.map +1 -1
  395. package/iconbutton/lib/filled-styles.scss +1 -11
  396. package/iconbutton/lib/filled-tonal-styles.css.js +1 -1
  397. package/iconbutton/lib/filled-tonal-styles.css.js.map +1 -1
  398. package/iconbutton/lib/filled-tonal-styles.scss +1 -11
  399. package/iconbutton/lib/icon-button-toggle.d.ts +42 -23
  400. package/iconbutton/lib/icon-button-toggle.js +64 -62
  401. package/iconbutton/lib/icon-button-toggle.js.map +1 -1
  402. package/iconbutton/lib/icon-button.d.ts +22 -30
  403. package/iconbutton/lib/icon-button.js +52 -71
  404. package/iconbutton/lib/icon-button.js.map +1 -1
  405. package/iconbutton/lib/link-icon-button.d.ts +11 -2
  406. package/iconbutton/lib/link-icon-button.js +23 -18
  407. package/iconbutton/lib/link-icon-button.js.map +1 -1
  408. package/iconbutton/lib/outlined-styles.css.js +1 -1
  409. package/iconbutton/lib/outlined-styles.css.js.map +1 -1
  410. package/iconbutton/lib/outlined-styles.scss +1 -11
  411. package/iconbutton/lib/shared-styles.css.d.ts +1 -0
  412. package/iconbutton/lib/shared-styles.css.js +9 -0
  413. package/iconbutton/lib/shared-styles.css.js.map +1 -0
  414. package/iconbutton/lib/shared-styles.scss +8 -0
  415. package/iconbutton/lib/standard-styles.css.js +1 -1
  416. package/iconbutton/lib/standard-styles.css.js.map +1 -1
  417. package/iconbutton/lib/standard-styles.scss +1 -11
  418. package/iconbutton/outlined-icon-button-toggle.d.ts +15 -3
  419. package/iconbutton/outlined-icon-button-toggle.js +16 -4
  420. package/iconbutton/outlined-icon-button-toggle.js.map +1 -1
  421. package/iconbutton/outlined-icon-button.d.ts +15 -3
  422. package/iconbutton/outlined-icon-button.js +16 -4
  423. package/iconbutton/outlined-icon-button.js.map +1 -1
  424. package/iconbutton/outlined-link-icon-button.d.ts +15 -3
  425. package/iconbutton/outlined-link-icon-button.js +16 -4
  426. package/iconbutton/outlined-link-icon-button.js.map +1 -1
  427. package/iconbutton/standard-icon-button-toggle.d.ts +15 -3
  428. package/iconbutton/standard-icon-button-toggle.js +16 -4
  429. package/iconbutton/standard-icon-button-toggle.js.map +1 -1
  430. package/iconbutton/standard-icon-button.d.ts +15 -3
  431. package/iconbutton/standard-icon-button.js +16 -4
  432. package/iconbutton/standard-icon-button.js.map +1 -1
  433. package/iconbutton/standard-link-icon-button.d.ts +15 -3
  434. package/iconbutton/standard-link-icon-button.js +16 -4
  435. package/iconbutton/standard-link-icon-button.js.map +1 -1
  436. package/list/_list-item.scss +1 -2
  437. package/list/_list.scss +1 -2
  438. package/list/harness.d.ts +1 -1
  439. package/list/harness.js +1 -1
  440. package/list/harness.js.map +1 -1
  441. package/list/lib/_list.scss +58 -21
  442. package/list/lib/_tokens.scss +2 -2
  443. package/list/lib/avatar/_list-item-avatar.scss +25 -1
  444. package/list/lib/avatar/list-item-avatar-styles.css.js +1 -1
  445. package/list/lib/avatar/list-item-avatar-styles.css.js.map +1 -1
  446. package/list/lib/avatar/list-item-avatar-styles.scss +1 -13
  447. package/list/lib/divider/_list-divider.scss +33 -1
  448. package/list/lib/divider/list-divider-styles.css.js +1 -1
  449. package/list/lib/divider/list-divider-styles.css.js.map +1 -1
  450. package/list/lib/divider/list-divider-styles.scss +1 -11
  451. package/list/lib/divider/list-divider.d.ts +1 -1
  452. package/list/lib/divider/list-divider.js +1 -1
  453. package/list/lib/divider/list-divider.js.map +1 -1
  454. package/list/lib/icon/_list-item-icon.scss +32 -2
  455. package/list/lib/icon/list-item-icon-styles.css.js +1 -1
  456. package/list/lib/icon/list-item-icon-styles.css.js.map +1 -1
  457. package/list/lib/icon/list-item-icon-styles.scss +1 -13
  458. package/list/lib/image/_list-item-image.scss +44 -1
  459. package/list/lib/image/list-item-image-styles.css.js +1 -1
  460. package/list/lib/image/list-item-image-styles.css.js.map +1 -1
  461. package/list/lib/image/list-item-image-styles.scss +1 -13
  462. package/list/lib/list-styles.css.js +1 -1
  463. package/list/lib/list-styles.css.js.map +1 -1
  464. package/list/lib/list-styles.scss +1 -9
  465. package/list/lib/list.d.ts +5 -1
  466. package/list/lib/list.js +13 -2
  467. package/list/lib/list.js.map +1 -1
  468. package/list/lib/listitem/_list-item.scss +156 -59
  469. package/list/lib/listitem/harness.d.ts +1 -1
  470. package/list/lib/listitem/harness.js +1 -1
  471. package/list/lib/listitem/harness.js.map +1 -1
  472. package/list/lib/listitem/list-item-styles.css.js +1 -1
  473. package/list/lib/listitem/list-item-styles.css.js.map +1 -1
  474. package/list/lib/listitem/list-item-styles.scss +1 -9
  475. package/list/lib/listitem/list-item.d.ts +5 -5
  476. package/list/lib/listitem/list-item.js +6 -6
  477. package/list/lib/listitem/list-item.js.map +1 -1
  478. package/list/lib/video/_list-item-video.scss +45 -2
  479. package/list/lib/video/list-item-video-styles.css.js +1 -1
  480. package/list/lib/video/list-item-video-styles.css.js.map +1 -1
  481. package/list/lib/video/list-item-video-styles.scss +1 -13
  482. package/localization/localize.d.ts +15 -0
  483. package/localization/localize.js +18 -0
  484. package/localization/localize.js.map +1 -0
  485. package/menu/harness.d.ts +1 -1
  486. package/menu/harness.js +1 -1
  487. package/menu/harness.js.map +1 -1
  488. package/menu/lib/_menu-button.scss +1 -1
  489. package/menu/lib/_menu.scss +105 -2
  490. package/menu/lib/menu-button-styles.scss +5 -6
  491. package/menu/lib/menu-styles.css.js +1 -1
  492. package/menu/lib/menu-styles.css.js.map +1 -1
  493. package/menu/lib/menu-styles.scss +5 -14
  494. package/menu/lib/menu.js +3 -3
  495. package/menu/lib/menu.js.map +1 -1
  496. package/menu/lib/menuitem/harness.d.ts +1 -1
  497. package/menu/lib/menuitem/harness.js +1 -1
  498. package/menu/lib/menuitem/harness.js.map +1 -1
  499. package/menu/lib/menuitem/menu-item.d.ts +2 -2
  500. package/menu/lib/menuitem/menu-item.js +1 -1
  501. package/menu/lib/menuitem/menu-item.js.map +1 -1
  502. package/menusurface/_menu-surface.scss +1 -2
  503. package/menusurface/lib/_md-comp-menu-surface.scss +35 -0
  504. package/menusurface/lib/_menu-surface.scss +30 -1
  505. package/menusurface/lib/menu-surface-styles.css.js +1 -1
  506. package/menusurface/lib/menu-surface-styles.css.js.map +1 -1
  507. package/menusurface/lib/menu-surface-styles.scss +1 -9
  508. package/menusurface/lib/menu-surface.d.ts +5 -2
  509. package/menusurface/lib/menu-surface.js +48 -89
  510. package/menusurface/lib/menu-surface.js.map +1 -1
  511. package/navigationbar/_navigation-bar.scss +1 -2
  512. package/navigationbar/harness.d.ts +1 -1
  513. package/navigationbar/harness.js +1 -1
  514. package/navigationbar/harness.js.map +1 -1
  515. package/navigationbar/lib/_navigation-bar.scss +44 -6
  516. package/navigationbar/lib/constants.d.ts +1 -1
  517. package/navigationbar/lib/constants.js.map +1 -1
  518. package/navigationbar/lib/navigation-bar-styles.css.js +1 -1
  519. package/navigationbar/lib/navigation-bar-styles.css.js.map +1 -1
  520. package/navigationbar/lib/navigation-bar-styles.scss +1 -13
  521. package/navigationbar/lib/navigation-bar.d.ts +4 -3
  522. package/navigationbar/lib/navigation-bar.js +35 -44
  523. package/navigationbar/lib/navigation-bar.js.map +1 -1
  524. package/navigationbar/lib/state.d.ts +1 -1
  525. package/navigationbar/lib/state.js.map +1 -1
  526. package/navigationdrawer/_navigation-drawer-modal.scss +1 -1
  527. package/navigationdrawer/_navigation-drawer.scss +1 -1
  528. package/navigationdrawer/lib/_navigation-drawer-modal.scss +54 -12
  529. package/navigationdrawer/lib/_navigation-drawer.scss +48 -9
  530. package/navigationdrawer/lib/_shared.scss +49 -0
  531. package/navigationdrawer/lib/navigation-drawer-modal-styles.css.js +1 -1
  532. package/navigationdrawer/lib/navigation-drawer-modal-styles.css.js.map +1 -1
  533. package/navigationdrawer/lib/navigation-drawer-modal-styles.scss +1 -5
  534. package/navigationdrawer/lib/navigation-drawer-modal.d.ts +7 -7
  535. package/navigationdrawer/lib/navigation-drawer-modal.js +13 -14
  536. package/navigationdrawer/lib/navigation-drawer-modal.js.map +1 -1
  537. package/navigationdrawer/lib/navigation-drawer-styles.css.js +1 -1
  538. package/navigationdrawer/lib/navigation-drawer-styles.css.js.map +1 -1
  539. package/navigationdrawer/lib/navigation-drawer-styles.scss +1 -11
  540. package/navigationdrawer/lib/navigation-drawer.d.ts +6 -6
  541. package/navigationdrawer/lib/navigation-drawer.js +13 -14
  542. package/navigationdrawer/lib/navigation-drawer.js.map +1 -1
  543. package/navigationdrawer/lib/shared-styles.css.d.ts +1 -0
  544. package/navigationdrawer/lib/shared-styles.css.js +9 -0
  545. package/navigationdrawer/lib/shared-styles.css.js.map +1 -0
  546. package/navigationdrawer/lib/shared-styles.scss +8 -0
  547. package/navigationdrawer/navigation-drawer-modal.js +2 -1
  548. package/navigationdrawer/navigation-drawer-modal.js.map +1 -1
  549. package/navigationdrawer/navigation-drawer.js +2 -1
  550. package/navigationdrawer/navigation-drawer.js.map +1 -1
  551. package/navigationtab/_navigation-tab.scss +1 -2
  552. package/navigationtab/harness.d.ts +1 -1
  553. package/navigationtab/harness.js +1 -1
  554. package/navigationtab/harness.js.map +1 -1
  555. package/navigationtab/lib/_navigation-tab.scss +224 -77
  556. package/navigationtab/lib/navigation-tab-styles.css.js +1 -1
  557. package/navigationtab/lib/navigation-tab-styles.css.js.map +1 -1
  558. package/navigationtab/lib/navigation-tab-styles.scss +1 -14
  559. package/navigationtab/lib/navigation-tab.d.ts +4 -4
  560. package/navigationtab/lib/navigation-tab.js +6 -6
  561. package/navigationtab/lib/navigation-tab.js.map +1 -1
  562. package/package.json +76 -12
  563. package/radio/harness.d.ts +1 -1
  564. package/radio/harness.js +1 -1
  565. package/radio/harness.js.map +1 -1
  566. package/radio/lib/_radio-theme.scss +9 -8
  567. package/radio/lib/_radio.scss +5 -5
  568. package/radio/lib/radio-styles.css.js +1 -1
  569. package/radio/lib/radio-styles.css.js.map +1 -1
  570. package/radio/lib/radio.d.ts +34 -38
  571. package/radio/lib/radio.js +88 -118
  572. package/radio/lib/radio.js.map +1 -1
  573. package/ripple/_ripple.scss +6 -0
  574. package/ripple/directive.d.ts +63 -0
  575. package/ripple/directive.js +266 -0
  576. package/ripple/directive.js.map +1 -0
  577. package/ripple/lib/_md-comp-ripple.scss +29 -0
  578. package/ripple/lib/_ripple.scss +97 -51
  579. package/ripple/lib/ripple-styles.css.js +1 -1
  580. package/ripple/lib/ripple-styles.css.js.map +1 -1
  581. package/ripple/lib/ripple-styles.scss +1 -9
  582. package/ripple/lib/ripple.d.ts +1 -1
  583. package/ripple/lib/ripple.js +5 -2
  584. package/ripple/lib/ripple.js.map +1 -1
  585. package/sass/_assert.scss +5 -0
  586. package/sass/_color-scheme.scss +88 -0
  587. package/sass/_color.scss +30 -50
  588. package/sass/_feature-flags.scss +3 -3
  589. package/segmentedbutton/lib/_outlined-segmented-button.scss +26 -2
  590. package/segmentedbutton/lib/_shared.scss +388 -0
  591. package/segmentedbutton/lib/outlined-styles.css.js +1 -1
  592. package/segmentedbutton/lib/outlined-styles.css.js.map +1 -1
  593. package/segmentedbutton/lib/outlined-styles.scss +1 -10
  594. package/segmentedbutton/lib/segmented-button.d.ts +3 -3
  595. package/segmentedbutton/lib/segmented-button.js +5 -5
  596. package/segmentedbutton/lib/segmented-button.js.map +1 -1
  597. package/segmentedbutton/lib/shared-styles.css.d.ts +1 -0
  598. package/segmentedbutton/lib/shared-styles.css.js +9 -0
  599. package/segmentedbutton/lib/shared-styles.css.js.map +1 -0
  600. package/segmentedbutton/lib/shared-styles.scss +8 -0
  601. package/segmentedbutton/outlined-segmented-button.js +1 -1
  602. package/segmentedbutton/outlined-segmented-button.js.map +1 -1
  603. package/segmentedbuttonset/lib/_outlined-segmented-button-set.scss +22 -4
  604. package/segmentedbuttonset/lib/_shared.scss +46 -0
  605. package/segmentedbuttonset/lib/outlined-styles.css.js +1 -1
  606. package/segmentedbuttonset/lib/outlined-styles.css.js.map +1 -1
  607. package/segmentedbuttonset/lib/outlined-styles.scss +1 -10
  608. package/segmentedbuttonset/lib/segmented-button-set.js +1 -1
  609. package/segmentedbuttonset/lib/segmented-button-set.js.map +1 -1
  610. package/segmentedbuttonset/lib/shared-styles.css.js +1 -1
  611. package/segmentedbuttonset/lib/shared-styles.css.js.map +1 -1
  612. package/segmentedbuttonset/lib/shared-styles.scss +2 -2
  613. package/switch/_switch.scss +1 -2
  614. package/switch/harness.d.ts +1 -1
  615. package/switch/harness.js +1 -1
  616. package/switch/harness.js.map +1 -1
  617. package/switch/lib/_handle.scss +122 -0
  618. package/switch/lib/_icon.scss +33 -0
  619. package/switch/lib/_switch.scss +211 -119
  620. package/switch/lib/_track.scss +57 -0
  621. package/switch/lib/switch-styles.css.js +1 -1
  622. package/switch/lib/switch-styles.css.js.map +1 -1
  623. package/switch/lib/switch-styles.scss +1 -4
  624. package/switch/lib/switch.d.ts +51 -31
  625. package/switch/lib/switch.js +106 -70
  626. package/switch/lib/switch.js.map +1 -1
  627. package/switch/switch.d.ts +6 -1
  628. package/switch/switch.js +6 -1
  629. package/switch/switch.js.map +1 -1
  630. package/textfield/_filled-text-field.scss +1 -4
  631. package/textfield/_outlined-text-field.scss +1 -4
  632. package/textfield/filled-text-field.d.ts +2 -1
  633. package/textfield/filled-text-field.js +1 -1
  634. package/textfield/filled-text-field.js.map +1 -1
  635. package/textfield/harness.d.ts +1 -1
  636. package/textfield/harness.js +1 -1
  637. package/textfield/harness.js.map +1 -1
  638. package/textfield/lib/_filled-text-field.scss +147 -0
  639. package/textfield/lib/_icon.scss +71 -1
  640. package/textfield/lib/_input.scss +65 -21
  641. package/textfield/lib/_outlined-text-field.scss +137 -0
  642. package/textfield/lib/_shared.scss +59 -0
  643. package/textfield/lib/filled-forced-colors-styles.css.js +1 -1
  644. package/textfield/lib/filled-forced-colors-styles.css.js.map +1 -1
  645. package/textfield/lib/filled-forced-colors-styles.scss +17 -7
  646. package/textfield/lib/filled-styles.css.js +1 -1
  647. package/textfield/lib/filled-styles.css.js.map +1 -1
  648. package/textfield/lib/filled-styles.scss +2 -9
  649. package/textfield/lib/outlined-forced-colors-styles.css.js +1 -1
  650. package/textfield/lib/outlined-forced-colors-styles.css.js.map +1 -1
  651. package/textfield/lib/outlined-forced-colors-styles.scss +17 -7
  652. package/textfield/lib/outlined-styles.css.js +1 -1
  653. package/textfield/lib/outlined-styles.css.js.map +1 -1
  654. package/textfield/lib/outlined-styles.scss +2 -9
  655. package/textfield/lib/shared-styles.css.js +1 -1
  656. package/textfield/lib/shared-styles.css.js.map +1 -1
  657. package/textfield/lib/shared-styles.scss +2 -6
  658. package/textfield/lib/text-field.d.ts +88 -9
  659. package/textfield/lib/text-field.js +228 -70
  660. package/textfield/lib/text-field.js.map +1 -1
  661. package/textfield/outlined-text-field.d.ts +2 -1
  662. package/textfield/outlined-text-field.js +1 -1
  663. package/textfield/outlined-text-field.js.map +1 -1
  664. package/tokens/_index.scss +1 -1
  665. package/tokens/{latest → v0_144}/_index.scss +15 -94
  666. package/tokens/v0_144/_md-comp-assist-chip.scss +109 -0
  667. package/tokens/v0_144/_md-comp-badge.scss +58 -0
  668. package/tokens/v0_144/_md-comp-banner.scss +116 -0
  669. package/tokens/v0_144/_md-comp-bottom-app-bar.scss +36 -0
  670. package/tokens/v0_144/_md-comp-carousel-item.scss +65 -0
  671. package/tokens/v0_144/_md-comp-checkbox.scss +147 -0
  672. package/tokens/v0_144/_md-comp-circular-progress-indicator.scss +39 -0
  673. package/tokens/v0_144/_md-comp-data-table.scss +100 -0
  674. package/tokens/v0_144/_md-comp-date-input-modal.scss +89 -0
  675. package/tokens/v0_144/_md-comp-date-picker-docked.scss +246 -0
  676. package/tokens/v0_144/_md-comp-date-picker-modal.scss +305 -0
  677. package/tokens/v0_144/_md-comp-dialog.scss +146 -0
  678. package/tokens/{latest → v0_144}/_md-comp-divider.scss +5 -5
  679. package/tokens/v0_144/_md-comp-elevated-button.scss +91 -0
  680. package/tokens/v0_144/_md-comp-elevated-card.scss +59 -0
  681. package/tokens/v0_144/_md-comp-extended-fab-branded.scss +86 -0
  682. package/tokens/v0_144/_md-comp-extended-fab-primary.scss +94 -0
  683. package/tokens/v0_144/_md-comp-extended-fab-secondary.scss +95 -0
  684. package/tokens/v0_144/_md-comp-extended-fab-surface.scss +90 -0
  685. package/tokens/v0_144/_md-comp-extended-fab-tertiary.scss +97 -0
  686. package/tokens/v0_144/_md-comp-fab-branded-large.scss +61 -0
  687. package/tokens/v0_144/_md-comp-fab-branded.scss +60 -0
  688. package/tokens/v0_144/_md-comp-fab-primary-large.scss +65 -0
  689. package/tokens/v0_144/_md-comp-fab-primary-small.scss +65 -0
  690. package/tokens/v0_144/_md-comp-fab-primary.scss +65 -0
  691. package/tokens/v0_144/_md-comp-fab-secondary-large.scss +66 -0
  692. package/tokens/v0_144/_md-comp-fab-secondary-small.scss +66 -0
  693. package/tokens/v0_144/_md-comp-fab-secondary.scss +66 -0
  694. package/tokens/v0_144/_md-comp-fab-surface-large.scss +64 -0
  695. package/tokens/v0_144/_md-comp-fab-surface-small.scss +64 -0
  696. package/tokens/v0_144/_md-comp-fab-surface.scss +64 -0
  697. package/tokens/v0_144/_md-comp-fab-tertiary-large.scss +66 -0
  698. package/tokens/v0_144/_md-comp-fab-tertiary-small.scss +66 -0
  699. package/tokens/v0_144/_md-comp-fab-tertiary.scss +66 -0
  700. package/tokens/v0_144/_md-comp-filled-autocomplete.scss +268 -0
  701. package/tokens/v0_144/_md-comp-filled-button.scss +95 -0
  702. package/tokens/v0_144/_md-comp-filled-card.scss +60 -0
  703. package/tokens/v0_144/_md-comp-filled-icon-button.scss +79 -0
  704. package/tokens/v0_144/_md-comp-filled-menu-button.scss +98 -0
  705. package/tokens/v0_144/_md-comp-filled-select.scss +276 -0
  706. package/tokens/v0_144/_md-comp-filled-text-field.scss +190 -0
  707. package/tokens/v0_144/_md-comp-filled-tonal-button.scss +99 -0
  708. package/tokens/v0_144/_md-comp-filled-tonal-icon-button.scss +86 -0
  709. package/tokens/v0_144/_md-comp-filter-chip.scss +236 -0
  710. package/tokens/v0_144/_md-comp-full-screen-dialog.scss +161 -0
  711. package/tokens/v0_144/_md-comp-icon-button.scss +70 -0
  712. package/tokens/v0_144/_md-comp-input-chip.scss +234 -0
  713. package/tokens/v0_144/_md-comp-linear-progress-indicator.scss +41 -0
  714. package/tokens/v0_144/_md-comp-list.scss +257 -0
  715. package/tokens/v0_144/_md-comp-menu.scss +123 -0
  716. package/tokens/v0_144/_md-comp-navigation-bar.scss +121 -0
  717. package/tokens/v0_144/_md-comp-navigation-drawer.scss +168 -0
  718. package/tokens/v0_144/_md-comp-navigation-rail.scss +168 -0
  719. package/tokens/v0_144/_md-comp-outlined-autocomplete.scss +258 -0
  720. package/tokens/v0_144/_md-comp-outlined-button.scss +88 -0
  721. package/tokens/v0_144/_md-comp-outlined-card.scss +65 -0
  722. package/tokens/v0_144/_md-comp-outlined-icon-button.scss +81 -0
  723. package/tokens/v0_144/_md-comp-outlined-menu-button.scss +94 -0
  724. package/tokens/v0_144/_md-comp-outlined-segmented-button.scss +112 -0
  725. package/tokens/v0_144/_md-comp-outlined-select.scss +266 -0
  726. package/tokens/v0_144/_md-comp-outlined-text-field.scss +172 -0
  727. package/tokens/v0_144/_md-comp-plain-tooltip.scss +55 -0
  728. package/tokens/v0_144/_md-comp-primary-navigation-tab.scss +123 -0
  729. package/tokens/v0_144/_md-comp-radio-button.scss +68 -0
  730. package/tokens/v0_144/_md-comp-rich-tooltip.scss +121 -0
  731. package/tokens/{v0_93/_md-comp-divider.scss → v0_144/_md-comp-scrim.scss} +5 -5
  732. package/tokens/v0_144/_md-comp-search-bar.scss +99 -0
  733. package/tokens/v0_144/_md-comp-search-view.scss +93 -0
  734. package/tokens/v0_144/_md-comp-secondary-navigation-tab.scss +86 -0
  735. package/tokens/v0_144/_md-comp-sheet-bottom.scss +45 -0
  736. package/tokens/v0_144/_md-comp-sheet-floating.scss +34 -0
  737. package/tokens/v0_144/_md-comp-sheet-side.scss +89 -0
  738. package/tokens/v0_144/_md-comp-slider.scss +116 -0
  739. package/tokens/v0_144/_md-comp-snackbar.scss +103 -0
  740. package/tokens/v0_144/_md-comp-standard-menu-button.scss +98 -0
  741. package/tokens/v0_144/_md-comp-suggestion-chip.scss +125 -0
  742. package/tokens/v0_144/_md-comp-switch.scss +145 -0
  743. package/tokens/v0_144/_md-comp-text-button.scss +81 -0
  744. package/tokens/v0_144/_md-comp-time-input.scss +218 -0
  745. package/tokens/v0_144/_md-comp-time-picker.scss +267 -0
  746. package/tokens/v0_144/_md-comp-top-app-bar-large.scss +63 -0
  747. package/tokens/v0_144/_md-comp-top-app-bar-medium.scss +63 -0
  748. package/tokens/v0_144/_md-comp-top-app-bar-small-centered.scss +67 -0
  749. package/tokens/v0_144/_md-comp-top-app-bar-small.scss +65 -0
  750. package/tokens/v0_144/_md-ref-palette.scss +107 -0
  751. package/tokens/v0_144/_md-ref-typeface.scss +21 -0
  752. package/tokens/v0_144/_md-sys-color.scss +706 -0
  753. package/tokens/v0_144/_md-sys-elevation.scss +30 -0
  754. package/tokens/v0_144/_md-sys-motion.scss +53 -0
  755. package/tokens/v0_144/_md-sys-shape.scss +30 -0
  756. package/tokens/v0_144/_md-sys-state.scss +19 -0
  757. package/tokens/v0_144/_md-sys-typescale.scss +285 -0
  758. package/badge/lib/_badge-theme.scss +0 -118
  759. package/button/lib/_button-theme.scss +0 -204
  760. package/button/lib/_button.scss +0 -88
  761. package/button/lib/_elevated-button-theme.scss +0 -53
  762. package/button/lib/_elevation-theme.scss +0 -94
  763. package/button/lib/_filled-button-theme.scss +0 -53
  764. package/button/lib/_icon-theme.scss +0 -67
  765. package/button/lib/_outlined-button-theme.scss +0 -112
  766. package/button/lib/_text-button-theme.scss +0 -57
  767. package/button/lib/_tonal-button-theme.scss +0 -53
  768. package/checkbox/lib/_checkbox-theme.scss +0 -532
  769. package/chips/action/lib/adapter.d.ts +0 -21
  770. package/chips/action/lib/adapter.js +0 -7
  771. package/chips/action/lib/adapter.js.map +0 -1
  772. package/chips/action/lib/foundation.d.ts +0 -31
  773. package/chips/action/lib/foundation.js +0 -151
  774. package/chips/action/lib/foundation.js.map +0 -1
  775. package/chips/action/lib/primary-foundation.d.ts +0 -16
  776. package/chips/action/lib/primary-foundation.js +0 -24
  777. package/chips/action/lib/primary-foundation.js.map +0 -1
  778. package/chips/action/lib/trailing-action.js.map +0 -1
  779. package/chips/action/lib/trailing-foundation.d.ts +0 -16
  780. package/chips/action/lib/trailing-foundation.js +0 -23
  781. package/chips/action/lib/trailing-foundation.js.map +0 -1
  782. package/compat/animation/animationframe.js.map +0 -1
  783. package/compat/base/aria-property.d.ts +0 -39
  784. package/compat/base/aria-property.js +0 -93
  785. package/compat/base/aria-property.js.map +0 -1
  786. package/compat/base/foundation.d.ts +0 -44
  787. package/compat/base/foundation.js +0 -45
  788. package/compat/base/foundation.js.map +0 -1
  789. package/compat/base/observer.d.ts +0 -16
  790. package/compat/base/observer.js +0 -43
  791. package/compat/base/observer.js.map +0 -1
  792. package/compat/base/utils.d.ts +0 -7
  793. package/compat/base/utils.js +0 -39
  794. package/compat/base/utils.js.map +0 -1
  795. package/compat/density/_density.scss +0 -106
  796. package/compat/dom/keyboard.d.ts +0 -33
  797. package/compat/dom/keyboard.js +0 -109
  798. package/compat/dom/keyboard.js.map +0 -1
  799. package/compat/theme/_color-palette.scss +0 -277
  800. package/compat/theme/_css.scss +0 -92
  801. package/compat/theme/_custom-properties.scss +0 -309
  802. package/compat/theme/_gss.scss +0 -45
  803. package/compat/theme/_keys.scss +0 -507
  804. package/compat/theme/_map-ext.scss +0 -68
  805. package/compat/theme/_replace.scss +0 -108
  806. package/compat/theme/_selector-ext.scss +0 -522
  807. package/compat/theme/_shadow-dom.scss +0 -474
  808. package/compat/theme/_state.scss +0 -752
  809. package/compat/theme/_theme-color.scss +0 -344
  810. package/compat/theme/_theme.scss +0 -334
  811. package/compat/touchtarget/_touch-target.scss +0 -56
  812. package/fab/lib/_fab-extended-theme.scss +0 -108
  813. package/fab/lib/_fab-shared-theme.scss +0 -202
  814. package/fab/lib/_fab-shared.scss +0 -114
  815. package/fab/lib/_fab-theme.scss +0 -107
  816. package/field/lib/_content-theme.scss +0 -80
  817. package/field/lib/_filled-field-theme.scss +0 -382
  818. package/field/lib/_label-theme.scss +0 -123
  819. package/field/lib/_outlined-field-theme.scss +0 -311
  820. package/field/lib/_supporting-text-theme.scss +0 -107
  821. package/focus/lib/_focus-ring-theme.scss +0 -89
  822. package/formfield/formfield.js +0 -22
  823. package/formfield/formfield.js.map +0 -1
  824. package/formfield/lib/_formfield-theme.scss +0 -41
  825. package/formfield/lib/_formfield.scss +0 -40
  826. package/formfield/lib/formfield-styles.css.js +0 -9
  827. package/formfield/lib/formfield-styles.css.js.map +0 -1
  828. package/formfield/lib/formfield-styles.scss +0 -16
  829. package/formfield/lib/formfield.d.ts +0 -22
  830. package/formfield/lib/formfield.js +0 -73
  831. package/formfield/lib/formfield.js.map +0 -1
  832. package/iconbutton/lib/_filled-icon-button-theme.scss +0 -138
  833. package/iconbutton/lib/_filled-tonal-icon-button-theme.scss +0 -144
  834. package/iconbutton/lib/_icon-button.scss +0 -91
  835. package/iconbutton/lib/_outlined-icon-button-theme.scss +0 -187
  836. package/iconbutton/lib/_standard-icon-button-theme.scss +0 -107
  837. package/iconbutton/lib/icon-button-styles.css.js +0 -9
  838. package/iconbutton/lib/icon-button-styles.css.js.map +0 -1
  839. package/list/lib/_list-theme.scss +0 -51
  840. package/list/lib/avatar/_list-item-avatar-theme.scss +0 -30
  841. package/list/lib/divider/_list-divider-theme.scss +0 -30
  842. package/list/lib/icon/_list-item-icon-theme.scss +0 -32
  843. package/list/lib/image/_list-item-image-theme.scss +0 -36
  844. package/list/lib/listitem/_list-item-theme.scss +0 -337
  845. package/list/lib/video/_list-item-video-theme.scss +0 -36
  846. package/menu/lib/_menu-theme.scss +0 -118
  847. package/menusurface/lib/_menu-surface-theme.scss +0 -58
  848. package/navigationbar/lib/_navigation-bar-theme.scss +0 -87
  849. package/navigationdrawer/lib/_navigation-drawer-modal-theme.scss +0 -138
  850. package/navigationdrawer/lib/_navigation-drawer-theme.scss +0 -113
  851. package/navigationtab/lib/_navigation-tab-theme.scss +0 -343
  852. package/ripple/_ripple-theme.scss +0 -6
  853. package/ripple/lib/_ripple-theme.scss +0 -98
  854. package/segmentedbutton/lib/_outlined-segmented-button-theme.scss +0 -167
  855. package/segmentedbutton/lib/_segmented-button-theme.scss +0 -316
  856. package/segmentedbutton/lib/_segmented-button.scss +0 -159
  857. package/segmentedbutton/lib/segmented-button-styles.css.js +0 -9
  858. package/segmentedbutton/lib/segmented-button-styles.css.js.map +0 -1
  859. package/segmentedbuttonset/lib/_outlined-segmented-button-set-theme.scss +0 -53
  860. package/segmentedbuttonset/lib/_segmented-button-set-theme.scss +0 -41
  861. package/segmentedbuttonset/lib/_segmented-button-set.scss +0 -21
  862. package/switch/lib/_switch-handle-theme.scss +0 -137
  863. package/switch/lib/_switch-icon-theme.scss +0 -52
  864. package/switch/lib/_switch-theme.scss +0 -232
  865. package/switch/lib/_switch-track-theme.scss +0 -117
  866. package/textfield/lib/_filled-text-field-theme.scss +0 -203
  867. package/textfield/lib/_icon-theme.scss +0 -100
  868. package/textfield/lib/_input-theme.scss +0 -91
  869. package/textfield/lib/_outlined-text-field-theme.scss +0 -186
  870. package/textfield/lib/_text-field.scss +0 -28
  871. package/tokens/latest/_md-comp-assist-chip.scss +0 -98
  872. package/tokens/latest/_md-comp-badge.scss +0 -51
  873. package/tokens/latest/_md-comp-banner.scss +0 -99
  874. package/tokens/latest/_md-comp-bottom-app-bar.scss +0 -36
  875. package/tokens/latest/_md-comp-checkbox.scss +0 -119
  876. package/tokens/latest/_md-comp-circular-progress-indicator.scss +0 -37
  877. package/tokens/latest/_md-comp-date-input-modal.scss +0 -76
  878. package/tokens/latest/_md-comp-date-picker-docked.scss +0 -210
  879. package/tokens/latest/_md-comp-date-picker-modal.scss +0 -254
  880. package/tokens/latest/_md-comp-dialog.scss +0 -115
  881. package/tokens/latest/_md-comp-elevated-button.scss +0 -83
  882. package/tokens/latest/_md-comp-elevated-card.scss +0 -59
  883. package/tokens/latest/_md-comp-extended-fab-branded.scss +0 -77
  884. package/tokens/latest/_md-comp-extended-fab-primary.scss +0 -80
  885. package/tokens/latest/_md-comp-extended-fab-secondary.scss +0 -83
  886. package/tokens/latest/_md-comp-extended-fab-surface.scss +0 -81
  887. package/tokens/latest/_md-comp-extended-fab-tertiary.scss +0 -80
  888. package/tokens/latest/_md-comp-fab-branded-large.scss +0 -59
  889. package/tokens/latest/_md-comp-fab-branded.scss +0 -58
  890. package/tokens/latest/_md-comp-fab-primary-large.scss +0 -61
  891. package/tokens/latest/_md-comp-fab-primary-small.scss +0 -61
  892. package/tokens/latest/_md-comp-fab-primary.scss +0 -61
  893. package/tokens/latest/_md-comp-fab-secondary-large.scss +0 -63
  894. package/tokens/latest/_md-comp-fab-secondary-small.scss +0 -62
  895. package/tokens/latest/_md-comp-fab-secondary.scss +0 -63
  896. package/tokens/latest/_md-comp-fab-surface-large.scss +0 -62
  897. package/tokens/latest/_md-comp-fab-surface-small.scss +0 -62
  898. package/tokens/latest/_md-comp-fab-surface.scss +0 -62
  899. package/tokens/latest/_md-comp-fab-tertiary-large.scss +0 -61
  900. package/tokens/latest/_md-comp-fab-tertiary-small.scss +0 -61
  901. package/tokens/latest/_md-comp-fab-tertiary.scss +0 -61
  902. package/tokens/latest/_md-comp-filled-autocomplete.scss +0 -235
  903. package/tokens/latest/_md-comp-filled-button.scss +0 -87
  904. package/tokens/latest/_md-comp-filled-card.scss +0 -59
  905. package/tokens/latest/_md-comp-filled-icon-button.scss +0 -72
  906. package/tokens/latest/_md-comp-filled-menu-button.scss +0 -89
  907. package/tokens/latest/_md-comp-filled-select.scss +0 -243
  908. package/tokens/latest/_md-comp-filled-text-field.scss +0 -146
  909. package/tokens/latest/_md-comp-filled-tonal-button.scss +0 -88
  910. package/tokens/latest/_md-comp-filled-tonal-icon-button.scss +0 -83
  911. package/tokens/latest/_md-comp-filter-chip.scss +0 -172
  912. package/tokens/latest/_md-comp-full-screen-dialog.scss +0 -131
  913. package/tokens/latest/_md-comp-icon-button.scss +0 -66
  914. package/tokens/latest/_md-comp-input-chip.scss +0 -112
  915. package/tokens/latest/_md-comp-linear-progress-indicator.scss +0 -39
  916. package/tokens/latest/_md-comp-list.scss +0 -205
  917. package/tokens/latest/_md-comp-menu.scss +0 -113
  918. package/tokens/latest/_md-comp-navigation-bar.scss +0 -97
  919. package/tokens/latest/_md-comp-navigation-drawer.scss +0 -137
  920. package/tokens/latest/_md-comp-navigation-rail.scss +0 -132
  921. package/tokens/latest/_md-comp-outlined-autocomplete.scss +0 -223
  922. package/tokens/latest/_md-comp-outlined-button.scss +0 -80
  923. package/tokens/latest/_md-comp-outlined-card.scss +0 -65
  924. package/tokens/latest/_md-comp-outlined-icon-button.scss +0 -68
  925. package/tokens/latest/_md-comp-outlined-menu-button.scss +0 -83
  926. package/tokens/latest/_md-comp-outlined-segmented-button.scss +0 -97
  927. package/tokens/latest/_md-comp-outlined-select.scss +0 -231
  928. package/tokens/latest/_md-comp-outlined-text-field.scss +0 -140
  929. package/tokens/latest/_md-comp-plain-tooltip.scss +0 -46
  930. package/tokens/latest/_md-comp-primary-navigation-tab.scss +0 -110
  931. package/tokens/latest/_md-comp-radio-button.scss +0 -58
  932. package/tokens/latest/_md-comp-rich-tooltip.scss +0 -98
  933. package/tokens/latest/_md-comp-search-bar.scss +0 -84
  934. package/tokens/latest/_md-comp-search-view.scss +0 -79
  935. package/tokens/latest/_md-comp-secondary-navigation-tab.scss +0 -78
  936. package/tokens/latest/_md-comp-sheet-bottom.scss +0 -41
  937. package/tokens/latest/_md-comp-sheet-floating.scss +0 -34
  938. package/tokens/latest/_md-comp-sheet-side.scss +0 -75
  939. package/tokens/latest/_md-comp-slider.scss +0 -105
  940. package/tokens/latest/_md-comp-snackbar.scss +0 -91
  941. package/tokens/latest/_md-comp-standard-menu-button.scss +0 -82
  942. package/tokens/latest/_md-comp-suggestion-chip.scss +0 -90
  943. package/tokens/latest/_md-comp-switch.scss +0 -126
  944. package/tokens/latest/_md-comp-text-button.scss +0 -75
  945. package/tokens/latest/_md-comp-time-input.scss +0 -184
  946. package/tokens/latest/_md-comp-time-picker.scss +0 -235
  947. package/tokens/latest/_md-comp-top-app-bar-large.scss +0 -57
  948. package/tokens/latest/_md-comp-top-app-bar-medium.scss +0 -56
  949. package/tokens/latest/_md-comp-top-app-bar-small-centered.scss +0 -60
  950. package/tokens/latest/_md-comp-top-app-bar-small.scss +0 -58
  951. package/tokens/latest/_md-ref-palette.scss +0 -95
  952. package/tokens/latest/_md-ref-typeface.scss +0 -20
  953. package/tokens/latest/_md-sys-color.scss +0 -1006
  954. package/tokens/latest/_md-sys-elevation.scss +0 -30
  955. package/tokens/latest/_md-sys-motion.scss +0 -51
  956. package/tokens/latest/_md-sys-shape.scss +0 -26
  957. package/tokens/latest/_md-sys-state.scss +0 -19
  958. package/tokens/latest/_md-sys-typescale.scss +0 -204
  959. package/tokens/v0_75/_index.scss +0 -154
  960. package/tokens/v0_75/_md-comp-assist-chip.scss +0 -98
  961. package/tokens/v0_75/_md-comp-badge.scss +0 -51
  962. package/tokens/v0_75/_md-comp-banner.scss +0 -99
  963. package/tokens/v0_75/_md-comp-bottom-app-bar.scss +0 -36
  964. package/tokens/v0_75/_md-comp-checkbox.scss +0 -59
  965. package/tokens/v0_75/_md-comp-circular-progress-indicator.scss +0 -37
  966. package/tokens/v0_75/_md-comp-dialog.scss +0 -102
  967. package/tokens/v0_75/_md-comp-elevated-button.scss +0 -83
  968. package/tokens/v0_75/_md-comp-elevated-card.scss +0 -56
  969. package/tokens/v0_75/_md-comp-extended-fab-branded.scss +0 -77
  970. package/tokens/v0_75/_md-comp-extended-fab-primary.scss +0 -80
  971. package/tokens/v0_75/_md-comp-extended-fab-secondary.scss +0 -83
  972. package/tokens/v0_75/_md-comp-extended-fab-surface.scss +0 -81
  973. package/tokens/v0_75/_md-comp-extended-fab-tertiary.scss +0 -80
  974. package/tokens/v0_75/_md-comp-fab-branded-large.scss +0 -59
  975. package/tokens/v0_75/_md-comp-fab-branded.scss +0 -58
  976. package/tokens/v0_75/_md-comp-fab-primary-large.scss +0 -61
  977. package/tokens/v0_75/_md-comp-fab-primary-small.scss +0 -61
  978. package/tokens/v0_75/_md-comp-fab-primary.scss +0 -61
  979. package/tokens/v0_75/_md-comp-fab-secondary-large.scss +0 -63
  980. package/tokens/v0_75/_md-comp-fab-secondary-small.scss +0 -62
  981. package/tokens/v0_75/_md-comp-fab-secondary.scss +0 -63
  982. package/tokens/v0_75/_md-comp-fab-surface-large.scss +0 -62
  983. package/tokens/v0_75/_md-comp-fab-surface-small.scss +0 -62
  984. package/tokens/v0_75/_md-comp-fab-surface.scss +0 -62
  985. package/tokens/v0_75/_md-comp-fab-tertiary-large.scss +0 -61
  986. package/tokens/v0_75/_md-comp-fab-tertiary-small.scss +0 -61
  987. package/tokens/v0_75/_md-comp-fab-tertiary.scss +0 -61
  988. package/tokens/v0_75/_md-comp-filled-button-tonal.scss +0 -84
  989. package/tokens/v0_75/_md-comp-filled-button.scss +0 -87
  990. package/tokens/v0_75/_md-comp-filled-card.scss +0 -56
  991. package/tokens/v0_75/_md-comp-filled-icon-button.scss +0 -72
  992. package/tokens/v0_75/_md-comp-filled-text-field.scss +0 -142
  993. package/tokens/v0_75/_md-comp-filled-tonal-button.scss +0 -88
  994. package/tokens/v0_75/_md-comp-filled-tonal-icon-button.scss +0 -83
  995. package/tokens/v0_75/_md-comp-filter-chip.scss +0 -172
  996. package/tokens/v0_75/_md-comp-full-screen-dialog.scss +0 -131
  997. package/tokens/v0_75/_md-comp-icon-button.scss +0 -79
  998. package/tokens/v0_75/_md-comp-input-chip.scss +0 -112
  999. package/tokens/v0_75/_md-comp-linear-progress-indicator.scss +0 -39
  1000. package/tokens/v0_75/_md-comp-list.scss +0 -205
  1001. package/tokens/v0_75/_md-comp-menu.scss +0 -113
  1002. package/tokens/v0_75/_md-comp-navigation-bar.scss +0 -131
  1003. package/tokens/v0_75/_md-comp-navigation-drawer.scss +0 -137
  1004. package/tokens/v0_75/_md-comp-navigation-rail.scss +0 -136
  1005. package/tokens/v0_75/_md-comp-outlined-button.scss +0 -80
  1006. package/tokens/v0_75/_md-comp-outlined-card.scss +0 -62
  1007. package/tokens/v0_75/_md-comp-outlined-icon-button.scss +0 -68
  1008. package/tokens/v0_75/_md-comp-outlined-segmented-button.scss +0 -96
  1009. package/tokens/v0_75/_md-comp-outlined-text-field.scss +0 -136
  1010. package/tokens/v0_75/_md-comp-primary-navigation-tab.scss +0 -116
  1011. package/tokens/v0_75/_md-comp-radio-button.scss +0 -58
  1012. package/tokens/v0_75/_md-comp-rich-tooltip.scss +0 -98
  1013. package/tokens/v0_75/_md-comp-secondary-navigation-tab.scss +0 -75
  1014. package/tokens/v0_75/_md-comp-slider.scss +0 -129
  1015. package/tokens/v0_75/_md-comp-snackbar.scss +0 -77
  1016. package/tokens/v0_75/_md-comp-suggestion-chip.scss +0 -90
  1017. package/tokens/v0_75/_md-comp-switch.scss +0 -92
  1018. package/tokens/v0_75/_md-comp-text-button.scss +0 -75
  1019. package/tokens/v0_75/_md-comp-top-app-bar-compact-centered.scss +0 -53
  1020. package/tokens/v0_75/_md-comp-top-app-bar-compact.scss +0 -43
  1021. package/tokens/v0_75/_md-comp-top-app-bar-large.scss +0 -57
  1022. package/tokens/v0_75/_md-comp-top-app-bar-medium.scss +0 -56
  1023. package/tokens/v0_75/_md-comp-top-app-bar-small-centered.scss +0 -60
  1024. package/tokens/v0_75/_md-comp-top-app-bar-small.scss +0 -58
  1025. package/tokens/v0_75/_md-ref-palette.scss +0 -186
  1026. package/tokens/v0_75/_md-ref-typeface.scss +0 -25
  1027. package/tokens/v0_75/_md-sys-color.scss +0 -86
  1028. package/tokens/v0_75/_md-sys-elevation.scss +0 -30
  1029. package/tokens/v0_75/_md-sys-motion.scss +0 -61
  1030. package/tokens/v0_75/_md-sys-shape.scss +0 -29
  1031. package/tokens/v0_75/_md-sys-state.scss +0 -19
  1032. package/tokens/v0_75/_md-sys-typescale.scss +0 -252
  1033. package/tokens/v0_93/_index.scss +0 -184
  1034. package/tokens/v0_93/_md-comp-assist-chip.scss +0 -98
  1035. package/tokens/v0_93/_md-comp-badge.scss +0 -51
  1036. package/tokens/v0_93/_md-comp-banner.scss +0 -99
  1037. package/tokens/v0_93/_md-comp-bottom-app-bar.scss +0 -36
  1038. package/tokens/v0_93/_md-comp-checkbox.scss +0 -119
  1039. package/tokens/v0_93/_md-comp-circular-progress-indicator.scss +0 -37
  1040. package/tokens/v0_93/_md-comp-date-input-modal.scss +0 -76
  1041. package/tokens/v0_93/_md-comp-date-picker-docked.scss +0 -210
  1042. package/tokens/v0_93/_md-comp-date-picker-modal.scss +0 -254
  1043. package/tokens/v0_93/_md-comp-dialog.scss +0 -101
  1044. package/tokens/v0_93/_md-comp-elevated-button.scss +0 -83
  1045. package/tokens/v0_93/_md-comp-elevated-card.scss +0 -59
  1046. package/tokens/v0_93/_md-comp-extended-fab-branded.scss +0 -77
  1047. package/tokens/v0_93/_md-comp-extended-fab-primary.scss +0 -80
  1048. package/tokens/v0_93/_md-comp-extended-fab-secondary.scss +0 -83
  1049. package/tokens/v0_93/_md-comp-extended-fab-surface.scss +0 -81
  1050. package/tokens/v0_93/_md-comp-extended-fab-tertiary.scss +0 -80
  1051. package/tokens/v0_93/_md-comp-fab-branded-large.scss +0 -59
  1052. package/tokens/v0_93/_md-comp-fab-branded.scss +0 -58
  1053. package/tokens/v0_93/_md-comp-fab-primary-large.scss +0 -61
  1054. package/tokens/v0_93/_md-comp-fab-primary-small.scss +0 -61
  1055. package/tokens/v0_93/_md-comp-fab-primary.scss +0 -61
  1056. package/tokens/v0_93/_md-comp-fab-secondary-large.scss +0 -63
  1057. package/tokens/v0_93/_md-comp-fab-secondary-small.scss +0 -62
  1058. package/tokens/v0_93/_md-comp-fab-secondary.scss +0 -63
  1059. package/tokens/v0_93/_md-comp-fab-surface-large.scss +0 -62
  1060. package/tokens/v0_93/_md-comp-fab-surface-small.scss +0 -62
  1061. package/tokens/v0_93/_md-comp-fab-surface.scss +0 -62
  1062. package/tokens/v0_93/_md-comp-fab-tertiary-large.scss +0 -61
  1063. package/tokens/v0_93/_md-comp-fab-tertiary-small.scss +0 -61
  1064. package/tokens/v0_93/_md-comp-fab-tertiary.scss +0 -61
  1065. package/tokens/v0_93/_md-comp-filled-autocomplete.scss +0 -235
  1066. package/tokens/v0_93/_md-comp-filled-button.scss +0 -87
  1067. package/tokens/v0_93/_md-comp-filled-card.scss +0 -59
  1068. package/tokens/v0_93/_md-comp-filled-icon-button.scss +0 -72
  1069. package/tokens/v0_93/_md-comp-filled-menu-button.scss +0 -89
  1070. package/tokens/v0_93/_md-comp-filled-select.scss +0 -243
  1071. package/tokens/v0_93/_md-comp-filled-text-field.scss +0 -146
  1072. package/tokens/v0_93/_md-comp-filled-tonal-button.scss +0 -88
  1073. package/tokens/v0_93/_md-comp-filled-tonal-icon-button.scss +0 -83
  1074. package/tokens/v0_93/_md-comp-filter-chip.scss +0 -172
  1075. package/tokens/v0_93/_md-comp-full-screen-dialog.scss +0 -131
  1076. package/tokens/v0_93/_md-comp-icon-button.scss +0 -66
  1077. package/tokens/v0_93/_md-comp-input-chip.scss +0 -112
  1078. package/tokens/v0_93/_md-comp-linear-progress-indicator.scss +0 -39
  1079. package/tokens/v0_93/_md-comp-list.scss +0 -205
  1080. package/tokens/v0_93/_md-comp-menu.scss +0 -113
  1081. package/tokens/v0_93/_md-comp-navigation-bar.scss +0 -97
  1082. package/tokens/v0_93/_md-comp-navigation-drawer.scss +0 -137
  1083. package/tokens/v0_93/_md-comp-navigation-rail.scss +0 -132
  1084. package/tokens/v0_93/_md-comp-outlined-autocomplete.scss +0 -223
  1085. package/tokens/v0_93/_md-comp-outlined-button.scss +0 -80
  1086. package/tokens/v0_93/_md-comp-outlined-card.scss +0 -65
  1087. package/tokens/v0_93/_md-comp-outlined-icon-button.scss +0 -68
  1088. package/tokens/v0_93/_md-comp-outlined-menu-button.scss +0 -83
  1089. package/tokens/v0_93/_md-comp-outlined-segmented-button.scss +0 -97
  1090. package/tokens/v0_93/_md-comp-outlined-select.scss +0 -231
  1091. package/tokens/v0_93/_md-comp-outlined-text-field.scss +0 -140
  1092. package/tokens/v0_93/_md-comp-plain-tooltip.scss +0 -46
  1093. package/tokens/v0_93/_md-comp-primary-navigation-tab.scss +0 -110
  1094. package/tokens/v0_93/_md-comp-radio-button.scss +0 -58
  1095. package/tokens/v0_93/_md-comp-rich-tooltip.scss +0 -98
  1096. package/tokens/v0_93/_md-comp-search-bar.scss +0 -84
  1097. package/tokens/v0_93/_md-comp-search-view.scss +0 -79
  1098. package/tokens/v0_93/_md-comp-secondary-navigation-tab.scss +0 -78
  1099. package/tokens/v0_93/_md-comp-sheet-bottom.scss +0 -41
  1100. package/tokens/v0_93/_md-comp-sheet-side.scss +0 -75
  1101. package/tokens/v0_93/_md-comp-slider.scss +0 -105
  1102. package/tokens/v0_93/_md-comp-snackbar.scss +0 -91
  1103. package/tokens/v0_93/_md-comp-standard-menu-button.scss +0 -82
  1104. package/tokens/v0_93/_md-comp-suggestion-chip.scss +0 -90
  1105. package/tokens/v0_93/_md-comp-switch.scss +0 -126
  1106. package/tokens/v0_93/_md-comp-text-button.scss +0 -75
  1107. package/tokens/v0_93/_md-comp-time-input.scss +0 -184
  1108. package/tokens/v0_93/_md-comp-time-picker.scss +0 -235
  1109. package/tokens/v0_93/_md-comp-top-app-bar-large.scss +0 -57
  1110. package/tokens/v0_93/_md-comp-top-app-bar-medium.scss +0 -56
  1111. package/tokens/v0_93/_md-comp-top-app-bar-small-centered.scss +0 -60
  1112. package/tokens/v0_93/_md-comp-top-app-bar-small.scss +0 -58
  1113. package/tokens/v0_93/_md-ref-palette.scss +0 -95
  1114. package/tokens/v0_93/_md-ref-typeface.scss +0 -20
  1115. package/tokens/v0_93/_md-sys-color.scss +0 -1006
  1116. package/tokens/v0_93/_md-sys-elevation.scss +0 -30
  1117. package/tokens/v0_93/_md-sys-motion.scss +0 -51
  1118. package/tokens/v0_93/_md-sys-shape.scss +0 -26
  1119. package/tokens/v0_93/_md-sys-state.scss +0 -19
  1120. package/tokens/v0_93/_md-sys-typescale.scss +0 -204
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chip.js","sourceRoot":"","sources":["chip.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 '../../action/delete-action.js';\n\nimport {html, TemplateResult} from 'lit';\nimport {property} from 'lit/decorators.js';\nimport {ClassInfo} from 'lit/directives/class-map.js';\n\nimport {ActionElement} from '../../../actionelement/action-element.js';\nimport {ariaProperty} from '../../../decorators/aria-property.js';\n\n/** Defines the border type of a chip. */\nexport enum BorderType {\n ELEVATED = 'ELEVATED',\n HAIRLINE = 'HAIRLINE',\n}\n\n/** Defines the shape of the vertical edge of a chip. */\nexport enum EdgeType {\n ROUNDED = 'ROUNDED',\n STRAIGHT = 'STRAIGHT',\n}\n\n/** @soyCompatible */\nexport abstract class Chip extends ActionElement {\n @property({type: Boolean, reflect: true}) isFocusable = false;\n\n @property({type: Boolean, reflect: true}) isTouchable = false;\n\n @property({type: Boolean, reflect: true}) disabled = false;\n\n @property({type: Boolean, reflect: true}) hasAvatar = false;\n\n @property({type: Boolean, reflect: true}) hasDeleteAction = false;\n\n @property({type: String}) icon = '';\n\n @property({type: String}) label = '';\n\n @property({type: String}) borderType = BorderType.HAIRLINE;\n\n @property({type: String}) edgeType = EdgeType.ROUNDED;\n\n @property({type: String}) addedAnnouncement = '';\n\n @property({type: String}) removedAnnouncement = '';\n\n @property({type: String}) closeActionAriaLabel = '';\n\n /** @soyPrefixAttribute */\n @ariaProperty // tslint:disable-line:no-new-decorators\n @property({type: String, attribute: 'aria-label'})\n override ariaLabel!: string;\n\n /** @soyTemplate */\n protected getRootClasses(): ClassInfo {\n const hasIcon = this.icon.trim().length > 0;\n return {\n 'md3-chip': true,\n 'md3-chip--disabled': this.disabled,\n 'md3-chip--touch': this.isTouchable,\n 'md3-chip--with-primary-graphic': hasIcon,\n 'md3-chip--with-primary-icon': hasIcon,\n 'md3-chip--with-avatar': this.hasAvatar,\n 'md3-chip--with-delete-action': this.hasDeleteAction,\n };\n }\n\n /** @soyTemplate */\n protected renderOverlay(): TemplateResult {\n return this.borderType === BorderType.ELEVATED ?\n html`<div class=\"md3-elevation-overlay\" aria-hidden=\"true\"></div>` :\n html``;\n }\n\n /** @soyTemplate */\n protected renderDeleteAction(): TemplateResult {\n if (!this.hasDeleteAction) {\n return html``;\n } else {\n return html`\n <span class=\"md3-chip__cell md3-chip__cell--delete\"\n role=\"gridcell\">\n <md-delete-action\n ?disabled=${this.disabled}\n ?isFocusable=${this.isFocusable}\n ?isTouchable=${this.isTouchable}\n .ariaLabel=${this.closeActionAriaLabel}>\n </md-delete-action>\n </span>`;\n }\n }\n}\n"]}
@@ -3,9 +3,8 @@
3
3
  * Copyright 2022 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { AnimationFrame } from '@material/web/compat/animation/animationframe.js';
7
- import { KEY } from '@material/web/compat/dom/keyboard.js';
8
6
  import { MDCChipActionFocusBehavior, MDCChipActionInteractionTrigger, MDCChipActionType } from '../../action/lib/constants.js';
7
+ import { AnimationFrame } from './animationframe.js';
9
8
  import { MDCChipAnimation, MDCChipAttributes, MDCChipCssClasses, MDCChipEvents } from './constants.js';
10
9
  var Direction;
11
10
  (function (Direction) {
@@ -177,8 +176,8 @@ export class MDCChipFoundation {
177
176
  });
178
177
  }
179
178
  directionFromKey(key, isRTL) {
180
- const isLeftKey = key === KEY.ARROW_LEFT;
181
- const isRightKey = key === KEY.ARROW_RIGHT;
179
+ const isLeftKey = key === 'ArrowLeft';
180
+ const isRightKey = key === 'ArrowRight';
182
181
  if (!isRTL && isLeftKey || isRTL && isRightKey) {
183
182
  return Direction.LEFT;
184
183
  }
@@ -1 +1 @@
1
- {"version":3,"file":"foundation.js","sourceRoot":"","sources":["foundation.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 {AnimationFrame} from '@material/web/compat/animation/animationframe.js';\nimport {KEY} from '@material/web/compat/dom/keyboard.js';\n\nimport {MDCChipActionFocusBehavior, MDCChipActionInteractionTrigger, MDCChipActionType} from '../../action/lib/constants.js';\nimport {MDCChipActionInteractionEventDetail} from '../../action/lib/types.js';\n\nimport {MDCChipAdapter} from './adapter.js';\nimport {MDCChipAnimation, MDCChipAttributes, MDCChipCssClasses, MDCChipEvents} from './constants.js';\nimport {ActionInteractionEvent, ActionNavigationEvent, MDCChipAnimationEventDetail, MDCChipInteractionEventDetail, MDCChipNavigationEventDetail} from './types.js';\n\ninterface Navigation {\n from: MDCChipActionType;\n to: MDCChipActionType;\n}\n\nenum Direction {\n UNSPECIFIED, // Default\n LEFT,\n RIGHT,\n}\n\nenum AnimationKeys {\n SELECTION = 'selection',\n EXIT = 'exit',\n}\n\n/**\n * MDCChipFoundation provides a foundation for all chips.\n */\nexport class MDCChipFoundation {\n private readonly adapter: MDCChipAdapter;\n\n static get defaultAdapter(): MDCChipAdapter {\n return {\n addClass: () => undefined,\n emitEvent: () => undefined,\n getActions: () => [],\n getAttribute: () => null,\n getElementID: () => '',\n getOffsetWidth: () => 0,\n hasClass: () => false,\n isActionDisabled: () => false,\n isActionFocusable: () => false,\n isActionSelectable: () => false,\n isActionSelected: () => false,\n isRTL: () => false,\n removeClass: () => undefined,\n setActionDisabled: () => undefined,\n setActionFocus: () => undefined,\n setActionSelected: () => undefined,\n setStyleProperty: () => undefined,\n };\n }\n\n private readonly animFrame: AnimationFrame;\n\n constructor(adapter?: Partial<MDCChipAdapter>) {\n this.adapter = {...MDCChipFoundation.defaultAdapter, ...adapter};\n this.animFrame = new AnimationFrame();\n }\n\n destroy() {\n this.animFrame.cancelAll();\n }\n\n getElementID() {\n return this.adapter.getElementID();\n }\n\n setDisabled(isDisabled: boolean) {\n const actions = this.getActions();\n for (const action of actions) {\n this.adapter.setActionDisabled(action, isDisabled);\n }\n\n if (isDisabled) {\n this.adapter.addClass(MDCChipCssClasses.DISABLED);\n } else {\n this.adapter.removeClass(MDCChipCssClasses.DISABLED);\n }\n }\n\n isDisabled(): boolean {\n const actions = this.getActions();\n for (const action of actions) {\n if (this.adapter.isActionDisabled(action)) {\n return true;\n }\n }\n return false;\n }\n\n getActions(): MDCChipActionType[] {\n return this.adapter.getActions();\n }\n\n isActionFocusable(action: MDCChipActionType): boolean {\n return this.adapter.isActionFocusable(action);\n }\n\n isActionSelectable(action: MDCChipActionType): boolean {\n return this.adapter.isActionSelectable(action);\n }\n\n isActionSelected(action: MDCChipActionType): boolean {\n return this.adapter.isActionSelected(action);\n }\n\n setActionFocus(action: MDCChipActionType, focus: MDCChipActionFocusBehavior) {\n this.adapter.setActionFocus(action, focus);\n }\n\n setActionSelected(action: MDCChipActionType, isSelected: boolean) {\n this.adapter.setActionSelected(action, isSelected);\n this.animateSelection(isSelected);\n }\n\n startAnimation(animation: MDCChipAnimation) {\n if (animation === MDCChipAnimation.ENTER) {\n this.adapter.addClass(MDCChipCssClasses.ENTER);\n return;\n }\n\n if (animation === MDCChipAnimation.EXIT) {\n this.adapter.addClass(MDCChipCssClasses.EXIT);\n return;\n }\n }\n\n handleAnimationEnd(event: AnimationEvent) {\n const {animationName} = event;\n if (animationName === MDCChipAnimation.ENTER) {\n this.adapter.removeClass(MDCChipCssClasses.ENTER);\n this.adapter.emitEvent<MDCChipAnimationEventDetail>(\n MDCChipEvents.ANIMATION, {\n chipID: this.getElementID(),\n animation: MDCChipAnimation.ENTER,\n addedAnnouncement: this.getAddedAnnouncement(),\n isComplete: true,\n });\n return;\n }\n\n if (animationName === MDCChipAnimation.EXIT) {\n this.adapter.removeClass(MDCChipCssClasses.EXIT);\n this.adapter.addClass(MDCChipCssClasses.HIDDEN);\n const width = this.adapter.getOffsetWidth();\n this.adapter.setStyleProperty('width', `${width}px`);\n // Wait two frames so the width gets applied correctly.\n this.animFrame.request(AnimationKeys.EXIT, () => {\n this.animFrame.request(AnimationKeys.EXIT, () => {\n this.adapter.setStyleProperty('width', '0');\n });\n });\n }\n }\n\n handleTransitionEnd() {\n if (!this.adapter.hasClass(MDCChipCssClasses.HIDDEN)) return;\n\n this.adapter.emitEvent<MDCChipAnimationEventDetail>(\n MDCChipEvents.ANIMATION, {\n chipID: this.getElementID(),\n animation: MDCChipAnimation.EXIT,\n removedAnnouncement: this.getRemovedAnnouncement(),\n isComplete: true,\n });\n }\n\n handleActionInteraction({detail}: ActionInteractionEvent) {\n const {source, actionID} = detail;\n const isSelectable = this.adapter.isActionSelectable(source);\n const isSelected = this.adapter.isActionSelected(source);\n\n this.adapter.emitEvent<MDCChipInteractionEventDetail>(\n MDCChipEvents.INTERACTION, {\n chipID: this.getElementID(),\n shouldRemove: this.shouldRemove(detail),\n actionID,\n isSelectable,\n isSelected,\n source,\n });\n }\n\n handleActionNavigation({detail}: ActionNavigationEvent) {\n const {source, key} = detail;\n const isRTL = this.adapter.isRTL();\n const isTrailingActionFocusable =\n this.adapter.isActionFocusable(MDCChipActionType.TRAILING);\n const isPrimaryActionFocusable =\n this.adapter.isActionFocusable(MDCChipActionType.PRIMARY);\n const dir = this.directionFromKey(key, isRTL);\n\n const shouldNavigateToTrailing = source === MDCChipActionType.PRIMARY &&\n dir === Direction.RIGHT && isTrailingActionFocusable;\n\n const shouldNavigateToPrimary = source === MDCChipActionType.TRAILING &&\n dir === Direction.LEFT && isPrimaryActionFocusable;\n\n if (shouldNavigateToTrailing) {\n this.navigateActions({from: source, to: MDCChipActionType.TRAILING});\n return;\n }\n\n if (shouldNavigateToPrimary) {\n this.navigateActions({from: source, to: MDCChipActionType.PRIMARY});\n return;\n }\n\n this.adapter.emitEvent<MDCChipNavigationEventDetail>(\n MDCChipEvents.NAVIGATION, {\n chipID: this.getElementID(),\n isRTL,\n source,\n key,\n });\n }\n\n private directionFromKey(key: string, isRTL: boolean): Direction {\n const isLeftKey = key === KEY.ARROW_LEFT;\n const isRightKey = key === KEY.ARROW_RIGHT;\n if (!isRTL && isLeftKey || isRTL && isRightKey) {\n return Direction.LEFT;\n }\n\n if (!isRTL && isRightKey || isRTL && isLeftKey) {\n return Direction.RIGHT;\n }\n\n return Direction.UNSPECIFIED;\n }\n\n private navigateActions(nav: Navigation) {\n this.adapter.setActionFocus(\n nav.from, MDCChipActionFocusBehavior.NOT_FOCUSABLE);\n this.adapter.setActionFocus(\n nav.to, MDCChipActionFocusBehavior.FOCUSABLE_AND_FOCUSED);\n }\n\n private shouldRemove({source, trigger}: MDCChipActionInteractionEventDetail):\n boolean {\n if (trigger === MDCChipActionInteractionTrigger.BACKSPACE_KEY ||\n trigger === MDCChipActionInteractionTrigger.DELETE_KEY) {\n return true;\n }\n\n return source === MDCChipActionType.TRAILING;\n }\n\n private getRemovedAnnouncement(): string|undefined {\n const msg =\n this.adapter.getAttribute(MDCChipAttributes.DATA_REMOVED_ANNOUNCEMENT);\n return msg || undefined;\n }\n\n private getAddedAnnouncement(): string|undefined {\n const msg =\n this.adapter.getAttribute(MDCChipAttributes.DATA_ADDED_ANNOUNCEMENT);\n return msg || undefined;\n }\n\n private animateSelection(isSelected: boolean) {\n this.resetAnimationStyles();\n // Wait two frames to ensure the animation classes are unset\n this.animFrame.request(AnimationKeys.SELECTION, () => {\n this.animFrame.request(AnimationKeys.SELECTION, () => {\n this.updateSelectionStyles(isSelected);\n });\n });\n }\n\n private resetAnimationStyles() {\n this.adapter.removeClass(MDCChipCssClasses.SELECTING);\n this.adapter.removeClass(MDCChipCssClasses.DESELECTING);\n this.adapter.removeClass(MDCChipCssClasses.SELECTING_WITH_PRIMARY_ICON);\n this.adapter.removeClass(MDCChipCssClasses.DESELECTING_WITH_PRIMARY_ICON);\n }\n\n private updateSelectionStyles(isSelected: boolean) {\n const hasIcon = this.adapter.hasClass(MDCChipCssClasses.WITH_PRIMARY_ICON);\n if (hasIcon && isSelected) {\n this.adapter.addClass(MDCChipCssClasses.SELECTING_WITH_PRIMARY_ICON);\n this.animFrame.request(AnimationKeys.SELECTION, () => {\n this.adapter.addClass(MDCChipCssClasses.SELECTED);\n });\n return;\n }\n\n if (hasIcon && !isSelected) {\n this.adapter.addClass(MDCChipCssClasses.DESELECTING_WITH_PRIMARY_ICON);\n this.animFrame.request(AnimationKeys.SELECTION, () => {\n this.adapter.removeClass(MDCChipCssClasses.SELECTED);\n });\n return;\n }\n\n if (isSelected) {\n this.adapter.addClass(MDCChipCssClasses.SELECTING);\n this.animFrame.request(AnimationKeys.SELECTION, () => {\n this.adapter.addClass(MDCChipCssClasses.SELECTED);\n });\n return;\n }\n\n if (!isSelected) {\n this.adapter.addClass(MDCChipCssClasses.DESELECTING);\n this.animFrame.request(AnimationKeys.SELECTION, () => {\n this.adapter.removeClass(MDCChipCssClasses.SELECTED);\n });\n return;\n }\n }\n}\n\n"]}
1
+ {"version":3,"file":"foundation.js","sourceRoot":"","sources":["foundation.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 {MDCChipActionFocusBehavior, MDCChipActionInteractionTrigger, MDCChipActionType} from '../../action/lib/constants.js';\nimport {MDCChipActionInteractionEventDetail} from '../../action/lib/types.js';\n\nimport {MDCChipAdapter} from './adapter.js';\nimport {AnimationFrame} from './animationframe.js';\nimport {MDCChipAnimation, MDCChipAttributes, MDCChipCssClasses, MDCChipEvents} from './constants.js';\nimport {ActionInteractionEvent, ActionNavigationEvent, MDCChipAnimationEventDetail, MDCChipInteractionEventDetail, MDCChipNavigationEventDetail} from './types.js';\n\ninterface Navigation {\n from: MDCChipActionType;\n to: MDCChipActionType;\n}\n\nenum Direction {\n UNSPECIFIED, // Default\n LEFT,\n RIGHT,\n}\n\nenum AnimationKeys {\n SELECTION = 'selection',\n EXIT = 'exit',\n}\n\n/**\n * MDCChipFoundation provides a foundation for all chips.\n */\nexport class MDCChipFoundation {\n private readonly adapter: MDCChipAdapter;\n\n static get defaultAdapter(): MDCChipAdapter {\n return {\n addClass: () => undefined,\n emitEvent: () => undefined,\n getActions: () => [],\n getAttribute: () => null,\n getElementID: () => '',\n getOffsetWidth: () => 0,\n hasClass: () => false,\n isActionDisabled: () => false,\n isActionFocusable: () => false,\n isActionSelectable: () => false,\n isActionSelected: () => false,\n isRTL: () => false,\n removeClass: () => undefined,\n setActionDisabled: () => undefined,\n setActionFocus: () => undefined,\n setActionSelected: () => undefined,\n setStyleProperty: () => undefined,\n };\n }\n\n private readonly animFrame: AnimationFrame;\n\n constructor(adapter?: Partial<MDCChipAdapter>) {\n this.adapter = {...MDCChipFoundation.defaultAdapter, ...adapter};\n this.animFrame = new AnimationFrame();\n }\n\n destroy() {\n this.animFrame.cancelAll();\n }\n\n getElementID() {\n return this.adapter.getElementID();\n }\n\n setDisabled(isDisabled: boolean) {\n const actions = this.getActions();\n for (const action of actions) {\n this.adapter.setActionDisabled(action, isDisabled);\n }\n\n if (isDisabled) {\n this.adapter.addClass(MDCChipCssClasses.DISABLED);\n } else {\n this.adapter.removeClass(MDCChipCssClasses.DISABLED);\n }\n }\n\n isDisabled(): boolean {\n const actions = this.getActions();\n for (const action of actions) {\n if (this.adapter.isActionDisabled(action)) {\n return true;\n }\n }\n return false;\n }\n\n getActions(): MDCChipActionType[] {\n return this.adapter.getActions();\n }\n\n isActionFocusable(action: MDCChipActionType): boolean {\n return this.adapter.isActionFocusable(action);\n }\n\n isActionSelectable(action: MDCChipActionType): boolean {\n return this.adapter.isActionSelectable(action);\n }\n\n isActionSelected(action: MDCChipActionType): boolean {\n return this.adapter.isActionSelected(action);\n }\n\n setActionFocus(action: MDCChipActionType, focus: MDCChipActionFocusBehavior) {\n this.adapter.setActionFocus(action, focus);\n }\n\n setActionSelected(action: MDCChipActionType, isSelected: boolean) {\n this.adapter.setActionSelected(action, isSelected);\n this.animateSelection(isSelected);\n }\n\n startAnimation(animation: MDCChipAnimation) {\n if (animation === MDCChipAnimation.ENTER) {\n this.adapter.addClass(MDCChipCssClasses.ENTER);\n return;\n }\n\n if (animation === MDCChipAnimation.EXIT) {\n this.adapter.addClass(MDCChipCssClasses.EXIT);\n return;\n }\n }\n\n handleAnimationEnd(event: AnimationEvent) {\n const {animationName} = event;\n if (animationName === MDCChipAnimation.ENTER) {\n this.adapter.removeClass(MDCChipCssClasses.ENTER);\n this.adapter.emitEvent<MDCChipAnimationEventDetail>(\n MDCChipEvents.ANIMATION, {\n chipID: this.getElementID(),\n animation: MDCChipAnimation.ENTER,\n addedAnnouncement: this.getAddedAnnouncement(),\n isComplete: true,\n });\n return;\n }\n\n if (animationName === MDCChipAnimation.EXIT) {\n this.adapter.removeClass(MDCChipCssClasses.EXIT);\n this.adapter.addClass(MDCChipCssClasses.HIDDEN);\n const width = this.adapter.getOffsetWidth();\n this.adapter.setStyleProperty('width', `${width}px`);\n // Wait two frames so the width gets applied correctly.\n this.animFrame.request(AnimationKeys.EXIT, () => {\n this.animFrame.request(AnimationKeys.EXIT, () => {\n this.adapter.setStyleProperty('width', '0');\n });\n });\n }\n }\n\n handleTransitionEnd() {\n if (!this.adapter.hasClass(MDCChipCssClasses.HIDDEN)) return;\n\n this.adapter.emitEvent<MDCChipAnimationEventDetail>(\n MDCChipEvents.ANIMATION, {\n chipID: this.getElementID(),\n animation: MDCChipAnimation.EXIT,\n removedAnnouncement: this.getRemovedAnnouncement(),\n isComplete: true,\n });\n }\n\n handleActionInteraction({detail}: ActionInteractionEvent) {\n const {source, actionID} = detail;\n const isSelectable = this.adapter.isActionSelectable(source);\n const isSelected = this.adapter.isActionSelected(source);\n\n this.adapter.emitEvent<MDCChipInteractionEventDetail>(\n MDCChipEvents.INTERACTION, {\n chipID: this.getElementID(),\n shouldRemove: this.shouldRemove(detail),\n actionID,\n isSelectable,\n isSelected,\n source,\n });\n }\n\n handleActionNavigation({detail}: ActionNavigationEvent) {\n const {source, key} = detail;\n const isRTL = this.adapter.isRTL();\n const isTrailingActionFocusable =\n this.adapter.isActionFocusable(MDCChipActionType.TRAILING);\n const isPrimaryActionFocusable =\n this.adapter.isActionFocusable(MDCChipActionType.PRIMARY);\n const dir = this.directionFromKey(key, isRTL);\n\n const shouldNavigateToTrailing = source === MDCChipActionType.PRIMARY &&\n dir === Direction.RIGHT && isTrailingActionFocusable;\n\n const shouldNavigateToPrimary = source === MDCChipActionType.TRAILING &&\n dir === Direction.LEFT && isPrimaryActionFocusable;\n\n if (shouldNavigateToTrailing) {\n this.navigateActions({from: source, to: MDCChipActionType.TRAILING});\n return;\n }\n\n if (shouldNavigateToPrimary) {\n this.navigateActions({from: source, to: MDCChipActionType.PRIMARY});\n return;\n }\n\n this.adapter.emitEvent<MDCChipNavigationEventDetail>(\n MDCChipEvents.NAVIGATION, {\n chipID: this.getElementID(),\n isRTL,\n source,\n key,\n });\n }\n\n private directionFromKey(key: string, isRTL: boolean): Direction {\n const isLeftKey = key === 'ArrowLeft';\n const isRightKey = key === 'ArrowRight';\n if (!isRTL && isLeftKey || isRTL && isRightKey) {\n return Direction.LEFT;\n }\n\n if (!isRTL && isRightKey || isRTL && isLeftKey) {\n return Direction.RIGHT;\n }\n\n return Direction.UNSPECIFIED;\n }\n\n private navigateActions(nav: Navigation) {\n this.adapter.setActionFocus(\n nav.from, MDCChipActionFocusBehavior.NOT_FOCUSABLE);\n this.adapter.setActionFocus(\n nav.to, MDCChipActionFocusBehavior.FOCUSABLE_AND_FOCUSED);\n }\n\n private shouldRemove({source, trigger}: MDCChipActionInteractionEventDetail):\n boolean {\n if (trigger === MDCChipActionInteractionTrigger.BACKSPACE_KEY ||\n trigger === MDCChipActionInteractionTrigger.DELETE_KEY) {\n return true;\n }\n\n return source === MDCChipActionType.TRAILING;\n }\n\n private getRemovedAnnouncement(): string|undefined {\n const msg =\n this.adapter.getAttribute(MDCChipAttributes.DATA_REMOVED_ANNOUNCEMENT);\n return msg || undefined;\n }\n\n private getAddedAnnouncement(): string|undefined {\n const msg =\n this.adapter.getAttribute(MDCChipAttributes.DATA_ADDED_ANNOUNCEMENT);\n return msg || undefined;\n }\n\n private animateSelection(isSelected: boolean) {\n this.resetAnimationStyles();\n // Wait two frames to ensure the animation classes are unset\n this.animFrame.request(AnimationKeys.SELECTION, () => {\n this.animFrame.request(AnimationKeys.SELECTION, () => {\n this.updateSelectionStyles(isSelected);\n });\n });\n }\n\n private resetAnimationStyles() {\n this.adapter.removeClass(MDCChipCssClasses.SELECTING);\n this.adapter.removeClass(MDCChipCssClasses.DESELECTING);\n this.adapter.removeClass(MDCChipCssClasses.SELECTING_WITH_PRIMARY_ICON);\n this.adapter.removeClass(MDCChipCssClasses.DESELECTING_WITH_PRIMARY_ICON);\n }\n\n private updateSelectionStyles(isSelected: boolean) {\n const hasIcon = this.adapter.hasClass(MDCChipCssClasses.WITH_PRIMARY_ICON);\n if (hasIcon && isSelected) {\n this.adapter.addClass(MDCChipCssClasses.SELECTING_WITH_PRIMARY_ICON);\n this.animFrame.request(AnimationKeys.SELECTION, () => {\n this.adapter.addClass(MDCChipCssClasses.SELECTED);\n });\n return;\n }\n\n if (hasIcon && !isSelected) {\n this.adapter.addClass(MDCChipCssClasses.DESELECTING_WITH_PRIMARY_ICON);\n this.animFrame.request(AnimationKeys.SELECTION, () => {\n this.adapter.removeClass(MDCChipCssClasses.SELECTED);\n });\n return;\n }\n\n if (isSelected) {\n this.adapter.addClass(MDCChipCssClasses.SELECTING);\n this.animFrame.request(AnimationKeys.SELECTION, () => {\n this.adapter.addClass(MDCChipCssClasses.SELECTED);\n });\n return;\n }\n\n if (!isSelected) {\n this.adapter.addClass(MDCChipCssClasses.DESELECTING);\n this.animFrame.request(AnimationKeys.SELECTION, () => {\n this.adapter.removeClass(MDCChipCssClasses.SELECTED);\n });\n return;\n }\n }\n}\n"]}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import '../../action/link-action.js';
7
+ import { TemplateResult } from 'lit';
8
+ import { Chip } from './chip.js';
9
+ /** @soyCompatible */
10
+ export declare class LinkChip extends Chip {
11
+ href: string;
12
+ target: string;
13
+ /**
14
+ * @soyTemplate
15
+ * @soyAttributes attributes: .md3-chip
16
+ * @soyAttributes linkAttributes: .md3-chip__action
17
+ */
18
+ protected render(): TemplateResult;
19
+ /** @soyTemplate */
20
+ private renderPrimaryAction;
21
+ }
@@ -0,0 +1,53 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { __decorate, __metadata } from "tslib";
7
+ // import '@material/web/chips/action.js';
8
+ import '../../action/link-action.js';
9
+ import { html } from 'lit';
10
+ import { property } from 'lit/decorators.js';
11
+ import { classMap } from 'lit/directives/class-map.js';
12
+ import { Chip } from './chip.js';
13
+ /** @soyCompatible */
14
+ export class LinkChip extends Chip {
15
+ /**
16
+ * @soyTemplate
17
+ * @soyAttributes attributes: .md3-chip
18
+ * @soyAttributes linkAttributes: .md3-chip__action
19
+ */
20
+ render() {
21
+ return html `
22
+ <span class="${classMap(this.getRootClasses())}" role="row">
23
+ ${this.renderOverlay()}
24
+ <span class="md3-chip__cell md3-chip__cell--primary" role="gridcell">
25
+ ${this.renderPrimaryAction()}
26
+ </span>
27
+ ${this.renderDeleteAction()}
28
+ </span>`;
29
+ }
30
+ /** @soyTemplate */
31
+ renderPrimaryAction() {
32
+ return html `
33
+ <md-link-action
34
+ ?disabled=${this.disabled}
35
+ ?isFocusable=${this.isFocusable}
36
+ ?isTouchable=${this.isTouchable}
37
+ .icon=${this.icon}
38
+ .label=${this.label}
39
+ .ariaLabel=${this.ariaLabel}
40
+ .href=${this.href}
41
+ .target=${this.target}>
42
+ </md-link-action>`;
43
+ }
44
+ }
45
+ __decorate([
46
+ property({ type: String }),
47
+ __metadata("design:type", String)
48
+ ], LinkChip.prototype, "href", void 0);
49
+ __decorate([
50
+ property({ type: String }),
51
+ __metadata("design:type", String)
52
+ ], LinkChip.prototype, "target", void 0);
53
+ //# sourceMappingURL=link-chip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"link-chip.js","sourceRoot":"","sources":["link-chip.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;AAEH,0CAA0C;AAC1C,OAAO,6BAA6B,CAAC;AAErC,OAAO,EAAC,IAAI,EAAiB,MAAM,KAAK,CAAC;AACzC,OAAO,EAAC,QAAQ,EAAC,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAC,QAAQ,EAAC,MAAM,6BAA6B,CAAC;AACrD,OAAO,EAAC,IAAI,EAAC,MAAM,WAAW,CAAC;AAE/B,qBAAqB;AACrB,MAAM,OAAO,QAAS,SAAQ,IAAI;IAKhC;;;;OAIG;IACgB,MAAM;QACvB,OAAO,IAAI,CAAA;qBACM,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;UAC1C,IAAI,CAAC,aAAa,EAAE;;YAElB,IAAI,CAAC,mBAAmB,EAAE;;UAE5B,IAAI,CAAC,kBAAkB,EAAE;cACrB,CAAC;IACb,CAAC;IAED,mBAAmB;IACX,mBAAmB;QACzB,OAAO,IAAI,CAAA;;sBAEO,IAAI,CAAC,QAAQ;yBACV,IAAI,CAAC,WAAW;yBAChB,IAAI,CAAC,WAAW;kBACvB,IAAI,CAAC,IAAI;mBACR,IAAI,CAAC,KAAK;uBACN,IAAI,CAAC,SAAS;kBACnB,IAAI,CAAC,IAAI;oBACP,IAAI,CAAC,MAAM;wBACP,CAAC;IACvB,CAAC;CACF;AAlC2B;IAAzB,QAAQ,CAAC,EAAC,IAAI,EAAE,MAAM,EAAC,CAAC;;sCAAe;AAEd;IAAzB,QAAQ,CAAC,EAAC,IAAI,EAAE,MAAM,EAAC,CAAC;;wCAAiB","sourcesContent":["/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n// import '@material/web/chips/action.js';\nimport '../../action/link-action.js';\n\nimport {html, TemplateResult} from 'lit';\nimport {property} from 'lit/decorators.js';\nimport {classMap} from 'lit/directives/class-map.js';\nimport {Chip} from './chip.js';\n\n/** @soyCompatible */\nexport class LinkChip extends Chip {\n @property({type: String}) href!: string;\n\n @property({type: String}) target!: string;\n\n /**\n * @soyTemplate\n * @soyAttributes attributes: .md3-chip\n * @soyAttributes linkAttributes: .md3-chip__action\n */\n protected override render(): TemplateResult {\n return html`\n <span class=\"${classMap(this.getRootClasses())}\" role=\"row\">\n ${this.renderOverlay()}\n <span class=\"md3-chip__cell md3-chip__cell--primary\" role=\"gridcell\">\n ${this.renderPrimaryAction()}\n </span>\n ${this.renderDeleteAction()}\n </span>`;\n }\n\n /** @soyTemplate */\n private renderPrimaryAction(): TemplateResult {\n return html`\n <md-link-action\n ?disabled=${this.disabled}\n ?isFocusable=${this.isFocusable}\n ?isTouchable=${this.isTouchable}\n .icon=${this.icon}\n .label=${this.label}\n .ariaLabel=${this.ariaLabel}\n .href=${this.href}\n .target=${this.target}>\n </md-link-action>`;\n }\n}\n"]}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import '../../action/presentational-action.js';
7
+ import { TemplateResult } from 'lit';
8
+ import { Chip } from './chip.js';
9
+ /** @soyCompatible */
10
+ export declare class PresentationalChip extends Chip {
11
+ /**
12
+ * @soyTemplate
13
+ * @soyAttributes attributes: .md3-chip
14
+ */
15
+ protected render(): TemplateResult;
16
+ /** @soyTemplate */
17
+ private renderPrimaryAction;
18
+ }
@@ -0,0 +1,39 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import '../../action/presentational-action.js';
7
+ import { html } from 'lit';
8
+ import { classMap } from 'lit/directives/class-map.js';
9
+ import { Chip } from './chip.js';
10
+ /** @soyCompatible */
11
+ export class PresentationalChip extends Chip {
12
+ /**
13
+ * @soyTemplate
14
+ * @soyAttributes attributes: .md3-chip
15
+ */
16
+ render() {
17
+ return html `
18
+ <span class="${classMap(this.getRootClasses())}" role="row">
19
+ ${this.renderOverlay()}
20
+ <span class="md3-chip__cell md3-chip__cell--primary" role="gridcell">
21
+ ${this.renderPrimaryAction()}
22
+ </span>
23
+ ${this.renderDeleteAction()}
24
+ </span>`;
25
+ }
26
+ /** @soyTemplate */
27
+ renderPrimaryAction() {
28
+ return html `
29
+ <md-presentational-action
30
+ ?disabled=${this.disabled}
31
+ ?isFocusable=${this.isFocusable}
32
+ ?isTouchable=${this.isTouchable}
33
+ .icon=${this.icon}
34
+ .label=${this.label}
35
+ .ariaLabel=${this.ariaLabel}>
36
+ </md-presentational-action>`;
37
+ }
38
+ }
39
+ //# sourceMappingURL=presentational-chip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presentational-chip.js","sourceRoot":"","sources":["presentational-chip.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,uCAAuC,CAAC;AAE/C,OAAO,EAAC,IAAI,EAAiB,MAAM,KAAK,CAAC;AACzC,OAAO,EAAC,QAAQ,EAAC,MAAM,6BAA6B,CAAC;AACrD,OAAO,EAAC,IAAI,EAAC,MAAM,WAAW,CAAC;AAE/B,qBAAqB;AACrB,MAAM,OAAO,kBAAmB,SAAQ,IAAI;IAC1C;;;OAGG;IACgB,MAAM;QACvB,OAAO,IAAI,CAAA;qBACM,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;UAC1C,IAAI,CAAC,aAAa,EAAE;;YAElB,IAAI,CAAC,mBAAmB,EAAE;;UAE5B,IAAI,CAAC,kBAAkB,EAAE;cACrB,CAAC;IACb,CAAC;IAED,mBAAmB;IACX,mBAAmB;QACzB,OAAO,IAAI,CAAA;;sBAEO,IAAI,CAAC,QAAQ;yBACV,IAAI,CAAC,WAAW;yBAChB,IAAI,CAAC,WAAW;kBACvB,IAAI,CAAC,IAAI;mBACR,IAAI,CAAC,KAAK;uBACN,IAAI,CAAC,SAAS;kCACH,CAAC;IACjC,CAAC;CACF","sourcesContent":["/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport '../../action/presentational-action.js';\n\nimport {html, TemplateResult} from 'lit';\nimport {classMap} from 'lit/directives/class-map.js';\nimport {Chip} from './chip.js';\n\n/** @soyCompatible */\nexport class PresentationalChip extends Chip {\n /**\n * @soyTemplate\n * @soyAttributes attributes: .md3-chip\n */\n protected override render(): TemplateResult {\n return html`\n <span class=\"${classMap(this.getRootClasses())}\" role=\"row\">\n ${this.renderOverlay()}\n <span class=\"md3-chip__cell md3-chip__cell--primary\" role=\"gridcell\">\n ${this.renderPrimaryAction()}\n </span>\n ${this.renderDeleteAction()}\n </span>`;\n }\n\n /** @soyTemplate */\n private renderPrimaryAction(): TemplateResult {\n return html`\n <md-presentational-action\n ?disabled=${this.disabled}\n ?isFocusable=${this.isFocusable}\n ?isTouchable=${this.isTouchable}\n .icon=${this.icon}\n .label=${this.label}\n .ariaLabel=${this.ariaLabel}>\n </md-presentational-action>`;\n }\n}\n\n"]}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import '../../action/selectable-action.js';
7
+ import { TemplateResult } from 'lit';
8
+ import { ClassInfo } from 'lit/directives/class-map.js';
9
+ import { Chip } from './chip.js';
10
+ /** @soyCompatible */
11
+ export declare class SelectableChip extends Chip {
12
+ selected: boolean;
13
+ /**
14
+ * @soyTemplate
15
+ * @soyAttributes attributes: .md3-chip
16
+ */
17
+ protected render(): TemplateResult;
18
+ /** @soyTemplate */
19
+ protected getRootClasses(): ClassInfo;
20
+ /** @soyTemplate */
21
+ private renderPrimaryAction;
22
+ }
@@ -0,0 +1,57 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { __decorate, __metadata } from "tslib";
7
+ import '../../action/selectable-action.js';
8
+ import { html } from 'lit';
9
+ import { property } from 'lit/decorators.js';
10
+ import { classMap } from 'lit/directives/class-map.js';
11
+ import { Chip } from './chip.js';
12
+ /** @soyCompatible */
13
+ export class SelectableChip extends Chip {
14
+ constructor() {
15
+ super(...arguments);
16
+ this.selected = false;
17
+ }
18
+ /**
19
+ * @soyTemplate
20
+ * @soyAttributes attributes: .md3-chip
21
+ */
22
+ render() {
23
+ return html `
24
+ <span class="${classMap(this.getRootClasses())}" role="presentation">
25
+ ${this.renderOverlay()}
26
+ ${this.renderPrimaryAction()}
27
+ ${this.renderDeleteAction()}
28
+ </span>`;
29
+ }
30
+ /** @soyTemplate */
31
+ getRootClasses() {
32
+ return {
33
+ ...super.getRootClasses(),
34
+ 'md3-chip--with-primary-graphic': true,
35
+ 'md3-chip--selectable': true,
36
+ 'md3-chip--selected': this.selected,
37
+ };
38
+ }
39
+ /** @soyTemplate */
40
+ renderPrimaryAction() {
41
+ return html `
42
+ <md-selectable-action
43
+ ?disabled=${this.disabled}
44
+ ?selected=${this.selected}
45
+ ?isFocusable=${this.isFocusable}
46
+ ?isTouchable=${this.isTouchable}
47
+ .icon=${this.icon}
48
+ .label=${this.label}
49
+ .ariaLabel=${this.ariaLabel}>
50
+ </md-selectable-action>`;
51
+ }
52
+ }
53
+ __decorate([
54
+ property({ type: Boolean, reflect: true }),
55
+ __metadata("design:type", Object)
56
+ ], SelectableChip.prototype, "selected", void 0);
57
+ //# sourceMappingURL=selectable-chip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selectable-chip.js","sourceRoot":"","sources":["selectable-chip.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;AAEH,OAAO,mCAAmC,CAAC;AAE3C,OAAO,EAAC,IAAI,EAAiB,MAAM,KAAK,CAAC;AACzC,OAAO,EAAC,QAAQ,EAAC,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAY,QAAQ,EAAC,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAC,IAAI,EAAC,MAAM,WAAW,CAAC;AAE/B,qBAAqB;AACrB,MAAM,OAAO,cAAe,SAAQ,IAAI;IAAxC;;QAC4C,aAAQ,GAAG,KAAK,CAAC;IAsC7D,CAAC;IApCC;;;OAGG;IACgB,MAAM;QACvB,OAAO,IAAI,CAAA;qBACM,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;UAC1C,IAAI,CAAC,aAAa,EAAE;UACpB,IAAI,CAAC,mBAAmB,EAAE;UAC1B,IAAI,CAAC,kBAAkB,EAAE;cACrB,CAAC;IACb,CAAC;IAED,mBAAmB;IACA,cAAc;QAC/B,OAAO;YACL,GAAG,KAAK,CAAC,cAAc,EAAE;YACzB,gCAAgC,EAAE,IAAI;YACtC,sBAAsB,EAAE,IAAI;YAC5B,oBAAoB,EAAE,IAAI,CAAC,QAAQ;SACpC,CAAC;IACJ,CAAC;IAED,mBAAmB;IACX,mBAAmB;QACzB,OAAO,IAAI,CAAA;;sBAEO,IAAI,CAAC,QAAQ;sBACb,IAAI,CAAC,QAAQ;yBACV,IAAI,CAAC,WAAW;yBAChB,IAAI,CAAC,WAAW;kBACvB,IAAI,CAAC,IAAI;mBACR,IAAI,CAAC,KAAK;uBACN,IAAI,CAAC,SAAS;8BACP,CAAC;IAC7B,CAAC;CACF;AAtC2C;IAAzC,QAAQ,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAC,CAAC;;gDAAkB","sourcesContent":["/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport '../../action/selectable-action.js';\n\nimport {html, TemplateResult} from 'lit';\nimport {property} from 'lit/decorators.js';\nimport {ClassInfo, classMap} from 'lit/directives/class-map.js';\nimport {Chip} from './chip.js';\n\n/** @soyCompatible */\nexport class SelectableChip extends Chip {\n @property({type: Boolean, reflect: true}) selected = false;\n\n /**\n * @soyTemplate\n * @soyAttributes attributes: .md3-chip\n */\n protected override render(): TemplateResult {\n return html`\n <span class=\"${classMap(this.getRootClasses())}\" role=\"presentation\">\n ${this.renderOverlay()}\n ${this.renderPrimaryAction()}\n ${this.renderDeleteAction()}\n </span>`;\n }\n\n /** @soyTemplate */\n protected override getRootClasses(): ClassInfo {\n return {\n ...super.getRootClasses(),\n 'md3-chip--with-primary-graphic': true,\n 'md3-chip--selectable': true,\n 'md3-chip--selected': this.selected,\n };\n }\n\n /** @soyTemplate */\n private renderPrimaryAction(): TemplateResult {\n return html`\n <md-selectable-action\n ?disabled=${this.disabled}\n ?selected=${this.selected}\n ?isFocusable=${this.isFocusable}\n ?isTouchable=${this.isTouchable}\n .icon=${this.icon}\n .label=${this.label}\n .ariaLabel=${this.ariaLabel}>\n </md-selectable-action>`;\n }\n}\n\n"]}
@@ -22,7 +22,7 @@ $space-between-chips: 8px;
22
22
  .md3-chip-set__chips {
23
23
  // Set the margin to the negative horizontal space to account for chips
24
24
  // being inset on the leading edge.
25
- // TODO(kainby): Explore using CSS grid layout instead.
25
+ // TODO(b/248173007): Explore using CSS grid layout instead.
26
26
  margin-inline-start: -$space;
27
27
  }
28
28
 
@@ -3,7 +3,6 @@
3
3
  * Copyright 2022 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { KEY } from '@material/web/compat/dom/keyboard.js';
7
6
  import { MDCChipActionFocusBehavior, MDCChipActionType } from '../../action/lib/constants.js';
8
7
  import { MDCChipAnimation } from '../../chip/lib/constants.js';
9
8
  import { MDCChipSetAttributes, MDCChipSetEvents } from './constants.js';
@@ -47,7 +46,8 @@ export class MDCChipSetFoundation {
47
46
  this.removeAfterAnimation(index, chipID);
48
47
  return;
49
48
  }
50
- if (animation === MDCChipAnimation.ENTER && isComplete && addedAnnouncement) {
49
+ if (animation === MDCChipAnimation.ENTER && isComplete &&
50
+ addedAnnouncement) {
51
51
  this.adapter.announceMessage(addedAnnouncement);
52
52
  return;
53
53
  }
@@ -71,35 +71,33 @@ export class MDCChipSetFoundation {
71
71
  handleChipNavigation({ detail }) {
72
72
  const { chipID, key, isRTL, source } = detail;
73
73
  const index = this.adapter.getChipIndexById(chipID);
74
- const toNextChip = (key === KEY.ARROW_RIGHT && !isRTL) ||
75
- (key === KEY.ARROW_LEFT && isRTL);
74
+ const toNextChip = (key === 'ArrowRight' && !isRTL) || (key === 'ArrowLeft' && isRTL);
76
75
  if (toNextChip) {
77
76
  // Start from the next chip so we increment the index
78
77
  this.focusNextChipFrom(index + 1);
79
78
  return;
80
79
  }
81
- const toPreviousChip = (key === KEY.ARROW_LEFT && !isRTL) ||
82
- (key === KEY.ARROW_RIGHT && isRTL);
80
+ const toPreviousChip = (key === 'ArrowLeft' && !isRTL) || (key === 'ArrowRight' && isRTL);
83
81
  if (toPreviousChip) {
84
82
  // Start from the previous chip so we decrement the index
85
83
  this.focusPrevChipFrom(index - 1);
86
84
  return;
87
85
  }
88
- if (key === KEY.ARROW_DOWN) {
86
+ if (key === 'ArrowDown') {
89
87
  // Start from the next chip so we increment the index
90
88
  this.focusNextChipFrom(index + 1, source);
91
89
  return;
92
90
  }
93
- if (key === KEY.ARROW_UP) {
91
+ if (key === 'ArrowUp') {
94
92
  // Start from the previous chip so we decrement the index
95
93
  this.focusPrevChipFrom(index - 1, source);
96
94
  return;
97
95
  }
98
- if (key === KEY.HOME) {
96
+ if (key === 'Home') {
99
97
  this.focusNextChipFrom(0, source);
100
98
  return;
101
99
  }
102
- if (key === KEY.END) {
100
+ if (key === 'End') {
103
101
  this.focusPrevChipFrom(this.adapter.getChipCount() - 1, source);
104
102
  return;
105
103
  }
@@ -1 +1 @@
1
- {"version":3,"file":"foundation.js","sourceRoot":"","sources":["foundation.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 {KEY} from '@material/web/compat/dom/keyboard.js';\n\nimport {MDCChipActionFocusBehavior, MDCChipActionType} from '../../action/lib/constants.js';\nimport {MDCChipAnimation} from '../../chip/lib/constants.js';\n\nimport {MDCChipSetAdapter} from './adapter.js';\nimport {MDCChipSetAttributes, MDCChipSetEvents} from './constants.js';\nimport {ChipAnimationEvent, ChipInteractionEvent, ChipNavigationEvent, MDCChipSetInteractionEventDetail, MDCChipSetRemovalEventDetail, MDCChipSetSelectionEventDetail} from './types.js';\n\ninterface FocusAction {\n action: MDCChipActionType;\n index: number;\n}\n\nenum Operator {\n INCREMENT,\n DECREMENT,\n}\n\n/**\n * MDCChipSetFoundation provides a foundation for all chips.\n */\nexport class MDCChipSetFoundation {\n private readonly adapter: MDCChipSetAdapter;\n\n static get defaultAdapter(): MDCChipSetAdapter {\n return {\n announceMessage: () => undefined,\n emitEvent: () => undefined,\n getAttribute: () => null,\n getChipActionsAtIndex: () => [],\n getChipCount: () => 0,\n getChipIdAtIndex: () => '',\n getChipIndexById: () => 0,\n isChipFocusableAtIndex: () => false,\n isChipSelectableAtIndex: () => false,\n isChipSelectedAtIndex: () => false,\n removeChipAtIndex: () => {},\n setChipFocusAtIndex: () => undefined,\n setChipSelectedAtIndex: () => undefined,\n startChipAnimationAtIndex: () => undefined,\n };\n }\n\n constructor(adapter?: Partial<MDCChipSetAdapter>) {\n this.adapter = {...MDCChipSetFoundation.defaultAdapter, ...adapter};\n }\n\n handleChipAnimation({detail}: ChipAnimationEvent) {\n const {\n chipID,\n animation,\n isComplete,\n addedAnnouncement,\n removedAnnouncement\n } = detail;\n const index = this.adapter.getChipIndexById(chipID);\n\n if (animation === MDCChipAnimation.EXIT && isComplete) {\n if (removedAnnouncement) {\n this.adapter.announceMessage(removedAnnouncement);\n }\n this.removeAfterAnimation(index, chipID);\n return;\n }\n\n if (animation === MDCChipAnimation.ENTER && isComplete && addedAnnouncement) {\n this.adapter.announceMessage(addedAnnouncement);\n return;\n }\n }\n\n handleChipInteraction({detail}: ChipInteractionEvent) {\n const {source, chipID, isSelectable, isSelected, shouldRemove} = detail;\n const index = this.adapter.getChipIndexById(chipID);\n\n if (shouldRemove) {\n this.removeChip(index);\n return;\n }\n\n this.focusChip(index, source, MDCChipActionFocusBehavior.FOCUSABLE);\n this.adapter.emitEvent<MDCChipSetInteractionEventDetail>(\n MDCChipSetEvents.INTERACTION, {\n chipIndex: index,\n chipID,\n });\n\n if (isSelectable) {\n this.setSelection(index, source, !isSelected);\n }\n }\n\n handleChipNavigation({detail}: ChipNavigationEvent) {\n const {chipID, key, isRTL, source} = detail;\n const index = this.adapter.getChipIndexById(chipID);\n\n const toNextChip = (key === KEY.ARROW_RIGHT && !isRTL) ||\n (key === KEY.ARROW_LEFT && isRTL);\n if (toNextChip) {\n // Start from the next chip so we increment the index\n this.focusNextChipFrom(index + 1);\n return;\n }\n\n const toPreviousChip = (key === KEY.ARROW_LEFT && !isRTL) ||\n (key === KEY.ARROW_RIGHT && isRTL);\n if (toPreviousChip) {\n // Start from the previous chip so we decrement the index\n this.focusPrevChipFrom(index - 1);\n return;\n }\n\n if (key === KEY.ARROW_DOWN) {\n // Start from the next chip so we increment the index\n this.focusNextChipFrom(index + 1, source);\n return;\n }\n\n if (key === KEY.ARROW_UP) {\n // Start from the previous chip so we decrement the index\n this.focusPrevChipFrom(index - 1, source);\n return;\n }\n\n if (key === KEY.HOME) {\n this.focusNextChipFrom(0, source);\n return;\n }\n\n if (key === KEY.END) {\n this.focusPrevChipFrom(this.adapter.getChipCount() - 1, source);\n return;\n }\n }\n\n /** Returns the unique selected indexes of the chips. */\n getSelectedChipIndexes(): ReadonlySet<number> {\n const selectedIndexes = new Set<number>();\n const chipCount = this.adapter.getChipCount();\n for (let i = 0; i < chipCount; i++) {\n const actions = this.adapter.getChipActionsAtIndex(i);\n for (const action of actions) {\n if (this.adapter.isChipSelectedAtIndex(i, action)) {\n selectedIndexes.add(i);\n }\n }\n }\n return selectedIndexes;\n }\n\n /** Sets the selected state of the chip at the given index and action. */\n setChipSelected(\n index: number, action: MDCChipActionType, isSelected: boolean) {\n if (this.adapter.isChipSelectableAtIndex(index, action)) {\n this.setSelection(index, action, isSelected);\n }\n }\n\n /** Returns the selected state of the chip at the given index and action. */\n isChipSelected(index: number, action: MDCChipActionType): boolean {\n return this.adapter.isChipSelectedAtIndex(index, action);\n }\n\n /** Removes the chip at the given index. */\n removeChip(index: number) {\n // Early exit if the index is out of bounds\n if (index >= this.adapter.getChipCount() || index < 0) return;\n this.adapter.startChipAnimationAtIndex(index, MDCChipAnimation.EXIT);\n this.adapter.emitEvent<MDCChipSetRemovalEventDetail>(\n MDCChipSetEvents.REMOVAL, {\n chipID: this.adapter.getChipIdAtIndex(index),\n chipIndex: index,\n isComplete: false,\n });\n }\n\n addChip(index: number) {\n // Early exit if the index is out of bounds\n if (index >= this.adapter.getChipCount() || index < 0) return;\n this.adapter.startChipAnimationAtIndex(index, MDCChipAnimation.ENTER);\n }\n\n /**\n * Increments to find the first focusable chip.\n */\n private focusNextChipFrom(\n startIndex: number, targetAction?: MDCChipActionType) {\n const chipCount = this.adapter.getChipCount();\n for (let i = startIndex; i < chipCount; i++) {\n const focusableAction =\n this.getFocusableAction(i, Operator.INCREMENT, targetAction);\n if (focusableAction) {\n this.focusChip(\n i, focusableAction,\n MDCChipActionFocusBehavior.FOCUSABLE_AND_FOCUSED);\n return;\n }\n }\n }\n\n /**\n * Decrements to find the first focusable chip. Takes an optional target\n * action that can be used to focus the first matching focusable action.\n */\n private focusPrevChipFrom(\n startIndex: number, targetAction?: MDCChipActionType) {\n for (let i = startIndex; i > -1; i--) {\n const focusableAction =\n this.getFocusableAction(i, Operator.DECREMENT, targetAction);\n if (focusableAction) {\n this.focusChip(\n i, focusableAction,\n MDCChipActionFocusBehavior.FOCUSABLE_AND_FOCUSED);\n return;\n }\n }\n }\n\n /** Returns the appropriate focusable action, or null if none exist. */\n private getFocusableAction(\n index: number, op: Operator,\n targetAction?: MDCChipActionType): MDCChipActionType|null {\n const actions = this.adapter.getChipActionsAtIndex(index);\n // Reverse the actions if decrementing\n if (op === Operator.DECREMENT) actions.reverse();\n\n if (targetAction) {\n return this.getMatchingFocusableAction(index, actions, targetAction);\n }\n\n return this.getFirstFocusableAction(index, actions);\n }\n\n /**\n * Returs the first focusable action, regardless of type, or null if no\n * focusable actions exist.\n */\n private getFirstFocusableAction(index: number, actions: MDCChipActionType[]):\n MDCChipActionType|null {\n for (const action of actions) {\n if (this.adapter.isChipFocusableAtIndex(index, action)) {\n return action;\n }\n }\n return null;\n }\n\n /**\n * If the actions contain a focusable action that matches the target action,\n * return that. Otherwise, return the first focusable action, or null if no\n * focusable action exists.\n */\n private getMatchingFocusableAction(\n index: number, actions: MDCChipActionType[],\n targetAction: MDCChipActionType): MDCChipActionType|null {\n let focusableAction = null;\n for (const action of actions) {\n if (this.adapter.isChipFocusableAtIndex(index, action)) {\n focusableAction = action;\n }\n\n // Exit and return the focusable action if it matches the target\n if (focusableAction === targetAction) {\n return focusableAction;\n }\n }\n return focusableAction;\n }\n\n private focusChip(\n index: number, action: MDCChipActionType,\n focus: MDCChipActionFocusBehavior) {\n this.adapter.setChipFocusAtIndex(index, action, focus);\n const chipCount = this.adapter.getChipCount();\n for (let i = 0; i < chipCount; i++) {\n const actions = this.adapter.getChipActionsAtIndex(i);\n for (const chipAction of actions) {\n // Skip the action and index provided since we set it above\n if (chipAction === action && i === index) continue;\n this.adapter.setChipFocusAtIndex(\n i, chipAction, MDCChipActionFocusBehavior.NOT_FOCUSABLE);\n }\n }\n }\n\n private supportsMultiSelect(): boolean {\n return this.adapter.getAttribute(\n MDCChipSetAttributes.ARIA_MULTISELECTABLE) === 'true';\n }\n\n private setSelection(\n index: number, action: MDCChipActionType, isSelected: boolean) {\n this.adapter.setChipSelectedAtIndex(index, action, isSelected);\n this.adapter.emitEvent<MDCChipSetSelectionEventDetail>(\n MDCChipSetEvents.SELECTION, {\n chipID: this.adapter.getChipIdAtIndex(index),\n chipIndex: index,\n isSelected,\n });\n // Early exit if we support multi-selection\n if (this.supportsMultiSelect()) {\n return;\n }\n\n // If we get here, we ony support single selection. This means we need to\n // unselect all chips\n const chipCount = this.adapter.getChipCount();\n for (let i = 0; i < chipCount; i++) {\n const actions = this.adapter.getChipActionsAtIndex(i);\n for (const chipAction of actions) {\n // Skip the action and index provided since we set it above\n if (chipAction === action && i === index) continue;\n this.adapter.setChipSelectedAtIndex(i, chipAction, false);\n }\n }\n }\n\n private removeAfterAnimation(index: number, chipID: string) {\n this.adapter.removeChipAtIndex(index);\n this.adapter.emitEvent<MDCChipSetRemovalEventDetail>(\n MDCChipSetEvents.REMOVAL, {\n chipIndex: index,\n isComplete: true,\n chipID,\n });\n\n const chipCount = this.adapter.getChipCount();\n // Early exit if we have an empty chip set\n if (chipCount <= 0) return;\n this.focusNearestFocusableAction(index);\n }\n\n /**\n * Find the first focusable action by moving bidirectionally horizontally\n * from the start index.\n *\n * Given chip set [A, B, C, D, E, F, G]...\n * Let's say we remove chip \"F\". We don't know where the nearest focusable\n * action is since any of them could be disabled. The nearest focusable\n * action could be E, it could be G, it could even be A. To find it, we\n * start from the source index (5 for \"F\" in this case) and move out\n * horizontally, checking each chip at each index.\n *\n */\n private focusNearestFocusableAction(index: number) {\n const chipCount = this.adapter.getChipCount();\n let decrIndex = index;\n let incrIndex = index;\n while (decrIndex > -1 || incrIndex < chipCount) {\n const focusAction = this.getNearestFocusableAction(\n decrIndex, incrIndex, MDCChipActionType.TRAILING);\n if (focusAction) {\n this.focusChip(\n focusAction.index, focusAction.action,\n MDCChipActionFocusBehavior.FOCUSABLE_AND_FOCUSED);\n return;\n }\n\n decrIndex--;\n incrIndex++;\n }\n }\n\n private getNearestFocusableAction(\n decrIndex: number, incrIndex: number,\n actionType?: MDCChipActionType): FocusAction|null {\n const decrAction =\n this.getFocusableAction(decrIndex, Operator.DECREMENT, actionType);\n if (decrAction) {\n return {\n index: decrIndex,\n action: decrAction,\n };\n }\n\n // Early exit if the incremented and decremented indices are identical\n if (incrIndex === decrIndex) return null;\n\n const incrAction =\n this.getFocusableAction(incrIndex, Operator.INCREMENT, actionType);\n if (incrAction) {\n return {\n index: incrIndex,\n action: incrAction,\n };\n }\n\n return null;\n }\n}\n"]}
1
+ {"version":3,"file":"foundation.js","sourceRoot":"","sources":["foundation.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 {MDCChipActionFocusBehavior, MDCChipActionType} from '../../action/lib/constants.js';\nimport {MDCChipAnimation} from '../../chip/lib/constants.js';\n\nimport {MDCChipSetAdapter} from './adapter.js';\nimport {MDCChipSetAttributes, MDCChipSetEvents} from './constants.js';\nimport {ChipAnimationEvent, ChipInteractionEvent, ChipNavigationEvent, MDCChipSetInteractionEventDetail, MDCChipSetRemovalEventDetail, MDCChipSetSelectionEventDetail} from './types.js';\n\ninterface FocusAction {\n action: MDCChipActionType;\n index: number;\n}\n\nenum Operator {\n INCREMENT,\n DECREMENT,\n}\n\n/**\n * MDCChipSetFoundation provides a foundation for all chips.\n */\nexport class MDCChipSetFoundation {\n private readonly adapter: MDCChipSetAdapter;\n\n static get defaultAdapter(): MDCChipSetAdapter {\n return {\n announceMessage: () => undefined,\n emitEvent: () => undefined,\n getAttribute: () => null,\n getChipActionsAtIndex: () => [],\n getChipCount: () => 0,\n getChipIdAtIndex: () => '',\n getChipIndexById: () => 0,\n isChipFocusableAtIndex: () => false,\n isChipSelectableAtIndex: () => false,\n isChipSelectedAtIndex: () => false,\n removeChipAtIndex: () => {},\n setChipFocusAtIndex: () => undefined,\n setChipSelectedAtIndex: () => undefined,\n startChipAnimationAtIndex: () => undefined,\n };\n }\n\n constructor(adapter?: Partial<MDCChipSetAdapter>) {\n this.adapter = {...MDCChipSetFoundation.defaultAdapter, ...adapter};\n }\n\n handleChipAnimation({detail}: ChipAnimationEvent) {\n const {\n chipID,\n animation,\n isComplete,\n addedAnnouncement,\n removedAnnouncement\n } = detail;\n const index = this.adapter.getChipIndexById(chipID);\n\n if (animation === MDCChipAnimation.EXIT && isComplete) {\n if (removedAnnouncement) {\n this.adapter.announceMessage(removedAnnouncement);\n }\n this.removeAfterAnimation(index, chipID);\n return;\n }\n\n if (animation === MDCChipAnimation.ENTER && isComplete &&\n addedAnnouncement) {\n this.adapter.announceMessage(addedAnnouncement);\n return;\n }\n }\n\n handleChipInteraction({detail}: ChipInteractionEvent) {\n const {source, chipID, isSelectable, isSelected, shouldRemove} = detail;\n const index = this.adapter.getChipIndexById(chipID);\n\n if (shouldRemove) {\n this.removeChip(index);\n return;\n }\n\n this.focusChip(index, source, MDCChipActionFocusBehavior.FOCUSABLE);\n this.adapter.emitEvent<MDCChipSetInteractionEventDetail>(\n MDCChipSetEvents.INTERACTION, {\n chipIndex: index,\n chipID,\n });\n\n if (isSelectable) {\n this.setSelection(index, source, !isSelected);\n }\n }\n\n handleChipNavigation({detail}: ChipNavigationEvent) {\n const {chipID, key, isRTL, source} = detail;\n const index = this.adapter.getChipIndexById(chipID);\n\n const toNextChip =\n (key === 'ArrowRight' && !isRTL) || (key === 'ArrowLeft' && isRTL);\n if (toNextChip) {\n // Start from the next chip so we increment the index\n this.focusNextChipFrom(index + 1);\n return;\n }\n\n const toPreviousChip =\n (key === 'ArrowLeft' && !isRTL) || (key === 'ArrowRight' && isRTL);\n if (toPreviousChip) {\n // Start from the previous chip so we decrement the index\n this.focusPrevChipFrom(index - 1);\n return;\n }\n\n if (key === 'ArrowDown') {\n // Start from the next chip so we increment the index\n this.focusNextChipFrom(index + 1, source);\n return;\n }\n\n if (key === 'ArrowUp') {\n // Start from the previous chip so we decrement the index\n this.focusPrevChipFrom(index - 1, source);\n return;\n }\n\n if (key === 'Home') {\n this.focusNextChipFrom(0, source);\n return;\n }\n\n if (key === 'End') {\n this.focusPrevChipFrom(this.adapter.getChipCount() - 1, source);\n return;\n }\n }\n\n /** Returns the unique selected indexes of the chips. */\n getSelectedChipIndexes(): ReadonlySet<number> {\n const selectedIndexes = new Set<number>();\n const chipCount = this.adapter.getChipCount();\n for (let i = 0; i < chipCount; i++) {\n const actions = this.adapter.getChipActionsAtIndex(i);\n for (const action of actions) {\n if (this.adapter.isChipSelectedAtIndex(i, action)) {\n selectedIndexes.add(i);\n }\n }\n }\n return selectedIndexes;\n }\n\n /** Sets the selected state of the chip at the given index and action. */\n setChipSelected(\n index: number, action: MDCChipActionType, isSelected: boolean) {\n if (this.adapter.isChipSelectableAtIndex(index, action)) {\n this.setSelection(index, action, isSelected);\n }\n }\n\n /** Returns the selected state of the chip at the given index and action. */\n isChipSelected(index: number, action: MDCChipActionType): boolean {\n return this.adapter.isChipSelectedAtIndex(index, action);\n }\n\n /** Removes the chip at the given index. */\n removeChip(index: number) {\n // Early exit if the index is out of bounds\n if (index >= this.adapter.getChipCount() || index < 0) return;\n this.adapter.startChipAnimationAtIndex(index, MDCChipAnimation.EXIT);\n this.adapter.emitEvent<MDCChipSetRemovalEventDetail>(\n MDCChipSetEvents.REMOVAL, {\n chipID: this.adapter.getChipIdAtIndex(index),\n chipIndex: index,\n isComplete: false,\n });\n }\n\n addChip(index: number) {\n // Early exit if the index is out of bounds\n if (index >= this.adapter.getChipCount() || index < 0) return;\n this.adapter.startChipAnimationAtIndex(index, MDCChipAnimation.ENTER);\n }\n\n /**\n * Increments to find the first focusable chip.\n */\n private focusNextChipFrom(\n startIndex: number, targetAction?: MDCChipActionType) {\n const chipCount = this.adapter.getChipCount();\n for (let i = startIndex; i < chipCount; i++) {\n const focusableAction =\n this.getFocusableAction(i, Operator.INCREMENT, targetAction);\n if (focusableAction) {\n this.focusChip(\n i, focusableAction,\n MDCChipActionFocusBehavior.FOCUSABLE_AND_FOCUSED);\n return;\n }\n }\n }\n\n /**\n * Decrements to find the first focusable chip. Takes an optional target\n * action that can be used to focus the first matching focusable action.\n */\n private focusPrevChipFrom(\n startIndex: number, targetAction?: MDCChipActionType) {\n for (let i = startIndex; i > -1; i--) {\n const focusableAction =\n this.getFocusableAction(i, Operator.DECREMENT, targetAction);\n if (focusableAction) {\n this.focusChip(\n i, focusableAction,\n MDCChipActionFocusBehavior.FOCUSABLE_AND_FOCUSED);\n return;\n }\n }\n }\n\n /** Returns the appropriate focusable action, or null if none exist. */\n private getFocusableAction(\n index: number, op: Operator,\n targetAction?: MDCChipActionType): MDCChipActionType|null {\n const actions = this.adapter.getChipActionsAtIndex(index);\n // Reverse the actions if decrementing\n if (op === Operator.DECREMENT) actions.reverse();\n\n if (targetAction) {\n return this.getMatchingFocusableAction(index, actions, targetAction);\n }\n\n return this.getFirstFocusableAction(index, actions);\n }\n\n /**\n * Returs the first focusable action, regardless of type, or null if no\n * focusable actions exist.\n */\n private getFirstFocusableAction(index: number, actions: MDCChipActionType[]):\n MDCChipActionType|null {\n for (const action of actions) {\n if (this.adapter.isChipFocusableAtIndex(index, action)) {\n return action;\n }\n }\n return null;\n }\n\n /**\n * If the actions contain a focusable action that matches the target action,\n * return that. Otherwise, return the first focusable action, or null if no\n * focusable action exists.\n */\n private getMatchingFocusableAction(\n index: number, actions: MDCChipActionType[],\n targetAction: MDCChipActionType): MDCChipActionType|null {\n let focusableAction = null;\n for (const action of actions) {\n if (this.adapter.isChipFocusableAtIndex(index, action)) {\n focusableAction = action;\n }\n\n // Exit and return the focusable action if it matches the target\n if (focusableAction === targetAction) {\n return focusableAction;\n }\n }\n return focusableAction;\n }\n\n private focusChip(\n index: number, action: MDCChipActionType,\n focus: MDCChipActionFocusBehavior) {\n this.adapter.setChipFocusAtIndex(index, action, focus);\n const chipCount = this.adapter.getChipCount();\n for (let i = 0; i < chipCount; i++) {\n const actions = this.adapter.getChipActionsAtIndex(i);\n for (const chipAction of actions) {\n // Skip the action and index provided since we set it above\n if (chipAction === action && i === index) continue;\n this.adapter.setChipFocusAtIndex(\n i, chipAction, MDCChipActionFocusBehavior.NOT_FOCUSABLE);\n }\n }\n }\n\n private supportsMultiSelect(): boolean {\n return this.adapter.getAttribute(\n MDCChipSetAttributes.ARIA_MULTISELECTABLE) === 'true';\n }\n\n private setSelection(\n index: number, action: MDCChipActionType, isSelected: boolean) {\n this.adapter.setChipSelectedAtIndex(index, action, isSelected);\n this.adapter.emitEvent<MDCChipSetSelectionEventDetail>(\n MDCChipSetEvents.SELECTION, {\n chipID: this.adapter.getChipIdAtIndex(index),\n chipIndex: index,\n isSelected,\n });\n // Early exit if we support multi-selection\n if (this.supportsMultiSelect()) {\n return;\n }\n\n // If we get here, we ony support single selection. This means we need to\n // unselect all chips\n const chipCount = this.adapter.getChipCount();\n for (let i = 0; i < chipCount; i++) {\n const actions = this.adapter.getChipActionsAtIndex(i);\n for (const chipAction of actions) {\n // Skip the action and index provided since we set it above\n if (chipAction === action && i === index) continue;\n this.adapter.setChipSelectedAtIndex(i, chipAction, false);\n }\n }\n }\n\n private removeAfterAnimation(index: number, chipID: string) {\n this.adapter.removeChipAtIndex(index);\n this.adapter.emitEvent<MDCChipSetRemovalEventDetail>(\n MDCChipSetEvents.REMOVAL, {\n chipIndex: index,\n isComplete: true,\n chipID,\n });\n\n const chipCount = this.adapter.getChipCount();\n // Early exit if we have an empty chip set\n if (chipCount <= 0) return;\n this.focusNearestFocusableAction(index);\n }\n\n /**\n * Find the first focusable action by moving bidirectionally horizontally\n * from the start index.\n *\n * Given chip set [A, B, C, D, E, F, G]...\n * Let's say we remove chip \"F\". We don't know where the nearest focusable\n * action is since any of them could be disabled. The nearest focusable\n * action could be E, it could be G, it could even be A. To find it, we\n * start from the source index (5 for \"F\" in this case) and move out\n * horizontally, checking each chip at each index.\n *\n */\n private focusNearestFocusableAction(index: number) {\n const chipCount = this.adapter.getChipCount();\n let decrIndex = index;\n let incrIndex = index;\n while (decrIndex > -1 || incrIndex < chipCount) {\n const focusAction = this.getNearestFocusableAction(\n decrIndex, incrIndex, MDCChipActionType.TRAILING);\n if (focusAction) {\n this.focusChip(\n focusAction.index, focusAction.action,\n MDCChipActionFocusBehavior.FOCUSABLE_AND_FOCUSED);\n return;\n }\n\n decrIndex--;\n incrIndex++;\n }\n }\n\n private getNearestFocusableAction(\n decrIndex: number, incrIndex: number,\n actionType?: MDCChipActionType): FocusAction|null {\n const decrAction =\n this.getFocusableAction(decrIndex, Operator.DECREMENT, actionType);\n if (decrAction) {\n return {\n index: decrIndex,\n action: decrAction,\n };\n }\n\n // Early exit if the incremented and decremented indices are identical\n if (incrIndex === decrIndex) return null;\n\n const incrAction =\n this.getFocusableAction(incrIndex, Operator.INCREMENT, actionType);\n if (incrAction) {\n return {\n index: incrIndex,\n action: incrAction,\n };\n }\n\n return null;\n }\n}\n"]}
@@ -25,3 +25,53 @@
25
25
  * @return Whether or not the event was dispatched (if cancelable).
26
26
  */
27
27
  export declare function redispatchEvent(element: Element, event: Event): boolean;
28
+ /**
29
+ * Dispatches a click event to the given element that triggers a native action,
30
+ * but is not composed and therefore is not seen outside the element.
31
+ *
32
+ * This is useful for responding to an external click event on the host element
33
+ * that should trigger an internal action like a button click.
34
+ *
35
+ * Note, a helper is provided because setting this up correctly is a bit tricky.
36
+ * In particular, calling `click` on an element creates a composed event, which
37
+ * is not desirable, and a manually dispatched event must specifically be a
38
+ * `MouseEvent` to trigger a native action.
39
+ *
40
+ * @example
41
+ * hostClickListener = (event: MouseEvent) {
42
+ * if (isActivationClick(event)) {
43
+ * this.dispatchActivationClick(this.buttonElement);
44
+ * }
45
+ * }
46
+ *
47
+ */
48
+ export declare function dispatchActivationClick(element: HTMLElement): MouseEvent;
49
+ /**
50
+ * Returns true if the click event should trigger an activation behavior. The
51
+ * behavior is defined by the element and is whatever it should do when
52
+ * clicked.
53
+ *
54
+ * Typically when an element needs to handle a click, the click is generated
55
+ * from within the element and an event listener within the element implements
56
+ * the needed behavior; however, it's possible to fire a click directly
57
+ * at the element that the element should handle. This method helps
58
+ * distinguish these "external" clicks.
59
+ *
60
+ * An "external" click can be triggered in a number of ways: via a click
61
+ * on an associated label for a form associated element, calling
62
+ * `element.click()`, or calling
63
+ * `element.dispatchEvent(new MouseEvent('click', ...))`.
64
+ *
65
+ * Also works around Firefox issue
66
+ * https://bugzilla.mozilla.org/show_bug.cgi?id=1804576 by squelching
67
+ * events for a microtask after called.
68
+ *
69
+ * @example
70
+ * hostClickListener = (event: MouseEvent) {
71
+ * if (isActivationClick(event)) {
72
+ * this.dispatchActivationClick(this.buttonElement);
73
+ * }
74
+ * }
75
+ *
76
+ */
77
+ export declare function isActivationClick(event: Event): boolean;