material-web-evo 10002.10001.10000

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 (1250) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +9 -0
  3. package/all.d.ts +97 -0
  4. package/all.js +106 -0
  5. package/all.js.map +1 -0
  6. package/button/_elevated-button.scss +6 -0
  7. package/button/_filled-button.scss +6 -0
  8. package/button/_filled-tonal-button.scss +6 -0
  9. package/button/_outlined-button.scss +6 -0
  10. package/button/_text-button.scss +6 -0
  11. package/button/elevated-button.d.ts +37 -0
  12. package/button/elevated-button.js +44 -0
  13. package/button/elevated-button.js.map +1 -0
  14. package/button/filled-button.d.ts +35 -0
  15. package/button/filled-button.js +42 -0
  16. package/button/filled-button.js.map +1 -0
  17. package/button/filled-tonal-button.d.ts +36 -0
  18. package/button/filled-tonal-button.js +43 -0
  19. package/button/filled-tonal-button.js.map +1 -0
  20. package/button/harness.d.ts +13 -0
  21. package/button/harness.js +16 -0
  22. package/button/harness.js.map +1 -0
  23. package/button/internal/_elevated-button.scss +37 -0
  24. package/button/internal/_elevation.scss +69 -0
  25. package/button/internal/_filled-button.scss +37 -0
  26. package/button/internal/_filled-tonal-button.scss +37 -0
  27. package/button/internal/_icon.scss +38 -0
  28. package/button/internal/_outlined-button.scss +87 -0
  29. package/button/internal/_shared.scss +178 -0
  30. package/button/internal/_text-button.scss +41 -0
  31. package/button/internal/_touch-target.scss +23 -0
  32. package/button/internal/button.d.ts +81 -0
  33. package/button/internal/button.js +204 -0
  34. package/button/internal/button.js.map +1 -0
  35. package/button/internal/elevated-button.d.ts +13 -0
  36. package/button/internal/elevated-button.js +17 -0
  37. package/button/internal/elevated-button.js.map +1 -0
  38. package/button/internal/elevated-styles.css +1 -0
  39. package/button/internal/elevated-styles.css.map +1 -0
  40. package/button/internal/elevated-styles.d.ts +1 -0
  41. package/button/internal/elevated-styles.js +10 -0
  42. package/button/internal/elevated-styles.js.map +1 -0
  43. package/button/internal/elevated-styles.scss +10 -0
  44. package/button/internal/filled-button.d.ts +13 -0
  45. package/button/internal/filled-button.js +17 -0
  46. package/button/internal/filled-button.js.map +1 -0
  47. package/button/internal/filled-styles.css +1 -0
  48. package/button/internal/filled-styles.css.map +1 -0
  49. package/button/internal/filled-styles.d.ts +1 -0
  50. package/button/internal/filled-styles.js +10 -0
  51. package/button/internal/filled-styles.js.map +1 -0
  52. package/button/internal/filled-styles.scss +10 -0
  53. package/button/internal/filled-tonal-button.d.ts +13 -0
  54. package/button/internal/filled-tonal-button.js +17 -0
  55. package/button/internal/filled-tonal-button.js.map +1 -0
  56. package/button/internal/filled-tonal-styles.css +1 -0
  57. package/button/internal/filled-tonal-styles.css.map +1 -0
  58. package/button/internal/filled-tonal-styles.d.ts +1 -0
  59. package/button/internal/filled-tonal-styles.js +10 -0
  60. package/button/internal/filled-tonal-styles.js.map +1 -0
  61. package/button/internal/filled-tonal-styles.scss +10 -0
  62. package/button/internal/outlined-button.d.ts +12 -0
  63. package/button/internal/outlined-button.js +16 -0
  64. package/button/internal/outlined-button.js.map +1 -0
  65. package/button/internal/outlined-styles.css +1 -0
  66. package/button/internal/outlined-styles.css.map +1 -0
  67. package/button/internal/outlined-styles.d.ts +1 -0
  68. package/button/internal/outlined-styles.js +10 -0
  69. package/button/internal/outlined-styles.js.map +1 -0
  70. package/button/internal/outlined-styles.scss +10 -0
  71. package/button/internal/shared-elevation-styles.css +1 -0
  72. package/button/internal/shared-elevation-styles.css.map +1 -0
  73. package/button/internal/shared-elevation-styles.d.ts +1 -0
  74. package/button/internal/shared-elevation-styles.js +10 -0
  75. package/button/internal/shared-elevation-styles.js.map +1 -0
  76. package/button/internal/shared-elevation-styles.scss +10 -0
  77. package/button/internal/shared-styles.css +1 -0
  78. package/button/internal/shared-styles.css.map +1 -0
  79. package/button/internal/shared-styles.d.ts +1 -0
  80. package/button/internal/shared-styles.js +10 -0
  81. package/button/internal/shared-styles.js.map +1 -0
  82. package/button/internal/shared-styles.scss +14 -0
  83. package/button/internal/text-button.d.ts +11 -0
  84. package/button/internal/text-button.js +12 -0
  85. package/button/internal/text-button.js.map +1 -0
  86. package/button/internal/text-styles.css +1 -0
  87. package/button/internal/text-styles.css.map +1 -0
  88. package/button/internal/text-styles.d.ts +1 -0
  89. package/button/internal/text-styles.js +10 -0
  90. package/button/internal/text-styles.js.map +1 -0
  91. package/button/internal/text-styles.scss +10 -0
  92. package/button/outlined-button.d.ts +37 -0
  93. package/button/outlined-button.js +39 -0
  94. package/button/outlined-button.js.map +1 -0
  95. package/button/text-button.d.ts +35 -0
  96. package/button/text-button.js +37 -0
  97. package/button/text-button.js.map +1 -0
  98. package/checkbox/_checkbox.scss +6 -0
  99. package/checkbox/checkbox.d.ts +28 -0
  100. package/checkbox/checkbox.js +29 -0
  101. package/checkbox/checkbox.js.map +1 -0
  102. package/checkbox/harness.d.ts +13 -0
  103. package/checkbox/harness.js +16 -0
  104. package/checkbox/harness.js.map +1 -0
  105. package/checkbox/internal/_checkbox.scss +392 -0
  106. package/checkbox/internal/checkbox-styles.css +1 -0
  107. package/checkbox/internal/checkbox-styles.css.map +1 -0
  108. package/checkbox/internal/checkbox-styles.d.ts +1 -0
  109. package/checkbox/internal/checkbox-styles.js +10 -0
  110. package/checkbox/internal/checkbox-styles.js.map +1 -0
  111. package/checkbox/internal/checkbox-styles.scss +10 -0
  112. package/checkbox/internal/checkbox.d.ts +72 -0
  113. package/checkbox/internal/checkbox.js +192 -0
  114. package/checkbox/internal/checkbox.js.map +1 -0
  115. package/chips/_assist-chip.scss +6 -0
  116. package/chips/_filter-chip.scss +6 -0
  117. package/chips/_input-chip.scss +6 -0
  118. package/chips/_suggestion-chip.scss +6 -0
  119. package/chips/assist-chip.d.ts +21 -0
  120. package/chips/assist-chip.js +24 -0
  121. package/chips/assist-chip.js.map +1 -0
  122. package/chips/chip-set.d.ts +21 -0
  123. package/chips/chip-set.js +22 -0
  124. package/chips/chip-set.js.map +1 -0
  125. package/chips/filter-chip.d.ts +21 -0
  126. package/chips/filter-chip.js +32 -0
  127. package/chips/filter-chip.js.map +1 -0
  128. package/chips/harness.d.ts +14 -0
  129. package/chips/harness.js +37 -0
  130. package/chips/harness.js.map +1 -0
  131. package/chips/input-chip.d.ts +21 -0
  132. package/chips/input-chip.js +30 -0
  133. package/chips/input-chip.js.map +1 -0
  134. package/chips/internal/_assist-chip.scss +43 -0
  135. package/chips/internal/_chip-set.scss +12 -0
  136. package/chips/internal/_elevated.scss +70 -0
  137. package/chips/internal/_filter-chip.scss +56 -0
  138. package/chips/internal/_input-chip.scss +83 -0
  139. package/chips/internal/_selectable.scss +78 -0
  140. package/chips/internal/_shared.scss +248 -0
  141. package/chips/internal/_suggestion-chip.scss +43 -0
  142. package/chips/internal/_trailing-icon.scss +81 -0
  143. package/chips/internal/assist-chip.d.ts +24 -0
  144. package/chips/internal/assist-chip.js +79 -0
  145. package/chips/internal/assist-chip.js.map +1 -0
  146. package/chips/internal/assist-styles.css +1 -0
  147. package/chips/internal/assist-styles.css.map +1 -0
  148. package/chips/internal/assist-styles.d.ts +1 -0
  149. package/chips/internal/assist-styles.js +10 -0
  150. package/chips/internal/assist-styles.js.map +1 -0
  151. package/chips/internal/assist-styles.scss +10 -0
  152. package/chips/internal/chip-set-styles.css +1 -0
  153. package/chips/internal/chip-set-styles.css.map +1 -0
  154. package/chips/internal/chip-set-styles.d.ts +1 -0
  155. package/chips/internal/chip-set-styles.js +10 -0
  156. package/chips/internal/chip-set-styles.js.map +1 -0
  157. package/chips/internal/chip-set-styles.scss +10 -0
  158. package/chips/internal/chip-set.d.ts +19 -0
  159. package/chips/internal/chip-set.js +128 -0
  160. package/chips/internal/chip-set.js.map +1 -0
  161. package/chips/internal/chip.d.ts +84 -0
  162. package/chips/internal/chip.js +161 -0
  163. package/chips/internal/chip.js.map +1 -0
  164. package/chips/internal/elevated-styles.css +1 -0
  165. package/chips/internal/elevated-styles.css.map +1 -0
  166. package/chips/internal/elevated-styles.d.ts +1 -0
  167. package/chips/internal/elevated-styles.js +10 -0
  168. package/chips/internal/elevated-styles.js.map +1 -0
  169. package/chips/internal/elevated-styles.scss +10 -0
  170. package/chips/internal/filter-chip.d.ts +39 -0
  171. package/chips/internal/filter-chip.js +124 -0
  172. package/chips/internal/filter-chip.js.map +1 -0
  173. package/chips/internal/filter-styles.css +1 -0
  174. package/chips/internal/filter-styles.css.map +1 -0
  175. package/chips/internal/filter-styles.d.ts +1 -0
  176. package/chips/internal/filter-styles.js +10 -0
  177. package/chips/internal/filter-styles.js.map +1 -0
  178. package/chips/internal/filter-styles.scss +10 -0
  179. package/chips/internal/input-chip.d.ts +31 -0
  180. package/chips/internal/input-chip.js +117 -0
  181. package/chips/internal/input-chip.js.map +1 -0
  182. package/chips/internal/input-styles.css +1 -0
  183. package/chips/internal/input-styles.css.map +1 -0
  184. package/chips/internal/input-styles.d.ts +1 -0
  185. package/chips/internal/input-styles.js +10 -0
  186. package/chips/internal/input-styles.js.map +1 -0
  187. package/chips/internal/input-styles.scss +10 -0
  188. package/chips/internal/multi-action-chip.d.ts +23 -0
  189. package/chips/internal/multi-action-chip.js +99 -0
  190. package/chips/internal/multi-action-chip.js.map +1 -0
  191. package/chips/internal/selectable-styles.css +1 -0
  192. package/chips/internal/selectable-styles.css.map +1 -0
  193. package/chips/internal/selectable-styles.d.ts +1 -0
  194. package/chips/internal/selectable-styles.js +10 -0
  195. package/chips/internal/selectable-styles.js.map +1 -0
  196. package/chips/internal/selectable-styles.scss +10 -0
  197. package/chips/internal/shared-styles.css +1 -0
  198. package/chips/internal/shared-styles.css.map +1 -0
  199. package/chips/internal/shared-styles.d.ts +1 -0
  200. package/chips/internal/shared-styles.js +10 -0
  201. package/chips/internal/shared-styles.js.map +1 -0
  202. package/chips/internal/shared-styles.scss +10 -0
  203. package/chips/internal/suggestion-chip.d.ts +11 -0
  204. package/chips/internal/suggestion-chip.js +14 -0
  205. package/chips/internal/suggestion-chip.js.map +1 -0
  206. package/chips/internal/suggestion-styles.css +1 -0
  207. package/chips/internal/suggestion-styles.css.map +1 -0
  208. package/chips/internal/suggestion-styles.d.ts +1 -0
  209. package/chips/internal/suggestion-styles.js +10 -0
  210. package/chips/internal/suggestion-styles.js.map +1 -0
  211. package/chips/internal/suggestion-styles.scss +10 -0
  212. package/chips/internal/trailing-icon-styles.css +1 -0
  213. package/chips/internal/trailing-icon-styles.css.map +1 -0
  214. package/chips/internal/trailing-icon-styles.d.ts +1 -0
  215. package/chips/internal/trailing-icon-styles.js +10 -0
  216. package/chips/internal/trailing-icon-styles.js.map +1 -0
  217. package/chips/internal/trailing-icon-styles.scss +10 -0
  218. package/chips/internal/trailing-icons.d.ts +16 -0
  219. package/chips/internal/trailing-icons.js +48 -0
  220. package/chips/internal/trailing-icons.js.map +1 -0
  221. package/chips/suggestion-chip.d.ts +21 -0
  222. package/chips/suggestion-chip.js +24 -0
  223. package/chips/suggestion-chip.js.map +1 -0
  224. package/color/_color.scss +197 -0
  225. package/common.d.ts +59 -0
  226. package/common.js +68 -0
  227. package/common.js.map +1 -0
  228. package/dialog/_dialog.scss +6 -0
  229. package/dialog/dialog.d.ts +42 -0
  230. package/dialog/dialog.js +43 -0
  231. package/dialog/dialog.js.map +1 -0
  232. package/dialog/harness.d.ts +13 -0
  233. package/dialog/harness.js +16 -0
  234. package/dialog/harness.js.map +1 -0
  235. package/dialog/internal/_dialog.scss +248 -0
  236. package/dialog/internal/animations.d.ts +47 -0
  237. package/dialog/internal/animations.js +119 -0
  238. package/dialog/internal/animations.js.map +1 -0
  239. package/dialog/internal/dialog-styles.css +1 -0
  240. package/dialog/internal/dialog-styles.css.map +1 -0
  241. package/dialog/internal/dialog-styles.d.ts +1 -0
  242. package/dialog/internal/dialog-styles.js +10 -0
  243. package/dialog/internal/dialog-styles.js.map +1 -0
  244. package/dialog/internal/dialog-styles.scss +10 -0
  245. package/dialog/internal/dialog.d.ts +131 -0
  246. package/dialog/internal/dialog.js +556 -0
  247. package/dialog/internal/dialog.js.map +1 -0
  248. package/divider/_divider.scss +6 -0
  249. package/divider/divider.d.ts +25 -0
  250. package/divider/divider.js +26 -0
  251. package/divider/divider.js.map +1 -0
  252. package/divider/internal/_divider.scss +61 -0
  253. package/divider/internal/divider-styles.css +1 -0
  254. package/divider/internal/divider-styles.css.map +1 -0
  255. package/divider/internal/divider-styles.d.ts +1 -0
  256. package/divider/internal/divider-styles.js +10 -0
  257. package/divider/internal/divider-styles.js.map +1 -0
  258. package/divider/internal/divider-styles.scss +10 -0
  259. package/divider/internal/divider.d.ts +23 -0
  260. package/divider/internal/divider.js +38 -0
  261. package/divider/internal/divider.js.map +1 -0
  262. package/elevation/_elevation.scss +6 -0
  263. package/elevation/elevation.d.ts +23 -0
  264. package/elevation/elevation.js +24 -0
  265. package/elevation/elevation.js.map +1 -0
  266. package/elevation/internal/_elevation.scss +176 -0
  267. package/elevation/internal/elevation-styles.css +1 -0
  268. package/elevation/internal/elevation-styles.css.map +1 -0
  269. package/elevation/internal/elevation-styles.d.ts +1 -0
  270. package/elevation/internal/elevation-styles.js +10 -0
  271. package/elevation/internal/elevation-styles.js.map +1 -0
  272. package/elevation/internal/elevation-styles.scss +10 -0
  273. package/elevation/internal/elevation.d.ts +13 -0
  274. package/elevation/internal/elevation.js +21 -0
  275. package/elevation/internal/elevation.js.map +1 -0
  276. package/fab/_fab.scss +7 -0
  277. package/fab/branded-fab.d.ts +57 -0
  278. package/fab/branded-fab.js +55 -0
  279. package/fab/branded-fab.js.map +1 -0
  280. package/fab/fab.d.ts +44 -0
  281. package/fab/fab.js +45 -0
  282. package/fab/fab.js.map +1 -0
  283. package/fab/harness.d.ts +13 -0
  284. package/fab/harness.js +16 -0
  285. package/fab/harness.js.map +1 -0
  286. package/fab/internal/_fab-branded.scss +37 -0
  287. package/fab/internal/_fab.scss +206 -0
  288. package/fab/internal/_shared.scss +248 -0
  289. package/fab/internal/fab-branded-styles.css +1 -0
  290. package/fab/internal/fab-branded-styles.css.map +1 -0
  291. package/fab/internal/fab-branded-styles.d.ts +1 -0
  292. package/fab/internal/fab-branded-styles.js +10 -0
  293. package/fab/internal/fab-branded-styles.js.map +1 -0
  294. package/fab/internal/fab-branded-styles.scss +10 -0
  295. package/fab/internal/fab-styles.css +1 -0
  296. package/fab/internal/fab-styles.css.map +1 -0
  297. package/fab/internal/fab-styles.d.ts +1 -0
  298. package/fab/internal/fab-styles.js +10 -0
  299. package/fab/internal/fab-styles.js.map +1 -0
  300. package/fab/internal/fab-styles.scss +10 -0
  301. package/fab/internal/fab.d.ts +25 -0
  302. package/fab/internal/fab.js +30 -0
  303. package/fab/internal/fab.js.map +1 -0
  304. package/fab/internal/forced-colors-styles.css +1 -0
  305. package/fab/internal/forced-colors-styles.css.map +1 -0
  306. package/fab/internal/forced-colors-styles.d.ts +1 -0
  307. package/fab/internal/forced-colors-styles.js +10 -0
  308. package/fab/internal/forced-colors-styles.js.map +1 -0
  309. package/fab/internal/forced-colors-styles.scss +29 -0
  310. package/fab/internal/shared-styles.css +1 -0
  311. package/fab/internal/shared-styles.css.map +1 -0
  312. package/fab/internal/shared-styles.d.ts +1 -0
  313. package/fab/internal/shared-styles.js +10 -0
  314. package/fab/internal/shared-styles.js.map +1 -0
  315. package/fab/internal/shared-styles.scss +10 -0
  316. package/fab/internal/shared.d.ts +44 -0
  317. package/fab/internal/shared.js +92 -0
  318. package/fab/internal/shared.js.map +1 -0
  319. package/field/_filled-field.scss +6 -0
  320. package/field/_outlined-field.scss +6 -0
  321. package/field/filled-field.d.ts +20 -0
  322. package/field/filled-field.js +22 -0
  323. package/field/filled-field.js.map +1 -0
  324. package/field/harness.d.ts +16 -0
  325. package/field/harness.js +29 -0
  326. package/field/harness.js.map +1 -0
  327. package/field/internal/_content.scss +208 -0
  328. package/field/internal/_filled-field.scss +208 -0
  329. package/field/internal/_label.scss +102 -0
  330. package/field/internal/_outlined-field.scss +344 -0
  331. package/field/internal/_shared.scss +78 -0
  332. package/field/internal/_supporting-text.scss +61 -0
  333. package/field/internal/field.d.ts +67 -0
  334. package/field/internal/field.js +357 -0
  335. package/field/internal/field.js.map +1 -0
  336. package/field/internal/filled-field.d.ts +13 -0
  337. package/field/internal/filled-field.js +22 -0
  338. package/field/internal/filled-field.js.map +1 -0
  339. package/field/internal/filled-styles.css +1 -0
  340. package/field/internal/filled-styles.css.map +1 -0
  341. package/field/internal/filled-styles.d.ts +1 -0
  342. package/field/internal/filled-styles.js +10 -0
  343. package/field/internal/filled-styles.js.map +1 -0
  344. package/field/internal/filled-styles.scss +8 -0
  345. package/field/internal/outlined-field.d.ts +12 -0
  346. package/field/internal/outlined-field.js +26 -0
  347. package/field/internal/outlined-field.js.map +1 -0
  348. package/field/internal/outlined-styles.css +1 -0
  349. package/field/internal/outlined-styles.css.map +1 -0
  350. package/field/internal/outlined-styles.d.ts +1 -0
  351. package/field/internal/outlined-styles.js +10 -0
  352. package/field/internal/outlined-styles.js.map +1 -0
  353. package/field/internal/outlined-styles.scss +7 -0
  354. package/field/internal/shared-styles.css +1 -0
  355. package/field/internal/shared-styles.css.map +1 -0
  356. package/field/internal/shared-styles.d.ts +1 -0
  357. package/field/internal/shared-styles.js +10 -0
  358. package/field/internal/shared-styles.js.map +1 -0
  359. package/field/internal/shared-styles.scss +8 -0
  360. package/field/outlined-field.d.ts +20 -0
  361. package/field/outlined-field.js +22 -0
  362. package/field/outlined-field.js.map +1 -0
  363. package/focus/_focus-ring.scss +6 -0
  364. package/focus/internal/_focus-ring.scss +113 -0
  365. package/focus/internal/focus-ring-styles.css +1 -0
  366. package/focus/internal/focus-ring-styles.css.map +1 -0
  367. package/focus/internal/focus-ring-styles.d.ts +1 -0
  368. package/focus/internal/focus-ring-styles.js +10 -0
  369. package/focus/internal/focus-ring-styles.js.map +1 -0
  370. package/focus/internal/focus-ring-styles.scss +10 -0
  371. package/focus/internal/focus-ring.d.ts +39 -0
  372. package/focus/internal/focus-ring.js +100 -0
  373. package/focus/internal/focus-ring.js.map +1 -0
  374. package/focus/md-focus-ring.d.ts +21 -0
  375. package/focus/md-focus-ring.js +22 -0
  376. package/focus/md-focus-ring.js.map +1 -0
  377. package/icon/_icon.scss +6 -0
  378. package/icon/icon.d.ts +20 -0
  379. package/icon/icon.js +21 -0
  380. package/icon/icon.js.map +1 -0
  381. package/icon/internal/_icon.scss +76 -0
  382. package/icon/internal/icon-styles.css +1 -0
  383. package/icon/internal/icon-styles.css.map +1 -0
  384. package/icon/internal/icon-styles.d.ts +1 -0
  385. package/icon/internal/icon-styles.js +10 -0
  386. package/icon/internal/icon-styles.js.map +1 -0
  387. package/icon/internal/icon-styles.scss +10 -0
  388. package/icon/internal/icon.d.ts +13 -0
  389. package/icon/internal/icon.js +28 -0
  390. package/icon/internal/icon.js.map +1 -0
  391. package/iconbutton/_filled-icon-button.scss +6 -0
  392. package/iconbutton/_filled-tonal-icon-button.scss +6 -0
  393. package/iconbutton/_icon-button.scss +6 -0
  394. package/iconbutton/_outlined-icon-button.scss +6 -0
  395. package/iconbutton/filled-icon-button.d.ts +39 -0
  396. package/iconbutton/filled-icon-button.js +42 -0
  397. package/iconbutton/filled-icon-button.js.map +1 -0
  398. package/iconbutton/filled-tonal-icon-button.d.ts +39 -0
  399. package/iconbutton/filled-tonal-icon-button.js +42 -0
  400. package/iconbutton/filled-tonal-icon-button.js.map +1 -0
  401. package/iconbutton/harness.d.ts +13 -0
  402. package/iconbutton/harness.js +19 -0
  403. package/iconbutton/harness.js.map +1 -0
  404. package/iconbutton/icon-button.d.ts +38 -0
  405. package/iconbutton/icon-button.js +41 -0
  406. package/iconbutton/icon-button.js.map +1 -0
  407. package/iconbutton/internal/_filled-icon-button.scss +146 -0
  408. package/iconbutton/internal/_filled-tonal-icon-button.scss +146 -0
  409. package/iconbutton/internal/_icon-button.scss +131 -0
  410. package/iconbutton/internal/_outlined-icon-button.scss +157 -0
  411. package/iconbutton/internal/_shared.scss +117 -0
  412. package/iconbutton/internal/filled-styles.css +1 -0
  413. package/iconbutton/internal/filled-styles.css.map +1 -0
  414. package/iconbutton/internal/filled-styles.d.ts +1 -0
  415. package/iconbutton/internal/filled-styles.js +10 -0
  416. package/iconbutton/internal/filled-styles.js.map +1 -0
  417. package/iconbutton/internal/filled-styles.scss +10 -0
  418. package/iconbutton/internal/filled-tonal-styles.css +1 -0
  419. package/iconbutton/internal/filled-tonal-styles.css.map +1 -0
  420. package/iconbutton/internal/filled-tonal-styles.d.ts +1 -0
  421. package/iconbutton/internal/filled-tonal-styles.js +10 -0
  422. package/iconbutton/internal/filled-tonal-styles.js.map +1 -0
  423. package/iconbutton/internal/filled-tonal-styles.scss +10 -0
  424. package/iconbutton/internal/icon-button.d.ts +106 -0
  425. package/iconbutton/internal/icon-button.js +260 -0
  426. package/iconbutton/internal/icon-button.js.map +1 -0
  427. package/iconbutton/internal/outlined-styles.css +1 -0
  428. package/iconbutton/internal/outlined-styles.css.map +1 -0
  429. package/iconbutton/internal/outlined-styles.d.ts +1 -0
  430. package/iconbutton/internal/outlined-styles.js +10 -0
  431. package/iconbutton/internal/outlined-styles.js.map +1 -0
  432. package/iconbutton/internal/outlined-styles.scss +10 -0
  433. package/iconbutton/internal/shared-styles.css +1 -0
  434. package/iconbutton/internal/shared-styles.css.map +1 -0
  435. package/iconbutton/internal/shared-styles.d.ts +1 -0
  436. package/iconbutton/internal/shared-styles.js +10 -0
  437. package/iconbutton/internal/shared-styles.js.map +1 -0
  438. package/iconbutton/internal/shared-styles.scss +10 -0
  439. package/iconbutton/internal/standard-styles.css +1 -0
  440. package/iconbutton/internal/standard-styles.css.map +1 -0
  441. package/iconbutton/internal/standard-styles.d.ts +1 -0
  442. package/iconbutton/internal/standard-styles.js +10 -0
  443. package/iconbutton/internal/standard-styles.js.map +1 -0
  444. package/iconbutton/internal/standard-styles.scss +10 -0
  445. package/iconbutton/outlined-icon-button.d.ts +38 -0
  446. package/iconbutton/outlined-icon-button.js +41 -0
  447. package/iconbutton/outlined-icon-button.js.map +1 -0
  448. package/internal/aria/aria.d.ts +103 -0
  449. package/internal/aria/aria.js +81 -0
  450. package/internal/aria/aria.js.map +1 -0
  451. package/internal/aria/delegate.d.ts +54 -0
  452. package/internal/aria/delegate.js +176 -0
  453. package/internal/aria/delegate.js.map +1 -0
  454. package/internal/controller/attachable-controller.d.ts +114 -0
  455. package/internal/controller/attachable-controller.js +121 -0
  456. package/internal/controller/attachable-controller.js.map +1 -0
  457. package/internal/controller/form-submitter.d.ts +70 -0
  458. package/internal/controller/form-submitter.js +69 -0
  459. package/internal/controller/form-submitter.js.map +1 -0
  460. package/internal/controller/is-rtl.d.ts +14 -0
  461. package/internal/controller/is-rtl.js +18 -0
  462. package/internal/controller/is-rtl.js.map +1 -0
  463. package/internal/controller/string-converter.d.ts +9 -0
  464. package/internal/controller/string-converter.js +14 -0
  465. package/internal/controller/string-converter.js.map +1 -0
  466. package/internal/events/dispatch-hooks.d.ts +85 -0
  467. package/internal/events/dispatch-hooks.js +151 -0
  468. package/internal/events/dispatch-hooks.js.map +1 -0
  469. package/internal/events/form-label-activation.d.ts +55 -0
  470. package/internal/events/form-label-activation.js +96 -0
  471. package/internal/events/form-label-activation.js.map +1 -0
  472. package/internal/events/redispatch-event.d.ts +27 -0
  473. package/internal/events/redispatch-event.js +40 -0
  474. package/internal/events/redispatch-event.js.map +1 -0
  475. package/internal/motion/_animation.scss +33 -0
  476. package/internal/motion/animation.d.ts +80 -0
  477. package/internal/motion/animation.js +101 -0
  478. package/internal/motion/animation.js.map +1 -0
  479. package/internal/sass/_string-ext.scss +195 -0
  480. package/internal/sass/_var.scss +237 -0
  481. package/labs/badge/_badge.scss +6 -0
  482. package/labs/badge/badge.d.ts +19 -0
  483. package/labs/badge/badge.js +20 -0
  484. package/labs/badge/badge.js.map +1 -0
  485. package/labs/badge/internal/_badge.scss +76 -0
  486. package/labs/badge/internal/badge-styles.css +1 -0
  487. package/labs/badge/internal/badge-styles.css.map +1 -0
  488. package/labs/badge/internal/badge-styles.d.ts +1 -0
  489. package/labs/badge/internal/badge-styles.js +10 -0
  490. package/labs/badge/internal/badge-styles.js.map +1 -0
  491. package/labs/badge/internal/badge-styles.scss +10 -0
  492. package/labs/badge/internal/badge.d.ts +13 -0
  493. package/labs/badge/internal/badge.js +28 -0
  494. package/labs/badge/internal/badge.js.map +1 -0
  495. package/labs/behaviors/constraint-validation.d.ts +133 -0
  496. package/labs/behaviors/constraint-validation.js +131 -0
  497. package/labs/behaviors/constraint-validation.js.map +1 -0
  498. package/labs/behaviors/element-internals.d.ts +45 -0
  499. package/labs/behaviors/element-internals.js +46 -0
  500. package/labs/behaviors/element-internals.js.map +1 -0
  501. package/labs/behaviors/focusable.d.ts +39 -0
  502. package/labs/behaviors/focusable.js +87 -0
  503. package/labs/behaviors/focusable.js.map +1 -0
  504. package/labs/behaviors/form-associated.d.ts +199 -0
  505. package/labs/behaviors/form-associated.js +175 -0
  506. package/labs/behaviors/form-associated.js.map +1 -0
  507. package/labs/behaviors/mixin.d.ts +54 -0
  508. package/labs/behaviors/mixin.js +7 -0
  509. package/labs/behaviors/mixin.js.map +1 -0
  510. package/labs/behaviors/on-report-validity.d.ts +71 -0
  511. package/labs/behaviors/on-report-validity.js +289 -0
  512. package/labs/behaviors/on-report-validity.js.map +1 -0
  513. package/labs/behaviors/validators/checkbox-validator.d.ts +35 -0
  514. package/labs/behaviors/validators/checkbox-validator.js +32 -0
  515. package/labs/behaviors/validators/checkbox-validator.js.map +1 -0
  516. package/labs/behaviors/validators/radio-validator.d.ts +38 -0
  517. package/labs/behaviors/validators/radio-validator.js +65 -0
  518. package/labs/behaviors/validators/radio-validator.js.map +1 -0
  519. package/labs/behaviors/validators/select-validator.d.ts +35 -0
  520. package/labs/behaviors/validators/select-validator.js +33 -0
  521. package/labs/behaviors/validators/select-validator.js.map +1 -0
  522. package/labs/behaviors/validators/text-field-validator.d.ts +110 -0
  523. package/labs/behaviors/validators/text-field-validator.js +154 -0
  524. package/labs/behaviors/validators/text-field-validator.js.map +1 -0
  525. package/labs/behaviors/validators/validator.d.ts +96 -0
  526. package/labs/behaviors/validators/validator.js +73 -0
  527. package/labs/behaviors/validators/validator.js.map +1 -0
  528. package/labs/card/_elevated-card.scss +6 -0
  529. package/labs/card/_filled-card.scss +6 -0
  530. package/labs/card/_outlined-card.scss +6 -0
  531. package/labs/card/elevated-card.d.ts +19 -0
  532. package/labs/card/elevated-card.js +21 -0
  533. package/labs/card/elevated-card.js.map +1 -0
  534. package/labs/card/filled-card.d.ts +19 -0
  535. package/labs/card/filled-card.js +21 -0
  536. package/labs/card/filled-card.js.map +1 -0
  537. package/labs/card/internal/_elevated-card.scss +35 -0
  538. package/labs/card/internal/_filled-card.scss +35 -0
  539. package/labs/card/internal/_outlined-card.scss +40 -0
  540. package/labs/card/internal/_shared.scss +62 -0
  541. package/labs/card/internal/card.d.ts +13 -0
  542. package/labs/card/internal/card.js +21 -0
  543. package/labs/card/internal/card.js.map +1 -0
  544. package/labs/card/internal/elevated-styles.css +1 -0
  545. package/labs/card/internal/elevated-styles.css.map +1 -0
  546. package/labs/card/internal/elevated-styles.d.ts +1 -0
  547. package/labs/card/internal/elevated-styles.js +10 -0
  548. package/labs/card/internal/elevated-styles.js.map +1 -0
  549. package/labs/card/internal/elevated-styles.scss +10 -0
  550. package/labs/card/internal/filled-styles.css +1 -0
  551. package/labs/card/internal/filled-styles.css.map +1 -0
  552. package/labs/card/internal/filled-styles.d.ts +1 -0
  553. package/labs/card/internal/filled-styles.js +10 -0
  554. package/labs/card/internal/filled-styles.js.map +1 -0
  555. package/labs/card/internal/filled-styles.scss +10 -0
  556. package/labs/card/internal/outlined-styles.css +1 -0
  557. package/labs/card/internal/outlined-styles.css.map +1 -0
  558. package/labs/card/internal/outlined-styles.d.ts +1 -0
  559. package/labs/card/internal/outlined-styles.js +10 -0
  560. package/labs/card/internal/outlined-styles.js.map +1 -0
  561. package/labs/card/internal/outlined-styles.scss +10 -0
  562. package/labs/card/internal/shared-styles.css +1 -0
  563. package/labs/card/internal/shared-styles.css.map +1 -0
  564. package/labs/card/internal/shared-styles.d.ts +1 -0
  565. package/labs/card/internal/shared-styles.js +10 -0
  566. package/labs/card/internal/shared-styles.js.map +1 -0
  567. package/labs/card/internal/shared-styles.scss +10 -0
  568. package/labs/card/outlined-card.d.ts +19 -0
  569. package/labs/card/outlined-card.js +21 -0
  570. package/labs/card/outlined-card.js.map +1 -0
  571. package/labs/item/internal/_item.scss +99 -0
  572. package/labs/item/internal/item-styles.css +1 -0
  573. package/labs/item/internal/item-styles.css.map +1 -0
  574. package/labs/item/internal/item-styles.d.ts +1 -0
  575. package/labs/item/internal/item-styles.js +10 -0
  576. package/labs/item/internal/item-styles.js.map +1 -0
  577. package/labs/item/internal/item-styles.scss +10 -0
  578. package/labs/item/internal/item.d.ts +22 -0
  579. package/labs/item/internal/item.js +78 -0
  580. package/labs/item/internal/item.js.map +1 -0
  581. package/labs/item/item.d.ts +74 -0
  582. package/labs/item/item.js +75 -0
  583. package/labs/item/item.js.map +1 -0
  584. package/labs/navigationbar/_navigation-bar.scss +6 -0
  585. package/labs/navigationbar/harness.d.ts +19 -0
  586. package/labs/navigationbar/harness.js +29 -0
  587. package/labs/navigationbar/harness.js.map +1 -0
  588. package/labs/navigationbar/internal/_navigation-bar.scss +70 -0
  589. package/labs/navigationbar/internal/constants.d.ts +17 -0
  590. package/labs/navigationbar/internal/constants.js +7 -0
  591. package/labs/navigationbar/internal/constants.js.map +1 -0
  592. package/labs/navigationbar/internal/navigation-bar-styles.css +1 -0
  593. package/labs/navigationbar/internal/navigation-bar-styles.css.map +1 -0
  594. package/labs/navigationbar/internal/navigation-bar-styles.d.ts +1 -0
  595. package/labs/navigationbar/internal/navigation-bar-styles.js +10 -0
  596. package/labs/navigationbar/internal/navigation-bar-styles.js.map +1 -0
  597. package/labs/navigationbar/internal/navigation-bar-styles.scss +10 -0
  598. package/labs/navigationbar/internal/navigation-bar.d.ts +32 -0
  599. package/labs/navigationbar/internal/navigation-bar.js +144 -0
  600. package/labs/navigationbar/internal/navigation-bar.js.map +1 -0
  601. package/labs/navigationbar/internal/state.d.ts +23 -0
  602. package/labs/navigationbar/internal/state.js +7 -0
  603. package/labs/navigationbar/internal/state.js.map +1 -0
  604. package/labs/navigationbar/navigation-bar.d.ts +19 -0
  605. package/labs/navigationbar/navigation-bar.js +20 -0
  606. package/labs/navigationbar/navigation-bar.js.map +1 -0
  607. package/labs/navigationdrawer/_navigation-drawer-modal.scss +6 -0
  608. package/labs/navigationdrawer/_navigation-drawer.scss +6 -0
  609. package/labs/navigationdrawer/internal/_navigation-drawer-modal.scss +110 -0
  610. package/labs/navigationdrawer/internal/_navigation-drawer.scss +97 -0
  611. package/labs/navigationdrawer/internal/_shared.scss +31 -0
  612. package/labs/navigationdrawer/internal/navigation-drawer-modal-styles.css +1 -0
  613. package/labs/navigationdrawer/internal/navigation-drawer-modal-styles.css.map +1 -0
  614. package/labs/navigationdrawer/internal/navigation-drawer-modal-styles.d.ts +1 -0
  615. package/labs/navigationdrawer/internal/navigation-drawer-modal-styles.js +10 -0
  616. package/labs/navigationdrawer/internal/navigation-drawer-modal-styles.js.map +1 -0
  617. package/labs/navigationdrawer/internal/navigation-drawer-modal-styles.scss +10 -0
  618. package/labs/navigationdrawer/internal/navigation-drawer-modal.d.ts +24 -0
  619. package/labs/navigationdrawer/internal/navigation-drawer-modal.js +87 -0
  620. package/labs/navigationdrawer/internal/navigation-drawer-modal.js.map +1 -0
  621. package/labs/navigationdrawer/internal/navigation-drawer-styles.css +1 -0
  622. package/labs/navigationdrawer/internal/navigation-drawer-styles.css.map +1 -0
  623. package/labs/navigationdrawer/internal/navigation-drawer-styles.d.ts +1 -0
  624. package/labs/navigationdrawer/internal/navigation-drawer-styles.js +10 -0
  625. package/labs/navigationdrawer/internal/navigation-drawer-styles.js.map +1 -0
  626. package/labs/navigationdrawer/internal/navigation-drawer-styles.scss +10 -0
  627. package/labs/navigationdrawer/internal/navigation-drawer.d.ts +22 -0
  628. package/labs/navigationdrawer/internal/navigation-drawer.js +70 -0
  629. package/labs/navigationdrawer/internal/navigation-drawer.js.map +1 -0
  630. package/labs/navigationdrawer/internal/shared-styles.css +1 -0
  631. package/labs/navigationdrawer/internal/shared-styles.css.map +1 -0
  632. package/labs/navigationdrawer/internal/shared-styles.d.ts +1 -0
  633. package/labs/navigationdrawer/internal/shared-styles.js +10 -0
  634. package/labs/navigationdrawer/internal/shared-styles.js.map +1 -0
  635. package/labs/navigationdrawer/internal/shared-styles.scss +10 -0
  636. package/labs/navigationdrawer/navigation-drawer-modal.d.ts +18 -0
  637. package/labs/navigationdrawer/navigation-drawer-modal.js +21 -0
  638. package/labs/navigationdrawer/navigation-drawer-modal.js.map +1 -0
  639. package/labs/navigationdrawer/navigation-drawer.d.ts +18 -0
  640. package/labs/navigationdrawer/navigation-drawer.js +21 -0
  641. package/labs/navigationdrawer/navigation-drawer.js.map +1 -0
  642. package/labs/navigationtab/_navigation-tab.scss +6 -0
  643. package/labs/navigationtab/harness.d.ts +13 -0
  644. package/labs/navigationtab/harness.js +16 -0
  645. package/labs/navigationtab/harness.js.map +1 -0
  646. package/labs/navigationtab/internal/_navigation-tab.scss +264 -0
  647. package/labs/navigationtab/internal/navigation-tab-styles.css +1 -0
  648. package/labs/navigationtab/internal/navigation-tab-styles.css.map +1 -0
  649. package/labs/navigationtab/internal/navigation-tab-styles.d.ts +1 -0
  650. package/labs/navigationtab/internal/navigation-tab-styles.js +10 -0
  651. package/labs/navigationtab/internal/navigation-tab-styles.js.map +1 -0
  652. package/labs/navigationtab/internal/navigation-tab-styles.scss +10 -0
  653. package/labs/navigationtab/internal/navigation-tab.d.ts +38 -0
  654. package/labs/navigationtab/internal/navigation-tab.js +132 -0
  655. package/labs/navigationtab/internal/navigation-tab.js.map +1 -0
  656. package/labs/navigationtab/internal/state.d.ts +18 -0
  657. package/labs/navigationtab/internal/state.js +7 -0
  658. package/labs/navigationtab/internal/state.js.map +1 -0
  659. package/labs/navigationtab/navigation-tab.d.ts +19 -0
  660. package/labs/navigationtab/navigation-tab.js +20 -0
  661. package/labs/navigationtab/navigation-tab.js.map +1 -0
  662. package/labs/segmentedbutton/internal/_outlined-segmented-button.scss +42 -0
  663. package/labs/segmentedbutton/internal/_shared.scss +361 -0
  664. package/labs/segmentedbutton/internal/outlined-segmented-button.d.ts +24 -0
  665. package/labs/segmentedbutton/internal/outlined-segmented-button.js +22 -0
  666. package/labs/segmentedbutton/internal/outlined-segmented-button.js.map +1 -0
  667. package/labs/segmentedbutton/internal/outlined-styles.css +1 -0
  668. package/labs/segmentedbutton/internal/outlined-styles.css.map +1 -0
  669. package/labs/segmentedbutton/internal/outlined-styles.d.ts +1 -0
  670. package/labs/segmentedbutton/internal/outlined-styles.js +10 -0
  671. package/labs/segmentedbutton/internal/outlined-styles.js.map +1 -0
  672. package/labs/segmentedbutton/internal/outlined-styles.scss +10 -0
  673. package/labs/segmentedbutton/internal/segmented-button.d.ts +49 -0
  674. package/labs/segmentedbutton/internal/segmented-button.js +170 -0
  675. package/labs/segmentedbutton/internal/segmented-button.js.map +1 -0
  676. package/labs/segmentedbutton/internal/shared-styles.css +1 -0
  677. package/labs/segmentedbutton/internal/shared-styles.css.map +1 -0
  678. package/labs/segmentedbutton/internal/shared-styles.d.ts +1 -0
  679. package/labs/segmentedbutton/internal/shared-styles.js +10 -0
  680. package/labs/segmentedbutton/internal/shared-styles.js.map +1 -0
  681. package/labs/segmentedbutton/internal/shared-styles.scss +10 -0
  682. package/labs/segmentedbutton/outlined-segmented-button.d.ts +21 -0
  683. package/labs/segmentedbutton/outlined-segmented-button.js +23 -0
  684. package/labs/segmentedbutton/outlined-segmented-button.js.map +1 -0
  685. package/labs/segmentedbuttonset/internal/_outlined-segmented-button-set.scss +40 -0
  686. package/labs/segmentedbuttonset/internal/_shared.scss +33 -0
  687. package/labs/segmentedbuttonset/internal/outlined-segmented-button-set.d.ts +14 -0
  688. package/labs/segmentedbuttonset/internal/outlined-segmented-button-set.js +18 -0
  689. package/labs/segmentedbuttonset/internal/outlined-segmented-button-set.js.map +1 -0
  690. package/labs/segmentedbuttonset/internal/outlined-styles.css +1 -0
  691. package/labs/segmentedbuttonset/internal/outlined-styles.css.map +1 -0
  692. package/labs/segmentedbuttonset/internal/outlined-styles.d.ts +1 -0
  693. package/labs/segmentedbuttonset/internal/outlined-styles.js +10 -0
  694. package/labs/segmentedbuttonset/internal/outlined-styles.js.map +1 -0
  695. package/labs/segmentedbuttonset/internal/outlined-styles.scss +10 -0
  696. package/labs/segmentedbuttonset/internal/segmented-button-set.d.ts +33 -0
  697. package/labs/segmentedbuttonset/internal/segmented-button-set.js +112 -0
  698. package/labs/segmentedbuttonset/internal/segmented-button-set.js.map +1 -0
  699. package/labs/segmentedbuttonset/internal/shared-styles.css +1 -0
  700. package/labs/segmentedbuttonset/internal/shared-styles.css.map +1 -0
  701. package/labs/segmentedbuttonset/internal/shared-styles.d.ts +1 -0
  702. package/labs/segmentedbuttonset/internal/shared-styles.js +10 -0
  703. package/labs/segmentedbuttonset/internal/shared-styles.js.map +1 -0
  704. package/labs/segmentedbuttonset/internal/shared-styles.scss +10 -0
  705. package/labs/segmentedbuttonset/outlined-segmented-button-set.d.ts +21 -0
  706. package/labs/segmentedbuttonset/outlined-segmented-button-set.js +23 -0
  707. package/labs/segmentedbuttonset/outlined-segmented-button-set.js.map +1 -0
  708. package/list/_list-item.scss +6 -0
  709. package/list/_list.scss +6 -0
  710. package/list/harness.d.ts +45 -0
  711. package/list/harness.js +49 -0
  712. package/list/harness.js.map +1 -0
  713. package/list/internal/_list.scss +43 -0
  714. package/list/internal/list-controller.d.ts +114 -0
  715. package/list/internal/list-controller.js +186 -0
  716. package/list/internal/list-controller.js.map +1 -0
  717. package/list/internal/list-navigation-helpers.d.ts +136 -0
  718. package/list/internal/list-navigation-helpers.js +230 -0
  719. package/list/internal/list-navigation-helpers.js.map +1 -0
  720. package/list/internal/list-styles.css +1 -0
  721. package/list/internal/list-styles.css.map +1 -0
  722. package/list/internal/list-styles.d.ts +1 -0
  723. package/list/internal/list-styles.js +10 -0
  724. package/list/internal/list-styles.js.map +1 -0
  725. package/list/internal/list-styles.scss +10 -0
  726. package/list/internal/list.d.ts +44 -0
  727. package/list/internal/list.js +71 -0
  728. package/list/internal/list.js.map +1 -0
  729. package/list/internal/listitem/_list-item.scss +163 -0
  730. package/list/internal/listitem/harness.d.ts +27 -0
  731. package/list/internal/listitem/harness.js +25 -0
  732. package/list/internal/listitem/harness.js.map +1 -0
  733. package/list/internal/listitem/list-item-styles.css +1 -0
  734. package/list/internal/listitem/list-item-styles.css.map +1 -0
  735. package/list/internal/listitem/list-item-styles.d.ts +1 -0
  736. package/list/internal/listitem/list-item-styles.js +10 -0
  737. package/list/internal/listitem/list-item-styles.js.map +1 -0
  738. package/list/internal/listitem/list-item-styles.scss +10 -0
  739. package/list/internal/listitem/list-item.d.ts +80 -0
  740. package/list/internal/listitem/list-item.js +192 -0
  741. package/list/internal/listitem/list-item.js.map +1 -0
  742. package/list/list-item.d.ts +54 -0
  743. package/list/list-item.js +54 -0
  744. package/list/list-item.js.map +1 -0
  745. package/list/list.d.ts +34 -0
  746. package/list/list.js +35 -0
  747. package/list/list.js.map +1 -0
  748. package/menu/_menu-item.scss +6 -0
  749. package/menu/_menu.scss +6 -0
  750. package/menu/harness.d.ts +21 -0
  751. package/menu/harness.js +38 -0
  752. package/menu/harness.js.map +1 -0
  753. package/menu/internal/_menu.scss +143 -0
  754. package/menu/internal/controllers/menuItemController.d.ts +126 -0
  755. package/menu/internal/controllers/menuItemController.js +138 -0
  756. package/menu/internal/controllers/menuItemController.js.map +1 -0
  757. package/menu/internal/controllers/shared.d.ts +229 -0
  758. package/menu/internal/controllers/shared.js +137 -0
  759. package/menu/internal/controllers/shared.js.map +1 -0
  760. package/menu/internal/controllers/surfacePositionController.d.ts +174 -0
  761. package/menu/internal/controllers/surfacePositionController.js +394 -0
  762. package/menu/internal/controllers/surfacePositionController.js.map +1 -0
  763. package/menu/internal/controllers/typeaheadController.d.ts +157 -0
  764. package/menu/internal/controllers/typeaheadController.js +259 -0
  765. package/menu/internal/controllers/typeaheadController.js.map +1 -0
  766. package/menu/internal/menu-styles.css +1 -0
  767. package/menu/internal/menu-styles.css.map +1 -0
  768. package/menu/internal/menu-styles.d.ts +1 -0
  769. package/menu/internal/menu-styles.js +10 -0
  770. package/menu/internal/menu-styles.js.map +1 -0
  771. package/menu/internal/menu-styles.scss +10 -0
  772. package/menu/internal/menu.d.ts +317 -0
  773. package/menu/internal/menu.js +914 -0
  774. package/menu/internal/menu.js.map +1 -0
  775. package/menu/internal/menuitem/_menu-item.scss +180 -0
  776. package/menu/internal/menuitem/harness.d.ts +13 -0
  777. package/menu/internal/menuitem/harness.js +12 -0
  778. package/menu/internal/menuitem/harness.js.map +1 -0
  779. package/menu/internal/menuitem/menu-item-styles.css +1 -0
  780. package/menu/internal/menuitem/menu-item-styles.css.map +1 -0
  781. package/menu/internal/menuitem/menu-item-styles.d.ts +1 -0
  782. package/menu/internal/menuitem/menu-item-styles.js +10 -0
  783. package/menu/internal/menuitem/menu-item-styles.js.map +1 -0
  784. package/menu/internal/menuitem/menu-item-styles.scss +10 -0
  785. package/menu/internal/menuitem/menu-item.d.ts +85 -0
  786. package/menu/internal/menuitem/menu-item.js +211 -0
  787. package/menu/internal/menuitem/menu-item.js.map +1 -0
  788. package/menu/internal/submenu/_sub-menu.scss +12 -0
  789. package/menu/internal/submenu/sub-menu-styles.css +1 -0
  790. package/menu/internal/submenu/sub-menu-styles.css.map +1 -0
  791. package/menu/internal/submenu/sub-menu-styles.d.ts +1 -0
  792. package/menu/internal/submenu/sub-menu-styles.js +10 -0
  793. package/menu/internal/submenu/sub-menu-styles.js.map +1 -0
  794. package/menu/internal/submenu/sub-menu-styles.scss +10 -0
  795. package/menu/internal/submenu/sub-menu.d.ts +102 -0
  796. package/menu/internal/submenu/sub-menu.js +364 -0
  797. package/menu/internal/submenu/sub-menu.js.map +1 -0
  798. package/menu/internal/types.d.ts +23 -0
  799. package/menu/internal/types.js +7 -0
  800. package/menu/internal/types.js.map +1 -0
  801. package/menu/menu-item.d.ts +32 -0
  802. package/menu/menu-item.js +31 -0
  803. package/menu/menu-item.js.map +1 -0
  804. package/menu/menu.d.ts +68 -0
  805. package/menu/menu.js +67 -0
  806. package/menu/menu.js.map +1 -0
  807. package/menu/sub-menu.d.ts +63 -0
  808. package/menu/sub-menu.js +64 -0
  809. package/menu/sub-menu.js.map +1 -0
  810. package/migrations/v2/query-selector-aria.d.ts +22 -0
  811. package/migrations/v2/query-selector-aria.js +30 -0
  812. package/migrations/v2/query-selector-aria.js.map +1 -0
  813. package/package.json +184 -0
  814. package/progress/_circular-progress.scss +6 -0
  815. package/progress/_linear-progress.scss +6 -0
  816. package/progress/circular-progress.d.ts +28 -0
  817. package/progress/circular-progress.js +29 -0
  818. package/progress/circular-progress.js.map +1 -0
  819. package/progress/harness.d.ts +20 -0
  820. package/progress/harness.js +25 -0
  821. package/progress/harness.js.map +1 -0
  822. package/progress/internal/_circular-progress.scss +287 -0
  823. package/progress/internal/_linear-progress.scss +335 -0
  824. package/progress/internal/circular-progress-styles.css +1 -0
  825. package/progress/internal/circular-progress-styles.css.map +1 -0
  826. package/progress/internal/circular-progress-styles.d.ts +1 -0
  827. package/progress/internal/circular-progress-styles.js +10 -0
  828. package/progress/internal/circular-progress-styles.js.map +1 -0
  829. package/progress/internal/circular-progress-styles.scss +8 -0
  830. package/progress/internal/circular-progress.d.ts +14 -0
  831. package/progress/internal/circular-progress.js +50 -0
  832. package/progress/internal/circular-progress.js.map +1 -0
  833. package/progress/internal/linear-progress-styles.css +1 -0
  834. package/progress/internal/linear-progress-styles.css.map +1 -0
  835. package/progress/internal/linear-progress-styles.d.ts +1 -0
  836. package/progress/internal/linear-progress-styles.js +10 -0
  837. package/progress/internal/linear-progress-styles.js.map +1 -0
  838. package/progress/internal/linear-progress-styles.scss +8 -0
  839. package/progress/internal/linear-progress.d.ts +17 -0
  840. package/progress/internal/linear-progress.js +54 -0
  841. package/progress/internal/linear-progress.js.map +1 -0
  842. package/progress/internal/progress.d.ts +36 -0
  843. package/progress/internal/progress.js +71 -0
  844. package/progress/internal/progress.js.map +1 -0
  845. package/progress/linear-progress.d.ts +27 -0
  846. package/progress/linear-progress.js +28 -0
  847. package/progress/linear-progress.js.map +1 -0
  848. package/radio/_radio.scss +6 -0
  849. package/radio/harness.d.ts +13 -0
  850. package/radio/harness.js +16 -0
  851. package/radio/harness.js.map +1 -0
  852. package/radio/internal/_radio.scss +203 -0
  853. package/radio/internal/radio-styles.css +1 -0
  854. package/radio/internal/radio-styles.css.map +1 -0
  855. package/radio/internal/radio-styles.d.ts +1 -0
  856. package/radio/internal/radio-styles.js +10 -0
  857. package/radio/internal/radio-styles.js.map +1 -0
  858. package/radio/internal/radio-styles.scss +10 -0
  859. package/radio/internal/radio.d.ts +55 -0
  860. package/radio/internal/radio.js +172 -0
  861. package/radio/internal/radio.js.map +1 -0
  862. package/radio/internal/single-selection-controller.d.ts +80 -0
  863. package/radio/internal/single-selection-controller.js +199 -0
  864. package/radio/internal/single-selection-controller.js.map +1 -0
  865. package/radio/radio.d.ts +31 -0
  866. package/radio/radio.js +32 -0
  867. package/radio/radio.js.map +1 -0
  868. package/ripple/_ripple.scss +6 -0
  869. package/ripple/internal/_ripple.scss +92 -0
  870. package/ripple/internal/ripple-styles.css +1 -0
  871. package/ripple/internal/ripple-styles.css.map +1 -0
  872. package/ripple/internal/ripple-styles.d.ts +1 -0
  873. package/ripple/internal/ripple-styles.js +10 -0
  874. package/ripple/internal/ripple-styles.js.map +1 -0
  875. package/ripple/internal/ripple-styles.scss +10 -0
  876. package/ripple/internal/ripple.d.ts +76 -0
  877. package/ripple/internal/ripple.js +423 -0
  878. package/ripple/internal/ripple.js.map +1 -0
  879. package/ripple/ripple.d.ts +28 -0
  880. package/ripple/ripple.js +29 -0
  881. package/ripple/ripple.js.map +1 -0
  882. package/select/_filled-select.scss +6 -0
  883. package/select/_outlined-select.scss +6 -0
  884. package/select/filled-select.d.ts +42 -0
  885. package/select/filled-select.js +44 -0
  886. package/select/filled-select.js.map +1 -0
  887. package/select/harness.d.ts +25 -0
  888. package/select/harness.js +58 -0
  889. package/select/harness.js.map +1 -0
  890. package/select/internal/_filled-select.scss +191 -0
  891. package/select/internal/_outlined-select.scss +164 -0
  892. package/select/internal/_shared.scss +102 -0
  893. package/select/internal/filled-select-styles.css +1 -0
  894. package/select/internal/filled-select-styles.css.map +1 -0
  895. package/select/internal/filled-select-styles.d.ts +1 -0
  896. package/select/internal/filled-select-styles.js +10 -0
  897. package/select/internal/filled-select-styles.js.map +1 -0
  898. package/select/internal/filled-select-styles.scss +10 -0
  899. package/select/internal/filled-select.d.ts +10 -0
  900. package/select/internal/filled-select.js +16 -0
  901. package/select/internal/filled-select.js.map +1 -0
  902. package/select/internal/outlined-select-styles.css +1 -0
  903. package/select/internal/outlined-select-styles.css.map +1 -0
  904. package/select/internal/outlined-select-styles.d.ts +1 -0
  905. package/select/internal/outlined-select-styles.js +10 -0
  906. package/select/internal/outlined-select-styles.js.map +1 -0
  907. package/select/internal/outlined-select-styles.scss +10 -0
  908. package/select/internal/outlined-select.d.ts +10 -0
  909. package/select/internal/outlined-select.js +16 -0
  910. package/select/internal/outlined-select.js.map +1 -0
  911. package/select/internal/select.d.ts +269 -0
  912. package/select/internal/select.js +758 -0
  913. package/select/internal/select.js.map +1 -0
  914. package/select/internal/selectoption/harness.d.ts +11 -0
  915. package/select/internal/selectoption/harness.js +12 -0
  916. package/select/internal/selectoption/harness.js.map +1 -0
  917. package/select/internal/selectoption/select-option.d.ts +112 -0
  918. package/select/internal/selectoption/select-option.js +196 -0
  919. package/select/internal/selectoption/select-option.js.map +1 -0
  920. package/select/internal/selectoption/selectOptionController.d.ts +71 -0
  921. package/select/internal/selectoption/selectOptionController.js +115 -0
  922. package/select/internal/selectoption/selectOptionController.js.map +1 -0
  923. package/select/internal/shared-styles.css +1 -0
  924. package/select/internal/shared-styles.css.map +1 -0
  925. package/select/internal/shared-styles.d.ts +1 -0
  926. package/select/internal/shared-styles.js +10 -0
  927. package/select/internal/shared-styles.js.map +1 -0
  928. package/select/internal/shared-styles.scss +10 -0
  929. package/select/internal/shared.d.ts +18 -0
  930. package/select/internal/shared.js +23 -0
  931. package/select/internal/shared.js.map +1 -0
  932. package/select/outlined-select.d.ts +42 -0
  933. package/select/outlined-select.js +44 -0
  934. package/select/outlined-select.js.map +1 -0
  935. package/select/select-option.d.ts +46 -0
  936. package/select/select-option.js +46 -0
  937. package/select/select-option.js.map +1 -0
  938. package/slider/_slider.scss +6 -0
  939. package/slider/harness.d.ts +21 -0
  940. package/slider/harness.js +70 -0
  941. package/slider/harness.js.map +1 -0
  942. package/slider/internal/_slider.scss +519 -0
  943. package/slider/internal/forced-colors-styles.css +1 -0
  944. package/slider/internal/forced-colors-styles.css.map +1 -0
  945. package/slider/internal/forced-colors-styles.d.ts +1 -0
  946. package/slider/internal/forced-colors-styles.js +10 -0
  947. package/slider/internal/forced-colors-styles.js.map +1 -0
  948. package/slider/internal/forced-colors-styles.scss +88 -0
  949. package/slider/internal/slider-styles.css +1 -0
  950. package/slider/internal/slider-styles.css.map +1 -0
  951. package/slider/internal/slider-styles.d.ts +1 -0
  952. package/slider/internal/slider-styles.js +10 -0
  953. package/slider/internal/slider-styles.js.map +1 -0
  954. package/slider/internal/slider-styles.scss +8 -0
  955. package/slider/internal/slider.d.ts +178 -0
  956. package/slider/internal/slider.js +714 -0
  957. package/slider/internal/slider.js.map +1 -0
  958. package/slider/slider.d.ts +32 -0
  959. package/slider/slider.js +34 -0
  960. package/slider/slider.js.map +1 -0
  961. package/switch/_switch.scss +6 -0
  962. package/switch/harness.d.ts +13 -0
  963. package/switch/harness.js +16 -0
  964. package/switch/harness.js.map +1 -0
  965. package/switch/internal/_handle.scss +183 -0
  966. package/switch/internal/_icon.scss +119 -0
  967. package/switch/internal/_switch.scss +101 -0
  968. package/switch/internal/_track.scss +124 -0
  969. package/switch/internal/switch-styles.css +1 -0
  970. package/switch/internal/switch-styles.css.map +1 -0
  971. package/switch/internal/switch-styles.d.ts +1 -0
  972. package/switch/internal/switch-styles.js +10 -0
  973. package/switch/internal/switch-styles.js.map +1 -0
  974. package/switch/internal/switch-styles.scss +10 -0
  975. package/switch/internal/switch.d.ts +75 -0
  976. package/switch/internal/switch.js +219 -0
  977. package/switch/internal/switch.js.map +1 -0
  978. package/switch/switch.d.ts +25 -0
  979. package/switch/switch.js +26 -0
  980. package/switch/switch.js.map +1 -0
  981. package/tabs/_primary-tab.scss +6 -0
  982. package/tabs/_secondary-tab.scss +6 -0
  983. package/tabs/harness.d.ts +23 -0
  984. package/tabs/harness.js +51 -0
  985. package/tabs/harness.js.map +1 -0
  986. package/tabs/internal/_primary-tab.scss +46 -0
  987. package/tabs/internal/_secondary-tab.scss +37 -0
  988. package/tabs/internal/_tab.scss +199 -0
  989. package/tabs/internal/_tabs.scss +47 -0
  990. package/tabs/internal/primary-tab-styles.css +1 -0
  991. package/tabs/internal/primary-tab-styles.css.map +1 -0
  992. package/tabs/internal/primary-tab-styles.d.ts +1 -0
  993. package/tabs/internal/primary-tab-styles.js +10 -0
  994. package/tabs/internal/primary-tab-styles.js.map +1 -0
  995. package/tabs/internal/primary-tab-styles.scss +10 -0
  996. package/tabs/internal/primary-tab.d.ts +18 -0
  997. package/tabs/internal/primary-tab.js +30 -0
  998. package/tabs/internal/primary-tab.js.map +1 -0
  999. package/tabs/internal/secondary-tab-styles.css +1 -0
  1000. package/tabs/internal/secondary-tab-styles.css.map +1 -0
  1001. package/tabs/internal/secondary-tab-styles.d.ts +1 -0
  1002. package/tabs/internal/secondary-tab-styles.js +10 -0
  1003. package/tabs/internal/secondary-tab-styles.js.map +1 -0
  1004. package/tabs/internal/secondary-tab-styles.scss +10 -0
  1005. package/tabs/internal/secondary-tab.d.ts +12 -0
  1006. package/tabs/internal/secondary-tab.js +16 -0
  1007. package/tabs/internal/secondary-tab.js.map +1 -0
  1008. package/tabs/internal/tab-styles.css +1 -0
  1009. package/tabs/internal/tab-styles.css.map +1 -0
  1010. package/tabs/internal/tab-styles.d.ts +1 -0
  1011. package/tabs/internal/tab-styles.js +10 -0
  1012. package/tabs/internal/tab-styles.js.map +1 -0
  1013. package/tabs/internal/tab-styles.scss +10 -0
  1014. package/tabs/internal/tab.d.ts +65 -0
  1015. package/tabs/internal/tab.js +204 -0
  1016. package/tabs/internal/tab.js.map +1 -0
  1017. package/tabs/internal/tabs-styles.css +1 -0
  1018. package/tabs/internal/tabs-styles.css.map +1 -0
  1019. package/tabs/internal/tabs-styles.d.ts +1 -0
  1020. package/tabs/internal/tabs-styles.js +10 -0
  1021. package/tabs/internal/tabs-styles.js.map +1 -0
  1022. package/tabs/internal/tabs-styles.scss +10 -0
  1023. package/tabs/internal/tabs.d.ts +78 -0
  1024. package/tabs/internal/tabs.js +291 -0
  1025. package/tabs/internal/tabs.js.map +1 -0
  1026. package/tabs/primary-tab.d.ts +21 -0
  1027. package/tabs/primary-tab.js +24 -0
  1028. package/tabs/primary-tab.js.map +1 -0
  1029. package/tabs/secondary-tab.d.ts +21 -0
  1030. package/tabs/secondary-tab.js +24 -0
  1031. package/tabs/secondary-tab.js.map +1 -0
  1032. package/tabs/tabs.d.ts +21 -0
  1033. package/tabs/tabs.js +23 -0
  1034. package/tabs/tabs.js.map +1 -0
  1035. package/testing/harness.d.ts +371 -0
  1036. package/testing/harness.js +737 -0
  1037. package/testing/harness.js.map +1 -0
  1038. package/testing/transform-pseudo-classes.d.ts +39 -0
  1039. package/testing/transform-pseudo-classes.js +172 -0
  1040. package/testing/transform-pseudo-classes.js.map +1 -0
  1041. package/textfield/_filled-text-field.scss +6 -0
  1042. package/textfield/_outlined-text-field.scss +6 -0
  1043. package/textfield/filled-text-field.d.ts +23 -0
  1044. package/textfield/filled-text-field.js +28 -0
  1045. package/textfield/filled-text-field.js.map +1 -0
  1046. package/textfield/harness.d.ts +51 -0
  1047. package/textfield/harness.js +112 -0
  1048. package/textfield/harness.js.map +1 -0
  1049. package/textfield/internal/_filled-text-field.scss +154 -0
  1050. package/textfield/internal/_icon.scss +36 -0
  1051. package/textfield/internal/_input.scss +91 -0
  1052. package/textfield/internal/_outlined-text-field.scss +134 -0
  1053. package/textfield/internal/_shared.scss +49 -0
  1054. package/textfield/internal/filled-styles.css +1 -0
  1055. package/textfield/internal/filled-styles.css.map +1 -0
  1056. package/textfield/internal/filled-styles.d.ts +1 -0
  1057. package/textfield/internal/filled-styles.js +10 -0
  1058. package/textfield/internal/filled-styles.js.map +1 -0
  1059. package/textfield/internal/filled-styles.scss +10 -0
  1060. package/textfield/internal/filled-text-field.d.ts +13 -0
  1061. package/textfield/internal/filled-text-field.js +18 -0
  1062. package/textfield/internal/filled-text-field.js.map +1 -0
  1063. package/textfield/internal/outlined-styles.css +1 -0
  1064. package/textfield/internal/outlined-styles.css.map +1 -0
  1065. package/textfield/internal/outlined-styles.d.ts +1 -0
  1066. package/textfield/internal/outlined-styles.js +10 -0
  1067. package/textfield/internal/outlined-styles.js.map +1 -0
  1068. package/textfield/internal/outlined-styles.scss +10 -0
  1069. package/textfield/internal/outlined-text-field.d.ts +13 -0
  1070. package/textfield/internal/outlined-text-field.js +18 -0
  1071. package/textfield/internal/outlined-text-field.js.map +1 -0
  1072. package/textfield/internal/shared-styles.css +1 -0
  1073. package/textfield/internal/shared-styles.css.map +1 -0
  1074. package/textfield/internal/shared-styles.d.ts +1 -0
  1075. package/textfield/internal/shared-styles.js +10 -0
  1076. package/textfield/internal/shared-styles.js.map +1 -0
  1077. package/textfield/internal/shared-styles.scss +10 -0
  1078. package/textfield/internal/text-field.d.ts +338 -0
  1079. package/textfield/internal/text-field.js +724 -0
  1080. package/textfield/internal/text-field.js.map +1 -0
  1081. package/textfield/outlined-text-field.d.ts +23 -0
  1082. package/textfield/outlined-text-field.js +28 -0
  1083. package/textfield/outlined-text-field.js.map +1 -0
  1084. package/tokens/_index.scss +66 -0
  1085. package/tokens/_md-comp-assist-chip.scss +153 -0
  1086. package/tokens/_md-comp-badge.scss +39 -0
  1087. package/tokens/_md-comp-checkbox.scss +156 -0
  1088. package/tokens/_md-comp-circular-progress.scss +79 -0
  1089. package/tokens/_md-comp-dialog.scss +112 -0
  1090. package/tokens/_md-comp-divider.scss +43 -0
  1091. package/tokens/_md-comp-elevated-button.scss +143 -0
  1092. package/tokens/_md-comp-elevated-card.scss +80 -0
  1093. package/tokens/_md-comp-elevation.scss +48 -0
  1094. package/tokens/_md-comp-fab-branded.scss +155 -0
  1095. package/tokens/_md-comp-fab.scss +296 -0
  1096. package/tokens/_md-comp-filled-button.scss +143 -0
  1097. package/tokens/_md-comp-filled-card.scss +80 -0
  1098. package/tokens/_md-comp-filled-field.scss +293 -0
  1099. package/tokens/_md-comp-filled-icon-button.scss +119 -0
  1100. package/tokens/_md-comp-filled-select.scss +198 -0
  1101. package/tokens/_md-comp-filled-text-field.scss +200 -0
  1102. package/tokens/_md-comp-filled-tonal-button.scss +143 -0
  1103. package/tokens/_md-comp-filled-tonal-icon-button.scss +123 -0
  1104. package/tokens/_md-comp-filter-chip.scss +265 -0
  1105. package/tokens/_md-comp-focus-ring.scss +78 -0
  1106. package/tokens/_md-comp-full-screen-dialog.scss +25 -0
  1107. package/tokens/_md-comp-icon-button.scss +94 -0
  1108. package/tokens/_md-comp-icon.scss +46 -0
  1109. package/tokens/_md-comp-input-chip.scss +247 -0
  1110. package/tokens/_md-comp-item.scss +88 -0
  1111. package/tokens/_md-comp-linear-progress.scss +64 -0
  1112. package/tokens/_md-comp-list-item.scss +173 -0
  1113. package/tokens/_md-comp-list.scss +44 -0
  1114. package/tokens/_md-comp-menu-item.scss +125 -0
  1115. package/tokens/_md-comp-menu.scss +59 -0
  1116. package/tokens/_md-comp-navigation-bar.scss +44 -0
  1117. package/tokens/_md-comp-navigation-drawer.scss +44 -0
  1118. package/tokens/_md-comp-outlined-button.scss +139 -0
  1119. package/tokens/_md-comp-outlined-card.scss +86 -0
  1120. package/tokens/_md-comp-outlined-field.scss +268 -0
  1121. package/tokens/_md-comp-outlined-icon-button.scss +117 -0
  1122. package/tokens/_md-comp-outlined-segmented-button.scss +123 -0
  1123. package/tokens/_md-comp-outlined-select.scss +186 -0
  1124. package/tokens/_md-comp-outlined-text-field.scss +187 -0
  1125. package/tokens/_md-comp-primary-tab.scss +160 -0
  1126. package/tokens/_md-comp-radio.scss +86 -0
  1127. package/tokens/_md-comp-ripple.scss +48 -0
  1128. package/tokens/_md-comp-secondary-tab.scss +158 -0
  1129. package/tokens/_md-comp-slider.scss +117 -0
  1130. package/tokens/_md-comp-suggestion-chip.scss +157 -0
  1131. package/tokens/_md-comp-switch.scss +187 -0
  1132. package/tokens/_md-comp-test-table.scss +43 -0
  1133. package/tokens/_md-comp-text-button.scss +132 -0
  1134. package/tokens/_md-ref-palette.scss +112 -0
  1135. package/tokens/_md-ref-typeface.scss +46 -0
  1136. package/tokens/_md-sys-color.scss +119 -0
  1137. package/tokens/_md-sys-elevation.scss +31 -0
  1138. package/tokens/_md-sys-motion.scss +12 -0
  1139. package/tokens/_md-sys-shape.scss +102 -0
  1140. package/tokens/_md-sys-state.scss +12 -0
  1141. package/tokens/_md-sys-typescale.scss +149 -0
  1142. package/tokens/internal/_shape.scss +93 -0
  1143. package/tokens/internal/_validate.scss +109 -0
  1144. package/tokens/v0_192/_index.scss +107 -0
  1145. package/tokens/v0_192/_md-comp-assist-chip.scss +111 -0
  1146. package/tokens/v0_192/_md-comp-badge.scss +61 -0
  1147. package/tokens/v0_192/_md-comp-banner.scss +76 -0
  1148. package/tokens/v0_192/_md-comp-bottom-app-bar.scss +36 -0
  1149. package/tokens/v0_192/_md-comp-carousel-item.scss +66 -0
  1150. package/tokens/v0_192/_md-comp-checkbox.scss +129 -0
  1151. package/tokens/v0_192/_md-comp-circular-progress-indicator.scss +41 -0
  1152. package/tokens/v0_192/_md-comp-data-table.scss +99 -0
  1153. package/tokens/v0_192/_md-comp-date-input-modal.scss +90 -0
  1154. package/tokens/v0_192/_md-comp-date-picker-docked.scss +247 -0
  1155. package/tokens/v0_192/_md-comp-date-picker-modal.scss +306 -0
  1156. package/tokens/v0_192/_md-comp-dialog.scss +124 -0
  1157. package/tokens/v0_192/_md-comp-divider.scss +28 -0
  1158. package/tokens/v0_192/_md-comp-elevated-button.scss +92 -0
  1159. package/tokens/v0_192/_md-comp-elevated-card.scss +60 -0
  1160. package/tokens/v0_192/_md-comp-extended-fab-branded.scss +89 -0
  1161. package/tokens/v0_192/_md-comp-extended-fab-primary.scss +97 -0
  1162. package/tokens/v0_192/_md-comp-extended-fab-secondary.scss +98 -0
  1163. package/tokens/v0_192/_md-comp-extended-fab-surface.scss +93 -0
  1164. package/tokens/v0_192/_md-comp-extended-fab-tertiary.scss +98 -0
  1165. package/tokens/v0_192/_md-comp-fab-branded-large.scss +63 -0
  1166. package/tokens/v0_192/_md-comp-fab-branded.scss +63 -0
  1167. package/tokens/v0_192/_md-comp-fab-primary-large.scss +68 -0
  1168. package/tokens/v0_192/_md-comp-fab-primary-small.scss +68 -0
  1169. package/tokens/v0_192/_md-comp-fab-primary.scss +68 -0
  1170. package/tokens/v0_192/_md-comp-fab-secondary-large.scss +69 -0
  1171. package/tokens/v0_192/_md-comp-fab-secondary-small.scss +69 -0
  1172. package/tokens/v0_192/_md-comp-fab-secondary.scss +69 -0
  1173. package/tokens/v0_192/_md-comp-fab-surface-large.scss +67 -0
  1174. package/tokens/v0_192/_md-comp-fab-surface-small.scss +67 -0
  1175. package/tokens/v0_192/_md-comp-fab-surface.scss +67 -0
  1176. package/tokens/v0_192/_md-comp-fab-tertiary-large.scss +69 -0
  1177. package/tokens/v0_192/_md-comp-fab-tertiary-small.scss +69 -0
  1178. package/tokens/v0_192/_md-comp-fab-tertiary.scss +69 -0
  1179. package/tokens/v0_192/_md-comp-filled-autocomplete.scss +239 -0
  1180. package/tokens/v0_192/_md-comp-filled-button.scss +92 -0
  1181. package/tokens/v0_192/_md-comp-filled-card.scss +62 -0
  1182. package/tokens/v0_192/_md-comp-filled-icon-button.scss +83 -0
  1183. package/tokens/v0_192/_md-comp-filled-menu-button.scss +101 -0
  1184. package/tokens/v0_192/_md-comp-filled-select.scss +273 -0
  1185. package/tokens/v0_192/_md-comp-filled-text-field.scss +193 -0
  1186. package/tokens/v0_192/_md-comp-filled-tonal-button.scss +102 -0
  1187. package/tokens/v0_192/_md-comp-filled-tonal-icon-button.scss +90 -0
  1188. package/tokens/v0_192/_md-comp-filter-chip.scss +210 -0
  1189. package/tokens/v0_192/_md-comp-full-screen-dialog.scss +114 -0
  1190. package/tokens/v0_192/_md-comp-icon-button.scss +74 -0
  1191. package/tokens/v0_192/_md-comp-input-chip.scss +187 -0
  1192. package/tokens/v0_192/_md-comp-linear-progress-indicator.scss +43 -0
  1193. package/tokens/v0_192/_md-comp-list.scss +255 -0
  1194. package/tokens/v0_192/_md-comp-menu.scss +44 -0
  1195. package/tokens/v0_192/_md-comp-navigation-bar.scss +115 -0
  1196. package/tokens/v0_192/_md-comp-navigation-drawer.scss +165 -0
  1197. package/tokens/v0_192/_md-comp-navigation-rail.scss +119 -0
  1198. package/tokens/v0_192/_md-comp-outlined-autocomplete.scss +229 -0
  1199. package/tokens/v0_192/_md-comp-outlined-button.scss +87 -0
  1200. package/tokens/v0_192/_md-comp-outlined-card.scss +66 -0
  1201. package/tokens/v0_192/_md-comp-outlined-icon-button.scss +83 -0
  1202. package/tokens/v0_192/_md-comp-outlined-menu-button.scss +97 -0
  1203. package/tokens/v0_192/_md-comp-outlined-segmented-button.scss +115 -0
  1204. package/tokens/v0_192/_md-comp-outlined-select.scss +263 -0
  1205. package/tokens/v0_192/_md-comp-outlined-text-field.scss +174 -0
  1206. package/tokens/v0_192/_md-comp-plain-tooltip.scss +58 -0
  1207. package/tokens/v0_192/_md-comp-primary-navigation-tab.scss +124 -0
  1208. package/tokens/v0_192/_md-comp-radio-button.scss +71 -0
  1209. package/tokens/v0_192/_md-comp-rich-tooltip.scss +122 -0
  1210. package/tokens/v0_192/_md-comp-scrim.scss +28 -0
  1211. package/tokens/v0_192/_md-comp-search-bar.scss +100 -0
  1212. package/tokens/v0_192/_md-comp-search-view.scss +94 -0
  1213. package/tokens/v0_192/_md-comp-secondary-navigation-tab.scss +87 -0
  1214. package/tokens/v0_192/_md-comp-sheet-bottom.scss +46 -0
  1215. package/tokens/v0_192/_md-comp-sheet-floating.scss +35 -0
  1216. package/tokens/v0_192/_md-comp-sheet-side.scss +94 -0
  1217. package/tokens/v0_192/_md-comp-slider.scss +118 -0
  1218. package/tokens/v0_192/_md-comp-snackbar.scss +130 -0
  1219. package/tokens/v0_192/_md-comp-standard-menu-button.scss +101 -0
  1220. package/tokens/v0_192/_md-comp-suggestion-chip.scss +127 -0
  1221. package/tokens/v0_192/_md-comp-switch.scss +141 -0
  1222. package/tokens/v0_192/_md-comp-text-button.scss +80 -0
  1223. package/tokens/v0_192/_md-comp-time-input.scss +220 -0
  1224. package/tokens/v0_192/_md-comp-time-picker.scss +267 -0
  1225. package/tokens/v0_192/_md-comp-top-app-bar-large.scss +64 -0
  1226. package/tokens/v0_192/_md-comp-top-app-bar-medium.scss +64 -0
  1227. package/tokens/v0_192/_md-comp-top-app-bar-small-centered.scss +71 -0
  1228. package/tokens/v0_192/_md-comp-top-app-bar-small.scss +67 -0
  1229. package/tokens/v0_192/_md-ref-palette.scss +109 -0
  1230. package/tokens/v0_192/_md-ref-typeface.scss +23 -0
  1231. package/tokens/v0_192/_md-sys-color.scss +135 -0
  1232. package/tokens/v0_192/_md-sys-elevation.scss +24 -0
  1233. package/tokens/v0_192/_md-sys-motion.scss +55 -0
  1234. package/tokens/v0_192/_md-sys-shape.scss +33 -0
  1235. package/tokens/v0_192/_md-sys-state.scss +22 -0
  1236. package/tokens/v0_192/_md-sys-typescale.scss +286 -0
  1237. package/tokens/v0_192/index.test.css +1 -0
  1238. package/tokens/v0_192/index.test.css.map +1 -0
  1239. package/tokens/v0_192/index.test.scss +584 -0
  1240. package/tokens/v0_192/lib.test.css +1 -0
  1241. package/tokens/v0_192/lib.test.css.map +1 -0
  1242. package/tokens/v0_192/lib.test.scss +663 -0
  1243. package/typography/_typeface.scss +49 -0
  1244. package/typography/_typescale.scss +157 -0
  1245. package/typography/md-typescale-styles.css +1 -0
  1246. package/typography/md-typescale-styles.css.map +1 -0
  1247. package/typography/md-typescale-styles.d.ts +1 -0
  1248. package/typography/md-typescale-styles.js +10 -0
  1249. package/typography/md-typescale-styles.js.map +1 -0
  1250. package/typography/md-typescale-styles.scss +11 -0
@@ -0,0 +1,186 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2023 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { activateFirstItem, activateLastItem, activateNextItem, activatePreviousItem, getActiveItem, getFirstActivatableItem, } from './list-navigation-helpers.js';
7
+ // TODO: move this file to List and make List use this
8
+ /**
9
+ * Default keys that trigger navigation.
10
+ */
11
+ // tslint:disable:enforce-name-casing Following Enum style
12
+ export const NavigableKeys = {
13
+ ArrowDown: 'ArrowDown',
14
+ ArrowLeft: 'ArrowLeft',
15
+ ArrowUp: 'ArrowUp',
16
+ ArrowRight: 'ArrowRight',
17
+ Home: 'Home',
18
+ End: 'End',
19
+ };
20
+ /**
21
+ * A controller that handles list keyboard navigation and item management.
22
+ */
23
+ export class ListController {
24
+ constructor(config) {
25
+ /**
26
+ * Handles keyboard navigation. Should be bound to the node that will act as
27
+ * the List.
28
+ */
29
+ this.handleKeydown = (event) => {
30
+ const key = event.key;
31
+ if (event.defaultPrevented || !this.isNavigableKey(key)) {
32
+ return;
33
+ }
34
+ // do not use this.items directly in upcoming calculations so we don't
35
+ // re-query the DOM unnecessarily
36
+ const items = this.items;
37
+ if (!items.length) {
38
+ return;
39
+ }
40
+ const activeItemRecord = getActiveItem(items, this.isActivatable);
41
+ event.preventDefault();
42
+ const isRtl = this.isRtl();
43
+ const inlinePrevious = isRtl
44
+ ? NavigableKeys.ArrowRight
45
+ : NavigableKeys.ArrowLeft;
46
+ const inlineNext = isRtl
47
+ ? NavigableKeys.ArrowLeft
48
+ : NavigableKeys.ArrowRight;
49
+ let nextActiveItem = null;
50
+ switch (key) {
51
+ // Activate the next item
52
+ case NavigableKeys.ArrowDown:
53
+ case inlineNext:
54
+ nextActiveItem = activateNextItem(items, activeItemRecord, this.isActivatable, this.wrapNavigation());
55
+ break;
56
+ // Activate the previous item
57
+ case NavigableKeys.ArrowUp:
58
+ case inlinePrevious:
59
+ nextActiveItem = activatePreviousItem(items, activeItemRecord, this.isActivatable, this.wrapNavigation());
60
+ break;
61
+ // Activate the first item
62
+ case NavigableKeys.Home:
63
+ nextActiveItem = activateFirstItem(items, this.isActivatable);
64
+ break;
65
+ // Activate the last item
66
+ case NavigableKeys.End:
67
+ nextActiveItem = activateLastItem(items, this.isActivatable);
68
+ break;
69
+ default:
70
+ break;
71
+ }
72
+ if (nextActiveItem &&
73
+ activeItemRecord &&
74
+ activeItemRecord.item !== nextActiveItem) {
75
+ // If a new item was activated, remove the tabindex of the previous
76
+ // activated item.
77
+ activeItemRecord.item.tabIndex = -1;
78
+ }
79
+ };
80
+ /**
81
+ * Listener to be bound to the `deactivate-items` item event.
82
+ */
83
+ this.onDeactivateItems = () => {
84
+ const items = this.items;
85
+ for (const item of items) {
86
+ this.deactivateItem(item);
87
+ }
88
+ };
89
+ /**
90
+ * Listener to be bound to the `request-activation` item event..
91
+ */
92
+ this.onRequestActivation = (event) => {
93
+ this.onDeactivateItems();
94
+ const target = event.target;
95
+ this.activateItem(target);
96
+ target.focus();
97
+ };
98
+ /**
99
+ * Listener to be bound to the `slotchange` event for the slot that renders
100
+ * the items.
101
+ */
102
+ this.onSlotchange = () => {
103
+ const items = this.items;
104
+ // Whether we have encountered an item that has been activated
105
+ let encounteredActivated = false;
106
+ for (const item of items) {
107
+ const isActivated = !item.disabled && item.tabIndex > -1;
108
+ if (isActivated && !encounteredActivated) {
109
+ encounteredActivated = true;
110
+ item.tabIndex = 0;
111
+ continue;
112
+ }
113
+ // Deactivate the rest including disabled
114
+ item.tabIndex = -1;
115
+ }
116
+ if (encounteredActivated) {
117
+ return;
118
+ }
119
+ const firstActivatableItem = getFirstActivatableItem(items, this.isActivatable);
120
+ if (!firstActivatableItem) {
121
+ return;
122
+ }
123
+ firstActivatableItem.tabIndex = 0;
124
+ };
125
+ const { isItem, getPossibleItems, isRtl, deactivateItem, activateItem, isNavigableKey, isActivatable, wrapNavigation, } = config;
126
+ this.isItem = isItem;
127
+ this.getPossibleItems = getPossibleItems;
128
+ this.isRtl = isRtl;
129
+ this.deactivateItem = deactivateItem;
130
+ this.activateItem = activateItem;
131
+ this.isNavigableKey = isNavigableKey;
132
+ this.isActivatable = isActivatable;
133
+ this.wrapNavigation = wrapNavigation ?? (() => true);
134
+ }
135
+ /**
136
+ * The items being managed by the list. Additionally, attempts to see if the
137
+ * object has a sub-item in the `.item` property.
138
+ */
139
+ get items() {
140
+ const maybeItems = this.getPossibleItems();
141
+ const items = [];
142
+ for (const itemOrParent of maybeItems) {
143
+ const isItem = this.isItem(itemOrParent);
144
+ // if the item is a list item, add it to the list of items
145
+ if (isItem) {
146
+ items.push(itemOrParent);
147
+ continue;
148
+ }
149
+ // If the item exposes an `item` property check if it is a list item.
150
+ const subItem = itemOrParent.item;
151
+ if (subItem && this.isItem(subItem)) {
152
+ items.push(subItem);
153
+ }
154
+ }
155
+ return items;
156
+ }
157
+ /**
158
+ * Activates the next item in the list. If at the end of the list, the first
159
+ * item will be activated.
160
+ *
161
+ * @return The activated list item or `null` if there are no items.
162
+ */
163
+ activateNextItem() {
164
+ const items = this.items;
165
+ const activeItemRecord = getActiveItem(items, this.isActivatable);
166
+ if (activeItemRecord) {
167
+ activeItemRecord.item.tabIndex = -1;
168
+ }
169
+ return activateNextItem(items, activeItemRecord, this.isActivatable, this.wrapNavigation());
170
+ }
171
+ /**
172
+ * Activates the previous item in the list. If at the start of the list, the
173
+ * last item will be activated.
174
+ *
175
+ * @return The activated list item or `null` if there are no items.
176
+ */
177
+ activatePreviousItem() {
178
+ const items = this.items;
179
+ const activeItemRecord = getActiveItem(items, this.isActivatable);
180
+ if (activeItemRecord) {
181
+ activeItemRecord.item.tabIndex = -1;
182
+ }
183
+ return activatePreviousItem(items, activeItemRecord, this.isActivatable, this.wrapNavigation());
184
+ }
185
+ }
186
+ //# sourceMappingURL=list-controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-controller.js","sourceRoot":"","sources":["list-controller.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n activateFirstItem,\n activateLastItem,\n activateNextItem,\n activatePreviousItem,\n getActiveItem,\n getFirstActivatableItem,\n ListItem,\n} from './list-navigation-helpers.js';\n\n// TODO: move this file to List and make List use this\n\n/**\n * Default keys that trigger navigation.\n */\n// tslint:disable:enforce-name-casing Following Enum style\nexport const NavigableKeys = {\n ArrowDown: 'ArrowDown',\n ArrowLeft: 'ArrowLeft',\n ArrowUp: 'ArrowUp',\n ArrowRight: 'ArrowRight',\n Home: 'Home',\n End: 'End',\n} as const;\n// tslint:enable:enforce-name-casing\n\n/**\n * Default set of navigable keys.\n */\nexport type NavigableKeys = (typeof NavigableKeys)[keyof typeof NavigableKeys];\n\n/**\n * The configuration object to customize the behavior of the List Controller\n */\nexport interface ListControllerConfig<Item extends ListItem> {\n /**\n * A function that determines whether or not the given element is an Item\n */\n isItem: (item: HTMLElement) => item is Item;\n /**\n * A function that returns an array of elements to consider as items. For\n * example, all the slotted elements.\n */\n getPossibleItems: () => HTMLElement[];\n /**\n * A function that returns whether or not the list is in an RTL context.\n */\n isRtl: () => boolean;\n /**\n * Deactivates an item such as setting the tabindex to -1 and or sets selected\n * to false.\n */\n deactivateItem: (item: Item) => void;\n /**\n * Activates an item such as setting the tabindex to 1 and or sets selected to\n * true (but does not focus).\n */\n activateItem: (item: Item) => void;\n /**\n * Whether or not the key should be handled by the list for navigation.\n */\n isNavigableKey: (key: string) => boolean;\n /**\n * Whether or not the item can be activated. Defaults to items that are not\n * disabled.\n */\n isActivatable?: (item: Item) => boolean;\n /**\n * Whether or not navigating past the end of the list wraps to the beginning\n * and vice versa. Defaults to true.\n */\n wrapNavigation?: () => boolean;\n}\n\n/**\n * A controller that handles list keyboard navigation and item management.\n */\nexport class ListController<Item extends ListItem> {\n isItem: (item: HTMLElement) => item is Item;\n private readonly getPossibleItems: () => HTMLElement[];\n private readonly isRtl: () => boolean;\n private readonly deactivateItem: (item: Item) => void;\n private readonly activateItem: (item: Item) => void;\n private readonly isNavigableKey: (key: string) => boolean;\n private readonly isActivatable?: (item: Item) => boolean;\n private readonly wrapNavigation: () => boolean;\n\n constructor(config: ListControllerConfig<Item>) {\n const {\n isItem,\n getPossibleItems,\n isRtl,\n deactivateItem,\n activateItem,\n isNavigableKey,\n isActivatable,\n wrapNavigation,\n } = config;\n this.isItem = isItem;\n this.getPossibleItems = getPossibleItems;\n this.isRtl = isRtl;\n this.deactivateItem = deactivateItem;\n this.activateItem = activateItem;\n this.isNavigableKey = isNavigableKey;\n this.isActivatable = isActivatable;\n this.wrapNavigation = wrapNavigation ?? (() => true);\n }\n\n /**\n * The items being managed by the list. Additionally, attempts to see if the\n * object has a sub-item in the `.item` property.\n */\n get items(): Item[] {\n const maybeItems = this.getPossibleItems();\n const items: Item[] = [];\n\n for (const itemOrParent of maybeItems) {\n const isItem = this.isItem(itemOrParent);\n // if the item is a list item, add it to the list of items\n if (isItem) {\n items.push(itemOrParent);\n continue;\n }\n\n // If the item exposes an `item` property check if it is a list item.\n const subItem = (itemOrParent as HTMLElement & {item?: Item}).item;\n if (subItem && this.isItem(subItem)) {\n items.push(subItem);\n }\n }\n\n return items;\n }\n\n /**\n * Handles keyboard navigation. Should be bound to the node that will act as\n * the List.\n */\n handleKeydown = (event: KeyboardEvent) => {\n const key = event.key;\n if (event.defaultPrevented || !this.isNavigableKey(key)) {\n return;\n }\n // do not use this.items directly in upcoming calculations so we don't\n // re-query the DOM unnecessarily\n const items = this.items;\n\n if (!items.length) {\n return;\n }\n\n const activeItemRecord = getActiveItem(items, this.isActivatable);\n\n event.preventDefault();\n\n const isRtl = this.isRtl();\n const inlinePrevious = isRtl\n ? NavigableKeys.ArrowRight\n : NavigableKeys.ArrowLeft;\n const inlineNext = isRtl\n ? NavigableKeys.ArrowLeft\n : NavigableKeys.ArrowRight;\n\n let nextActiveItem: Item | null = null;\n switch (key) {\n // Activate the next item\n case NavigableKeys.ArrowDown:\n case inlineNext:\n nextActiveItem = activateNextItem(\n items,\n activeItemRecord,\n this.isActivatable,\n this.wrapNavigation(),\n );\n break;\n\n // Activate the previous item\n case NavigableKeys.ArrowUp:\n case inlinePrevious:\n nextActiveItem = activatePreviousItem(\n items,\n activeItemRecord,\n this.isActivatable,\n this.wrapNavigation(),\n );\n break;\n\n // Activate the first item\n case NavigableKeys.Home:\n nextActiveItem = activateFirstItem(items, this.isActivatable);\n break;\n\n // Activate the last item\n case NavigableKeys.End:\n nextActiveItem = activateLastItem(items, this.isActivatable);\n break;\n\n default:\n break;\n }\n\n if (\n nextActiveItem &&\n activeItemRecord &&\n activeItemRecord.item !== nextActiveItem\n ) {\n // If a new item was activated, remove the tabindex of the previous\n // activated item.\n activeItemRecord.item.tabIndex = -1;\n }\n };\n\n /**\n * Activates the next item in the list. If at the end of the list, the first\n * item will be activated.\n *\n * @return The activated list item or `null` if there are no items.\n */\n activateNextItem(): Item | null {\n const items = this.items;\n const activeItemRecord = getActiveItem(items, this.isActivatable);\n if (activeItemRecord) {\n activeItemRecord.item.tabIndex = -1;\n }\n return activateNextItem(\n items,\n activeItemRecord,\n this.isActivatable,\n this.wrapNavigation(),\n );\n }\n\n /**\n * Activates the previous item in the list. If at the start of the list, the\n * last item will be activated.\n *\n * @return The activated list item or `null` if there are no items.\n */\n activatePreviousItem(): Item | null {\n const items = this.items;\n const activeItemRecord = getActiveItem(items, this.isActivatable);\n if (activeItemRecord) {\n activeItemRecord.item.tabIndex = -1;\n }\n return activatePreviousItem(\n items,\n activeItemRecord,\n this.isActivatable,\n this.wrapNavigation(),\n );\n }\n\n /**\n * Listener to be bound to the `deactivate-items` item event.\n */\n onDeactivateItems = () => {\n const items = this.items;\n\n for (const item of items) {\n this.deactivateItem(item);\n }\n };\n\n /**\n * Listener to be bound to the `request-activation` item event..\n */\n onRequestActivation = (event: Event) => {\n this.onDeactivateItems();\n const target = event.target as Item;\n this.activateItem(target);\n target.focus();\n };\n\n /**\n * Listener to be bound to the `slotchange` event for the slot that renders\n * the items.\n */\n onSlotchange = () => {\n const items = this.items;\n // Whether we have encountered an item that has been activated\n let encounteredActivated = false;\n\n for (const item of items) {\n const isActivated = !item.disabled && item.tabIndex > -1;\n\n if (isActivated && !encounteredActivated) {\n encounteredActivated = true;\n item.tabIndex = 0;\n continue;\n }\n\n // Deactivate the rest including disabled\n item.tabIndex = -1;\n }\n\n if (encounteredActivated) {\n return;\n }\n\n const firstActivatableItem = getFirstActivatableItem(\n items,\n this.isActivatable,\n );\n\n if (!firstActivatableItem) {\n return;\n }\n\n firstActivatableItem.tabIndex = 0;\n };\n}\n"]}
@@ -0,0 +1,136 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2023 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export interface ListItem extends HTMLElement {
7
+ disabled: boolean;
8
+ }
9
+ /**
10
+ * A record that describes a list item in a list with metadata such a reference
11
+ * to the item and its index in the list.
12
+ */
13
+ export interface ItemRecord<Item extends ListItem> {
14
+ item: Item;
15
+ index: number;
16
+ }
17
+ /**
18
+ * Activates the first non-disabled item of a given array of items.
19
+ *
20
+ * @param items {Array<ListItem>} The items from which to activate the
21
+ * first item.
22
+ * @param isActivatable Function to determine if an item can be activated.
23
+ * Defaults to non-disabled items.
24
+ */
25
+ export declare function activateFirstItem<Item extends ListItem>(items: Item[], isActivatable?: (item: Item) => boolean): Item;
26
+ /**
27
+ * Activates the last non-disabled item of a given array of items.
28
+ *
29
+ * @param items {Array<ListItem>} The items from which to activate the
30
+ * last item.
31
+ * @param isActivatable Function to determine if an item can be activated.
32
+ * Defaults to non-disabled items.
33
+ * @nocollapse
34
+ */
35
+ export declare function activateLastItem<Item extends ListItem>(items: Item[], isActivatable?: (item: Item) => boolean): Item;
36
+ /**
37
+ * Deactivates the currently active item of a given array of items.
38
+ *
39
+ * @param items {Array<ListItem>} The items from which to deactivate the
40
+ * active item.
41
+ * @param isActivatable Function to determine if an item can be activated.
42
+ * Defaults to non-disabled items.
43
+ * @return A record of the deleselcted activated item including the item and
44
+ * the index of the item or `null` if none are deactivated.
45
+ * @nocollapse
46
+ */
47
+ export declare function deactivateActiveItem<Item extends ListItem>(items: Item[], isActivatable?: (item: Item) => boolean): ItemRecord<Item>;
48
+ /**
49
+ * Retrieves the first activated item of a given array of items.
50
+ *
51
+ * @param items {Array<ListItem>} The items to search.
52
+ * @param isActivatable Function to determine if an item can be activated.
53
+ * Defaults to non-disabled items.
54
+ * @return A record of the first activated item including the item and the
55
+ * index of the item or `null` if none are activated.
56
+ * @nocollapse
57
+ */
58
+ export declare function getActiveItem<Item extends ListItem>(items: Item[], isActivatable?: (item: Item) => boolean): ItemRecord<Item>;
59
+ /**
60
+ * Retrieves the first non-disabled item of a given array of items. This
61
+ * the first item that is not disabled.
62
+ *
63
+ * @param items {Array<ListItem>} The items to search.
64
+ * @param isActivatable Function to determine if an item can be activated.
65
+ * Defaults to non-disabled items.
66
+ * @return The first activatable item or `null` if none are activatable.
67
+ * @nocollapse
68
+ */
69
+ export declare function getFirstActivatableItem<Item extends ListItem>(items: Item[], isActivatable?: (item: Item) => boolean): Item;
70
+ /**
71
+ * Retrieves the last non-disabled item of a given array of items.
72
+ *
73
+ * @param items {Array<ListItem>} The items to search.
74
+ * @param isActivatable Function to determine if an item can be activated.
75
+ * Defaults to non-disabled items.
76
+ * @return The last activatable item or `null` if none are activatable.
77
+ * @nocollapse
78
+ */
79
+ export declare function getLastActivatableItem<Item extends ListItem>(items: Item[], isActivatable?: (item: Item) => boolean): Item;
80
+ /**
81
+ * Retrieves the next non-disabled item of a given array of items.
82
+ *
83
+ * @param items {Array<ListItem>} The items to search.
84
+ * @param index {{index: number}} The index to search from.
85
+ * @param isActivatable Function to determine if an item can be activated.
86
+ * Defaults to non-disabled items.
87
+ * @param wrap If true, then the next item at the end of the list is the first
88
+ * item. Defaults to true.
89
+ * @return The next activatable item or `null` if none are activatable.
90
+ */
91
+ export declare function getNextItem<Item extends ListItem>(items: Item[], index: number, isActivatable?: (item: Item) => boolean, wrap?: boolean): Item;
92
+ /**
93
+ * Retrieves the previous non-disabled item of a given array of items.
94
+ *
95
+ * @param items {Array<ListItem>} The items to search.
96
+ * @param index {{index: number}} The index to search from.
97
+ * @param isActivatable Function to determine if an item can be activated.
98
+ * Defaults to non-disabled items.
99
+ * @param wrap If true, then the previous item at the beginning of the list is
100
+ * the last item. Defaults to true.
101
+ * @return The previous activatable item or `null` if none are activatable.
102
+ */
103
+ export declare function getPrevItem<Item extends ListItem>(items: Item[], index: number, isActivatable?: (item: Item) => boolean, wrap?: boolean): Item;
104
+ /**
105
+ * Activates the next item and focuses it. If nothing is currently activated,
106
+ * activates the first item.
107
+ */
108
+ export declare function activateNextItem<Item extends ListItem>(items: Item[], activeItemRecord: null | ItemRecord<Item>, isActivatable?: (item: Item) => boolean, wrap?: boolean): Item | null;
109
+ /**
110
+ * Activates the previous item and focuses it. If nothing is currently
111
+ * activated, activates the last item.
112
+ */
113
+ export declare function activatePreviousItem<Item extends ListItem>(items: Item[], activeItemRecord: null | ItemRecord<Item>, isActivatable?: (item: Item) => boolean, wrap?: boolean): Item | null;
114
+ /**
115
+ * Creates an event that requests the parent md-list to deactivate all other
116
+ * items.
117
+ */
118
+ export declare function createDeactivateItemsEvent(): Event;
119
+ /**
120
+ * The type of the event that requests the parent md-list to deactivate all
121
+ * other items.
122
+ */
123
+ export type DeactivateItemsEvent = ReturnType<typeof createDeactivateItemsEvent>;
124
+ /**
125
+ * Creates an event that requests the menu to set `tabindex=0` on the item and
126
+ * focus it. We use this pattern because List keeps track of what element is
127
+ * active in the List by maintaining tabindex. We do not want list items
128
+ * to set tabindex on themselves or focus themselves so that we can organize all
129
+ * that logic in the parent List and Menus, and list item stays as dumb as
130
+ * possible.
131
+ */
132
+ export declare function createRequestActivationEvent(): Event;
133
+ /**
134
+ * The type of the event that requests the list activates and focuses the item.
135
+ */
136
+ export type RequestActivationEvent = ReturnType<typeof createRequestActivationEvent>;
@@ -0,0 +1,230 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2023 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ /**
7
+ * Activates the first non-disabled item of a given array of items.
8
+ *
9
+ * @param items {Array<ListItem>} The items from which to activate the
10
+ * first item.
11
+ * @param isActivatable Function to determine if an item can be activated.
12
+ * Defaults to non-disabled items.
13
+ */
14
+ export function activateFirstItem(items, isActivatable = (isItemNotDisabled)) {
15
+ // NOTE: These selector functions are static and not on the instance such
16
+ // that multiple operations can be chained and we do not have to re-query
17
+ // the DOM
18
+ const firstItem = getFirstActivatableItem(items, isActivatable);
19
+ if (firstItem) {
20
+ firstItem.tabIndex = 0;
21
+ firstItem.focus();
22
+ }
23
+ return firstItem;
24
+ }
25
+ /**
26
+ * Activates the last non-disabled item of a given array of items.
27
+ *
28
+ * @param items {Array<ListItem>} The items from which to activate the
29
+ * last item.
30
+ * @param isActivatable Function to determine if an item can be activated.
31
+ * Defaults to non-disabled items.
32
+ * @nocollapse
33
+ */
34
+ export function activateLastItem(items, isActivatable = (isItemNotDisabled)) {
35
+ const lastItem = getLastActivatableItem(items, isActivatable);
36
+ if (lastItem) {
37
+ lastItem.tabIndex = 0;
38
+ lastItem.focus();
39
+ }
40
+ return lastItem;
41
+ }
42
+ /**
43
+ * Deactivates the currently active item of a given array of items.
44
+ *
45
+ * @param items {Array<ListItem>} The items from which to deactivate the
46
+ * active item.
47
+ * @param isActivatable Function to determine if an item can be activated.
48
+ * Defaults to non-disabled items.
49
+ * @return A record of the deleselcted activated item including the item and
50
+ * the index of the item or `null` if none are deactivated.
51
+ * @nocollapse
52
+ */
53
+ export function deactivateActiveItem(items, isActivatable = (isItemNotDisabled)) {
54
+ const activeItem = getActiveItem(items, isActivatable);
55
+ if (activeItem) {
56
+ activeItem.item.tabIndex = -1;
57
+ }
58
+ return activeItem;
59
+ }
60
+ /**
61
+ * Retrieves the first activated item of a given array of items.
62
+ *
63
+ * @param items {Array<ListItem>} The items to search.
64
+ * @param isActivatable Function to determine if an item can be activated.
65
+ * Defaults to non-disabled items.
66
+ * @return A record of the first activated item including the item and the
67
+ * index of the item or `null` if none are activated.
68
+ * @nocollapse
69
+ */
70
+ export function getActiveItem(items, isActivatable = (isItemNotDisabled)) {
71
+ for (let i = 0; i < items.length; i++) {
72
+ const item = items[i];
73
+ if (item.tabIndex === 0 && isActivatable(item)) {
74
+ return {
75
+ item,
76
+ index: i,
77
+ };
78
+ }
79
+ }
80
+ return null;
81
+ }
82
+ /**
83
+ * Retrieves the first non-disabled item of a given array of items. This
84
+ * the first item that is not disabled.
85
+ *
86
+ * @param items {Array<ListItem>} The items to search.
87
+ * @param isActivatable Function to determine if an item can be activated.
88
+ * Defaults to non-disabled items.
89
+ * @return The first activatable item or `null` if none are activatable.
90
+ * @nocollapse
91
+ */
92
+ export function getFirstActivatableItem(items, isActivatable = (isItemNotDisabled)) {
93
+ for (const item of items) {
94
+ if (isActivatable(item)) {
95
+ return item;
96
+ }
97
+ }
98
+ return null;
99
+ }
100
+ /**
101
+ * Retrieves the last non-disabled item of a given array of items.
102
+ *
103
+ * @param items {Array<ListItem>} The items to search.
104
+ * @param isActivatable Function to determine if an item can be activated.
105
+ * Defaults to non-disabled items.
106
+ * @return The last activatable item or `null` if none are activatable.
107
+ * @nocollapse
108
+ */
109
+ export function getLastActivatableItem(items, isActivatable = (isItemNotDisabled)) {
110
+ for (let i = items.length - 1; i >= 0; i--) {
111
+ const item = items[i];
112
+ if (isActivatable(item)) {
113
+ return item;
114
+ }
115
+ }
116
+ return null;
117
+ }
118
+ /**
119
+ * Retrieves the next non-disabled item of a given array of items.
120
+ *
121
+ * @param items {Array<ListItem>} The items to search.
122
+ * @param index {{index: number}} The index to search from.
123
+ * @param isActivatable Function to determine if an item can be activated.
124
+ * Defaults to non-disabled items.
125
+ * @param wrap If true, then the next item at the end of the list is the first
126
+ * item. Defaults to true.
127
+ * @return The next activatable item or `null` if none are activatable.
128
+ */
129
+ export function getNextItem(items, index, isActivatable = (isItemNotDisabled), wrap = true) {
130
+ for (let i = 1; i < items.length; i++) {
131
+ const nextIndex = (i + index) % items.length;
132
+ if (nextIndex < index && !wrap) {
133
+ // Return if the index loops back to the beginning and not wrapping.
134
+ return null;
135
+ }
136
+ const item = items[nextIndex];
137
+ if (isActivatable(item)) {
138
+ return item;
139
+ }
140
+ }
141
+ return items[index] ? items[index] : null;
142
+ }
143
+ /**
144
+ * Retrieves the previous non-disabled item of a given array of items.
145
+ *
146
+ * @param items {Array<ListItem>} The items to search.
147
+ * @param index {{index: number}} The index to search from.
148
+ * @param isActivatable Function to determine if an item can be activated.
149
+ * Defaults to non-disabled items.
150
+ * @param wrap If true, then the previous item at the beginning of the list is
151
+ * the last item. Defaults to true.
152
+ * @return The previous activatable item or `null` if none are activatable.
153
+ */
154
+ export function getPrevItem(items, index, isActivatable = (isItemNotDisabled), wrap = true) {
155
+ for (let i = 1; i < items.length; i++) {
156
+ const prevIndex = (index - i + items.length) % items.length;
157
+ if (prevIndex > index && !wrap) {
158
+ // Return if the index loops back to the end and not wrapping.
159
+ return null;
160
+ }
161
+ const item = items[prevIndex];
162
+ if (isActivatable(item)) {
163
+ return item;
164
+ }
165
+ }
166
+ return items[index] ? items[index] : null;
167
+ }
168
+ /**
169
+ * Activates the next item and focuses it. If nothing is currently activated,
170
+ * activates the first item.
171
+ */
172
+ export function activateNextItem(items, activeItemRecord, isActivatable = (isItemNotDisabled), wrap = true) {
173
+ if (activeItemRecord) {
174
+ const next = getNextItem(items, activeItemRecord.index, isActivatable, wrap);
175
+ if (next) {
176
+ next.tabIndex = 0;
177
+ next.focus();
178
+ }
179
+ return next;
180
+ }
181
+ else {
182
+ return activateFirstItem(items, isActivatable);
183
+ }
184
+ }
185
+ /**
186
+ * Activates the previous item and focuses it. If nothing is currently
187
+ * activated, activates the last item.
188
+ */
189
+ export function activatePreviousItem(items, activeItemRecord, isActivatable = (isItemNotDisabled), wrap = true) {
190
+ if (activeItemRecord) {
191
+ const prev = getPrevItem(items, activeItemRecord.index, isActivatable, wrap);
192
+ if (prev) {
193
+ prev.tabIndex = 0;
194
+ prev.focus();
195
+ }
196
+ return prev;
197
+ }
198
+ else {
199
+ return activateLastItem(items, isActivatable);
200
+ }
201
+ }
202
+ /**
203
+ * Creates an event that requests the parent md-list to deactivate all other
204
+ * items.
205
+ */
206
+ export function createDeactivateItemsEvent() {
207
+ return new Event('deactivate-items', { bubbles: true, composed: true });
208
+ }
209
+ /**
210
+ * Creates an event that requests the menu to set `tabindex=0` on the item and
211
+ * focus it. We use this pattern because List keeps track of what element is
212
+ * active in the List by maintaining tabindex. We do not want list items
213
+ * to set tabindex on themselves or focus themselves so that we can organize all
214
+ * that logic in the parent List and Menus, and list item stays as dumb as
215
+ * possible.
216
+ */
217
+ export function createRequestActivationEvent() {
218
+ return new Event('request-activation', { bubbles: true, composed: true });
219
+ }
220
+ /**
221
+ * The default `isActivatable` function, which checks if an item is not
222
+ * disabled.
223
+ *
224
+ * @param item The item to check.
225
+ * @return true if `item.disabled` is `false.
226
+ */
227
+ function isItemNotDisabled(item) {
228
+ return !item.disabled;
229
+ }
230
+ //# sourceMappingURL=list-navigation-helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-navigation-helpers.js","sourceRoot":"","sources":["list-navigation-helpers.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport interface ListItem extends HTMLElement {\n disabled: boolean;\n}\n\n/**\n * A record that describes a list item in a list with metadata such a reference\n * to the item and its index in the list.\n */\nexport interface ItemRecord<Item extends ListItem> {\n item: Item;\n index: number;\n}\n\n/**\n * Activates the first non-disabled item of a given array of items.\n *\n * @param items {Array<ListItem>} The items from which to activate the\n * first item.\n * @param isActivatable Function to determine if an item can be activated.\n * Defaults to non-disabled items.\n */\nexport function activateFirstItem<Item extends ListItem>(\n items: Item[],\n isActivatable = isItemNotDisabled<Item>,\n) {\n // NOTE: These selector functions are static and not on the instance such\n // that multiple operations can be chained and we do not have to re-query\n // the DOM\n const firstItem = getFirstActivatableItem(items, isActivatable);\n if (firstItem) {\n firstItem.tabIndex = 0;\n firstItem.focus();\n }\n return firstItem;\n}\n\n/**\n * Activates the last non-disabled item of a given array of items.\n *\n * @param items {Array<ListItem>} The items from which to activate the\n * last item.\n * @param isActivatable Function to determine if an item can be activated.\n * Defaults to non-disabled items.\n * @nocollapse\n */\nexport function activateLastItem<Item extends ListItem>(\n items: Item[],\n isActivatable = isItemNotDisabled<Item>,\n) {\n const lastItem = getLastActivatableItem(items, isActivatable);\n if (lastItem) {\n lastItem.tabIndex = 0;\n lastItem.focus();\n }\n return lastItem;\n}\n\n/**\n * Deactivates the currently active item of a given array of items.\n *\n * @param items {Array<ListItem>} The items from which to deactivate the\n * active item.\n * @param isActivatable Function to determine if an item can be activated.\n * Defaults to non-disabled items.\n * @return A record of the deleselcted activated item including the item and\n * the index of the item or `null` if none are deactivated.\n * @nocollapse\n */\nexport function deactivateActiveItem<Item extends ListItem>(\n items: Item[],\n isActivatable = isItemNotDisabled<Item>,\n) {\n const activeItem = getActiveItem(items, isActivatable);\n if (activeItem) {\n activeItem.item.tabIndex = -1;\n }\n return activeItem;\n}\n\n/**\n * Retrieves the first activated item of a given array of items.\n *\n * @param items {Array<ListItem>} The items to search.\n * @param isActivatable Function to determine if an item can be activated.\n * Defaults to non-disabled items.\n * @return A record of the first activated item including the item and the\n * index of the item or `null` if none are activated.\n * @nocollapse\n */\nexport function getActiveItem<Item extends ListItem>(\n items: Item[],\n isActivatable = isItemNotDisabled<Item>,\n) {\n for (let i = 0; i < items.length; i++) {\n const item = items[i];\n if (item.tabIndex === 0 && isActivatable(item)) {\n return {\n item,\n index: i,\n } as ItemRecord<Item>;\n }\n }\n return null;\n}\n\n/**\n * Retrieves the first non-disabled item of a given array of items. This\n * the first item that is not disabled.\n *\n * @param items {Array<ListItem>} The items to search.\n * @param isActivatable Function to determine if an item can be activated.\n * Defaults to non-disabled items.\n * @return The first activatable item or `null` if none are activatable.\n * @nocollapse\n */\nexport function getFirstActivatableItem<Item extends ListItem>(\n items: Item[],\n isActivatable = isItemNotDisabled<Item>,\n) {\n for (const item of items) {\n if (isActivatable(item)) {\n return item;\n }\n }\n\n return null;\n}\n\n/**\n * Retrieves the last non-disabled item of a given array of items.\n *\n * @param items {Array<ListItem>} The items to search.\n * @param isActivatable Function to determine if an item can be activated.\n * Defaults to non-disabled items.\n * @return The last activatable item or `null` if none are activatable.\n * @nocollapse\n */\nexport function getLastActivatableItem<Item extends ListItem>(\n items: Item[],\n isActivatable = isItemNotDisabled<Item>,\n) {\n for (let i = items.length - 1; i >= 0; i--) {\n const item = items[i];\n if (isActivatable(item)) {\n return item;\n }\n }\n\n return null;\n}\n\n/**\n * Retrieves the next non-disabled item of a given array of items.\n *\n * @param items {Array<ListItem>} The items to search.\n * @param index {{index: number}} The index to search from.\n * @param isActivatable Function to determine if an item can be activated.\n * Defaults to non-disabled items.\n * @param wrap If true, then the next item at the end of the list is the first\n * item. Defaults to true.\n * @return The next activatable item or `null` if none are activatable.\n */\nexport function getNextItem<Item extends ListItem>(\n items: Item[],\n index: number,\n isActivatable = isItemNotDisabled<Item>,\n wrap = true,\n) {\n for (let i = 1; i < items.length; i++) {\n const nextIndex = (i + index) % items.length;\n if (nextIndex < index && !wrap) {\n // Return if the index loops back to the beginning and not wrapping.\n return null;\n }\n\n const item = items[nextIndex];\n if (isActivatable(item)) {\n return item;\n }\n }\n\n return items[index] ? items[index] : null;\n}\n\n/**\n * Retrieves the previous non-disabled item of a given array of items.\n *\n * @param items {Array<ListItem>} The items to search.\n * @param index {{index: number}} The index to search from.\n * @param isActivatable Function to determine if an item can be activated.\n * Defaults to non-disabled items.\n * @param wrap If true, then the previous item at the beginning of the list is\n * the last item. Defaults to true.\n * @return The previous activatable item or `null` if none are activatable.\n */\nexport function getPrevItem<Item extends ListItem>(\n items: Item[],\n index: number,\n isActivatable = isItemNotDisabled<Item>,\n wrap = true,\n) {\n for (let i = 1; i < items.length; i++) {\n const prevIndex = (index - i + items.length) % items.length;\n if (prevIndex > index && !wrap) {\n // Return if the index loops back to the end and not wrapping.\n return null;\n }\n\n const item = items[prevIndex];\n\n if (isActivatable(item)) {\n return item;\n }\n }\n\n return items[index] ? items[index] : null;\n}\n\n/**\n * Activates the next item and focuses it. If nothing is currently activated,\n * activates the first item.\n */\nexport function activateNextItem<Item extends ListItem>(\n items: Item[],\n activeItemRecord: null | ItemRecord<Item>,\n isActivatable = isItemNotDisabled<Item>,\n wrap = true,\n): Item | null {\n if (activeItemRecord) {\n const next = getNextItem(\n items,\n activeItemRecord.index,\n isActivatable,\n wrap,\n );\n\n if (next) {\n next.tabIndex = 0;\n next.focus();\n }\n\n return next;\n } else {\n return activateFirstItem(items, isActivatable);\n }\n}\n\n/**\n * Activates the previous item and focuses it. If nothing is currently\n * activated, activates the last item.\n */\nexport function activatePreviousItem<Item extends ListItem>(\n items: Item[],\n activeItemRecord: null | ItemRecord<Item>,\n isActivatable = isItemNotDisabled<Item>,\n wrap = true,\n): Item | null {\n if (activeItemRecord) {\n const prev = getPrevItem(\n items,\n activeItemRecord.index,\n isActivatable,\n wrap,\n );\n if (prev) {\n prev.tabIndex = 0;\n prev.focus();\n }\n return prev;\n } else {\n return activateLastItem(items, isActivatable);\n }\n}\n\n/**\n * Creates an event that requests the parent md-list to deactivate all other\n * items.\n */\nexport function createDeactivateItemsEvent() {\n return new Event('deactivate-items', {bubbles: true, composed: true});\n}\n\n/**\n * The type of the event that requests the parent md-list to deactivate all\n * other items.\n */\nexport type DeactivateItemsEvent = ReturnType<\n typeof createDeactivateItemsEvent\n>;\n\n/**\n * Creates an event that requests the menu to set `tabindex=0` on the item and\n * focus it. We use this pattern because List keeps track of what element is\n * active in the List by maintaining tabindex. We do not want list items\n * to set tabindex on themselves or focus themselves so that we can organize all\n * that logic in the parent List and Menus, and list item stays as dumb as\n * possible.\n */\nexport function createRequestActivationEvent() {\n return new Event('request-activation', {bubbles: true, composed: true});\n}\n\n/**\n * The type of the event that requests the list activates and focuses the item.\n */\nexport type RequestActivationEvent = ReturnType<\n typeof createRequestActivationEvent\n>;\n\n/**\n * The default `isActivatable` function, which checks if an item is not\n * disabled.\n *\n * @param item The item to check.\n * @return true if `item.disabled` is `false.\n */\nfunction isItemNotDisabled<Item extends ListItem>(item: Item) {\n return !item.disabled;\n}\n"]}
@@ -0,0 +1 @@
1
+ :host{background:var(--md-list-container-color, var(--md-sys-color-surface, #fef7ff));color:unset;display:flex;flex-direction:column;outline:none;padding:8px 0;position:relative}/*# sourceMappingURL=list-styles.css.map */
@@ -0,0 +1 @@
1
+ {"version":3,"sourceRoot":"","sources":["_list.scss"],"names":[],"mappings":"AA+BE,MACE,gFACA,YACA,aACA,sBACA,aACA,cAGA","file":"list-styles.css"}
@@ -0,0 +1 @@
1
+ export declare const styles: import("lit").CSSResult;
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2024 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ // Generated stylesheet for ./list/internal/list-styles.css.
7
+ import { css } from 'lit';
8
+ export const styles = css `:host{background:var(--md-list-container-color, var(--md-sys-color-surface, #fef7ff));color:unset;display:flex;flex-direction:column;outline:none;padding:8px 0;position:relative}
9
+ `;
10
+ //# sourceMappingURL=list-styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-styles.js","sourceRoot":"","sources":["list-styles.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,4DAA4D;AAC5D,OAAO,EAAC,GAAG,EAAC,MAAM,KAAK,CAAC;AACxB,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;CACxB,CAAC","sourcesContent":["/**\n * @license\n * Copyright 2024 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n// Generated stylesheet for ./list/internal/list-styles.css.\nimport {css} from 'lit';\nexport const styles = css`:host{background:var(--md-list-container-color, var(--md-sys-color-surface, #fef7ff));color:unset;display:flex;flex-direction:column;outline:none;padding:8px 0;position:relative}\n`;\n"]}
@@ -0,0 +1,10 @@
1
+ //
2
+ // Copyright 2022 Google LLC
3
+ // SPDX-License-Identifier: Apache-2.0
4
+ //
5
+
6
+ // go/keep-sorted start
7
+ @use './list';
8
+ // go/keep-sorted end
9
+
10
+ @include list.styles;