@material/web 2.4.2-nightly.a589695.0 → 2.4.2-nightly.b4af72e.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 (605) 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/_touch-target.scss +1 -1
  8. package/button/internal/button.d.ts +0 -4
  9. package/button/internal/button.js.map +1 -1
  10. package/button/internal/shared-styles.css +1 -1
  11. package/button/internal/shared-styles.css.map +1 -1
  12. package/button/internal/shared-styles.cssresult.js +1 -1
  13. package/button/internal/shared-styles.cssresult.js.map +1 -1
  14. package/button/outlined-button.js +2 -2
  15. package/button/outlined-button.js.map +1 -1
  16. package/button/text-button.js +2 -2
  17. package/button/text-button.js.map +1 -1
  18. package/checkbox/checkbox.js +1 -1
  19. package/checkbox/checkbox.js.map +1 -1
  20. package/checkbox/internal/checkbox.d.ts +2 -2
  21. package/checkbox/internal/checkbox.js.map +1 -1
  22. package/chips/assist-chip.js +8 -4
  23. package/chips/assist-chip.js.map +1 -1
  24. package/chips/chip-set.js +1 -1
  25. package/chips/chip-set.js.map +1 -1
  26. package/chips/filter-chip.js +5 -5
  27. package/chips/filter-chip.js.map +1 -1
  28. package/chips/input-chip.js +4 -4
  29. package/chips/input-chip.js.map +1 -1
  30. package/chips/internal/chip.d.ts +2 -0
  31. package/chips/suggestion-chip.js +8 -4
  32. package/chips/suggestion-chip.js.map +1 -1
  33. package/custom-elements.json +45050 -0
  34. package/dialog/dialog.js +1 -1
  35. package/dialog/dialog.js.map +1 -1
  36. package/divider/divider.js +1 -1
  37. package/divider/divider.js.map +1 -1
  38. package/elevation/elevation.js +1 -1
  39. package/elevation/elevation.js.map +1 -1
  40. package/fab/branded-fab.js +3 -3
  41. package/fab/branded-fab.js.map +1 -1
  42. package/fab/fab.js +8 -4
  43. package/fab/fab.js.map +1 -1
  44. package/field/filled-field.js +2 -2
  45. package/field/filled-field.js.map +1 -1
  46. package/field/outlined-field.js +2 -2
  47. package/field/outlined-field.js.map +1 -1
  48. package/focus/md-focus-ring.js +1 -1
  49. package/focus/md-focus-ring.js.map +1 -1
  50. package/icon/icon.js +1 -1
  51. package/icon/icon.js.map +1 -1
  52. package/icon/internal/icon.d.ts +1 -1
  53. package/icon/internal/icon.js +1 -1
  54. package/icon/internal/icon.js.map +1 -1
  55. package/iconbutton/filled-icon-button.js +2 -2
  56. package/iconbutton/filled-icon-button.js.map +1 -1
  57. package/iconbutton/filled-tonal-icon-button.js +2 -2
  58. package/iconbutton/filled-tonal-icon-button.js.map +1 -1
  59. package/iconbutton/icon-button.js +2 -2
  60. package/iconbutton/icon-button.js.map +1 -1
  61. package/iconbutton/internal/icon-button.d.ts +0 -4
  62. package/iconbutton/internal/icon-button.js.map +1 -1
  63. package/iconbutton/outlined-icon-button.js +2 -2
  64. package/iconbutton/outlined-icon-button.js.map +1 -1
  65. package/internal/aria/aria.d.ts +1 -1
  66. package/internal/events/dispatch-hooks.js +31 -35
  67. package/internal/events/dispatch-hooks.js.map +1 -1
  68. package/labs/badge/badge.js +1 -1
  69. package/labs/badge/badge.js.map +1 -1
  70. package/labs/behaviors/form-associated.d.ts +0 -22
  71. package/labs/behaviors/form-associated.js +0 -11
  72. package/labs/behaviors/form-associated.js.map +1 -1
  73. package/labs/card/elevated-card.js +2 -2
  74. package/labs/card/elevated-card.js.map +1 -1
  75. package/labs/card/filled-card.js +2 -2
  76. package/labs/card/filled-card.js.map +1 -1
  77. package/labs/card/outlined-card.js +2 -2
  78. package/labs/card/outlined-card.js.map +1 -1
  79. package/labs/gb/components/badge/_badge-tokens.scss +18 -0
  80. package/labs/gb/components/badge/badge.css +4 -0
  81. package/labs/gb/components/badge/badge.css.map +1 -0
  82. package/labs/gb/components/badge/badge.cssresult.js +14 -0
  83. package/labs/gb/components/badge/badge.cssresult.js.map +1 -0
  84. package/labs/gb/components/badge/badge.d.ts +32 -0
  85. package/labs/gb/components/badge/badge.js +35 -0
  86. package/labs/gb/components/badge/badge.js.map +1 -0
  87. package/labs/gb/components/badge/badge.scss +49 -0
  88. package/labs/gb/components/badge/md-badge.d.ts +21 -0
  89. package/labs/gb/components/badge/md-badge.js +53 -0
  90. package/labs/gb/components/badge/md-badge.js.map +1 -0
  91. package/labs/gb/components/button/_button-tokens.scss +194 -0
  92. package/labs/gb/components/button/button.css +4 -0
  93. package/labs/gb/components/button/button.css.map +1 -0
  94. package/labs/gb/components/button/button.cssresult.js +14 -0
  95. package/labs/gb/components/button/button.cssresult.js.map +1 -0
  96. package/labs/gb/components/button/button.d.ts +85 -0
  97. package/labs/gb/components/button/button.js +119 -0
  98. package/labs/gb/components/button/button.js.map +1 -0
  99. package/labs/gb/components/button/button.scss +132 -0
  100. package/labs/gb/components/button/md-button.d.ts +104 -0
  101. package/labs/gb/components/button/md-button.js +283 -0
  102. package/labs/gb/components/button/md-button.js.map +1 -0
  103. package/labs/gb/components/card/_card-tokens.scss +56 -0
  104. package/labs/gb/components/card/card.css +4 -0
  105. package/labs/gb/components/card/card.css.map +1 -0
  106. package/labs/gb/components/card/card.cssresult.js +14 -0
  107. package/labs/gb/components/card/card.cssresult.js.map +1 -0
  108. package/labs/gb/components/card/card.d.ts +57 -0
  109. package/labs/gb/components/card/card.js +58 -0
  110. package/labs/gb/components/card/card.js.map +1 -0
  111. package/labs/gb/components/card/card.scss +74 -0
  112. package/labs/gb/components/card/md-card.d.ts +49 -0
  113. package/labs/gb/components/card/md-card.js +173 -0
  114. package/labs/gb/components/card/md-card.js.map +1 -0
  115. package/labs/gb/components/checkbox/_checkbox-tokens.scss +66 -0
  116. package/labs/gb/components/checkbox/checkbox.css +4 -0
  117. package/labs/gb/components/checkbox/checkbox.css.map +1 -0
  118. package/labs/gb/components/checkbox/checkbox.cssresult.js +14 -0
  119. package/labs/gb/components/checkbox/checkbox.cssresult.js.map +1 -0
  120. package/labs/gb/components/checkbox/checkbox.d.ts +59 -0
  121. package/labs/gb/components/checkbox/checkbox.js +62 -0
  122. package/labs/gb/components/checkbox/checkbox.js.map +1 -0
  123. package/labs/gb/components/checkbox/checkbox.scss +105 -0
  124. package/labs/gb/components/checkbox/md-checkbox.d.ts +90 -0
  125. package/labs/gb/components/checkbox/md-checkbox.js +188 -0
  126. package/labs/gb/components/checkbox/md-checkbox.js.map +1 -0
  127. package/labs/gb/components/divider/_divider-tokens.scss +11 -0
  128. package/labs/gb/components/divider/divider.css +4 -0
  129. package/labs/gb/components/divider/divider.css.map +1 -0
  130. package/labs/gb/components/divider/divider.cssresult.js +14 -0
  131. package/labs/gb/components/divider/divider.cssresult.js.map +1 -0
  132. package/labs/gb/components/divider/divider.d.ts +44 -0
  133. package/labs/gb/components/divider/divider.js +47 -0
  134. package/labs/gb/components/divider/divider.js.map +1 -0
  135. package/labs/gb/components/divider/divider.scss +31 -0
  136. package/labs/gb/components/divider/md-divider.d.ts +27 -0
  137. package/labs/gb/components/divider/md-divider.js +55 -0
  138. package/labs/gb/components/divider/md-divider.js.map +1 -0
  139. package/labs/gb/components/fab/_fab-tokens.scss +86 -0
  140. package/labs/gb/components/fab/fab.css +4 -0
  141. package/labs/gb/components/fab/fab.css.map +1 -0
  142. package/labs/gb/components/fab/fab.cssresult.js +14 -0
  143. package/labs/gb/components/fab/fab.cssresult.js.map +1 -0
  144. package/labs/gb/components/fab/fab.d.ts +84 -0
  145. package/labs/gb/components/fab/fab.js +92 -0
  146. package/labs/gb/components/fab/fab.js.map +1 -0
  147. package/labs/gb/components/fab/fab.scss +77 -0
  148. package/labs/gb/components/fab/md-fab.d.ts +37 -0
  149. package/labs/gb/components/fab/md-fab.js +71 -0
  150. package/labs/gb/components/fab/md-fab.js.map +1 -0
  151. package/labs/gb/components/focus/focus-ring.css +4 -0
  152. package/labs/gb/components/focus/focus-ring.css.map +1 -0
  153. package/labs/gb/components/focus/focus-ring.cssresult.js +14 -0
  154. package/labs/gb/components/focus/focus-ring.cssresult.js.map +1 -0
  155. package/labs/gb/components/focus/focus-ring.d.ts +36 -0
  156. package/labs/gb/components/focus/focus-ring.js +34 -0
  157. package/labs/gb/components/focus/focus-ring.js.map +1 -0
  158. package/labs/gb/components/focus/focus-ring.scss +91 -0
  159. package/labs/gb/components/iconbutton/_icon-button-tokens.scss +204 -0
  160. package/labs/gb/components/iconbutton/icon-button.css +4 -0
  161. package/labs/gb/components/iconbutton/icon-button.css.map +1 -0
  162. package/labs/gb/components/iconbutton/icon-button.cssresult.js +14 -0
  163. package/labs/gb/components/iconbutton/icon-button.cssresult.js.map +1 -0
  164. package/labs/gb/components/iconbutton/icon-button.d.ts +97 -0
  165. package/labs/gb/components/iconbutton/icon-button.js +122 -0
  166. package/labs/gb/components/iconbutton/icon-button.js.map +1 -0
  167. package/labs/gb/components/iconbutton/icon-button.scss +153 -0
  168. package/labs/gb/components/iconbutton/md-icon-button.d.ts +87 -0
  169. package/labs/gb/components/iconbutton/md-icon-button.js +190 -0
  170. package/labs/gb/components/iconbutton/md-icon-button.js.map +1 -0
  171. package/labs/gb/components/list/_list-tokens.scss +106 -0
  172. package/labs/gb/components/list/list.css +4 -0
  173. package/labs/gb/components/list/list.css.map +1 -0
  174. package/labs/gb/components/list/list.cssresult.js +14 -0
  175. package/labs/gb/components/list/list.cssresult.js.map +1 -0
  176. package/labs/gb/components/list/list.d.ts +103 -0
  177. package/labs/gb/components/list/list.js +109 -0
  178. package/labs/gb/components/list/list.js.map +1 -0
  179. package/labs/gb/components/list/list.scss +212 -0
  180. package/labs/gb/components/list/md-list-item.d.ts +83 -0
  181. package/labs/gb/components/list/md-list-item.js +161 -0
  182. package/labs/gb/components/list/md-list-item.js.map +1 -0
  183. package/labs/gb/components/list/md-list.d.ts +31 -0
  184. package/labs/gb/components/list/md-list.js +56 -0
  185. package/labs/gb/components/list/md-list.js.map +1 -0
  186. package/labs/gb/components/menu/_menu-tokens.scss +132 -0
  187. package/labs/gb/components/menu/md-menu-group.d.ts +28 -0
  188. package/labs/gb/components/menu/md-menu-group.js +69 -0
  189. package/labs/gb/components/menu/md-menu-group.js.map +1 -0
  190. package/labs/gb/components/menu/md-menu-item.d.ts +61 -0
  191. package/labs/gb/components/menu/md-menu-item.js +197 -0
  192. package/labs/gb/components/menu/md-menu-item.js.map +1 -0
  193. package/labs/gb/components/menu/md-menu.d.ts +38 -0
  194. package/labs/gb/components/menu/md-menu.js +151 -0
  195. package/labs/gb/components/menu/md-menu.js.map +1 -0
  196. package/labs/gb/components/menu/menu.css +4 -0
  197. package/labs/gb/components/menu/menu.css.map +1 -0
  198. package/labs/gb/components/menu/menu.cssresult.js +14 -0
  199. package/labs/gb/components/menu/menu.cssresult.js.map +1 -0
  200. package/labs/gb/components/menu/menu.d.ts +117 -0
  201. package/labs/gb/components/menu/menu.js +107 -0
  202. package/labs/gb/components/menu/menu.js.map +1 -0
  203. package/labs/gb/components/menu/menu.scss +171 -0
  204. package/labs/gb/components/radio/_radio-tokens.scss +39 -0
  205. package/labs/gb/components/radio/md-radio.d.ts +71 -0
  206. package/labs/gb/components/radio/md-radio.js +195 -0
  207. package/labs/gb/components/radio/md-radio.js.map +1 -0
  208. package/labs/gb/components/radio/radio.css +4 -0
  209. package/labs/gb/components/radio/radio.css.map +1 -0
  210. package/labs/gb/components/radio/radio.cssresult.js +14 -0
  211. package/labs/gb/components/radio/radio.cssresult.js.map +1 -0
  212. package/labs/gb/components/radio/radio.d.ts +57 -0
  213. package/labs/gb/components/radio/radio.js +62 -0
  214. package/labs/gb/components/radio/radio.js.map +1 -0
  215. package/labs/gb/components/radio/radio.scss +74 -0
  216. package/labs/gb/components/ripple/ripple.css +4 -0
  217. package/labs/gb/components/ripple/ripple.css.map +1 -0
  218. package/labs/gb/components/ripple/ripple.cssresult.js +14 -0
  219. package/labs/gb/components/ripple/ripple.cssresult.js.map +1 -0
  220. package/labs/gb/components/ripple/ripple.d.ts +77 -0
  221. package/labs/gb/components/ripple/ripple.js +148 -0
  222. package/labs/gb/components/ripple/ripple.js.map +1 -0
  223. package/labs/gb/components/ripple/ripple.scss +103 -0
  224. package/labs/gb/components/shared/directives.d.ts +93 -0
  225. package/labs/gb/components/shared/directives.js +111 -0
  226. package/labs/gb/components/shared/directives.js.map +1 -0
  227. package/labs/gb/components/shared/has-slotted.d.ts +10 -0
  228. package/labs/gb/components/shared/has-slotted.js +19 -0
  229. package/labs/gb/components/shared/has-slotted.js.map +1 -0
  230. package/labs/gb/components/shared/pseudo-classes.d.ts +33 -0
  231. package/labs/gb/components/shared/pseudo-classes.js +36 -0
  232. package/labs/gb/components/shared/pseudo-classes.js.map +1 -0
  233. package/labs/gb/components/splitbutton/_split-button-tokens.scss +139 -0
  234. package/labs/gb/components/splitbutton/md-split-button.d.ts +39 -0
  235. package/labs/gb/components/splitbutton/md-split-button.js +132 -0
  236. package/labs/gb/components/splitbutton/md-split-button.js.map +1 -0
  237. package/labs/gb/components/splitbutton/split-button.css +4 -0
  238. package/labs/gb/components/splitbutton/split-button.css.map +1 -0
  239. package/labs/gb/components/splitbutton/split-button.cssresult.js +14 -0
  240. package/labs/gb/components/splitbutton/split-button.cssresult.js.map +1 -0
  241. package/labs/gb/components/splitbutton/split-button.d.ts +47 -0
  242. package/labs/gb/components/splitbutton/split-button.js +46 -0
  243. package/labs/gb/components/splitbutton/split-button.js.map +1 -0
  244. package/labs/gb/components/splitbutton/split-button.scss +164 -0
  245. package/labs/gb/components/switch/_switch-tokens.scss +58 -0
  246. package/labs/gb/components/switch/md-switch.d.ts +84 -0
  247. package/labs/gb/components/switch/md-switch.js +180 -0
  248. package/labs/gb/components/switch/md-switch.js.map +1 -0
  249. package/labs/gb/components/switch/switch.css +4 -0
  250. package/labs/gb/components/switch/switch.css.map +1 -0
  251. package/labs/gb/components/switch/switch.cssresult.js +14 -0
  252. package/labs/gb/components/switch/switch.cssresult.js.map +1 -0
  253. package/labs/gb/components/switch/switch.d.ts +54 -0
  254. package/labs/gb/components/switch/switch.js +85 -0
  255. package/labs/gb/components/switch/switch.js.map +1 -0
  256. package/labs/gb/components/switch/switch.scss +109 -0
  257. package/labs/gb/styles/adopt-styles.d.ts +41 -0
  258. package/labs/gb/styles/adopt-styles.js +62 -0
  259. package/labs/gb/styles/adopt-styles.js.map +1 -0
  260. package/labs/gb/styles/color/internal/_color-tokens.scss +95 -0
  261. package/labs/gb/styles/color/md-color-tokens-full.css +4 -0
  262. package/labs/gb/styles/color/md-color-tokens-full.css.map +1 -0
  263. package/labs/gb/styles/color/md-color-tokens-full.cssresult.js +14 -0
  264. package/labs/gb/styles/color/md-color-tokens-full.cssresult.js.map +1 -0
  265. package/labs/gb/styles/color/md-color-tokens-full.scss +17 -0
  266. package/labs/gb/styles/color/md-color-tokens.css +4 -0
  267. package/labs/gb/styles/color/md-color-tokens.css.map +1 -0
  268. package/labs/gb/styles/color/md-color-tokens.cssresult.js +14 -0
  269. package/labs/gb/styles/color/md-color-tokens.cssresult.js.map +1 -0
  270. package/labs/gb/styles/color/md-color-tokens.scss +15 -0
  271. package/labs/gb/styles/elevation/md-elevation-tokens.css +4 -0
  272. package/labs/gb/styles/elevation/md-elevation-tokens.css.map +1 -0
  273. package/labs/gb/styles/elevation/md-elevation-tokens.cssresult.js +14 -0
  274. package/labs/gb/styles/elevation/md-elevation-tokens.cssresult.js.map +1 -0
  275. package/labs/gb/styles/elevation/md-elevation-tokens.scss +25 -0
  276. package/labs/gb/styles/icon/md-icon.css +4 -0
  277. package/labs/gb/styles/icon/md-icon.css.map +1 -0
  278. package/labs/gb/styles/icon/md-icon.cssresult.js +14 -0
  279. package/labs/gb/styles/icon/md-icon.cssresult.js.map +1 -0
  280. package/labs/gb/styles/icon/md-icon.d.ts +20 -0
  281. package/labs/gb/styles/icon/md-icon.js +27 -0
  282. package/labs/gb/styles/icon/md-icon.js.map +1 -0
  283. package/labs/gb/styles/icon/md-icon.scss +63 -0
  284. package/labs/gb/styles/m3.css +25 -0
  285. package/labs/gb/styles/m3.css.map +1 -0
  286. package/labs/gb/styles/m3.cssresult.js +35 -0
  287. package/labs/gb/styles/m3.cssresult.js.map +1 -0
  288. package/labs/gb/styles/m3.scss +14 -0
  289. package/labs/gb/styles/motion/md-motion-tokens-easing.css +4 -0
  290. package/labs/gb/styles/motion/md-motion-tokens-easing.css.map +1 -0
  291. package/labs/gb/styles/motion/md-motion-tokens-easing.cssresult.js +14 -0
  292. package/labs/gb/styles/motion/md-motion-tokens-easing.cssresult.js.map +1 -0
  293. package/labs/gb/styles/motion/md-motion-tokens-easing.scss +35 -0
  294. package/labs/gb/styles/shape/md-shape-tokens.css +4 -0
  295. package/labs/gb/styles/shape/md-shape-tokens.css.map +1 -0
  296. package/labs/gb/styles/shape/md-shape-tokens.cssresult.js +14 -0
  297. package/labs/gb/styles/shape/md-shape-tokens.cssresult.js.map +1 -0
  298. package/labs/gb/styles/shape/md-shape-tokens.scss +23 -0
  299. package/labs/gb/styles/space/md-space-tokens.css +4 -0
  300. package/labs/gb/styles/space/md-space-tokens.css.map +1 -0
  301. package/labs/gb/styles/space/md-space-tokens.cssresult.js +14 -0
  302. package/labs/gb/styles/space/md-space-tokens.cssresult.js.map +1 -0
  303. package/labs/gb/styles/space/md-space-tokens.scss +28 -0
  304. package/labs/gb/styles/tailwind.css +4 -0
  305. package/labs/gb/styles/tailwind.css.map +1 -0
  306. package/labs/gb/styles/tailwind.cssresult.js +14 -0
  307. package/labs/gb/styles/tailwind.cssresult.js.map +1 -0
  308. package/labs/gb/styles/tailwind.scss +349 -0
  309. package/labs/gb/styles/typography/internal/_typography-tokens.scss +149 -0
  310. package/labs/gb/styles/typography/md-typography-tokens.css +4 -0
  311. package/labs/gb/styles/typography/md-typography-tokens.css.map +1 -0
  312. package/labs/gb/styles/typography/md-typography-tokens.cssresult.js +14 -0
  313. package/labs/gb/styles/typography/md-typography-tokens.cssresult.js.map +1 -0
  314. package/labs/gb/styles/typography/md-typography-tokens.scss +14 -0
  315. package/labs/item/item.js +1 -1
  316. package/labs/item/item.js.map +1 -1
  317. package/labs/navigationbar/navigation-bar.js +1 -1
  318. package/labs/navigationbar/navigation-bar.js.map +1 -1
  319. package/labs/navigationdrawer/navigation-drawer-modal.js +2 -2
  320. package/labs/navigationdrawer/navigation-drawer-modal.js.map +1 -1
  321. package/labs/navigationdrawer/navigation-drawer.js +2 -2
  322. package/labs/navigationdrawer/navigation-drawer.js.map +1 -1
  323. package/labs/navigationtab/navigation-tab.js +1 -1
  324. package/labs/navigationtab/navigation-tab.js.map +1 -1
  325. package/labs/segmentedbutton/outlined-segmented-button.js +2 -2
  326. package/labs/segmentedbutton/outlined-segmented-button.js.map +1 -1
  327. package/labs/segmentedbuttonset/outlined-segmented-button-set.js +2 -2
  328. package/labs/segmentedbuttonset/outlined-segmented-button-set.js.map +1 -1
  329. package/list/internal/listitem/list-item.d.ts +6 -1
  330. package/list/internal/listitem/list-item.js +4 -1
  331. package/list/internal/listitem/list-item.js.map +1 -1
  332. package/list/list-item.js +1 -1
  333. package/list/list-item.js.map +1 -1
  334. package/list/list.js +1 -1
  335. package/list/list.js.map +1 -1
  336. package/menu/internal/menuitem/menu-item.d.ts +2 -0
  337. package/menu/internal/submenu/sub-menu.d.ts +5 -1
  338. package/menu/internal/submenu/sub-menu.js +5 -1
  339. package/menu/internal/submenu/sub-menu.js.map +1 -1
  340. package/menu/menu-item.js +1 -1
  341. package/menu/menu-item.js.map +1 -1
  342. package/menu/menu.js +1 -1
  343. package/menu/menu.js.map +1 -1
  344. package/menu/sub-menu.js +1 -1
  345. package/menu/sub-menu.js.map +1 -1
  346. package/package.json +54 -27
  347. package/progress/circular-progress.js +1 -1
  348. package/progress/circular-progress.js.map +1 -1
  349. package/progress/linear-progress.js +1 -1
  350. package/progress/linear-progress.js.map +1 -1
  351. package/radio/internal/radio.d.ts +0 -2
  352. package/radio/internal/radio.js.map +1 -1
  353. package/radio/radio.js +1 -1
  354. package/radio/radio.js.map +1 -1
  355. package/ripple/ripple.js +1 -1
  356. package/ripple/ripple.js.map +1 -1
  357. package/select/filled-select.js +2 -2
  358. package/select/filled-select.js.map +1 -1
  359. package/select/internal/select.d.ts +2 -2
  360. package/select/internal/select.js.map +1 -1
  361. package/select/internal/selectoption/select-option.d.ts +2 -0
  362. package/select/outlined-select.js +2 -2
  363. package/select/outlined-select.js.map +1 -1
  364. package/select/select-option.js +1 -1
  365. package/select/select-option.js.map +1 -1
  366. package/slider/internal/slider.d.ts +0 -2
  367. package/slider/internal/slider.js.map +1 -1
  368. package/slider/slider.js +2 -2
  369. package/slider/slider.js.map +1 -1
  370. package/switch/internal/_switch.scss +1 -0
  371. package/switch/internal/switch-styles.css +1 -1
  372. package/switch/internal/switch-styles.css.map +1 -1
  373. package/switch/internal/switch-styles.cssresult.js +1 -1
  374. package/switch/internal/switch-styles.cssresult.js.map +1 -1
  375. package/switch/internal/switch.d.ts +0 -2
  376. package/switch/internal/switch.js.map +1 -1
  377. package/switch/switch.js +1 -1
  378. package/switch/switch.js.map +1 -1
  379. package/tabs/primary-tab.js +2 -2
  380. package/tabs/primary-tab.js.map +1 -1
  381. package/tabs/secondary-tab.js +2 -2
  382. package/tabs/secondary-tab.js.map +1 -1
  383. package/tabs/tabs.js +1 -1
  384. package/tabs/tabs.js.map +1 -1
  385. package/textfield/filled-text-field.js +2 -2
  386. package/textfield/filled-text-field.js.map +1 -1
  387. package/textfield/outlined-text-field.js +2 -2
  388. package/textfield/outlined-text-field.js.map +1 -1
  389. package/types/css-imports.d.ts +12 -0
  390. package/typography/md-typescale-styles.d.ts +6 -3
  391. package/typography/md-typescale-styles.js +1 -5
  392. package/typography/md-typescale-styles.js.map +1 -1
  393. package/button/internal/elevated-styles.js +0 -11
  394. package/button/internal/elevated-styles.js.map +0 -1
  395. package/button/internal/filled-styles.js +0 -11
  396. package/button/internal/filled-styles.js.map +0 -1
  397. package/button/internal/filled-tonal-styles.js +0 -11
  398. package/button/internal/filled-tonal-styles.js.map +0 -1
  399. package/button/internal/outlined-styles.js +0 -11
  400. package/button/internal/outlined-styles.js.map +0 -1
  401. package/button/internal/shared-elevation-styles.js +0 -11
  402. package/button/internal/shared-elevation-styles.js.map +0 -1
  403. package/button/internal/shared-styles.js +0 -11
  404. package/button/internal/shared-styles.js.map +0 -1
  405. package/button/internal/text-styles.js +0 -11
  406. package/button/internal/text-styles.js.map +0 -1
  407. package/checkbox/internal/checkbox-styles.js +0 -11
  408. package/checkbox/internal/checkbox-styles.js.map +0 -1
  409. package/chips/internal/assist-styles.js +0 -11
  410. package/chips/internal/assist-styles.js.map +0 -1
  411. package/chips/internal/chip-set-styles.js +0 -11
  412. package/chips/internal/chip-set-styles.js.map +0 -1
  413. package/chips/internal/elevated-styles.js +0 -11
  414. package/chips/internal/elevated-styles.js.map +0 -1
  415. package/chips/internal/filter-styles.js +0 -11
  416. package/chips/internal/filter-styles.js.map +0 -1
  417. package/chips/internal/input-styles.js +0 -11
  418. package/chips/internal/input-styles.js.map +0 -1
  419. package/chips/internal/selectable-styles.js +0 -11
  420. package/chips/internal/selectable-styles.js.map +0 -1
  421. package/chips/internal/shared-styles.js +0 -11
  422. package/chips/internal/shared-styles.js.map +0 -1
  423. package/chips/internal/suggestion-styles.js +0 -11
  424. package/chips/internal/suggestion-styles.js.map +0 -1
  425. package/chips/internal/trailing-icon-styles.js +0 -11
  426. package/chips/internal/trailing-icon-styles.js.map +0 -1
  427. package/dialog/internal/dialog-styles.js +0 -11
  428. package/dialog/internal/dialog-styles.js.map +0 -1
  429. package/divider/internal/divider-styles.js +0 -11
  430. package/divider/internal/divider-styles.js.map +0 -1
  431. package/elevation/internal/elevation-styles.js +0 -11
  432. package/elevation/internal/elevation-styles.js.map +0 -1
  433. package/fab/internal/fab-branded-styles.js +0 -11
  434. package/fab/internal/fab-branded-styles.js.map +0 -1
  435. package/fab/internal/fab-styles.js +0 -11
  436. package/fab/internal/fab-styles.js.map +0 -1
  437. package/fab/internal/forced-colors-styles.js +0 -11
  438. package/fab/internal/forced-colors-styles.js.map +0 -1
  439. package/fab/internal/shared-styles.js +0 -11
  440. package/fab/internal/shared-styles.js.map +0 -1
  441. package/field/internal/filled-styles.d.ts +0 -3
  442. package/field/internal/filled-styles.js +0 -11
  443. package/field/internal/filled-styles.js.map +0 -1
  444. package/field/internal/outlined-styles.d.ts +0 -3
  445. package/field/internal/outlined-styles.js +0 -11
  446. package/field/internal/outlined-styles.js.map +0 -1
  447. package/field/internal/shared-styles.d.ts +0 -3
  448. package/field/internal/shared-styles.js +0 -11
  449. package/field/internal/shared-styles.js.map +0 -1
  450. package/focus/internal/focus-ring-styles.d.ts +0 -3
  451. package/focus/internal/focus-ring-styles.js +0 -11
  452. package/focus/internal/focus-ring-styles.js.map +0 -1
  453. package/icon/internal/icon-styles.d.ts +0 -3
  454. package/icon/internal/icon-styles.js +0 -11
  455. package/icon/internal/icon-styles.js.map +0 -1
  456. package/iconbutton/internal/filled-styles.d.ts +0 -3
  457. package/iconbutton/internal/filled-styles.js +0 -11
  458. package/iconbutton/internal/filled-styles.js.map +0 -1
  459. package/iconbutton/internal/filled-tonal-styles.d.ts +0 -3
  460. package/iconbutton/internal/filled-tonal-styles.js +0 -11
  461. package/iconbutton/internal/filled-tonal-styles.js.map +0 -1
  462. package/iconbutton/internal/outlined-styles.d.ts +0 -3
  463. package/iconbutton/internal/outlined-styles.js +0 -11
  464. package/iconbutton/internal/outlined-styles.js.map +0 -1
  465. package/iconbutton/internal/shared-styles.d.ts +0 -3
  466. package/iconbutton/internal/shared-styles.js +0 -11
  467. package/iconbutton/internal/shared-styles.js.map +0 -1
  468. package/iconbutton/internal/standard-styles.d.ts +0 -3
  469. package/iconbutton/internal/standard-styles.js +0 -11
  470. package/iconbutton/internal/standard-styles.js.map +0 -1
  471. package/labs/badge/internal/badge-styles.d.ts +0 -3
  472. package/labs/badge/internal/badge-styles.js +0 -11
  473. package/labs/badge/internal/badge-styles.js.map +0 -1
  474. package/labs/card/internal/elevated-styles.d.ts +0 -3
  475. package/labs/card/internal/elevated-styles.js +0 -11
  476. package/labs/card/internal/elevated-styles.js.map +0 -1
  477. package/labs/card/internal/filled-styles.d.ts +0 -3
  478. package/labs/card/internal/filled-styles.js +0 -11
  479. package/labs/card/internal/filled-styles.js.map +0 -1
  480. package/labs/card/internal/outlined-styles.d.ts +0 -3
  481. package/labs/card/internal/outlined-styles.js +0 -11
  482. package/labs/card/internal/outlined-styles.js.map +0 -1
  483. package/labs/card/internal/shared-styles.d.ts +0 -3
  484. package/labs/card/internal/shared-styles.js +0 -11
  485. package/labs/card/internal/shared-styles.js.map +0 -1
  486. package/labs/item/internal/item-styles.d.ts +0 -3
  487. package/labs/item/internal/item-styles.js +0 -11
  488. package/labs/item/internal/item-styles.js.map +0 -1
  489. package/labs/navigationbar/internal/navigation-bar-styles.d.ts +0 -3
  490. package/labs/navigationbar/internal/navigation-bar-styles.js +0 -11
  491. package/labs/navigationbar/internal/navigation-bar-styles.js.map +0 -1
  492. package/labs/navigationdrawer/internal/navigation-drawer-modal-styles.d.ts +0 -3
  493. package/labs/navigationdrawer/internal/navigation-drawer-modal-styles.js +0 -11
  494. package/labs/navigationdrawer/internal/navigation-drawer-modal-styles.js.map +0 -1
  495. package/labs/navigationdrawer/internal/navigation-drawer-styles.d.ts +0 -3
  496. package/labs/navigationdrawer/internal/navigation-drawer-styles.js +0 -11
  497. package/labs/navigationdrawer/internal/navigation-drawer-styles.js.map +0 -1
  498. package/labs/navigationdrawer/internal/shared-styles.d.ts +0 -3
  499. package/labs/navigationdrawer/internal/shared-styles.js +0 -11
  500. package/labs/navigationdrawer/internal/shared-styles.js.map +0 -1
  501. package/labs/navigationtab/internal/navigation-tab-styles.d.ts +0 -3
  502. package/labs/navigationtab/internal/navigation-tab-styles.js +0 -11
  503. package/labs/navigationtab/internal/navigation-tab-styles.js.map +0 -1
  504. package/labs/segmentedbutton/internal/outlined-styles.d.ts +0 -3
  505. package/labs/segmentedbutton/internal/outlined-styles.js +0 -11
  506. package/labs/segmentedbutton/internal/outlined-styles.js.map +0 -1
  507. package/labs/segmentedbutton/internal/shared-styles.d.ts +0 -3
  508. package/labs/segmentedbutton/internal/shared-styles.js +0 -11
  509. package/labs/segmentedbutton/internal/shared-styles.js.map +0 -1
  510. package/labs/segmentedbuttonset/internal/outlined-styles.d.ts +0 -3
  511. package/labs/segmentedbuttonset/internal/outlined-styles.js +0 -11
  512. package/labs/segmentedbuttonset/internal/outlined-styles.js.map +0 -1
  513. package/labs/segmentedbuttonset/internal/shared-styles.d.ts +0 -3
  514. package/labs/segmentedbuttonset/internal/shared-styles.js +0 -11
  515. package/labs/segmentedbuttonset/internal/shared-styles.js.map +0 -1
  516. package/list/internal/list-styles.d.ts +0 -3
  517. package/list/internal/list-styles.js +0 -11
  518. package/list/internal/list-styles.js.map +0 -1
  519. package/list/internal/listitem/list-item-styles.d.ts +0 -3
  520. package/list/internal/listitem/list-item-styles.js +0 -11
  521. package/list/internal/listitem/list-item-styles.js.map +0 -1
  522. package/menu/internal/menu-styles.d.ts +0 -3
  523. package/menu/internal/menu-styles.js +0 -11
  524. package/menu/internal/menu-styles.js.map +0 -1
  525. package/menu/internal/menuitem/menu-item-styles.d.ts +0 -3
  526. package/menu/internal/menuitem/menu-item-styles.js +0 -11
  527. package/menu/internal/menuitem/menu-item-styles.js.map +0 -1
  528. package/menu/internal/submenu/sub-menu-styles.d.ts +0 -3
  529. package/menu/internal/submenu/sub-menu-styles.js +0 -11
  530. package/menu/internal/submenu/sub-menu-styles.js.map +0 -1
  531. package/progress/internal/circular-progress-styles.d.ts +0 -3
  532. package/progress/internal/circular-progress-styles.js +0 -11
  533. package/progress/internal/circular-progress-styles.js.map +0 -1
  534. package/progress/internal/linear-progress-styles.d.ts +0 -3
  535. package/progress/internal/linear-progress-styles.js +0 -11
  536. package/progress/internal/linear-progress-styles.js.map +0 -1
  537. package/radio/internal/radio-styles.d.ts +0 -3
  538. package/radio/internal/radio-styles.js +0 -11
  539. package/radio/internal/radio-styles.js.map +0 -1
  540. package/ripple/internal/ripple-styles.d.ts +0 -3
  541. package/ripple/internal/ripple-styles.js +0 -11
  542. package/ripple/internal/ripple-styles.js.map +0 -1
  543. package/select/internal/filled-select-styles.d.ts +0 -3
  544. package/select/internal/filled-select-styles.js +0 -11
  545. package/select/internal/filled-select-styles.js.map +0 -1
  546. package/select/internal/outlined-select-styles.d.ts +0 -3
  547. package/select/internal/outlined-select-styles.js +0 -11
  548. package/select/internal/outlined-select-styles.js.map +0 -1
  549. package/select/internal/shared-styles.d.ts +0 -3
  550. package/select/internal/shared-styles.js +0 -11
  551. package/select/internal/shared-styles.js.map +0 -1
  552. package/slider/internal/forced-colors-styles.d.ts +0 -3
  553. package/slider/internal/forced-colors-styles.js +0 -11
  554. package/slider/internal/forced-colors-styles.js.map +0 -1
  555. package/slider/internal/slider-styles.d.ts +0 -3
  556. package/slider/internal/slider-styles.js +0 -11
  557. package/slider/internal/slider-styles.js.map +0 -1
  558. package/switch/internal/switch-styles.d.ts +0 -3
  559. package/switch/internal/switch-styles.js +0 -11
  560. package/switch/internal/switch-styles.js.map +0 -1
  561. package/tabs/internal/primary-tab-styles.d.ts +0 -3
  562. package/tabs/internal/primary-tab-styles.js +0 -11
  563. package/tabs/internal/primary-tab-styles.js.map +0 -1
  564. package/tabs/internal/secondary-tab-styles.d.ts +0 -3
  565. package/tabs/internal/secondary-tab-styles.js +0 -11
  566. package/tabs/internal/secondary-tab-styles.js.map +0 -1
  567. package/tabs/internal/tab-styles.d.ts +0 -3
  568. package/tabs/internal/tab-styles.js +0 -11
  569. package/tabs/internal/tab-styles.js.map +0 -1
  570. package/tabs/internal/tabs-styles.d.ts +0 -3
  571. package/tabs/internal/tabs-styles.js +0 -11
  572. package/tabs/internal/tabs-styles.js.map +0 -1
  573. package/textfield/internal/filled-styles.d.ts +0 -3
  574. package/textfield/internal/filled-styles.js +0 -11
  575. package/textfield/internal/filled-styles.js.map +0 -1
  576. package/textfield/internal/outlined-styles.d.ts +0 -3
  577. package/textfield/internal/outlined-styles.js +0 -11
  578. package/textfield/internal/outlined-styles.js.map +0 -1
  579. package/textfield/internal/shared-styles.d.ts +0 -3
  580. package/textfield/internal/shared-styles.js +0 -11
  581. package/textfield/internal/shared-styles.js.map +0 -1
  582. /package/{button/internal/elevated-styles.d.ts → labs/gb/components/badge/badge.cssresult.d.ts} +0 -0
  583. /package/{button/internal/filled-styles.d.ts → labs/gb/components/button/button.cssresult.d.ts} +0 -0
  584. /package/{button/internal/filled-tonal-styles.d.ts → labs/gb/components/card/card.cssresult.d.ts} +0 -0
  585. /package/{button/internal/outlined-styles.d.ts → labs/gb/components/checkbox/checkbox.cssresult.d.ts} +0 -0
  586. /package/{button/internal/shared-elevation-styles.d.ts → labs/gb/components/divider/divider.cssresult.d.ts} +0 -0
  587. /package/{button/internal/shared-styles.d.ts → labs/gb/components/fab/fab.cssresult.d.ts} +0 -0
  588. /package/{button/internal/text-styles.d.ts → labs/gb/components/focus/focus-ring.cssresult.d.ts} +0 -0
  589. /package/{checkbox/internal/checkbox-styles.d.ts → labs/gb/components/iconbutton/icon-button.cssresult.d.ts} +0 -0
  590. /package/{chips/internal/assist-styles.d.ts → labs/gb/components/list/list.cssresult.d.ts} +0 -0
  591. /package/{chips/internal/chip-set-styles.d.ts → labs/gb/components/menu/menu.cssresult.d.ts} +0 -0
  592. /package/{chips/internal/elevated-styles.d.ts → labs/gb/components/radio/radio.cssresult.d.ts} +0 -0
  593. /package/{chips/internal/filter-styles.d.ts → labs/gb/components/ripple/ripple.cssresult.d.ts} +0 -0
  594. /package/{chips/internal/input-styles.d.ts → labs/gb/components/splitbutton/split-button.cssresult.d.ts} +0 -0
  595. /package/{chips/internal/selectable-styles.d.ts → labs/gb/components/switch/switch.cssresult.d.ts} +0 -0
  596. /package/{chips/internal/shared-styles.d.ts → labs/gb/styles/color/md-color-tokens-full.cssresult.d.ts} +0 -0
  597. /package/{chips/internal/suggestion-styles.d.ts → labs/gb/styles/color/md-color-tokens.cssresult.d.ts} +0 -0
  598. /package/{chips/internal/trailing-icon-styles.d.ts → labs/gb/styles/elevation/md-elevation-tokens.cssresult.d.ts} +0 -0
  599. /package/{dialog/internal/dialog-styles.d.ts → labs/gb/styles/icon/md-icon.cssresult.d.ts} +0 -0
  600. /package/{divider/internal/divider-styles.d.ts → labs/gb/styles/m3.cssresult.d.ts} +0 -0
  601. /package/{elevation/internal/elevation-styles.d.ts → labs/gb/styles/motion/md-motion-tokens-easing.cssresult.d.ts} +0 -0
  602. /package/{fab/internal/fab-branded-styles.d.ts → labs/gb/styles/shape/md-shape-tokens.cssresult.d.ts} +0 -0
  603. /package/{fab/internal/fab-styles.d.ts → labs/gb/styles/space/md-space-tokens.cssresult.d.ts} +0 -0
  604. /package/{fab/internal/forced-colors-styles.d.ts → labs/gb/styles/tailwind.cssresult.d.ts} +0 -0
  605. /package/{fab/internal/shared-styles.d.ts → labs/gb/styles/typography/md-typography-tokens.cssresult.d.ts} +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@material/web",
3
- "version": "2.4.2-nightly.a589695.0",
3
+ "version": "2.4.2-nightly.b4af72e.0",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -27,6 +27,7 @@
27
27
  "build:ts": "wireit",
28
28
  "build:css-to-ts": "wireit",
29
29
  "build:sass": "wireit",
30
+ "build:manifest": "wireit",
30
31
  "test": "wireit",
31
32
  "build:catalog": "wireit",
32
33
  "build:scripts": "wireit",
@@ -36,6 +37,7 @@
36
37
  "update-size": "wireit"
37
38
  },
38
39
  "type": "module",
40
+ "customElements": "custom-elements.json",
39
41
  "files": [
40
42
  "**/*.js",
41
43
  "**/*.js.map",
@@ -43,6 +45,7 @@
43
45
  "**/*.scss",
44
46
  "**/*.css",
45
47
  "**/*.css.map",
48
+ "custom-elements.json",
46
49
  "!web-test-runner.config.js",
47
50
  "!commitlint.config.js",
48
51
  "!**/test/**",
@@ -58,14 +61,17 @@
58
61
  "catalog"
59
62
  ],
60
63
  "dependencies": {
64
+ "@lit/context": "^1.1.6",
61
65
  "lit": "^2.8.0 || ^3.0.0",
62
66
  "tslib": "^2.4.0"
63
67
  },
64
68
  "devDependencies": {
65
- "@lit-labs/analyzer": "^0.12.1",
69
+ "@lit-labs/analyzer": "^0.14.0",
70
+ "@lit-labs/gen-manifest": "^0.3.6",
71
+ "@lit-labs/gen-utils": "^0.3.4",
66
72
  "@rollup/plugin-multi-entry": "^6.0.1",
67
73
  "@rollup/plugin-node-resolve": "^15.2.3",
68
- "@rollup/plugin-terser": "^0.4.4",
74
+ "@rollup/plugin-terser": "^1.0.0",
69
75
  "@types/jasmine": "^4.0.3",
70
76
  "@types/node": "^24.10.1",
71
77
  "@web/test-runner": "^0.18.2",
@@ -76,23 +82,32 @@
76
82
  "rollup": "^2.79.1",
77
83
  "sass": "^1.93.2",
78
84
  "sass-true": "^6.1.0",
79
- "typescript": "5.8.2",
85
+ "typescript": "5.9.2",
80
86
  "web-test-runner-jasmine": "^0.0.6",
81
87
  "wireit": "^0.14.12"
82
88
  },
83
89
  "wireit": {
84
90
  "build": {
85
91
  "dependencies": [
86
- "build:ts"
92
+ "build:ts",
93
+ "build:manifest"
87
94
  ]
88
95
  },
89
96
  "build:ts": {
97
+ "dependencies": [
98
+ "build:ts:main",
99
+ "build:ts:labs-gb"
100
+ ]
101
+ },
102
+ "build:ts:main": {
90
103
  "command": "tsc --pretty",
91
104
  "files": [
92
105
  "tsconfig.json",
106
+ "tsconfig.base.json",
93
107
  "**/*.ts",
94
108
  "!**/*.d.ts",
95
- "!**/*-styles.ts",
109
+ "!**/*.cssresult.ts",
110
+ "!labs/gb/**",
96
111
  "!catalog/",
97
112
  "!scripts/"
98
113
  ],
@@ -104,6 +119,7 @@
104
119
  "!web-test-runner.config.js",
105
120
  "!commitlint.config.js",
106
121
  "!types/",
122
+ "!labs/gb/**",
107
123
  "!catalog/",
108
124
  "!scripts/"
109
125
  ],
@@ -112,37 +128,36 @@
112
128
  "build:css-to-ts"
113
129
  ]
114
130
  },
115
- "build:css-to-ts": {
116
- "dependencies": [
117
- "build:css-to-ts:cssresult",
118
- "build:css-to-ts:styles"
119
- ]
120
- },
121
- "build:css-to-ts:cssresult": {
122
- "command": "find . \\( -path ./.wireit -o -path ./node_modules -o -path ./catalog \\) -prune -o -name '*.css' -print | xargs -L1 node scripts/css-to-ts.js --suffix=.cssresult",
131
+ "build:ts:labs-gb": {
132
+ "command": "tsc --pretty -p labs/gb/tsconfig.json",
123
133
  "files": [
124
- "**/*.css",
125
- "!catalog/"
134
+ "tsconfig.base.json",
135
+ "labs/gb/tsconfig.json",
136
+ "labs/gb/**/*.ts",
137
+ "!labs/gb/**/*.d.ts"
126
138
  ],
127
139
  "output": [
128
- "**/*.cssresult.ts",
129
- "!catalog/"
140
+ ".tsbuildinfo",
141
+ "labs/gb/**/*.js",
142
+ "labs/gb/**/*.js.map",
143
+ "labs/gb/**/*.d.ts"
130
144
  ],
145
+ "clean": "if-file-deleted",
131
146
  "dependencies": [
132
- "build:scripts",
133
- "build:sass"
147
+ "build:css-to-ts"
134
148
  ]
135
149
  },
136
- "build:css-to-ts:styles": {
137
- "command": "find . \\( -path ./.wireit -o -path ./node_modules -o -path ./catalog \\) -prune -o -name '*-styles.css' -print | xargs -L1 node scripts/css-to-ts.js",
150
+ "build:css-to-ts": {
151
+ "command": "find . \\( -path ./.wireit -o -path ./node_modules -o -path ./catalog \\) -prune -o -name '*.css' -print | xargs -L1 node scripts/css-to-ts.js --suffix=.cssresult",
138
152
  "files": [
139
- "**/*-styles.css",
153
+ "**/*.css",
140
154
  "!catalog/"
141
155
  ],
142
156
  "output": [
143
- "**/*-styles.ts",
157
+ "**/*.cssresult.ts",
144
158
  "!catalog/"
145
159
  ],
160
+ "clean": "if-file-deleted",
146
161
  "dependencies": [
147
162
  "build:scripts",
148
163
  "build:sass"
@@ -176,6 +191,19 @@
176
191
  "build:scripts"
177
192
  ]
178
193
  },
194
+ "build:manifest": {
195
+ "command": "node scripts/analyzer/generate-manifest.js",
196
+ "files": [
197
+ "**/*.ts"
198
+ ],
199
+ "output": [
200
+ "custom-elements.json"
201
+ ],
202
+ "dependencies": [
203
+ "build:scripts",
204
+ "build:ts"
205
+ ]
206
+ },
179
207
  "test": {
180
208
  "command": "wtr",
181
209
  "dependencies": [
@@ -196,8 +224,7 @@
196
224
  "files": [
197
225
  "scripts/tsconfig.json",
198
226
  "scripts/**/*.ts",
199
- "!**/*.d.ts",
200
- "!**/*-styles.ts"
227
+ "!**/*.d.ts"
201
228
  ],
202
229
  "output": [
203
230
  "scripts/.tsbuildinfo",
@@ -219,7 +246,7 @@
219
246
  "docs/components/*.md",
220
247
  "**/*.ts",
221
248
  "!**/*.d.ts",
222
- "!**/*-styles.ts",
249
+ "!**/*.cssresult.ts",
223
250
  "!catalog/",
224
251
  "!scripts/",
225
252
  "scripts/analyzer/update-docs.js"
@@ -6,7 +6,7 @@
6
6
  import { __decorate } from "tslib";
7
7
  import { customElement } from 'lit/decorators.js';
8
8
  import { CircularProgress } from './internal/circular-progress.js';
9
- import { styles } from './internal/circular-progress-styles.js';
9
+ import { styles } from './internal/circular-progress-styles.cssresult.js';
10
10
  /**
11
11
  * @summary Circular progress indicators display progress by animating along an
12
12
  * invisible circular track in a clockwise direction. They can be applied
@@ -1 +1 @@
1
- {"version":3,"file":"circular-progress.js","sourceRoot":"","sources":["circular-progress.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;AAGH,OAAO,EAAC,aAAa,EAAC,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAC,gBAAgB,EAAC,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAC,MAAM,EAAC,MAAM,wCAAwC,CAAC;AAQ9D;;;;;;;;;;;;GAYG;AAEI,IAAM,kBAAkB,GAAxB,MAAM,kBAAmB,SAAQ,gBAAgB;;AACtC,yBAAM,GAAwB,CAAC,MAAM,CAAC,AAAhC,CAAiC;AAD5C,kBAAkB;IAD9B,aAAa,CAAC,sBAAsB,CAAC;GACzB,kBAAkB,CAE9B","sourcesContent":["/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {CSSResultOrNative} from 'lit';\nimport {customElement} from 'lit/decorators.js';\n\nimport {CircularProgress} from './internal/circular-progress.js';\nimport {styles} from './internal/circular-progress-styles.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'md-circular-progress': MdCircularProgress;\n }\n}\n\n/**\n * @summary Circular progress indicators display progress by animating along an\n * invisible circular track in a clockwise direction. They can be applied\n * directly to a surface, such as a button or card.\n *\n * @description\n * Progress indicators inform users about the status of ongoing processes.\n * - Determinate indicators display how long a process will take.\n * - Indeterminate indicators express an unspecified amount of wait time.\n *\n * @final\n * @suppress {visibility}\n */\n@customElement('md-circular-progress')\nexport class MdCircularProgress extends CircularProgress {\n static override styles: CSSResultOrNative[] = [styles];\n}\n"]}
1
+ {"version":3,"file":"circular-progress.js","sourceRoot":"","sources":["circular-progress.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;AAGH,OAAO,EAAC,aAAa,EAAC,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAC,gBAAgB,EAAC,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAC,MAAM,EAAC,MAAM,kDAAkD,CAAC;AAQxE;;;;;;;;;;;;GAYG;AAEI,IAAM,kBAAkB,GAAxB,MAAM,kBAAmB,SAAQ,gBAAgB;;AACtC,yBAAM,GAAwB,CAAC,MAAM,CAAC,AAAhC,CAAiC;AAD5C,kBAAkB;IAD9B,aAAa,CAAC,sBAAsB,CAAC;GACzB,kBAAkB,CAE9B","sourcesContent":["/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {CSSResultOrNative} from 'lit';\nimport {customElement} from 'lit/decorators.js';\n\nimport {CircularProgress} from './internal/circular-progress.js';\nimport {styles} from './internal/circular-progress-styles.cssresult.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'md-circular-progress': MdCircularProgress;\n }\n}\n\n/**\n * @summary Circular progress indicators display progress by animating along an\n * invisible circular track in a clockwise direction. They can be applied\n * directly to a surface, such as a button or card.\n *\n * @description\n * Progress indicators inform users about the status of ongoing processes.\n * - Determinate indicators display how long a process will take.\n * - Indeterminate indicators express an unspecified amount of wait time.\n *\n * @final\n * @suppress {visibility}\n */\n@customElement('md-circular-progress')\nexport class MdCircularProgress extends CircularProgress {\n static override styles: CSSResultOrNative[] = [styles];\n}\n"]}
@@ -6,7 +6,7 @@
6
6
  import { __decorate } from "tslib";
7
7
  import { customElement } from 'lit/decorators.js';
8
8
  import { LinearProgress } from './internal/linear-progress.js';
9
- import { styles } from './internal/linear-progress-styles.js';
9
+ import { styles } from './internal/linear-progress-styles.cssresult.js';
10
10
  /**
11
11
  * @summary Linear progress indicators display progress by animating along the
12
12
  * length of a fixed, visible track.
@@ -1 +1 @@
1
- {"version":3,"file":"linear-progress.js","sourceRoot":"","sources":["linear-progress.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;AAGH,OAAO,EAAC,aAAa,EAAC,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAC,cAAc,EAAC,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAC,MAAM,EAAC,MAAM,sCAAsC,CAAC;AAQ5D;;;;;;;;;;;GAWG;AAEI,IAAM,gBAAgB,GAAtB,MAAM,gBAAiB,SAAQ,cAAc;;AAClC,uBAAM,GAAwB,CAAC,MAAM,CAAC,AAAhC,CAAiC;AAD5C,gBAAgB;IAD5B,aAAa,CAAC,oBAAoB,CAAC;GACvB,gBAAgB,CAE5B","sourcesContent":["/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {CSSResultOrNative} from 'lit';\nimport {customElement} from 'lit/decorators.js';\n\nimport {LinearProgress} from './internal/linear-progress.js';\nimport {styles} from './internal/linear-progress-styles.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'md-linear-progress': MdLinearProgress;\n }\n}\n\n/**\n * @summary Linear progress indicators display progress by animating along the\n * length of a fixed, visible track.\n *\n * @description\n * Progress indicators inform users about the status of ongoing processes.\n * - Determinate indicators display how long a process will take.\n * - Indeterminate indicators express an unspecified amount of wait time.\n *\n * @final\n * @suppress {visibility}\n */\n@customElement('md-linear-progress')\nexport class MdLinearProgress extends LinearProgress {\n static override styles: CSSResultOrNative[] = [styles];\n}\n"]}
1
+ {"version":3,"file":"linear-progress.js","sourceRoot":"","sources":["linear-progress.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;AAGH,OAAO,EAAC,aAAa,EAAC,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAC,cAAc,EAAC,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAC,MAAM,EAAC,MAAM,gDAAgD,CAAC;AAQtE;;;;;;;;;;;GAWG;AAEI,IAAM,gBAAgB,GAAtB,MAAM,gBAAiB,SAAQ,cAAc;;AAClC,uBAAM,GAAwB,CAAC,MAAM,CAAC,AAAhC,CAAiC;AAD5C,gBAAgB;IAD5B,aAAa,CAAC,oBAAoB,CAAC;GACvB,gBAAgB,CAE5B","sourcesContent":["/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {CSSResultOrNative} from 'lit';\nimport {customElement} from 'lit/decorators.js';\n\nimport {LinearProgress} from './internal/linear-progress.js';\nimport {styles} from './internal/linear-progress-styles.cssresult.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'md-linear-progress': MdLinearProgress;\n }\n}\n\n/**\n * @summary Linear progress indicators display progress by animating along the\n * length of a fixed, visible track.\n *\n * @description\n * Progress indicators inform users about the status of ongoing processes.\n * - Determinate indicators display how long a process will take.\n * - Indeterminate indicators express an unspecified amount of wait time.\n *\n * @final\n * @suppress {visibility}\n */\n@customElement('md-linear-progress')\nexport class MdLinearProgress extends LinearProgress {\n static override styles: CSSResultOrNative[] = [styles];\n}\n"]}
@@ -43,8 +43,6 @@ export declare class Radio extends radioBaseClass {
43
43
  protected updated(): void;
44
44
  private handleClick;
45
45
  private handleKeydown;
46
- disabled: boolean;
47
- name: string;
48
46
  [getFormValue](): string;
49
47
  [getFormState](): string;
50
48
  formResetCallback(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"radio.js","sourceRoot":"","sources":["radio.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport '../../focus/md-focus-ring.js';\nimport '../../ripple/ripple.js';\n\nimport {html, isServer, LitElement} from 'lit';\nimport {property, query} from 'lit/decorators.js';\nimport {classMap} from 'lit/directives/class-map.js';\n\nimport {isActivationClick} from '../../internal/events/form-label-activation.js';\nimport {\n createValidator,\n getValidityAnchor,\n mixinConstraintValidation,\n} from '../../labs/behaviors/constraint-validation.js';\nimport {\n internals,\n mixinElementInternals,\n} from '../../labs/behaviors/element-internals.js';\nimport {mixinFocusable} from '../../labs/behaviors/focusable.js';\nimport {\n getFormState,\n getFormValue,\n mixinFormAssociated,\n} from '../../labs/behaviors/form-associated.js';\nimport {RadioValidator} from '../../labs/behaviors/validators/radio-validator.js';\n\nimport {SingleSelectionController} from './single-selection-controller.js';\n\nconst CHECKED = Symbol('checked');\nlet maskId = 0;\n\n// Separate variable needed for closure.\nconst radioBaseClass = mixinConstraintValidation(\n mixinFormAssociated(mixinElementInternals(mixinFocusable(LitElement))),\n);\n\n/**\n * A radio component.\n *\n * @fires input {InputEvent} Dispatched when the value changes from user\n * interaction. --bubbles\n * @fires change {Event} Dispatched when the value changes from user\n * interaction. --bubbles --composed\n */\nexport class Radio extends radioBaseClass {\n // Unique maskId is required because of a Safari bug that fail to persist\n // reference to the mask. This should be removed once the bug is fixed.\n private readonly maskId = `cutout${++maskId}`;\n\n /**\n * Whether or not the radio is selected.\n */\n @property({type: Boolean})\n get checked() {\n return this[CHECKED];\n }\n set checked(checked: boolean) {\n const wasChecked = this.checked;\n if (wasChecked === checked) {\n return;\n }\n\n this[CHECKED] = checked;\n this.requestUpdate('checked', wasChecked);\n this.selectionController.handleCheckedChange();\n }\n\n [CHECKED] = false;\n\n /**\n * Whether or not the radio is required. If any radio is required in a group,\n * all radios are implicitly required.\n */\n @property({type: Boolean}) required = false;\n\n /**\n * The element value to use in form submission when checked.\n */\n @property() value = 'on';\n\n @query('.container') private readonly container!: HTMLElement;\n private readonly selectionController = new SingleSelectionController(this);\n\n constructor() {\n super();\n this.addController(this.selectionController);\n if (!isServer) {\n this[internals].role = 'radio';\n this.addEventListener('click', this.handleClick.bind(this));\n this.addEventListener('keydown', this.handleKeydown.bind(this));\n }\n }\n\n protected override render() {\n const classes = {'checked': this.checked};\n return html`\n <div class=\"container ${classMap(classes)}\" aria-hidden=\"true\">\n <md-ripple\n part=\"ripple\"\n .control=${this}\n ?disabled=${this.disabled}></md-ripple>\n <md-focus-ring part=\"focus-ring\" .control=${this}></md-focus-ring>\n <svg class=\"icon\" viewBox=\"0 0 20 20\">\n <mask id=\"${this.maskId}\">\n <rect width=\"100%\" height=\"100%\" fill=\"white\" />\n <circle cx=\"10\" cy=\"10\" r=\"8\" fill=\"black\" />\n </mask>\n <circle\n class=\"outer circle\"\n cx=\"10\"\n cy=\"10\"\n r=\"10\"\n mask=\"url(#${this.maskId})\" />\n <circle class=\"inner circle\" cx=\"10\" cy=\"10\" r=\"5\" />\n </svg>\n\n <div class=\"touch-target\"></div>\n </div>\n `;\n }\n\n protected override updated() {\n this[internals].ariaChecked = String(this.checked);\n }\n\n private async handleClick(event: Event) {\n if (this.disabled) {\n return;\n }\n\n // allow event to propagate to user code after a microtask.\n await 0;\n if (event.defaultPrevented) {\n return;\n }\n\n if (isActivationClick(event)) {\n this.focus();\n }\n\n // Per spec, clicking on a radio input always selects it.\n this.checked = true;\n this.dispatchEvent(new Event('change', {bubbles: true}));\n this.dispatchEvent(\n new InputEvent('input', {bubbles: true, composed: true}),\n );\n }\n\n private async handleKeydown(event: KeyboardEvent) {\n // allow event to propagate to user code after a microtask.\n await 0;\n if (event.key !== ' ' || event.defaultPrevented) {\n return;\n }\n\n this.click();\n }\n\n // Writable mixin properties for lit-html binding, needed for lit-analyzer\n declare disabled: boolean;\n declare name: string;\n\n override [getFormValue]() {\n return this.checked ? this.value : null;\n }\n\n override [getFormState]() {\n return String(this.checked);\n }\n\n override formResetCallback() {\n // The checked property does not reflect, so the original attribute set by\n // the user is used to determine the default value.\n this.checked = this.hasAttribute('checked');\n }\n\n override formStateRestoreCallback(state: string) {\n this.checked = state === 'true';\n }\n\n override [createValidator]() {\n return new RadioValidator(() => {\n if (!this.selectionController) {\n // Validation runs on superclass construction, so selection controller\n // might not actually be ready until this class constructs.\n return [this];\n }\n\n return this.selectionController.controls as [Radio, ...Radio[]];\n });\n }\n\n override [getValidityAnchor]() {\n return this.container;\n }\n}\n"]}
1
+ {"version":3,"file":"radio.js","sourceRoot":"","sources":["radio.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;;AAEH,OAAO,8BAA8B,CAAC;AACtC,OAAO,wBAAwB,CAAC;AAEhC,OAAO,EAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAC,MAAM,KAAK,CAAC;AAC/C,OAAO,EAAC,QAAQ,EAAE,KAAK,EAAC,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAC,QAAQ,EAAC,MAAM,6BAA6B,CAAC;AAErD,OAAO,EAAC,iBAAiB,EAAC,MAAM,gDAAgD,CAAC;AACjF,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,yBAAyB,GAC1B,MAAM,+CAA+C,CAAC;AACvD,OAAO,EACL,SAAS,EACT,qBAAqB,GACtB,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAAC,cAAc,EAAC,MAAM,mCAAmC,CAAC;AACjE,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,mBAAmB,GACpB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAC,cAAc,EAAC,MAAM,oDAAoD,CAAC;AAElF,OAAO,EAAC,yBAAyB,EAAC,MAAM,kCAAkC,CAAC;AAE3E,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;AAClC,IAAI,MAAM,GAAG,CAAC,CAAC;AAEf,wCAAwC;AACxC,MAAM,cAAc,GAAG,yBAAyB,CAC9C,mBAAmB,CAAC,qBAAqB,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,CACvE,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,OAAO,KAAM,SAAQ,cAAc;IAKvC;;OAEG;IAEH,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC;IACvB,CAAC;IACD,IAAI,OAAO,CAAC,OAAgB;QAC1B,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC;QAChC,IAAI,UAAU,KAAK,OAAO,EAAE,CAAC;YAC3B,OAAO;QACT,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QAC1C,IAAI,CAAC,mBAAmB,CAAC,mBAAmB,EAAE,CAAC;IACjD,CAAC;IAkBD;QACE,KAAK,EAAE,CAAC;QAvCV,yEAAyE;QACzE,uEAAuE;QACtD,WAAM,GAAG,SAAS,EAAE,MAAM,EAAE,CAAC;QAoB9C,QAAS,GAAG,KAAK,CAAC;QAElB;;;WAGG;QACwB,aAAQ,GAAG,KAAK,CAAC;QAE5C;;WAEG;QACS,UAAK,GAAG,IAAI,CAAC;QAGR,wBAAmB,GAAG,IAAI,yBAAyB,CAAC,IAAI,CAAC,CAAC;QAIzE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAC7C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,GAAG,OAAO,CAAC;YAC/B,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YAC5D,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;IAEkB,MAAM;QACvB,MAAM,OAAO,GAAG,EAAC,SAAS,EAAE,IAAI,CAAC,OAAO,EAAC,CAAC;QAC1C,OAAO,IAAI,CAAA;8BACe,QAAQ,CAAC,OAAO,CAAC;;;qBAG1B,IAAI;sBACH,IAAI,CAAC,QAAQ;oDACiB,IAAI;;sBAElC,IAAI,CAAC,MAAM;;;;;;;;;yBASR,IAAI,CAAC,MAAM;;;;;;KAM/B,CAAC;IACJ,CAAC;IAEkB,OAAO;QACxB,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACrD,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,KAAY;QACpC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,OAAO;QACT,CAAC;QAED,2DAA2D;QAC3D,MAAM,CAAC,CAAC;QACR,IAAI,KAAK,CAAC,gBAAgB,EAAE,CAAC;YAC3B,OAAO;QACT,CAAC;QAED,IAAI,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7B,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,CAAC;QAED,yDAAyD;QACzD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,QAAQ,EAAE,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC,aAAa,CAChB,IAAI,UAAU,CAAC,OAAO,EAAE,EAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC,CACzD,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,KAAoB;QAC9C,2DAA2D;QAC3D,MAAM,CAAC,CAAC;QACR,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,IAAI,KAAK,CAAC,gBAAgB,EAAE,CAAC;YAChD,OAAO;QACT,CAAC;QAED,IAAI,CAAC,KAAK,EAAE,CAAC;IACf,CAAC;IAEQ,OA3FR,OAAO,EA2FE,YAAY,EAAC;QACrB,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IAC1C,CAAC;IAEQ,CAAC,YAAY,CAAC;QACrB,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;IAEQ,iBAAiB;QACxB,0EAA0E;QAC1E,mDAAmD;QACnD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IAC9C,CAAC;IAEQ,wBAAwB,CAAC,KAAa;QAC7C,IAAI,CAAC,OAAO,GAAG,KAAK,KAAK,MAAM,CAAC;IAClC,CAAC;IAEQ,CAAC,eAAe,CAAC;QACxB,OAAO,IAAI,cAAc,CAAC,GAAG,EAAE;YAC7B,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBAC9B,sEAAsE;gBACtE,2DAA2D;gBAC3D,OAAO,CAAC,IAAI,CAAC,CAAC;YAChB,CAAC;YAED,OAAO,IAAI,CAAC,mBAAmB,CAAC,QAA+B,CAAC;QAClE,CAAC,CAAC,CAAC;IACL,CAAC;IAEQ,CAAC,iBAAiB,CAAC;QAC1B,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;CACF;AA1IC;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,OAAO,EAAC,CAAC;oCAGzB;AAkB0B;IAA1B,QAAQ,CAAC,EAAC,IAAI,EAAE,OAAO,EAAC,CAAC;uCAAkB;AAKhC;IAAX,QAAQ,EAAE;oCAAc;AAEa;IAArC,KAAK,CAAC,YAAY,CAAC;wCAA0C","sourcesContent":["/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport '../../focus/md-focus-ring.js';\nimport '../../ripple/ripple.js';\n\nimport {html, isServer, LitElement} from 'lit';\nimport {property, query} from 'lit/decorators.js';\nimport {classMap} from 'lit/directives/class-map.js';\n\nimport {isActivationClick} from '../../internal/events/form-label-activation.js';\nimport {\n createValidator,\n getValidityAnchor,\n mixinConstraintValidation,\n} from '../../labs/behaviors/constraint-validation.js';\nimport {\n internals,\n mixinElementInternals,\n} from '../../labs/behaviors/element-internals.js';\nimport {mixinFocusable} from '../../labs/behaviors/focusable.js';\nimport {\n getFormState,\n getFormValue,\n mixinFormAssociated,\n} from '../../labs/behaviors/form-associated.js';\nimport {RadioValidator} from '../../labs/behaviors/validators/radio-validator.js';\n\nimport {SingleSelectionController} from './single-selection-controller.js';\n\nconst CHECKED = Symbol('checked');\nlet maskId = 0;\n\n// Separate variable needed for closure.\nconst radioBaseClass = mixinConstraintValidation(\n mixinFormAssociated(mixinElementInternals(mixinFocusable(LitElement))),\n);\n\n/**\n * A radio component.\n *\n * @fires input {InputEvent} Dispatched when the value changes from user\n * interaction. --bubbles\n * @fires change {Event} Dispatched when the value changes from user\n * interaction. --bubbles --composed\n */\nexport class Radio extends radioBaseClass {\n // Unique maskId is required because of a Safari bug that fail to persist\n // reference to the mask. This should be removed once the bug is fixed.\n private readonly maskId = `cutout${++maskId}`;\n\n /**\n * Whether or not the radio is selected.\n */\n @property({type: Boolean})\n get checked() {\n return this[CHECKED];\n }\n set checked(checked: boolean) {\n const wasChecked = this.checked;\n if (wasChecked === checked) {\n return;\n }\n\n this[CHECKED] = checked;\n this.requestUpdate('checked', wasChecked);\n this.selectionController.handleCheckedChange();\n }\n\n [CHECKED] = false;\n\n /**\n * Whether or not the radio is required. If any radio is required in a group,\n * all radios are implicitly required.\n */\n @property({type: Boolean}) required = false;\n\n /**\n * The element value to use in form submission when checked.\n */\n @property() value = 'on';\n\n @query('.container') private readonly container!: HTMLElement;\n private readonly selectionController = new SingleSelectionController(this);\n\n constructor() {\n super();\n this.addController(this.selectionController);\n if (!isServer) {\n this[internals].role = 'radio';\n this.addEventListener('click', this.handleClick.bind(this));\n this.addEventListener('keydown', this.handleKeydown.bind(this));\n }\n }\n\n protected override render() {\n const classes = {'checked': this.checked};\n return html`\n <div class=\"container ${classMap(classes)}\" aria-hidden=\"true\">\n <md-ripple\n part=\"ripple\"\n .control=${this}\n ?disabled=${this.disabled}></md-ripple>\n <md-focus-ring part=\"focus-ring\" .control=${this}></md-focus-ring>\n <svg class=\"icon\" viewBox=\"0 0 20 20\">\n <mask id=\"${this.maskId}\">\n <rect width=\"100%\" height=\"100%\" fill=\"white\" />\n <circle cx=\"10\" cy=\"10\" r=\"8\" fill=\"black\" />\n </mask>\n <circle\n class=\"outer circle\"\n cx=\"10\"\n cy=\"10\"\n r=\"10\"\n mask=\"url(#${this.maskId})\" />\n <circle class=\"inner circle\" cx=\"10\" cy=\"10\" r=\"5\" />\n </svg>\n\n <div class=\"touch-target\"></div>\n </div>\n `;\n }\n\n protected override updated() {\n this[internals].ariaChecked = String(this.checked);\n }\n\n private async handleClick(event: Event) {\n if (this.disabled) {\n return;\n }\n\n // allow event to propagate to user code after a microtask.\n await 0;\n if (event.defaultPrevented) {\n return;\n }\n\n if (isActivationClick(event)) {\n this.focus();\n }\n\n // Per spec, clicking on a radio input always selects it.\n this.checked = true;\n this.dispatchEvent(new Event('change', {bubbles: true}));\n this.dispatchEvent(\n new InputEvent('input', {bubbles: true, composed: true}),\n );\n }\n\n private async handleKeydown(event: KeyboardEvent) {\n // allow event to propagate to user code after a microtask.\n await 0;\n if (event.key !== ' ' || event.defaultPrevented) {\n return;\n }\n\n this.click();\n }\n\n override [getFormValue]() {\n return this.checked ? this.value : null;\n }\n\n override [getFormState]() {\n return String(this.checked);\n }\n\n override formResetCallback() {\n // The checked property does not reflect, so the original attribute set by\n // the user is used to determine the default value.\n this.checked = this.hasAttribute('checked');\n }\n\n override formStateRestoreCallback(state: string) {\n this.checked = state === 'true';\n }\n\n override [createValidator]() {\n return new RadioValidator(() => {\n if (!this.selectionController) {\n // Validation runs on superclass construction, so selection controller\n // might not actually be ready until this class constructs.\n return [this];\n }\n\n return this.selectionController.controls as [Radio, ...Radio[]];\n });\n }\n\n override [getValidityAnchor]() {\n return this.container;\n }\n}\n"]}
package/radio/radio.js CHANGED
@@ -6,7 +6,7 @@
6
6
  import { __decorate } from "tslib";
7
7
  import { customElement } from 'lit/decorators.js';
8
8
  import { Radio } from './internal/radio.js';
9
- import { styles } from './internal/radio-styles.js';
9
+ import { styles } from './internal/radio-styles.cssresult.js';
10
10
  /**
11
11
  * @summary Radio buttons allow users to select one option from a set.
12
12
  *
@@ -1 +1 @@
1
- {"version":3,"file":"radio.js","sourceRoot":"","sources":["radio.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;AAGH,OAAO,EAAC,aAAa,EAAC,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAC,KAAK,EAAC,MAAM,qBAAqB,CAAC;AAC1C,OAAO,EAAC,MAAM,EAAC,MAAM,4BAA4B,CAAC;AAQlD;;;;;;;;;;;;;;;GAeG;AAEI,IAAM,OAAO,GAAb,MAAM,OAAQ,SAAQ,KAAK;;AAChB,cAAM,GAAwB,CAAC,MAAM,CAAC,AAAhC,CAAiC;AAD5C,OAAO;IADnB,aAAa,CAAC,UAAU,CAAC;GACb,OAAO,CAEnB","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 {Radio} from './internal/radio.js';\nimport {styles} from './internal/radio-styles.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'md-radio': MdRadio;\n }\n}\n\n/**\n * @summary Radio buttons allow users to select one option from a set.\n *\n * @description\n * Radio buttons are the recommended way to allow users to make a single\n * selection from a list of options.\n *\n * Only one radio button can be selected at a time.\n *\n * Use radio buttons to:\n * - Select a single option from a set\n * - Expose all available options\n *\n * @final\n * @suppress {visibility}\n */\n@customElement('md-radio')\nexport class MdRadio extends Radio {\n static override styles: CSSResultOrNative[] = [styles];\n}\n"]}
1
+ {"version":3,"file":"radio.js","sourceRoot":"","sources":["radio.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;AAGH,OAAO,EAAC,aAAa,EAAC,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAC,KAAK,EAAC,MAAM,qBAAqB,CAAC;AAC1C,OAAO,EAAC,MAAM,EAAC,MAAM,sCAAsC,CAAC;AAQ5D;;;;;;;;;;;;;;;GAeG;AAEI,IAAM,OAAO,GAAb,MAAM,OAAQ,SAAQ,KAAK;;AAChB,cAAM,GAAwB,CAAC,MAAM,CAAC,AAAhC,CAAiC;AAD5C,OAAO;IADnB,aAAa,CAAC,UAAU,CAAC;GACb,OAAO,CAEnB","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 {Radio} from './internal/radio.js';\nimport {styles} from './internal/radio-styles.cssresult.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'md-radio': MdRadio;\n }\n}\n\n/**\n * @summary Radio buttons allow users to select one option from a set.\n *\n * @description\n * Radio buttons are the recommended way to allow users to make a single\n * selection from a list of options.\n *\n * Only one radio button can be selected at a time.\n *\n * Use radio buttons to:\n * - Select a single option from a set\n * - Expose all available options\n *\n * @final\n * @suppress {visibility}\n */\n@customElement('md-radio')\nexport class MdRadio extends Radio {\n static override styles: CSSResultOrNative[] = [styles];\n}\n"]}
package/ripple/ripple.js CHANGED
@@ -6,7 +6,7 @@
6
6
  import { __decorate } from "tslib";
7
7
  import { customElement } from 'lit/decorators.js';
8
8
  import { Ripple } from './internal/ripple.js';
9
- import { styles } from './internal/ripple-styles.js';
9
+ import { styles } from './internal/ripple-styles.cssresult.js';
10
10
  /**
11
11
  * @summary Ripples, also known as state layers, are visual indicators used to
12
12
  * communicate the status of a component or interactive element.
@@ -1 +1 @@
1
- {"version":3,"file":"ripple.js","sourceRoot":"","sources":["ripple.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;AAGH,OAAO,EAAC,aAAa,EAAC,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAC,MAAM,EAAC,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAC,MAAM,EAAC,MAAM,6BAA6B,CAAC;AAQnD;;;;;;;;;;;;GAYG;AAEI,IAAM,QAAQ,GAAd,MAAM,QAAS,SAAQ,MAAM;;AAClB,eAAM,GAAwB,CAAC,MAAM,CAAC,AAAhC,CAAiC;AAD5C,QAAQ;IADpB,aAAa,CAAC,WAAW,CAAC;GACd,QAAQ,CAEpB","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 {Ripple} from './internal/ripple.js';\nimport {styles} from './internal/ripple-styles.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'md-ripple': MdRipple;\n }\n}\n\n/**\n * @summary Ripples, also known as state layers, are visual indicators used to\n * communicate the status of a component or interactive element.\n *\n * @description A state layer is a semi-transparent covering on an element that\n * indicates its state. State layers provide a systematic approach to\n * visualizing states by using opacity. A layer can be applied to an entire\n * element or in a circular shape and only one state layer can be applied at a\n * given time.\n *\n * @final\n * @suppress {visibility}\n */\n@customElement('md-ripple')\nexport class MdRipple extends Ripple {\n static override styles: CSSResultOrNative[] = [styles];\n}\n"]}
1
+ {"version":3,"file":"ripple.js","sourceRoot":"","sources":["ripple.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;AAGH,OAAO,EAAC,aAAa,EAAC,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAC,MAAM,EAAC,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAC,MAAM,EAAC,MAAM,uCAAuC,CAAC;AAQ7D;;;;;;;;;;;;GAYG;AAEI,IAAM,QAAQ,GAAd,MAAM,QAAS,SAAQ,MAAM;;AAClB,eAAM,GAAwB,CAAC,MAAM,CAAC,AAAhC,CAAiC;AAD5C,QAAQ;IADpB,aAAa,CAAC,WAAW,CAAC;GACd,QAAQ,CAEpB","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 {Ripple} from './internal/ripple.js';\nimport {styles} from './internal/ripple-styles.cssresult.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'md-ripple': MdRipple;\n }\n}\n\n/**\n * @summary Ripples, also known as state layers, are visual indicators used to\n * communicate the status of a component or interactive element.\n *\n * @description A state layer is a semi-transparent covering on an element that\n * indicates its state. State layers provide a systematic approach to\n * visualizing states by using opacity. A layer can be applied to an entire\n * element or in a circular shape and only one state layer can be applied at a\n * given time.\n *\n * @final\n * @suppress {visibility}\n */\n@customElement('md-ripple')\nexport class MdRipple extends Ripple {\n static override styles: CSSResultOrNative[] = [styles];\n}\n"]}
@@ -6,8 +6,8 @@
6
6
  import { __decorate } from "tslib";
7
7
  import { customElement } from 'lit/decorators.js';
8
8
  import { FilledSelect } from './internal/filled-select.js';
9
- import { styles } from './internal/filled-select-styles.js';
10
- import { styles as sharedStyles } from './internal/shared-styles.js';
9
+ import { styles } from './internal/filled-select-styles.cssresult.js';
10
+ import { styles as sharedStyles } from './internal/shared-styles.cssresult.js';
11
11
  /**
12
12
  * @summary
13
13
  * Select menus display a list of choices on temporary surfaces and display the
@@ -1 +1 @@
1
- {"version":3,"file":"filled-select.js","sourceRoot":"","sources":["filled-select.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;AAGH,OAAO,EAAC,aAAa,EAAC,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAC,YAAY,EAAC,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAC,MAAM,EAAC,MAAM,oCAAoC,CAAC;AAC1D,OAAO,EAAC,MAAM,IAAI,YAAY,EAAC,MAAM,6BAA6B,CAAC;AAQnE;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEI,IAAM,cAAc,GAApB,MAAM,cAAe,SAAQ,YAAY;;AAC9B,qBAAM,GAAwB,CAAC,YAAY,EAAE,MAAM,CAAC,AAA9C,CAA+C;AAD1D,cAAc;IAD1B,aAAa,CAAC,kBAAkB,CAAC;GACrB,cAAc,CAE1B","sourcesContent":["/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {CSSResultOrNative} from 'lit';\nimport {customElement} from 'lit/decorators.js';\n\nimport {FilledSelect} from './internal/filled-select.js';\nimport {styles} from './internal/filled-select-styles.js';\nimport {styles as sharedStyles} from './internal/shared-styles.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'md-filled-select': MdFilledSelect;\n }\n}\n\n/**\n * @summary\n * Select menus display a list of choices on temporary surfaces and display the\n * currently selected menu item above the menu.\n *\n * @description\n * The select component allows users to choose a value from a fixed list of\n * available options. Composed of an interactive anchor button and a menu, it is\n * analogous to the native HTML `<select>` element. This is the \"filled\"\n * variant.\n *\n * @example\n * ```html\n * <md-filled-select label=\"fruits\">\n * <!-- An empty selected option will give select an \"un-filled\" state -->\n * <md-select-option selected></md-select-option>\n * <md-select-option value=\"apple\" headline=\"Apple\"></md-select-option>\n * <md-select-option value=\"banana\" headline=\"Banana\"></md-select-option>\n * <md-select-option value=\"kiwi\" headline=\"Kiwi\"></md-select-option>\n * <md-select-option value=\"orange\" headline=\"Orange\"></md-select-option>\n * <md-select-option value=\"tomato\" headline=\"Tomato\"></md-select-option>\n * </md-filled-select>\n * ```\n *\n * @final\n * @suppress {visibility}\n */\n@customElement('md-filled-select')\nexport class MdFilledSelect extends FilledSelect {\n static override styles: CSSResultOrNative[] = [sharedStyles, styles];\n}\n"]}
1
+ {"version":3,"file":"filled-select.js","sourceRoot":"","sources":["filled-select.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;AAGH,OAAO,EAAC,aAAa,EAAC,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAC,YAAY,EAAC,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAC,MAAM,EAAC,MAAM,8CAA8C,CAAC;AACpE,OAAO,EAAC,MAAM,IAAI,YAAY,EAAC,MAAM,uCAAuC,CAAC;AAQ7E;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEI,IAAM,cAAc,GAApB,MAAM,cAAe,SAAQ,YAAY;;AAC9B,qBAAM,GAAwB,CAAC,YAAY,EAAE,MAAM,CAAC,AAA9C,CAA+C;AAD1D,cAAc;IAD1B,aAAa,CAAC,kBAAkB,CAAC;GACrB,cAAc,CAE1B","sourcesContent":["/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {CSSResultOrNative} from 'lit';\nimport {customElement} from 'lit/decorators.js';\n\nimport {FilledSelect} from './internal/filled-select.js';\nimport {styles} from './internal/filled-select-styles.cssresult.js';\nimport {styles as sharedStyles} from './internal/shared-styles.cssresult.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'md-filled-select': MdFilledSelect;\n }\n}\n\n/**\n * @summary\n * Select menus display a list of choices on temporary surfaces and display the\n * currently selected menu item above the menu.\n *\n * @description\n * The select component allows users to choose a value from a fixed list of\n * available options. Composed of an interactive anchor button and a menu, it is\n * analogous to the native HTML `<select>` element. This is the \"filled\"\n * variant.\n *\n * @example\n * ```html\n * <md-filled-select label=\"fruits\">\n * <!-- An empty selected option will give select an \"un-filled\" state -->\n * <md-select-option selected></md-select-option>\n * <md-select-option value=\"apple\" headline=\"Apple\"></md-select-option>\n * <md-select-option value=\"banana\" headline=\"Banana\"></md-select-option>\n * <md-select-option value=\"kiwi\" headline=\"Kiwi\"></md-select-option>\n * <md-select-option value=\"orange\" headline=\"Orange\"></md-select-option>\n * <md-select-option value=\"tomato\" headline=\"Tomato\"></md-select-option>\n * </md-filled-select>\n * ```\n *\n * @final\n * @suppress {visibility}\n */\n@customElement('md-filled-select')\nexport class MdFilledSelect extends FilledSelect {\n static override styles: CSSResultOrNative[] = [sharedStyles, styles];\n}\n"]}
@@ -32,6 +32,8 @@ export declare abstract class Select extends selectBaseClass {
32
32
  /** @nocollapse */
33
33
  static shadowRootOptions: {
34
34
  delegatesFocus: boolean;
35
+ clonable?: boolean;
36
+ customElementRegistry?: CustomElementRegistry;
35
37
  mode: ShadowRootMode;
36
38
  serializable?: boolean;
37
39
  slotAssignment?: SlotAssignmentMode;
@@ -256,8 +258,6 @@ export declare abstract class Select extends selectBaseClass {
256
258
  */
257
259
  private dispatchInteractionEvents;
258
260
  private getErrorText;
259
- disabled: boolean;
260
- name: string;
261
261
  [getFormValue](): string;
262
262
  formResetCallback(): void;
263
263
  formStateRestoreCallback(state: string): void;
@@ -1 +1 @@
1
- {"version":3,"file":"select.js","sourceRoot":"","sources":["select.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport '../../menu/menu.js';\n\nimport {html, isServer, LitElement, nothing, PropertyValues} from 'lit';\nimport {property, query, queryAssignedElements, state} from 'lit/decorators.js';\nimport {ClassInfo, classMap} from 'lit/directives/class-map.js';\nimport {styleMap} from 'lit/directives/style-map.js';\nimport {html as staticHtml, StaticValue} from 'lit/static-html.js';\n\nimport {Field} from '../../field/internal/field.js';\nimport {ARIAMixinStrict} from '../../internal/aria/aria.js';\nimport {mixinDelegatesAria} from '../../internal/aria/delegate.js';\nimport {redispatchEvent} from '../../internal/events/redispatch-event.js';\nimport {\n createValidator,\n getValidityAnchor,\n mixinConstraintValidation,\n} from '../../labs/behaviors/constraint-validation.js';\nimport {mixinElementInternals} from '../../labs/behaviors/element-internals.js';\nimport {\n getFormValue,\n mixinFormAssociated,\n} from '../../labs/behaviors/form-associated.js';\nimport {\n mixinOnReportValidity,\n onReportValidity,\n} from '../../labs/behaviors/on-report-validity.js';\nimport {SelectValidator} from '../../labs/behaviors/validators/select-validator.js';\nimport {getActiveItem} from '../../list/internal/list-navigation-helpers.js';\nimport {\n CloseMenuEvent,\n FocusState,\n isElementInSubtree,\n isSelectableKey,\n} from '../../menu/internal/controllers/shared.js';\nimport {TYPEAHEAD_RECORD} from '../../menu/internal/controllers/typeaheadController.js';\nimport {DEFAULT_TYPEAHEAD_BUFFER_TIME, Menu} from '../../menu/internal/menu.js';\nimport {SelectOption} from './selectoption/select-option.js';\nimport {\n createRequestDeselectionEvent,\n createRequestSelectionEvent,\n} from './selectoption/selectOptionController.js';\nimport {getSelectedItems, SelectOptionRecord} from './shared.js';\n\nconst VALUE = Symbol('value');\n\n// Separate variable needed for closure.\nconst selectBaseClass = mixinDelegatesAria(\n mixinOnReportValidity(\n mixinConstraintValidation(\n mixinFormAssociated(mixinElementInternals(LitElement)),\n ),\n ),\n);\n\n/**\n * @fires change {Event} The native `change` event on\n * [`<input>`](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event)\n * --bubbles\n * @fires input {InputEvent} The native `input` event on\n * [`<input>`](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/input_event)\n * --bubbles --composed\n * @fires opening {Event} Fired when the select's menu is about to open.\n * @fires opened {Event} Fired when the select's menu has finished animations\n * and opened.\n * @fires closing {Event} Fired when the select's menu is about to close.\n * @fires closed {Event} Fired when the select's menu has finished animations\n * and closed.\n */\nexport abstract class Select extends selectBaseClass {\n /** @nocollapse */\n static override shadowRootOptions = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n\n /**\n * Opens the menu synchronously with no animation.\n */\n @property({type: Boolean}) quick = false;\n\n /**\n * Whether or not the select is required.\n */\n @property({type: Boolean}) required = false;\n\n /**\n * The error message that replaces supporting text when `error` is true. If\n * `errorText` is an empty string, then the supporting text will continue to\n * show.\n *\n * This error message overrides the error message displayed by\n * `reportValidity()`.\n */\n @property({type: String, attribute: 'error-text'}) errorText = '';\n\n /**\n * The floating label for the field.\n */\n @property() label = '';\n\n /**\n * Disables the asterisk on the floating label, when the select is\n * required.\n */\n @property({type: Boolean, attribute: 'no-asterisk'}) noAsterisk = false;\n\n /**\n * Conveys additional information below the select, such as how it should\n * be used.\n */\n @property({type: String, attribute: 'supporting-text'}) supportingText = '';\n\n /**\n * Gets or sets whether or not the select is in a visually invalid state.\n *\n * This error state overrides the error state controlled by\n * `reportValidity()`.\n */\n @property({type: Boolean, reflect: true}) error = false;\n\n /**\n * Whether or not the underlying md-menu should be position: fixed to display\n * in a top-level manner, or position: absolute.\n *\n * position:fixed is useful for cases where select is inside of another\n * element with stacking context and hidden overflows such as `md-dialog`.\n */\n @property({attribute: 'menu-positioning'})\n menuPositioning: 'absolute' | 'fixed' | 'popover' = 'popover';\n\n /**\n * Clamps the menu-width to the width of the select.\n */\n @property({type: Boolean, attribute: 'clamp-menu-width'})\n clampMenuWidth = false;\n\n /**\n * The max time between the keystrokes of the typeahead select / menu behavior\n * before it clears the typeahead buffer.\n */\n @property({type: Number, attribute: 'typeahead-delay'})\n typeaheadDelay = DEFAULT_TYPEAHEAD_BUFFER_TIME;\n\n /**\n * Whether or not the text field has a leading icon. Used for SSR.\n */\n @property({type: Boolean, attribute: 'has-leading-icon'})\n hasLeadingIcon = false;\n\n /**\n * Text to display in the field. Only set for SSR.\n */\n @property({attribute: 'display-text'}) displayText = '';\n\n /**\n * Whether the menu should be aligned to the start or the end of the select's\n * textbox.\n */\n @property({attribute: 'menu-align'}) menuAlign: 'start' | 'end' = 'start';\n\n /**\n * The value of the currently selected option.\n *\n * Note: For SSR, set `[selected]` on the requested option and `displayText`\n * rather than setting `value` setting `value` will incur a DOM query.\n */\n @property()\n get value(): string {\n return this[VALUE];\n }\n\n set value(value: string) {\n if (isServer) return;\n this.lastUserSetValue = value;\n this.select(value);\n }\n\n [VALUE] = '';\n\n get options() {\n // NOTE: this does a DOM query.\n return (this.menu?.items ?? []) as SelectOption[];\n }\n\n /**\n * The index of the currently selected option.\n *\n * Note: For SSR, set `[selected]` on the requested option and `displayText`\n * rather than setting `selectedIndex` setting `selectedIndex` will incur a\n * DOM query.\n */\n @property({type: Number, attribute: 'selected-index'})\n get selectedIndex(): number {\n // tslint:disable-next-line:enforce-name-casing\n const [_option, index] = (this.getSelectedOptions() ?? [])[0] ?? [];\n return index ?? -1;\n }\n\n set selectedIndex(index: number) {\n this.lastUserSetSelectedIndex = index;\n this.selectIndex(index);\n }\n\n /**\n * Returns an array of selected options.\n *\n * NOTE: md-select only supports single selection.\n */\n get selectedOptions() {\n return (this.getSelectedOptions() ?? []).map(([option]) => option);\n }\n\n protected abstract readonly fieldTag: StaticValue;\n\n /**\n * Used for initializing select when the user sets the `value` directly.\n */\n private lastUserSetValue: string | null = null;\n\n /**\n * Used for initializing select when the user sets the `selectedIndex`\n * directly.\n */\n private lastUserSetSelectedIndex: number | null = null;\n\n /**\n * Used for `input` and `change` event change detection.\n */\n private lastSelectedOption: SelectOption | null = null;\n\n // tslint:disable-next-line:enforce-name-casing\n private lastSelectedOptionRecords: SelectOptionRecord[] = [];\n\n /**\n * Whether or not a native error has been reported via `reportValidity()`.\n */\n @state() private nativeError = false;\n\n /**\n * The validation message displayed from a native error via\n * `reportValidity()`.\n */\n @state() private nativeErrorText = '';\n private get hasError() {\n return this.error || this.nativeError;\n }\n\n @state() private focused = false;\n @state() private open = false;\n @state() private defaultFocus: FocusState = FocusState.NONE;\n @query('.field') private readonly field!: Field | null;\n @query('md-menu') private readonly menu!: Menu | null;\n @query('#label') private readonly labelEl!: HTMLElement;\n @queryAssignedElements({slot: 'leading-icon', flatten: true})\n private readonly leadingIcons!: Element[];\n // Have to keep track of previous open because it's state and private and thus\n // cannot be tracked in PropertyValues<this> map.\n private prevOpen = this.open;\n private selectWidth = 0;\n\n constructor() {\n super();\n if (isServer) {\n return;\n }\n\n this.addEventListener('focus', this.handleFocus.bind(this));\n this.addEventListener('blur', this.handleBlur.bind(this));\n }\n\n /**\n * Selects an option given the value of the option, and updates MdSelect's\n * value.\n */\n select(value: string) {\n const optionToSelect = this.options.find(\n (option) => option.value === value,\n );\n if (optionToSelect) {\n this.selectItem(optionToSelect);\n }\n }\n\n /**\n * Selects an option given the index of the option, and updates MdSelect's\n * value.\n */\n selectIndex(index: number) {\n const optionToSelect = this.options[index];\n if (optionToSelect) {\n this.selectItem(optionToSelect);\n }\n }\n\n /**\n * Reset the select to its default value.\n */\n reset() {\n for (const option of this.options) {\n option.selected = option.hasAttribute('selected');\n }\n\n this.updateValueAndDisplayText();\n this.nativeError = false;\n this.nativeErrorText = '';\n }\n\n /** Shows the picker. If it's already open, this is a no-op. */\n showPicker() {\n this.open = true;\n }\n\n override [onReportValidity](invalidEvent: Event | null) {\n // Prevent default pop-up behavior.\n invalidEvent?.preventDefault();\n\n const prevMessage = this.getErrorText();\n this.nativeError = !!invalidEvent;\n this.nativeErrorText = this.validationMessage;\n\n if (prevMessage === this.getErrorText()) {\n this.field?.reannounceError();\n }\n }\n\n protected override update(changed: PropertyValues<Select>) {\n // In SSR the options will be ready to query, so try to figure out what\n // the value and display text should be.\n if (!this.hasUpdated) {\n this.initUserSelection();\n }\n\n // We have just opened the menu.\n // We are only able to check for the select's rect in `update()` instead of\n // having to wait for `updated()` because the menu can never be open on\n // first render since it is not settable and Lit SSR does not support click\n // events which would open the menu.\n if (this.prevOpen !== this.open && this.open) {\n const selectRect = this.getBoundingClientRect();\n this.selectWidth = selectRect.width;\n }\n\n this.prevOpen = this.open;\n super.update(changed);\n }\n\n protected override render() {\n return html`\n <span\n class=\"select ${classMap(this.getRenderClasses())}\"\n @focusout=${this.handleFocusout}>\n ${this.renderField()} ${this.renderMenu()}\n </span>\n `;\n }\n\n protected override async firstUpdated(changed: PropertyValues<Select>) {\n await this.menu?.updateComplete;\n // If this has been handled on update already due to SSR, try again.\n if (!this.lastSelectedOptionRecords.length) {\n this.initUserSelection();\n }\n\n // Case for when the DOM is streaming, there are no children, and a child\n // has [selected] set on it, we need to wait for DOM to render something.\n if (\n !this.lastSelectedOptionRecords.length &&\n !isServer &&\n !this.options.length\n ) {\n setTimeout(() => {\n this.updateValueAndDisplayText();\n });\n }\n\n super.firstUpdated(changed);\n }\n\n private getRenderClasses(): ClassInfo {\n return {\n 'disabled': this.disabled,\n 'error': this.error,\n 'open': this.open,\n };\n }\n\n private renderField() {\n const ariaLabel = (this as ARIAMixinStrict).ariaLabel || this.label;\n return staticHtml`\n <${this.fieldTag}\n aria-haspopup=\"listbox\"\n role=\"combobox\"\n part=\"field\"\n id=\"field\"\n tabindex=${this.disabled ? '-1' : '0'}\n aria-label=${ariaLabel || nothing}\n aria-describedby=\"description\"\n aria-expanded=${this.open ? 'true' : 'false'}\n aria-controls=\"listbox\"\n class=\"field\"\n label=${this.label}\n ?no-asterisk=${this.noAsterisk}\n .focused=${this.focused || this.open}\n .populated=${!!this.displayText}\n .disabled=${this.disabled}\n .required=${this.required}\n .error=${this.hasError}\n ?has-start=${this.hasLeadingIcon}\n has-end\n supporting-text=${this.supportingText}\n error-text=${this.getErrorText()}\n @keydown=${this.handleKeydown}\n @click=${this.handleClick}>\n ${this.renderFieldContent()}\n <div id=\"description\" slot=\"aria-describedby\"></div>\n </${this.fieldTag}>`;\n }\n\n private renderFieldContent() {\n return [\n this.renderLeadingIcon(),\n this.renderLabel(),\n this.renderTrailingIcon(),\n ];\n }\n\n private renderLeadingIcon() {\n return html`\n <span class=\"icon leading\" slot=\"start\">\n <slot name=\"leading-icon\" @slotchange=${this.handleIconChange}></slot>\n </span>\n `;\n }\n\n private renderTrailingIcon() {\n return html`\n <span class=\"icon trailing\" slot=\"end\">\n <slot name=\"trailing-icon\" @slotchange=${this.handleIconChange}>\n <svg height=\"5\" viewBox=\"7 10 10 5\" focusable=\"false\">\n <polygon\n class=\"down\"\n stroke=\"none\"\n fill-rule=\"evenodd\"\n points=\"7 10 12 15 17 10\"></polygon>\n <polygon\n class=\"up\"\n stroke=\"none\"\n fill-rule=\"evenodd\"\n points=\"7 15 12 10 17 15\"></polygon>\n </svg>\n </slot>\n </span>\n `;\n }\n\n private renderLabel() {\n // need to render &nbsp; so that line-height can apply and give it a\n // non-zero height\n return html`<div id=\"label\">${this.displayText || html`&nbsp;`}</div>`;\n }\n\n private renderMenu() {\n const ariaLabel = this.label || (this as ARIAMixinStrict).ariaLabel;\n return html`<div class=\"menu-wrapper\">\n <md-menu\n id=\"listbox\"\n .defaultFocus=${this.defaultFocus}\n role=\"listbox\"\n tabindex=\"-1\"\n aria-label=${ariaLabel || nothing}\n stay-open-on-focusout\n part=\"menu\"\n exportparts=\"focus-ring: menu-focus-ring\"\n anchor=\"field\"\n style=${styleMap({\n '--__menu-min-width': `${this.selectWidth}px`,\n '--__menu-max-width': this.clampMenuWidth\n ? `${this.selectWidth}px`\n : undefined,\n })}\n no-navigation-wrap\n .open=${this.open}\n .quick=${this.quick}\n .positioning=${this.menuPositioning}\n .typeaheadDelay=${this.typeaheadDelay}\n .anchorCorner=${this.menuAlign === 'start' ? 'end-start' : 'end-end'}\n .menuCorner=${this.menuAlign === 'start' ? 'start-start' : 'start-end'}\n @opening=${this.handleOpening}\n @opened=${this.redispatchEvent}\n @closing=${this.redispatchEvent}\n @closed=${this.handleClosed}\n @close-menu=${this.handleCloseMenu}\n @request-selection=${this.handleRequestSelection}\n @request-deselection=${this.handleRequestDeselection}>\n ${this.renderMenuContent()}\n </md-menu>\n </div>`;\n }\n\n private renderMenuContent() {\n return html`<slot></slot>`;\n }\n\n /**\n * Handles opening the select on keydown and typahead selection when the menu\n * is closed.\n */\n private handleKeydown(event: KeyboardEvent) {\n if (this.open || this.disabled || !this.menu) {\n return;\n }\n\n const typeaheadController = this.menu.typeaheadController;\n const isOpenKey =\n event.code === 'Space' ||\n event.code === 'ArrowDown' ||\n event.code === 'ArrowUp' ||\n event.code === 'End' ||\n event.code === 'Home' ||\n event.code === 'Enter';\n\n // Do not open if currently typing ahead because the user may be typing the\n // spacebar to match a word with a space\n if (!typeaheadController.isTypingAhead && isOpenKey) {\n event.preventDefault();\n this.open = true;\n\n // https://www.w3.org/WAI/ARIA/apg/patterns/combobox/examples/combobox-select-only/#kbd_label\n switch (event.code) {\n case 'Space':\n case 'ArrowDown':\n case 'Enter':\n // We will handle focusing last selected item in this.handleOpening()\n this.defaultFocus = FocusState.NONE;\n break;\n case 'End':\n this.defaultFocus = FocusState.LAST_ITEM;\n break;\n case 'ArrowUp':\n case 'Home':\n this.defaultFocus = FocusState.FIRST_ITEM;\n break;\n default:\n break;\n }\n return;\n }\n\n const isPrintableKey = event.key.length === 1;\n\n // Handles typing ahead when the menu is closed by delegating the event to\n // the underlying menu's typeaheadController\n if (isPrintableKey) {\n typeaheadController.onKeydown(event);\n event.preventDefault();\n\n const {lastActiveRecord} = typeaheadController;\n\n if (!lastActiveRecord) {\n return;\n }\n\n this.labelEl?.setAttribute?.('aria-live', 'polite');\n const hasChanged = this.selectItem(\n lastActiveRecord[TYPEAHEAD_RECORD.ITEM] as SelectOption,\n );\n\n if (hasChanged) {\n this.dispatchInteractionEvents();\n }\n }\n }\n\n private handleClick() {\n this.open = !this.open;\n }\n\n private handleFocus() {\n this.focused = true;\n }\n\n private handleBlur() {\n this.focused = false;\n }\n\n /**\n * Handles closing the menu when the focus leaves the select's subtree.\n */\n private handleFocusout(event: FocusEvent) {\n // Don't close the menu if we are switching focus between menu,\n // select-option, and field\n if (event.relatedTarget && isElementInSubtree(event.relatedTarget, this)) {\n return;\n }\n\n this.open = false;\n }\n\n /**\n * Gets a list of all selected select options as a list item record array.\n *\n * @return An array of selected list option records.\n */\n private getSelectedOptions() {\n if (!this.menu) {\n this.lastSelectedOptionRecords = [];\n return null;\n }\n\n const items = this.menu.items as SelectOption[];\n this.lastSelectedOptionRecords = getSelectedItems(items);\n return this.lastSelectedOptionRecords;\n }\n\n override async getUpdateComplete() {\n await this.menu?.updateComplete;\n return super.getUpdateComplete();\n }\n\n /**\n * Gets the selected options from the DOM, and updates the value and display\n * text to the first selected option's value and headline respectively.\n *\n * @return Whether or not the selected option has changed since last update.\n */\n private updateValueAndDisplayText() {\n const selectedOptions = this.getSelectedOptions() ?? [];\n // Used to determine whether or not we need to fire an input / change event\n // which fire whenever the option element changes (value or selectedIndex)\n // on user interaction.\n let hasSelectedOptionChanged = false;\n\n if (selectedOptions.length) {\n const [firstSelectedOption] = selectedOptions[0];\n hasSelectedOptionChanged =\n this.lastSelectedOption !== firstSelectedOption;\n this.lastSelectedOption = firstSelectedOption;\n this[VALUE] = firstSelectedOption.value;\n this.displayText = firstSelectedOption.displayText;\n } else {\n hasSelectedOptionChanged = this.lastSelectedOption !== null;\n this.lastSelectedOption = null;\n this[VALUE] = '';\n this.displayText = '';\n }\n\n return hasSelectedOptionChanged;\n }\n\n /**\n * Focuses and activates the last selected item upon opening, and resets other\n * active items.\n */\n private async handleOpening(e: Event) {\n this.labelEl?.removeAttribute?.('aria-live');\n this.redispatchEvent(e);\n\n // FocusState.NONE means we want to handle focus ourselves and focus the\n // last selected item.\n if (this.defaultFocus !== FocusState.NONE) {\n return;\n }\n\n const items = this.menu!.items as SelectOption[];\n const activeItem = getActiveItem(items)?.item;\n let [selectedItem] = this.lastSelectedOptionRecords[0] ?? [null];\n\n // This is true if the user keys through the list but clicks out of the menu\n // thus no close-menu event is fired by an item and we can't clean up in\n // handleCloseMenu.\n if (activeItem && activeItem !== selectedItem) {\n activeItem.tabIndex = -1;\n }\n\n // in the case that nothing is selected, focus the first item\n selectedItem = selectedItem ?? items[0];\n\n if (selectedItem) {\n selectedItem.tabIndex = 0;\n selectedItem.focus();\n }\n }\n\n private redispatchEvent(e: Event) {\n redispatchEvent(this, e);\n }\n\n private handleClosed(e: Event) {\n this.open = false;\n this.redispatchEvent(e);\n }\n\n /**\n * Determines the reason for closing, and updates the UI accordingly.\n */\n private handleCloseMenu(event: CloseMenuEvent) {\n const reason = event.detail.reason;\n const item = event.detail.itemPath[0] as SelectOption;\n this.open = false;\n let hasChanged = false;\n\n if (reason.kind === 'click-selection') {\n hasChanged = this.selectItem(item);\n } else if (reason.kind === 'keydown' && isSelectableKey(reason.key)) {\n hasChanged = this.selectItem(item);\n } else {\n // This can happen on ESC being pressed\n item.tabIndex = -1;\n item.blur();\n }\n\n // Dispatch interaction events since selection has been made via keyboard\n // or mouse.\n if (hasChanged) {\n this.dispatchInteractionEvents();\n }\n }\n\n /**\n * Selects a given option, deselects other options, and updates the UI.\n *\n * @return Whether the last selected option has changed.\n */\n private selectItem(item: SelectOption) {\n const selectedOptions = this.getSelectedOptions() ?? [];\n selectedOptions.forEach(([option]) => {\n if (item !== option) {\n option.selected = false;\n option.tabIndex = -1;\n }\n });\n item.selected = true;\n item.tabIndex = 0;\n\n return this.updateValueAndDisplayText();\n }\n\n /**\n * Handles updating selection when an option element requests selection via\n * property / attribute change.\n */\n private handleRequestSelection(\n event: ReturnType<typeof createRequestSelectionEvent>,\n ) {\n const requestingOptionEl = event.target as SelectOption & HTMLElement;\n\n // No-op if this item is already selected.\n if (\n this.lastSelectedOptionRecords.some(\n ([option]) => option === requestingOptionEl,\n )\n ) {\n return;\n }\n\n this.selectItem(requestingOptionEl);\n }\n\n /**\n * Handles updating selection when an option element requests deselection via\n * property / attribute change.\n */\n private handleRequestDeselection(\n event: ReturnType<typeof createRequestDeselectionEvent>,\n ) {\n const requestingOptionEl = event.target as SelectOption & HTMLElement;\n\n // No-op if this item is not even in the list of tracked selected items.\n if (\n !this.lastSelectedOptionRecords.some(\n ([option]) => option === requestingOptionEl,\n )\n ) {\n return;\n }\n\n this.updateValueAndDisplayText();\n }\n\n /**\n * Attempts to initialize the selected option from user-settable values like\n * SSR, setting `value`, or `selectedIndex` at startup.\n */\n private initUserSelection() {\n // User has set `.value` directly, but internals have not yet booted up.\n if (this.lastUserSetValue && !this.lastSelectedOptionRecords.length) {\n this.select(this.lastUserSetValue);\n\n // User has set `.selectedIndex` directly, but internals have not yet\n // booted up.\n } else if (\n this.lastUserSetSelectedIndex !== null &&\n !this.lastSelectedOptionRecords.length\n ) {\n this.selectIndex(this.lastUserSetSelectedIndex);\n\n // Regular boot up!\n } else {\n this.updateValueAndDisplayText();\n }\n }\n\n private handleIconChange() {\n this.hasLeadingIcon = this.leadingIcons.length > 0;\n }\n\n /**\n * Dispatches the `input` and `change` events.\n */\n private dispatchInteractionEvents() {\n this.dispatchEvent(new Event('input', {bubbles: true, composed: true}));\n this.dispatchEvent(new Event('change', {bubbles: true}));\n }\n\n private getErrorText() {\n return this.error ? this.errorText : this.nativeErrorText;\n }\n\n // Writable mixin properties for lit-html binding, needed for lit-analyzer\n declare disabled: boolean;\n declare name: string;\n\n override [getFormValue]() {\n return this.value;\n }\n\n override formResetCallback() {\n this.reset();\n }\n\n override formStateRestoreCallback(state: string) {\n this.value = state;\n }\n\n override click() {\n this.field?.click();\n }\n\n override [createValidator]() {\n return new SelectValidator(() => this);\n }\n\n override [getValidityAnchor]() {\n return this.field;\n }\n}\n"]}
1
+ {"version":3,"file":"select.js","sourceRoot":"","sources":["select.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport '../../menu/menu.js';\n\nimport {html, isServer, LitElement, nothing, PropertyValues} from 'lit';\nimport {property, query, queryAssignedElements, state} from 'lit/decorators.js';\nimport {ClassInfo, classMap} from 'lit/directives/class-map.js';\nimport {styleMap} from 'lit/directives/style-map.js';\nimport {html as staticHtml, StaticValue} from 'lit/static-html.js';\n\nimport {Field} from '../../field/internal/field.js';\nimport {ARIAMixinStrict} from '../../internal/aria/aria.js';\nimport {mixinDelegatesAria} from '../../internal/aria/delegate.js';\nimport {redispatchEvent} from '../../internal/events/redispatch-event.js';\nimport {\n createValidator,\n getValidityAnchor,\n mixinConstraintValidation,\n} from '../../labs/behaviors/constraint-validation.js';\nimport {mixinElementInternals} from '../../labs/behaviors/element-internals.js';\nimport {\n getFormValue,\n mixinFormAssociated,\n} from '../../labs/behaviors/form-associated.js';\nimport {\n mixinOnReportValidity,\n onReportValidity,\n} from '../../labs/behaviors/on-report-validity.js';\nimport {SelectValidator} from '../../labs/behaviors/validators/select-validator.js';\nimport {getActiveItem} from '../../list/internal/list-navigation-helpers.js';\nimport {\n CloseMenuEvent,\n FocusState,\n isElementInSubtree,\n isSelectableKey,\n} from '../../menu/internal/controllers/shared.js';\nimport {TYPEAHEAD_RECORD} from '../../menu/internal/controllers/typeaheadController.js';\nimport {DEFAULT_TYPEAHEAD_BUFFER_TIME, Menu} from '../../menu/internal/menu.js';\nimport {SelectOption} from './selectoption/select-option.js';\nimport {\n createRequestDeselectionEvent,\n createRequestSelectionEvent,\n} from './selectoption/selectOptionController.js';\nimport {getSelectedItems, SelectOptionRecord} from './shared.js';\n\nconst VALUE = Symbol('value');\n\n// Separate variable needed for closure.\nconst selectBaseClass = mixinDelegatesAria(\n mixinOnReportValidity(\n mixinConstraintValidation(\n mixinFormAssociated(mixinElementInternals(LitElement)),\n ),\n ),\n);\n\n/**\n * @fires change {Event} The native `change` event on\n * [`<input>`](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event)\n * --bubbles\n * @fires input {InputEvent} The native `input` event on\n * [`<input>`](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/input_event)\n * --bubbles --composed\n * @fires opening {Event} Fired when the select's menu is about to open.\n * @fires opened {Event} Fired when the select's menu has finished animations\n * and opened.\n * @fires closing {Event} Fired when the select's menu is about to close.\n * @fires closed {Event} Fired when the select's menu has finished animations\n * and closed.\n */\nexport abstract class Select extends selectBaseClass {\n /** @nocollapse */\n static override shadowRootOptions = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n\n /**\n * Opens the menu synchronously with no animation.\n */\n @property({type: Boolean}) quick = false;\n\n /**\n * Whether or not the select is required.\n */\n @property({type: Boolean}) required = false;\n\n /**\n * The error message that replaces supporting text when `error` is true. If\n * `errorText` is an empty string, then the supporting text will continue to\n * show.\n *\n * This error message overrides the error message displayed by\n * `reportValidity()`.\n */\n @property({type: String, attribute: 'error-text'}) errorText = '';\n\n /**\n * The floating label for the field.\n */\n @property() label = '';\n\n /**\n * Disables the asterisk on the floating label, when the select is\n * required.\n */\n @property({type: Boolean, attribute: 'no-asterisk'}) noAsterisk = false;\n\n /**\n * Conveys additional information below the select, such as how it should\n * be used.\n */\n @property({type: String, attribute: 'supporting-text'}) supportingText = '';\n\n /**\n * Gets or sets whether or not the select is in a visually invalid state.\n *\n * This error state overrides the error state controlled by\n * `reportValidity()`.\n */\n @property({type: Boolean, reflect: true}) error = false;\n\n /**\n * Whether or not the underlying md-menu should be position: fixed to display\n * in a top-level manner, or position: absolute.\n *\n * position:fixed is useful for cases where select is inside of another\n * element with stacking context and hidden overflows such as `md-dialog`.\n */\n @property({attribute: 'menu-positioning'})\n menuPositioning: 'absolute' | 'fixed' | 'popover' = 'popover';\n\n /**\n * Clamps the menu-width to the width of the select.\n */\n @property({type: Boolean, attribute: 'clamp-menu-width'})\n clampMenuWidth = false;\n\n /**\n * The max time between the keystrokes of the typeahead select / menu behavior\n * before it clears the typeahead buffer.\n */\n @property({type: Number, attribute: 'typeahead-delay'})\n typeaheadDelay = DEFAULT_TYPEAHEAD_BUFFER_TIME;\n\n /**\n * Whether or not the text field has a leading icon. Used for SSR.\n */\n @property({type: Boolean, attribute: 'has-leading-icon'})\n hasLeadingIcon = false;\n\n /**\n * Text to display in the field. Only set for SSR.\n */\n @property({attribute: 'display-text'}) displayText = '';\n\n /**\n * Whether the menu should be aligned to the start or the end of the select's\n * textbox.\n */\n @property({attribute: 'menu-align'}) menuAlign: 'start' | 'end' = 'start';\n\n /**\n * The value of the currently selected option.\n *\n * Note: For SSR, set `[selected]` on the requested option and `displayText`\n * rather than setting `value` setting `value` will incur a DOM query.\n */\n @property()\n get value(): string {\n return this[VALUE];\n }\n\n set value(value: string) {\n if (isServer) return;\n this.lastUserSetValue = value;\n this.select(value);\n }\n\n [VALUE] = '';\n\n get options() {\n // NOTE: this does a DOM query.\n return (this.menu?.items ?? []) as SelectOption[];\n }\n\n /**\n * The index of the currently selected option.\n *\n * Note: For SSR, set `[selected]` on the requested option and `displayText`\n * rather than setting `selectedIndex` setting `selectedIndex` will incur a\n * DOM query.\n */\n @property({type: Number, attribute: 'selected-index'})\n get selectedIndex(): number {\n // tslint:disable-next-line:enforce-name-casing\n const [_option, index] = (this.getSelectedOptions() ?? [])[0] ?? [];\n return index ?? -1;\n }\n\n set selectedIndex(index: number) {\n this.lastUserSetSelectedIndex = index;\n this.selectIndex(index);\n }\n\n /**\n * Returns an array of selected options.\n *\n * NOTE: md-select only supports single selection.\n */\n get selectedOptions() {\n return (this.getSelectedOptions() ?? []).map(([option]) => option);\n }\n\n protected abstract readonly fieldTag: StaticValue;\n\n /**\n * Used for initializing select when the user sets the `value` directly.\n */\n private lastUserSetValue: string | null = null;\n\n /**\n * Used for initializing select when the user sets the `selectedIndex`\n * directly.\n */\n private lastUserSetSelectedIndex: number | null = null;\n\n /**\n * Used for `input` and `change` event change detection.\n */\n private lastSelectedOption: SelectOption | null = null;\n\n // tslint:disable-next-line:enforce-name-casing\n private lastSelectedOptionRecords: SelectOptionRecord[] = [];\n\n /**\n * Whether or not a native error has been reported via `reportValidity()`.\n */\n @state() private nativeError = false;\n\n /**\n * The validation message displayed from a native error via\n * `reportValidity()`.\n */\n @state() private nativeErrorText = '';\n private get hasError() {\n return this.error || this.nativeError;\n }\n\n @state() private focused = false;\n @state() private open = false;\n @state() private defaultFocus: FocusState = FocusState.NONE;\n @query('.field') private readonly field!: Field | null;\n @query('md-menu') private readonly menu!: Menu | null;\n @query('#label') private readonly labelEl!: HTMLElement;\n @queryAssignedElements({slot: 'leading-icon', flatten: true})\n private readonly leadingIcons!: Element[];\n // Have to keep track of previous open because it's state and private and thus\n // cannot be tracked in PropertyValues<this> map.\n private prevOpen = this.open;\n private selectWidth = 0;\n\n constructor() {\n super();\n if (isServer) {\n return;\n }\n\n this.addEventListener('focus', this.handleFocus.bind(this));\n this.addEventListener('blur', this.handleBlur.bind(this));\n }\n\n /**\n * Selects an option given the value of the option, and updates MdSelect's\n * value.\n */\n select(value: string) {\n const optionToSelect = this.options.find(\n (option) => option.value === value,\n );\n if (optionToSelect) {\n this.selectItem(optionToSelect);\n }\n }\n\n /**\n * Selects an option given the index of the option, and updates MdSelect's\n * value.\n */\n selectIndex(index: number) {\n const optionToSelect = this.options[index];\n if (optionToSelect) {\n this.selectItem(optionToSelect);\n }\n }\n\n /**\n * Reset the select to its default value.\n */\n reset() {\n for (const option of this.options) {\n option.selected = option.hasAttribute('selected');\n }\n\n this.updateValueAndDisplayText();\n this.nativeError = false;\n this.nativeErrorText = '';\n }\n\n /** Shows the picker. If it's already open, this is a no-op. */\n showPicker() {\n this.open = true;\n }\n\n override [onReportValidity](invalidEvent: Event | null) {\n // Prevent default pop-up behavior.\n invalidEvent?.preventDefault();\n\n const prevMessage = this.getErrorText();\n this.nativeError = !!invalidEvent;\n this.nativeErrorText = this.validationMessage;\n\n if (prevMessage === this.getErrorText()) {\n this.field?.reannounceError();\n }\n }\n\n protected override update(changed: PropertyValues<Select>) {\n // In SSR the options will be ready to query, so try to figure out what\n // the value and display text should be.\n if (!this.hasUpdated) {\n this.initUserSelection();\n }\n\n // We have just opened the menu.\n // We are only able to check for the select's rect in `update()` instead of\n // having to wait for `updated()` because the menu can never be open on\n // first render since it is not settable and Lit SSR does not support click\n // events which would open the menu.\n if (this.prevOpen !== this.open && this.open) {\n const selectRect = this.getBoundingClientRect();\n this.selectWidth = selectRect.width;\n }\n\n this.prevOpen = this.open;\n super.update(changed);\n }\n\n protected override render() {\n return html`\n <span\n class=\"select ${classMap(this.getRenderClasses())}\"\n @focusout=${this.handleFocusout}>\n ${this.renderField()} ${this.renderMenu()}\n </span>\n `;\n }\n\n protected override async firstUpdated(changed: PropertyValues<Select>) {\n await this.menu?.updateComplete;\n // If this has been handled on update already due to SSR, try again.\n if (!this.lastSelectedOptionRecords.length) {\n this.initUserSelection();\n }\n\n // Case for when the DOM is streaming, there are no children, and a child\n // has [selected] set on it, we need to wait for DOM to render something.\n if (\n !this.lastSelectedOptionRecords.length &&\n !isServer &&\n !this.options.length\n ) {\n setTimeout(() => {\n this.updateValueAndDisplayText();\n });\n }\n\n super.firstUpdated(changed);\n }\n\n private getRenderClasses(): ClassInfo {\n return {\n 'disabled': this.disabled,\n 'error': this.error,\n 'open': this.open,\n };\n }\n\n private renderField() {\n const ariaLabel = (this as ARIAMixinStrict).ariaLabel || this.label;\n return staticHtml`\n <${this.fieldTag}\n aria-haspopup=\"listbox\"\n role=\"combobox\"\n part=\"field\"\n id=\"field\"\n tabindex=${this.disabled ? '-1' : '0'}\n aria-label=${ariaLabel || nothing}\n aria-describedby=\"description\"\n aria-expanded=${this.open ? 'true' : 'false'}\n aria-controls=\"listbox\"\n class=\"field\"\n label=${this.label}\n ?no-asterisk=${this.noAsterisk}\n .focused=${this.focused || this.open}\n .populated=${!!this.displayText}\n .disabled=${this.disabled}\n .required=${this.required}\n .error=${this.hasError}\n ?has-start=${this.hasLeadingIcon}\n has-end\n supporting-text=${this.supportingText}\n error-text=${this.getErrorText()}\n @keydown=${this.handleKeydown}\n @click=${this.handleClick}>\n ${this.renderFieldContent()}\n <div id=\"description\" slot=\"aria-describedby\"></div>\n </${this.fieldTag}>`;\n }\n\n private renderFieldContent() {\n return [\n this.renderLeadingIcon(),\n this.renderLabel(),\n this.renderTrailingIcon(),\n ];\n }\n\n private renderLeadingIcon() {\n return html`\n <span class=\"icon leading\" slot=\"start\">\n <slot name=\"leading-icon\" @slotchange=${this.handleIconChange}></slot>\n </span>\n `;\n }\n\n private renderTrailingIcon() {\n return html`\n <span class=\"icon trailing\" slot=\"end\">\n <slot name=\"trailing-icon\" @slotchange=${this.handleIconChange}>\n <svg height=\"5\" viewBox=\"7 10 10 5\" focusable=\"false\">\n <polygon\n class=\"down\"\n stroke=\"none\"\n fill-rule=\"evenodd\"\n points=\"7 10 12 15 17 10\"></polygon>\n <polygon\n class=\"up\"\n stroke=\"none\"\n fill-rule=\"evenodd\"\n points=\"7 15 12 10 17 15\"></polygon>\n </svg>\n </slot>\n </span>\n `;\n }\n\n private renderLabel() {\n // need to render &nbsp; so that line-height can apply and give it a\n // non-zero height\n return html`<div id=\"label\">${this.displayText || html`&nbsp;`}</div>`;\n }\n\n private renderMenu() {\n const ariaLabel = this.label || (this as ARIAMixinStrict).ariaLabel;\n return html`<div class=\"menu-wrapper\">\n <md-menu\n id=\"listbox\"\n .defaultFocus=${this.defaultFocus}\n role=\"listbox\"\n tabindex=\"-1\"\n aria-label=${ariaLabel || nothing}\n stay-open-on-focusout\n part=\"menu\"\n exportparts=\"focus-ring: menu-focus-ring\"\n anchor=\"field\"\n style=${styleMap({\n '--__menu-min-width': `${this.selectWidth}px`,\n '--__menu-max-width': this.clampMenuWidth\n ? `${this.selectWidth}px`\n : undefined,\n })}\n no-navigation-wrap\n .open=${this.open}\n .quick=${this.quick}\n .positioning=${this.menuPositioning}\n .typeaheadDelay=${this.typeaheadDelay}\n .anchorCorner=${this.menuAlign === 'start' ? 'end-start' : 'end-end'}\n .menuCorner=${this.menuAlign === 'start' ? 'start-start' : 'start-end'}\n @opening=${this.handleOpening}\n @opened=${this.redispatchEvent}\n @closing=${this.redispatchEvent}\n @closed=${this.handleClosed}\n @close-menu=${this.handleCloseMenu}\n @request-selection=${this.handleRequestSelection}\n @request-deselection=${this.handleRequestDeselection}>\n ${this.renderMenuContent()}\n </md-menu>\n </div>`;\n }\n\n private renderMenuContent() {\n return html`<slot></slot>`;\n }\n\n /**\n * Handles opening the select on keydown and typahead selection when the menu\n * is closed.\n */\n private handleKeydown(event: KeyboardEvent) {\n if (this.open || this.disabled || !this.menu) {\n return;\n }\n\n const typeaheadController = this.menu.typeaheadController;\n const isOpenKey =\n event.code === 'Space' ||\n event.code === 'ArrowDown' ||\n event.code === 'ArrowUp' ||\n event.code === 'End' ||\n event.code === 'Home' ||\n event.code === 'Enter';\n\n // Do not open if currently typing ahead because the user may be typing the\n // spacebar to match a word with a space\n if (!typeaheadController.isTypingAhead && isOpenKey) {\n event.preventDefault();\n this.open = true;\n\n // https://www.w3.org/WAI/ARIA/apg/patterns/combobox/examples/combobox-select-only/#kbd_label\n switch (event.code) {\n case 'Space':\n case 'ArrowDown':\n case 'Enter':\n // We will handle focusing last selected item in this.handleOpening()\n this.defaultFocus = FocusState.NONE;\n break;\n case 'End':\n this.defaultFocus = FocusState.LAST_ITEM;\n break;\n case 'ArrowUp':\n case 'Home':\n this.defaultFocus = FocusState.FIRST_ITEM;\n break;\n default:\n break;\n }\n return;\n }\n\n const isPrintableKey = event.key.length === 1;\n\n // Handles typing ahead when the menu is closed by delegating the event to\n // the underlying menu's typeaheadController\n if (isPrintableKey) {\n typeaheadController.onKeydown(event);\n event.preventDefault();\n\n const {lastActiveRecord} = typeaheadController;\n\n if (!lastActiveRecord) {\n return;\n }\n\n this.labelEl?.setAttribute?.('aria-live', 'polite');\n const hasChanged = this.selectItem(\n lastActiveRecord[TYPEAHEAD_RECORD.ITEM] as SelectOption,\n );\n\n if (hasChanged) {\n this.dispatchInteractionEvents();\n }\n }\n }\n\n private handleClick() {\n this.open = !this.open;\n }\n\n private handleFocus() {\n this.focused = true;\n }\n\n private handleBlur() {\n this.focused = false;\n }\n\n /**\n * Handles closing the menu when the focus leaves the select's subtree.\n */\n private handleFocusout(event: FocusEvent) {\n // Don't close the menu if we are switching focus between menu,\n // select-option, and field\n if (event.relatedTarget && isElementInSubtree(event.relatedTarget, this)) {\n return;\n }\n\n this.open = false;\n }\n\n /**\n * Gets a list of all selected select options as a list item record array.\n *\n * @return An array of selected list option records.\n */\n private getSelectedOptions() {\n if (!this.menu) {\n this.lastSelectedOptionRecords = [];\n return null;\n }\n\n const items = this.menu.items as SelectOption[];\n this.lastSelectedOptionRecords = getSelectedItems(items);\n return this.lastSelectedOptionRecords;\n }\n\n override async getUpdateComplete() {\n await this.menu?.updateComplete;\n return super.getUpdateComplete();\n }\n\n /**\n * Gets the selected options from the DOM, and updates the value and display\n * text to the first selected option's value and headline respectively.\n *\n * @return Whether or not the selected option has changed since last update.\n */\n private updateValueAndDisplayText() {\n const selectedOptions = this.getSelectedOptions() ?? [];\n // Used to determine whether or not we need to fire an input / change event\n // which fire whenever the option element changes (value or selectedIndex)\n // on user interaction.\n let hasSelectedOptionChanged = false;\n\n if (selectedOptions.length) {\n const [firstSelectedOption] = selectedOptions[0];\n hasSelectedOptionChanged =\n this.lastSelectedOption !== firstSelectedOption;\n this.lastSelectedOption = firstSelectedOption;\n this[VALUE] = firstSelectedOption.value;\n this.displayText = firstSelectedOption.displayText;\n } else {\n hasSelectedOptionChanged = this.lastSelectedOption !== null;\n this.lastSelectedOption = null;\n this[VALUE] = '';\n this.displayText = '';\n }\n\n return hasSelectedOptionChanged;\n }\n\n /**\n * Focuses and activates the last selected item upon opening, and resets other\n * active items.\n */\n private async handleOpening(e: Event) {\n this.labelEl?.removeAttribute?.('aria-live');\n this.redispatchEvent(e);\n\n // FocusState.NONE means we want to handle focus ourselves and focus the\n // last selected item.\n if (this.defaultFocus !== FocusState.NONE) {\n return;\n }\n\n const items = this.menu!.items as SelectOption[];\n const activeItem = getActiveItem(items)?.item;\n let [selectedItem] = this.lastSelectedOptionRecords[0] ?? [null];\n\n // This is true if the user keys through the list but clicks out of the menu\n // thus no close-menu event is fired by an item and we can't clean up in\n // handleCloseMenu.\n if (activeItem && activeItem !== selectedItem) {\n activeItem.tabIndex = -1;\n }\n\n // in the case that nothing is selected, focus the first item\n selectedItem = selectedItem ?? items[0];\n\n if (selectedItem) {\n selectedItem.tabIndex = 0;\n selectedItem.focus();\n }\n }\n\n private redispatchEvent(e: Event) {\n redispatchEvent(this, e);\n }\n\n private handleClosed(e: Event) {\n this.open = false;\n this.redispatchEvent(e);\n }\n\n /**\n * Determines the reason for closing, and updates the UI accordingly.\n */\n private handleCloseMenu(event: CloseMenuEvent) {\n const reason = event.detail.reason;\n const item = event.detail.itemPath[0] as SelectOption;\n this.open = false;\n let hasChanged = false;\n\n if (reason.kind === 'click-selection') {\n hasChanged = this.selectItem(item);\n } else if (reason.kind === 'keydown' && isSelectableKey(reason.key)) {\n hasChanged = this.selectItem(item);\n } else {\n // This can happen on ESC being pressed\n item.tabIndex = -1;\n item.blur();\n }\n\n // Dispatch interaction events since selection has been made via keyboard\n // or mouse.\n if (hasChanged) {\n this.dispatchInteractionEvents();\n }\n }\n\n /**\n * Selects a given option, deselects other options, and updates the UI.\n *\n * @return Whether the last selected option has changed.\n */\n private selectItem(item: SelectOption) {\n const selectedOptions = this.getSelectedOptions() ?? [];\n selectedOptions.forEach(([option]) => {\n if (item !== option) {\n option.selected = false;\n option.tabIndex = -1;\n }\n });\n item.selected = true;\n item.tabIndex = 0;\n\n return this.updateValueAndDisplayText();\n }\n\n /**\n * Handles updating selection when an option element requests selection via\n * property / attribute change.\n */\n private handleRequestSelection(\n event: ReturnType<typeof createRequestSelectionEvent>,\n ) {\n const requestingOptionEl = event.target as SelectOption & HTMLElement;\n\n // No-op if this item is already selected.\n if (\n this.lastSelectedOptionRecords.some(\n ([option]) => option === requestingOptionEl,\n )\n ) {\n return;\n }\n\n this.selectItem(requestingOptionEl);\n }\n\n /**\n * Handles updating selection when an option element requests deselection via\n * property / attribute change.\n */\n private handleRequestDeselection(\n event: ReturnType<typeof createRequestDeselectionEvent>,\n ) {\n const requestingOptionEl = event.target as SelectOption & HTMLElement;\n\n // No-op if this item is not even in the list of tracked selected items.\n if (\n !this.lastSelectedOptionRecords.some(\n ([option]) => option === requestingOptionEl,\n )\n ) {\n return;\n }\n\n this.updateValueAndDisplayText();\n }\n\n /**\n * Attempts to initialize the selected option from user-settable values like\n * SSR, setting `value`, or `selectedIndex` at startup.\n */\n private initUserSelection() {\n // User has set `.value` directly, but internals have not yet booted up.\n if (this.lastUserSetValue && !this.lastSelectedOptionRecords.length) {\n this.select(this.lastUserSetValue);\n\n // User has set `.selectedIndex` directly, but internals have not yet\n // booted up.\n } else if (\n this.lastUserSetSelectedIndex !== null &&\n !this.lastSelectedOptionRecords.length\n ) {\n this.selectIndex(this.lastUserSetSelectedIndex);\n\n // Regular boot up!\n } else {\n this.updateValueAndDisplayText();\n }\n }\n\n private handleIconChange() {\n this.hasLeadingIcon = this.leadingIcons.length > 0;\n }\n\n /**\n * Dispatches the `input` and `change` events.\n */\n private dispatchInteractionEvents() {\n this.dispatchEvent(new Event('input', {bubbles: true, composed: true}));\n this.dispatchEvent(new Event('change', {bubbles: true}));\n }\n\n private getErrorText() {\n return this.error ? this.errorText : this.nativeErrorText;\n }\n\n override [getFormValue]() {\n return this.value;\n }\n\n override formResetCallback() {\n this.reset();\n }\n\n override formStateRestoreCallback(state: string) {\n this.value = state;\n }\n\n override click() {\n this.field?.click();\n }\n\n override [createValidator]() {\n return new SelectValidator(() => this);\n }\n\n override [getValidityAnchor]() {\n return this.field;\n }\n}\n"]}
@@ -47,6 +47,8 @@ export declare class SelectOptionEl extends selectOptionBaseClass implements Sel
47
47
  /** @nocollapse */
48
48
  static shadowRootOptions: {
49
49
  delegatesFocus: boolean;
50
+ clonable?: boolean;
51
+ customElementRegistry?: CustomElementRegistry;
50
52
  mode: ShadowRootMode;
51
53
  serializable?: boolean;
52
54
  slotAssignment?: SlotAssignmentMode;
@@ -6,8 +6,8 @@
6
6
  import { __decorate } from "tslib";
7
7
  import { customElement } from 'lit/decorators.js';
8
8
  import { OutlinedSelect } from './internal/outlined-select.js';
9
- import { styles } from './internal/outlined-select-styles.js';
10
- import { styles as sharedStyles } from './internal/shared-styles.js';
9
+ import { styles } from './internal/outlined-select-styles.cssresult.js';
10
+ import { styles as sharedStyles } from './internal/shared-styles.cssresult.js';
11
11
  /**
12
12
  * @summary
13
13
  * Select menus display a list of choices on temporary surfaces and display the