@expressivecss/expressive 0.15.0 → 0.17.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 (609) hide show
  1. package/CHANGELOG.md +1807 -1
  2. package/README.md +9 -8
  3. package/dist/css/expressive.css +19176 -11958
  4. package/dist/css/expressive.css.map +1 -1
  5. package/dist/css/expressive.min.css +1 -1
  6. package/dist/css/expressive.min.css.map +1 -1
  7. package/dist/fonts/LICENSE-noto-sans-arabic +93 -0
  8. package/dist/fonts/LICENSE-noto-sans-hebrew +93 -0
  9. package/dist/fonts/LICENSE-noto-sans-thai +93 -0
  10. package/dist/fonts/material-symbols-outlined.woff2 +0 -0
  11. package/dist/fonts/material-symbols-rounded.woff2 +0 -0
  12. package/dist/fonts/material-symbols-sharp.woff2 +0 -0
  13. package/dist/fonts/noto-sans-arabic-arabic-400.woff2 +0 -0
  14. package/dist/fonts/noto-sans-arabic-arabic-500.woff2 +0 -0
  15. package/dist/fonts/noto-sans-arabic-arabic-700.woff2 +0 -0
  16. package/dist/fonts/noto-sans-cyrillic-400.woff2 +0 -0
  17. package/dist/fonts/noto-sans-cyrillic-500.woff2 +0 -0
  18. package/dist/fonts/noto-sans-cyrillic-700.woff2 +0 -0
  19. package/dist/fonts/noto-sans-cyrillic-ext-400.woff2 +0 -0
  20. package/dist/fonts/noto-sans-cyrillic-ext-500.woff2 +0 -0
  21. package/dist/fonts/noto-sans-cyrillic-ext-700.woff2 +0 -0
  22. package/dist/fonts/noto-sans-devanagari-400.woff2 +0 -0
  23. package/dist/fonts/noto-sans-devanagari-500.woff2 +0 -0
  24. package/dist/fonts/noto-sans-devanagari-700.woff2 +0 -0
  25. package/dist/fonts/noto-sans-greek-400.woff2 +0 -0
  26. package/dist/fonts/noto-sans-greek-500.woff2 +0 -0
  27. package/dist/fonts/noto-sans-greek-700.woff2 +0 -0
  28. package/dist/fonts/noto-sans-greek-ext-400.woff2 +0 -0
  29. package/dist/fonts/noto-sans-greek-ext-500.woff2 +0 -0
  30. package/dist/fonts/noto-sans-greek-ext-700.woff2 +0 -0
  31. package/dist/fonts/noto-sans-hebrew-hebrew-400.woff2 +0 -0
  32. package/dist/fonts/noto-sans-hebrew-hebrew-500.woff2 +0 -0
  33. package/dist/fonts/noto-sans-hebrew-hebrew-700.woff2 +0 -0
  34. package/dist/fonts/noto-sans-latin-700.woff2 +0 -0
  35. package/dist/fonts/noto-sans-latin-ext-400.woff2 +0 -0
  36. package/dist/fonts/noto-sans-latin-ext-500.woff2 +0 -0
  37. package/dist/fonts/noto-sans-latin-ext-700.woff2 +0 -0
  38. package/dist/fonts/noto-sans-thai-thai-400.woff2 +0 -0
  39. package/dist/fonts/noto-sans-thai-thai-500.woff2 +0 -0
  40. package/dist/fonts/noto-sans-thai-thai-700.woff2 +0 -0
  41. package/dist/fonts/noto-sans-vietnamese-400.woff2 +0 -0
  42. package/dist/fonts/noto-sans-vietnamese-500.woff2 +0 -0
  43. package/dist/fonts/noto-sans-vietnamese-700.woff2 +0 -0
  44. package/dist/fonts/roboto-cyrillic-400.woff2 +0 -0
  45. package/dist/fonts/roboto-cyrillic-500.woff2 +0 -0
  46. package/dist/fonts/roboto-cyrillic-700.woff2 +0 -0
  47. package/dist/fonts/roboto-cyrillic-ext-400.woff2 +0 -0
  48. package/dist/fonts/roboto-cyrillic-ext-500.woff2 +0 -0
  49. package/dist/fonts/roboto-cyrillic-ext-700.woff2 +0 -0
  50. package/dist/fonts/roboto-greek-400.woff2 +0 -0
  51. package/dist/fonts/roboto-greek-500.woff2 +0 -0
  52. package/dist/fonts/roboto-greek-700.woff2 +0 -0
  53. package/dist/fonts/roboto-greek-ext-400.woff2 +0 -0
  54. package/dist/fonts/roboto-greek-ext-500.woff2 +0 -0
  55. package/dist/fonts/roboto-greek-ext-700.woff2 +0 -0
  56. package/dist/fonts/roboto-latin-700.woff2 +0 -0
  57. package/dist/fonts/roboto-latin-ext-400.woff2 +0 -0
  58. package/dist/fonts/roboto-latin-ext-500.woff2 +0 -0
  59. package/dist/fonts/roboto-latin-ext-700.woff2 +0 -0
  60. package/dist/fonts/roboto-vietnamese-400.woff2 +0 -0
  61. package/dist/fonts/roboto-vietnamese-500.woff2 +0 -0
  62. package/dist/fonts/roboto-vietnamese-700.woff2 +0 -0
  63. package/dist/js/chunks/chunk-26VUH75M.mjs +102 -0
  64. package/dist/js/chunks/chunk-26VUH75M.mjs.map +7 -0
  65. package/dist/js/chunks/chunk-2LFCOGC3.mjs +233 -0
  66. package/dist/js/chunks/chunk-2LFCOGC3.mjs.map +7 -0
  67. package/dist/js/chunks/{chunk-DXGRXYYL.mjs → chunk-36GELQGX.mjs} +29 -46
  68. package/dist/js/chunks/chunk-36GELQGX.mjs.map +7 -0
  69. package/dist/js/chunks/{chunk-74MXKKLN.mjs → chunk-3FKWIRHW.mjs} +15 -29
  70. package/dist/js/chunks/chunk-3FKWIRHW.mjs.map +7 -0
  71. package/dist/js/chunks/chunk-3KF65KGL.mjs +209 -0
  72. package/dist/js/chunks/chunk-3KF65KGL.mjs.map +7 -0
  73. package/dist/js/chunks/{chunk-KVJAVDBC.mjs → chunk-3KLZRQZI.mjs} +88 -116
  74. package/dist/js/chunks/chunk-3KLZRQZI.mjs.map +7 -0
  75. package/dist/js/chunks/{chunk-CK2XCICY.mjs → chunk-3XORNED5.mjs} +3 -11
  76. package/dist/js/chunks/chunk-3XORNED5.mjs.map +7 -0
  77. package/dist/js/chunks/chunk-4WBGAQN3.mjs +113 -0
  78. package/dist/js/chunks/chunk-4WBGAQN3.mjs.map +7 -0
  79. package/dist/js/chunks/{chunk-FM5CZOUB.mjs → chunk-5F4URJHL.mjs} +19 -30
  80. package/dist/js/chunks/chunk-5F4URJHL.mjs.map +7 -0
  81. package/dist/js/chunks/chunk-67UNY7RH.mjs +299 -0
  82. package/dist/js/chunks/chunk-67UNY7RH.mjs.map +7 -0
  83. package/dist/js/chunks/chunk-7CXNATJS.mjs +97 -0
  84. package/dist/js/chunks/chunk-7CXNATJS.mjs.map +7 -0
  85. package/dist/js/chunks/{chunk-UETTGDLI.mjs → chunk-7X44MKEQ.mjs} +43 -48
  86. package/dist/js/chunks/chunk-7X44MKEQ.mjs.map +7 -0
  87. package/dist/js/chunks/chunk-7ZAMOMGY.mjs +440 -0
  88. package/dist/js/chunks/chunk-7ZAMOMGY.mjs.map +7 -0
  89. package/dist/js/chunks/chunk-AEG6LOAJ.mjs +54 -0
  90. package/dist/js/chunks/chunk-AEG6LOAJ.mjs.map +7 -0
  91. package/dist/js/chunks/chunk-AQNFCJJ5.mjs +135 -0
  92. package/dist/js/chunks/chunk-AQNFCJJ5.mjs.map +7 -0
  93. package/dist/js/chunks/chunk-B55LWKBM.mjs +75 -0
  94. package/dist/js/chunks/chunk-B55LWKBM.mjs.map +7 -0
  95. package/dist/js/chunks/chunk-BB5VXYXT.mjs +28 -0
  96. package/dist/js/chunks/chunk-BB5VXYXT.mjs.map +7 -0
  97. package/dist/js/chunks/chunk-BDATLH3H.mjs +108 -0
  98. package/dist/js/chunks/chunk-BDATLH3H.mjs.map +7 -0
  99. package/dist/js/chunks/chunk-CWMQOT4O.mjs +232 -0
  100. package/dist/js/chunks/chunk-CWMQOT4O.mjs.map +7 -0
  101. package/dist/js/chunks/chunk-CY2CTOVM.mjs +81 -0
  102. package/dist/js/chunks/chunk-CY2CTOVM.mjs.map +7 -0
  103. package/dist/js/chunks/{chunk-NUHMOAOY.mjs → chunk-DWA5UYLJ.mjs} +363 -218
  104. package/dist/js/chunks/chunk-DWA5UYLJ.mjs.map +7 -0
  105. package/dist/js/chunks/chunk-EB2V4OKL.mjs +79 -0
  106. package/dist/js/chunks/chunk-EB2V4OKL.mjs.map +7 -0
  107. package/dist/js/chunks/chunk-EWO662ZC.mjs +188 -0
  108. package/dist/js/chunks/chunk-EWO662ZC.mjs.map +7 -0
  109. package/dist/js/chunks/{chunk-ZX6M7SWO.mjs → chunk-F7LAKFMX.mjs} +320 -141
  110. package/dist/js/chunks/chunk-F7LAKFMX.mjs.map +7 -0
  111. package/dist/js/chunks/{chunk-L27Q6ZMI.mjs → chunk-FNIIH2LU.mjs} +20 -33
  112. package/dist/js/chunks/chunk-FNIIH2LU.mjs.map +7 -0
  113. package/dist/js/chunks/chunk-GE3YMFS6.mjs +15 -0
  114. package/dist/js/chunks/chunk-GE3YMFS6.mjs.map +7 -0
  115. package/dist/js/chunks/chunk-GFWYMWYN.mjs +125 -0
  116. package/dist/js/chunks/chunk-GFWYMWYN.mjs.map +7 -0
  117. package/dist/js/chunks/chunk-GNRSYMVH.mjs +1 -0
  118. package/dist/js/chunks/chunk-H5ISU45X.mjs +87 -0
  119. package/dist/js/chunks/chunk-H5ISU45X.mjs.map +7 -0
  120. package/dist/js/chunks/{chunk-GJL6GCIU.mjs → chunk-H6YIKFAQ.mjs} +311 -186
  121. package/dist/js/chunks/chunk-H6YIKFAQ.mjs.map +7 -0
  122. package/dist/js/chunks/{chunk-BGZLF6JZ.mjs → chunk-HEH7E3KO.mjs} +155 -35
  123. package/dist/js/chunks/chunk-HEH7E3KO.mjs.map +7 -0
  124. package/dist/js/chunks/chunk-HQRLBTNM.mjs +152 -0
  125. package/dist/js/chunks/chunk-HQRLBTNM.mjs.map +7 -0
  126. package/dist/js/chunks/chunk-I2F7MLUU.mjs +137 -0
  127. package/dist/js/chunks/chunk-I2F7MLUU.mjs.map +7 -0
  128. package/dist/js/chunks/chunk-IQOTGGHX.mjs +797 -0
  129. package/dist/js/chunks/chunk-IQOTGGHX.mjs.map +7 -0
  130. package/dist/js/chunks/chunk-JH3YWKA6.mjs +225 -0
  131. package/dist/js/chunks/chunk-JH3YWKA6.mjs.map +7 -0
  132. package/dist/js/chunks/chunk-JOLJAYIJ.mjs +7 -0
  133. package/dist/js/chunks/chunk-JOLJAYIJ.mjs.map +7 -0
  134. package/dist/js/chunks/{chunk-VGNYF6FB.mjs → chunk-KOTGMCMI.mjs} +116 -24
  135. package/dist/js/chunks/chunk-KOTGMCMI.mjs.map +7 -0
  136. package/dist/js/chunks/{chunk-LQWUDNHZ.mjs → chunk-LC4O5LFS.mjs} +21 -45
  137. package/dist/js/chunks/chunk-LC4O5LFS.mjs.map +7 -0
  138. package/dist/js/chunks/chunk-LEF33SCP.mjs +127 -0
  139. package/dist/js/chunks/chunk-LEF33SCP.mjs.map +7 -0
  140. package/dist/js/chunks/{chunk-PDG64UHF.mjs → chunk-LFORZRPH.mjs} +21 -23
  141. package/dist/js/chunks/chunk-LFORZRPH.mjs.map +7 -0
  142. package/dist/js/chunks/chunk-LWLNV5EC.mjs +451 -0
  143. package/dist/js/chunks/chunk-LWLNV5EC.mjs.map +7 -0
  144. package/dist/js/chunks/chunk-LXRHUQAX.mjs +491 -0
  145. package/dist/js/chunks/chunk-LXRHUQAX.mjs.map +7 -0
  146. package/dist/js/chunks/{chunk-SFI2U4YW.mjs → chunk-MA2SZZFB.mjs} +82 -111
  147. package/dist/js/chunks/chunk-MA2SZZFB.mjs.map +7 -0
  148. package/dist/js/chunks/chunk-MDBZAMIV.mjs +121 -0
  149. package/dist/js/chunks/chunk-MDBZAMIV.mjs.map +7 -0
  150. package/dist/js/chunks/chunk-NODZ5VAD.mjs +75 -0
  151. package/dist/js/chunks/chunk-NODZ5VAD.mjs.map +7 -0
  152. package/dist/js/chunks/chunk-O2WJB6TH.mjs +365 -0
  153. package/dist/js/chunks/chunk-O2WJB6TH.mjs.map +7 -0
  154. package/dist/js/chunks/chunk-PCABY5BN.mjs +35 -0
  155. package/dist/js/chunks/chunk-PCABY5BN.mjs.map +7 -0
  156. package/dist/js/chunks/chunk-PWKYVMND.mjs +120 -0
  157. package/dist/js/chunks/chunk-PWKYVMND.mjs.map +7 -0
  158. package/dist/js/chunks/{chunk-SMY7GJSS.mjs → chunk-QHZZT7YO.mjs} +66 -38
  159. package/dist/js/chunks/chunk-QHZZT7YO.mjs.map +7 -0
  160. package/dist/js/chunks/chunk-QND56EW2.mjs +439 -0
  161. package/dist/js/chunks/chunk-QND56EW2.mjs.map +7 -0
  162. package/dist/js/chunks/chunk-QNODAANY.mjs +376 -0
  163. package/dist/js/chunks/chunk-QNODAANY.mjs.map +7 -0
  164. package/dist/js/chunks/{chunk-KHXZ2A4K.mjs → chunk-QRO5FV3I.mjs} +156 -73
  165. package/dist/js/chunks/chunk-QRO5FV3I.mjs.map +7 -0
  166. package/dist/js/chunks/chunk-R7A7JRC5.mjs +440 -0
  167. package/dist/js/chunks/chunk-R7A7JRC5.mjs.map +7 -0
  168. package/dist/js/chunks/chunk-RKG2CBFE.mjs +74 -0
  169. package/dist/js/chunks/chunk-RKG2CBFE.mjs.map +7 -0
  170. package/dist/js/chunks/{chunk-XAEAEHIX.mjs → chunk-RSNS5OYS.mjs} +38 -25
  171. package/dist/js/chunks/chunk-RSNS5OYS.mjs.map +7 -0
  172. package/dist/js/chunks/{chunk-X4ISMKE2.mjs → chunk-RUDYMEJ3.mjs} +7 -6
  173. package/dist/js/chunks/chunk-RUDYMEJ3.mjs.map +7 -0
  174. package/dist/js/chunks/chunk-STJR62SU.mjs +161 -0
  175. package/dist/js/chunks/chunk-STJR62SU.mjs.map +7 -0
  176. package/dist/js/chunks/chunk-SUSD4UTN.mjs +220 -0
  177. package/dist/js/chunks/chunk-SUSD4UTN.mjs.map +7 -0
  178. package/dist/js/chunks/{chunk-5CEAOLUA.mjs → chunk-SYBOA5HC.mjs} +26 -48
  179. package/dist/js/chunks/chunk-SYBOA5HC.mjs.map +7 -0
  180. package/dist/js/chunks/chunk-T4MOBP3J.mjs +108 -0
  181. package/dist/js/chunks/chunk-T4MOBP3J.mjs.map +7 -0
  182. package/dist/js/chunks/chunk-TM7HPGTV.mjs +342 -0
  183. package/dist/js/chunks/chunk-TM7HPGTV.mjs.map +7 -0
  184. package/dist/js/chunks/{chunk-C6CHEWYP.mjs → chunk-TMQDZSDC.mjs} +71 -35
  185. package/dist/js/chunks/chunk-TMQDZSDC.mjs.map +7 -0
  186. package/dist/js/chunks/chunk-TVSX5YA2.mjs +48 -0
  187. package/dist/js/chunks/chunk-TVSX5YA2.mjs.map +7 -0
  188. package/dist/js/chunks/chunk-UHO5CV6K.mjs +80 -0
  189. package/dist/js/chunks/chunk-UHO5CV6K.mjs.map +7 -0
  190. package/dist/js/chunks/chunk-UKCNELUN.mjs +223 -0
  191. package/dist/js/chunks/chunk-UKCNELUN.mjs.map +7 -0
  192. package/dist/js/chunks/chunk-UKQK5GWR.mjs +167 -0
  193. package/dist/js/chunks/chunk-UKQK5GWR.mjs.map +7 -0
  194. package/dist/js/chunks/{chunk-TSZYSW7F.mjs → chunk-UTSLYQ65.mjs} +21 -48
  195. package/dist/js/chunks/chunk-UTSLYQ65.mjs.map +7 -0
  196. package/dist/js/chunks/chunk-VS5OJBOD.mjs +108 -0
  197. package/dist/js/chunks/chunk-VS5OJBOD.mjs.map +7 -0
  198. package/dist/js/chunks/chunk-VZMROW5A.mjs +759 -0
  199. package/dist/js/chunks/chunk-VZMROW5A.mjs.map +7 -0
  200. package/dist/js/chunks/chunk-W6FAL3TI.mjs +38 -0
  201. package/dist/js/chunks/chunk-W6FAL3TI.mjs.map +7 -0
  202. package/dist/js/chunks/chunk-XB6Y7P5W.mjs +69 -0
  203. package/dist/js/chunks/chunk-XB6Y7P5W.mjs.map +7 -0
  204. package/dist/js/chunks/chunk-XDAMOMVD.mjs +226 -0
  205. package/dist/js/chunks/chunk-XDAMOMVD.mjs.map +7 -0
  206. package/dist/js/chunks/{chunk-WDK4T63U.mjs → chunk-XJPMW5SP.mjs} +247 -172
  207. package/dist/js/chunks/chunk-XJPMW5SP.mjs.map +7 -0
  208. package/dist/js/chunks/{chunk-KUFHW3DS.mjs → chunk-YKANQILZ.mjs} +16 -21
  209. package/dist/js/chunks/chunk-YKANQILZ.mjs.map +7 -0
  210. package/dist/js/chunks/chunk-YLZOJLDI.mjs +175 -0
  211. package/dist/js/chunks/chunk-YLZOJLDI.mjs.map +7 -0
  212. package/dist/js/chunks/chunk-ZK7YY322.mjs +514 -0
  213. package/dist/js/chunks/chunk-ZK7YY322.mjs.map +7 -0
  214. package/dist/js/expressive.cjs +10266 -3628
  215. package/dist/js/expressive.cjs.map +4 -4
  216. package/dist/js/expressive.js +10266 -3628
  217. package/dist/js/expressive.js.map +4 -4
  218. package/dist/js/expressive.min.js +23 -22
  219. package/dist/js/expressive.min.js.map +4 -4
  220. package/dist/js/expressive.mjs +181 -69
  221. package/dist/js/expressive.mjs.map +2 -2
  222. package/dist/js/internal/behaviors/bottomSheets.mjs +4 -3
  223. package/dist/js/internal/behaviors/copy.mjs +9 -0
  224. package/dist/js/internal/behaviors/copy.mjs.map +7 -0
  225. package/dist/js/internal/behaviors/dataTables.mjs +8 -0
  226. package/dist/js/internal/behaviors/dataTables.mjs.map +7 -0
  227. package/dist/js/internal/behaviors/dialogs.mjs +2 -2
  228. package/dist/js/internal/behaviors/forms.mjs +2 -2
  229. package/dist/js/internal/behaviors/imageCompare.mjs +8 -0
  230. package/dist/js/internal/behaviors/imageCompare.mjs.map +7 -0
  231. package/dist/js/internal/behaviors/lists.mjs +8 -0
  232. package/dist/js/internal/behaviors/lists.mjs.map +7 -0
  233. package/dist/js/internal/behaviors/paneResize.mjs +8 -0
  234. package/dist/js/internal/behaviors/paneResize.mjs.map +7 -0
  235. package/dist/js/internal/behaviors/sheetDrag.mjs +7 -2
  236. package/dist/js/internal/behaviors/sideSheets.mjs +4 -3
  237. package/dist/js/internal/behaviors/sortable.mjs +8 -0
  238. package/dist/js/internal/behaviors/sortable.mjs.map +7 -0
  239. package/dist/js/internal/behaviors/theme.mjs +8 -0
  240. package/dist/js/internal/behaviors/theme.mjs.map +7 -0
  241. package/dist/js/internal/behaviors/tour.mjs +8 -0
  242. package/dist/js/internal/behaviors/tour.mjs.map +7 -0
  243. package/dist/js/internal/behaviors/transferList.mjs +8 -0
  244. package/dist/js/internal/behaviors/transferList.mjs.map +7 -0
  245. package/dist/js/internal/components/appBar.mjs +3 -2
  246. package/dist/js/internal/components/autocomplete.mjs +5 -4
  247. package/dist/js/internal/components/backToTop.mjs +9 -0
  248. package/dist/js/internal/components/backToTop.mjs.map +7 -0
  249. package/dist/js/internal/components/barChart.mjs +5 -4
  250. package/dist/js/internal/components/buttonGroup.mjs +3 -2
  251. package/dist/js/internal/components/buttons.mjs +3 -3
  252. package/dist/js/internal/components/cards.mjs +3 -3
  253. package/dist/js/internal/components/carousel.mjs +3 -3
  254. package/dist/js/internal/components/cascader.mjs +10 -0
  255. package/dist/js/internal/components/cascader.mjs.map +7 -0
  256. package/dist/js/internal/components/characterCounter.mjs +3 -2
  257. package/dist/js/internal/components/chips.mjs +7 -5
  258. package/dist/js/internal/components/colorPicker.mjs +9 -0
  259. package/dist/js/internal/components/colorPicker.mjs.map +7 -0
  260. package/dist/js/internal/components/columnChart.mjs +4 -3
  261. package/dist/js/internal/components/commandPalette.mjs +3 -3
  262. package/dist/js/internal/components/confetti.mjs +3 -2
  263. package/dist/js/internal/components/currencyInput.mjs +9 -0
  264. package/dist/js/internal/components/currencyInput.mjs.map +7 -0
  265. package/dist/js/internal/components/datepicker.mjs +12 -8
  266. package/dist/js/internal/components/expandingCard.mjs +3 -3
  267. package/dist/js/internal/components/funnelChart.mjs +10 -0
  268. package/dist/js/internal/components/funnelChart.mjs.map +7 -0
  269. package/dist/js/internal/components/heatmapChart.mjs +4 -3
  270. package/dist/js/internal/components/hoverCard.mjs +9 -0
  271. package/dist/js/internal/components/hoverCard.mjs.map +7 -0
  272. package/dist/js/internal/components/index.mjs +131 -65
  273. package/dist/js/internal/components/inputMask.mjs +9 -0
  274. package/dist/js/internal/components/inputMask.mjs.map +7 -0
  275. package/dist/js/internal/components/keypad.mjs +3 -3
  276. package/dist/js/internal/components/lightbox.mjs +3 -3
  277. package/dist/js/internal/components/lineChart.mjs +41 -4
  278. package/dist/js/internal/components/loadingOverlay.mjs +9 -0
  279. package/dist/js/internal/components/loadingOverlay.mjs.map +7 -0
  280. package/dist/js/internal/components/mapView.mjs +3 -3
  281. package/dist/js/internal/components/menu.mjs +3 -3
  282. package/dist/js/internal/components/menubar.mjs +10 -0
  283. package/dist/js/internal/components/menubar.mjs.map +7 -0
  284. package/dist/js/internal/components/messageScroller.mjs +3 -3
  285. package/dist/js/internal/components/mixedChart.mjs +5 -4
  286. package/dist/js/internal/components/navigationRail.mjs +3 -2
  287. package/dist/js/internal/components/particles.mjs +3 -2
  288. package/dist/js/internal/components/pieChart.mjs +4 -3
  289. package/dist/js/internal/components/pullToRefresh.mjs +9 -0
  290. package/dist/js/internal/components/pullToRefresh.mjs.map +7 -0
  291. package/dist/js/internal/components/questionnaire.mjs +3 -3
  292. package/dist/js/internal/components/radarChart.mjs +4 -3
  293. package/dist/js/internal/components/radialChart.mjs +4 -3
  294. package/dist/js/internal/components/registry.mjs +60 -41
  295. package/dist/js/internal/components/richTextEditor.mjs +3 -3
  296. package/dist/js/internal/components/sankeyChart.mjs +10 -0
  297. package/dist/js/internal/components/sankeyChart.mjs.map +7 -0
  298. package/dist/js/internal/components/scatterChart.mjs +10 -0
  299. package/dist/js/internal/components/scatterChart.mjs.map +7 -0
  300. package/dist/js/internal/components/scrollspy.mjs +3 -2
  301. package/dist/js/internal/components/select.mjs +5 -4
  302. package/dist/js/internal/components/showMore.mjs +9 -0
  303. package/dist/js/internal/components/showMore.mjs.map +7 -0
  304. package/dist/js/internal/components/slider.mjs +3 -3
  305. package/dist/js/internal/components/snackbar.mjs +2 -2
  306. package/dist/js/internal/components/swipeActions.mjs +9 -0
  307. package/dist/js/internal/components/swipeActions.mjs.map +7 -0
  308. package/dist/js/internal/components/tabs.mjs +3 -4
  309. package/dist/js/internal/components/timepicker.mjs +5 -4
  310. package/dist/js/internal/components/tooltip.mjs +3 -3
  311. package/dist/js/internal/components/treeSelect.mjs +14 -0
  312. package/dist/js/internal/components/treeSelect.mjs.map +7 -0
  313. package/dist/js/internal/components/treemapChart.mjs +10 -0
  314. package/dist/js/internal/components/treemapChart.mjs.map +7 -0
  315. package/dist/js/internal/core/component.mjs +6 -3
  316. package/dist/js/internal/core/formControl.mjs +12 -0
  317. package/dist/js/internal/core/formControl.mjs.map +7 -0
  318. package/dist/js/internal/core/imageURL.mjs +7 -0
  319. package/dist/js/internal/core/imageURL.mjs.map +7 -0
  320. package/dist/js/internal/core/spring.mjs +11 -0
  321. package/dist/js/internal/core/spring.mjs.map +7 -0
  322. package/dist/js/internal/core/utils.mjs +21 -3
  323. package/dist/js/internal/plugins/dockedDisplayPlugin.mjs +2 -2
  324. package/dist/js/internal/plugins/modalDisplayPlugin.mjs +13 -0
  325. package/dist/js/internal/plugins/modalDisplayPlugin.mjs.map +7 -0
  326. package/dist/js/modular.mjs +172 -69
  327. package/dist/types/behaviors/bottomSheets.d.ts +23 -5
  328. package/dist/types/behaviors/copy.d.ts +18 -0
  329. package/dist/types/behaviors/dataTables.d.ts +125 -0
  330. package/dist/types/behaviors/dialogs.d.ts +27 -1
  331. package/dist/types/behaviors/forms.d.ts +70 -4
  332. package/dist/types/behaviors/imageCompare.d.ts +13 -0
  333. package/dist/types/behaviors/lists.d.ts +12 -0
  334. package/dist/types/behaviors/paneResize.d.ts +29 -0
  335. package/dist/types/behaviors/sheetDrag.d.ts +18 -0
  336. package/dist/types/behaviors/sideSheets.d.ts +1 -1
  337. package/dist/types/behaviors/sortable.d.ts +28 -0
  338. package/dist/types/behaviors/theme.d.ts +22 -0
  339. package/dist/types/behaviors/tour.d.ts +36 -0
  340. package/dist/types/behaviors/transferList.d.ts +53 -0
  341. package/dist/types/components/appBar.d.ts +5 -6
  342. package/dist/types/components/autocomplete.d.ts +105 -20
  343. package/dist/types/components/backToTop.d.ts +36 -0
  344. package/dist/types/components/barChart.d.ts +3 -6
  345. package/dist/types/components/buttonGroup.d.ts +2 -4
  346. package/dist/types/components/buttons.d.ts +5 -5
  347. package/dist/types/components/cards.d.ts +3 -16
  348. package/dist/types/components/carousel.d.ts +16 -15
  349. package/dist/types/components/cascader.d.ts +130 -0
  350. package/dist/types/components/characterCounter.d.ts +2 -15
  351. package/dist/types/components/chips.d.ts +80 -19
  352. package/dist/types/components/colorPicker.d.ts +56 -0
  353. package/dist/types/components/columnChart.d.ts +23 -10
  354. package/dist/types/components/commandPalette.d.ts +11 -16
  355. package/dist/types/components/confetti.d.ts +2 -4
  356. package/dist/types/components/currencyInput.d.ts +60 -0
  357. package/dist/types/components/datepicker.d.ts +107 -56
  358. package/dist/types/components/expandingCard.d.ts +4 -6
  359. package/dist/types/components/funnelChart.d.ts +35 -0
  360. package/dist/types/components/heatmapChart.d.ts +42 -8
  361. package/dist/types/components/hoverCard.d.ts +59 -0
  362. package/dist/types/components/index.d.ts +16 -1
  363. package/dist/types/components/inputMask.d.ts +28 -0
  364. package/dist/types/components/keypad.d.ts +38 -6
  365. package/dist/types/components/lightbox.d.ts +14 -20
  366. package/dist/types/components/lineChart.d.ts +212 -12
  367. package/dist/types/components/loadingOverlay.d.ts +42 -0
  368. package/dist/types/components/mapView.d.ts +138 -27
  369. package/dist/types/components/menu.d.ts +74 -22
  370. package/dist/types/components/menubar.d.ts +37 -0
  371. package/dist/types/components/messageScroller.d.ts +2 -14
  372. package/dist/types/components/mixedChart.d.ts +15 -6
  373. package/dist/types/components/navigationRail.d.ts +16 -5
  374. package/dist/types/components/particles.d.ts +22 -5
  375. package/dist/types/components/pieChart.d.ts +33 -9
  376. package/dist/types/components/pullToRefresh.d.ts +80 -0
  377. package/dist/types/components/questionnaire.d.ts +58 -16
  378. package/dist/types/components/radarChart.d.ts +10 -6
  379. package/dist/types/components/radialChart.d.ts +58 -7
  380. package/dist/types/components/registry.d.ts +73 -3
  381. package/dist/types/components/richTextEditor.d.ts +45 -22
  382. package/dist/types/components/sankeyChart.d.ts +72 -0
  383. package/dist/types/components/scatterChart.d.ts +102 -0
  384. package/dist/types/components/scrollspy.d.ts +3 -5
  385. package/dist/types/components/select.d.ts +44 -33
  386. package/dist/types/components/showMore.d.ts +53 -0
  387. package/dist/types/components/slider.d.ts +2 -15
  388. package/dist/types/components/snackbar.d.ts +68 -1
  389. package/dist/types/components/swipeActions.d.ts +81 -0
  390. package/dist/types/components/tabs.d.ts +92 -30
  391. package/dist/types/components/timepicker.d.ts +128 -27
  392. package/dist/types/components/tooltip.d.ts +57 -21
  393. package/dist/types/components/treeSelect.d.ts +106 -0
  394. package/dist/types/components/treemapChart.d.ts +56 -0
  395. package/dist/types/core/component.d.ts +49 -25
  396. package/dist/types/core/formControl.d.ts +21 -0
  397. package/dist/types/core/imageURL.d.ts +2 -0
  398. package/dist/types/core/spring.d.ts +20 -0
  399. package/dist/types/core/utils.d.ts +123 -72
  400. package/dist/types/modular.d.ts +33 -1
  401. package/dist/types/plugins/dockedDisplayPlugin.d.ts +10 -8
  402. package/dist/types/plugins/modalDisplayPlugin.d.ts +39 -0
  403. package/package.json +17 -13
  404. package/src/sass/README.md +27 -18
  405. package/src/sass/abstracts/_elevation.scss +13 -7
  406. package/src/sass/abstracts/_index.scss +1 -0
  407. package/src/sass/abstracts/_mixins.scss +864 -78
  408. package/src/sass/abstracts/_spring.scss +63 -0
  409. package/src/sass/abstracts/_variables.scss +64 -21
  410. package/src/sass/base/_fonts.scss +61 -48
  411. package/src/sass/base/_global.scss +104 -24
  412. package/src/sass/base/_index.scss +2 -0
  413. package/src/sass/base/_normalize.scss +59 -114
  414. package/src/sass/base/_print.scss +21 -0
  415. package/src/sass/base/_prose.scss +68 -0
  416. package/src/sass/base/_typography.scss +9 -5
  417. package/src/sass/components/_accordion.scss +10 -19
  418. package/src/sass/components/_alert.scss +102 -0
  419. package/src/sass/components/_aura.scss +9 -3
  420. package/src/sass/components/_avatar.scss +3 -3
  421. package/src/sass/components/_back-to-top.scss +38 -0
  422. package/src/sass/components/_badges.scss +6 -5
  423. package/src/sass/components/_bar-chart.scss +31 -90
  424. package/src/sass/components/_bottom-sheet.scss +51 -16
  425. package/src/sass/components/_breadcrumb.scss +8 -7
  426. package/src/sass/components/_button-groups.scss +30 -63
  427. package/src/sass/components/_buttons.scss +137 -94
  428. package/src/sass/components/_calendar.scss +244 -0
  429. package/src/sass/components/_cards.scss +36 -44
  430. package/src/sass/components/_carousel.scss +37 -113
  431. package/src/sass/components/_cascader.scss +131 -0
  432. package/src/sass/components/_chips.scss +36 -46
  433. package/src/sass/components/_column-chart.scss +15 -26
  434. package/src/sass/components/_command-palette.scss +4 -7
  435. package/src/sass/components/_confetti.scss +1 -4
  436. package/src/sass/components/_countdown.scss +1 -1
  437. package/src/sass/components/_data-table.scss +172 -25
  438. package/src/sass/components/_datepicker.scss +54 -40
  439. package/src/sass/components/_description-list.scss +85 -0
  440. package/src/sass/components/_dialog.scss +48 -55
  441. package/src/sass/components/_docked-display.scss +1 -3
  442. package/src/sass/components/_drag-handle.scss +16 -20
  443. package/src/sass/components/_expanding-card.scss +21 -14
  444. package/src/sass/components/_fab-menu.scss +43 -39
  445. package/src/sass/components/_funnel-chart.scss +63 -0
  446. package/src/sass/components/_heatmap-chart.scss +114 -29
  447. package/src/sass/components/_icon-buttons.scss +8 -11
  448. package/src/sass/components/_icons-material-design.scss +2 -2
  449. package/src/sass/components/_image-compare.scss +108 -0
  450. package/src/sass/components/_index.scss +20 -0
  451. package/src/sass/components/_keypad.scss +39 -19
  452. package/src/sass/components/_kpi.scss +6 -11
  453. package/src/sass/components/_lightbox.scss +24 -13
  454. package/src/sass/components/_line-chart.scss +9 -63
  455. package/src/sass/components/_list.scss +59 -14
  456. package/src/sass/components/_loading-indicator.scss +1 -0
  457. package/src/sass/components/_loading-overlay.scss +105 -0
  458. package/src/sass/components/_map.scss +37 -11
  459. package/src/sass/components/_marquee.scss +4 -3
  460. package/src/sass/components/_mega-menu.scss +128 -0
  461. package/src/sass/components/_menu.scss +146 -127
  462. package/src/sass/components/_menubar.scss +47 -0
  463. package/src/sass/components/_message-scroller.scss +2 -2
  464. package/src/sass/components/_message.scss +3 -3
  465. package/src/sass/components/_mixed-chart.scss +27 -35
  466. package/src/sass/components/_modal-display.scss +21 -0
  467. package/src/sass/components/_navbar.scss +45 -36
  468. package/src/sass/components/_navigation-bar.scss +12 -77
  469. package/src/sass/components/_navigation-rail.scss +161 -92
  470. package/src/sass/components/_org-chart.scss +192 -0
  471. package/src/sass/components/_page-footer.scss +2 -4
  472. package/src/sass/components/_pagination.scss +9 -27
  473. package/src/sass/components/_panes.scss +35 -42
  474. package/src/sass/components/_particles.scss +1 -4
  475. package/src/sass/components/_pie-chart.scss +86 -68
  476. package/src/sass/components/_popover.scss +18 -5
  477. package/src/sass/components/_progress.scss +183 -44
  478. package/src/sass/components/_pull-to-refresh.scss +90 -0
  479. package/src/sass/components/_questionnaire.scss +74 -3
  480. package/src/sass/components/_radar-chart.scss +40 -42
  481. package/src/sass/components/_radial-chart.scss +108 -46
  482. package/src/sass/components/_rich-text-editor.scss +2 -2
  483. package/src/sass/components/_sankey-chart.scss +91 -0
  484. package/src/sass/components/_scatter-chart.scss +144 -0
  485. package/src/sass/components/_scrim.scss +0 -2
  486. package/src/sass/components/_scrollspy.scss +0 -2
  487. package/src/sass/components/_search.scss +27 -26
  488. package/src/sass/components/_show-more.scss +8 -0
  489. package/src/sass/components/_side-sheet.scss +32 -51
  490. package/src/sass/components/_skeleton.scss +26 -19
  491. package/src/sass/components/_snackbar.scss +25 -21
  492. package/src/sass/components/_split-button.scss +5 -5
  493. package/src/sass/components/_stat.scss +3 -8
  494. package/src/sass/components/_stepper.scss +1 -1
  495. package/src/sass/components/_swipe-actions.scss +71 -0
  496. package/src/sass/components/_table_of_contents.scss +1 -3
  497. package/src/sass/components/_tabs.scss +49 -46
  498. package/src/sass/components/_timeline.scss +12 -12
  499. package/src/sass/components/_timepicker.scss +111 -79
  500. package/src/sass/components/_toolbar.scss +36 -47
  501. package/src/sass/components/_tooltip.scss +25 -12
  502. package/src/sass/components/_tour.scss +89 -0
  503. package/src/sass/components/_transfer-list.scss +73 -0
  504. package/src/sass/components/_transitions.scss +4 -4
  505. package/src/sass/components/_tree.scss +7 -32
  506. package/src/sass/components/_treemap-chart.scss +98 -0
  507. package/src/sass/components/forms/_checkboxes.scss +107 -44
  508. package/src/sass/components/forms/_color-picker.scss +135 -0
  509. package/src/sass/components/forms/_color-swatches.scss +85 -0
  510. package/src/sass/components/forms/_drop-zone.scss +16 -13
  511. package/src/sass/components/forms/_fieldset.scss +4 -7
  512. package/src/sass/components/forms/_file-input.scss +12 -8
  513. package/src/sass/components/forms/_index.scss +3 -1
  514. package/src/sass/components/forms/_input-fields.scss +271 -90
  515. package/src/sass/components/forms/_radio-buttons.scss +34 -117
  516. package/src/sass/components/forms/_rating.scss +2 -32
  517. package/src/sass/components/forms/_select.scss +198 -20
  518. package/src/sass/components/forms/_slider.scss +92 -98
  519. package/src/sass/components/forms/_switches.scss +62 -180
  520. package/src/sass/custom.scss +10 -1
  521. package/src/sass/expressive.scss +3 -63
  522. package/src/sass/tokens/_contrast.scss +94 -0
  523. package/src/sass/tokens/_elevation.scss +16 -0
  524. package/src/sass/tokens/_index.scss +5 -0
  525. package/src/sass/tokens/_motion.scss +109 -0
  526. package/src/sass/tokens/_reference.scss +72 -141
  527. package/src/sass/tokens/_shape.scss +38 -0
  528. package/src/sass/tokens/_stacking.scss +27 -0
  529. package/src/sass/tokens/_state.scss +0 -2
  530. package/src/sass/tokens/_theme.scss +10 -1
  531. package/src/sass/tokens/_vibrant.scss +2 -5
  532. package/src/sass/utilities/_defer-render.scss +17 -0
  533. package/src/sass/utilities/_helpers.scss +184 -27
  534. package/src/sass/utilities/_index.scss +1 -0
  535. package/src/sass/utilities/_scroll-area.scss +0 -2
  536. package/src/sass/utilities/_spacing.scss +52 -34
  537. package/src/sass/utilities/_typescale.scss +8 -1
  538. package/src/sass/utilities/_visibility.scss +46 -77
  539. package/src/sass/utilities/_z-depth.scss +7 -4
  540. package/dist/js/chunks/chunk-33QVDDGR.mjs +0 -270
  541. package/dist/js/chunks/chunk-33QVDDGR.mjs.map +0 -7
  542. package/dist/js/chunks/chunk-45FER6RI.mjs +0 -59
  543. package/dist/js/chunks/chunk-45FER6RI.mjs.map +0 -7
  544. package/dist/js/chunks/chunk-5CEAOLUA.mjs.map +0 -7
  545. package/dist/js/chunks/chunk-6VATUZC6.mjs +0 -295
  546. package/dist/js/chunks/chunk-6VATUZC6.mjs.map +0 -7
  547. package/dist/js/chunks/chunk-74MXKKLN.mjs.map +0 -7
  548. package/dist/js/chunks/chunk-AIURVCG6.mjs +0 -55
  549. package/dist/js/chunks/chunk-AIURVCG6.mjs.map +0 -7
  550. package/dist/js/chunks/chunk-BGZLF6JZ.mjs.map +0 -7
  551. package/dist/js/chunks/chunk-C6CHEWYP.mjs.map +0 -7
  552. package/dist/js/chunks/chunk-CK2XCICY.mjs.map +0 -7
  553. package/dist/js/chunks/chunk-CXXM2L4F.mjs +0 -344
  554. package/dist/js/chunks/chunk-CXXM2L4F.mjs.map +0 -7
  555. package/dist/js/chunks/chunk-DXGRXYYL.mjs.map +0 -7
  556. package/dist/js/chunks/chunk-FM5CZOUB.mjs.map +0 -7
  557. package/dist/js/chunks/chunk-GJL6GCIU.mjs.map +0 -7
  558. package/dist/js/chunks/chunk-K3HZMFMD.mjs +0 -135
  559. package/dist/js/chunks/chunk-K3HZMFMD.mjs.map +0 -7
  560. package/dist/js/chunks/chunk-KHXZ2A4K.mjs.map +0 -7
  561. package/dist/js/chunks/chunk-KQACNQ22.mjs +0 -7
  562. package/dist/js/chunks/chunk-KQACNQ22.mjs.map +0 -7
  563. package/dist/js/chunks/chunk-KUFHW3DS.mjs.map +0 -7
  564. package/dist/js/chunks/chunk-KVJAVDBC.mjs.map +0 -7
  565. package/dist/js/chunks/chunk-L27Q6ZMI.mjs.map +0 -7
  566. package/dist/js/chunks/chunk-LQWUDNHZ.mjs.map +0 -7
  567. package/dist/js/chunks/chunk-M372EDXD.mjs +0 -322
  568. package/dist/js/chunks/chunk-M372EDXD.mjs.map +0 -7
  569. package/dist/js/chunks/chunk-M3MURWMB.mjs +0 -82
  570. package/dist/js/chunks/chunk-M3MURWMB.mjs.map +0 -7
  571. package/dist/js/chunks/chunk-NUHMOAOY.mjs.map +0 -7
  572. package/dist/js/chunks/chunk-OWG3LMUL.mjs +0 -169
  573. package/dist/js/chunks/chunk-OWG3LMUL.mjs.map +0 -7
  574. package/dist/js/chunks/chunk-PD6HYHAE.mjs +0 -48
  575. package/dist/js/chunks/chunk-PD6HYHAE.mjs.map +0 -7
  576. package/dist/js/chunks/chunk-PDG64UHF.mjs.map +0 -7
  577. package/dist/js/chunks/chunk-PO3AXVR3.mjs +0 -546
  578. package/dist/js/chunks/chunk-PO3AXVR3.mjs.map +0 -7
  579. package/dist/js/chunks/chunk-QYGK36OG.mjs +0 -181
  580. package/dist/js/chunks/chunk-QYGK36OG.mjs.map +0 -7
  581. package/dist/js/chunks/chunk-SFI2U4YW.mjs.map +0 -7
  582. package/dist/js/chunks/chunk-SMY7GJSS.mjs.map +0 -7
  583. package/dist/js/chunks/chunk-TCCA2HDG.mjs +0 -414
  584. package/dist/js/chunks/chunk-TCCA2HDG.mjs.map +0 -7
  585. package/dist/js/chunks/chunk-TSZYSW7F.mjs.map +0 -7
  586. package/dist/js/chunks/chunk-UAZSDUVP.mjs +0 -90
  587. package/dist/js/chunks/chunk-UAZSDUVP.mjs.map +0 -7
  588. package/dist/js/chunks/chunk-UBRZZWRA.mjs +0 -127
  589. package/dist/js/chunks/chunk-UBRZZWRA.mjs.map +0 -7
  590. package/dist/js/chunks/chunk-UCOE7ZDL.mjs +0 -287
  591. package/dist/js/chunks/chunk-UCOE7ZDL.mjs.map +0 -7
  592. package/dist/js/chunks/chunk-UETTGDLI.mjs.map +0 -7
  593. package/dist/js/chunks/chunk-UNCRDLP6.mjs +0 -136
  594. package/dist/js/chunks/chunk-UNCRDLP6.mjs.map +0 -7
  595. package/dist/js/chunks/chunk-VGNYF6FB.mjs.map +0 -7
  596. package/dist/js/chunks/chunk-VGPGBNGL.mjs +0 -68
  597. package/dist/js/chunks/chunk-VGPGBNGL.mjs.map +0 -7
  598. package/dist/js/chunks/chunk-VKAUVTQY.mjs +0 -1
  599. package/dist/js/chunks/chunk-VM4FTS7L.mjs +0 -48
  600. package/dist/js/chunks/chunk-VM4FTS7L.mjs.map +0 -7
  601. package/dist/js/chunks/chunk-WDK4T63U.mjs.map +0 -7
  602. package/dist/js/chunks/chunk-WOCCTVUF.mjs +0 -185
  603. package/dist/js/chunks/chunk-WOCCTVUF.mjs.map +0 -7
  604. package/dist/js/chunks/chunk-WQYN5L4E.mjs +0 -107
  605. package/dist/js/chunks/chunk-WQYN5L4E.mjs.map +0 -7
  606. package/dist/js/chunks/chunk-X4ISMKE2.mjs.map +0 -7
  607. package/dist/js/chunks/chunk-XAEAEHIX.mjs.map +0 -7
  608. package/dist/js/chunks/chunk-ZX6M7SWO.mjs.map +0 -7
  609. /package/dist/js/chunks/{chunk-VKAUVTQY.mjs.map → chunk-GNRSYMVH.mjs.map} +0 -0
@@ -20,7 +20,7 @@
20
20
  $_card: "article";
21
21
  // A direct <figure> is media, unless it is a chart. :where() keeps the
22
22
  // selectors at their old specificity.
23
- $_media-figure: "figure:where(:not(.line-chart, .column-chart, .bar-chart, .pie-chart, .heatmap-chart, .radar-chart, .radial-chart, .mixed-chart))";
23
+ $_media-figure: "figure:where(:not(.line-chart, .column-chart, .bar-chart, .pie-chart, .heatmap-chart, .radar-chart, .radial-chart, .mixed-chart, .scatter-chart, .sankey-chart, .funnel-chart, .treemap-chart))";
24
24
 
25
25
  :where(#{$_card}) {
26
26
  --md-comp-elevated-card-container-color: var(--md-sys-color-surface-container-low);
@@ -29,18 +29,18 @@ $_media-figure: "figure:where(:not(.line-chart, .column-chart, .bar-chart, .pie-
29
29
  --md-comp-outlined-card-outline-color: var(--md-sys-color-outline-variant);
30
30
  --md-comp-outlined-card-disabled-outline-color: var(--md-sys-color-outline);
31
31
  --md-comp-card-container-color: var(--md-comp-elevated-card-container-color);
32
- --md-comp-card-container-shape: 12px;
32
+ --md-comp-card-container-shape: var(--md-sys-shape-corner-medium);
33
33
  --md-comp-card-media-shape: var(--md-comp-card-container-shape);
34
34
  --md-comp-card-media-overlay-container-color: var(--md-sys-color-surface);
35
35
  --md-comp-card-media-overlay-ink-color: var(--md-sys-color-on-surface);
36
- --md-comp-card-media-overlay-shape: 8px;
36
+ --md-comp-card-media-overlay-shape: var(--md-sys-shape-corner-small);
37
37
  --md-comp-card-headline-color: var(--md-sys-color-on-surface);
38
38
  --md-comp-card-subhead-color: var(--md-sys-color-on-surface);
39
39
  --md-comp-card-supporting-text-color: var(--md-sys-color-on-surface-variant);
40
40
  --md-comp-card-content-padding: 16px;
41
41
  --md-comp-card-between-space: 8px;
42
42
  --md-comp-card-icon-color: var(--md-sys-color-primary);
43
- --md-comp-card-icon-size: 24px;
43
+ --md-comp-card-icon-size: #{rem(24px)};
44
44
  --md-comp-card-state-layer-color: var(--md-sys-color-on-surface);
45
45
  --md-comp-card-hover-state-layer-opacity: var(--md-sys-state-hover-state-layer-opacity);
46
46
  --md-comp-card-focus-state-layer-opacity: var(--md-sys-state-focus-state-layer-opacity);
@@ -52,7 +52,7 @@ $_media-figure: "figure:where(:not(.line-chart, .column-chart, .bar-chart, .pie-
52
52
  --md-comp-card-focus-indicator-thickness: 3px;
53
53
  --md-comp-card-focus-indicator-offset: 2px;
54
54
  --md-comp-card-horizontal-media-width: 40%;
55
- --md-comp-card-horizontal-min-height: 240px;
55
+ --md-comp-card-horizontal-min-height: #{rem(240px)};
56
56
 
57
57
  position: relative;
58
58
  box-sizing: border-box;
@@ -60,7 +60,7 @@ $_media-figure: "figure:where(:not(.line-chart, .column-chart, .bar-chart, .pie-
60
60
  color: var(--md-sys-color-on-surface);
61
61
  border-radius: var(--md-comp-card-container-shape);
62
62
  overflow: hidden;
63
- transition: background-color .2s ease-out, box-shadow .2s ease-out;
63
+ transition: background-color var(--md-sys-motion-duration-short4) ease-out, box-shadow var(--md-sys-motion-duration-short4) ease-out;
64
64
  }
65
65
 
66
66
  // M3 state layers belong only to an interactive card. A direct
@@ -75,7 +75,7 @@ $_media-figure: "figure:where(:not(.line-chart, .column-chart, .bar-chart, .pie-
75
75
  background-color: var(--md-comp-card-state-layer-color);
76
76
  opacity: 0;
77
77
  pointer-events: none;
78
- transition: opacity .2s ease-out;
78
+ transition: opacity var(--md-sys-motion-duration-short4) ease-out;
79
79
  }
80
80
 
81
81
  :where(#{$_card}) > .primary-action {
@@ -182,7 +182,7 @@ $_media-figure: "figure:where(:not(.line-chart, .column-chart, .bar-chart, .pie-
182
182
  @include z-depth("0");
183
183
  background-color: color-mix(
184
184
  in oklab,
185
- var(--md-sys-color-surface-variant) var(--md-comp-card-disabled-container-opacity),
185
+ var(--md-sys-color-surface-container-highest) var(--md-comp-card-disabled-container-opacity),
186
186
  transparent
187
187
  );
188
188
  }
@@ -314,10 +314,7 @@ article > .primary-action > #{$_media-figure} > figcaption {
314
314
  color: var(--md-comp-card-media-overlay-ink-color);
315
315
  background-color: var(--md-comp-card-media-overlay-container-color);
316
316
  border-radius: var(--md-comp-card-media-overlay-shape);
317
- font-family: var(--md-sys-typescale-title-medium-font-family-name);
318
- font-size: var(--md-sys-typescale-title-medium-font-size);
319
- font-weight: var(--md-sys-typescale-title-medium-font-weight);
320
- line-height: var(--md-sys-typescale-title-medium-line-height);
317
+ @include typescale("title-medium");
321
318
  }
322
319
 
323
320
  // Keep meaningful icons on the same opaque role pair as caption text. The
@@ -341,13 +338,13 @@ article > .primary-action > #{$_media-figure} > figcaption > svg {
341
338
  // elevation; picked-up / dragged state raises each variant above its rest.
342
339
  :where(.card-collection) {
343
340
  --md-comp-card-collection-gap: 8px;
344
- --md-comp-card-collection-min-card-width: 240px;
341
+ --md-comp-card-collection-min-card-width: #{rem(240px)};
345
342
  --md-comp-card-collection-grid-template-columns: repeat(
346
343
  auto-fit,
347
344
  minmax(min(100%, var(--md-comp-card-collection-min-card-width)), 1fr)
348
345
  );
349
- --md-comp-card-collection-mosaic-row-size: 80px;
350
- --md-comp-card-collection-carousel-height: 320px;
346
+ --md-comp-card-collection-mosaic-row-size: #{rem(80px)};
347
+ --md-comp-card-collection-carousel-height: #{rem(320px)};
351
348
  --md-comp-card-collection-carousel-card-width: min(82%, 360px);
352
349
 
353
350
  display: grid;
@@ -419,7 +416,8 @@ article > .primary-action > #{$_media-figure} > figcaption > svg {
419
416
 
420
417
  // Horizontal uses the same semantic slots as the vertical card. They may be
421
418
  // direct children or children of the direct primary-action link.
422
- @mixin horizontal-card-layout($with-actions: true) {
419
+ article.horizontal,
420
+ article.horizontal > .primary-action {
423
421
  display: grid;
424
422
  grid-template-columns:
425
423
  minmax(0, var(--md-comp-card-horizontal-media-width))
@@ -460,19 +458,13 @@ article > .primary-action > #{$_media-figure} > figcaption > svg {
460
458
  grid-column: 2;
461
459
  grid-row: 3;
462
460
  }
463
-
464
- @if $with-actions {
465
- > .actions {
466
- grid-column: 2;
467
- grid-row: 4;
468
- align-self: end;
469
- justify-content: flex-end;
470
- }
471
- }
472
461
  }
473
462
 
474
- article.horizontal {
475
- @include horizontal-card-layout;
463
+ article.horizontal > .actions {
464
+ grid-column: 2;
465
+ grid-row: 4;
466
+ align-self: end;
467
+ justify-content: flex-end;
476
468
  }
477
469
 
478
470
  article.horizontal:has(> .primary-action) {
@@ -480,16 +472,14 @@ article.horizontal:has(> .primary-action) {
480
472
  }
481
473
 
482
474
  article.horizontal > .primary-action {
483
- @include horizontal-card-layout(false);
484
-
485
475
  width: 100%;
486
476
  min-height: inherit;
487
477
  }
488
478
 
489
479
  // Fixed heights for uniform grids.
490
- article.small { height: 300px; }
491
- article.medium { height: 400px; }
492
- article.large { height: 500px; }
480
+ article.small { height: rem(300px); }
481
+ article.medium { height: rem(400px); }
482
+ article.large { height: rem(500px); }
493
483
 
494
484
  article.small, article.medium, article.large {
495
485
  display: flex;
@@ -536,7 +526,9 @@ article.horizontal:is(.small, .medium, .large) > .primary-action {
536
526
 
537
527
  // Compact windows use the vertical spelling. This keeps media and controls
538
528
  // large enough to scan and operate without changing their source order.
539
- @include bp-down("medium") {
529
+ // A query container narrower than Compact does the same, so a horizontal
530
+ // card in a narrow pane or sidebar stacks even on a wide window.
531
+ @mixin _stacked-horizontal {
540
532
  article.horizontal,
541
533
  article.horizontal.small,
542
534
  article.horizontal.medium,
@@ -556,6 +548,9 @@ article.horizontal:is(.small, .medium, .large) > .primary-action {
556
548
  }
557
549
  }
558
550
 
551
+ @include bp-down("medium") { @include _stacked-horizontal; }
552
+ @container (width < 600px) { @include _stacked-horizontal; }
553
+
559
554
  // Reveal panel. Panels stay available until Cards confirms the disclosure
560
555
  // contract and adds its runtime marker. The summary and media remain in place
561
556
  // while the initialized card grows downward to expose additional actions.
@@ -566,8 +561,8 @@ article.horizontal:is(.small, .medium, .large) > .primary-action {
566
561
  }
567
562
 
568
563
  article.card-reveal-initialized > aside {
569
- --md-comp-card-reveal-duration: 500ms;
570
- --md-comp-card-reveal-easing: cubic-bezier(0.2, 0, 0, 1);
564
+ --md-comp-card-reveal-duration: var(--md-sys-motion-duration-long2);
565
+ --md-comp-card-reveal-easing: var(--md-sys-motion-easing-standard);
571
566
 
572
567
  position: relative;
573
568
  inset: auto;
@@ -585,7 +580,7 @@ article.card-reveal-initialized > aside {
585
580
  transition:
586
581
  height var(--md-comp-card-reveal-duration) var(--md-comp-card-reveal-easing),
587
582
  padding-block var(--md-comp-card-reveal-duration) var(--md-comp-card-reveal-easing),
588
- opacity 150ms ease-out,
583
+ opacity var(--md-sys-motion-duration-short3) ease-out,
589
584
  visibility 0s var(--md-comp-card-reveal-duration);
590
585
  }
591
586
 
@@ -598,7 +593,7 @@ article.card-reveal-initialized > aside.open {
598
593
  transition:
599
594
  height var(--md-comp-card-reveal-duration) var(--md-comp-card-reveal-easing),
600
595
  padding-block var(--md-comp-card-reveal-duration) var(--md-comp-card-reveal-easing),
601
- opacity 200ms 100ms ease-out,
596
+ opacity var(--md-sys-motion-duration-short4) var(--md-sys-motion-duration-short2) ease-out,
602
597
  visibility 0s;
603
598
  }
604
599
 
@@ -639,16 +634,12 @@ article > aside > .reveal-actions > .reveal-action {
639
634
  min-height: 48px;
640
635
  padding-inline: 0;
641
636
  color: var(--md-sys-color-on-surface);
642
- border-radius: 8px;
637
+ border-radius: var(--md-sys-shape-corner-small);
643
638
  @include typescale("body-medium");
644
639
  }
645
640
 
646
641
  article > aside > .reveal-actions > .reveal-action:hover {
647
- background-color: color-mix(
648
- in oklab,
649
- var(--md-sys-color-on-surface) state-opacity("hover"),
650
- transparent
651
- );
642
+ background-color: state-layer(var(--md-sys-color-on-surface), "hover");
652
643
  }
653
644
 
654
645
  article > aside > .reveal-actions > .reveal-action > :is(.material-symbols, .card-icon, svg) {
@@ -663,7 +654,8 @@ article > aside > .reveal-actions > .reveal-action > :is(.material-symbols, .car
663
654
  :where(#{$_card}),
664
655
  :where(#{$_card})::after,
665
656
  article > figure > .card-reveal-trigger,
666
- article.card-reveal-initialized > aside {
657
+ article.card-reveal-initialized > aside,
658
+ article.card-reveal-initialized > aside.open {
667
659
  transition: none;
668
660
  }
669
661
  }
@@ -10,9 +10,6 @@
10
10
  // .hero.center-aligned one centered large item and two small previews
11
11
  // .full-screen vertical, edge-to-edge, mandatory snap
12
12
  //
13
- // `.flat` remains a full-width compatibility layout for swipeable tabs and
14
- // older integrations.
15
- //
16
13
  // Material measurements:
17
14
  // inline padding 16dp (0 for full-screen)
18
15
  // block padding 8dp (0 for full-screen)
@@ -25,26 +22,21 @@
25
22
  @return clamp(var(--md-comp-carousel-small-item-min-width), $share, var(--md-comp-carousel-small-item-max-width));
26
23
  }
27
24
 
25
+ // The medium item takes what $n large items, one small item at $share and
26
+ // the $n + 1 gaps of 8px leave of the track, held between 64px and 240px.
27
+ @function _medium-item-width($n, $share) {
28
+ @return clamp(64px, calc(100% - #{$n} * var(--md-comp-carousel-large-item-width) - #{_small-item-width($share)} - #{($n + 1) * 8px}), 240px);
29
+ }
30
+
28
31
  .carousel {
29
32
  --md-comp-carousel-height: 240px;
30
- --md-comp-carousel-shape: 28px;
31
- --md-comp-carousel-pressed-shape: 20px;
33
+ --md-comp-carousel-shape: var(--md-sys-shape-corner-extra-large);
34
+ --md-comp-carousel-pressed-shape: var(--md-sys-shape-corner-large-increased);
32
35
  --md-comp-carousel-gap: 8px;
33
36
  --md-comp-carousel-inline-padding: 16px;
34
37
  --md-comp-carousel-block-padding: 8px;
35
38
  --md-comp-carousel-large-item-width: clamp(150px, 52%, 480px);
36
- --md-comp-carousel-medium-item-width: clamp(
37
- 64px,
38
- calc(
39
- 100% - var(--md-comp-carousel-large-item-width) - clamp(
40
- var(--md-comp-carousel-small-item-min-width),
41
- 12%,
42
- var(--md-comp-carousel-small-item-max-width)
43
- ) -
44
- 16px
45
- ),
46
- 240px
47
- );
39
+ --md-comp-carousel-medium-item-width: #{_medium-item-width(1, 12%)};
48
40
  --md-comp-carousel-small-item-min-width: 40px;
49
41
  --md-comp-carousel-small-item-max-width: 56px;
50
42
  --md-comp-carousel-uncontained-item-width: min(78%, 320px);
@@ -83,10 +75,6 @@
83
75
  overscroll-behavior-inline: contain;
84
76
  scrollbar-width: none;
85
77
 
86
- &::-webkit-scrollbar {
87
- display: none;
88
- }
89
-
90
78
  img,
91
79
  video {
92
80
  -webkit-user-drag: none;
@@ -105,9 +93,9 @@
105
93
  scroll-snap-align: start;
106
94
  scroll-snap-stop: always;
107
95
  transition:
108
- flex-basis 300ms cubic-bezier(0.2, 0, 0, 1),
109
- width 300ms cubic-bezier(0.2, 0, 0, 1),
110
- border-radius 200ms cubic-bezier(0.2, 0, 0, 1);
96
+ flex-basis var(--md-sys-motion-duration-medium2) var(--md-sys-motion-easing-standard),
97
+ width var(--md-sys-motion-duration-medium2) var(--md-sys-motion-easing-standard),
98
+ border-radius var(--md-sys-motion-duration-short4) var(--md-sys-motion-easing-standard);
111
99
 
112
100
  &[data-carousel-size="medium"] {
113
101
  flex-basis: var(--md-comp-carousel-medium-item-width);
@@ -137,7 +125,7 @@
137
125
  height: 100%;
138
126
  object-fit: cover;
139
127
  transform: translateX(var(--md-comp-carousel-item-parallax, 0px));
140
- transition: transform 100ms linear;
128
+ transition: transform var(--md-sys-motion-duration-short2) linear;
141
129
  }
142
130
 
143
131
  > .carousel-item-content {
@@ -147,7 +135,7 @@
147
135
  width: fit-content;
148
136
  max-width: calc(100% - 24px);
149
137
  padding: 8px 12px;
150
- border-radius: 12px;
138
+ border-radius: var(--md-sys-shape-corner-medium);
151
139
  background-color: var(--md-sys-color-surface);
152
140
  color: var(--md-sys-color-on-surface);
153
141
 
@@ -182,7 +170,7 @@
182
170
  background-color: var(--md-comp-carousel-state-layer-color);
183
171
  opacity: 0;
184
172
  pointer-events: none;
185
- transition: opacity 200ms ease-out;
173
+ transition: opacity var(--md-sys-motion-duration-short4) ease-out;
186
174
  }
187
175
 
188
176
  &:not(article):hover::after {
@@ -220,39 +208,46 @@
220
208
  display: flex;
221
209
  justify-content: center;
222
210
  align-items: center;
223
- gap: 8px;
224
211
  list-style: none;
225
212
  position: absolute;
226
213
  inset: auto 0 0;
227
214
  z-index: 4;
228
215
  margin: 0;
229
- padding: 8px 0;
216
+ padding: 0;
230
217
  border: 0;
231
218
  background: none;
232
219
 
220
+ // Each dot is a 24px button with the 8px dot painted in its content box,
221
+ // so the targets meet WCAG 2.5.8 without overlapping. They touch, which
222
+ // keeps the row the height it had and puts the dots 24px apart.
233
223
  .indicator-item {
234
224
  appearance: none;
235
225
  box-sizing: border-box;
236
226
  display: block;
237
- width: 8px;
238
- height: 8px;
227
+ width: 24px;
228
+ height: 24px;
239
229
  margin: 0;
240
- padding: 0;
230
+ padding: 8px;
241
231
  border: 0;
242
232
  border-radius: 50%;
233
+ background-clip: content-box;
243
234
  background-color: color-mix(
244
235
  in oklab,
245
236
  var(--md-sys-color-on-surface) 45%,
246
237
  transparent
247
238
  );
248
239
  cursor: pointer;
249
- transition: background-color 200ms ease-out;
240
+ transition: background-color var(--md-sys-motion-duration-short4) ease-out;
241
+
242
+ @include forced-colors-fill(GrayText);
250
243
 
251
244
  &:is(.active, [aria-current="true"]) {
252
245
  background-color: var(--md-sys-color-primary);
246
+ @include forced-colors-fill;
253
247
  }
254
248
 
255
- @include focus-visible;
249
+ // Inset to ring the dot as it did, not the whole target.
250
+ @include focus-visible(-6px);
256
251
  }
257
252
  }
258
253
 
@@ -277,8 +272,8 @@
277
272
 
278
273
  // Contained layouts keep every visible item complete. These surface guards
279
274
  // reserve the 16dp edge padding so the following item cannot peek through it.
280
- .carousel:not(.uncontained, .full-screen, .flat)::before,
281
- .carousel:not(.uncontained, .full-screen, .flat)::after,
275
+ .carousel:not(.uncontained, .full-screen)::before,
276
+ .carousel:not(.uncontained, .full-screen)::after,
282
277
  .carousel.full-screen-horizontal::before,
283
278
  .carousel.full-screen-horizontal::after {
284
279
  content: "";
@@ -290,12 +285,12 @@
290
285
  pointer-events: none;
291
286
  }
292
287
 
293
- .carousel:not(.uncontained, .full-screen, .flat)::before,
288
+ .carousel:not(.uncontained, .full-screen)::before,
294
289
  .carousel.full-screen-horizontal::before {
295
290
  inset-inline-start: 0;
296
291
  }
297
292
 
298
- .carousel:not(.uncontained, .full-screen, .flat)::after,
293
+ .carousel:not(.uncontained, .full-screen)::after,
299
294
  .carousel.full-screen-horizontal::after {
300
295
  inset-inline-end: 0;
301
296
  }
@@ -304,22 +299,7 @@
304
299
  // medium width is solved from the container so every visible item is complete.
305
300
  .carousel.multi-wide {
306
301
  --md-comp-carousel-large-item-width: clamp(180px, 36%, 480px);
307
- --md-comp-carousel-medium-item-width: min(
308
- 240px,
309
- max(
310
- 64px,
311
- calc(
312
- 100% - var(--md-comp-carousel-large-item-width) - var(
313
- --md-comp-carousel-large-item-width
314
- ) - clamp(
315
- var(--md-comp-carousel-small-item-min-width),
316
- 8%,
317
- var(--md-comp-carousel-small-item-max-width)
318
- ) -
319
- 24px
320
- )
321
- )
322
- );
302
+ --md-comp-carousel-medium-item-width: #{_medium-item-width(2, 8%)};
323
303
 
324
304
  .carousel-track > .carousel-item[data-carousel-size="small"] {
325
305
  flex-basis: _small-item-width(8%);
@@ -331,22 +311,7 @@
331
311
  // the medium item smaller than its large neighbours and the final item whole.
332
312
  .carousel.multi-large {
333
313
  --md-comp-carousel-large-item-width: clamp(180px, 27%, 480px);
334
- --md-comp-carousel-medium-item-width: min(
335
- 240px,
336
- max(
337
- 64px,
338
- calc(
339
- 100% - var(--md-comp-carousel-large-item-width) - var(
340
- --md-comp-carousel-large-item-width
341
- ) - var(--md-comp-carousel-large-item-width) - clamp(
342
- var(--md-comp-carousel-small-item-min-width),
343
- 6%,
344
- var(--md-comp-carousel-small-item-max-width)
345
- ) -
346
- 32px
347
- )
348
- )
349
- );
314
+ --md-comp-carousel-medium-item-width: #{_medium-item-width(3, 6%)};
350
315
 
351
316
  .carousel-track > .carousel-item[data-carousel-size="small"] {
352
317
  flex-basis: _small-item-width(6%);
@@ -356,24 +321,7 @@
356
321
 
357
322
  .carousel.multi-extra-large {
358
323
  --md-comp-carousel-large-item-width: clamp(180px, 22%, 480px);
359
- --md-comp-carousel-medium-item-width: min(
360
- 240px,
361
- max(
362
- 64px,
363
- calc(
364
- 100% - var(--md-comp-carousel-large-item-width) - var(
365
- --md-comp-carousel-large-item-width
366
- ) - var(--md-comp-carousel-large-item-width) - var(
367
- --md-comp-carousel-large-item-width
368
- ) - clamp(
369
- var(--md-comp-carousel-small-item-min-width),
370
- 4%,
371
- var(--md-comp-carousel-small-item-max-width)
372
- ) -
373
- 40px
374
- )
375
- )
376
- );
324
+ --md-comp-carousel-medium-item-width: #{_medium-item-width(4, 4%)};
377
325
 
378
326
  .carousel-track > .carousel-item[data-carousel-size="small"] {
379
327
  flex-basis: _small-item-width(4%);
@@ -478,7 +426,7 @@
478
426
  --md-comp-carousel-gap: 8px;
479
427
  --md-comp-carousel-inline-padding: 16px;
480
428
  --md-comp-carousel-block-padding: 8px;
481
- --md-comp-carousel-shape: 28px;
429
+ --md-comp-carousel-shape: var(--md-sys-shape-corner-extra-large);
482
430
  // Fill the content box with one large item, one 8dp gap, and one 56dp
483
431
  // preview. Track padding sits outside the percentage basis.
484
432
  --md-comp-carousel-large-item-width: calc(100% - 64px);
@@ -542,30 +490,6 @@
542
490
  }
543
491
  }
544
492
 
545
- // Full-width compatibility mode for tabs and existing integrations.
546
- .carousel.flat {
547
- --md-comp-carousel-gap: 0px;
548
- --md-comp-carousel-inline-padding: 0px;
549
- --md-comp-carousel-block-padding: 0px;
550
- --md-comp-carousel-shape: 0px;
551
-
552
- .carousel-track > .carousel-item {
553
- flex: 0 0 100%;
554
- width: 100%;
555
- height: 100%;
556
- }
557
-
558
- .carousel-fixed-item {
559
- position: absolute;
560
- inset: auto 0 20px;
561
- z-index: 4;
562
-
563
- &.with-indicators {
564
- bottom: 68px;
565
- }
566
- }
567
- }
568
-
569
493
  @include bp-up("medium") {
570
494
  .carousel {
571
495
  --md-comp-carousel-height: 320px;
@@ -0,0 +1,131 @@
1
+ @use "../abstracts" as *;
2
+
3
+ // Cascader. A .field holding a text input, its label and a ul.cascader-options
4
+ // of nested lists, one <li data-value> per option. The script builds the
5
+ // columns from those lists in a .cascader-popover, so the lists never show.
6
+ //
7
+ // The popover is a manual [popover] opened with the input as its source, so
8
+ // CSS anchor positioning places it below the field and flips it where it
9
+ // would not fit. Each column is a listbox; the options on the open path are
10
+ // aria-selected, and a branch ends in a chevron.
11
+ //
12
+ // Tokens:
13
+ // --md-comp-cascader-container-color surface-container
14
+ // --md-comp-cascader-container-shape large (16px)
15
+ // --md-comp-cascader-column-width rem(176px), the minimum
16
+ // --md-comp-cascader-max-height rem(320px)
17
+ // --md-comp-cascader-option-height rem(44px)
18
+ // --md-comp-cascader-selected-container-color secondary-container
19
+
20
+ $_chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9.4 18 8 16.6l4.6-4.6L8 7.4 9.4 6l6 6z'/%3E%3C/svg%3E");
21
+
22
+ .cascader-options {
23
+ display: none;
24
+ }
25
+
26
+ // The form control wraps the input with display: contents, so the field's
27
+ // `input + label` rules no longer reach the label. The label floats here
28
+ // instead while the input is focused, open or holds a path.
29
+ .field.cascader {
30
+ &:has(> expressive-cascader-control > input:is(:focus, [aria-expanded="true"], :not([placeholder=" "]), :not(:placeholder-shown))) > label {
31
+ transform: scale(calc(12 / 16));
32
+ top: rem(8px);
33
+ }
34
+
35
+ &:has(> expressive-cascader-control > input:is(:focus, [aria-expanded="true"])) > label {
36
+ color: var(--input-color);
37
+ }
38
+ }
39
+
40
+ .cascader-popover {
41
+ --md-comp-cascader-container-color: var(--md-sys-color-surface-container);
42
+ --md-comp-cascader-container-shape: var(--md-sys-shape-corner-large);
43
+ --md-comp-cascader-column-width: #{rem(176px)};
44
+ --md-comp-cascader-max-height: #{rem(320px)};
45
+ --md-comp-cascader-option-height: #{rem(44px)};
46
+ --md-comp-cascader-selected-container-color: var(--md-sys-color-secondary-container);
47
+
48
+ box-sizing: border-box;
49
+ max-width: calc(100vw - 16px);
50
+ max-height: min(var(--md-comp-cascader-max-height), calc(100vh - 16px));
51
+ inset: auto;
52
+ margin: 4px 0;
53
+ padding: 0;
54
+ overflow-x: auto;
55
+ border: 0;
56
+ border-radius: var(--md-comp-cascader-container-shape);
57
+ background-color: var(--md-comp-cascader-container-color);
58
+ color: var(--md-sys-color-on-surface);
59
+ @include z-depth("2");
60
+ @include glass(var(--md-comp-cascader-container-color));
61
+
62
+ position-area: block-end span-inline-end;
63
+ position-try-fallbacks: flip-block, flip-inline, flip-block flip-inline;
64
+
65
+ &:popover-open {
66
+ display: flex;
67
+ }
68
+
69
+ // Forced colors drop the shadow, so the surface keeps an edge.
70
+ @media (forced-colors: active) {
71
+ outline: 1px solid CanvasText;
72
+ outline-offset: -1px;
73
+ }
74
+
75
+ > [role="listbox"] {
76
+ box-sizing: border-box;
77
+ flex: none;
78
+ min-width: var(--md-comp-cascader-column-width);
79
+ max-height: inherit;
80
+ margin: 0;
81
+ padding: 8px 0;
82
+ overflow-y: auto;
83
+ list-style: none;
84
+
85
+ + [role="listbox"] {
86
+ border-inline-start: 1px solid var(--md-sys-color-outline-variant);
87
+ }
88
+ }
89
+
90
+ [role="option"] {
91
+ display: flex;
92
+ align-items: center;
93
+ gap: 12px;
94
+ box-sizing: border-box;
95
+ min-height: var(--md-comp-cascader-option-height);
96
+ margin: 0 4px;
97
+ padding: 8px 12px 8px 16px;
98
+ border-radius: var(--md-sys-shape-corner-medium);
99
+ cursor: pointer;
100
+ @include typescale("label-large");
101
+
102
+ @include text-action('[aria-selected="true"]', var(--md-comp-cascader-selected-container-color));
103
+ // After the selected arm, so the ring beats its forced-colors outline.
104
+ @include focus-visible(-3px);
105
+ }
106
+
107
+ .cascader-chevron {
108
+ flex: none;
109
+ width: rem(20px);
110
+ height: rem(20px);
111
+ margin-inline-start: auto;
112
+ background-color: currentColor;
113
+ mask: $_chevron center / contain no-repeat;
114
+ @include forced-colors-fill;
115
+
116
+ &:dir(rtl) {
117
+ scale: -1 1;
118
+ }
119
+ }
120
+ }
121
+
122
+ // Without anchor positioning the browser ignores position-area, so the
123
+ // popover is centered in the viewport, as a native popover is.
124
+ @supports not (anchor-name: --a) {
125
+ .cascader-popover {
126
+ inset: 0;
127
+ width: fit-content;
128
+ height: fit-content;
129
+ margin: auto;
130
+ }
131
+ }