@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
@@ -40,6 +40,13 @@ dialog {
40
40
  @include z-depth("3");
41
41
  @include glass(var(--md-comp-basic-dialog-container-color));
42
42
 
43
+ // Forced colors paint the fill as Canvas and drop the shadow, so the
44
+ // surface would blend into the page without an edge.
45
+ @media (forced-colors: active) {
46
+ outline: 1px solid CanvasText;
47
+ outline-offset: -1px;
48
+ }
49
+
43
50
  &::backdrop {
44
51
  background-color: var(--md-comp-scrim-color);
45
52
  backdrop-filter: blur(var(--md-comp-basic-dialog-scrim-blur));
@@ -96,10 +103,7 @@ dialog > #{$icon}:first-child {
96
103
  flex: 0 0 auto;
97
104
  align-self: center;
98
105
  margin: 24px 24px 0;
99
- font-size: rem(24px);
100
- width: rem(24px);
101
- height: rem(24px);
102
- line-height: rem(24px);
106
+ @include icon-size(rem(24px));
103
107
  color: var(--md-sys-color-secondary);
104
108
  }
105
109
 
@@ -204,26 +208,14 @@ dialog.max {
204
208
  }
205
209
 
206
210
  > header {
207
- display: flex;
208
- align-items: center;
209
- gap: 4px;
210
- flex: 0 0 auto;
211
- box-sizing: border-box;
212
- min-height: 64px;
213
- margin: 0;
211
+ @include header-bar(4px);
214
212
  padding: 8px 4px;
215
- background: none;
216
- box-shadow: none;
217
213
  }
218
214
 
219
215
  > header > :is(h1, h2, h3, h4, h5, h6) {
220
- flex: 1 1 auto;
221
- min-width: 0;
222
- margin: 0;
216
+ @include header-bar-headline;
223
217
  padding: 0 12px;
224
218
  text-align: start;
225
- color: var(--md-sys-color-on-surface);
226
- @include typescale("title-large");
227
219
  }
228
220
 
229
221
  > header > form {
@@ -166,11 +166,7 @@ dialog.expanding-card-dialog.expanded > .expanding-card-content {
166
166
  }
167
167
 
168
168
  .expanding-card-detail-header > :is(h1, h2, h3, h4, h5, h6) {
169
- flex: 1 1 auto;
170
- min-width: 0;
171
- margin: 0;
172
- color: var(--md-sys-color-on-surface);
173
- @include typescale("title-large");
169
+ @include header-bar-headline;
174
170
  }
175
171
 
176
172
  .expanding-card-actions {
@@ -78,9 +78,7 @@ $_fab-menu-roles: ("primary", "secondary", "tertiary");
78
78
  flex-direction: column;
79
79
  align-items: flex-end;
80
80
  gap: var(--md-comp-fab-menu-menu-item-between-space);
81
- margin: 0;
82
- padding: 0;
83
- list-style: none;
81
+ @include list-reset;
84
82
  width: max-content;
85
83
  max-inline-size: calc(100vw - 2 * var(--md-comp-fab-menu-offset));
86
84
  visibility: hidden;
@@ -129,10 +127,7 @@ $_fab-menu-roles: ("primary", "secondary", "tertiary");
129
127
  @include focus-visible;
130
128
 
131
129
  > #{$icon} {
132
- font-size: var(--md-comp-fab-menu-menu-item-icon-size);
133
- width: var(--md-comp-fab-menu-menu-item-icon-size);
134
- height: var(--md-comp-fab-menu-menu-item-icon-size);
135
- line-height: var(--md-comp-fab-menu-menu-item-icon-size);
130
+ @include icon-size(var(--md-comp-fab-menu-menu-item-icon-size));
136
131
  color: inherit;
137
132
  }
138
133
 
@@ -239,8 +234,5 @@ $_fab-menu-roles: ("primary", "secondary", "tertiary");
239
234
  }
240
235
  }
241
236
 
242
- // A floating menu would print over the content. Important so a size or state rule that sets
243
- // `display` cannot bring it back; see base/_print.scss for the page itself.
244
- @media print {
245
- .fab-menu { display: none !important; }
246
- }
237
+ // A floating menu would print over the content.
238
+ .fab-menu { @include print-hidden; }
@@ -18,46 +18,10 @@
18
18
  // --md-comp-funnel-chart-shape 4px, the stage's corner radius
19
19
  // --md-comp-funnel-chart-color-1 primary, every stage's color
20
20
 
21
- @include chart("funnel-chart");
21
+ @include chart("funnel-chart", $grid: false, $rows: true, $cursor: band);
22
22
 
23
23
  .funnel-chart {
24
- --md-comp-funnel-chart-row-height: #{rem(40px)};
25
24
  --md-comp-funnel-chart-stage-height: 60%;
26
- --md-comp-funnel-chart-shape: var(--md-sys-shape-corner-extra-small);
27
-
28
- // Labels beside the plot, up to 40% of the width; everything else spans
29
- // both columns. Dense flow puts the labels in the plot's row.
30
- display: grid;
31
- grid-template-columns: fit-content(40%) minmax(0, 1fr);
32
- grid-auto-flow: row dense;
33
- align-content: start;
34
- column-gap: 12px;
35
-
36
- > * {
37
- grid-column: 1 / -1;
38
- }
39
-
40
- > .funnel-chart-plot {
41
- grid-column: 2;
42
- }
43
-
44
- > .funnel-chart-labels {
45
- grid-column: 1;
46
- }
47
- }
48
-
49
- .funnel-chart-plot {
50
- isolation: isolate;
51
- height: calc(var(--rows, 1) * var(--md-comp-funnel-chart-row-height));
52
- border-block-end: 0;
53
- background: none;
54
- }
55
-
56
- .funnel-chart-labels {
57
- grid-auto-rows: minmax(0, 1fr);
58
- grid-auto-flow: row;
59
- align-items: center;
60
- text-align: end;
61
25
  }
62
26
 
63
27
  .funnel-chart-stages {
@@ -92,33 +56,8 @@
92
56
  }
93
57
  }
94
58
 
95
- // A band behind the highlighted row's stage.
96
- .funnel-chart-cursor {
97
- z-index: -1;
98
- inset-block: auto;
99
- inset-inline: 0;
100
- height: calc(100% / var(--rows, 1));
101
- border-radius: var(--md-comp-funnel-chart-shape);
102
- background-color: state-layer(var(--md-sys-color-on-surface), "hover");
103
- translate: 0 -50%;
104
- }
105
-
106
- // Below the highlighted row, or above it in the lower half.
107
- .funnel-chart-tooltip {
108
- left: 50%;
109
- translate: -50% calc(var(--md-comp-funnel-chart-row-height) / 2);
110
-
111
- &.end {
112
- translate: -50% calc(-100% - var(--md-comp-funnel-chart-row-height) / 2);
113
- }
114
- }
115
-
116
59
  @media (forced-colors: active) {
117
60
  .funnel-chart-stages > div > span {
118
61
  forced-color-adjust: none;
119
62
  }
120
-
121
- .funnel-chart-cursor {
122
- outline: 1px solid CanvasText;
123
- }
124
63
  }
@@ -28,7 +28,7 @@
28
28
  // --md-comp-heatmap-chart-empty-color surface-container-highest, the
29
29
  // lowest, or the midpoint
30
30
 
31
- @include chart("heatmap-chart");
31
+ @include chart("heatmap-chart", $grid: false);
32
32
 
33
33
  // A level's color: the color above 0, the low color below it, both mixed
34
34
  // into the empty color, so one formula serves both kinds of scale.
@@ -62,8 +62,6 @@
62
62
 
63
63
  .heatmap-chart-plot {
64
64
  height: auto;
65
- border: 0;
66
- background: none;
67
65
  }
68
66
 
69
67
  // The row labels, then the cells beside them. Row labels take up to 40% of
@@ -104,9 +102,7 @@
104
102
 
105
103
  .heatmap-chart-row,
106
104
  .heatmap-chart-column {
107
- overflow: hidden;
108
- text-overflow: ellipsis;
109
- white-space: nowrap;
105
+ @include ellipsis;
110
106
  }
111
107
 
112
108
  .heatmap-chart-row {
@@ -73,10 +73,7 @@
73
73
 
74
74
  > #{$icon} {
75
75
  flex: 0 0 auto;
76
- font-size: var(--md-comp-icon-button-icon-size);
77
- width: var(--md-comp-icon-button-icon-size);
78
- height: var(--md-comp-icon-button-icon-size);
79
- line-height: var(--md-comp-icon-button-icon-size);
76
+ @include icon-size(var(--md-comp-icon-button-icon-size));
80
77
  color: inherit;
81
78
  overflow: hidden;
82
79
  }
@@ -27,47 +27,14 @@
27
27
  // --md-comp-line-chart-color-1..4 primary, tertiary, secondary,
28
28
  // on-surface-variant
29
29
 
30
- @include chart("line-chart");
30
+ @include chart("line-chart", $cursor: line, $lines: true);
31
31
  @include chart-axis("line-chart");
32
32
 
33
- .line-chart {
34
- --md-comp-line-chart-line-width: 3px;
35
-
36
- &.sparkline {
37
- --md-comp-line-chart-line-width: 2px;
38
- }
39
- }
40
-
41
33
  .line-chart-plot > svg {
42
- position: absolute;
43
- inset: 0;
44
- width: 100%;
45
- height: 100%;
34
+ @include fill-parent;
46
35
  overflow: visible;
47
36
  }
48
37
 
49
- .line-chart-line {
50
- fill: none;
51
- stroke: var(--line-chart-color);
52
- stroke-width: var(--md-comp-line-chart-line-width);
53
- stroke-linecap: round;
54
- stroke-linejoin: round;
55
- vector-effect: non-scaling-stroke;
56
- }
57
-
58
- .line-chart-series.dashed .line-chart-line {
59
- stroke-dasharray: 2 8;
60
- }
61
-
62
- // Round caps on zero-length lines: dots that keep their size at any scale.
63
- .line-chart-points {
64
- fill: none;
65
- stroke: var(--line-chart-color);
66
- stroke-width: calc(var(--md-comp-line-chart-line-width) * 3);
67
- stroke-linecap: round;
68
- vector-effect: non-scaling-stroke;
69
- }
70
-
71
38
  .line-chart-area {
72
39
  display: none;
73
40
 
@@ -76,41 +43,6 @@
76
43
  }
77
44
  }
78
45
 
79
- .line-chart-series stop {
80
- stop-color: var(--line-chart-color);
81
- stop-opacity: 0;
82
-
83
- &:first-child {
84
- stop-opacity: 0.24;
85
- }
86
- }
87
-
88
46
  .line-chart.fade .line-chart-plot > svg {
89
47
  mask-image: linear-gradient(to right, transparent, #000 15% 85%, transparent);
90
48
  }
91
-
92
- .line-chart-cursor {
93
- width: 1px;
94
- background-color: var(--md-sys-color-outline);
95
-
96
- > span {
97
- position: absolute;
98
- left: 0;
99
- width: 10px;
100
- height: 10px;
101
- border: 2px solid var(--md-sys-color-surface);
102
- border-radius: 50%;
103
- background-color: var(--line-chart-color);
104
- translate: -50% -50%;
105
- }
106
- }
107
-
108
- @media (forced-colors: active) {
109
- .line-chart-cursor {
110
- background-color: CanvasText;
111
- }
112
-
113
- .line-chart-cursor > span {
114
- forced-color-adjust: none;
115
- }
116
- }
@@ -192,6 +192,10 @@
192
192
  &.bottom-left { inset: auto auto var(--md-comp-map-control-offset) var(--md-comp-map-control-offset); }
193
193
  &.bottom-right { inset: auto var(--md-comp-map-control-offset) var(--md-comp-map-control-offset) auto; }
194
194
 
195
+ // .icon-button's display beats the UA [hidden] rule, and MapView hides
196
+ // the fullscreen button where fullscreen is unavailable.
197
+ [hidden] { display: none; }
198
+
195
199
  > .icon-button,
196
200
  > .map-control-group {
197
201
  border-radius: var(--md-sys-shape-corner-full);
@@ -1,3 +1,5 @@
1
+ @use "../abstracts" as *;
2
+
1
3
  // Marquee. A strip of logos, images or text that scrolls without end:
2
4
  // <div class="marquee"> holding two identical <ul class="marquee-content">
3
5
  // groups. The second is a copy that fills the gap as the first scrolls
@@ -61,9 +63,7 @@
61
63
  justify-content: space-around;
62
64
  gap: var(--md-comp-marquee-gap);
63
65
  min-width: 100%;
64
- margin: 0;
65
- padding: 0;
66
- list-style: none;
66
+ @include list-reset;
67
67
  animation: marquee-x var(--md-comp-marquee-duration) linear infinite;
68
68
 
69
69
  // Its own box-sizing, not the reset's inherit, so each frame of the
@@ -44,16 +44,7 @@
44
44
  cursor: pointer;
45
45
  @include typescale("label-large");
46
46
  @include focus-visible;
47
-
48
- &:hover {
49
- background-color: state-layer(var(--md-sys-color-on-surface), "hover");
50
- }
51
-
52
- &[aria-current="page"] {
53
- background-color: var(--md-sys-color-secondary-container);
54
- color: var(--md-sys-color-on-secondary-container);
55
- @include forced-colors-selected;
56
- }
47
+ @include text-action('[aria-current="page"]');
57
48
  }
58
49
 
59
50
  // A trailing chevron turns while the button's panel is open.
@@ -64,6 +55,11 @@
64
55
  background-color: currentColor;
65
56
  mask: $caret-down center / 18px no-repeat;
66
57
  transition: transform var(--md-sys-motion-duration-short3) ease-out;
58
+ @include forced-colors-fill;
59
+
60
+ @media (prefers-reduced-motion: reduce) {
61
+ transition: none;
62
+ }
67
63
  }
68
64
 
69
65
  > button:has(+ .mega-menu-panel:popover-open)::after {
@@ -104,9 +100,7 @@
104
100
  }
105
101
 
106
102
  > ul {
107
- margin: 0;
108
- padding: 0;
109
- list-style: none;
103
+ @include list-reset;
110
104
  }
111
105
 
112
106
  a {
@@ -118,10 +112,7 @@
118
112
  text-decoration: none;
119
113
  @include typescale("body-large");
120
114
  @include focus-visible;
121
-
122
- &:hover {
123
- background-color: state-layer(var(--md-sys-color-on-surface), "hover");
124
- }
115
+ @include text-action;
125
116
 
126
117
  > small {
127
118
  display: block;
@@ -131,10 +131,15 @@ menu[id] li > menu,
131
131
  transition: border-radius var(--md-sys-motion-duration-short4) ease;
132
132
  @include glass(var(--md-comp-menu-container-color));
133
133
 
134
+ // Forced colors paint the fill as Canvas and drop the shadow, so the
135
+ // surface would blend into the page without an edge.
136
+ @media (forced-colors: active) {
137
+ outline: 1px solid CanvasText;
138
+ outline-offset: -1px;
139
+ }
140
+
134
141
  > li > ul[role="group"] {
135
- margin: 0;
136
- padding: 0;
137
- list-style: none;
142
+ @include list-reset;
138
143
  }
139
144
 
140
145
  #{$_rows} {
@@ -197,10 +202,7 @@ menu[id] li > menu,
197
202
  > button > #{$icon},
198
203
  > #{$icon} {
199
204
  flex: 0 0 var(--md-comp-menu-item-icon-size);
200
- font-size: var(--md-comp-menu-item-icon-size);
201
- width: var(--md-comp-menu-item-icon-size);
202
- height: var(--md-comp-menu-item-icon-size);
203
- line-height: var(--md-comp-menu-item-icon-size);
205
+ @include icon-size(var(--md-comp-menu-item-icon-size));
204
206
  color: var(--md-comp-menu-item-leading-icon-color);
205
207
  }
206
208
 
@@ -310,10 +312,7 @@ menu[id] li > menu,
310
312
  background-color: state-layer(var(--md-comp-menu-item-selected-label-text-color), "pressed", var(--md-comp-menu-item-selected-container-color));
311
313
  }
312
314
 
313
- &:focus-visible {
314
- outline: 3px solid var(--md-sys-color-secondary);
315
- outline-offset: -3px;
316
- }
315
+ @include focus-visible(-3px);
317
316
 
318
317
  &:is(.disabled, [aria-disabled="true"]) {
319
318
  pointer-events: none;
@@ -38,22 +38,10 @@
38
38
  cursor: pointer;
39
39
  @include typescale("label-large");
40
40
  @include focus-visible;
41
-
42
- &:hover {
43
- background-color: state-layer(var(--md-sys-color-on-surface), "hover");
44
- }
45
-
46
- &[aria-expanded="true"] {
47
- background-color: var(--md-sys-color-secondary-container);
48
- color: var(--md-sys-color-on-secondary-container);
49
- }
41
+ @include text-action('[aria-expanded="true"]');
50
42
  }
51
43
 
52
44
  @media (forced-colors: active) {
53
45
  border: 1px solid CanvasText;
54
-
55
- > .menu-trigger[aria-expanded="true"] {
56
- outline: 2px solid Highlight;
57
- }
58
46
  }
59
47
  }
@@ -26,17 +26,12 @@
26
26
  // --md-comp-mixed-chart-color-1..4 primary, tertiary, secondary,
27
27
  // on-surface-variant
28
28
 
29
- @include chart("mixed-chart");
29
+ @include chart("mixed-chart", $lines: true);
30
30
  @include chart-axis("mixed-chart");
31
31
 
32
32
  .mixed-chart {
33
33
  --md-comp-mixed-chart-column-width: 50%;
34
34
  --md-comp-mixed-chart-shape: var(--md-sys-shape-corner-extra-small);
35
- --md-comp-mixed-chart-line-width: 3px;
36
-
37
- &.sparkline {
38
- --md-comp-mixed-chart-line-width: 2px;
39
- }
40
35
  }
41
36
 
42
37
  .mixed-chart-plot {
@@ -105,41 +100,10 @@
105
100
  }
106
101
  }
107
102
 
108
- .mixed-chart-line {
109
- fill: none;
110
- stroke: var(--mixed-chart-color);
111
- stroke-width: var(--md-comp-mixed-chart-line-width);
112
- stroke-linecap: round;
113
- stroke-linejoin: round;
114
- vector-effect: non-scaling-stroke;
115
- }
116
-
117
- .mixed-chart-series.dashed .mixed-chart-line {
118
- stroke-dasharray: 2 8;
119
- }
120
-
121
- // Round caps on zero-length lines: dots that keep their size at any scale.
122
- .mixed-chart-points {
123
- fill: none;
124
- stroke: var(--mixed-chart-color);
125
- stroke-width: calc(var(--md-comp-mixed-chart-line-width) * 3);
126
- stroke-linecap: round;
127
- vector-effect: non-scaling-stroke;
128
- }
129
-
130
103
  .mixed-chart-series:not(.area) .mixed-chart-area {
131
104
  display: none;
132
105
  }
133
106
 
134
- .mixed-chart-series stop {
135
- stop-color: var(--mixed-chart-color);
136
- stop-opacity: 0;
137
-
138
- &:first-child {
139
- stop-opacity: 0.24;
140
- }
141
- }
142
-
143
107
  // A band behind the highlighted row, with a point over each line. The
144
108
  // cursor makes no stacking context, so the band can go behind the marks
145
109
  // and the points in front of them.
@@ -113,9 +113,7 @@ header:has(> #{$_bar}) {
113
113
  &:first-child {
114
114
  padding-inline-start: 12px;
115
115
  }
116
- overflow: hidden;
117
- text-overflow: ellipsis;
118
- white-space: nowrap;
116
+ @include ellipsis;
119
117
  color: inherit;
120
118
  }
121
119
 
@@ -170,10 +168,7 @@ header:has(> #{$_bar}) {
170
168
 
171
169
  > #{$icon} {
172
170
  display: block;
173
- font-size: var(--md-comp-top-app-bar-leading-icon-size);
174
- width: var(--md-comp-top-app-bar-leading-icon-size);
175
- height: var(--md-comp-top-app-bar-leading-icon-size);
176
- line-height: var(--md-comp-top-app-bar-leading-icon-size);
171
+ @include icon-size(var(--md-comp-top-app-bar-leading-icon-size));
177
172
  }
178
173
 
179
174
  &:hover {
@@ -202,9 +197,7 @@ header:has(> #{$_bar}) {
202
197
  display: flex;
203
198
  align-items: stretch;
204
199
  align-self: stretch;
205
- list-style: none;
206
- margin: 0;
207
- padding: 0;
200
+ @include list-reset;
208
201
 
209
202
  > li {
210
203
  display: flex;
@@ -242,6 +235,12 @@ header:has(> #{$_bar}) {
242
235
  min-width: 0;
243
236
  margin: 0;
244
237
 
238
+ // The input clears its own ring, so the form shows it, inset to stay
239
+ // inside the bar.
240
+ &:has(input:focus-visible) {
241
+ @include focus-ring(-3px);
242
+ }
243
+
245
244
  input {
246
245
  flex: 1 1 auto;
247
246
  min-width: 0;
@@ -441,9 +440,7 @@ header.large.collapsed:has(> #{$_bar}) > #{$_bar} {
441
440
  > #{$_title} {
442
441
  order: 0;
443
442
  flex: 1 1 auto;
444
- white-space: nowrap;
445
- overflow: hidden;
446
- text-overflow: ellipsis;
443
+ @include ellipsis;
447
444
  }
448
445
 
449
446
  > #{$_title} + * {
@@ -456,9 +453,7 @@ header.large.collapsed:has(> #{$_bar}) > #{$_bar} {
456
453
  padding: 0;
457
454
  -webkit-line-clamp: unset;
458
455
  line-clamp: unset;
459
- white-space: nowrap;
460
- overflow: hidden;
461
- text-overflow: ellipsis;
456
+ @include ellipsis;
462
457
  @include typescale("title-large");
463
458
  }
464
459
 
@@ -108,8 +108,5 @@
108
108
  }
109
109
  }
110
110
 
111
- // Navigation does nothing on paper. Important so a size or state rule that sets
112
- // `display` cannot bring it back; see base/_print.scss for the page itself.
113
- @media print {
114
- .navigation-bar { display: none !important; }
115
- }
111
+ // Navigation does nothing on paper.
112
+ .navigation-bar { @include print-hidden; }
@@ -55,6 +55,23 @@
55
55
  background-color: var(--md-comp-scrim-color);
56
56
  z-index: -1;
57
57
  }
58
+
59
+ // The rail's z-index makes it the stacking context, which paints its own
60
+ // background under the -1 scrim, so the scrim would dim the rail too. This
61
+ // later layer repaints the surface over the scrim and under the content.
62
+ // Fixed, not absolute, so it stays put while the rail scrolls.
63
+ &::after {
64
+ content: "";
65
+ box-sizing: border-box;
66
+ position: fixed;
67
+ inset-block: 0;
68
+ inset-inline-start: 0;
69
+ width: inherit;
70
+ z-index: -1;
71
+ background: inherit;
72
+ border-radius: inherit;
73
+ pointer-events: none;
74
+ }
58
75
  }
59
76
 
60
77
  .navigation-rail {
@@ -311,16 +328,11 @@
311
328
  cursor: pointer;
312
329
  @include typescale("label-large");
313
330
  @include focus-visible;
314
-
315
- &:hover:not([aria-current]) {
316
- background-color: state-layer(var(--md-sys-color-on-surface), "hover");
317
- }
318
-
319
- &[aria-current] {
320
- background-color: var(--md-comp-nav-rail-active-indicator-color);
321
- color: var(--md-comp-nav-rail-active-color);
322
- @include forced-colors-selected;
323
- }
331
+ @include text-action(
332
+ "[aria-current]",
333
+ var(--md-comp-nav-rail-active-indicator-color),
334
+ var(--md-comp-nav-rail-active-color)
335
+ );
324
336
  }
325
337
 
326
338
  summary {
@@ -339,6 +351,7 @@
339
351
  background-color: currentColor;
340
352
  mask: $caret-down center / 18px no-repeat;
341
353
  transition: transform var(--md-sys-motion-duration-short3) ease-out;
354
+ @include forced-colors-fill;
342
355
  }
343
356
  }
344
357
 
@@ -368,8 +381,5 @@
368
381
  }
369
382
  }
370
383
 
371
- // Navigation does nothing on paper. Important so a size or state rule that sets
372
- // `display` cannot bring it back; see base/_print.scss for the page itself.
373
- @media print {
374
- .navigation-rail { display: none !important; }
375
- }
384
+ // Navigation does nothing on paper.
385
+ .navigation-rail { @include print-hidden; }
@@ -51,9 +51,7 @@ $_footer: "footer:not(:has(> .navigation-bar:only-child))";
51
51
  }
52
52
 
53
53
  ul {
54
- margin: 0;
55
- padding: 0;
56
- list-style: none;
54
+ @include list-reset;
57
55
  }
58
56
  }
59
57