@material/web 1.3.1-nightly.ec0a8eb.0 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (603) hide show
  1. package/button/elevated-button.js +3 -3
  2. package/button/elevated-button.js.map +1 -1
  3. package/button/filled-button.js +3 -3
  4. package/button/filled-button.js.map +1 -1
  5. package/button/filled-tonal-button.js +3 -3
  6. package/button/filled-tonal-button.js.map +1 -1
  7. package/button/internal/_shared.scss +2 -0
  8. package/button/internal/elevated-button.js +1 -1
  9. package/button/internal/elevated-button.js.map +1 -1
  10. package/button/internal/elevated-styles.css +1 -0
  11. package/button/internal/elevated-styles.css.map +1 -0
  12. package/button/internal/{elevated-styles.css.js → elevated-styles.js} +7 -6
  13. package/button/internal/elevated-styles.js.map +1 -0
  14. package/button/internal/filled-button.js +1 -1
  15. package/button/internal/filled-button.js.map +1 -1
  16. package/button/internal/filled-styles.css +1 -0
  17. package/button/internal/filled-styles.css.map +1 -0
  18. package/button/internal/{filled-styles.css.js → filled-styles.js} +7 -6
  19. package/button/internal/filled-styles.js.map +1 -0
  20. package/button/internal/filled-tonal-button.js +1 -1
  21. package/button/internal/filled-tonal-button.js.map +1 -1
  22. package/button/internal/filled-tonal-styles.css +1 -0
  23. package/button/internal/filled-tonal-styles.css.map +1 -0
  24. package/button/internal/{filled-tonal-styles.css.js → filled-tonal-styles.js} +7 -6
  25. package/button/internal/filled-tonal-styles.js.map +1 -0
  26. package/button/internal/outlined-styles.css +1 -0
  27. package/button/internal/outlined-styles.css.map +1 -0
  28. package/button/internal/{outlined-styles.css.js → outlined-styles.js} +7 -6
  29. package/button/internal/outlined-styles.js.map +1 -0
  30. package/button/internal/shared-elevation-styles.css +1 -0
  31. package/button/internal/shared-elevation-styles.css.map +1 -0
  32. package/button/internal/{shared-elevation-styles.css.js → shared-elevation-styles.js} +7 -6
  33. package/button/internal/shared-elevation-styles.js.map +1 -0
  34. package/button/internal/shared-styles.css +1 -0
  35. package/button/internal/shared-styles.css.map +1 -0
  36. package/button/internal/shared-styles.js +10 -0
  37. package/button/internal/shared-styles.js.map +1 -0
  38. package/button/internal/text-styles.css +1 -0
  39. package/button/internal/text-styles.css.map +1 -0
  40. package/button/internal/{text-styles.css.js → text-styles.js} +7 -6
  41. package/button/internal/text-styles.js.map +1 -0
  42. package/button/outlined-button.js +2 -2
  43. package/button/outlined-button.js.map +1 -1
  44. package/button/text-button.js +2 -2
  45. package/button/text-button.js.map +1 -1
  46. package/checkbox/checkbox.js +1 -1
  47. package/checkbox/checkbox.js.map +1 -1
  48. package/checkbox/internal/checkbox-styles.css +1 -0
  49. package/checkbox/internal/checkbox-styles.css.map +1 -0
  50. package/checkbox/internal/{checkbox-styles.css.js → checkbox-styles.js} +7 -6
  51. package/checkbox/internal/checkbox-styles.js.map +1 -0
  52. package/chips/assist-chip.js +3 -3
  53. package/chips/assist-chip.js.map +1 -1
  54. package/chips/chip-set.js +1 -1
  55. package/chips/chip-set.js.map +1 -1
  56. package/chips/filter-chip.js +5 -5
  57. package/chips/filter-chip.js.map +1 -1
  58. package/chips/input-chip.js +4 -4
  59. package/chips/input-chip.js.map +1 -1
  60. package/chips/internal/_shared.scss +6 -0
  61. package/chips/internal/assist-chip.js +1 -1
  62. package/chips/internal/assist-chip.js.map +1 -1
  63. package/chips/internal/assist-styles.css +1 -0
  64. package/chips/internal/assist-styles.css.map +1 -0
  65. package/chips/internal/{assist-styles.css.js → assist-styles.js} +7 -6
  66. package/chips/internal/{assist-styles.css.js.map → assist-styles.js.map} +1 -1
  67. package/chips/internal/chip-set-styles.css +1 -0
  68. package/chips/internal/chip-set-styles.css.map +1 -0
  69. package/chips/internal/chip-set-styles.js +10 -0
  70. package/chips/internal/chip-set-styles.js.map +1 -0
  71. package/chips/internal/elevated-styles.css +1 -0
  72. package/chips/internal/elevated-styles.css.map +1 -0
  73. package/chips/internal/{elevated-styles.css.js → elevated-styles.js} +7 -6
  74. package/chips/internal/elevated-styles.js.map +1 -0
  75. package/chips/internal/filter-chip.js +1 -1
  76. package/chips/internal/filter-chip.js.map +1 -1
  77. package/chips/internal/filter-styles.css +1 -0
  78. package/chips/internal/filter-styles.css.map +1 -0
  79. package/chips/internal/{filter-styles.css.js → filter-styles.js} +7 -6
  80. package/chips/internal/{filter-styles.css.js.map → filter-styles.js.map} +1 -1
  81. package/chips/internal/input-styles.css +1 -0
  82. package/chips/internal/input-styles.css.map +1 -0
  83. package/chips/internal/{input-styles.css.js → input-styles.js} +7 -6
  84. package/chips/internal/input-styles.js.map +1 -0
  85. package/chips/internal/selectable-styles.css +1 -0
  86. package/chips/internal/selectable-styles.css.map +1 -0
  87. package/chips/internal/{selectable-styles.css.js → selectable-styles.js} +7 -6
  88. package/chips/internal/selectable-styles.js.map +1 -0
  89. package/chips/internal/shared-styles.css +1 -0
  90. package/chips/internal/shared-styles.css.map +1 -0
  91. package/chips/internal/{shared-styles.css.js → shared-styles.js} +7 -6
  92. package/chips/internal/{shared-styles.css.js.map → shared-styles.js.map} +1 -1
  93. package/chips/internal/suggestion-styles.css +1 -0
  94. package/chips/internal/suggestion-styles.css.map +1 -0
  95. package/chips/internal/{suggestion-styles.css.js → suggestion-styles.js} +7 -6
  96. package/chips/internal/suggestion-styles.js.map +1 -0
  97. package/chips/internal/trailing-icon-styles.css +1 -0
  98. package/chips/internal/trailing-icon-styles.css.map +1 -0
  99. package/chips/internal/{trailing-icon-styles.css.js → trailing-icon-styles.js} +7 -6
  100. package/chips/internal/trailing-icon-styles.js.map +1 -0
  101. package/chips/suggestion-chip.js +3 -3
  102. package/chips/suggestion-chip.js.map +1 -1
  103. package/dialog/dialog.js +1 -1
  104. package/dialog/dialog.js.map +1 -1
  105. package/dialog/internal/dialog-styles.css +1 -0
  106. package/dialog/internal/dialog-styles.css.map +1 -0
  107. package/dialog/internal/{dialog-styles.css.js → dialog-styles.js} +7 -6
  108. package/dialog/internal/dialog-styles.js.map +1 -0
  109. package/divider/divider.js +1 -1
  110. package/divider/divider.js.map +1 -1
  111. package/divider/internal/divider-styles.css +1 -0
  112. package/divider/internal/divider-styles.css.map +1 -0
  113. package/divider/internal/{divider-styles.css.js → divider-styles.js} +7 -6
  114. package/divider/internal/divider-styles.js.map +1 -0
  115. package/elevation/elevation.js +1 -1
  116. package/elevation/elevation.js.map +1 -1
  117. package/elevation/internal/_elevation.scss +6 -5
  118. package/elevation/internal/elevation-styles.css +1 -0
  119. package/elevation/internal/elevation-styles.css.map +1 -0
  120. package/elevation/internal/elevation-styles.js +10 -0
  121. package/elevation/internal/elevation-styles.js.map +1 -0
  122. package/fab/branded-fab.js +3 -3
  123. package/fab/branded-fab.js.map +1 -1
  124. package/fab/fab.js +3 -3
  125. package/fab/fab.js.map +1 -1
  126. package/fab/internal/_shared.scss +2 -0
  127. package/fab/internal/fab-branded-styles.css +1 -0
  128. package/fab/internal/fab-branded-styles.css.map +1 -0
  129. package/fab/internal/{fab-branded-styles.css.js → fab-branded-styles.js} +7 -6
  130. package/fab/internal/fab-branded-styles.js.map +1 -0
  131. package/fab/internal/fab-styles.css +1 -0
  132. package/fab/internal/fab-styles.css.map +1 -0
  133. package/fab/internal/{fab-styles.css.js → fab-styles.js} +7 -6
  134. package/fab/internal/fab-styles.js.map +1 -0
  135. package/fab/internal/forced-colors-styles.css +1 -0
  136. package/fab/internal/forced-colors-styles.css.map +1 -0
  137. package/fab/internal/{forced-colors-styles.css.js → forced-colors-styles.js} +7 -6
  138. package/fab/internal/forced-colors-styles.js.map +1 -0
  139. package/fab/internal/shared-styles.css +1 -0
  140. package/fab/internal/shared-styles.css.map +1 -0
  141. package/fab/internal/shared-styles.js +10 -0
  142. package/fab/internal/shared-styles.js.map +1 -0
  143. package/fab/internal/shared.js +1 -1
  144. package/fab/internal/shared.js.map +1 -1
  145. package/field/filled-field.js +2 -2
  146. package/field/filled-field.js.map +1 -1
  147. package/field/internal/filled-styles.css +1 -0
  148. package/field/internal/filled-styles.css.map +1 -0
  149. package/field/internal/{filled-styles.css.js → filled-styles.js} +7 -6
  150. package/field/internal/{filled-styles.css.js.map → filled-styles.js.map} +1 -1
  151. package/field/internal/outlined-styles.css +1 -0
  152. package/field/internal/outlined-styles.css.map +1 -0
  153. package/field/internal/{outlined-styles.css.js → outlined-styles.js} +7 -6
  154. package/field/internal/outlined-styles.js.map +1 -0
  155. package/field/internal/shared-styles.css +1 -0
  156. package/field/internal/shared-styles.css.map +1 -0
  157. package/field/internal/{shared-styles.css.js → shared-styles.js} +7 -6
  158. package/field/internal/{shared-styles.css.js.map → shared-styles.js.map} +1 -1
  159. package/field/outlined-field.js +2 -2
  160. package/field/outlined-field.js.map +1 -1
  161. package/focus/internal/focus-ring-styles.css +1 -0
  162. package/focus/internal/focus-ring-styles.css.map +1 -0
  163. package/focus/internal/{focus-ring-styles.css.js → focus-ring-styles.js} +7 -6
  164. package/focus/internal/focus-ring-styles.js.map +1 -0
  165. package/focus/md-focus-ring.js +1 -1
  166. package/focus/md-focus-ring.js.map +1 -1
  167. package/icon/icon.js +1 -1
  168. package/icon/icon.js.map +1 -1
  169. package/icon/internal/icon-styles.css +1 -0
  170. package/icon/internal/icon-styles.css.map +1 -0
  171. package/icon/internal/{icon-styles.css.js → icon-styles.js} +7 -6
  172. package/icon/internal/icon-styles.js.map +1 -0
  173. package/iconbutton/filled-icon-button.js +2 -2
  174. package/iconbutton/filled-icon-button.js.map +1 -1
  175. package/iconbutton/filled-tonal-icon-button.js +2 -2
  176. package/iconbutton/filled-tonal-icon-button.js.map +1 -1
  177. package/iconbutton/icon-button.js +2 -2
  178. package/iconbutton/icon-button.js.map +1 -1
  179. package/iconbutton/internal/filled-styles.css +1 -0
  180. package/iconbutton/internal/filled-styles.css.map +1 -0
  181. package/iconbutton/internal/{filled-styles.css.js → filled-styles.js} +7 -6
  182. package/iconbutton/internal/filled-styles.js.map +1 -0
  183. package/iconbutton/internal/filled-tonal-styles.css +1 -0
  184. package/iconbutton/internal/filled-tonal-styles.css.map +1 -0
  185. package/iconbutton/internal/{filled-tonal-styles.css.js → filled-tonal-styles.js} +7 -6
  186. package/iconbutton/internal/filled-tonal-styles.js.map +1 -0
  187. package/iconbutton/internal/outlined-styles.css +1 -0
  188. package/iconbutton/internal/outlined-styles.css.map +1 -0
  189. package/iconbutton/internal/{outlined-styles.css.js → outlined-styles.js} +7 -6
  190. package/iconbutton/internal/outlined-styles.js.map +1 -0
  191. package/iconbutton/internal/shared-styles.css +1 -0
  192. package/iconbutton/internal/shared-styles.css.map +1 -0
  193. package/iconbutton/internal/{shared-styles.css.js → shared-styles.js} +7 -6
  194. package/iconbutton/internal/shared-styles.js.map +1 -0
  195. package/iconbutton/internal/standard-styles.css +1 -0
  196. package/iconbutton/internal/standard-styles.css.map +1 -0
  197. package/iconbutton/internal/{standard-styles.css.js → standard-styles.js} +7 -6
  198. package/iconbutton/internal/standard-styles.js.map +1 -0
  199. package/iconbutton/outlined-icon-button.js +2 -2
  200. package/iconbutton/outlined-icon-button.js.map +1 -1
  201. package/labs/badge/badge.js +1 -1
  202. package/labs/badge/badge.js.map +1 -1
  203. package/labs/badge/internal/badge-styles.css +1 -0
  204. package/labs/badge/internal/badge-styles.css.map +1 -0
  205. package/labs/badge/internal/{badge-styles.css.js → badge-styles.js} +7 -6
  206. package/labs/badge/internal/badge-styles.js.map +1 -0
  207. package/labs/card/elevated-card.js +2 -2
  208. package/labs/card/elevated-card.js.map +1 -1
  209. package/labs/card/filled-card.js +2 -2
  210. package/labs/card/filled-card.js.map +1 -1
  211. package/labs/card/internal/elevated-styles.css +1 -0
  212. package/labs/card/internal/elevated-styles.css.map +1 -0
  213. package/labs/card/internal/{elevated-styles.css.js → elevated-styles.js} +7 -6
  214. package/labs/card/internal/elevated-styles.js.map +1 -0
  215. package/labs/card/internal/filled-styles.css +1 -0
  216. package/labs/card/internal/filled-styles.css.map +1 -0
  217. package/labs/card/internal/{filled-styles.css.js → filled-styles.js} +7 -6
  218. package/labs/card/internal/filled-styles.js.map +1 -0
  219. package/labs/card/internal/outlined-styles.css +1 -0
  220. package/labs/card/internal/outlined-styles.css.map +1 -0
  221. package/labs/card/internal/{outlined-styles.css.js → outlined-styles.js} +7 -6
  222. package/labs/card/internal/outlined-styles.js.map +1 -0
  223. package/labs/card/internal/shared-styles.css +1 -0
  224. package/labs/card/internal/shared-styles.css.map +1 -0
  225. package/labs/card/internal/{shared-styles.css.js → shared-styles.js} +7 -6
  226. package/labs/card/internal/shared-styles.js.map +1 -0
  227. package/labs/card/outlined-card.js +2 -2
  228. package/labs/card/outlined-card.js.map +1 -1
  229. package/labs/item/internal/item-styles.css +1 -0
  230. package/labs/item/internal/item-styles.css.map +1 -0
  231. package/labs/item/internal/{item-styles.css.js → item-styles.js} +7 -6
  232. package/labs/item/internal/item-styles.js.map +1 -0
  233. package/labs/item/item.js +1 -1
  234. package/labs/item/item.js.map +1 -1
  235. package/labs/navigationbar/internal/navigation-bar-styles.css +1 -0
  236. package/labs/navigationbar/internal/navigation-bar-styles.css.map +1 -0
  237. package/labs/navigationbar/internal/{navigation-bar-styles.css.js → navigation-bar-styles.js} +7 -6
  238. package/labs/navigationbar/internal/navigation-bar-styles.js.map +1 -0
  239. package/labs/navigationbar/internal/navigation-bar.js +1 -1
  240. package/labs/navigationbar/internal/navigation-bar.js.map +1 -1
  241. package/labs/navigationbar/navigation-bar.js +1 -1
  242. package/labs/navigationbar/navigation-bar.js.map +1 -1
  243. package/labs/navigationdrawer/internal/navigation-drawer-modal-styles.css +1 -0
  244. package/labs/navigationdrawer/internal/navigation-drawer-modal-styles.css.map +1 -0
  245. package/labs/navigationdrawer/internal/{navigation-drawer-modal-styles.css.js → navigation-drawer-modal-styles.js} +7 -6
  246. package/labs/navigationdrawer/internal/navigation-drawer-modal-styles.js.map +1 -0
  247. package/labs/navigationdrawer/internal/navigation-drawer-styles.css +1 -0
  248. package/labs/navigationdrawer/internal/navigation-drawer-styles.css.map +1 -0
  249. package/labs/navigationdrawer/internal/{navigation-drawer-styles.css.js → navigation-drawer-styles.js} +7 -6
  250. package/labs/navigationdrawer/internal/navigation-drawer-styles.js.map +1 -0
  251. package/labs/navigationdrawer/internal/navigation-drawer.js +1 -1
  252. package/labs/navigationdrawer/internal/navigation-drawer.js.map +1 -1
  253. package/labs/navigationdrawer/internal/shared-styles.css +1 -0
  254. package/labs/navigationdrawer/internal/shared-styles.css.map +1 -0
  255. package/labs/navigationdrawer/internal/{shared-styles.css.js → shared-styles.js} +7 -6
  256. package/labs/navigationdrawer/internal/shared-styles.js.map +1 -0
  257. package/labs/navigationdrawer/navigation-drawer-modal.js +2 -2
  258. package/labs/navigationdrawer/navigation-drawer-modal.js.map +1 -1
  259. package/labs/navigationdrawer/navigation-drawer.js +2 -2
  260. package/labs/navigationdrawer/navigation-drawer.js.map +1 -1
  261. package/labs/navigationtab/internal/_navigation-tab.scss +2 -0
  262. package/labs/navigationtab/internal/navigation-tab-styles.css +1 -0
  263. package/labs/navigationtab/internal/navigation-tab-styles.css.map +1 -0
  264. package/labs/navigationtab/internal/{navigation-tab-styles.css.js → navigation-tab-styles.js} +7 -6
  265. package/labs/navigationtab/internal/navigation-tab-styles.js.map +1 -0
  266. package/labs/navigationtab/navigation-tab.js +1 -1
  267. package/labs/navigationtab/navigation-tab.js.map +1 -1
  268. package/labs/segmentedbutton/internal/_shared.scss +2 -0
  269. package/labs/segmentedbutton/internal/outlined-styles.css +1 -0
  270. package/labs/segmentedbutton/internal/outlined-styles.css.map +1 -0
  271. package/labs/segmentedbutton/internal/{outlined-styles.css.js → outlined-styles.js} +7 -6
  272. package/labs/segmentedbutton/internal/outlined-styles.js.map +1 -0
  273. package/labs/segmentedbutton/internal/shared-styles.css +1 -0
  274. package/labs/segmentedbutton/internal/shared-styles.css.map +1 -0
  275. package/labs/segmentedbutton/internal/shared-styles.js +10 -0
  276. package/labs/segmentedbutton/internal/shared-styles.js.map +1 -0
  277. package/labs/segmentedbutton/outlined-segmented-button.js +2 -2
  278. package/labs/segmentedbutton/outlined-segmented-button.js.map +1 -1
  279. package/labs/segmentedbuttonset/internal/outlined-styles.css +1 -0
  280. package/labs/segmentedbuttonset/internal/outlined-styles.css.map +1 -0
  281. package/labs/segmentedbuttonset/internal/{outlined-styles.css.js → outlined-styles.js} +7 -6
  282. package/labs/segmentedbuttonset/internal/outlined-styles.js.map +1 -0
  283. package/labs/segmentedbuttonset/internal/shared-styles.css +1 -0
  284. package/labs/segmentedbuttonset/internal/shared-styles.css.map +1 -0
  285. package/labs/segmentedbuttonset/internal/{shared-styles.css.js → shared-styles.js} +7 -6
  286. package/labs/segmentedbuttonset/internal/shared-styles.js.map +1 -0
  287. package/labs/segmentedbuttonset/outlined-segmented-button-set.js +2 -2
  288. package/labs/segmentedbuttonset/outlined-segmented-button-set.js.map +1 -1
  289. package/list/internal/list-controller.d.ts +6 -0
  290. package/list/internal/list-controller.js +16 -10
  291. package/list/internal/list-controller.js.map +1 -1
  292. package/list/internal/list-navigation-helpers.d.ts +8 -4
  293. package/list/internal/list-navigation-helpers.js +18 -6
  294. package/list/internal/list-navigation-helpers.js.map +1 -1
  295. package/list/internal/list-styles.css +1 -0
  296. package/list/internal/list-styles.css.map +1 -0
  297. package/list/internal/{list-styles.css.js → list-styles.js} +7 -6
  298. package/list/internal/list-styles.js.map +1 -0
  299. package/list/internal/listitem/list-item-styles.css +1 -0
  300. package/list/internal/listitem/list-item-styles.css.map +1 -0
  301. package/list/internal/listitem/{list-item-styles.css.js → list-item-styles.js} +7 -6
  302. package/list/internal/listitem/list-item-styles.js.map +1 -0
  303. package/list/list-item.js +1 -1
  304. package/list/list-item.js.map +1 -1
  305. package/list/list.js +1 -1
  306. package/list/list.js.map +1 -1
  307. package/menu/internal/menu-styles.css +1 -0
  308. package/menu/internal/menu-styles.css.map +1 -0
  309. package/menu/internal/{menu-styles.css.js → menu-styles.js} +7 -6
  310. package/menu/internal/menu-styles.js.map +1 -0
  311. package/menu/internal/menu.d.ts +6 -0
  312. package/menu/internal/menu.js +10 -0
  313. package/menu/internal/menu.js.map +1 -1
  314. package/menu/internal/menuitem/menu-item-styles.css +1 -0
  315. package/menu/internal/menuitem/menu-item-styles.css.map +1 -0
  316. package/menu/internal/menuitem/{menu-item-styles.css.js → menu-item-styles.js} +7 -6
  317. package/menu/internal/menuitem/menu-item-styles.js.map +1 -0
  318. package/menu/internal/submenu/sub-menu-styles.css +1 -0
  319. package/menu/internal/submenu/sub-menu-styles.css.map +1 -0
  320. package/menu/internal/submenu/sub-menu-styles.js +10 -0
  321. package/menu/internal/submenu/sub-menu-styles.js.map +1 -0
  322. package/menu/menu-item.js +1 -1
  323. package/menu/menu-item.js.map +1 -1
  324. package/menu/menu.js +1 -1
  325. package/menu/menu.js.map +1 -1
  326. package/menu/sub-menu.js +1 -1
  327. package/menu/sub-menu.js.map +1 -1
  328. package/package.json +20 -26
  329. package/progress/circular-progress.js +1 -1
  330. package/progress/circular-progress.js.map +1 -1
  331. package/progress/internal/circular-progress-styles.css +1 -0
  332. package/progress/internal/circular-progress-styles.css.map +1 -0
  333. package/progress/internal/{circular-progress-styles.css.js → circular-progress-styles.js} +7 -6
  334. package/progress/internal/circular-progress-styles.js.map +1 -0
  335. package/progress/internal/linear-progress-styles.css +1 -0
  336. package/progress/internal/linear-progress-styles.css.map +1 -0
  337. package/progress/internal/{linear-progress-styles.css.js → linear-progress-styles.js} +7 -6
  338. package/progress/internal/linear-progress-styles.js.map +1 -0
  339. package/progress/linear-progress.js +1 -1
  340. package/progress/linear-progress.js.map +1 -1
  341. package/radio/internal/radio-styles.css +1 -0
  342. package/radio/internal/radio-styles.css.map +1 -0
  343. package/radio/internal/{radio-styles.css.js → radio-styles.js} +7 -6
  344. package/radio/internal/radio-styles.js.map +1 -0
  345. package/radio/radio.js +1 -1
  346. package/radio/radio.js.map +1 -1
  347. package/ripple/internal/ripple-styles.css +1 -0
  348. package/ripple/internal/ripple-styles.css.map +1 -0
  349. package/ripple/internal/{ripple-styles.css.js → ripple-styles.js} +7 -6
  350. package/ripple/internal/ripple-styles.js.map +1 -0
  351. package/ripple/ripple.js +1 -1
  352. package/ripple/ripple.js.map +1 -1
  353. package/select/filled-select.js +2 -2
  354. package/select/filled-select.js.map +1 -1
  355. package/select/internal/filled-select-styles.css +1 -0
  356. package/select/internal/filled-select-styles.css.map +1 -0
  357. package/select/internal/{filled-select-styles.css.js → filled-select-styles.js} +7 -6
  358. package/select/internal/filled-select-styles.js.map +1 -0
  359. package/select/internal/outlined-select-styles.css +1 -0
  360. package/select/internal/outlined-select-styles.css.map +1 -0
  361. package/select/internal/{outlined-select-styles.css.js → outlined-select-styles.js} +7 -6
  362. package/select/internal/outlined-select-styles.js.map +1 -0
  363. package/select/internal/select.js +1 -1
  364. package/select/internal/select.js.map +1 -1
  365. package/select/internal/shared-styles.css +1 -0
  366. package/select/internal/shared-styles.css.map +1 -0
  367. package/select/internal/{shared-styles.css.js → shared-styles.js} +7 -6
  368. package/select/internal/shared-styles.js.map +1 -0
  369. package/select/outlined-select.js +2 -2
  370. package/select/outlined-select.js.map +1 -1
  371. package/select/select-option.js +1 -1
  372. package/select/select-option.js.map +1 -1
  373. package/slider/internal/_slider.scss +4 -4
  374. package/slider/internal/forced-colors-styles.css +1 -0
  375. package/slider/internal/forced-colors-styles.css.map +1 -0
  376. package/slider/internal/{forced-colors-styles.css.js → forced-colors-styles.js} +7 -6
  377. package/slider/internal/forced-colors-styles.js.map +1 -0
  378. package/slider/internal/slider-styles.css +1 -0
  379. package/slider/internal/slider-styles.css.map +1 -0
  380. package/slider/internal/slider-styles.js +10 -0
  381. package/slider/internal/slider-styles.js.map +1 -0
  382. package/slider/internal/slider.js +3 -1
  383. package/slider/internal/slider.js.map +1 -1
  384. package/slider/slider.js +2 -2
  385. package/slider/slider.js.map +1 -1
  386. package/switch/internal/switch-styles.css +1 -0
  387. package/switch/internal/switch-styles.css.map +1 -0
  388. package/switch/internal/{switch-styles.css.js → switch-styles.js} +7 -6
  389. package/switch/internal/switch-styles.js.map +1 -0
  390. package/switch/internal/switch.d.ts +1 -0
  391. package/switch/internal/switch.js +6 -1
  392. package/switch/internal/switch.js.map +1 -1
  393. package/switch/switch.js +1 -1
  394. package/switch/switch.js.map +1 -1
  395. package/tabs/internal/_tabs.scss +2 -0
  396. package/tabs/internal/primary-tab-styles.css +1 -0
  397. package/tabs/internal/primary-tab-styles.css.map +1 -0
  398. package/tabs/internal/{primary-tab-styles.css.js → primary-tab-styles.js} +7 -6
  399. package/tabs/internal/primary-tab-styles.js.map +1 -0
  400. package/tabs/internal/secondary-tab-styles.css +1 -0
  401. package/tabs/internal/secondary-tab-styles.css.map +1 -0
  402. package/tabs/internal/{secondary-tab-styles.css.js → secondary-tab-styles.js} +7 -6
  403. package/tabs/internal/secondary-tab-styles.js.map +1 -0
  404. package/tabs/internal/tab-styles.css +1 -0
  405. package/tabs/internal/tab-styles.css.map +1 -0
  406. package/tabs/internal/{tab-styles.css.js → tab-styles.js} +7 -6
  407. package/tabs/internal/tab-styles.js.map +1 -0
  408. package/tabs/internal/tab.d.ts +0 -1
  409. package/tabs/internal/tab.js +1 -2
  410. package/tabs/internal/tab.js.map +1 -1
  411. package/tabs/internal/tabs-styles.css +1 -0
  412. package/tabs/internal/tabs-styles.css.map +1 -0
  413. package/tabs/internal/tabs-styles.js +10 -0
  414. package/tabs/internal/tabs-styles.js.map +1 -0
  415. package/tabs/internal/tabs.js +5 -2
  416. package/tabs/internal/tabs.js.map +1 -1
  417. package/tabs/primary-tab.js +2 -2
  418. package/tabs/primary-tab.js.map +1 -1
  419. package/tabs/secondary-tab.js +2 -2
  420. package/tabs/secondary-tab.js.map +1 -1
  421. package/tabs/tabs.js +1 -1
  422. package/tabs/tabs.js.map +1 -1
  423. package/textfield/filled-text-field.js +2 -2
  424. package/textfield/filled-text-field.js.map +1 -1
  425. package/textfield/internal/_shared.scss +2 -0
  426. package/textfield/internal/filled-styles.css +1 -0
  427. package/textfield/internal/filled-styles.css.map +1 -0
  428. package/textfield/internal/{filled-styles.css.js → filled-styles.js} +7 -6
  429. package/textfield/internal/filled-styles.js.map +1 -0
  430. package/textfield/internal/outlined-styles.css +1 -0
  431. package/textfield/internal/outlined-styles.css.map +1 -0
  432. package/textfield/internal/{outlined-styles.css.js → outlined-styles.js} +7 -6
  433. package/textfield/internal/outlined-styles.js.map +1 -0
  434. package/textfield/internal/shared-styles.css +1 -0
  435. package/textfield/internal/shared-styles.css.map +1 -0
  436. package/textfield/internal/shared-styles.js +10 -0
  437. package/textfield/internal/shared-styles.js.map +1 -0
  438. package/textfield/outlined-text-field.js +2 -2
  439. package/textfield/outlined-text-field.js.map +1 -1
  440. package/tokens/_md-comp-filled-select.scss +0 -2
  441. package/tokens/_md-comp-linear-progress.scss +0 -2
  442. package/tokens/v0_192/index.test.css +1 -0
  443. package/tokens/v0_192/index.test.css.map +1 -0
  444. package/tokens/v0_192/lib.test.css +1 -0
  445. package/tokens/v0_192/lib.test.css.map +1 -0
  446. package/typography/_typescale.scss +109 -2
  447. package/typography/md-typescale-styles.css +1 -0
  448. package/typography/md-typescale-styles.css.map +1 -0
  449. package/typography/md-typescale-styles.js +10 -0
  450. package/typography/md-typescale-styles.js.map +1 -0
  451. package/typography/md-typescale-styles.scss +11 -0
  452. package/button/internal/elevated-styles.css.js.map +0 -1
  453. package/button/internal/filled-styles.css.js.map +0 -1
  454. package/button/internal/filled-tonal-styles.css.js.map +0 -1
  455. package/button/internal/outlined-styles.css.js.map +0 -1
  456. package/button/internal/shared-elevation-styles.css.js.map +0 -1
  457. package/button/internal/shared-styles.css.js +0 -9
  458. package/button/internal/shared-styles.css.js.map +0 -1
  459. package/button/internal/text-styles.css.js.map +0 -1
  460. package/checkbox/internal/checkbox-styles.css.js.map +0 -1
  461. package/chips/internal/chip-set-styles.css.js +0 -9
  462. package/chips/internal/chip-set-styles.css.js.map +0 -1
  463. package/chips/internal/elevated-styles.css.js.map +0 -1
  464. package/chips/internal/input-styles.css.js.map +0 -1
  465. package/chips/internal/selectable-styles.css.js.map +0 -1
  466. package/chips/internal/suggestion-styles.css.js.map +0 -1
  467. package/chips/internal/trailing-icon-styles.css.js.map +0 -1
  468. package/dialog/internal/dialog-styles.css.js.map +0 -1
  469. package/divider/internal/divider-styles.css.js.map +0 -1
  470. package/elevation/internal/elevation-styles.css.js +0 -9
  471. package/elevation/internal/elevation-styles.css.js.map +0 -1
  472. package/fab/internal/fab-branded-styles.css.js.map +0 -1
  473. package/fab/internal/fab-styles.css.js.map +0 -1
  474. package/fab/internal/forced-colors-styles.css.js.map +0 -1
  475. package/fab/internal/shared-styles.css.js +0 -9
  476. package/fab/internal/shared-styles.css.js.map +0 -1
  477. package/field/internal/outlined-styles.css.js.map +0 -1
  478. package/focus/internal/focus-ring-styles.css.js.map +0 -1
  479. package/icon/internal/icon-styles.css.js.map +0 -1
  480. package/iconbutton/internal/filled-styles.css.js.map +0 -1
  481. package/iconbutton/internal/filled-tonal-styles.css.js.map +0 -1
  482. package/iconbutton/internal/outlined-styles.css.js.map +0 -1
  483. package/iconbutton/internal/shared-styles.css.js.map +0 -1
  484. package/iconbutton/internal/standard-styles.css.js.map +0 -1
  485. package/labs/badge/internal/badge-styles.css.js.map +0 -1
  486. package/labs/card/internal/elevated-styles.css.js.map +0 -1
  487. package/labs/card/internal/filled-styles.css.js.map +0 -1
  488. package/labs/card/internal/outlined-styles.css.js.map +0 -1
  489. package/labs/card/internal/shared-styles.css.js.map +0 -1
  490. package/labs/item/internal/item-styles.css.js.map +0 -1
  491. package/labs/navigationbar/internal/navigation-bar-styles.css.js.map +0 -1
  492. package/labs/navigationdrawer/internal/navigation-drawer-modal-styles.css.js.map +0 -1
  493. package/labs/navigationdrawer/internal/navigation-drawer-styles.css.js.map +0 -1
  494. package/labs/navigationdrawer/internal/shared-styles.css.js.map +0 -1
  495. package/labs/navigationtab/internal/navigation-tab-styles.css.js.map +0 -1
  496. package/labs/segmentedbutton/internal/outlined-styles.css.js.map +0 -1
  497. package/labs/segmentedbutton/internal/shared-styles.css.js +0 -9
  498. package/labs/segmentedbutton/internal/shared-styles.css.js.map +0 -1
  499. package/labs/segmentedbuttonset/internal/outlined-styles.css.js.map +0 -1
  500. package/labs/segmentedbuttonset/internal/shared-styles.css.js.map +0 -1
  501. package/list/internal/list-styles.css.js.map +0 -1
  502. package/list/internal/listitem/list-item-styles.css.js.map +0 -1
  503. package/menu/internal/menu-styles.css.js.map +0 -1
  504. package/menu/internal/menuitem/menu-item-styles.css.js.map +0 -1
  505. package/menu/internal/submenu/sub-menu-styles.css.js +0 -9
  506. package/menu/internal/submenu/sub-menu-styles.css.js.map +0 -1
  507. package/progress/internal/circular-progress-styles.css.js.map +0 -1
  508. package/progress/internal/linear-progress-styles.css.js.map +0 -1
  509. package/radio/internal/radio-styles.css.js.map +0 -1
  510. package/ripple/internal/ripple-styles.css.js.map +0 -1
  511. package/select/internal/filled-select-styles.css.js.map +0 -1
  512. package/select/internal/outlined-select-styles.css.js.map +0 -1
  513. package/select/internal/shared-styles.css.js.map +0 -1
  514. package/slider/internal/forced-colors-styles.css.js.map +0 -1
  515. package/slider/internal/slider-styles.css.js +0 -9
  516. package/slider/internal/slider-styles.css.js.map +0 -1
  517. package/switch/internal/switch-styles.css.js.map +0 -1
  518. package/tabs/internal/primary-tab-styles.css.js.map +0 -1
  519. package/tabs/internal/secondary-tab-styles.css.js.map +0 -1
  520. package/tabs/internal/tab-styles.css.js.map +0 -1
  521. package/tabs/internal/tabs-styles.css.js +0 -9
  522. package/tabs/internal/tabs-styles.css.js.map +0 -1
  523. package/textfield/internal/filled-styles.css.js.map +0 -1
  524. package/textfield/internal/outlined-styles.css.js.map +0 -1
  525. package/textfield/internal/shared-styles.css.js +0 -9
  526. package/textfield/internal/shared-styles.css.js.map +0 -1
  527. package/tokens/v0_192/index.test.css.js +0 -9
  528. package/tokens/v0_192/index.test.css.js.map +0 -1
  529. package/tokens/v0_192/lib.test.css.d.ts +0 -1
  530. package/tokens/v0_192/lib.test.css.js +0 -9
  531. package/tokens/v0_192/lib.test.css.js.map +0 -1
  532. /package/button/internal/{elevated-styles.css.d.ts → elevated-styles.d.ts} +0 -0
  533. /package/button/internal/{filled-styles.css.d.ts → filled-styles.d.ts} +0 -0
  534. /package/button/internal/{filled-tonal-styles.css.d.ts → filled-tonal-styles.d.ts} +0 -0
  535. /package/button/internal/{outlined-styles.css.d.ts → outlined-styles.d.ts} +0 -0
  536. /package/button/internal/{shared-elevation-styles.css.d.ts → shared-elevation-styles.d.ts} +0 -0
  537. /package/button/internal/{shared-styles.css.d.ts → shared-styles.d.ts} +0 -0
  538. /package/button/internal/{text-styles.css.d.ts → text-styles.d.ts} +0 -0
  539. /package/checkbox/internal/{checkbox-styles.css.d.ts → checkbox-styles.d.ts} +0 -0
  540. /package/chips/internal/{assist-styles.css.d.ts → assist-styles.d.ts} +0 -0
  541. /package/chips/internal/{chip-set-styles.css.d.ts → chip-set-styles.d.ts} +0 -0
  542. /package/chips/internal/{elevated-styles.css.d.ts → elevated-styles.d.ts} +0 -0
  543. /package/chips/internal/{filter-styles.css.d.ts → filter-styles.d.ts} +0 -0
  544. /package/chips/internal/{input-styles.css.d.ts → input-styles.d.ts} +0 -0
  545. /package/chips/internal/{selectable-styles.css.d.ts → selectable-styles.d.ts} +0 -0
  546. /package/chips/internal/{shared-styles.css.d.ts → shared-styles.d.ts} +0 -0
  547. /package/chips/internal/{suggestion-styles.css.d.ts → suggestion-styles.d.ts} +0 -0
  548. /package/chips/internal/{trailing-icon-styles.css.d.ts → trailing-icon-styles.d.ts} +0 -0
  549. /package/dialog/internal/{dialog-styles.css.d.ts → dialog-styles.d.ts} +0 -0
  550. /package/divider/internal/{divider-styles.css.d.ts → divider-styles.d.ts} +0 -0
  551. /package/elevation/internal/{elevation-styles.css.d.ts → elevation-styles.d.ts} +0 -0
  552. /package/fab/internal/{fab-branded-styles.css.d.ts → fab-branded-styles.d.ts} +0 -0
  553. /package/fab/internal/{fab-styles.css.d.ts → fab-styles.d.ts} +0 -0
  554. /package/fab/internal/{forced-colors-styles.css.d.ts → forced-colors-styles.d.ts} +0 -0
  555. /package/fab/internal/{shared-styles.css.d.ts → shared-styles.d.ts} +0 -0
  556. /package/field/internal/{filled-styles.css.d.ts → filled-styles.d.ts} +0 -0
  557. /package/field/internal/{outlined-styles.css.d.ts → outlined-styles.d.ts} +0 -0
  558. /package/field/internal/{shared-styles.css.d.ts → shared-styles.d.ts} +0 -0
  559. /package/focus/internal/{focus-ring-styles.css.d.ts → focus-ring-styles.d.ts} +0 -0
  560. /package/icon/internal/{icon-styles.css.d.ts → icon-styles.d.ts} +0 -0
  561. /package/iconbutton/internal/{filled-styles.css.d.ts → filled-styles.d.ts} +0 -0
  562. /package/iconbutton/internal/{filled-tonal-styles.css.d.ts → filled-tonal-styles.d.ts} +0 -0
  563. /package/iconbutton/internal/{outlined-styles.css.d.ts → outlined-styles.d.ts} +0 -0
  564. /package/iconbutton/internal/{shared-styles.css.d.ts → shared-styles.d.ts} +0 -0
  565. /package/iconbutton/internal/{standard-styles.css.d.ts → standard-styles.d.ts} +0 -0
  566. /package/labs/badge/internal/{badge-styles.css.d.ts → badge-styles.d.ts} +0 -0
  567. /package/labs/card/internal/{elevated-styles.css.d.ts → elevated-styles.d.ts} +0 -0
  568. /package/labs/card/internal/{filled-styles.css.d.ts → filled-styles.d.ts} +0 -0
  569. /package/labs/card/internal/{outlined-styles.css.d.ts → outlined-styles.d.ts} +0 -0
  570. /package/labs/card/internal/{shared-styles.css.d.ts → shared-styles.d.ts} +0 -0
  571. /package/labs/item/internal/{item-styles.css.d.ts → item-styles.d.ts} +0 -0
  572. /package/labs/navigationbar/internal/{navigation-bar-styles.css.d.ts → navigation-bar-styles.d.ts} +0 -0
  573. /package/labs/navigationdrawer/internal/{navigation-drawer-modal-styles.css.d.ts → navigation-drawer-modal-styles.d.ts} +0 -0
  574. /package/labs/navigationdrawer/internal/{navigation-drawer-styles.css.d.ts → navigation-drawer-styles.d.ts} +0 -0
  575. /package/labs/navigationdrawer/internal/{shared-styles.css.d.ts → shared-styles.d.ts} +0 -0
  576. /package/labs/navigationtab/internal/{navigation-tab-styles.css.d.ts → navigation-tab-styles.d.ts} +0 -0
  577. /package/labs/segmentedbutton/internal/{outlined-styles.css.d.ts → outlined-styles.d.ts} +0 -0
  578. /package/labs/segmentedbutton/internal/{shared-styles.css.d.ts → shared-styles.d.ts} +0 -0
  579. /package/labs/segmentedbuttonset/internal/{outlined-styles.css.d.ts → outlined-styles.d.ts} +0 -0
  580. /package/labs/segmentedbuttonset/internal/{shared-styles.css.d.ts → shared-styles.d.ts} +0 -0
  581. /package/list/internal/{list-styles.css.d.ts → list-styles.d.ts} +0 -0
  582. /package/list/internal/listitem/{list-item-styles.css.d.ts → list-item-styles.d.ts} +0 -0
  583. /package/menu/internal/{menu-styles.css.d.ts → menu-styles.d.ts} +0 -0
  584. /package/menu/internal/menuitem/{menu-item-styles.css.d.ts → menu-item-styles.d.ts} +0 -0
  585. /package/menu/internal/submenu/{sub-menu-styles.css.d.ts → sub-menu-styles.d.ts} +0 -0
  586. /package/progress/internal/{circular-progress-styles.css.d.ts → circular-progress-styles.d.ts} +0 -0
  587. /package/progress/internal/{linear-progress-styles.css.d.ts → linear-progress-styles.d.ts} +0 -0
  588. /package/radio/internal/{radio-styles.css.d.ts → radio-styles.d.ts} +0 -0
  589. /package/ripple/internal/{ripple-styles.css.d.ts → ripple-styles.d.ts} +0 -0
  590. /package/select/internal/{filled-select-styles.css.d.ts → filled-select-styles.d.ts} +0 -0
  591. /package/select/internal/{outlined-select-styles.css.d.ts → outlined-select-styles.d.ts} +0 -0
  592. /package/select/internal/{shared-styles.css.d.ts → shared-styles.d.ts} +0 -0
  593. /package/slider/internal/{forced-colors-styles.css.d.ts → forced-colors-styles.d.ts} +0 -0
  594. /package/slider/internal/{slider-styles.css.d.ts → slider-styles.d.ts} +0 -0
  595. /package/switch/internal/{switch-styles.css.d.ts → switch-styles.d.ts} +0 -0
  596. /package/tabs/internal/{primary-tab-styles.css.d.ts → primary-tab-styles.d.ts} +0 -0
  597. /package/tabs/internal/{secondary-tab-styles.css.d.ts → secondary-tab-styles.d.ts} +0 -0
  598. /package/tabs/internal/{tab-styles.css.d.ts → tab-styles.d.ts} +0 -0
  599. /package/tabs/internal/{tabs-styles.css.d.ts → tabs-styles.d.ts} +0 -0
  600. /package/textfield/internal/{filled-styles.css.d.ts → filled-styles.d.ts} +0 -0
  601. /package/textfield/internal/{outlined-styles.css.d.ts → outlined-styles.d.ts} +0 -0
  602. /package/textfield/internal/{shared-styles.css.d.ts → shared-styles.d.ts} +0 -0
  603. /package/{tokens/v0_192/index.test.css.d.ts → typography/md-typescale-styles.d.ts} +0 -0
@@ -122,11 +122,17 @@ export function getLastActivatableItem(items, isActivatable = (isItemNotDisabled
122
122
  * @param index {{index: number}} The index to search from.
123
123
  * @param isActivatable Function to determine if an item can be activated.
124
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.
125
127
  * @return The next activatable item or `null` if none are activatable.
126
128
  */
127
- export function getNextItem(items, index, isActivatable = (isItemNotDisabled)) {
129
+ export function getNextItem(items, index, isActivatable = (isItemNotDisabled), wrap = true) {
128
130
  for (let i = 1; i < items.length; i++) {
129
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
+ }
130
136
  const item = items[nextIndex];
131
137
  if (isActivatable(item)) {
132
138
  return item;
@@ -141,11 +147,17 @@ export function getNextItem(items, index, isActivatable = (isItemNotDisabled)) {
141
147
  * @param index {{index: number}} The index to search from.
142
148
  * @param isActivatable Function to determine if an item can be activated.
143
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.
144
152
  * @return The previous activatable item or `null` if none are activatable.
145
153
  */
146
- export function getPrevItem(items, index, isActivatable = (isItemNotDisabled)) {
154
+ export function getPrevItem(items, index, isActivatable = (isItemNotDisabled), wrap = true) {
147
155
  for (let i = 1; i < items.length; i++) {
148
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
+ }
149
161
  const item = items[prevIndex];
150
162
  if (isActivatable(item)) {
151
163
  return item;
@@ -157,9 +169,9 @@ export function getPrevItem(items, index, isActivatable = (isItemNotDisabled)) {
157
169
  * Activates the next item and focuses it. If nothing is currently activated,
158
170
  * activates the first item.
159
171
  */
160
- export function activateNextItem(items, activeItemRecord, isActivatable = (isItemNotDisabled)) {
172
+ export function activateNextItem(items, activeItemRecord, isActivatable = (isItemNotDisabled), wrap = true) {
161
173
  if (activeItemRecord) {
162
- const next = getNextItem(items, activeItemRecord.index, isActivatable);
174
+ const next = getNextItem(items, activeItemRecord.index, isActivatable, wrap);
163
175
  if (next) {
164
176
  next.tabIndex = 0;
165
177
  next.focus();
@@ -174,9 +186,9 @@ export function activateNextItem(items, activeItemRecord, isActivatable = (isIte
174
186
  * Activates the previous item and focuses it. If nothing is currently
175
187
  * activated, activates the last item.
176
188
  */
177
- export function activatePreviousItem(items, activeItemRecord, isActivatable = (isItemNotDisabled)) {
189
+ export function activatePreviousItem(items, activeItemRecord, isActivatable = (isItemNotDisabled), wrap = true) {
178
190
  if (activeItemRecord) {
179
- const prev = getPrevItem(items, activeItemRecord.index, isActivatable);
191
+ const prev = getPrevItem(items, activeItemRecord.index, isActivatable, wrap);
180
192
  if (prev) {
181
193
  prev.tabIndex = 0;
182
194
  prev.focus();
@@ -1 +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 * @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) {\n for (let i = 1; i < items.length; i++) {\n const nextIndex = (i + index) % items.length;\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 * @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) {\n for (let i = 1; i < items.length; i++) {\n const prevIndex = (index - i + items.length) % items.length;\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): Item | null {\n if (activeItemRecord) {\n const next = getNextItem(items, activeItemRecord.index, isActivatable);\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): Item | null {\n if (activeItemRecord) {\n const prev = getPrevItem(items, activeItemRecord.index, isActivatable);\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"]}
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":"AAiCE,MACE,gFACA,YACA,aACA,sBACA,aACA,cAGA","file":"list-styles.css"}
@@ -1,9 +1,10 @@
1
1
  /**
2
- * @license
3
- * Copyright 2022 Google LLC
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
2
+ * @license
3
+ * Copyright 2024 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ // Generated stylesheet for ./list/internal/list-styles.css.
6
7
  import { css } from 'lit';
7
- 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}/*# sourceMappingURL=list-styles.css.map */
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}
8
9
  `;
9
- //# sourceMappingURL=list-styles.css.js.map
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 @@
1
+ :host{display:flex;-webkit-tap-highlight-color:rgba(0,0,0,0);--md-ripple-hover-color: var(--md-list-item-hover-state-layer-color, var(--md-sys-color-on-surface, #1d1b20));--md-ripple-hover-opacity: var(--md-list-item-hover-state-layer-opacity, 0.08);--md-ripple-pressed-color: var(--md-list-item-pressed-state-layer-color, var(--md-sys-color-on-surface, #1d1b20));--md-ripple-pressed-opacity: var(--md-list-item-pressed-state-layer-opacity, 0.12)}:host(:is([type=button]:not([disabled]),[type=link])){cursor:pointer}md-focus-ring{z-index:1;--md-focus-ring-shape: 8px}a,button,li{background:none;border:none;cursor:inherit;padding:0;margin:0;text-align:unset;text-decoration:none}.list-item{border-radius:inherit;display:flex;flex:1;max-width:inherit;min-width:inherit;outline:none;-webkit-tap-highlight-color:rgba(0,0,0,0);width:100%}.list-item.interactive{cursor:pointer}.list-item.disabled{opacity:var(--md-list-item-disabled-opacity, 0.3);pointer-events:none}[slot=container]{pointer-events:none}md-ripple{border-radius:inherit}md-item{border-radius:inherit;flex:1;height:100%;color:var(--md-list-item-label-text-color, var(--md-sys-color-on-surface, #1d1b20));font-family:var(--md-list-item-label-text-font, var(--md-sys-typescale-body-large-font, var(--md-ref-typeface-plain, Roboto)));font-size:var(--md-list-item-label-text-size, var(--md-sys-typescale-body-large-size, 1rem));line-height:var(--md-list-item-label-text-line-height, var(--md-sys-typescale-body-large-line-height, 1.5rem));font-weight:var(--md-list-item-label-text-weight, var(--md-sys-typescale-body-large-weight, var(--md-ref-typeface-weight-regular, 400)));min-height:var(--md-list-item-one-line-container-height, 56px);padding-top:var(--md-list-item-top-space, 12px);padding-bottom:var(--md-list-item-bottom-space, 12px);padding-inline-start:var(--md-list-item-leading-space, 16px);padding-inline-end:var(--md-list-item-trailing-space, 16px)}md-item[multiline]{min-height:var(--md-list-item-two-line-container-height, 72px)}[slot=supporting-text]{color:var(--md-list-item-supporting-text-color, var(--md-sys-color-on-surface-variant, #49454f));font-family:var(--md-list-item-supporting-text-font, var(--md-sys-typescale-body-medium-font, var(--md-ref-typeface-plain, Roboto)));font-size:var(--md-list-item-supporting-text-size, var(--md-sys-typescale-body-medium-size, 0.875rem));line-height:var(--md-list-item-supporting-text-line-height, var(--md-sys-typescale-body-medium-line-height, 1.25rem));font-weight:var(--md-list-item-supporting-text-weight, var(--md-sys-typescale-body-medium-weight, var(--md-ref-typeface-weight-regular, 400)))}[slot=trailing-supporting-text]{color:var(--md-list-item-trailing-supporting-text-color, var(--md-sys-color-on-surface-variant, #49454f));font-family:var(--md-list-item-trailing-supporting-text-font, var(--md-sys-typescale-label-small-font, var(--md-ref-typeface-plain, Roboto)));font-size:var(--md-list-item-trailing-supporting-text-size, var(--md-sys-typescale-label-small-size, 0.6875rem));line-height:var(--md-list-item-trailing-supporting-text-line-height, var(--md-sys-typescale-label-small-line-height, 1rem));font-weight:var(--md-list-item-trailing-supporting-text-weight, var(--md-sys-typescale-label-small-weight, var(--md-ref-typeface-weight-medium, 500)))}:is([slot=start],[slot=end])::slotted(*){fill:currentColor}[slot=start]{color:var(--md-list-item-leading-icon-color, var(--md-sys-color-on-surface-variant, #49454f))}[slot=end]{color:var(--md-list-item-trailing-icon-color, var(--md-sys-color-on-surface-variant, #49454f))}@media(forced-colors: active){.disabled slot{color:GrayText}.list-item.disabled{color:GrayText;opacity:1}}/*# sourceMappingURL=list-item-styles.css.map */
@@ -0,0 +1 @@
1
+ {"version":3,"sourceRoot":"","sources":["_list-item.scss","../../../ripple/internal/_ripple.scss","../../../focus/internal/_focus-ring.scss"],"names":[],"mappings":"AAmCE,MAEE,aACA,0CCjBE,kYD6BJ,sDACE,eAGF,cACE,UEhCE,2BFyCJ,YAIE,gBACA,YACA,eACA,UACA,SACA,iBACA,qBAGF,WACE,sBACA,aACA,OACA,kBACA,kBACA,aAEA,0CACA,WAGF,uBACE,eAGF,oBACE,kDACA,oBAGF,iBACE,oBAGF,UACE,sBAGF,QACE,sBACA,OACA,YACA,oFACA,+HACA,6FACA,+GACA,yIACA,+DACA,gDACA,sDACA,6DACA,4DAGF,mBACE,+DAGF,uBACE,iGACA,qIACA,uGACA,sHACA,+IAGF,gCACE,0GACA,8IACA,iHACA,4HACA,uJAGF,yCACE,kBAGF,aACE,8FAGF,WACE,+FAGF,8BACE,eACE,eAGF,oBACE,eACA","file":"list-item-styles.css"}
@@ -1,9 +1,10 @@
1
1
  /**
2
- * @license
3
- * Copyright 2022 Google LLC
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
2
+ * @license
3
+ * Copyright 2024 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ // Generated stylesheet for ./list/internal/listitem/list-item-styles.css.
6
7
  import { css } from 'lit';
7
- export const styles = css `:host{display:flex;-webkit-tap-highlight-color:rgba(0,0,0,0);--md-ripple-hover-color: var(--md-list-item-hover-state-layer-color, var(--md-sys-color-on-surface, #1d1b20));--md-ripple-hover-opacity: var(--md-list-item-hover-state-layer-opacity, 0.08);--md-ripple-pressed-color: var(--md-list-item-pressed-state-layer-color, var(--md-sys-color-on-surface, #1d1b20));--md-ripple-pressed-opacity: var(--md-list-item-pressed-state-layer-opacity, 0.12)}:host(:is([type=button]:not([disabled]),[type=link])){cursor:pointer}md-focus-ring{z-index:1;--md-focus-ring-shape: 8px}a,button,li{background:none;border:none;cursor:inherit;padding:0;margin:0;text-align:unset;text-decoration:none}.list-item{border-radius:inherit;display:flex;flex:1;max-width:inherit;min-width:inherit;outline:none;-webkit-tap-highlight-color:rgba(0,0,0,0);width:100%}.list-item.interactive{cursor:pointer}.list-item.disabled{opacity:var(--md-list-item-disabled-opacity, 0.3);pointer-events:none}[slot=container]{pointer-events:none}md-ripple{border-radius:inherit}md-item{border-radius:inherit;flex:1;height:100%;color:var(--md-list-item-label-text-color, var(--md-sys-color-on-surface, #1d1b20));font-family:var(--md-list-item-label-text-font, var(--md-sys-typescale-body-large-font, var(--md-ref-typeface-plain, Roboto)));font-size:var(--md-list-item-label-text-size, var(--md-sys-typescale-body-large-size, 1rem));line-height:var(--md-list-item-label-text-line-height, var(--md-sys-typescale-body-large-line-height, 1.5rem));font-weight:var(--md-list-item-label-text-weight, var(--md-sys-typescale-body-large-weight, var(--md-ref-typeface-weight-regular, 400)));min-height:var(--md-list-item-one-line-container-height, 56px);padding-top:var(--md-list-item-top-space, 12px);padding-bottom:var(--md-list-item-bottom-space, 12px);padding-inline-start:var(--md-list-item-leading-space, 16px);padding-inline-end:var(--md-list-item-trailing-space, 16px)}md-item[multiline]{min-height:var(--md-list-item-two-line-container-height, 72px)}[slot=supporting-text]{color:var(--md-list-item-supporting-text-color, var(--md-sys-color-on-surface-variant, #49454f));font-family:var(--md-list-item-supporting-text-font, var(--md-sys-typescale-body-medium-font, var(--md-ref-typeface-plain, Roboto)));font-size:var(--md-list-item-supporting-text-size, var(--md-sys-typescale-body-medium-size, 0.875rem));line-height:var(--md-list-item-supporting-text-line-height, var(--md-sys-typescale-body-medium-line-height, 1.25rem));font-weight:var(--md-list-item-supporting-text-weight, var(--md-sys-typescale-body-medium-weight, var(--md-ref-typeface-weight-regular, 400)))}[slot=trailing-supporting-text]{color:var(--md-list-item-trailing-supporting-text-color, var(--md-sys-color-on-surface-variant, #49454f));font-family:var(--md-list-item-trailing-supporting-text-font, var(--md-sys-typescale-label-small-font, var(--md-ref-typeface-plain, Roboto)));font-size:var(--md-list-item-trailing-supporting-text-size, var(--md-sys-typescale-label-small-size, 0.6875rem));line-height:var(--md-list-item-trailing-supporting-text-line-height, var(--md-sys-typescale-label-small-line-height, 1rem));font-weight:var(--md-list-item-trailing-supporting-text-weight, var(--md-sys-typescale-label-small-weight, var(--md-ref-typeface-weight-medium, 500)))}:is([slot=start],[slot=end])::slotted(*){fill:currentColor}[slot=start]{color:var(--md-list-item-leading-icon-color, var(--md-sys-color-on-surface-variant, #49454f))}[slot=end]{color:var(--md-list-item-trailing-icon-color, var(--md-sys-color-on-surface-variant, #49454f))}@media(forced-colors: active){.disabled slot{color:GrayText}.list-item.disabled{color:GrayText;opacity:1}}/*# sourceMappingURL=list-item-styles.css.map */
8
+ export const styles = css `:host{display:flex;-webkit-tap-highlight-color:rgba(0,0,0,0);--md-ripple-hover-color: var(--md-list-item-hover-state-layer-color, var(--md-sys-color-on-surface, #1d1b20));--md-ripple-hover-opacity: var(--md-list-item-hover-state-layer-opacity, 0.08);--md-ripple-pressed-color: var(--md-list-item-pressed-state-layer-color, var(--md-sys-color-on-surface, #1d1b20));--md-ripple-pressed-opacity: var(--md-list-item-pressed-state-layer-opacity, 0.12)}:host(:is([type=button]:not([disabled]),[type=link])){cursor:pointer}md-focus-ring{z-index:1;--md-focus-ring-shape: 8px}a,button,li{background:none;border:none;cursor:inherit;padding:0;margin:0;text-align:unset;text-decoration:none}.list-item{border-radius:inherit;display:flex;flex:1;max-width:inherit;min-width:inherit;outline:none;-webkit-tap-highlight-color:rgba(0,0,0,0);width:100%}.list-item.interactive{cursor:pointer}.list-item.disabled{opacity:var(--md-list-item-disabled-opacity, 0.3);pointer-events:none}[slot=container]{pointer-events:none}md-ripple{border-radius:inherit}md-item{border-radius:inherit;flex:1;height:100%;color:var(--md-list-item-label-text-color, var(--md-sys-color-on-surface, #1d1b20));font-family:var(--md-list-item-label-text-font, var(--md-sys-typescale-body-large-font, var(--md-ref-typeface-plain, Roboto)));font-size:var(--md-list-item-label-text-size, var(--md-sys-typescale-body-large-size, 1rem));line-height:var(--md-list-item-label-text-line-height, var(--md-sys-typescale-body-large-line-height, 1.5rem));font-weight:var(--md-list-item-label-text-weight, var(--md-sys-typescale-body-large-weight, var(--md-ref-typeface-weight-regular, 400)));min-height:var(--md-list-item-one-line-container-height, 56px);padding-top:var(--md-list-item-top-space, 12px);padding-bottom:var(--md-list-item-bottom-space, 12px);padding-inline-start:var(--md-list-item-leading-space, 16px);padding-inline-end:var(--md-list-item-trailing-space, 16px)}md-item[multiline]{min-height:var(--md-list-item-two-line-container-height, 72px)}[slot=supporting-text]{color:var(--md-list-item-supporting-text-color, var(--md-sys-color-on-surface-variant, #49454f));font-family:var(--md-list-item-supporting-text-font, var(--md-sys-typescale-body-medium-font, var(--md-ref-typeface-plain, Roboto)));font-size:var(--md-list-item-supporting-text-size, var(--md-sys-typescale-body-medium-size, 0.875rem));line-height:var(--md-list-item-supporting-text-line-height, var(--md-sys-typescale-body-medium-line-height, 1.25rem));font-weight:var(--md-list-item-supporting-text-weight, var(--md-sys-typescale-body-medium-weight, var(--md-ref-typeface-weight-regular, 400)))}[slot=trailing-supporting-text]{color:var(--md-list-item-trailing-supporting-text-color, var(--md-sys-color-on-surface-variant, #49454f));font-family:var(--md-list-item-trailing-supporting-text-font, var(--md-sys-typescale-label-small-font, var(--md-ref-typeface-plain, Roboto)));font-size:var(--md-list-item-trailing-supporting-text-size, var(--md-sys-typescale-label-small-size, 0.6875rem));line-height:var(--md-list-item-trailing-supporting-text-line-height, var(--md-sys-typescale-label-small-line-height, 1rem));font-weight:var(--md-list-item-trailing-supporting-text-weight, var(--md-sys-typescale-label-small-weight, var(--md-ref-typeface-weight-medium, 500)))}:is([slot=start],[slot=end])::slotted(*){fill:currentColor}[slot=start]{color:var(--md-list-item-leading-icon-color, var(--md-sys-color-on-surface-variant, #49454f))}[slot=end]{color:var(--md-list-item-trailing-icon-color, var(--md-sys-color-on-surface-variant, #49454f))}@media(forced-colors: active){.disabled slot{color:GrayText}.list-item.disabled{color:GrayText;opacity:1}}
8
9
  `;
9
- //# sourceMappingURL=list-item-styles.css.js.map
10
+ //# sourceMappingURL=list-item-styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-item-styles.js","sourceRoot":"","sources":["list-item-styles.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,0EAA0E;AAC1E,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/listitem/list-item-styles.css.\nimport {css} from 'lit';\nexport const styles = css`:host{display:flex;-webkit-tap-highlight-color:rgba(0,0,0,0);--md-ripple-hover-color: var(--md-list-item-hover-state-layer-color, var(--md-sys-color-on-surface, #1d1b20));--md-ripple-hover-opacity: var(--md-list-item-hover-state-layer-opacity, 0.08);--md-ripple-pressed-color: var(--md-list-item-pressed-state-layer-color, var(--md-sys-color-on-surface, #1d1b20));--md-ripple-pressed-opacity: var(--md-list-item-pressed-state-layer-opacity, 0.12)}:host(:is([type=button]:not([disabled]),[type=link])){cursor:pointer}md-focus-ring{z-index:1;--md-focus-ring-shape: 8px}a,button,li{background:none;border:none;cursor:inherit;padding:0;margin:0;text-align:unset;text-decoration:none}.list-item{border-radius:inherit;display:flex;flex:1;max-width:inherit;min-width:inherit;outline:none;-webkit-tap-highlight-color:rgba(0,0,0,0);width:100%}.list-item.interactive{cursor:pointer}.list-item.disabled{opacity:var(--md-list-item-disabled-opacity, 0.3);pointer-events:none}[slot=container]{pointer-events:none}md-ripple{border-radius:inherit}md-item{border-radius:inherit;flex:1;height:100%;color:var(--md-list-item-label-text-color, var(--md-sys-color-on-surface, #1d1b20));font-family:var(--md-list-item-label-text-font, var(--md-sys-typescale-body-large-font, var(--md-ref-typeface-plain, Roboto)));font-size:var(--md-list-item-label-text-size, var(--md-sys-typescale-body-large-size, 1rem));line-height:var(--md-list-item-label-text-line-height, var(--md-sys-typescale-body-large-line-height, 1.5rem));font-weight:var(--md-list-item-label-text-weight, var(--md-sys-typescale-body-large-weight, var(--md-ref-typeface-weight-regular, 400)));min-height:var(--md-list-item-one-line-container-height, 56px);padding-top:var(--md-list-item-top-space, 12px);padding-bottom:var(--md-list-item-bottom-space, 12px);padding-inline-start:var(--md-list-item-leading-space, 16px);padding-inline-end:var(--md-list-item-trailing-space, 16px)}md-item[multiline]{min-height:var(--md-list-item-two-line-container-height, 72px)}[slot=supporting-text]{color:var(--md-list-item-supporting-text-color, var(--md-sys-color-on-surface-variant, #49454f));font-family:var(--md-list-item-supporting-text-font, var(--md-sys-typescale-body-medium-font, var(--md-ref-typeface-plain, Roboto)));font-size:var(--md-list-item-supporting-text-size, var(--md-sys-typescale-body-medium-size, 0.875rem));line-height:var(--md-list-item-supporting-text-line-height, var(--md-sys-typescale-body-medium-line-height, 1.25rem));font-weight:var(--md-list-item-supporting-text-weight, var(--md-sys-typescale-body-medium-weight, var(--md-ref-typeface-weight-regular, 400)))}[slot=trailing-supporting-text]{color:var(--md-list-item-trailing-supporting-text-color, var(--md-sys-color-on-surface-variant, #49454f));font-family:var(--md-list-item-trailing-supporting-text-font, var(--md-sys-typescale-label-small-font, var(--md-ref-typeface-plain, Roboto)));font-size:var(--md-list-item-trailing-supporting-text-size, var(--md-sys-typescale-label-small-size, 0.6875rem));line-height:var(--md-list-item-trailing-supporting-text-line-height, var(--md-sys-typescale-label-small-line-height, 1rem));font-weight:var(--md-list-item-trailing-supporting-text-weight, var(--md-sys-typescale-label-small-weight, var(--md-ref-typeface-weight-medium, 500)))}:is([slot=start],[slot=end])::slotted(*){fill:currentColor}[slot=start]{color:var(--md-list-item-leading-icon-color, var(--md-sys-color-on-surface-variant, #49454f))}[slot=end]{color:var(--md-list-item-trailing-icon-color, var(--md-sys-color-on-surface-variant, #49454f))}@media(forced-colors: active){.disabled slot{color:GrayText}.list-item.disabled{color:GrayText;opacity:1}}\n`;\n"]}
package/list/list-item.js CHANGED
@@ -6,7 +6,7 @@
6
6
  import { __decorate } from "tslib";
7
7
  import { customElement } from 'lit/decorators.js';
8
8
  import { ListItemEl as ListItem } from './internal/listitem/list-item.js';
9
- import { styles } from './internal/listitem/list-item-styles.css.js';
9
+ import { styles } from './internal/listitem/list-item-styles.js';
10
10
  /**
11
11
  * @summary
12
12
  * Lists are continuous, vertical indexes of text or images. Items are placed
@@ -1 +1 @@
1
- {"version":3,"file":"list-item.js","sourceRoot":"","sources":["list-item.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;AAGH,OAAO,EAAC,aAAa,EAAC,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAC,UAAU,IAAI,QAAQ,EAAC,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAC,MAAM,EAAC,MAAM,6CAA6C,CAAC;AAUnE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEI,WAAM,UAAU,GAAhB,MAAM,UAAW,SAAQ,QAAQ;;AACtB,iBAAM,GAAwB,CAAC,MAAM,CAAC,AAAhC,CAAiC;AAD5C,UAAU;IADtB,aAAa,CAAC,cAAc,CAAC;GACjB,UAAU,CAEtB","sourcesContent":["/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {CSSResultOrNative} from 'lit';\nimport {customElement} from 'lit/decorators.js';\n\nimport {ListItemEl as ListItem} from './internal/listitem/list-item.js';\nimport {styles} from './internal/listitem/list-item-styles.css.js';\n\nexport {type ListItemType} from './internal/listitem/list-item.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'md-list-item': MdListItem;\n }\n}\n\n/**\n * @summary\n * Lists are continuous, vertical indexes of text or images. Items are placed\n * inside the list.\n *\n * @description\n * Lists consist of one or more list items, and can contain actions represented\n * by icons and text. List items come in three sizes: one-line, two-line, and\n * three-line.\n *\n * __Takeaways:__\n *\n * - Lists should be sorted in logical ways that make content easy to scan, such\n * as alphabetical, numerical, chronological, or by user preference.\n * - Lists present content in a way that makes it easy to identify a specific\n * item in a collection and act on it.\n * - Lists should present icons, text, and actions in a consistent format.\n *\n * Acceptable slot child variants are:\n *\n * - `img[slot=end]`\n * - `img[slot=start]`\n *\n * @example\n * ```html\n * <md-list-item\n * headline=\"User Name\"\n * supportingText=\"user@name.com\">\n * <md-icon slot=\"start\">account_circle</md-icon>\n * <md-icon slot=\"end\">check</md-icon>\n * </md-list-item>\n * ```\n *\n * @example\n *\n * @final\n * @suppress {visibility}\n */\n@customElement('md-list-item')\nexport class MdListItem extends ListItem {\n static override styles: CSSResultOrNative[] = [styles];\n}\n"]}
1
+ {"version":3,"file":"list-item.js","sourceRoot":"","sources":["list-item.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;AAGH,OAAO,EAAC,aAAa,EAAC,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAC,UAAU,IAAI,QAAQ,EAAC,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAC,MAAM,EAAC,MAAM,yCAAyC,CAAC;AAU/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEI,WAAM,UAAU,GAAhB,MAAM,UAAW,SAAQ,QAAQ;;AACtB,iBAAM,GAAwB,CAAC,MAAM,CAAC,AAAhC,CAAiC;AAD5C,UAAU;IADtB,aAAa,CAAC,cAAc,CAAC;GACjB,UAAU,CAEtB","sourcesContent":["/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {CSSResultOrNative} from 'lit';\nimport {customElement} from 'lit/decorators.js';\n\nimport {ListItemEl as ListItem} from './internal/listitem/list-item.js';\nimport {styles} from './internal/listitem/list-item-styles.js';\n\nexport {type ListItemType} from './internal/listitem/list-item.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'md-list-item': MdListItem;\n }\n}\n\n/**\n * @summary\n * Lists are continuous, vertical indexes of text or images. Items are placed\n * inside the list.\n *\n * @description\n * Lists consist of one or more list items, and can contain actions represented\n * by icons and text. List items come in three sizes: one-line, two-line, and\n * three-line.\n *\n * __Takeaways:__\n *\n * - Lists should be sorted in logical ways that make content easy to scan, such\n * as alphabetical, numerical, chronological, or by user preference.\n * - Lists present content in a way that makes it easy to identify a specific\n * item in a collection and act on it.\n * - Lists should present icons, text, and actions in a consistent format.\n *\n * Acceptable slot child variants are:\n *\n * - `img[slot=end]`\n * - `img[slot=start]`\n *\n * @example\n * ```html\n * <md-list-item\n * headline=\"User Name\"\n * supportingText=\"user@name.com\">\n * <md-icon slot=\"start\">account_circle</md-icon>\n * <md-icon slot=\"end\">check</md-icon>\n * </md-list-item>\n * ```\n *\n * @example\n *\n * @final\n * @suppress {visibility}\n */\n@customElement('md-list-item')\nexport class MdListItem extends ListItem {\n static override styles: CSSResultOrNative[] = [styles];\n}\n"]}
package/list/list.js CHANGED
@@ -6,7 +6,7 @@
6
6
  import { __decorate } from "tslib";
7
7
  import { customElement } from 'lit/decorators.js';
8
8
  import { List } from './internal/list.js';
9
- import { styles } from './internal/list-styles.css.js';
9
+ import { styles } from './internal/list-styles.js';
10
10
  /**
11
11
  * @summary Lists are continuous, vertical indexes of text or images.
12
12
  *
package/list/list.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"list.js","sourceRoot":"","sources":["list.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;AAGH,OAAO,EAAC,aAAa,EAAC,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAC,IAAI,EAAC,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAC,MAAM,EAAC,MAAM,+BAA+B,CAAC;AAQrD;;;;;;;;;;;;;;;;;;GAkBG;AAEI,WAAM,MAAM,GAAZ,MAAM,MAAO,SAAQ,IAAI;;AACd,aAAM,GAAwB,CAAC,MAAM,CAAC,AAAhC,CAAiC;AAD5C,MAAM;IADlB,aAAa,CAAC,SAAS,CAAC;GACZ,MAAM,CAElB","sourcesContent":["/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {CSSResultOrNative} from 'lit';\nimport {customElement} from 'lit/decorators.js';\n\nimport {List} from './internal/list.js';\nimport {styles} from './internal/list-styles.css.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'md-list': MdList;\n }\n}\n\n/**\n * @summary Lists are continuous, vertical indexes of text or images.\n *\n * @description\n * Lists consist of one or more list items, and can contain actions represented\n * by icons and text. List items come in three sizes: one-line, two-line, and\n * three-line.\n *\n * __Takeaways:__\n *\n * - Lists should be sorted in logical ways that make content easy to scan, such\n * as alphabetical, numerical, chronological, or by user preference.\n * - Lists present content in a way that makes it easy to identify a specific\n * item in a collection and act on it.\n * - Lists should present icons, text, and actions in a consistent format.\n *\n * @final\n * @suppress {visibility}\n */\n@customElement('md-list')\nexport class MdList extends List {\n static override styles: CSSResultOrNative[] = [styles];\n}\n"]}
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["list.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;AAGH,OAAO,EAAC,aAAa,EAAC,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAC,IAAI,EAAC,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAC,MAAM,EAAC,MAAM,2BAA2B,CAAC;AAQjD;;;;;;;;;;;;;;;;;;GAkBG;AAEI,WAAM,MAAM,GAAZ,MAAM,MAAO,SAAQ,IAAI;;AACd,aAAM,GAAwB,CAAC,MAAM,CAAC,AAAhC,CAAiC;AAD5C,MAAM;IADlB,aAAa,CAAC,SAAS,CAAC;GACZ,MAAM,CAElB","sourcesContent":["/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {CSSResultOrNative} from 'lit';\nimport {customElement} from 'lit/decorators.js';\n\nimport {List} from './internal/list.js';\nimport {styles} from './internal/list-styles.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'md-list': MdList;\n }\n}\n\n/**\n * @summary Lists are continuous, vertical indexes of text or images.\n *\n * @description\n * Lists consist of one or more list items, and can contain actions represented\n * by icons and text. List items come in three sizes: one-line, two-line, and\n * three-line.\n *\n * __Takeaways:__\n *\n * - Lists should be sorted in logical ways that make content easy to scan, such\n * as alphabetical, numerical, chronological, or by user preference.\n * - Lists present content in a way that makes it easy to identify a specific\n * item in a collection and act on it.\n * - Lists should present icons, text, and actions in a consistent format.\n *\n * @final\n * @suppress {visibility}\n */\n@customElement('md-list')\nexport class MdList extends List {\n static override styles: CSSResultOrNative[] = [styles];\n}\n"]}
@@ -0,0 +1 @@
1
+ :host{--md-elevation-level: var(--md-menu-container-elevation, 2);--md-elevation-shadow-color: var(--md-menu-container-shadow-color, var(--md-sys-color-shadow, #000));min-width:112px;color:unset;display:contents}md-focus-ring{--md-focus-ring-shape: var(--md-menu-container-shape, var(--md-sys-shape-corner-extra-small, 4px))}.menu{border-radius:var(--md-menu-container-shape, var(--md-sys-shape-corner-extra-small, 4px));display:none;inset:auto;border:none;padding:0px;overflow:visible;background-color:rgba(0,0,0,0);color:inherit;opacity:0;z-index:20;position:absolute;user-select:none;max-height:inherit;height:inherit;min-width:inherit;max-width:inherit}.menu::backdrop{display:none}.fixed{position:fixed}.items{display:block;list-style-type:none;margin:0;outline:none;box-sizing:border-box;background-color:var(--md-menu-container-color, var(--md-sys-color-surface-container, #f3edf7));height:inherit;max-height:inherit;overflow:auto;min-width:inherit;max-width:inherit;border-radius:inherit}.item-padding{padding-block:8px}.has-overflow:not([popover]) .items{overflow:visible}.has-overflow.animating .items,.animating .items{overflow:hidden}.has-overflow.animating .items{pointer-events:none}.animating ::slotted(.md-menu-hidden){opacity:0}slot{display:block;height:inherit;max-height:inherit}::slotted(:is(md-divider,[role=separator])){margin:8px 0}@media(forced-colors: active){.menu{border-style:solid;border-color:CanvasText;border-width:1px}}/*# sourceMappingURL=menu-styles.css.map */
@@ -0,0 +1 @@
1
+ {"version":3,"sourceRoot":"","sources":["_menu.scss","../../elevation/internal/_elevation.scss","../../focus/internal/_focus-ring.scss"],"names":[],"mappings":"AAqCE,MCfI,iKDuBF,gBACA,YACA,iBAGF,cE3BI,mGFmCJ,MACE,0FACA,aACA,WACA,YACA,YACA,iBAEA,+BACA,cACA,UACA,WACA,kBACA,iBACA,mBACA,eACA,kBACA,kBAGF,gBACE,aAGF,OACE,eAGF,OACE,cACA,qBACA,SACA,aACA,sBACA,gGACA,eACA,mBACA,cACA,kBACA,kBACA,sBAGF,cACE,kBAGF,oCACE,iBAGF,iDAEE,gBAGF,+BAIE,oBAGF,sCACE,UAGF,KACE,cACA,eACA,mBAGF,4CACE,aAGF,8BACE,MACE,mBACA,wBACA","file":"menu-styles.css"}
@@ -1,9 +1,10 @@
1
1
  /**
2
- * @license
3
- * Copyright 2022 Google LLC
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
2
+ * @license
3
+ * Copyright 2024 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ // Generated stylesheet for ./menu/internal/menu-styles.css.
6
7
  import { css } from 'lit';
7
- export const styles = css `:host{--md-elevation-level: var(--md-menu-container-elevation, 2);--md-elevation-shadow-color: var(--md-menu-container-shadow-color, var(--md-sys-color-shadow, #000));min-width:112px;color:unset;display:contents}md-focus-ring{--md-focus-ring-shape: var(--md-menu-container-shape, var(--md-sys-shape-corner-extra-small, 4px))}.menu{border-radius:var(--md-menu-container-shape, var(--md-sys-shape-corner-extra-small, 4px));display:none;inset:auto;border:none;padding:0px;overflow:visible;background-color:rgba(0,0,0,0);color:inherit;opacity:0;z-index:20;position:absolute;user-select:none;max-height:inherit;height:inherit;min-width:inherit;max-width:inherit}.menu::backdrop{display:none}.fixed{position:fixed}.items{display:block;list-style-type:none;margin:0;outline:none;box-sizing:border-box;background-color:var(--md-menu-container-color, var(--md-sys-color-surface-container, #f3edf7));height:inherit;max-height:inherit;overflow:auto;min-width:inherit;max-width:inherit;border-radius:inherit}.item-padding{padding-block:8px}.has-overflow:not([popover]) .items{overflow:visible}.has-overflow.animating .items,.animating .items{overflow:hidden}.has-overflow.animating .items{pointer-events:none}.animating ::slotted(.md-menu-hidden){opacity:0}slot{display:block;height:inherit;max-height:inherit}::slotted(:is(md-divider,[role=separator])){margin:8px 0}@media(forced-colors: active){.menu{border-style:solid;border-color:CanvasText;border-width:1px}}/*# sourceMappingURL=menu-styles.css.map */
8
+ export const styles = css `:host{--md-elevation-level: var(--md-menu-container-elevation, 2);--md-elevation-shadow-color: var(--md-menu-container-shadow-color, var(--md-sys-color-shadow, #000));min-width:112px;color:unset;display:contents}md-focus-ring{--md-focus-ring-shape: var(--md-menu-container-shape, var(--md-sys-shape-corner-extra-small, 4px))}.menu{border-radius:var(--md-menu-container-shape, var(--md-sys-shape-corner-extra-small, 4px));display:none;inset:auto;border:none;padding:0px;overflow:visible;background-color:rgba(0,0,0,0);color:inherit;opacity:0;z-index:20;position:absolute;user-select:none;max-height:inherit;height:inherit;min-width:inherit;max-width:inherit}.menu::backdrop{display:none}.fixed{position:fixed}.items{display:block;list-style-type:none;margin:0;outline:none;box-sizing:border-box;background-color:var(--md-menu-container-color, var(--md-sys-color-surface-container, #f3edf7));height:inherit;max-height:inherit;overflow:auto;min-width:inherit;max-width:inherit;border-radius:inherit}.item-padding{padding-block:8px}.has-overflow:not([popover]) .items{overflow:visible}.has-overflow.animating .items,.animating .items{overflow:hidden}.has-overflow.animating .items{pointer-events:none}.animating ::slotted(.md-menu-hidden){opacity:0}slot{display:block;height:inherit;max-height:inherit}::slotted(:is(md-divider,[role=separator])){margin:8px 0}@media(forced-colors: active){.menu{border-style:solid;border-color:CanvasText;border-width:1px}}
8
9
  `;
9
- //# sourceMappingURL=menu-styles.css.js.map
10
+ //# sourceMappingURL=menu-styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"menu-styles.js","sourceRoot":"","sources":["menu-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 ./menu/internal/menu-styles.css.\nimport {css} from 'lit';\nexport const styles = css`:host{--md-elevation-level: var(--md-menu-container-elevation, 2);--md-elevation-shadow-color: var(--md-menu-container-shadow-color, var(--md-sys-color-shadow, #000));min-width:112px;color:unset;display:contents}md-focus-ring{--md-focus-ring-shape: var(--md-menu-container-shape, var(--md-sys-shape-corner-extra-small, 4px))}.menu{border-radius:var(--md-menu-container-shape, var(--md-sys-shape-corner-extra-small, 4px));display:none;inset:auto;border:none;padding:0px;overflow:visible;background-color:rgba(0,0,0,0);color:inherit;opacity:0;z-index:20;position:absolute;user-select:none;max-height:inherit;height:inherit;min-width:inherit;max-width:inherit}.menu::backdrop{display:none}.fixed{position:fixed}.items{display:block;list-style-type:none;margin:0;outline:none;box-sizing:border-box;background-color:var(--md-menu-container-color, var(--md-sys-color-surface-container, #f3edf7));height:inherit;max-height:inherit;overflow:auto;min-width:inherit;max-width:inherit;border-radius:inherit}.item-padding{padding-block:8px}.has-overflow:not([popover]) .items{overflow:visible}.has-overflow.animating .items,.animating .items{overflow:hidden}.has-overflow.animating .items{pointer-events:none}.animating ::slotted(.md-menu-hidden){opacity:0}slot{display:block;height:inherit;max-height:inherit}::slotted(:is(md-divider,[role=separator])){margin:8px 0}@media(forced-colors: active){.menu{border-style:solid;border-color:CanvasText;border-width:1px}}\n`;\n"]}
@@ -153,6 +153,12 @@ export declare abstract class Menu extends LitElement {
153
153
  * `display: contents` when necessary.
154
154
  */
155
155
  defaultFocus: FocusState;
156
+ /**
157
+ * Turns off navigation wrapping. By default, navigating past the end of the
158
+ * menu items will wrap focus back to the beginning and vice versa. Use this
159
+ * for ARIA patterns that do not wrap focus, like combobox.
160
+ */
161
+ noNavigationWrap: boolean;
156
162
  protected slotItems: HTMLElement[];
157
163
  private typeaheadActive;
158
164
  /**
@@ -209,6 +209,12 @@ export class Menu extends LitElement {
209
209
  * `display: contents` when necessary.
210
210
  */
211
211
  this.defaultFocus = FocusState.FIRST_ITEM;
212
+ /**
213
+ * Turns off navigation wrapping. By default, navigating past the end of the
214
+ * menu items will wrap focus back to the beginning and vice versa. Use this
215
+ * for ARIA patterns that do not wrap focus, like combobox.
216
+ */
217
+ this.noNavigationWrap = false;
212
218
  this.typeaheadActive = true;
213
219
  /**
214
220
  * Whether or not the current menu is a submenu and should not handle specific
@@ -257,6 +263,7 @@ export class Menu extends LitElement {
257
263
  }
258
264
  return submenuNavKeys.has(key);
259
265
  },
266
+ wrapNavigation: () => !this.noNavigationWrap,
260
267
  });
261
268
  /**
262
269
  * The element that was focused before the menu opened.
@@ -865,6 +872,9 @@ __decorate([
865
872
  __decorate([
866
873
  property({ attribute: 'default-focus' })
867
874
  ], Menu.prototype, "defaultFocus", void 0);
875
+ __decorate([
876
+ property({ type: Boolean, attribute: 'no-navigation-wrap' })
877
+ ], Menu.prototype, "noNavigationWrap", void 0);
868
878
  __decorate([
869
879
  queryAssignedElements({ flatten: true })
870
880
  ], Menu.prototype, "slotItems", void 0);