@expressivecss/expressive 0.14.1 → 0.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (603) hide show
  1. package/CHANGELOG.md +1589 -1
  2. package/README.md +9 -8
  3. package/dist/css/expressive.css +19304 -12021
  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-2CS6TITK.mjs +219 -0
  64. package/dist/js/chunks/chunk-2CS6TITK.mjs.map +7 -0
  65. package/dist/js/chunks/chunk-2RLBDFH4.mjs +108 -0
  66. package/dist/js/chunks/chunk-2RLBDFH4.mjs.map +7 -0
  67. package/dist/js/chunks/chunk-3L3QIYLC.mjs +85 -0
  68. package/dist/js/chunks/chunk-3L3QIYLC.mjs.map +7 -0
  69. package/dist/js/chunks/chunk-4EWGD4V2.mjs +75 -0
  70. package/dist/js/chunks/chunk-4EWGD4V2.mjs.map +7 -0
  71. package/dist/js/chunks/chunk-4IKVPCSU.mjs +7 -0
  72. package/dist/js/chunks/chunk-4IKVPCSU.mjs.map +7 -0
  73. package/dist/js/chunks/chunk-4PIXLDNJ.mjs +127 -0
  74. package/dist/js/chunks/chunk-4PIXLDNJ.mjs.map +7 -0
  75. package/dist/js/chunks/{chunk-A7ALMYUR.mjs → chunk-4QUCNFSD.mjs} +68 -125
  76. package/dist/js/chunks/chunk-4QUCNFSD.mjs.map +7 -0
  77. package/dist/js/chunks/{chunk-4TKTLGEM.mjs → chunk-4TRZ2AER.mjs} +35 -41
  78. package/dist/js/chunks/chunk-4TRZ2AER.mjs.map +7 -0
  79. package/dist/js/chunks/{chunk-BG6ZRB5H.mjs → chunk-5KIHWJI2.mjs} +40 -26
  80. package/dist/js/chunks/chunk-5KIHWJI2.mjs.map +7 -0
  81. package/dist/js/chunks/{chunk-YDCS5S3J.mjs → chunk-67ZPPKXS.mjs} +20 -33
  82. package/dist/js/chunks/chunk-67ZPPKXS.mjs.map +7 -0
  83. package/dist/js/chunks/{chunk-3DHK5CZU.mjs → chunk-6FSEUFVW.mjs} +40 -29
  84. package/dist/js/chunks/chunk-6FSEUFVW.mjs.map +7 -0
  85. package/dist/js/chunks/chunk-752ADW4M.mjs +225 -0
  86. package/dist/js/chunks/chunk-752ADW4M.mjs.map +7 -0
  87. package/dist/js/chunks/{chunk-GVGT6MIU.mjs → chunk-75E5EDJF.mjs} +3 -11
  88. package/dist/js/chunks/chunk-75E5EDJF.mjs.map +7 -0
  89. package/dist/js/chunks/{chunk-TBM3FT7G.mjs → chunk-7NLUI3RR.mjs} +148 -78
  90. package/dist/js/chunks/chunk-7NLUI3RR.mjs.map +7 -0
  91. package/dist/js/chunks/chunk-7W7TV6NY.mjs +108 -0
  92. package/dist/js/chunks/chunk-7W7TV6NY.mjs.map +7 -0
  93. package/dist/js/chunks/chunk-7YQBHTK3.mjs +225 -0
  94. package/dist/js/chunks/chunk-7YQBHTK3.mjs.map +7 -0
  95. package/dist/js/chunks/chunk-7YZ5CN3V.mjs +33 -0
  96. package/dist/js/chunks/chunk-7YZ5CN3V.mjs.map +7 -0
  97. package/dist/js/chunks/chunk-AI73GJKG.mjs +28 -0
  98. package/dist/js/chunks/chunk-AI73GJKG.mjs.map +7 -0
  99. package/dist/js/chunks/{chunk-NS2UMNZV.mjs → chunk-ANKFWNWT.mjs} +21 -45
  100. package/dist/js/chunks/chunk-ANKFWNWT.mjs.map +7 -0
  101. package/dist/js/chunks/{chunk-GIW4K4SE.mjs → chunk-B7DQFHA5.mjs} +37 -53
  102. package/dist/js/chunks/chunk-B7DQFHA5.mjs.map +7 -0
  103. package/dist/js/chunks/chunk-BIGU5RCJ.mjs +153 -0
  104. package/dist/js/chunks/chunk-BIGU5RCJ.mjs.map +7 -0
  105. package/dist/js/chunks/{chunk-GUB3TNO2.mjs → chunk-BPF3I2MN.mjs} +109 -27
  106. package/dist/js/chunks/chunk-BPF3I2MN.mjs.map +7 -0
  107. package/dist/js/chunks/chunk-CMGXGYUC.mjs +74 -0
  108. package/dist/js/chunks/chunk-CMGXGYUC.mjs.map +7 -0
  109. package/dist/js/chunks/{chunk-JIDMQGK6.mjs → chunk-CSYWKEK3.mjs} +322 -223
  110. package/dist/js/chunks/chunk-CSYWKEK3.mjs.map +7 -0
  111. package/dist/js/chunks/chunk-CZSQHXEV.mjs +227 -0
  112. package/dist/js/chunks/chunk-CZSQHXEV.mjs.map +7 -0
  113. package/dist/js/chunks/chunk-DZYVU75J.mjs +121 -0
  114. package/dist/js/chunks/chunk-DZYVU75J.mjs.map +7 -0
  115. package/dist/js/chunks/{chunk-QDAL4IYN.mjs → chunk-EC26RU2D.mjs} +11 -29
  116. package/dist/js/chunks/chunk-EC26RU2D.mjs.map +7 -0
  117. package/dist/js/chunks/{chunk-3GVFZ4XO.mjs → chunk-EVCVFEV3.mjs} +238 -152
  118. package/dist/js/chunks/chunk-EVCVFEV3.mjs.map +7 -0
  119. package/dist/js/chunks/chunk-FCNF4GRJ.mjs +445 -0
  120. package/dist/js/chunks/chunk-FCNF4GRJ.mjs.map +7 -0
  121. package/dist/js/chunks/chunk-GCWWEZKO.mjs +342 -0
  122. package/dist/js/chunks/chunk-GCWWEZKO.mjs.map +7 -0
  123. package/dist/js/chunks/chunk-GNRSYMVH.mjs +1 -0
  124. package/dist/js/chunks/chunk-GVZQH2H5.mjs +54 -0
  125. package/dist/js/chunks/chunk-GVZQH2H5.mjs.map +7 -0
  126. package/dist/js/chunks/chunk-GWZ76SR4.mjs +435 -0
  127. package/dist/js/chunks/chunk-GWZ76SR4.mjs.map +7 -0
  128. package/dist/js/chunks/{chunk-ZAS25YFD.mjs → chunk-ILDRRG7T.mjs} +21 -23
  129. package/dist/js/chunks/chunk-ILDRRG7T.mjs.map +7 -0
  130. package/dist/js/chunks/chunk-INLZWHLY.mjs +80 -0
  131. package/dist/js/chunks/chunk-INLZWHLY.mjs.map +7 -0
  132. package/dist/js/chunks/chunk-JUKBBN6P.mjs +175 -0
  133. package/dist/js/chunks/chunk-JUKBBN6P.mjs.map +7 -0
  134. package/dist/js/chunks/chunk-KYIEG4U3.mjs +730 -0
  135. package/dist/js/chunks/chunk-KYIEG4U3.mjs.map +7 -0
  136. package/dist/js/chunks/{chunk-KHV6DZXX.mjs → chunk-KZPSAXIU.mjs} +156 -46
  137. package/dist/js/chunks/chunk-KZPSAXIU.mjs.map +7 -0
  138. package/dist/js/chunks/chunk-LDXCC2L3.mjs +438 -0
  139. package/dist/js/chunks/chunk-LDXCC2L3.mjs.map +7 -0
  140. package/dist/js/chunks/chunk-NAC72P7R.mjs +137 -0
  141. package/dist/js/chunks/chunk-NAC72P7R.mjs.map +7 -0
  142. package/dist/js/chunks/chunk-NBJAUGPP.mjs +244 -0
  143. package/dist/js/chunks/chunk-NBJAUGPP.mjs.map +7 -0
  144. package/dist/js/chunks/chunk-NNHVANQA.mjs +113 -0
  145. package/dist/js/chunks/chunk-NNHVANQA.mjs.map +7 -0
  146. package/dist/js/chunks/chunk-NVQ5EHCU.mjs +376 -0
  147. package/dist/js/chunks/chunk-NVQ5EHCU.mjs.map +7 -0
  148. package/dist/js/chunks/{chunk-Z2NRKI7R.mjs → chunk-OP43LLIC.mjs} +44 -73
  149. package/dist/js/chunks/chunk-OP43LLIC.mjs.map +7 -0
  150. package/dist/js/chunks/chunk-OUCHKSAW.mjs +63 -0
  151. package/dist/js/chunks/chunk-OUCHKSAW.mjs.map +7 -0
  152. package/dist/js/chunks/{chunk-PM655FXL.mjs → chunk-OYNUDOHR.mjs} +20 -48
  153. package/dist/js/chunks/chunk-OYNUDOHR.mjs.map +7 -0
  154. package/dist/js/chunks/{chunk-UEZUJQ66.mjs → chunk-P6DRQ6KS.mjs} +36 -31
  155. package/dist/js/chunks/chunk-P6DRQ6KS.mjs.map +7 -0
  156. package/dist/js/chunks/chunk-PA7NU5AK.mjs +99 -0
  157. package/dist/js/chunks/chunk-PA7NU5AK.mjs.map +7 -0
  158. package/dist/js/chunks/chunk-QACZ6TUP.mjs +224 -0
  159. package/dist/js/chunks/chunk-QACZ6TUP.mjs.map +7 -0
  160. package/dist/js/chunks/{chunk-5HQSGDZ5.mjs → chunk-QXKWVHBD.mjs} +286 -203
  161. package/dist/js/chunks/chunk-QXKWVHBD.mjs.map +7 -0
  162. package/dist/js/chunks/{chunk-DAIU5SLG.mjs → chunk-ROH2HDB4.mjs} +7 -6
  163. package/dist/js/chunks/chunk-ROH2HDB4.mjs.map +7 -0
  164. package/dist/js/chunks/chunk-S23RJ3XY.mjs +86 -0
  165. package/dist/js/chunks/chunk-S23RJ3XY.mjs.map +7 -0
  166. package/dist/js/chunks/{chunk-FS7XY3HT.mjs → chunk-SPPHF7YZ.mjs} +36 -29
  167. package/dist/js/chunks/chunk-SPPHF7YZ.mjs.map +7 -0
  168. package/dist/js/chunks/chunk-T3BNSRP3.mjs +152 -0
  169. package/dist/js/chunks/chunk-T3BNSRP3.mjs.map +7 -0
  170. package/dist/js/chunks/chunk-TFABTUAZ.mjs +108 -0
  171. package/dist/js/chunks/chunk-TFABTUAZ.mjs.map +7 -0
  172. package/dist/js/chunks/chunk-U4B3VHFS.mjs +507 -0
  173. package/dist/js/chunks/chunk-U4B3VHFS.mjs.map +7 -0
  174. package/dist/js/chunks/chunk-UGJHCHXG.mjs +341 -0
  175. package/dist/js/chunks/chunk-UGJHCHXG.mjs.map +7 -0
  176. package/dist/js/chunks/chunk-VFV75DHF.mjs +70 -0
  177. package/dist/js/chunks/chunk-VFV75DHF.mjs.map +7 -0
  178. package/dist/js/chunks/{chunk-4HZMB7LI.mjs → chunk-VGY4M57S.mjs} +281 -135
  179. package/dist/js/chunks/chunk-VGY4M57S.mjs.map +7 -0
  180. package/dist/js/chunks/chunk-VH4BMAZS.mjs +167 -0
  181. package/dist/js/chunks/chunk-VH4BMAZS.mjs.map +7 -0
  182. package/dist/js/chunks/chunk-VJVQIXHC.mjs +123 -0
  183. package/dist/js/chunks/chunk-VJVQIXHC.mjs.map +7 -0
  184. package/dist/js/chunks/{chunk-S3XDFGSZ.mjs → chunk-VMY55K2X.mjs} +92 -141
  185. package/dist/js/chunks/chunk-VMY55K2X.mjs.map +7 -0
  186. package/dist/js/chunks/{chunk-UEXCIMJZ.mjs → chunk-VR3L2WN5.mjs} +11 -17
  187. package/dist/js/chunks/chunk-VR3L2WN5.mjs.map +7 -0
  188. package/dist/js/chunks/chunk-W6FAL3TI.mjs +38 -0
  189. package/dist/js/chunks/chunk-W6FAL3TI.mjs.map +7 -0
  190. package/dist/js/chunks/chunk-WU7XJ4RR.mjs +450 -0
  191. package/dist/js/chunks/chunk-WU7XJ4RR.mjs.map +7 -0
  192. package/dist/js/chunks/chunk-X7SDA2J5.mjs +116 -0
  193. package/dist/js/chunks/chunk-X7SDA2J5.mjs.map +7 -0
  194. package/dist/js/chunks/chunk-Y6H2X7ZC.mjs +209 -0
  195. package/dist/js/chunks/chunk-Y6H2X7ZC.mjs.map +7 -0
  196. package/dist/js/chunks/chunk-Y6TLRA3U.mjs +129 -0
  197. package/dist/js/chunks/chunk-Y6TLRA3U.mjs.map +7 -0
  198. package/dist/js/chunks/chunk-Z4GICXR2.mjs +190 -0
  199. package/dist/js/chunks/chunk-Z4GICXR2.mjs.map +7 -0
  200. package/dist/js/chunks/chunk-Z4OARDZ7.mjs +442 -0
  201. package/dist/js/chunks/chunk-Z4OARDZ7.mjs.map +7 -0
  202. package/dist/js/chunks/{chunk-MZ6Z24BX.mjs → chunk-ZJNLAGY5.mjs} +19 -34
  203. package/dist/js/chunks/chunk-ZJNLAGY5.mjs.map +7 -0
  204. package/dist/js/chunks/chunk-ZKWUWBUB.mjs +81 -0
  205. package/dist/js/chunks/chunk-ZKWUWBUB.mjs.map +7 -0
  206. package/dist/js/chunks/chunk-ZM3XBHWV.mjs +746 -0
  207. package/dist/js/chunks/chunk-ZM3XBHWV.mjs.map +7 -0
  208. package/dist/js/chunks/chunk-ZO6ZLHFF.mjs +48 -0
  209. package/dist/js/chunks/chunk-ZO6ZLHFF.mjs.map +7 -0
  210. package/dist/js/chunks/chunk-ZVLOUDIJ.mjs +251 -0
  211. package/dist/js/chunks/chunk-ZVLOUDIJ.mjs.map +7 -0
  212. package/dist/js/expressive.cjs +10333 -4070
  213. package/dist/js/expressive.cjs.map +4 -4
  214. package/dist/js/expressive.js +10333 -4070
  215. package/dist/js/expressive.js.map +4 -4
  216. package/dist/js/expressive.min.js +23 -25
  217. package/dist/js/expressive.min.js.map +4 -4
  218. package/dist/js/expressive.mjs +184 -69
  219. package/dist/js/expressive.mjs.map +2 -2
  220. package/dist/js/internal/behaviors/bottomSheets.mjs +4 -3
  221. package/dist/js/internal/behaviors/copy.mjs +9 -0
  222. package/dist/js/internal/behaviors/copy.mjs.map +7 -0
  223. package/dist/js/internal/behaviors/dataTables.mjs +10 -0
  224. package/dist/js/internal/behaviors/dataTables.mjs.map +7 -0
  225. package/dist/js/internal/behaviors/dialogs.mjs +2 -2
  226. package/dist/js/internal/behaviors/forms.mjs +2 -2
  227. package/dist/js/internal/behaviors/imageCompare.mjs +8 -0
  228. package/dist/js/internal/behaviors/imageCompare.mjs.map +7 -0
  229. package/dist/js/internal/behaviors/lists.mjs +8 -0
  230. package/dist/js/internal/behaviors/lists.mjs.map +7 -0
  231. package/dist/js/internal/behaviors/paneResize.mjs +8 -0
  232. package/dist/js/internal/behaviors/paneResize.mjs.map +7 -0
  233. package/dist/js/internal/behaviors/sheetDrag.mjs +7 -2
  234. package/dist/js/internal/behaviors/sideSheets.mjs +4 -3
  235. package/dist/js/internal/behaviors/sortable.mjs +8 -0
  236. package/dist/js/internal/behaviors/sortable.mjs.map +7 -0
  237. package/dist/js/internal/behaviors/theme.mjs +8 -0
  238. package/dist/js/internal/behaviors/theme.mjs.map +7 -0
  239. package/dist/js/internal/behaviors/tour.mjs +8 -0
  240. package/dist/js/internal/behaviors/tour.mjs.map +7 -0
  241. package/dist/js/internal/behaviors/transferList.mjs +8 -0
  242. package/dist/js/internal/behaviors/transferList.mjs.map +7 -0
  243. package/dist/js/internal/components/appBar.mjs +3 -2
  244. package/dist/js/internal/components/autocomplete.mjs +4 -4
  245. package/dist/js/internal/components/backToTop.mjs +9 -0
  246. package/dist/js/internal/components/backToTop.mjs.map +7 -0
  247. package/dist/js/internal/components/barChart.mjs +5 -4
  248. package/dist/js/internal/components/buttonGroup.mjs +3 -2
  249. package/dist/js/internal/components/buttons.mjs +3 -3
  250. package/dist/js/internal/components/cards.mjs +3 -3
  251. package/dist/js/internal/components/carousel.mjs +3 -3
  252. package/dist/js/internal/components/cascader.mjs +10 -0
  253. package/dist/js/internal/components/cascader.mjs.map +7 -0
  254. package/dist/js/internal/components/characterCounter.mjs +3 -2
  255. package/dist/js/internal/components/chips.mjs +6 -5
  256. package/dist/js/internal/components/colorPicker.mjs +9 -0
  257. package/dist/js/internal/components/colorPicker.mjs.map +7 -0
  258. package/dist/js/internal/components/columnChart.mjs +4 -3
  259. package/dist/js/internal/components/commandPalette.mjs +3 -3
  260. package/dist/js/internal/components/confetti.mjs +3 -2
  261. package/dist/js/internal/components/currencyInput.mjs +9 -0
  262. package/dist/js/internal/components/currencyInput.mjs.map +7 -0
  263. package/dist/js/internal/components/datepicker.mjs +11 -8
  264. package/dist/js/internal/components/expandingCard.mjs +3 -3
  265. package/dist/js/internal/components/funnelChart.mjs +10 -0
  266. package/dist/js/internal/components/funnelChart.mjs.map +7 -0
  267. package/dist/js/internal/components/heatmapChart.mjs +4 -3
  268. package/dist/js/internal/components/hoverCard.mjs +9 -0
  269. package/dist/js/internal/components/hoverCard.mjs.map +7 -0
  270. package/dist/js/internal/components/index.mjs +133 -64
  271. package/dist/js/internal/components/inputMask.mjs +9 -0
  272. package/dist/js/internal/components/inputMask.mjs.map +7 -0
  273. package/dist/js/internal/components/keypad.mjs +9 -0
  274. package/dist/js/internal/components/keypad.mjs.map +7 -0
  275. package/dist/js/internal/components/lightbox.mjs +3 -3
  276. package/dist/js/internal/components/lineChart.mjs +29 -4
  277. package/dist/js/internal/components/loadingOverlay.mjs +9 -0
  278. package/dist/js/internal/components/loadingOverlay.mjs.map +7 -0
  279. package/dist/js/internal/components/mapView.mjs +3 -3
  280. package/dist/js/internal/components/menu.mjs +3 -3
  281. package/dist/js/internal/components/menubar.mjs +10 -0
  282. package/dist/js/internal/components/menubar.mjs.map +7 -0
  283. package/dist/js/internal/components/messageScroller.mjs +3 -3
  284. package/dist/js/internal/components/mixedChart.mjs +5 -4
  285. package/dist/js/internal/components/navigationRail.mjs +3 -2
  286. package/dist/js/internal/components/particles.mjs +3 -2
  287. package/dist/js/internal/components/pieChart.mjs +4 -3
  288. package/dist/js/internal/components/pullToRefresh.mjs +9 -0
  289. package/dist/js/internal/components/pullToRefresh.mjs.map +7 -0
  290. package/dist/js/internal/components/questionnaire.mjs +3 -3
  291. package/dist/js/internal/components/radarChart.mjs +4 -3
  292. package/dist/js/internal/components/radialChart.mjs +4 -3
  293. package/dist/js/internal/components/registry.mjs +59 -40
  294. package/dist/js/internal/components/richTextEditor.mjs +3 -3
  295. package/dist/js/internal/components/sankeyChart.mjs +10 -0
  296. package/dist/js/internal/components/sankeyChart.mjs.map +7 -0
  297. package/dist/js/internal/components/scatterChart.mjs +10 -0
  298. package/dist/js/internal/components/scatterChart.mjs.map +7 -0
  299. package/dist/js/internal/components/scrollspy.mjs +3 -2
  300. package/dist/js/internal/components/select.mjs +4 -4
  301. package/dist/js/internal/components/showMore.mjs +9 -0
  302. package/dist/js/internal/components/showMore.mjs.map +7 -0
  303. package/dist/js/internal/components/slider.mjs +3 -3
  304. package/dist/js/internal/components/snackbar.mjs +2 -2
  305. package/dist/js/internal/components/swipeActions.mjs +9 -0
  306. package/dist/js/internal/components/swipeActions.mjs.map +7 -0
  307. package/dist/js/internal/components/tabs.mjs +3 -4
  308. package/dist/js/internal/components/timepicker.mjs +5 -4
  309. package/dist/js/internal/components/tooltip.mjs +3 -3
  310. package/dist/js/internal/components/treeSelect.mjs +13 -0
  311. package/dist/js/internal/components/treeSelect.mjs.map +7 -0
  312. package/dist/js/internal/components/treemapChart.mjs +10 -0
  313. package/dist/js/internal/components/treemapChart.mjs.map +7 -0
  314. package/dist/js/internal/core/component.mjs +2 -1
  315. package/dist/js/internal/core/formControl.mjs +12 -0
  316. package/dist/js/internal/core/formControl.mjs.map +7 -0
  317. package/dist/js/internal/core/spring.mjs +11 -0
  318. package/dist/js/internal/core/spring.mjs.map +7 -0
  319. package/dist/js/internal/core/utils.mjs +11 -3
  320. package/dist/js/internal/plugins/dockedDisplayPlugin.mjs +2 -2
  321. package/dist/js/internal/plugins/modalDisplayPlugin.mjs +13 -0
  322. package/dist/js/internal/plugins/modalDisplayPlugin.mjs.map +7 -0
  323. package/dist/js/modular.mjs +175 -69
  324. package/dist/types/behaviors/bottomSheets.d.ts +19 -3
  325. package/dist/types/behaviors/copy.d.ts +18 -0
  326. package/dist/types/behaviors/dataTables.d.ts +129 -0
  327. package/dist/types/behaviors/dialogs.d.ts +27 -1
  328. package/dist/types/behaviors/forms.d.ts +68 -2
  329. package/dist/types/behaviors/imageCompare.d.ts +12 -0
  330. package/dist/types/behaviors/lists.d.ts +12 -0
  331. package/dist/types/behaviors/paneResize.d.ts +29 -0
  332. package/dist/types/behaviors/sheetDrag.d.ts +18 -0
  333. package/dist/types/behaviors/sideSheets.d.ts +1 -1
  334. package/dist/types/behaviors/sortable.d.ts +28 -0
  335. package/dist/types/behaviors/theme.d.ts +22 -0
  336. package/dist/types/behaviors/tour.d.ts +36 -0
  337. package/dist/types/behaviors/transferList.d.ts +51 -0
  338. package/dist/types/components/appBar.d.ts +5 -6
  339. package/dist/types/components/autocomplete.d.ts +92 -17
  340. package/dist/types/components/backToTop.d.ts +36 -0
  341. package/dist/types/components/barChart.d.ts +3 -6
  342. package/dist/types/components/buttonGroup.d.ts +2 -4
  343. package/dist/types/components/buttons.d.ts +5 -5
  344. package/dist/types/components/cards.d.ts +3 -16
  345. package/dist/types/components/carousel.d.ts +9 -15
  346. package/dist/types/components/cascader.d.ts +130 -0
  347. package/dist/types/components/characterCounter.d.ts +2 -15
  348. package/dist/types/components/chips.d.ts +65 -19
  349. package/dist/types/components/colorPicker.d.ts +42 -0
  350. package/dist/types/components/columnChart.d.ts +23 -10
  351. package/dist/types/components/commandPalette.d.ts +11 -16
  352. package/dist/types/components/confetti.d.ts +2 -4
  353. package/dist/types/components/currencyInput.d.ts +59 -0
  354. package/dist/types/components/datepicker.d.ts +59 -36
  355. package/dist/types/components/expandingCard.d.ts +6 -6
  356. package/dist/types/components/funnelChart.d.ts +38 -0
  357. package/dist/types/components/heatmapChart.d.ts +39 -8
  358. package/dist/types/components/hoverCard.d.ts +58 -0
  359. package/dist/types/components/index.d.ts +17 -1
  360. package/dist/types/components/inputMask.d.ts +30 -0
  361. package/dist/types/components/keypad.d.ts +66 -0
  362. package/dist/types/components/lightbox.d.ts +17 -25
  363. package/dist/types/components/lineChart.d.ts +176 -10
  364. package/dist/types/components/loadingOverlay.d.ts +42 -0
  365. package/dist/types/components/mapView.d.ts +26 -17
  366. package/dist/types/components/menu.d.ts +61 -22
  367. package/dist/types/components/menubar.d.ts +37 -0
  368. package/dist/types/components/messageScroller.d.ts +2 -14
  369. package/dist/types/components/mixedChart.d.ts +15 -6
  370. package/dist/types/components/navigationRail.d.ts +16 -5
  371. package/dist/types/components/particles.d.ts +8 -4
  372. package/dist/types/components/pieChart.d.ts +32 -7
  373. package/dist/types/components/pullToRefresh.d.ts +80 -0
  374. package/dist/types/components/questionnaire.d.ts +58 -16
  375. package/dist/types/components/radarChart.d.ts +10 -6
  376. package/dist/types/components/radialChart.d.ts +58 -8
  377. package/dist/types/components/registry.d.ts +77 -3
  378. package/dist/types/components/richTextEditor.d.ts +6 -14
  379. package/dist/types/components/sankeyChart.d.ts +72 -0
  380. package/dist/types/components/scatterChart.d.ts +102 -0
  381. package/dist/types/components/scrollspy.d.ts +3 -5
  382. package/dist/types/components/select.d.ts +43 -30
  383. package/dist/types/components/showMore.d.ts +51 -0
  384. package/dist/types/components/slider.d.ts +5 -15
  385. package/dist/types/components/snackbar.d.ts +62 -0
  386. package/dist/types/components/swipeActions.d.ts +81 -0
  387. package/dist/types/components/tabs.d.ts +93 -27
  388. package/dist/types/components/timepicker.d.ts +114 -20
  389. package/dist/types/components/tooltip.d.ts +56 -20
  390. package/dist/types/components/treeSelect.d.ts +106 -0
  391. package/dist/types/components/treemapChart.d.ts +56 -0
  392. package/dist/types/core/component.d.ts +43 -25
  393. package/dist/types/core/formControl.d.ts +21 -0
  394. package/dist/types/core/spring.d.ts +20 -0
  395. package/dist/types/core/utils.d.ts +85 -72
  396. package/dist/types/modular.d.ts +33 -1
  397. package/dist/types/plugins/dockedDisplayPlugin.d.ts +10 -7
  398. package/dist/types/plugins/modalDisplayPlugin.d.ts +32 -0
  399. package/package.json +10 -8
  400. package/src/sass/README.md +27 -18
  401. package/src/sass/abstracts/_breakpoints.scss +0 -1
  402. package/src/sass/abstracts/_elevation.scss +13 -7
  403. package/src/sass/abstracts/_index.scss +1 -0
  404. package/src/sass/abstracts/_mixins.scss +438 -92
  405. package/src/sass/abstracts/_spring.scss +63 -0
  406. package/src/sass/abstracts/_variables.scss +43 -15
  407. package/src/sass/base/_fonts.scss +61 -48
  408. package/src/sass/base/_global.scss +105 -34
  409. package/src/sass/base/_index.scss +3 -1
  410. package/src/sass/base/_normalize.scss +59 -114
  411. package/src/sass/base/_print.scss +21 -0
  412. package/src/sass/base/_prose.scss +68 -0
  413. package/src/sass/base/_typography.scss +9 -5
  414. package/src/sass/components/_accordion.scss +9 -16
  415. package/src/sass/components/_alert.scss +102 -0
  416. package/src/sass/components/_aura.scss +8 -3
  417. package/src/sass/components/_avatar.scss +3 -3
  418. package/src/sass/components/_back-to-top.scss +38 -0
  419. package/src/sass/components/_badges.scss +7 -13
  420. package/src/sass/components/_bar-chart.scss +41 -19
  421. package/src/sass/components/_bottom-sheet.scss +44 -16
  422. package/src/sass/components/_breadcrumb.scss +8 -1
  423. package/src/sass/components/_button-groups.scss +44 -89
  424. package/src/sass/components/_buttons.scss +156 -63
  425. package/src/sass/components/_calendar.scss +246 -0
  426. package/src/sass/components/_cards.scss +41 -68
  427. package/src/sass/components/_carousel.scss +43 -158
  428. package/src/sass/components/_cascader.scss +142 -0
  429. package/src/sass/components/_chips.scss +36 -52
  430. package/src/sass/components/_column-chart.scss +19 -12
  431. package/src/sass/components/_command-palette.scss +4 -7
  432. package/src/sass/components/_confetti.scss +0 -2
  433. package/src/sass/components/_countdown.scss +1 -1
  434. package/src/sass/components/_data-table.scss +162 -27
  435. package/src/sass/components/_datepicker.scss +57 -62
  436. package/src/sass/components/_description-list.scss +85 -0
  437. package/src/sass/components/_dialog.scss +42 -44
  438. package/src/sass/components/_docked-display.scss +1 -3
  439. package/src/sass/components/_drag-handle.scss +16 -20
  440. package/src/sass/components/_expanding-card.scss +20 -9
  441. package/src/sass/components/_fab-menu.scss +44 -32
  442. package/src/sass/components/_funnel-chart.scss +124 -0
  443. package/src/sass/components/_heatmap-chart.scss +113 -24
  444. package/src/sass/components/_icon-buttons.scss +7 -8
  445. package/src/sass/components/_icons-material-design.scss +2 -2
  446. package/src/sass/components/_image-compare.scss +108 -0
  447. package/src/sass/components/_index.scss +21 -0
  448. package/src/sass/components/_keypad.scss +182 -0
  449. package/src/sass/components/_kpi.scss +6 -11
  450. package/src/sass/components/_lightbox.scss +26 -20
  451. package/src/sass/components/_line-chart.scss +16 -2
  452. package/src/sass/components/_list.scss +59 -14
  453. package/src/sass/components/_loading-indicator.scss +1 -0
  454. package/src/sass/components/_loading-overlay.scss +105 -0
  455. package/src/sass/components/_map.scss +35 -13
  456. package/src/sass/components/_marquee.scss +3 -2
  457. package/src/sass/components/_mega-menu.scss +137 -0
  458. package/src/sass/components/_menu.scss +159 -182
  459. package/src/sass/components/_menubar.scss +59 -0
  460. package/src/sass/components/_message-scroller.scss +2 -2
  461. package/src/sass/components/_message.scss +3 -3
  462. package/src/sass/components/_mixed-chart.scss +37 -9
  463. package/src/sass/components/_modal-display.scss +21 -0
  464. package/src/sass/components/_navbar.scss +43 -65
  465. package/src/sass/components/_navigation-bar.scss +15 -77
  466. package/src/sass/components/_navigation-rail.scss +171 -121
  467. package/src/sass/components/_org-chart.scss +192 -0
  468. package/src/sass/components/_page-footer.scss +16 -13
  469. package/src/sass/components/_pagination.scss +6 -13
  470. package/src/sass/components/_panes.scss +33 -31
  471. package/src/sass/components/_particles.scss +0 -2
  472. package/src/sass/components/_pie-chart.scss +91 -11
  473. package/src/sass/components/_popover.scss +18 -5
  474. package/src/sass/components/_progress.scss +158 -35
  475. package/src/sass/components/_pull-to-refresh.scss +90 -0
  476. package/src/sass/components/_questionnaire.scss +74 -3
  477. package/src/sass/components/_radar-chart.scss +38 -10
  478. package/src/sass/components/_radial-chart.scss +113 -5
  479. package/src/sass/components/_rich-text-editor.scss +2 -2
  480. package/src/sass/components/_sankey-chart.scss +114 -0
  481. package/src/sass/components/_scatter-chart.scss +153 -0
  482. package/src/sass/components/_scrim.scss +0 -2
  483. package/src/sass/components/_scrollspy.scss +0 -2
  484. package/src/sass/components/_search.scss +26 -22
  485. package/src/sass/components/_show-more.scss +8 -0
  486. package/src/sass/components/_side-sheet.scss +23 -40
  487. package/src/sass/components/_skeleton.scss +2 -4
  488. package/src/sass/components/_snackbar.scss +27 -21
  489. package/src/sass/components/_split-button.scss +5 -5
  490. package/src/sass/components/_stat.scss +3 -8
  491. package/src/sass/components/_stepper.scss +1 -5
  492. package/src/sass/components/_swipe-actions.scss +71 -0
  493. package/src/sass/components/_tabs.scss +51 -32
  494. package/src/sass/components/_timeline.scss +12 -12
  495. package/src/sass/components/_timepicker.scss +111 -112
  496. package/src/sass/components/_toolbar.scss +35 -47
  497. package/src/sass/components/_tooltip.scss +21 -12
  498. package/src/sass/components/_tour.scss +89 -0
  499. package/src/sass/components/_transfer-list.scss +73 -0
  500. package/src/sass/components/_transitions.scss +4 -4
  501. package/src/sass/components/_tree.scss +3 -16
  502. package/src/sass/components/_treemap-chart.scss +122 -0
  503. package/src/sass/components/forms/_checkboxes.scss +140 -86
  504. package/src/sass/components/forms/_color-picker.scss +135 -0
  505. package/src/sass/components/forms/_color-swatches.scss +85 -0
  506. package/src/sass/components/forms/_drop-zone.scss +15 -9
  507. package/src/sass/components/forms/_fieldset.scss +10 -10
  508. package/src/sass/components/forms/_file-input.scss +6 -9
  509. package/src/sass/components/forms/_index.scss +3 -1
  510. package/src/sass/components/forms/_input-fields.scss +254 -90
  511. package/src/sass/components/forms/_radio-buttons.scss +40 -127
  512. package/src/sass/components/forms/_rating.scss +2 -32
  513. package/src/sass/components/forms/_select.scss +199 -23
  514. package/src/sass/components/forms/_slider.scss +140 -330
  515. package/src/sass/components/forms/_switches.scss +53 -164
  516. package/src/sass/custom.scss +10 -1
  517. package/src/sass/expressive.scss +3 -63
  518. package/src/sass/tokens/_contrast.scss +94 -0
  519. package/src/sass/tokens/_elevation.scss +16 -0
  520. package/src/sass/tokens/_index.scss +5 -0
  521. package/src/sass/tokens/_motion.scss +109 -0
  522. package/src/sass/tokens/_reference.scss +72 -141
  523. package/src/sass/tokens/_shape.scss +38 -0
  524. package/src/sass/tokens/_stacking.scss +27 -0
  525. package/src/sass/tokens/_state.scss +2 -4
  526. package/src/sass/tokens/_theme.scss +11 -2
  527. package/src/sass/tokens/_vibrant.scss +2 -5
  528. package/src/sass/utilities/_colors.scss +6 -1
  529. package/src/sass/utilities/_defer-render.scss +17 -0
  530. package/src/sass/utilities/_helpers.scss +183 -26
  531. package/src/sass/utilities/_index.scss +2 -1
  532. package/src/sass/utilities/_scroll-area.scss +0 -2
  533. package/src/sass/utilities/_spacing.scss +52 -34
  534. package/src/sass/utilities/_typescale.scss +8 -1
  535. package/src/sass/utilities/_visibility.scss +47 -76
  536. package/src/sass/utilities/_z-depth.scss +7 -4
  537. package/dist/js/chunks/chunk-3DHK5CZU.mjs.map +0 -7
  538. package/dist/js/chunks/chunk-3GVFZ4XO.mjs.map +0 -7
  539. package/dist/js/chunks/chunk-4HZMB7LI.mjs.map +0 -7
  540. package/dist/js/chunks/chunk-4KMNFIFZ.mjs +0 -270
  541. package/dist/js/chunks/chunk-4KMNFIFZ.mjs.map +0 -7
  542. package/dist/js/chunks/chunk-4TKTLGEM.mjs.map +0 -7
  543. package/dist/js/chunks/chunk-5BKHWHYY.mjs +0 -292
  544. package/dist/js/chunks/chunk-5BKHWHYY.mjs.map +0 -7
  545. package/dist/js/chunks/chunk-5HQSGDZ5.mjs.map +0 -7
  546. package/dist/js/chunks/chunk-6N2XAEFK.mjs +0 -125
  547. package/dist/js/chunks/chunk-6N2XAEFK.mjs.map +0 -7
  548. package/dist/js/chunks/chunk-A7ALMYUR.mjs.map +0 -7
  549. package/dist/js/chunks/chunk-BG6ZRB5H.mjs.map +0 -7
  550. package/dist/js/chunks/chunk-CUQPB25U.mjs +0 -55
  551. package/dist/js/chunks/chunk-CUQPB25U.mjs.map +0 -7
  552. package/dist/js/chunks/chunk-DAIU5SLG.mjs.map +0 -7
  553. package/dist/js/chunks/chunk-FS7XY3HT.mjs.map +0 -7
  554. package/dist/js/chunks/chunk-GIW4K4SE.mjs.map +0 -7
  555. package/dist/js/chunks/chunk-GUB3TNO2.mjs.map +0 -7
  556. package/dist/js/chunks/chunk-GVGT6MIU.mjs.map +0 -7
  557. package/dist/js/chunks/chunk-GZKEFWPM.mjs +0 -181
  558. package/dist/js/chunks/chunk-GZKEFWPM.mjs.map +0 -7
  559. package/dist/js/chunks/chunk-HKT2S7VM.mjs +0 -48
  560. package/dist/js/chunks/chunk-HKT2S7VM.mjs.map +0 -7
  561. package/dist/js/chunks/chunk-ILP3PDTL.mjs +0 -187
  562. package/dist/js/chunks/chunk-ILP3PDTL.mjs.map +0 -7
  563. package/dist/js/chunks/chunk-JIDMQGK6.mjs.map +0 -7
  564. package/dist/js/chunks/chunk-KBNN3QDH.mjs +0 -7
  565. package/dist/js/chunks/chunk-KBNN3QDH.mjs.map +0 -7
  566. package/dist/js/chunks/chunk-KHV6DZXX.mjs.map +0 -7
  567. package/dist/js/chunks/chunk-KY6U46SM.mjs +0 -345
  568. package/dist/js/chunks/chunk-KY6U46SM.mjs.map +0 -7
  569. package/dist/js/chunks/chunk-LRZMJZ3T.mjs +0 -291
  570. package/dist/js/chunks/chunk-LRZMJZ3T.mjs.map +0 -7
  571. package/dist/js/chunks/chunk-LTWPGFBR.mjs +0 -59
  572. package/dist/js/chunks/chunk-LTWPGFBR.mjs.map +0 -7
  573. package/dist/js/chunks/chunk-MNPROCZF.mjs +0 -328
  574. package/dist/js/chunks/chunk-MNPROCZF.mjs.map +0 -7
  575. package/dist/js/chunks/chunk-MZ6Z24BX.mjs.map +0 -7
  576. package/dist/js/chunks/chunk-NS2UMNZV.mjs.map +0 -7
  577. package/dist/js/chunks/chunk-O5XPWXIQ.mjs +0 -406
  578. package/dist/js/chunks/chunk-O5XPWXIQ.mjs.map +0 -7
  579. package/dist/js/chunks/chunk-PM655FXL.mjs.map +0 -7
  580. package/dist/js/chunks/chunk-QDAL4IYN.mjs.map +0 -7
  581. package/dist/js/chunks/chunk-QERLECVU.mjs +0 -572
  582. package/dist/js/chunks/chunk-QERLECVU.mjs.map +0 -7
  583. package/dist/js/chunks/chunk-QJABDLSD.mjs +0 -112
  584. package/dist/js/chunks/chunk-QJABDLSD.mjs.map +0 -7
  585. package/dist/js/chunks/chunk-RHRQKTTX.mjs +0 -139
  586. package/dist/js/chunks/chunk-RHRQKTTX.mjs.map +0 -7
  587. package/dist/js/chunks/chunk-S3XDFGSZ.mjs.map +0 -7
  588. package/dist/js/chunks/chunk-SPETGK25.mjs +0 -59
  589. package/dist/js/chunks/chunk-SPETGK25.mjs.map +0 -7
  590. package/dist/js/chunks/chunk-TBM3FT7G.mjs.map +0 -7
  591. package/dist/js/chunks/chunk-UEXCIMJZ.mjs.map +0 -7
  592. package/dist/js/chunks/chunk-UEZUJQ66.mjs.map +0 -7
  593. package/dist/js/chunks/chunk-VGZSAFTX.mjs +0 -173
  594. package/dist/js/chunks/chunk-VGZSAFTX.mjs.map +0 -7
  595. package/dist/js/chunks/chunk-X7OCHZVF.mjs +0 -76
  596. package/dist/js/chunks/chunk-X7OCHZVF.mjs.map +0 -7
  597. package/dist/js/chunks/chunk-YDCS5S3J.mjs.map +0 -7
  598. package/dist/js/chunks/chunk-YMSXJON6.mjs +0 -79
  599. package/dist/js/chunks/chunk-YMSXJON6.mjs.map +0 -7
  600. package/dist/js/chunks/chunk-Z2NRKI7R.mjs.map +0 -7
  601. package/dist/js/chunks/chunk-ZAS25YFD.mjs.map +0 -7
  602. package/dist/js/chunks/chunk-ZKZKNSLC.mjs +0 -1
  603. /package/dist/js/chunks/{chunk-ZKZKNSLC.mjs.map → chunk-GNRSYMVH.mjs.map} +0 -0
@@ -16,10 +16,10 @@
16
16
  .badge {
17
17
  --md-comp-badge-color: var(--md-sys-color-error);
18
18
  --md-comp-badge-label-text-color: var(--md-sys-color-on-error);
19
- --md-comp-badge-large-size: 16px;
19
+ --md-comp-badge-large-size: #{rem(16px)};
20
20
  --md-comp-badge-small-size: 6px;
21
- --md-comp-badge-large-shape: 8px;
22
- --md-comp-badge-icon-size: 24px;
21
+ --md-comp-badge-large-shape: var(--md-sys-shape-corner-small);
22
+ --md-comp-badge-icon-size: #{rem(24px)};
23
23
 
24
24
  box-sizing: border-box;
25
25
  display: inline-flex;
@@ -28,7 +28,7 @@
28
28
  justify-content: center;
29
29
  min-width: var(--md-comp-badge-large-size);
30
30
  height: var(--md-comp-badge-large-size);
31
- max-width: calc(4ch + 8px);
31
+ max-width: calc(4ch + #{rem(8px)});
32
32
  margin: 0;
33
33
  padding: 0 4px;
34
34
  overflow: hidden;
@@ -50,19 +50,13 @@
50
50
  font-size: 0;
51
51
  line-height: 0;
52
52
  color: transparent;
53
+ @include forced-colors-fill;
53
54
  }
54
55
  }
55
56
 
56
57
  // Child of an icon: sit on the upper trailing corner of the 24dp
57
- // glyph, even when the <i> is a larger indicator pill.
58
- :is(
59
- i,
60
- .material-symbols,
61
- .material-symbols-outlined,
62
- .material-symbols-rounded,
63
- .material-symbols-sharp,
64
- .material-icons
65
- ) {
58
+ // glyph, even when the icon is a larger indicator pill.
59
+ #{$icon} {
66
60
  position: relative;
67
61
  overflow: visible;
68
62
 
@@ -13,7 +13,8 @@
13
13
  // Modifiers: .stacked draws one bar per row with each series after the
14
14
  // ones before it, .split separates stacked segments and rounds each one,
15
15
  // .track draws a full-width track behind each row's bars, .values writes
16
- // each cell's text from its bar's base, .sparkline is a small chart with
16
+ // each cell's text from its bar's base, .axis labels the value axis under
17
+ // the plot at round values, .sparkline is a small chart with
17
18
  // no labels, grid, legend or tooltip.
18
19
  //
19
20
  // Tokens:
@@ -28,11 +29,12 @@
28
29
  // on-secondary, surface; .values text
29
30
 
30
31
  @include chart("bar-chart");
32
+ @include chart-axis("bar-chart", $beside: false);
31
33
 
32
34
  .bar-chart {
33
- --md-comp-bar-chart-row-height: 40px;
35
+ --md-comp-bar-chart-row-height: #{rem(40px)};
34
36
  --md-comp-bar-chart-bar-height: 60%;
35
- --md-comp-bar-chart-shape: 4px;
37
+ --md-comp-bar-chart-shape: var(--md-sys-shape-corner-extra-small);
36
38
  --md-comp-bar-chart-track-color: var(--md-sys-color-surface-container-highest);
37
39
  --md-comp-bar-chart-on-color-1: var(--md-sys-color-on-primary);
38
40
  --md-comp-bar-chart-on-color-2: var(--md-sys-color-on-tertiary);
@@ -61,7 +63,7 @@
61
63
  }
62
64
 
63
65
  &.sparkline {
64
- --md-comp-bar-chart-row-height: 24px;
66
+ --md-comp-bar-chart-row-height: #{rem(24px)};
65
67
 
66
68
  display: flex;
67
69
  }
@@ -87,6 +89,27 @@
87
89
  background: linear-gradient(to right, var(--md-comp-bar-chart-grid-color) 1px, transparent 0) 0 0 / 25% 100%;
88
90
  }
89
91
 
92
+ // .axis labels the value axis under the plot, with a grid line up from
93
+ // each label. The row labels keep the plot's height.
94
+ .bar-chart.axis > :is(.bar-chart-plot, .bar-chart-labels) {
95
+ margin-block-end: 24px;
96
+ }
97
+
98
+ .bar-chart-axis > li {
99
+ inset: 0 auto;
100
+ inset-inline-start: calc(100% - var(--at, 0%));
101
+ border-block-start: 0;
102
+ border-inline-start: 1px solid var(--md-comp-bar-chart-grid-color);
103
+ }
104
+
105
+ .bar-chart-axis > li > span {
106
+ inset: 100% auto auto 0;
107
+ width: auto;
108
+ padding: 4px 0 0;
109
+ overflow: visible;
110
+ translate: -50% 0;
111
+ }
112
+
90
113
  .bar-chart-labels {
91
114
  grid-auto-rows: minmax(0, 1fr);
92
115
  grid-auto-flow: row;
@@ -135,8 +158,6 @@
135
158
  > div > span {
136
159
  --bar-chart-tip: var(--md-comp-bar-chart-shape);
137
160
  --bar-chart-base: 0px;
138
- --bar-chart-zero-left: calc(100% - var(--zero, 100%));
139
- --bar-chart-zero-right: var(--zero, 100%);
140
161
  --bar-chart-ends: var(--bar-chart-base) var(--bar-chart-tip) var(--bar-chart-tip) var(--bar-chart-base);
141
162
 
142
163
  background-color: var(--bar-chart-color);
@@ -146,11 +167,14 @@
146
167
  &.negative {
147
168
  --bar-chart-ends: var(--bar-chart-tip) var(--bar-chart-base) var(--bar-chart-base) var(--bar-chart-tip);
148
169
  }
170
+
171
+ // A range floats, so both its ends are tips.
172
+ &.floating {
173
+ --bar-chart-base: var(--bar-chart-tip);
174
+ }
149
175
  }
150
176
 
151
177
  &.rtl > div > span {
152
- --bar-chart-zero-left: var(--zero, 100%);
153
- --bar-chart-zero-right: calc(100% - var(--zero, 100%));
154
178
  --bar-chart-ends: var(--bar-chart-tip) var(--bar-chart-base) var(--bar-chart-base) var(--bar-chart-tip);
155
179
 
156
180
  &.negative {
@@ -158,15 +182,7 @@
158
182
  }
159
183
  }
160
184
 
161
- @media (prefers-reduced-motion: no-preference) {
162
- > div > span {
163
- transition: clip-path 400ms cubic-bezier(0.2, 0, 0, 1);
164
-
165
- @starting-style {
166
- clip-path: inset(0 var(--bar-chart-zero-right) 0 var(--bar-chart-zero-left) round var(--bar-chart-ends));
167
- }
168
- }
169
- }
185
+ @include chart-column-motion;
170
186
  }
171
187
 
172
188
  // One bar per row, rounded only at the ends of the whole stack unless split.
@@ -228,7 +244,7 @@
228
244
 
229
245
  @media (prefers-reduced-motion: no-preference) {
230
246
  > div > span {
231
- transition: opacity 200ms linear 400ms;
247
+ transition: opacity var(--md-sys-motion-duration-short4) linear var(--md-sys-motion-duration-medium4);
232
248
 
233
249
  @starting-style {
234
250
  opacity: 0;
@@ -250,7 +266,7 @@
250
266
  inset-inline: 0;
251
267
  height: calc(100% / var(--rows, 1));
252
268
  border-radius: var(--md-comp-bar-chart-shape);
253
- background-color: color-mix(in srgb, var(--md-sys-color-on-surface) state-opacity("hover"), transparent);
269
+ background-color: state-layer(var(--md-sys-color-on-surface), "hover");
254
270
  translate: 0 -50%;
255
271
  }
256
272
 
@@ -282,4 +298,10 @@
282
298
  .bar-chart-cursor {
283
299
  outline: 1px solid CanvasText;
284
300
  }
301
+
302
+ // The track is a fill, which forced colors paint as Canvas.
303
+ .bar-chart.track .bar-chart-bars > div {
304
+ outline: 1px solid CanvasText;
305
+ outline-offset: -1px;
306
+ }
285
307
  }
@@ -2,10 +2,10 @@
2
2
 
3
3
  // Bottom sheets.
4
4
  //
5
- // Anatomy is the HTML. A dialog.bottom-sheet (or .bottom) is the surface.
5
+ // Anatomy is the HTML. A dialog.bottom-sheet is the surface.
6
6
  // showModal() is the modal variant (scrim). show() is the standard variant
7
7
  // (no scrim, page stays interactive). ::before is the optional drag handle;
8
- // an explicit .handle button replaces it. A heading, body, and trailing
8
+ // an explicit .drag-handle replaces it. A heading, body, and trailing
9
9
  // form[method=dialog] are the same slots as a basic dialog.
10
10
  //
11
11
  // Tokens follow https://m3.material.io/components/bottom-sheets
@@ -14,16 +14,20 @@
14
14
  // max height viewport minus 72dp
15
15
  // handle 32×4dp bar in a 48dp hit target, on-surface-variant
16
16
  // scrim modal only (UA ::backdrop + the dialog scrim token)
17
+ // motion default spatial spring; follows motion="expressive"
18
+ //
19
+ // .expandable opens at --md-comp-bottom-sheet-partial-height (50% of the
20
+ // viewport) and grows to the full height with .expanded, which a drag up or
21
+ // the handle button sets. The height moves on the same spring.
17
22
  //
18
23
  // Compact and medium are the intended windows. On large screens prefer a
19
24
  // side sheet or a basic dialog; the sheet still lays out (640 + 56).
20
25
 
21
26
  $_handle: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='4'%3E%3Crect width='32' height='4' rx='2' fill='black'/%3E%3C/svg%3E");
22
27
 
23
- dialog.bottom,
24
28
  dialog.bottom-sheet {
25
29
  --md-comp-bottom-sheet-container-color: var(--md-sys-color-surface-container-low);
26
- --md-comp-bottom-sheet-container-shape: 28px;
30
+ --md-comp-bottom-sheet-container-shape: var(--md-sys-shape-corner-extra-large);
27
31
  --md-comp-bottom-sheet-container-max-width: 640px;
28
32
  --md-comp-bottom-sheet-margin-inline: 56px;
29
33
  --md-comp-bottom-sheet-top-inset: 72px;
@@ -33,17 +37,25 @@ dialog.bottom-sheet {
33
37
  transparent
34
38
  );
35
39
  --md-comp-bottom-sheet-shift: 0px;
40
+ // Entry and drag snap-back run on the default spatial spring, which follows
41
+ // the motion="expressive" switch.
42
+ --md-comp-bottom-sheet-motion: var(--md-sys-motion-spring-default-spatial);
43
+ --md-comp-bottom-sheet-motion-duration: var(--md-sys-motion-spring-default-spatial-duration);
44
+ // A spatial spring overshoots, about 1.5% of the sheet's height in the
45
+ // expressive scheme. The sheet runs on below the viewport by this much, so
46
+ // the overshoot lifts surface into view rather than a gap under it.
47
+ --_bleed: 24px;
36
48
 
37
49
  box-sizing: border-box;
38
50
  position: fixed;
39
- inset: auto 0 0;
51
+ inset: auto 0 calc(-1 * var(--_bleed));
40
52
  width: 100%;
41
53
  min-width: 0;
42
54
  max-width: none;
43
55
  height: auto;
44
- max-height: calc(100dvh - var(--md-comp-bottom-sheet-top-inset));
56
+ max-height: calc(100dvh - var(--md-comp-bottom-sheet-top-inset) + var(--_bleed));
45
57
  margin: 0;
46
- padding: 0;
58
+ padding: 0 0 var(--_bleed);
47
59
  border: none;
48
60
  border-radius: var(--md-comp-bottom-sheet-container-shape)
49
61
  var(--md-comp-bottom-sheet-container-shape) 0 0;
@@ -52,13 +64,13 @@ dialog.bottom-sheet {
52
64
  outline: none;
53
65
  @include z-depth("1");
54
66
  translate: 0 var(--md-comp-bottom-sheet-shift);
55
- transition: translate 280ms ease;
67
+ transition: translate var(--md-comp-bottom-sheet-motion-duration) var(--md-comp-bottom-sheet-motion);
56
68
  @include glass(var(--md-comp-bottom-sheet-container-color));
57
69
 
58
70
  // Non-modal `show()` is not in the top layer — sit above page content
59
- // and below snackbars (z-index 10000).
71
+ // and below tooltips and snackbars (tokens/_stacking.scss).
60
72
  &:not(:modal) {
61
- z-index: 1100;
73
+ z-index: var(--expressive-z-sheet);
62
74
  }
63
75
 
64
76
  @include bp-up("medium") {
@@ -76,7 +88,7 @@ dialog.bottom-sheet {
76
88
  backdrop-filter: none;
77
89
  }
78
90
 
79
- // Drag handle. 32×4 bar, 48dp hit. Hidden when the author supplies .handle.
91
+ // Drag handle. 32×4 bar, 48dp hit. Hidden when the author supplies .drag-handle.
80
92
  &::before {
81
93
  content: "";
82
94
  box-sizing: border-box;
@@ -88,15 +100,16 @@ dialog.bottom-sheet {
88
100
  padding: 0;
89
101
  background-color: var(--md-comp-bottom-sheet-drag-handle-color);
90
102
  mask: $_handle center / 32px 4px no-repeat;
103
+ @include forced-colors-fill;
91
104
  pointer-events: none;
92
105
  }
93
106
 
94
- &:has(> :is(.handle, .drag-handle))::before {
107
+ &:has(> .drag-handle)::before {
95
108
  content: none;
96
109
  display: none;
97
110
  }
98
111
 
99
- > :is(.handle, .drag-handle) {
112
+ > .drag-handle {
100
113
  box-sizing: border-box;
101
114
  flex: 0 0 48px;
102
115
  align-self: center;
@@ -108,8 +121,13 @@ dialog.bottom-sheet {
108
121
  border-radius: 0;
109
122
  background-color: var(--md-comp-bottom-sheet-drag-handle-color);
110
123
  mask: $_handle center / 32px 4px no-repeat;
124
+ @include forced-colors-fill;
111
125
  cursor: grab;
112
126
  appearance: none;
127
+ // The drag is pointer events. With the default touch-action the browser
128
+ // takes a vertical touch drag as a pan and cancels the pointer, so the
129
+ // sheet never dismisses on a touch screen.
130
+ touch-action: none;
113
131
  }
114
132
 
115
133
  // The sheet paints its own bar with a mask on the element, so the vertical
@@ -125,21 +143,31 @@ dialog.bottom-sheet {
125
143
  }
126
144
  }
127
145
 
128
- dialog.bottom[open],
129
146
  dialog.bottom-sheet[open] {
130
147
  display: flex;
131
148
  flex-direction: column;
132
149
  }
133
150
 
151
+ dialog.bottom-sheet.expandable {
152
+ --md-comp-bottom-sheet-partial-height: 50dvh;
153
+
154
+ height: calc(var(--md-comp-bottom-sheet-partial-height) + var(--_bleed));
155
+ transition:
156
+ translate var(--md-comp-bottom-sheet-motion-duration) var(--md-comp-bottom-sheet-motion),
157
+ height var(--md-comp-bottom-sheet-motion-duration) var(--md-comp-bottom-sheet-motion);
158
+
159
+ &.expanded {
160
+ height: calc(100dvh - var(--md-comp-bottom-sheet-top-inset) + var(--_bleed));
161
+ }
162
+ }
163
+
134
164
  @starting-style {
135
- dialog.bottom[open],
136
165
  dialog.bottom-sheet[open] {
137
166
  translate: 0 100%;
138
167
  }
139
168
  }
140
169
 
141
170
  @media (prefers-reduced-motion: reduce) {
142
- dialog.bottom,
143
171
  dialog.bottom-sheet {
144
172
  transition: none;
145
173
  }
@@ -29,9 +29,16 @@ nav:has(> .breadcrumb),
29
29
  color: var(--md-comp-breadcrumb-label-color);
30
30
  @include typescale("body-small");
31
31
 
32
+ // A crumb that shrank in one row ran its text under the next separator;
33
+ // in nowrap the trail scrolls instead.
32
34
  &.nowrap {
33
35
  flex-wrap: nowrap;
34
36
  overflow-x: auto;
37
+
38
+ > ol > li {
39
+ flex-shrink: 0;
40
+ }
41
+
35
42
  scrollbar-width: none;
36
43
 
37
44
  &::-webkit-scrollbar {
@@ -90,7 +97,7 @@ nav:has(> .breadcrumb),
90
97
  color: var(--md-comp-breadcrumb-current-color);
91
98
  }
92
99
 
93
- i {
100
+ #{$icon} {
94
101
  font-size: 1.125em;
95
102
  margin-inline-end: 4px;
96
103
  }
@@ -39,17 +39,6 @@ $_standard-space: (
39
39
  "xlarge": 8px,
40
40
  );
41
41
 
42
- // md.comp.button.<size>.{container-shape-square, pressed-container-shape}.
43
- // Common buttons and icon buttons share these numbers, so the group can morph
44
- // either kind of child through one pair of properties.
45
- $_item-shapes: (
46
- "xsmall": (square: 12px, pressed: 8px),
47
- "small": (square: 12px, pressed: 8px),
48
- "medium": (square: 16px, pressed: 12px),
49
- "large": (square: 28px, pressed: 16px),
50
- "xlarge": (square: 28px, pressed: 16px),
51
- );
52
-
53
42
  // md.comp.button-group.connected.<size>.{inner-corner, pressed.inner-corner}.
54
43
  // The live M3 measurement is authoritative for XS (4px). Material Web 34.0.21
55
44
  // still emits 8px there; S and M agree at 8px.
@@ -65,26 +54,30 @@ $_connected-corners: (
65
54
  @include z-depth("0");
66
55
  color: color-mix(in oklab, var(--md-sys-color-on-surface) 38%, transparent);
67
56
  pointer-events: none;
68
- box-shadow: none;
69
57
  cursor: default;
70
58
  }
71
59
 
60
+ // Toggle colors. The label and icon take the state-layer color.
61
+ @mixin _toggle-colors($container, $state) {
62
+ --_toggle-container-color: #{$container};
63
+ --_toggle-state-color: #{$state};
64
+ color: $state;
65
+ background-color: var(--_toggle-container-color);
66
+ }
67
+
72
68
  .button-group {
73
69
  --md-comp-button-group-between-space: 12px;
74
- --md-comp-button-group-item-shape-round: 9999px;
75
- --md-comp-button-group-item-shape-square: 12px;
76
- --md-comp-button-group-pressed-item-shape: 8px;
70
+ --md-comp-button-group-item-shape-round: var(--md-sys-shape-corner-full);
71
+ --md-comp-button-group-item-shape-square: var(--md-sys-shape-corner-medium);
72
+ --md-comp-button-group-pressed-item-shape: var(--md-sys-shape-corner-small);
77
73
  // M3 states this as a percentage of the item's own width. CSS cannot
78
74
  // multiply a length by one, so it is the same figure as a ratio.
79
- --md-comp-button-group-pressed-item-width-multiplier: .15;
80
- // Material's fast-spatial spring (damping .9, stiffness 1400), sampled into
81
- // a CSS linear easing so width and corner motion use the published dynamics.
82
- --md-comp-button-group-motion: linear(
83
- 0, .056 5%, .1796 10%, .3252 15%, .4675 20%, .5936 25%,
84
- .6988 30%, .7828 35%, .8475 40%, .8959 45%, .931 50%,
85
- .9559 55%, .973 60%, .9845 65%, .9919 70%, .9965 75%,
86
- .9992 80%, 1.0006 85%, 1.0013 90%, 1.0015 95%, 1.0015
87
- );
75
+ --md-comp-button-group-pressed-item-width-multiplier: 0.15;
76
+ // Material's fast-spatial spring, so width and corner motion use the
77
+ // published dynamics and follow motion="expressive". The easing and its
78
+ // duration are a pair.
79
+ --md-comp-button-group-motion: var(--md-sys-motion-spring-fast-spatial);
80
+ --md-comp-button-group-motion-duration: var(--md-sys-motion-spring-fast-spatial-duration);
88
81
 
89
82
  display: flex;
90
83
  align-items: center;
@@ -100,8 +93,9 @@ $_connected-corners: (
100
93
  @include button-size($name);
101
94
 
102
95
  --md-comp-button-group-between-space: #{map.get($_standard-space, $name)};
103
- --md-comp-button-group-item-shape-square: #{map.get(map.get($_item-shapes, $name), square)};
104
- --md-comp-button-group-pressed-item-shape: #{map.get(map.get($_item-shapes, $name), pressed)};
96
+ // Common and icon buttons share these two shapes.
97
+ --md-comp-button-group-item-shape-square: #{map.get($icon-button-sizes, $name, square)};
98
+ --md-comp-button-group-pressed-item-shape: #{map.get($icon-button-sizes, $name, pressed)};
105
99
 
106
100
  > #{$_label-item}:not(#{$_sized}) {
107
101
  @include typescale(map.get($s, label));
@@ -112,32 +106,32 @@ $_connected-corners: (
112
106
  }
113
107
 
114
108
  > .icon-button.narrow:not(#{$_sized}) {
115
- --md-comp-icon-button-leading-space: #{map.get(map.get($icon-button-sizes, $name), narrow)};
116
- --md-comp-icon-button-trailing-space: #{map.get(map.get($icon-button-sizes, $name), narrow)};
109
+ --md-comp-icon-button-leading-space: #{map.get($icon-button-sizes, $name, narrow)};
110
+ --md-comp-icon-button-trailing-space: #{map.get($icon-button-sizes, $name, narrow)};
117
111
  }
118
112
 
119
113
  > .icon-button.wide:not(#{$_sized}) {
120
- --md-comp-icon-button-leading-space: #{map.get(map.get($icon-button-sizes, $name), wide)};
121
- --md-comp-icon-button-trailing-space: #{map.get(map.get($icon-button-sizes, $name), wide)};
114
+ --md-comp-icon-button-leading-space: #{map.get($icon-button-sizes, $name, wide)};
115
+ --md-comp-icon-button-trailing-space: #{map.get($icon-button-sizes, $name, wide)};
122
116
  }
123
117
  }
124
118
 
125
119
  // Group shape tokens inherit, so an explicitly sized item must rewrite
126
120
  // them on itself just as its button geometry tokens do.
127
121
  > #{$_item}.#{$name} {
128
- --md-comp-button-group-item-shape-square: #{map.get(map.get($_item-shapes, $name), square)};
129
- --md-comp-button-group-pressed-item-shape: #{map.get(map.get($_item-shapes, $name), pressed)};
130
- --md-comp-button-group-inner-corner-corner-size: #{map.get(map.get($_connected-corners, $name), inner)};
131
- --md-comp-button-group-pressed-inner-corner-corner-size: #{map.get(map.get($_connected-corners, $name), pressed)};
122
+ --md-comp-button-group-item-shape-square: #{map.get($icon-button-sizes, $name, square)};
123
+ --md-comp-button-group-pressed-item-shape: #{map.get($icon-button-sizes, $name, pressed)};
124
+ --md-comp-button-group-inner-corner-corner-size: #{map.get($_connected-corners, $name, inner)};
125
+ --md-comp-button-group-pressed-inner-corner-corner-size: #{map.get($_connected-corners, $name, pressed)};
132
126
  }
133
127
  }
134
128
 
135
129
  > #{$_item} {
136
130
  position: relative;
137
131
  transition:
138
- width 200ms var(--md-comp-button-group-motion),
139
- border-radius 200ms var(--md-comp-button-group-motion),
140
- background-color 200ms ease-out;
132
+ width var(--md-comp-button-group-motion-duration) var(--md-comp-button-group-motion),
133
+ border-radius var(--md-comp-button-group-motion-duration) var(--md-comp-button-group-motion),
134
+ background-color var(--md-sys-motion-duration-short4) ease-out;
141
135
  }
142
136
 
143
137
  // Every item owns a centered 48dp minimum hit target. For M/L/XL this is a
@@ -176,88 +170,52 @@ $_connected-corners: (
176
170
  // Shape and the filled icon below provide two non-color selection cues.
177
171
  > #{$_label-item}#{$_filled-item}[aria-pressed=false],
178
172
  > .icon-button.filled[aria-pressed=false] {
179
- --_toggle-container-color: var(--md-sys-color-surface-container);
180
- --_toggle-state-color: var(--md-sys-color-on-surface-variant);
181
- color: var(--md-sys-color-on-surface-variant);
182
- background-color: var(--_toggle-container-color);
173
+ @include _toggle-colors(var(--md-sys-color-surface-container), var(--md-sys-color-on-surface-variant));
183
174
  }
184
175
 
185
176
  > #{$_label-item}#{$_filled-item}[aria-pressed=true],
186
177
  > .icon-button.filled[aria-pressed=true] {
187
- --_toggle-container-color: var(--md-sys-color-primary);
188
- --_toggle-state-color: var(--md-sys-color-on-primary);
189
- color: var(--md-sys-color-on-primary);
190
- background-color: var(--_toggle-container-color);
178
+ @include _toggle-colors(var(--md-sys-color-primary), var(--md-sys-color-on-primary));
191
179
  }
192
180
 
193
181
  > #{$_label-item}.tonal[aria-pressed=false],
194
182
  > .icon-button.tonal[aria-pressed=false] {
195
- --_toggle-container-color: var(--md-sys-color-secondary-container);
196
- --_toggle-state-color: var(--md-sys-color-on-secondary-container);
197
- color: var(--md-sys-color-on-secondary-container);
198
- background-color: var(--_toggle-container-color);
183
+ @include _toggle-colors(var(--md-sys-color-secondary-container), var(--md-sys-color-on-secondary-container));
199
184
  }
200
185
 
201
186
  > #{$_label-item}.tonal[aria-pressed=true],
202
187
  > .icon-button.tonal[aria-pressed=true] {
203
- --_toggle-container-color: var(--md-sys-color-secondary);
204
- --_toggle-state-color: var(--md-sys-color-on-secondary);
205
- color: var(--md-sys-color-on-secondary);
206
- background-color: var(--_toggle-container-color);
188
+ @include _toggle-colors(var(--md-sys-color-secondary), var(--md-sys-color-on-secondary));
207
189
  }
208
190
 
209
191
  > #{$_label-item}.outlined[aria-pressed=false],
210
192
  > .icon-button.outlined[aria-pressed=false] {
211
- --_toggle-container-color: transparent;
212
- --_toggle-state-color: var(--md-sys-color-on-surface-variant);
213
- color: var(--md-sys-color-on-surface-variant);
214
- background-color: var(--_toggle-container-color);
193
+ @include _toggle-colors(transparent, var(--md-sys-color-on-surface-variant));
215
194
  }
216
195
 
217
196
  > #{$_label-item}.outlined[aria-pressed=true],
218
197
  > .icon-button.outlined[aria-pressed=true] {
219
- --_toggle-container-color: var(--md-sys-color-inverse-surface);
220
- --_toggle-state-color: var(--md-sys-color-inverse-on-surface);
221
- color: var(--md-sys-color-inverse-on-surface);
222
- background-color: var(--_toggle-container-color);
198
+ @include _toggle-colors(var(--md-sys-color-inverse-surface), var(--md-sys-color-inverse-on-surface));
223
199
  }
224
200
 
225
201
  > #{$_label-item}.elevated[aria-pressed=false] {
226
- --_toggle-container-color: var(--md-sys-color-surface-container-low);
227
- --_toggle-state-color: var(--md-sys-color-primary);
228
- color: var(--md-sys-color-primary);
229
- background-color: var(--_toggle-container-color);
202
+ @include _toggle-colors(var(--md-sys-color-surface-container-low), var(--md-sys-color-primary));
230
203
  }
231
204
 
232
205
  > #{$_label-item}.elevated[aria-pressed=true] {
233
- --_toggle-container-color: var(--md-sys-color-primary);
234
- --_toggle-state-color: var(--md-sys-color-on-primary);
235
- color: var(--md-sys-color-on-primary);
236
- background-color: var(--_toggle-container-color);
206
+ @include _toggle-colors(var(--md-sys-color-primary), var(--md-sys-color-on-primary));
237
207
  }
238
208
 
239
209
  > #{$_toggle-item}[aria-pressed]:hover {
240
- background-color: color-mix(
241
- in oklab,
242
- var(--_toggle-state-color) state-opacity("hover"),
243
- var(--_toggle-container-color)
244
- );
210
+ background-color: state-layer(var(--_toggle-state-color), "hover", var(--_toggle-container-color));
245
211
  }
246
212
 
247
213
  > #{$_toggle-item}[aria-pressed]:focus {
248
- background-color: color-mix(
249
- in oklab,
250
- var(--_toggle-state-color) state-opacity("focus"),
251
- var(--_toggle-container-color)
252
- );
214
+ background-color: state-layer(var(--_toggle-state-color), "focus", var(--_toggle-container-color));
253
215
  }
254
216
 
255
217
  > #{$_toggle-item}[aria-pressed]:is(:active, .button-group-pressed) {
256
- background-color: color-mix(
257
- in oklab,
258
- var(--_toggle-state-color) state-opacity("pressed"),
259
- var(--_toggle-container-color)
260
- );
218
+ background-color: state-layer(var(--_toggle-state-color), "pressed", var(--_toggle-container-color));
261
219
  }
262
220
 
263
221
  > #{$_label-item}#{$_filled-item}[aria-pressed]:is(:disabled, [disabled], .disabled),
@@ -294,7 +252,7 @@ $_connected-corners: (
294
252
  // only thing that keeps a connected group at 2dp.
295
253
  &.connected {
296
254
  --md-comp-button-group-between-space: 2px;
297
- --md-comp-button-group-container-shape: 9999px;
255
+ --md-comp-button-group-container-shape: var(--md-sys-shape-corner-full);
298
256
  --md-comp-button-group-inner-corner-corner-size: 8px;
299
257
  --md-comp-button-group-pressed-inner-corner-corner-size: 4px;
300
258
 
@@ -315,10 +273,6 @@ $_connected-corners: (
315
273
  --md-comp-button-group-container-shape: var(--md-comp-button-group-inner-corner-corner-size);
316
274
  }
317
275
 
318
- > #{$_item} {
319
- min-width: 48px;
320
- }
321
-
322
276
  // The corner goes through a variable so that pressing an item changes one
323
277
  // value rather than restating `border-radius`. A shorthand for the pressed
324
278
  // state would take the end items' round outer corners with it.
@@ -334,6 +288,7 @@ $_connected-corners: (
334
288
  --_round: calc(var(--md-comp-filled-button-container-height, 40px) / 2);
335
289
 
336
290
  flex: 1 1 0;
291
+ min-width: 48px;
337
292
  border-radius: var(--_corner);
338
293
 
339
294
  &.icon-button {