@expressivecss/expressive 0.16.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 (384) hide show
  1. package/CHANGELOG.md +306 -1
  2. package/README.md +1 -1
  3. package/dist/css/expressive.css +540 -646
  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/js/chunks/{chunk-PA7NU5AK.mjs → chunk-26VUH75M.mjs} +6 -3
  8. package/dist/js/chunks/chunk-26VUH75M.mjs.map +7 -0
  9. package/dist/js/chunks/{chunk-NBJAUGPP.mjs → chunk-2LFCOGC3.mjs} +12 -23
  10. package/dist/js/chunks/chunk-2LFCOGC3.mjs.map +7 -0
  11. package/dist/js/chunks/{chunk-OP43LLIC.mjs → chunk-36GELQGX.mjs} +4 -4
  12. package/dist/js/chunks/{chunk-OP43LLIC.mjs.map → chunk-36GELQGX.mjs.map} +2 -2
  13. package/dist/js/chunks/{chunk-EC26RU2D.mjs → chunk-3FKWIRHW.mjs} +6 -2
  14. package/dist/js/chunks/chunk-3FKWIRHW.mjs.map +7 -0
  15. package/dist/js/chunks/{chunk-Y6H2X7ZC.mjs → chunk-3KF65KGL.mjs} +3 -3
  16. package/dist/js/chunks/{chunk-4QUCNFSD.mjs → chunk-3KLZRQZI.mjs} +31 -10
  17. package/dist/js/chunks/chunk-3KLZRQZI.mjs.map +7 -0
  18. package/dist/js/chunks/{chunk-75E5EDJF.mjs → chunk-3XORNED5.mjs} +2 -2
  19. package/dist/js/chunks/{chunk-NNHVANQA.mjs → chunk-4WBGAQN3.mjs} +3 -3
  20. package/dist/js/chunks/{chunk-ZJNLAGY5.mjs → chunk-5F4URJHL.mjs} +2 -2
  21. package/dist/js/chunks/{chunk-ZVLOUDIJ.mjs → chunk-67UNY7RH.mjs} +50 -2
  22. package/dist/js/chunks/chunk-67UNY7RH.mjs.map +7 -0
  23. package/dist/js/chunks/{chunk-P6DRQ6KS.mjs → chunk-7CXNATJS.mjs} +6 -5
  24. package/dist/js/chunks/chunk-7CXNATJS.mjs.map +7 -0
  25. package/dist/js/chunks/{chunk-4TRZ2AER.mjs → chunk-7X44MKEQ.mjs} +15 -14
  26. package/dist/js/chunks/chunk-7X44MKEQ.mjs.map +7 -0
  27. package/dist/js/chunks/{chunk-GWZ76SR4.mjs → chunk-7ZAMOMGY.mjs} +12 -7
  28. package/dist/js/chunks/chunk-7ZAMOMGY.mjs.map +7 -0
  29. package/dist/js/chunks/{chunk-GVZQH2H5.mjs → chunk-AEG6LOAJ.mjs} +2 -2
  30. package/dist/js/chunks/{chunk-Y6TLRA3U.mjs → chunk-AQNFCJJ5.mjs} +27 -21
  31. package/dist/js/chunks/chunk-AQNFCJJ5.mjs.map +7 -0
  32. package/dist/js/chunks/{chunk-OUCHKSAW.mjs → chunk-B55LWKBM.mjs} +16 -4
  33. package/dist/js/chunks/chunk-B55LWKBM.mjs.map +7 -0
  34. package/dist/js/chunks/{chunk-AI73GJKG.mjs → chunk-BB5VXYXT.mjs} +2 -2
  35. package/dist/js/chunks/{chunk-2RLBDFH4.mjs → chunk-BDATLH3H.mjs} +4 -4
  36. package/dist/js/chunks/{chunk-2CS6TITK.mjs → chunk-CWMQOT4O.mjs} +23 -10
  37. package/dist/js/chunks/chunk-CWMQOT4O.mjs.map +7 -0
  38. package/dist/js/chunks/{chunk-ZKWUWBUB.mjs → chunk-CY2CTOVM.mjs} +2 -2
  39. package/dist/js/chunks/{chunk-CSYWKEK3.mjs → chunk-DWA5UYLJ.mjs} +58 -27
  40. package/dist/js/chunks/chunk-DWA5UYLJ.mjs.map +7 -0
  41. package/dist/js/chunks/{chunk-CMGXGYUC.mjs → chunk-EB2V4OKL.mjs} +14 -9
  42. package/dist/js/chunks/chunk-EB2V4OKL.mjs.map +7 -0
  43. package/dist/js/chunks/{chunk-Z4GICXR2.mjs → chunk-EWO662ZC.mjs} +5 -7
  44. package/dist/js/chunks/chunk-EWO662ZC.mjs.map +7 -0
  45. package/dist/js/chunks/{chunk-VGY4M57S.mjs → chunk-F7LAKFMX.mjs} +67 -34
  46. package/dist/js/chunks/chunk-F7LAKFMX.mjs.map +7 -0
  47. package/dist/js/chunks/{chunk-67ZPPKXS.mjs → chunk-FNIIH2LU.mjs} +3 -3
  48. package/dist/js/chunks/chunk-GE3YMFS6.mjs +15 -0
  49. package/dist/js/chunks/chunk-GE3YMFS6.mjs.map +7 -0
  50. package/dist/js/chunks/{chunk-DZYVU75J.mjs → chunk-GFWYMWYN.mjs} +18 -14
  51. package/dist/js/chunks/chunk-GFWYMWYN.mjs.map +7 -0
  52. package/dist/js/chunks/{chunk-3L3QIYLC.mjs → chunk-H5ISU45X.mjs} +8 -6
  53. package/dist/js/chunks/chunk-H5ISU45X.mjs.map +7 -0
  54. package/dist/js/chunks/{chunk-QXKWVHBD.mjs → chunk-H6YIKFAQ.mjs} +67 -46
  55. package/dist/js/chunks/chunk-H6YIKFAQ.mjs.map +7 -0
  56. package/dist/js/chunks/{chunk-KZPSAXIU.mjs → chunk-HEH7E3KO.mjs} +22 -12
  57. package/dist/js/chunks/chunk-HEH7E3KO.mjs.map +7 -0
  58. package/dist/js/chunks/{chunk-T3BNSRP3.mjs → chunk-HQRLBTNM.mjs} +3 -3
  59. package/dist/js/chunks/{chunk-NAC72P7R.mjs → chunk-I2F7MLUU.mjs} +2 -2
  60. package/dist/js/chunks/{chunk-ZM3XBHWV.mjs → chunk-IQOTGGHX.mjs} +86 -35
  61. package/dist/js/chunks/chunk-IQOTGGHX.mjs.map +7 -0
  62. package/dist/js/chunks/{chunk-QACZ6TUP.mjs → chunk-JH3YWKA6.mjs} +5 -4
  63. package/dist/js/chunks/chunk-JH3YWKA6.mjs.map +7 -0
  64. package/dist/js/chunks/chunk-JOLJAYIJ.mjs +7 -0
  65. package/dist/js/chunks/{chunk-4IKVPCSU.mjs.map → chunk-JOLJAYIJ.mjs.map} +1 -1
  66. package/dist/js/chunks/{chunk-BPF3I2MN.mjs → chunk-KOTGMCMI.mjs} +9 -2
  67. package/dist/js/chunks/chunk-KOTGMCMI.mjs.map +7 -0
  68. package/dist/js/chunks/{chunk-ANKFWNWT.mjs → chunk-LC4O5LFS.mjs} +3 -3
  69. package/dist/js/chunks/{chunk-4PIXLDNJ.mjs → chunk-LEF33SCP.mjs} +2 -2
  70. package/dist/js/chunks/{chunk-ILDRRG7T.mjs → chunk-LFORZRPH.mjs} +3 -3
  71. package/dist/js/chunks/{chunk-Z4OARDZ7.mjs → chunk-LWLNV5EC.mjs} +26 -17
  72. package/dist/js/chunks/chunk-LWLNV5EC.mjs.map +7 -0
  73. package/dist/js/chunks/{chunk-WU7XJ4RR.mjs → chunk-LXRHUQAX.mjs} +66 -25
  74. package/dist/js/chunks/chunk-LXRHUQAX.mjs.map +7 -0
  75. package/dist/js/chunks/{chunk-VMY55K2X.mjs → chunk-MA2SZZFB.mjs} +11 -7
  76. package/dist/js/chunks/chunk-MA2SZZFB.mjs.map +7 -0
  77. package/dist/js/chunks/{chunk-VJVQIXHC.mjs → chunk-MDBZAMIV.mjs} +8 -10
  78. package/dist/js/chunks/chunk-MDBZAMIV.mjs.map +7 -0
  79. package/dist/js/chunks/{chunk-4EWGD4V2.mjs → chunk-NODZ5VAD.mjs} +2 -2
  80. package/dist/js/chunks/{chunk-UGJHCHXG.mjs → chunk-O2WJB6TH.mjs} +79 -55
  81. package/dist/js/chunks/chunk-O2WJB6TH.mjs.map +7 -0
  82. package/dist/js/chunks/{chunk-7YZ5CN3V.mjs → chunk-PCABY5BN.mjs} +5 -3
  83. package/dist/js/chunks/chunk-PCABY5BN.mjs.map +7 -0
  84. package/dist/js/chunks/{chunk-X7SDA2J5.mjs → chunk-PWKYVMND.mjs} +9 -5
  85. package/dist/js/chunks/{chunk-X7SDA2J5.mjs.map → chunk-PWKYVMND.mjs.map} +2 -2
  86. package/dist/js/chunks/{chunk-SPPHF7YZ.mjs → chunk-QHZZT7YO.mjs} +35 -14
  87. package/dist/js/chunks/chunk-QHZZT7YO.mjs.map +7 -0
  88. package/dist/js/chunks/{chunk-LDXCC2L3.mjs → chunk-QND56EW2.mjs} +5 -4
  89. package/dist/js/chunks/chunk-QND56EW2.mjs.map +7 -0
  90. package/dist/js/chunks/{chunk-NVQ5EHCU.mjs → chunk-QNODAANY.mjs} +4 -4
  91. package/dist/js/chunks/{chunk-7NLUI3RR.mjs → chunk-QRO5FV3I.mjs} +23 -13
  92. package/dist/js/chunks/chunk-QRO5FV3I.mjs.map +7 -0
  93. package/dist/js/chunks/{chunk-FCNF4GRJ.mjs → chunk-R7A7JRC5.mjs} +6 -11
  94. package/dist/js/chunks/chunk-R7A7JRC5.mjs.map +7 -0
  95. package/dist/js/chunks/{chunk-S23RJ3XY.mjs → chunk-RKG2CBFE.mjs} +4 -16
  96. package/dist/js/chunks/chunk-RKG2CBFE.mjs.map +7 -0
  97. package/dist/js/chunks/{chunk-6FSEUFVW.mjs → chunk-RSNS5OYS.mjs} +6 -6
  98. package/dist/js/chunks/chunk-RSNS5OYS.mjs.map +7 -0
  99. package/dist/js/chunks/{chunk-ROH2HDB4.mjs → chunk-RUDYMEJ3.mjs} +2 -2
  100. package/dist/js/chunks/{chunk-BIGU5RCJ.mjs → chunk-STJR62SU.mjs} +13 -5
  101. package/dist/js/chunks/chunk-STJR62SU.mjs.map +7 -0
  102. package/dist/js/chunks/{chunk-752ADW4M.mjs → chunk-SUSD4UTN.mjs} +27 -32
  103. package/dist/js/chunks/chunk-SUSD4UTN.mjs.map +7 -0
  104. package/dist/js/chunks/{chunk-B7DQFHA5.mjs → chunk-SYBOA5HC.mjs} +7 -12
  105. package/dist/js/chunks/chunk-SYBOA5HC.mjs.map +7 -0
  106. package/dist/js/chunks/{chunk-TFABTUAZ.mjs → chunk-T4MOBP3J.mjs} +2 -2
  107. package/dist/js/chunks/{chunk-GCWWEZKO.mjs → chunk-TM7HPGTV.mjs} +3 -3
  108. package/dist/js/chunks/{chunk-5KIHWJI2.mjs → chunk-TMQDZSDC.mjs} +34 -12
  109. package/dist/js/chunks/chunk-TMQDZSDC.mjs.map +7 -0
  110. package/dist/js/chunks/{chunk-ZO6ZLHFF.mjs → chunk-TVSX5YA2.mjs} +3 -3
  111. package/dist/js/chunks/{chunk-INLZWHLY.mjs → chunk-UHO5CV6K.mjs} +2 -2
  112. package/dist/js/chunks/{chunk-INLZWHLY.mjs.map → chunk-UHO5CV6K.mjs.map} +2 -2
  113. package/dist/js/chunks/{chunk-7YQBHTK3.mjs → chunk-UKCNELUN.mjs} +6 -8
  114. package/dist/js/chunks/chunk-UKCNELUN.mjs.map +7 -0
  115. package/dist/js/chunks/{chunk-VH4BMAZS.mjs → chunk-UKQK5GWR.mjs} +13 -13
  116. package/dist/js/chunks/chunk-UKQK5GWR.mjs.map +7 -0
  117. package/dist/js/chunks/{chunk-OYNUDOHR.mjs → chunk-UTSLYQ65.mjs} +7 -6
  118. package/dist/js/chunks/{chunk-OYNUDOHR.mjs.map → chunk-UTSLYQ65.mjs.map} +2 -2
  119. package/dist/js/chunks/{chunk-7W7TV6NY.mjs → chunk-VS5OJBOD.mjs} +2 -2
  120. package/dist/js/chunks/{chunk-7W7TV6NY.mjs.map → chunk-VS5OJBOD.mjs.map} +2 -2
  121. package/dist/js/chunks/{chunk-KYIEG4U3.mjs → chunk-VZMROW5A.mjs} +43 -14
  122. package/dist/js/chunks/chunk-VZMROW5A.mjs.map +7 -0
  123. package/dist/js/chunks/{chunk-VFV75DHF.mjs → chunk-XB6Y7P5W.mjs} +11 -12
  124. package/dist/js/chunks/chunk-XB6Y7P5W.mjs.map +7 -0
  125. package/dist/js/chunks/{chunk-CZSQHXEV.mjs → chunk-XDAMOMVD.mjs} +20 -21
  126. package/dist/js/chunks/chunk-XDAMOMVD.mjs.map +7 -0
  127. package/dist/js/chunks/{chunk-EVCVFEV3.mjs → chunk-XJPMW5SP.mjs} +21 -35
  128. package/dist/js/chunks/chunk-XJPMW5SP.mjs.map +7 -0
  129. package/dist/js/chunks/{chunk-VR3L2WN5.mjs → chunk-YKANQILZ.mjs} +7 -6
  130. package/dist/js/chunks/chunk-YKANQILZ.mjs.map +7 -0
  131. package/dist/js/chunks/{chunk-JUKBBN6P.mjs → chunk-YLZOJLDI.mjs} +2 -2
  132. package/dist/js/chunks/{chunk-U4B3VHFS.mjs → chunk-ZK7YY322.mjs} +28 -21
  133. package/dist/js/chunks/chunk-ZK7YY322.mjs.map +7 -0
  134. package/dist/js/expressive.cjs +2739 -2387
  135. package/dist/js/expressive.cjs.map +4 -4
  136. package/dist/js/expressive.js +2739 -2387
  137. package/dist/js/expressive.js.map +4 -4
  138. package/dist/js/expressive.min.js +7 -7
  139. package/dist/js/expressive.min.js.map +4 -4
  140. package/dist/js/expressive.mjs +76 -75
  141. package/dist/js/expressive.mjs.map +1 -1
  142. package/dist/js/internal/behaviors/bottomSheets.mjs +3 -3
  143. package/dist/js/internal/behaviors/copy.mjs +3 -3
  144. package/dist/js/internal/behaviors/dataTables.mjs +2 -4
  145. package/dist/js/internal/behaviors/dialogs.mjs +2 -2
  146. package/dist/js/internal/behaviors/forms.mjs +2 -2
  147. package/dist/js/internal/behaviors/imageCompare.mjs +2 -2
  148. package/dist/js/internal/behaviors/lists.mjs +2 -2
  149. package/dist/js/internal/behaviors/paneResize.mjs +2 -2
  150. package/dist/js/internal/behaviors/sheetDrag.mjs +2 -2
  151. package/dist/js/internal/behaviors/sideSheets.mjs +3 -3
  152. package/dist/js/internal/behaviors/sortable.mjs +2 -2
  153. package/dist/js/internal/behaviors/theme.mjs +2 -2
  154. package/dist/js/internal/behaviors/tour.mjs +2 -2
  155. package/dist/js/internal/behaviors/transferList.mjs +2 -2
  156. package/dist/js/internal/components/appBar.mjs +3 -3
  157. package/dist/js/internal/components/autocomplete.mjs +5 -4
  158. package/dist/js/internal/components/backToTop.mjs +3 -3
  159. package/dist/js/internal/components/barChart.mjs +5 -5
  160. package/dist/js/internal/components/buttonGroup.mjs +3 -3
  161. package/dist/js/internal/components/buttons.mjs +3 -3
  162. package/dist/js/internal/components/cards.mjs +3 -3
  163. package/dist/js/internal/components/carousel.mjs +3 -3
  164. package/dist/js/internal/components/cascader.mjs +4 -4
  165. package/dist/js/internal/components/characterCounter.mjs +3 -3
  166. package/dist/js/internal/components/chips.mjs +7 -6
  167. package/dist/js/internal/components/colorPicker.mjs +3 -3
  168. package/dist/js/internal/components/columnChart.mjs +4 -4
  169. package/dist/js/internal/components/commandPalette.mjs +3 -3
  170. package/dist/js/internal/components/confetti.mjs +3 -3
  171. package/dist/js/internal/components/currencyInput.mjs +3 -3
  172. package/dist/js/internal/components/datepicker.mjs +8 -7
  173. package/dist/js/internal/components/expandingCard.mjs +3 -3
  174. package/dist/js/internal/components/funnelChart.mjs +4 -4
  175. package/dist/js/internal/components/heatmapChart.mjs +4 -4
  176. package/dist/js/internal/components/hoverCard.mjs +3 -3
  177. package/dist/js/internal/components/index.mjs +60 -59
  178. package/dist/js/internal/components/inputMask.mjs +3 -3
  179. package/dist/js/internal/components/keypad.mjs +3 -3
  180. package/dist/js/internal/components/lightbox.mjs +3 -3
  181. package/dist/js/internal/components/lineChart.mjs +23 -7
  182. package/dist/js/internal/components/loadingOverlay.mjs +3 -3
  183. package/dist/js/internal/components/mapView.mjs +3 -3
  184. package/dist/js/internal/components/menu.mjs +3 -3
  185. package/dist/js/internal/components/menubar.mjs +4 -4
  186. package/dist/js/internal/components/messageScroller.mjs +3 -3
  187. package/dist/js/internal/components/mixedChart.mjs +5 -5
  188. package/dist/js/internal/components/navigationRail.mjs +3 -3
  189. package/dist/js/internal/components/particles.mjs +3 -3
  190. package/dist/js/internal/components/pieChart.mjs +4 -4
  191. package/dist/js/internal/components/pullToRefresh.mjs +3 -3
  192. package/dist/js/internal/components/questionnaire.mjs +3 -3
  193. package/dist/js/internal/components/radarChart.mjs +4 -4
  194. package/dist/js/internal/components/radialChart.mjs +4 -4
  195. package/dist/js/internal/components/registry.mjs +59 -58
  196. package/dist/js/internal/components/richTextEditor.mjs +3 -3
  197. package/dist/js/internal/components/sankeyChart.mjs +4 -4
  198. package/dist/js/internal/components/scatterChart.mjs +4 -4
  199. package/dist/js/internal/components/scrollspy.mjs +3 -3
  200. package/dist/js/internal/components/select.mjs +5 -4
  201. package/dist/js/internal/components/showMore.mjs +3 -3
  202. package/dist/js/internal/components/slider.mjs +3 -3
  203. package/dist/js/internal/components/snackbar.mjs +2 -2
  204. package/dist/js/internal/components/swipeActions.mjs +3 -3
  205. package/dist/js/internal/components/tabs.mjs +3 -3
  206. package/dist/js/internal/components/timepicker.mjs +5 -5
  207. package/dist/js/internal/components/tooltip.mjs +3 -3
  208. package/dist/js/internal/components/treeSelect.mjs +6 -5
  209. package/dist/js/internal/components/treemapChart.mjs +4 -4
  210. package/dist/js/internal/core/component.mjs +6 -4
  211. package/dist/js/internal/core/formControl.mjs +2 -2
  212. package/dist/js/internal/core/imageURL.mjs +7 -0
  213. package/dist/js/internal/core/imageURL.mjs.map +7 -0
  214. package/dist/js/internal/core/utils.mjs +11 -1
  215. package/dist/js/internal/plugins/dockedDisplayPlugin.mjs +2 -2
  216. package/dist/js/internal/plugins/modalDisplayPlugin.mjs +3 -3
  217. package/dist/js/modular.mjs +76 -75
  218. package/dist/types/behaviors/bottomSheets.d.ts +5 -3
  219. package/dist/types/behaviors/dataTables.d.ts +2 -6
  220. package/dist/types/behaviors/forms.d.ts +7 -7
  221. package/dist/types/behaviors/imageCompare.d.ts +2 -1
  222. package/dist/types/behaviors/transferList.d.ts +2 -0
  223. package/dist/types/components/autocomplete.d.ts +14 -3
  224. package/dist/types/components/carousel.d.ts +7 -0
  225. package/dist/types/components/chips.d.ts +15 -0
  226. package/dist/types/components/colorPicker.d.ts +14 -0
  227. package/dist/types/components/currencyInput.d.ts +5 -4
  228. package/dist/types/components/datepicker.d.ts +54 -27
  229. package/dist/types/components/funnelChart.d.ts +1 -4
  230. package/dist/types/components/heatmapChart.d.ts +3 -0
  231. package/dist/types/components/hoverCard.d.ts +1 -0
  232. package/dist/types/components/inputMask.d.ts +0 -2
  233. package/dist/types/components/lineChart.d.ts +43 -5
  234. package/dist/types/components/mapView.d.ts +113 -11
  235. package/dist/types/components/menu.d.ts +14 -0
  236. package/dist/types/components/particles.d.ts +14 -1
  237. package/dist/types/components/pieChart.d.ts +1 -2
  238. package/dist/types/components/richTextEditor.d.ts +40 -9
  239. package/dist/types/components/select.d.ts +1 -3
  240. package/dist/types/components/showMore.d.ts +2 -0
  241. package/dist/types/components/slider.d.ts +0 -1
  242. package/dist/types/components/snackbar.d.ts +7 -1
  243. package/dist/types/components/tabs.d.ts +3 -3
  244. package/dist/types/components/timepicker.d.ts +15 -6
  245. package/dist/types/components/tooltip.d.ts +1 -1
  246. package/dist/types/components/treemapChart.d.ts +2 -2
  247. package/dist/types/core/component.d.ts +9 -3
  248. package/dist/types/core/imageURL.d.ts +2 -0
  249. package/dist/types/core/utils.d.ts +39 -1
  250. package/dist/types/modular.d.ts +1 -1
  251. package/dist/types/plugins/modalDisplayPlugin.d.ts +8 -1
  252. package/package.json +8 -6
  253. package/src/sass/abstracts/_mixins.scss +459 -59
  254. package/src/sass/abstracts/_variables.scss +25 -0
  255. package/src/sass/components/_accordion.scss +1 -3
  256. package/src/sass/components/_aura.scss +1 -0
  257. package/src/sass/components/_back-to-top.scss +3 -3
  258. package/src/sass/components/_bar-chart.scss +2 -83
  259. package/src/sass/components/_bottom-sheet.scss +7 -0
  260. package/src/sass/components/_breadcrumb.scss +1 -7
  261. package/src/sass/components/_button-groups.scss +15 -38
  262. package/src/sass/components/_buttons.scss +24 -74
  263. package/src/sass/components/_calendar.scss +1 -3
  264. package/src/sass/components/_carousel.scss +10 -10
  265. package/src/sass/components/_cascader.scss +3 -14
  266. package/src/sass/components/_column-chart.scss +1 -19
  267. package/src/sass/components/_confetti.scss +3 -4
  268. package/src/sass/components/_data-table.scss +10 -0
  269. package/src/sass/components/_dialog.scss +10 -18
  270. package/src/sass/components/_expanding-card.scss +1 -5
  271. package/src/sass/components/_fab-menu.scss +4 -12
  272. package/src/sass/components/_funnel-chart.scss +1 -62
  273. package/src/sass/components/_heatmap-chart.scss +2 -6
  274. package/src/sass/components/_icon-buttons.scss +1 -4
  275. package/src/sass/components/_line-chart.scss +2 -70
  276. package/src/sass/components/_map.scss +4 -0
  277. package/src/sass/components/_marquee.scss +3 -3
  278. package/src/sass/components/_mega-menu.scss +8 -17
  279. package/src/sass/components/_menu.scss +10 -11
  280. package/src/sass/components/_menubar.scss +1 -13
  281. package/src/sass/components/_mixed-chart.scss +1 -37
  282. package/src/sass/components/_navbar.scss +11 -16
  283. package/src/sass/components/_navigation-bar.scss +2 -5
  284. package/src/sass/components/_navigation-rail.scss +25 -15
  285. package/src/sass/components/_page-footer.scss +1 -3
  286. package/src/sass/components/_pagination.scss +3 -14
  287. package/src/sass/components/_panes.scss +3 -16
  288. package/src/sass/components/_particles.scss +3 -4
  289. package/src/sass/components/_pie-chart.scss +8 -70
  290. package/src/sass/components/_progress.scss +31 -13
  291. package/src/sass/components/_radar-chart.scss +2 -32
  292. package/src/sass/components/_radial-chart.scss +2 -48
  293. package/src/sass/components/_sankey-chart.scss +5 -28
  294. package/src/sass/components/_scatter-chart.scss +2 -11
  295. package/src/sass/components/_search.scss +1 -4
  296. package/src/sass/components/_side-sheet.scss +9 -14
  297. package/src/sass/components/_skeleton.scss +24 -15
  298. package/src/sass/components/_snackbar.scss +11 -13
  299. package/src/sass/components/_table_of_contents.scss +1 -3
  300. package/src/sass/components/_tabs.scss +4 -20
  301. package/src/sass/components/_timepicker.scss +2 -1
  302. package/src/sass/components/_toolbar.scss +1 -4
  303. package/src/sass/components/_tooltip.scss +9 -5
  304. package/src/sass/components/_tree.scss +5 -17
  305. package/src/sass/components/_treemap-chart.scss +2 -26
  306. package/src/sass/components/forms/_checkboxes.scss +2 -21
  307. package/src/sass/components/forms/_drop-zone.scss +1 -4
  308. package/src/sass/components/forms/_fieldset.scss +1 -4
  309. package/src/sass/components/forms/_file-input.scss +6 -0
  310. package/src/sass/components/forms/_input-fields.scss +21 -4
  311. package/src/sass/components/forms/_radio-buttons.scss +2 -24
  312. package/src/sass/components/forms/_select.scss +6 -7
  313. package/src/sass/components/forms/_slider.scss +1 -4
  314. package/src/sass/components/forms/_switches.scss +14 -21
  315. package/src/sass/utilities/_helpers.scss +1 -1
  316. package/src/sass/utilities/_visibility.scss +1 -3
  317. package/dist/js/chunks/chunk-2CS6TITK.mjs.map +0 -7
  318. package/dist/js/chunks/chunk-3L3QIYLC.mjs.map +0 -7
  319. package/dist/js/chunks/chunk-4IKVPCSU.mjs +0 -7
  320. package/dist/js/chunks/chunk-4QUCNFSD.mjs.map +0 -7
  321. package/dist/js/chunks/chunk-4TRZ2AER.mjs.map +0 -7
  322. package/dist/js/chunks/chunk-5KIHWJI2.mjs.map +0 -7
  323. package/dist/js/chunks/chunk-6FSEUFVW.mjs.map +0 -7
  324. package/dist/js/chunks/chunk-752ADW4M.mjs.map +0 -7
  325. package/dist/js/chunks/chunk-7NLUI3RR.mjs.map +0 -7
  326. package/dist/js/chunks/chunk-7YQBHTK3.mjs.map +0 -7
  327. package/dist/js/chunks/chunk-7YZ5CN3V.mjs.map +0 -7
  328. package/dist/js/chunks/chunk-B7DQFHA5.mjs.map +0 -7
  329. package/dist/js/chunks/chunk-BIGU5RCJ.mjs.map +0 -7
  330. package/dist/js/chunks/chunk-BPF3I2MN.mjs.map +0 -7
  331. package/dist/js/chunks/chunk-CMGXGYUC.mjs.map +0 -7
  332. package/dist/js/chunks/chunk-CSYWKEK3.mjs.map +0 -7
  333. package/dist/js/chunks/chunk-CZSQHXEV.mjs.map +0 -7
  334. package/dist/js/chunks/chunk-DZYVU75J.mjs.map +0 -7
  335. package/dist/js/chunks/chunk-EC26RU2D.mjs.map +0 -7
  336. package/dist/js/chunks/chunk-EVCVFEV3.mjs.map +0 -7
  337. package/dist/js/chunks/chunk-FCNF4GRJ.mjs.map +0 -7
  338. package/dist/js/chunks/chunk-GWZ76SR4.mjs.map +0 -7
  339. package/dist/js/chunks/chunk-KYIEG4U3.mjs.map +0 -7
  340. package/dist/js/chunks/chunk-KZPSAXIU.mjs.map +0 -7
  341. package/dist/js/chunks/chunk-LDXCC2L3.mjs.map +0 -7
  342. package/dist/js/chunks/chunk-NBJAUGPP.mjs.map +0 -7
  343. package/dist/js/chunks/chunk-OUCHKSAW.mjs.map +0 -7
  344. package/dist/js/chunks/chunk-P6DRQ6KS.mjs.map +0 -7
  345. package/dist/js/chunks/chunk-PA7NU5AK.mjs.map +0 -7
  346. package/dist/js/chunks/chunk-QACZ6TUP.mjs.map +0 -7
  347. package/dist/js/chunks/chunk-QXKWVHBD.mjs.map +0 -7
  348. package/dist/js/chunks/chunk-S23RJ3XY.mjs.map +0 -7
  349. package/dist/js/chunks/chunk-SPPHF7YZ.mjs.map +0 -7
  350. package/dist/js/chunks/chunk-U4B3VHFS.mjs.map +0 -7
  351. package/dist/js/chunks/chunk-UGJHCHXG.mjs.map +0 -7
  352. package/dist/js/chunks/chunk-VFV75DHF.mjs.map +0 -7
  353. package/dist/js/chunks/chunk-VGY4M57S.mjs.map +0 -7
  354. package/dist/js/chunks/chunk-VH4BMAZS.mjs.map +0 -7
  355. package/dist/js/chunks/chunk-VJVQIXHC.mjs.map +0 -7
  356. package/dist/js/chunks/chunk-VMY55K2X.mjs.map +0 -7
  357. package/dist/js/chunks/chunk-VR3L2WN5.mjs.map +0 -7
  358. package/dist/js/chunks/chunk-WU7XJ4RR.mjs.map +0 -7
  359. package/dist/js/chunks/chunk-Y6TLRA3U.mjs.map +0 -7
  360. package/dist/js/chunks/chunk-Z4GICXR2.mjs.map +0 -7
  361. package/dist/js/chunks/chunk-Z4OARDZ7.mjs.map +0 -7
  362. package/dist/js/chunks/chunk-ZM3XBHWV.mjs.map +0 -7
  363. package/dist/js/chunks/chunk-ZVLOUDIJ.mjs.map +0 -7
  364. /package/dist/js/chunks/{chunk-Y6H2X7ZC.mjs.map → chunk-3KF65KGL.mjs.map} +0 -0
  365. /package/dist/js/chunks/{chunk-75E5EDJF.mjs.map → chunk-3XORNED5.mjs.map} +0 -0
  366. /package/dist/js/chunks/{chunk-NNHVANQA.mjs.map → chunk-4WBGAQN3.mjs.map} +0 -0
  367. /package/dist/js/chunks/{chunk-ZJNLAGY5.mjs.map → chunk-5F4URJHL.mjs.map} +0 -0
  368. /package/dist/js/chunks/{chunk-GVZQH2H5.mjs.map → chunk-AEG6LOAJ.mjs.map} +0 -0
  369. /package/dist/js/chunks/{chunk-AI73GJKG.mjs.map → chunk-BB5VXYXT.mjs.map} +0 -0
  370. /package/dist/js/chunks/{chunk-2RLBDFH4.mjs.map → chunk-BDATLH3H.mjs.map} +0 -0
  371. /package/dist/js/chunks/{chunk-ZKWUWBUB.mjs.map → chunk-CY2CTOVM.mjs.map} +0 -0
  372. /package/dist/js/chunks/{chunk-67ZPPKXS.mjs.map → chunk-FNIIH2LU.mjs.map} +0 -0
  373. /package/dist/js/chunks/{chunk-T3BNSRP3.mjs.map → chunk-HQRLBTNM.mjs.map} +0 -0
  374. /package/dist/js/chunks/{chunk-NAC72P7R.mjs.map → chunk-I2F7MLUU.mjs.map} +0 -0
  375. /package/dist/js/chunks/{chunk-ANKFWNWT.mjs.map → chunk-LC4O5LFS.mjs.map} +0 -0
  376. /package/dist/js/chunks/{chunk-4PIXLDNJ.mjs.map → chunk-LEF33SCP.mjs.map} +0 -0
  377. /package/dist/js/chunks/{chunk-ILDRRG7T.mjs.map → chunk-LFORZRPH.mjs.map} +0 -0
  378. /package/dist/js/chunks/{chunk-4EWGD4V2.mjs.map → chunk-NODZ5VAD.mjs.map} +0 -0
  379. /package/dist/js/chunks/{chunk-NVQ5EHCU.mjs.map → chunk-QNODAANY.mjs.map} +0 -0
  380. /package/dist/js/chunks/{chunk-ROH2HDB4.mjs.map → chunk-RUDYMEJ3.mjs.map} +0 -0
  381. /package/dist/js/chunks/{chunk-TFABTUAZ.mjs.map → chunk-T4MOBP3J.mjs.map} +0 -0
  382. /package/dist/js/chunks/{chunk-GCWWEZKO.mjs.map → chunk-TM7HPGTV.mjs.map} +0 -0
  383. /package/dist/js/chunks/{chunk-ZO6ZLHFF.mjs.map → chunk-TVSX5YA2.mjs.map} +0 -0
  384. /package/dist/js/chunks/{chunk-JUKBBN6P.mjs.map → chunk-YLZOJLDI.mjs.map} +0 -0
@@ -20,6 +20,9 @@ $icon-label: "span:not(.material-symbols):not(.material-symbols-outlined):not(.m
20
20
  $trend-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M11 20V7.8l-5.6 5.6L4 12l8-8 8 8-1.4 1.4L13 7.8V20z'/%3E%3C/svg%3E") !default;
21
21
  // The drop-down chevron: a select's caret and a mega menu button's trailing icon.
22
22
  $caret-down: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M7 10l5 5 5-5z'/%3E%3C/svg%3E") !default;
23
+ // The expand chevron: an accordion header's trailing icon, and a tree branch's
24
+ // (turned to point at the end edge while closed).
25
+ $expand-more: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 15.4 6 9.4 7.4 8l4.6 4.6L16.6 8 18 9.4z'/%3E%3C/svg%3E") !default;
23
26
 
24
27
  // Mist Iris is the default seed for the generated ramps. Primary, secondary,
25
28
  // tertiary and neutral colors derive from it; the error ramp stays fixed. It
@@ -155,6 +158,28 @@ $icon-button-sizes: (
155
158
  "xlarge": (height: 136px, icon: 40px, space: 48px, narrow: 32px, wide: 72px, square: 28px, pressed: 16px, outline: 3px),
156
159
  );
157
160
 
161
+ // Toggle colors from md.comp.button.<style>.{unselected, selected}, keyed by
162
+ // the pressed state, as (container, label) pairs. Toggle buttons and button
163
+ // group items both read it. Text buttons do not toggle.
164
+ $button-toggle-colors: (
165
+ "filled": (
166
+ false: (var(--md-sys-color-surface-container), var(--md-sys-color-on-surface-variant)),
167
+ true: (var(--md-sys-color-primary), var(--md-sys-color-on-primary)),
168
+ ),
169
+ "tonal": (
170
+ false: (var(--md-sys-color-secondary-container), var(--md-sys-color-on-secondary-container)),
171
+ true: (var(--md-sys-color-secondary), var(--md-sys-color-on-secondary)),
172
+ ),
173
+ "outlined": (
174
+ false: (transparent, var(--md-sys-color-on-surface-variant)),
175
+ true: (var(--md-sys-color-inverse-surface), var(--md-sys-color-inverse-on-surface)),
176
+ ),
177
+ "elevated": (
178
+ false: (var(--md-sys-color-surface-container-low), var(--md-sys-color-primary)),
179
+ true: (var(--md-sys-color-primary), var(--md-sys-color-on-primary)),
180
+ ),
181
+ );
182
+
158
183
  // Material's fast-spatial spring (damping .9, stiffness 1400), sampled into a
159
184
  // CSS linear easing over a fixed window. Superseded by spring(0.9, 1400) and
160
185
  // the --md-sys-motion-spring-fast-spatial token, which button groups and the
@@ -18,8 +18,6 @@
18
18
  // --md-comp-accordion-header-height 56px
19
19
  // --md-comp-accordion-padding 16px
20
20
 
21
- $_accordion-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 15.4 6 9.4 7.4 8l4.6 4.6L16.6 8 18 9.4z'/%3E%3C/svg%3E");
22
-
23
21
  .accordion {
24
22
  --md-comp-accordion-container-color: var(--md-sys-color-surface-container);
25
23
  --md-comp-accordion-shape: var(--md-sys-shape-corner-large-increased);
@@ -84,7 +82,7 @@ $_accordion-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/200
84
82
  height: 24px;
85
83
  margin-inline-start: auto;
86
84
  background-color: var(--md-sys-color-on-surface-variant);
87
- mask: $_accordion-chevron center / 24px no-repeat;
85
+ mask: $expand-more center / 24px no-repeat;
88
86
  transition: transform var(--md-sys-motion-duration-short4) ease-out;
89
87
  }
90
88
 
@@ -105,6 +105,7 @@
105
105
  // solid ring.
106
106
  @media (forced-colors: active) {
107
107
  &.aura::before {
108
+ animation: none;
108
109
  forced-color-adjust: none;
109
110
  background: Highlight;
110
111
  mask: linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0);
@@ -1,3 +1,5 @@
1
+ @use "../abstracts" as *;
2
+
1
3
  // Back-to-top link. Pair it with the FAB classes, `button circle extra`, for
2
4
  // the look: this partial only places the link and hides it. `inert` is the
3
5
  // framework's. BackToTop sets it while the page is above the threshold, so
@@ -33,6 +35,4 @@
33
35
  }
34
36
 
35
37
  // A floating link would print over the content, as the FAB menu would.
36
- @media print {
37
- .back-to-top { display: none !important; }
38
- }
38
+ .back-to-top { @include print-hidden; }
@@ -28,39 +28,12 @@
28
28
  // --md-comp-bar-chart-on-color-1..4 on-primary, on-tertiary,
29
29
  // on-secondary, surface; .values text
30
30
 
31
- @include chart("bar-chart");
31
+ @include chart("bar-chart", $on-colors: true, $rows: true, $cursor: band);
32
32
  @include chart-axis("bar-chart", $beside: false);
33
33
 
34
34
  .bar-chart {
35
- --md-comp-bar-chart-row-height: #{rem(40px)};
36
35
  --md-comp-bar-chart-bar-height: 60%;
37
- --md-comp-bar-chart-shape: var(--md-sys-shape-corner-extra-small);
38
36
  --md-comp-bar-chart-track-color: var(--md-sys-color-surface-container-highest);
39
- --md-comp-bar-chart-on-color-1: var(--md-sys-color-on-primary);
40
- --md-comp-bar-chart-on-color-2: var(--md-sys-color-on-tertiary);
41
- --md-comp-bar-chart-on-color-3: var(--md-sys-color-on-secondary);
42
- --md-comp-bar-chart-on-color-4: var(--md-sys-color-surface);
43
-
44
- // Labels beside the plot, up to 40% of the width; everything else spans
45
- // both columns. Dense flow puts the labels in the plot's row.
46
- // A stretched figure, as in a grid of cards, keeps its rows at their size.
47
- display: grid;
48
- grid-template-columns: fit-content(40%) minmax(0, 1fr);
49
- grid-auto-flow: row dense;
50
- align-content: start;
51
- column-gap: 12px;
52
-
53
- > * {
54
- grid-column: 1 / -1;
55
- }
56
-
57
- > .bar-chart-plot {
58
- grid-column: 2;
59
- }
60
-
61
- > .bar-chart-labels {
62
- grid-column: 1;
63
- }
64
37
 
65
38
  &.sparkline {
66
39
  --md-comp-bar-chart-row-height: #{rem(24px)};
@@ -74,21 +47,6 @@
74
47
  }
75
48
  }
76
49
 
77
- @for $i from 1 through 4 {
78
- .bar-chart [data-series="#{$i}"] {
79
- --bar-chart-on-color: var(--md-comp-bar-chart-on-color-#{$i});
80
- }
81
- }
82
-
83
- // Grid lines run down the plot at each quarter of the value axis.
84
- .bar-chart-plot {
85
- isolation: isolate;
86
- height: calc(var(--rows, 1) * var(--md-comp-bar-chart-row-height));
87
- border-block-end: 0;
88
- border-right: 1px solid var(--md-comp-bar-chart-grid-color);
89
- background: linear-gradient(to right, var(--md-comp-bar-chart-grid-color) 1px, transparent 0) 0 0 / 25% 100%;
90
- }
91
-
92
50
  // .axis labels the value axis under the plot, with a grid line up from
93
51
  // each label. The row labels keep the plot's height.
94
52
  .bar-chart.axis > :is(.bar-chart-plot, .bar-chart-labels) {
@@ -110,13 +68,6 @@
110
68
  translate: -50% 0;
111
69
  }
112
70
 
113
- .bar-chart-labels {
114
- grid-auto-rows: minmax(0, 1fr);
115
- grid-auto-flow: row;
116
- align-items: center;
117
- text-align: end;
118
- }
119
-
120
71
  // .values adds a copy of the bars for their text; both share the geometry.
121
72
  .bar-chart-layers {
122
73
  display: contents;
@@ -221,7 +172,7 @@
221
172
  > div > span {
222
173
  --bar-chart-text-color: var(--md-sys-color-on-surface);
223
174
 
224
- overflow: hidden;
175
+ @include ellipsis;
225
176
  align-content: center;
226
177
  padding: 0 8px 0 calc(var(--bar-chart-left) + 8px);
227
178
  background: linear-gradient(to right, var(--bar-chart-text-color) var(--bar-chart-left), var(--bar-chart-on-color) 0 calc(100% - var(--bar-chart-right)), var(--bar-chart-text-color) 0);
@@ -231,8 +182,6 @@
231
182
  @include typescale("label-medium");
232
183
  font-variant-numeric: tabular-nums;
233
184
  text-align: left;
234
- text-overflow: ellipsis;
235
- white-space: nowrap;
236
185
  }
237
186
 
238
187
  // The base on the right: a bar below zero, or above it in RTL.
@@ -259,33 +208,7 @@
259
208
  clip-path: inset(0 var(--bar-chart-right) 0 var(--bar-chart-left));
260
209
  }
261
210
 
262
- // A band behind the highlighted row's bars.
263
- .bar-chart-cursor {
264
- z-index: -1;
265
- inset-block: auto;
266
- inset-inline: 0;
267
- height: calc(100% / var(--rows, 1));
268
- border-radius: var(--md-comp-bar-chart-shape);
269
- background-color: state-layer(var(--md-sys-color-on-surface), "hover");
270
- translate: 0 -50%;
271
- }
272
-
273
- // Below the highlighted row, or above it in the lower half.
274
- .bar-chart-tooltip {
275
- left: 50%;
276
- translate: -50% calc(var(--md-comp-bar-chart-row-height) / 2);
277
-
278
- &.end {
279
- translate: -50% calc(-100% - var(--md-comp-bar-chart-row-height) / 2);
280
- }
281
- }
282
-
283
211
  @media (forced-colors: active) {
284
- // The mixin clears the grid, but this partial's plot rule comes later.
285
- .bar-chart-plot {
286
- background: none;
287
- }
288
-
289
212
  .bar-chart-bars > div > span,
290
213
  .bar-chart-values > div > span {
291
214
  forced-color-adjust: none;
@@ -295,10 +218,6 @@
295
218
  --bar-chart-text-color: CanvasText;
296
219
  }
297
220
 
298
- .bar-chart-cursor {
299
- outline: 1px solid CanvasText;
300
- }
301
-
302
221
  // The track is a fill, which forced colors paint as Canvas.
303
222
  .bar-chart.track .bar-chart-bars > div {
304
223
  outline: 1px solid CanvasText;
@@ -67,6 +67,13 @@ dialog.bottom-sheet {
67
67
  transition: translate var(--md-comp-bottom-sheet-motion-duration) var(--md-comp-bottom-sheet-motion);
68
68
  @include glass(var(--md-comp-bottom-sheet-container-color));
69
69
 
70
+ // Forced colors paint the fill as Canvas and drop the shadow, so the
71
+ // surface would blend into the page without an edge.
72
+ @media (forced-colors: active) {
73
+ outline: 1px solid CanvasText;
74
+ outline-offset: -1px;
75
+ }
76
+
70
77
  // Non-modal `show()` is not in the top layer — sit above page content
71
78
  // and below tooltips and snackbars (tokens/_stacking.scss).
72
79
  &:not(:modal) {
@@ -40,20 +40,14 @@ nav:has(> .breadcrumb),
40
40
  }
41
41
 
42
42
  scrollbar-width: none;
43
-
44
- &::-webkit-scrollbar {
45
- display: none;
46
- }
47
43
  }
48
44
 
49
45
  > ol {
50
46
  display: flex;
51
47
  flex-wrap: inherit;
52
48
  align-items: center;
53
- list-style: none;
54
49
  min-width: 0;
55
- margin: 0;
56
- padding: 0;
50
+ @include list-reset;
57
51
 
58
52
  > li {
59
53
  display: inline-flex;
@@ -1,3 +1,4 @@
1
+ @use "sass:list";
1
2
  @use "sass:map";
2
3
  @use "../abstracts" as *;
3
4
 
@@ -166,44 +167,20 @@ $_connected-corners: (
166
167
  --_corner: var(--md-comp-button-group-item-shape-round);
167
168
  }
168
169
 
169
- // Toggle-button colors come from md.comp.button.<style>.{unselected,selected}.
170
- // Shape and the filled icon below provide two non-color selection cues.
171
- > #{$_label-item}#{$_filled-item}[aria-pressed=false],
172
- > .icon-button.filled[aria-pressed=false] {
173
- @include _toggle-colors(var(--md-sys-color-surface-container), var(--md-sys-color-on-surface-variant));
174
- }
175
-
176
- > #{$_label-item}#{$_filled-item}[aria-pressed=true],
177
- > .icon-button.filled[aria-pressed=true] {
178
- @include _toggle-colors(var(--md-sys-color-primary), var(--md-sys-color-on-primary));
179
- }
180
-
181
- > #{$_label-item}.tonal[aria-pressed=false],
182
- > .icon-button.tonal[aria-pressed=false] {
183
- @include _toggle-colors(var(--md-sys-color-secondary-container), var(--md-sys-color-on-secondary-container));
184
- }
185
-
186
- > #{$_label-item}.tonal[aria-pressed=true],
187
- > .icon-button.tonal[aria-pressed=true] {
188
- @include _toggle-colors(var(--md-sys-color-secondary), var(--md-sys-color-on-secondary));
189
- }
190
-
191
- > #{$_label-item}.outlined[aria-pressed=false],
192
- > .icon-button.outlined[aria-pressed=false] {
193
- @include _toggle-colors(transparent, var(--md-sys-color-on-surface-variant));
194
- }
195
-
196
- > #{$_label-item}.outlined[aria-pressed=true],
197
- > .icon-button.outlined[aria-pressed=true] {
198
- @include _toggle-colors(var(--md-sys-color-inverse-surface), var(--md-sys-color-inverse-on-surface));
199
- }
200
-
201
- > #{$_label-item}.elevated[aria-pressed=false] {
202
- @include _toggle-colors(var(--md-sys-color-surface-container-low), var(--md-sys-color-primary));
203
- }
204
-
205
- > #{$_label-item}.elevated[aria-pressed=true] {
206
- @include _toggle-colors(var(--md-sys-color-primary), var(--md-sys-color-on-primary));
170
+ // Toggle-button colors, from `$button-toggle-colors`. Shape and the filled
171
+ // icon below provide two non-color selection cues. Icon buttons have no
172
+ // elevated style.
173
+ @each $style, $states in $button-toggle-colors {
174
+ @each $pressed, $colors in $states {
175
+ $label: ".#{$style}";
176
+ @if $style == "filled" { $label: $_filled-item; }
177
+ $icon-item: ", > .icon-button.#{$style}[aria-pressed=#{$pressed}]";
178
+ @if $style == "elevated" { $icon-item: ""; }
179
+
180
+ > #{$_label-item}#{$label}[aria-pressed=#{$pressed}]#{$icon-item} {
181
+ @include _toggle-colors(list.nth($colors, 1), list.nth($colors, 2));
182
+ }
183
+ }
207
184
  }
208
185
 
209
186
  > #{$_toggle-item}[aria-pressed]:hover {
@@ -1,3 +1,4 @@
1
+ @use "sass:list";
1
2
  @use "sass:map";
2
3
  @use "../abstracts" as *;
3
4
 
@@ -71,10 +72,7 @@ $_btn: "button:not(#{$_not-btn}), a.button, label.button";
71
72
 
72
73
  > #{$icon} {
73
74
  flex: 0 0 auto;
74
- font-size: var(--md-comp-filled-button-icon-size);
75
- width: var(--md-comp-filled-button-icon-size);
76
- height: var(--md-comp-filled-button-icon-size);
77
- line-height: var(--md-comp-filled-button-icon-size);
75
+ @include icon-size(var(--md-comp-filled-button-icon-size));
78
76
  overflow: hidden;
79
77
  }
80
78
 
@@ -182,24 +180,10 @@ $_extend-sizes: (
182
180
  color: var(--md-comp-extended-fab-label-text-color);
183
181
  background-color: var(--md-comp-extended-fab-container-color);
184
182
  @include z-depth("3");
185
-
186
- &:hover {
187
- @include z-depth("4");
188
- background-color: state-layer(var(--md-comp-extended-fab-label-text-color), "hover", var(--md-comp-extended-fab-container-color));
189
- }
190
-
191
- &:active,
192
- &:focus {
193
- background-color: state-layer(var(--md-comp-extended-fab-label-text-color), "focus", var(--md-comp-extended-fab-container-color));
194
- }
195
-
196
- @include focus-visible;
183
+ @include btn-states(var(--md-comp-extended-fab-label-text-color), var(--md-comp-extended-fab-container-color), "4");
197
184
 
198
185
  > #{$icon} {
199
- font-size: var(--md-comp-extended-fab-icon-size);
200
- width: var(--md-comp-extended-fab-icon-size);
201
- height: var(--md-comp-extended-fab-icon-size);
202
- line-height: var(--md-comp-extended-fab-icon-size);
186
+ @include icon-size(var(--md-comp-extended-fab-icon-size));
203
187
  }
204
188
 
205
189
  // The size axis. Every size sets the same six tokens and its type role -
@@ -262,26 +246,13 @@ $_extend-sizes: (
262
246
  appearance: none;
263
247
  vertical-align: middle;
264
248
  @include z-depth("3");
265
- @include focus-visible;
249
+ @include btn-states(var(--md-sys-color-on-primary-container), var(--md-sys-color-primary-container), "4");
266
250
 
267
251
  > #{$icon} {
268
- font-size: var(--md-comp-fab-icon-size);
269
- width: var(--md-comp-fab-icon-size);
270
- height: var(--md-comp-fab-icon-size);
271
- line-height: var(--md-comp-fab-icon-size);
252
+ @include icon-size(var(--md-comp-fab-icon-size));
272
253
  color: inherit;
273
254
  }
274
255
 
275
- &:hover {
276
- @include z-depth("4");
277
- background-color: state-layer(var(--md-sys-color-on-primary-container), "hover", var(--md-sys-color-primary-container));
278
- }
279
-
280
- &:active,
281
- &:focus {
282
- background-color: state-layer(var(--md-sys-color-on-primary-container), "focus", var(--md-sys-color-primary-container));
283
- }
284
-
285
256
  // Medium FAB: 80dp container, 26dp icon. The corner continues the size
286
257
  // ladder - 16dp default, 20dp here (corner.large-increased).
287
258
  &.medium {
@@ -399,45 +370,24 @@ $_shaped: ":where(#{$_btn}):where(:not(#{$_fixed}))";
399
370
  border-radius: var(--md-comp-filled-button-pressed-container-shape);
400
371
  }
401
372
 
402
- // Toggle colours, from md.comp.button.<style>.{unselected, selected}. Text
403
- // buttons do not toggle. A disabled toggle takes the disabled colours below.
404
- @mixin _toggle($container, $state) {
405
- --_toggle-container: #{$container};
406
- --_toggle-state: #{$state};
407
- }
408
-
409
- #{$_shaped}[aria-pressed]:not(.tonal, .outlined, .elevated, .text) {
410
- @include _toggle(var(--md-sys-color-surface-container), var(--md-sys-color-on-surface-variant));
411
- }
412
-
413
- #{$_shaped}[aria-pressed="true"]:not(.tonal, .outlined, .elevated, .text) {
414
- @include _toggle(var(--md-sys-color-primary), var(--md-sys-color-on-primary));
415
- }
416
-
417
- #{$_shaped}.tonal[aria-pressed] {
418
- @include _toggle(var(--md-sys-color-secondary-container), var(--md-sys-color-on-secondary-container));
419
- }
420
-
421
- #{$_shaped}.tonal[aria-pressed="true"] {
422
- @include _toggle(var(--md-sys-color-secondary), var(--md-sys-color-on-secondary));
423
- }
424
-
425
- #{$_shaped}.outlined[aria-pressed] {
426
- @include _toggle(transparent, var(--md-sys-color-on-surface-variant));
427
- }
428
-
429
- #{$_shaped}.outlined[aria-pressed="true"] {
430
- @include _toggle(var(--md-sys-color-inverse-surface), var(--md-sys-color-inverse-on-surface));
431
-
432
- border-color: transparent;
433
- }
434
-
435
- #{$_shaped}.elevated[aria-pressed] {
436
- @include _toggle(var(--md-sys-color-surface-container-low), var(--md-sys-color-primary));
437
- }
438
-
439
- #{$_shaped}.elevated[aria-pressed="true"] {
440
- @include _toggle(var(--md-sys-color-primary), var(--md-sys-color-on-primary));
373
+ // Toggle colours, from `$button-toggle-colors`. Text buttons do not toggle. A
374
+ // disabled toggle takes the disabled colours below.
375
+ @each $style, $states in $button-toggle-colors {
376
+ @each $pressed, $colors in $states {
377
+ $attr: "[aria-pressed]";
378
+ @if $pressed { $attr: '[aria-pressed="true"]'; }
379
+ $toggle: ".#{$style}#{$attr}";
380
+ @if $style == "filled" { $toggle: "#{$attr}:not(.tonal, .outlined, .elevated, .text)"; }
381
+
382
+ #{$_shaped}#{$toggle} {
383
+ --_toggle-container: #{list.nth($colors, 1)};
384
+ --_toggle-state: #{list.nth($colors, 2)};
385
+
386
+ @if $style == "outlined" and $pressed {
387
+ border-color: transparent;
388
+ }
389
+ }
390
+ }
441
391
  }
442
392
 
443
393
  #{$_shaped}[aria-pressed]:not(.text, :disabled, [disabled], .disabled) {
@@ -107,13 +107,11 @@ table.calendar {
107
107
  list-style: none;
108
108
 
109
109
  > li {
110
- overflow: hidden;
110
+ @include ellipsis;
111
111
  padding: 2px 6px;
112
112
  border-radius: var(--md-sys-shape-corner-extra-small);
113
113
  background-color: var(--md-comp-calendar-event-container-color);
114
114
  color: var(--md-comp-calendar-event-color);
115
- white-space: nowrap;
116
- text-overflow: ellipsis;
117
115
  @include typescale("label-small");
118
116
 
119
117
  > a {
@@ -75,10 +75,6 @@
75
75
  overscroll-behavior-inline: contain;
76
76
  scrollbar-width: none;
77
77
 
78
- &::-webkit-scrollbar {
79
- display: none;
80
- }
81
-
82
78
  img,
83
79
  video {
84
80
  -webkit-user-drag: none;
@@ -212,26 +208,29 @@
212
208
  display: flex;
213
209
  justify-content: center;
214
210
  align-items: center;
215
- gap: 8px;
216
211
  list-style: none;
217
212
  position: absolute;
218
213
  inset: auto 0 0;
219
214
  z-index: 4;
220
215
  margin: 0;
221
- padding: 8px 0;
216
+ padding: 0;
222
217
  border: 0;
223
218
  background: none;
224
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.
225
223
  .indicator-item {
226
224
  appearance: none;
227
225
  box-sizing: border-box;
228
226
  display: block;
229
- width: 8px;
230
- height: 8px;
227
+ width: 24px;
228
+ height: 24px;
231
229
  margin: 0;
232
- padding: 0;
230
+ padding: 8px;
233
231
  border: 0;
234
232
  border-radius: 50%;
233
+ background-clip: content-box;
235
234
  background-color: color-mix(
236
235
  in oklab,
237
236
  var(--md-sys-color-on-surface) 45%,
@@ -247,7 +246,8 @@
247
246
  @include forced-colors-fill;
248
247
  }
249
248
 
250
- @include focus-visible;
249
+ // Inset to ring the dot as it did, not the whole target.
250
+ @include focus-visible(-6px);
251
251
  }
252
252
  }
253
253
 
@@ -99,20 +99,9 @@ $_chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' vie
99
99
  cursor: pointer;
100
100
  @include typescale("label-large");
101
101
 
102
- &:hover {
103
- background-color: state-layer(var(--md-sys-color-on-surface), "hover");
104
- }
105
-
106
- &[aria-selected="true"] {
107
- background-color: var(--md-comp-cascader-selected-container-color);
108
- color: var(--md-sys-color-on-secondary-container);
109
- @include forced-colors-selected;
110
- }
111
-
112
- &:focus-visible {
113
- outline: 3px solid var(--md-sys-color-secondary);
114
- outline-offset: -3px;
115
- }
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);
116
105
  }
117
106
 
118
107
  .cascader-chevron {
@@ -26,12 +26,11 @@
26
26
  // --md-comp-column-chart-color-1..4 primary, tertiary, secondary,
27
27
  // on-surface-variant
28
28
 
29
- @include chart("column-chart");
29
+ @include chart("column-chart", $cursor: band);
30
30
  @include chart-axis("column-chart");
31
31
 
32
32
  .column-chart {
33
33
  --md-comp-column-chart-column-width: 60%;
34
- --md-comp-column-chart-shape: var(--md-sys-shape-corner-extra-small);
35
34
  --md-comp-column-chart-track-color: var(--md-sys-color-surface-container-highest);
36
35
  }
37
36
 
@@ -111,28 +110,11 @@
111
110
  }
112
111
  }
113
112
 
114
- // A band behind the highlighted row's columns.
115
- .column-chart-plot {
116
- isolation: isolate;
117
- }
118
-
119
- .column-chart-cursor {
120
- z-index: -1;
121
- width: calc(100% / var(--rows, 1));
122
- border-radius: var(--md-comp-column-chart-shape);
123
- background-color: state-layer(var(--md-sys-color-on-surface), "hover");
124
- translate: -50% 0;
125
- }
126
-
127
113
  @media (forced-colors: active) {
128
114
  .column-chart-columns > div > span {
129
115
  forced-color-adjust: none;
130
116
  }
131
117
 
132
- .column-chart-cursor {
133
- outline: 1px solid CanvasText;
134
- }
135
-
136
118
  // The track is a fill, which forced colors paint as Canvas.
137
119
  .column-chart.track .column-chart-columns > div {
138
120
  outline: 1px solid CanvasText;
@@ -1,12 +1,11 @@
1
+ @use "../abstracts" as *;
2
+
1
3
  // Confetti. A <canvas class="confetti"> covers its nearest positioned
2
4
  // ancestor and lets clicks through to what is under it. The Confetti script
3
5
  // draws on it. A burst over the whole viewport needs no markup; the script
4
6
  // styles its own canvas inline.
5
7
 
6
8
  canvas.confetti {
7
- position: absolute;
8
- inset: 0;
9
- width: 100%;
10
- height: 100%;
9
+ @include fill-parent;
11
10
  pointer-events: none;
12
11
  }
@@ -160,6 +160,12 @@
160
160
 
161
161
  td button[aria-expanded]:not([aria-haspopup]) > #{$icon} {
162
162
  transition: transform var(--md-sys-motion-duration-short4) ease-out;
163
+
164
+ // Its own reset: an author's motion duration override outlasts the
165
+ // layered token zeroing.
166
+ @media (prefers-reduced-motion: reduce) {
167
+ transition: none;
168
+ }
163
169
  }
164
170
 
165
171
  td button[aria-expanded="true"]:not([aria-haspopup]) > #{$icon} {
@@ -250,6 +256,10 @@
250
256
  @include trend-arrow;
251
257
  opacity: 0;
252
258
  transition: opacity var(--md-sys-motion-duration-short4) ease-out, transform var(--md-sys-motion-duration-short4) ease-out;
259
+
260
+ @media (prefers-reduced-motion: reduce) {
261
+ transition: none;
262
+ }
253
263
  }
254
264
 
255
265
  &:hover::after {