@expressivecss/expressive 0.15.0 → 0.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (609) hide show
  1. package/CHANGELOG.md +1807 -1
  2. package/README.md +9 -8
  3. package/dist/css/expressive.css +19176 -11958
  4. package/dist/css/expressive.css.map +1 -1
  5. package/dist/css/expressive.min.css +1 -1
  6. package/dist/css/expressive.min.css.map +1 -1
  7. package/dist/fonts/LICENSE-noto-sans-arabic +93 -0
  8. package/dist/fonts/LICENSE-noto-sans-hebrew +93 -0
  9. package/dist/fonts/LICENSE-noto-sans-thai +93 -0
  10. package/dist/fonts/material-symbols-outlined.woff2 +0 -0
  11. package/dist/fonts/material-symbols-rounded.woff2 +0 -0
  12. package/dist/fonts/material-symbols-sharp.woff2 +0 -0
  13. package/dist/fonts/noto-sans-arabic-arabic-400.woff2 +0 -0
  14. package/dist/fonts/noto-sans-arabic-arabic-500.woff2 +0 -0
  15. package/dist/fonts/noto-sans-arabic-arabic-700.woff2 +0 -0
  16. package/dist/fonts/noto-sans-cyrillic-400.woff2 +0 -0
  17. package/dist/fonts/noto-sans-cyrillic-500.woff2 +0 -0
  18. package/dist/fonts/noto-sans-cyrillic-700.woff2 +0 -0
  19. package/dist/fonts/noto-sans-cyrillic-ext-400.woff2 +0 -0
  20. package/dist/fonts/noto-sans-cyrillic-ext-500.woff2 +0 -0
  21. package/dist/fonts/noto-sans-cyrillic-ext-700.woff2 +0 -0
  22. package/dist/fonts/noto-sans-devanagari-400.woff2 +0 -0
  23. package/dist/fonts/noto-sans-devanagari-500.woff2 +0 -0
  24. package/dist/fonts/noto-sans-devanagari-700.woff2 +0 -0
  25. package/dist/fonts/noto-sans-greek-400.woff2 +0 -0
  26. package/dist/fonts/noto-sans-greek-500.woff2 +0 -0
  27. package/dist/fonts/noto-sans-greek-700.woff2 +0 -0
  28. package/dist/fonts/noto-sans-greek-ext-400.woff2 +0 -0
  29. package/dist/fonts/noto-sans-greek-ext-500.woff2 +0 -0
  30. package/dist/fonts/noto-sans-greek-ext-700.woff2 +0 -0
  31. package/dist/fonts/noto-sans-hebrew-hebrew-400.woff2 +0 -0
  32. package/dist/fonts/noto-sans-hebrew-hebrew-500.woff2 +0 -0
  33. package/dist/fonts/noto-sans-hebrew-hebrew-700.woff2 +0 -0
  34. package/dist/fonts/noto-sans-latin-700.woff2 +0 -0
  35. package/dist/fonts/noto-sans-latin-ext-400.woff2 +0 -0
  36. package/dist/fonts/noto-sans-latin-ext-500.woff2 +0 -0
  37. package/dist/fonts/noto-sans-latin-ext-700.woff2 +0 -0
  38. package/dist/fonts/noto-sans-thai-thai-400.woff2 +0 -0
  39. package/dist/fonts/noto-sans-thai-thai-500.woff2 +0 -0
  40. package/dist/fonts/noto-sans-thai-thai-700.woff2 +0 -0
  41. package/dist/fonts/noto-sans-vietnamese-400.woff2 +0 -0
  42. package/dist/fonts/noto-sans-vietnamese-500.woff2 +0 -0
  43. package/dist/fonts/noto-sans-vietnamese-700.woff2 +0 -0
  44. package/dist/fonts/roboto-cyrillic-400.woff2 +0 -0
  45. package/dist/fonts/roboto-cyrillic-500.woff2 +0 -0
  46. package/dist/fonts/roboto-cyrillic-700.woff2 +0 -0
  47. package/dist/fonts/roboto-cyrillic-ext-400.woff2 +0 -0
  48. package/dist/fonts/roboto-cyrillic-ext-500.woff2 +0 -0
  49. package/dist/fonts/roboto-cyrillic-ext-700.woff2 +0 -0
  50. package/dist/fonts/roboto-greek-400.woff2 +0 -0
  51. package/dist/fonts/roboto-greek-500.woff2 +0 -0
  52. package/dist/fonts/roboto-greek-700.woff2 +0 -0
  53. package/dist/fonts/roboto-greek-ext-400.woff2 +0 -0
  54. package/dist/fonts/roboto-greek-ext-500.woff2 +0 -0
  55. package/dist/fonts/roboto-greek-ext-700.woff2 +0 -0
  56. package/dist/fonts/roboto-latin-700.woff2 +0 -0
  57. package/dist/fonts/roboto-latin-ext-400.woff2 +0 -0
  58. package/dist/fonts/roboto-latin-ext-500.woff2 +0 -0
  59. package/dist/fonts/roboto-latin-ext-700.woff2 +0 -0
  60. package/dist/fonts/roboto-vietnamese-400.woff2 +0 -0
  61. package/dist/fonts/roboto-vietnamese-500.woff2 +0 -0
  62. package/dist/fonts/roboto-vietnamese-700.woff2 +0 -0
  63. package/dist/js/chunks/chunk-26VUH75M.mjs +102 -0
  64. package/dist/js/chunks/chunk-26VUH75M.mjs.map +7 -0
  65. package/dist/js/chunks/chunk-2LFCOGC3.mjs +233 -0
  66. package/dist/js/chunks/chunk-2LFCOGC3.mjs.map +7 -0
  67. package/dist/js/chunks/{chunk-DXGRXYYL.mjs → chunk-36GELQGX.mjs} +29 -46
  68. package/dist/js/chunks/chunk-36GELQGX.mjs.map +7 -0
  69. package/dist/js/chunks/{chunk-74MXKKLN.mjs → chunk-3FKWIRHW.mjs} +15 -29
  70. package/dist/js/chunks/chunk-3FKWIRHW.mjs.map +7 -0
  71. package/dist/js/chunks/chunk-3KF65KGL.mjs +209 -0
  72. package/dist/js/chunks/chunk-3KF65KGL.mjs.map +7 -0
  73. package/dist/js/chunks/{chunk-KVJAVDBC.mjs → chunk-3KLZRQZI.mjs} +88 -116
  74. package/dist/js/chunks/chunk-3KLZRQZI.mjs.map +7 -0
  75. package/dist/js/chunks/{chunk-CK2XCICY.mjs → chunk-3XORNED5.mjs} +3 -11
  76. package/dist/js/chunks/chunk-3XORNED5.mjs.map +7 -0
  77. package/dist/js/chunks/chunk-4WBGAQN3.mjs +113 -0
  78. package/dist/js/chunks/chunk-4WBGAQN3.mjs.map +7 -0
  79. package/dist/js/chunks/{chunk-FM5CZOUB.mjs → chunk-5F4URJHL.mjs} +19 -30
  80. package/dist/js/chunks/chunk-5F4URJHL.mjs.map +7 -0
  81. package/dist/js/chunks/chunk-67UNY7RH.mjs +299 -0
  82. package/dist/js/chunks/chunk-67UNY7RH.mjs.map +7 -0
  83. package/dist/js/chunks/chunk-7CXNATJS.mjs +97 -0
  84. package/dist/js/chunks/chunk-7CXNATJS.mjs.map +7 -0
  85. package/dist/js/chunks/{chunk-UETTGDLI.mjs → chunk-7X44MKEQ.mjs} +43 -48
  86. package/dist/js/chunks/chunk-7X44MKEQ.mjs.map +7 -0
  87. package/dist/js/chunks/chunk-7ZAMOMGY.mjs +440 -0
  88. package/dist/js/chunks/chunk-7ZAMOMGY.mjs.map +7 -0
  89. package/dist/js/chunks/chunk-AEG6LOAJ.mjs +54 -0
  90. package/dist/js/chunks/chunk-AEG6LOAJ.mjs.map +7 -0
  91. package/dist/js/chunks/chunk-AQNFCJJ5.mjs +135 -0
  92. package/dist/js/chunks/chunk-AQNFCJJ5.mjs.map +7 -0
  93. package/dist/js/chunks/chunk-B55LWKBM.mjs +75 -0
  94. package/dist/js/chunks/chunk-B55LWKBM.mjs.map +7 -0
  95. package/dist/js/chunks/chunk-BB5VXYXT.mjs +28 -0
  96. package/dist/js/chunks/chunk-BB5VXYXT.mjs.map +7 -0
  97. package/dist/js/chunks/chunk-BDATLH3H.mjs +108 -0
  98. package/dist/js/chunks/chunk-BDATLH3H.mjs.map +7 -0
  99. package/dist/js/chunks/chunk-CWMQOT4O.mjs +232 -0
  100. package/dist/js/chunks/chunk-CWMQOT4O.mjs.map +7 -0
  101. package/dist/js/chunks/chunk-CY2CTOVM.mjs +81 -0
  102. package/dist/js/chunks/chunk-CY2CTOVM.mjs.map +7 -0
  103. package/dist/js/chunks/{chunk-NUHMOAOY.mjs → chunk-DWA5UYLJ.mjs} +363 -218
  104. package/dist/js/chunks/chunk-DWA5UYLJ.mjs.map +7 -0
  105. package/dist/js/chunks/chunk-EB2V4OKL.mjs +79 -0
  106. package/dist/js/chunks/chunk-EB2V4OKL.mjs.map +7 -0
  107. package/dist/js/chunks/chunk-EWO662ZC.mjs +188 -0
  108. package/dist/js/chunks/chunk-EWO662ZC.mjs.map +7 -0
  109. package/dist/js/chunks/{chunk-ZX6M7SWO.mjs → chunk-F7LAKFMX.mjs} +320 -141
  110. package/dist/js/chunks/chunk-F7LAKFMX.mjs.map +7 -0
  111. package/dist/js/chunks/{chunk-L27Q6ZMI.mjs → chunk-FNIIH2LU.mjs} +20 -33
  112. package/dist/js/chunks/chunk-FNIIH2LU.mjs.map +7 -0
  113. package/dist/js/chunks/chunk-GE3YMFS6.mjs +15 -0
  114. package/dist/js/chunks/chunk-GE3YMFS6.mjs.map +7 -0
  115. package/dist/js/chunks/chunk-GFWYMWYN.mjs +125 -0
  116. package/dist/js/chunks/chunk-GFWYMWYN.mjs.map +7 -0
  117. package/dist/js/chunks/chunk-GNRSYMVH.mjs +1 -0
  118. package/dist/js/chunks/chunk-H5ISU45X.mjs +87 -0
  119. package/dist/js/chunks/chunk-H5ISU45X.mjs.map +7 -0
  120. package/dist/js/chunks/{chunk-GJL6GCIU.mjs → chunk-H6YIKFAQ.mjs} +311 -186
  121. package/dist/js/chunks/chunk-H6YIKFAQ.mjs.map +7 -0
  122. package/dist/js/chunks/{chunk-BGZLF6JZ.mjs → chunk-HEH7E3KO.mjs} +155 -35
  123. package/dist/js/chunks/chunk-HEH7E3KO.mjs.map +7 -0
  124. package/dist/js/chunks/chunk-HQRLBTNM.mjs +152 -0
  125. package/dist/js/chunks/chunk-HQRLBTNM.mjs.map +7 -0
  126. package/dist/js/chunks/chunk-I2F7MLUU.mjs +137 -0
  127. package/dist/js/chunks/chunk-I2F7MLUU.mjs.map +7 -0
  128. package/dist/js/chunks/chunk-IQOTGGHX.mjs +797 -0
  129. package/dist/js/chunks/chunk-IQOTGGHX.mjs.map +7 -0
  130. package/dist/js/chunks/chunk-JH3YWKA6.mjs +225 -0
  131. package/dist/js/chunks/chunk-JH3YWKA6.mjs.map +7 -0
  132. package/dist/js/chunks/chunk-JOLJAYIJ.mjs +7 -0
  133. package/dist/js/chunks/chunk-JOLJAYIJ.mjs.map +7 -0
  134. package/dist/js/chunks/{chunk-VGNYF6FB.mjs → chunk-KOTGMCMI.mjs} +116 -24
  135. package/dist/js/chunks/chunk-KOTGMCMI.mjs.map +7 -0
  136. package/dist/js/chunks/{chunk-LQWUDNHZ.mjs → chunk-LC4O5LFS.mjs} +21 -45
  137. package/dist/js/chunks/chunk-LC4O5LFS.mjs.map +7 -0
  138. package/dist/js/chunks/chunk-LEF33SCP.mjs +127 -0
  139. package/dist/js/chunks/chunk-LEF33SCP.mjs.map +7 -0
  140. package/dist/js/chunks/{chunk-PDG64UHF.mjs → chunk-LFORZRPH.mjs} +21 -23
  141. package/dist/js/chunks/chunk-LFORZRPH.mjs.map +7 -0
  142. package/dist/js/chunks/chunk-LWLNV5EC.mjs +451 -0
  143. package/dist/js/chunks/chunk-LWLNV5EC.mjs.map +7 -0
  144. package/dist/js/chunks/chunk-LXRHUQAX.mjs +491 -0
  145. package/dist/js/chunks/chunk-LXRHUQAX.mjs.map +7 -0
  146. package/dist/js/chunks/{chunk-SFI2U4YW.mjs → chunk-MA2SZZFB.mjs} +82 -111
  147. package/dist/js/chunks/chunk-MA2SZZFB.mjs.map +7 -0
  148. package/dist/js/chunks/chunk-MDBZAMIV.mjs +121 -0
  149. package/dist/js/chunks/chunk-MDBZAMIV.mjs.map +7 -0
  150. package/dist/js/chunks/chunk-NODZ5VAD.mjs +75 -0
  151. package/dist/js/chunks/chunk-NODZ5VAD.mjs.map +7 -0
  152. package/dist/js/chunks/chunk-O2WJB6TH.mjs +365 -0
  153. package/dist/js/chunks/chunk-O2WJB6TH.mjs.map +7 -0
  154. package/dist/js/chunks/chunk-PCABY5BN.mjs +35 -0
  155. package/dist/js/chunks/chunk-PCABY5BN.mjs.map +7 -0
  156. package/dist/js/chunks/chunk-PWKYVMND.mjs +120 -0
  157. package/dist/js/chunks/chunk-PWKYVMND.mjs.map +7 -0
  158. package/dist/js/chunks/{chunk-SMY7GJSS.mjs → chunk-QHZZT7YO.mjs} +66 -38
  159. package/dist/js/chunks/chunk-QHZZT7YO.mjs.map +7 -0
  160. package/dist/js/chunks/chunk-QND56EW2.mjs +439 -0
  161. package/dist/js/chunks/chunk-QND56EW2.mjs.map +7 -0
  162. package/dist/js/chunks/chunk-QNODAANY.mjs +376 -0
  163. package/dist/js/chunks/chunk-QNODAANY.mjs.map +7 -0
  164. package/dist/js/chunks/{chunk-KHXZ2A4K.mjs → chunk-QRO5FV3I.mjs} +156 -73
  165. package/dist/js/chunks/chunk-QRO5FV3I.mjs.map +7 -0
  166. package/dist/js/chunks/chunk-R7A7JRC5.mjs +440 -0
  167. package/dist/js/chunks/chunk-R7A7JRC5.mjs.map +7 -0
  168. package/dist/js/chunks/chunk-RKG2CBFE.mjs +74 -0
  169. package/dist/js/chunks/chunk-RKG2CBFE.mjs.map +7 -0
  170. package/dist/js/chunks/{chunk-XAEAEHIX.mjs → chunk-RSNS5OYS.mjs} +38 -25
  171. package/dist/js/chunks/chunk-RSNS5OYS.mjs.map +7 -0
  172. package/dist/js/chunks/{chunk-X4ISMKE2.mjs → chunk-RUDYMEJ3.mjs} +7 -6
  173. package/dist/js/chunks/chunk-RUDYMEJ3.mjs.map +7 -0
  174. package/dist/js/chunks/chunk-STJR62SU.mjs +161 -0
  175. package/dist/js/chunks/chunk-STJR62SU.mjs.map +7 -0
  176. package/dist/js/chunks/chunk-SUSD4UTN.mjs +220 -0
  177. package/dist/js/chunks/chunk-SUSD4UTN.mjs.map +7 -0
  178. package/dist/js/chunks/{chunk-5CEAOLUA.mjs → chunk-SYBOA5HC.mjs} +26 -48
  179. package/dist/js/chunks/chunk-SYBOA5HC.mjs.map +7 -0
  180. package/dist/js/chunks/chunk-T4MOBP3J.mjs +108 -0
  181. package/dist/js/chunks/chunk-T4MOBP3J.mjs.map +7 -0
  182. package/dist/js/chunks/chunk-TM7HPGTV.mjs +342 -0
  183. package/dist/js/chunks/chunk-TM7HPGTV.mjs.map +7 -0
  184. package/dist/js/chunks/{chunk-C6CHEWYP.mjs → chunk-TMQDZSDC.mjs} +71 -35
  185. package/dist/js/chunks/chunk-TMQDZSDC.mjs.map +7 -0
  186. package/dist/js/chunks/chunk-TVSX5YA2.mjs +48 -0
  187. package/dist/js/chunks/chunk-TVSX5YA2.mjs.map +7 -0
  188. package/dist/js/chunks/chunk-UHO5CV6K.mjs +80 -0
  189. package/dist/js/chunks/chunk-UHO5CV6K.mjs.map +7 -0
  190. package/dist/js/chunks/chunk-UKCNELUN.mjs +223 -0
  191. package/dist/js/chunks/chunk-UKCNELUN.mjs.map +7 -0
  192. package/dist/js/chunks/chunk-UKQK5GWR.mjs +167 -0
  193. package/dist/js/chunks/chunk-UKQK5GWR.mjs.map +7 -0
  194. package/dist/js/chunks/{chunk-TSZYSW7F.mjs → chunk-UTSLYQ65.mjs} +21 -48
  195. package/dist/js/chunks/chunk-UTSLYQ65.mjs.map +7 -0
  196. package/dist/js/chunks/chunk-VS5OJBOD.mjs +108 -0
  197. package/dist/js/chunks/chunk-VS5OJBOD.mjs.map +7 -0
  198. package/dist/js/chunks/chunk-VZMROW5A.mjs +759 -0
  199. package/dist/js/chunks/chunk-VZMROW5A.mjs.map +7 -0
  200. package/dist/js/chunks/chunk-W6FAL3TI.mjs +38 -0
  201. package/dist/js/chunks/chunk-W6FAL3TI.mjs.map +7 -0
  202. package/dist/js/chunks/chunk-XB6Y7P5W.mjs +69 -0
  203. package/dist/js/chunks/chunk-XB6Y7P5W.mjs.map +7 -0
  204. package/dist/js/chunks/chunk-XDAMOMVD.mjs +226 -0
  205. package/dist/js/chunks/chunk-XDAMOMVD.mjs.map +7 -0
  206. package/dist/js/chunks/{chunk-WDK4T63U.mjs → chunk-XJPMW5SP.mjs} +247 -172
  207. package/dist/js/chunks/chunk-XJPMW5SP.mjs.map +7 -0
  208. package/dist/js/chunks/{chunk-KUFHW3DS.mjs → chunk-YKANQILZ.mjs} +16 -21
  209. package/dist/js/chunks/chunk-YKANQILZ.mjs.map +7 -0
  210. package/dist/js/chunks/chunk-YLZOJLDI.mjs +175 -0
  211. package/dist/js/chunks/chunk-YLZOJLDI.mjs.map +7 -0
  212. package/dist/js/chunks/chunk-ZK7YY322.mjs +514 -0
  213. package/dist/js/chunks/chunk-ZK7YY322.mjs.map +7 -0
  214. package/dist/js/expressive.cjs +10266 -3628
  215. package/dist/js/expressive.cjs.map +4 -4
  216. package/dist/js/expressive.js +10266 -3628
  217. package/dist/js/expressive.js.map +4 -4
  218. package/dist/js/expressive.min.js +23 -22
  219. package/dist/js/expressive.min.js.map +4 -4
  220. package/dist/js/expressive.mjs +181 -69
  221. package/dist/js/expressive.mjs.map +2 -2
  222. package/dist/js/internal/behaviors/bottomSheets.mjs +4 -3
  223. package/dist/js/internal/behaviors/copy.mjs +9 -0
  224. package/dist/js/internal/behaviors/copy.mjs.map +7 -0
  225. package/dist/js/internal/behaviors/dataTables.mjs +8 -0
  226. package/dist/js/internal/behaviors/dataTables.mjs.map +7 -0
  227. package/dist/js/internal/behaviors/dialogs.mjs +2 -2
  228. package/dist/js/internal/behaviors/forms.mjs +2 -2
  229. package/dist/js/internal/behaviors/imageCompare.mjs +8 -0
  230. package/dist/js/internal/behaviors/imageCompare.mjs.map +7 -0
  231. package/dist/js/internal/behaviors/lists.mjs +8 -0
  232. package/dist/js/internal/behaviors/lists.mjs.map +7 -0
  233. package/dist/js/internal/behaviors/paneResize.mjs +8 -0
  234. package/dist/js/internal/behaviors/paneResize.mjs.map +7 -0
  235. package/dist/js/internal/behaviors/sheetDrag.mjs +7 -2
  236. package/dist/js/internal/behaviors/sideSheets.mjs +4 -3
  237. package/dist/js/internal/behaviors/sortable.mjs +8 -0
  238. package/dist/js/internal/behaviors/sortable.mjs.map +7 -0
  239. package/dist/js/internal/behaviors/theme.mjs +8 -0
  240. package/dist/js/internal/behaviors/theme.mjs.map +7 -0
  241. package/dist/js/internal/behaviors/tour.mjs +8 -0
  242. package/dist/js/internal/behaviors/tour.mjs.map +7 -0
  243. package/dist/js/internal/behaviors/transferList.mjs +8 -0
  244. package/dist/js/internal/behaviors/transferList.mjs.map +7 -0
  245. package/dist/js/internal/components/appBar.mjs +3 -2
  246. package/dist/js/internal/components/autocomplete.mjs +5 -4
  247. package/dist/js/internal/components/backToTop.mjs +9 -0
  248. package/dist/js/internal/components/backToTop.mjs.map +7 -0
  249. package/dist/js/internal/components/barChart.mjs +5 -4
  250. package/dist/js/internal/components/buttonGroup.mjs +3 -2
  251. package/dist/js/internal/components/buttons.mjs +3 -3
  252. package/dist/js/internal/components/cards.mjs +3 -3
  253. package/dist/js/internal/components/carousel.mjs +3 -3
  254. package/dist/js/internal/components/cascader.mjs +10 -0
  255. package/dist/js/internal/components/cascader.mjs.map +7 -0
  256. package/dist/js/internal/components/characterCounter.mjs +3 -2
  257. package/dist/js/internal/components/chips.mjs +7 -5
  258. package/dist/js/internal/components/colorPicker.mjs +9 -0
  259. package/dist/js/internal/components/colorPicker.mjs.map +7 -0
  260. package/dist/js/internal/components/columnChart.mjs +4 -3
  261. package/dist/js/internal/components/commandPalette.mjs +3 -3
  262. package/dist/js/internal/components/confetti.mjs +3 -2
  263. package/dist/js/internal/components/currencyInput.mjs +9 -0
  264. package/dist/js/internal/components/currencyInput.mjs.map +7 -0
  265. package/dist/js/internal/components/datepicker.mjs +12 -8
  266. package/dist/js/internal/components/expandingCard.mjs +3 -3
  267. package/dist/js/internal/components/funnelChart.mjs +10 -0
  268. package/dist/js/internal/components/funnelChart.mjs.map +7 -0
  269. package/dist/js/internal/components/heatmapChart.mjs +4 -3
  270. package/dist/js/internal/components/hoverCard.mjs +9 -0
  271. package/dist/js/internal/components/hoverCard.mjs.map +7 -0
  272. package/dist/js/internal/components/index.mjs +131 -65
  273. package/dist/js/internal/components/inputMask.mjs +9 -0
  274. package/dist/js/internal/components/inputMask.mjs.map +7 -0
  275. package/dist/js/internal/components/keypad.mjs +3 -3
  276. package/dist/js/internal/components/lightbox.mjs +3 -3
  277. package/dist/js/internal/components/lineChart.mjs +41 -4
  278. package/dist/js/internal/components/loadingOverlay.mjs +9 -0
  279. package/dist/js/internal/components/loadingOverlay.mjs.map +7 -0
  280. package/dist/js/internal/components/mapView.mjs +3 -3
  281. package/dist/js/internal/components/menu.mjs +3 -3
  282. package/dist/js/internal/components/menubar.mjs +10 -0
  283. package/dist/js/internal/components/menubar.mjs.map +7 -0
  284. package/dist/js/internal/components/messageScroller.mjs +3 -3
  285. package/dist/js/internal/components/mixedChart.mjs +5 -4
  286. package/dist/js/internal/components/navigationRail.mjs +3 -2
  287. package/dist/js/internal/components/particles.mjs +3 -2
  288. package/dist/js/internal/components/pieChart.mjs +4 -3
  289. package/dist/js/internal/components/pullToRefresh.mjs +9 -0
  290. package/dist/js/internal/components/pullToRefresh.mjs.map +7 -0
  291. package/dist/js/internal/components/questionnaire.mjs +3 -3
  292. package/dist/js/internal/components/radarChart.mjs +4 -3
  293. package/dist/js/internal/components/radialChart.mjs +4 -3
  294. package/dist/js/internal/components/registry.mjs +60 -41
  295. package/dist/js/internal/components/richTextEditor.mjs +3 -3
  296. package/dist/js/internal/components/sankeyChart.mjs +10 -0
  297. package/dist/js/internal/components/sankeyChart.mjs.map +7 -0
  298. package/dist/js/internal/components/scatterChart.mjs +10 -0
  299. package/dist/js/internal/components/scatterChart.mjs.map +7 -0
  300. package/dist/js/internal/components/scrollspy.mjs +3 -2
  301. package/dist/js/internal/components/select.mjs +5 -4
  302. package/dist/js/internal/components/showMore.mjs +9 -0
  303. package/dist/js/internal/components/showMore.mjs.map +7 -0
  304. package/dist/js/internal/components/slider.mjs +3 -3
  305. package/dist/js/internal/components/snackbar.mjs +2 -2
  306. package/dist/js/internal/components/swipeActions.mjs +9 -0
  307. package/dist/js/internal/components/swipeActions.mjs.map +7 -0
  308. package/dist/js/internal/components/tabs.mjs +3 -4
  309. package/dist/js/internal/components/timepicker.mjs +5 -4
  310. package/dist/js/internal/components/tooltip.mjs +3 -3
  311. package/dist/js/internal/components/treeSelect.mjs +14 -0
  312. package/dist/js/internal/components/treeSelect.mjs.map +7 -0
  313. package/dist/js/internal/components/treemapChart.mjs +10 -0
  314. package/dist/js/internal/components/treemapChart.mjs.map +7 -0
  315. package/dist/js/internal/core/component.mjs +6 -3
  316. package/dist/js/internal/core/formControl.mjs +12 -0
  317. package/dist/js/internal/core/formControl.mjs.map +7 -0
  318. package/dist/js/internal/core/imageURL.mjs +7 -0
  319. package/dist/js/internal/core/imageURL.mjs.map +7 -0
  320. package/dist/js/internal/core/spring.mjs +11 -0
  321. package/dist/js/internal/core/spring.mjs.map +7 -0
  322. package/dist/js/internal/core/utils.mjs +21 -3
  323. package/dist/js/internal/plugins/dockedDisplayPlugin.mjs +2 -2
  324. package/dist/js/internal/plugins/modalDisplayPlugin.mjs +13 -0
  325. package/dist/js/internal/plugins/modalDisplayPlugin.mjs.map +7 -0
  326. package/dist/js/modular.mjs +172 -69
  327. package/dist/types/behaviors/bottomSheets.d.ts +23 -5
  328. package/dist/types/behaviors/copy.d.ts +18 -0
  329. package/dist/types/behaviors/dataTables.d.ts +125 -0
  330. package/dist/types/behaviors/dialogs.d.ts +27 -1
  331. package/dist/types/behaviors/forms.d.ts +70 -4
  332. package/dist/types/behaviors/imageCompare.d.ts +13 -0
  333. package/dist/types/behaviors/lists.d.ts +12 -0
  334. package/dist/types/behaviors/paneResize.d.ts +29 -0
  335. package/dist/types/behaviors/sheetDrag.d.ts +18 -0
  336. package/dist/types/behaviors/sideSheets.d.ts +1 -1
  337. package/dist/types/behaviors/sortable.d.ts +28 -0
  338. package/dist/types/behaviors/theme.d.ts +22 -0
  339. package/dist/types/behaviors/tour.d.ts +36 -0
  340. package/dist/types/behaviors/transferList.d.ts +53 -0
  341. package/dist/types/components/appBar.d.ts +5 -6
  342. package/dist/types/components/autocomplete.d.ts +105 -20
  343. package/dist/types/components/backToTop.d.ts +36 -0
  344. package/dist/types/components/barChart.d.ts +3 -6
  345. package/dist/types/components/buttonGroup.d.ts +2 -4
  346. package/dist/types/components/buttons.d.ts +5 -5
  347. package/dist/types/components/cards.d.ts +3 -16
  348. package/dist/types/components/carousel.d.ts +16 -15
  349. package/dist/types/components/cascader.d.ts +130 -0
  350. package/dist/types/components/characterCounter.d.ts +2 -15
  351. package/dist/types/components/chips.d.ts +80 -19
  352. package/dist/types/components/colorPicker.d.ts +56 -0
  353. package/dist/types/components/columnChart.d.ts +23 -10
  354. package/dist/types/components/commandPalette.d.ts +11 -16
  355. package/dist/types/components/confetti.d.ts +2 -4
  356. package/dist/types/components/currencyInput.d.ts +60 -0
  357. package/dist/types/components/datepicker.d.ts +107 -56
  358. package/dist/types/components/expandingCard.d.ts +4 -6
  359. package/dist/types/components/funnelChart.d.ts +35 -0
  360. package/dist/types/components/heatmapChart.d.ts +42 -8
  361. package/dist/types/components/hoverCard.d.ts +59 -0
  362. package/dist/types/components/index.d.ts +16 -1
  363. package/dist/types/components/inputMask.d.ts +28 -0
  364. package/dist/types/components/keypad.d.ts +38 -6
  365. package/dist/types/components/lightbox.d.ts +14 -20
  366. package/dist/types/components/lineChart.d.ts +212 -12
  367. package/dist/types/components/loadingOverlay.d.ts +42 -0
  368. package/dist/types/components/mapView.d.ts +138 -27
  369. package/dist/types/components/menu.d.ts +74 -22
  370. package/dist/types/components/menubar.d.ts +37 -0
  371. package/dist/types/components/messageScroller.d.ts +2 -14
  372. package/dist/types/components/mixedChart.d.ts +15 -6
  373. package/dist/types/components/navigationRail.d.ts +16 -5
  374. package/dist/types/components/particles.d.ts +22 -5
  375. package/dist/types/components/pieChart.d.ts +33 -9
  376. package/dist/types/components/pullToRefresh.d.ts +80 -0
  377. package/dist/types/components/questionnaire.d.ts +58 -16
  378. package/dist/types/components/radarChart.d.ts +10 -6
  379. package/dist/types/components/radialChart.d.ts +58 -7
  380. package/dist/types/components/registry.d.ts +73 -3
  381. package/dist/types/components/richTextEditor.d.ts +45 -22
  382. package/dist/types/components/sankeyChart.d.ts +72 -0
  383. package/dist/types/components/scatterChart.d.ts +102 -0
  384. package/dist/types/components/scrollspy.d.ts +3 -5
  385. package/dist/types/components/select.d.ts +44 -33
  386. package/dist/types/components/showMore.d.ts +53 -0
  387. package/dist/types/components/slider.d.ts +2 -15
  388. package/dist/types/components/snackbar.d.ts +68 -1
  389. package/dist/types/components/swipeActions.d.ts +81 -0
  390. package/dist/types/components/tabs.d.ts +92 -30
  391. package/dist/types/components/timepicker.d.ts +128 -27
  392. package/dist/types/components/tooltip.d.ts +57 -21
  393. package/dist/types/components/treeSelect.d.ts +106 -0
  394. package/dist/types/components/treemapChart.d.ts +56 -0
  395. package/dist/types/core/component.d.ts +49 -25
  396. package/dist/types/core/formControl.d.ts +21 -0
  397. package/dist/types/core/imageURL.d.ts +2 -0
  398. package/dist/types/core/spring.d.ts +20 -0
  399. package/dist/types/core/utils.d.ts +123 -72
  400. package/dist/types/modular.d.ts +33 -1
  401. package/dist/types/plugins/dockedDisplayPlugin.d.ts +10 -8
  402. package/dist/types/plugins/modalDisplayPlugin.d.ts +39 -0
  403. package/package.json +17 -13
  404. package/src/sass/README.md +27 -18
  405. package/src/sass/abstracts/_elevation.scss +13 -7
  406. package/src/sass/abstracts/_index.scss +1 -0
  407. package/src/sass/abstracts/_mixins.scss +864 -78
  408. package/src/sass/abstracts/_spring.scss +63 -0
  409. package/src/sass/abstracts/_variables.scss +64 -21
  410. package/src/sass/base/_fonts.scss +61 -48
  411. package/src/sass/base/_global.scss +104 -24
  412. package/src/sass/base/_index.scss +2 -0
  413. package/src/sass/base/_normalize.scss +59 -114
  414. package/src/sass/base/_print.scss +21 -0
  415. package/src/sass/base/_prose.scss +68 -0
  416. package/src/sass/base/_typography.scss +9 -5
  417. package/src/sass/components/_accordion.scss +10 -19
  418. package/src/sass/components/_alert.scss +102 -0
  419. package/src/sass/components/_aura.scss +9 -3
  420. package/src/sass/components/_avatar.scss +3 -3
  421. package/src/sass/components/_back-to-top.scss +38 -0
  422. package/src/sass/components/_badges.scss +6 -5
  423. package/src/sass/components/_bar-chart.scss +31 -90
  424. package/src/sass/components/_bottom-sheet.scss +51 -16
  425. package/src/sass/components/_breadcrumb.scss +8 -7
  426. package/src/sass/components/_button-groups.scss +30 -63
  427. package/src/sass/components/_buttons.scss +137 -94
  428. package/src/sass/components/_calendar.scss +244 -0
  429. package/src/sass/components/_cards.scss +36 -44
  430. package/src/sass/components/_carousel.scss +37 -113
  431. package/src/sass/components/_cascader.scss +131 -0
  432. package/src/sass/components/_chips.scss +36 -46
  433. package/src/sass/components/_column-chart.scss +15 -26
  434. package/src/sass/components/_command-palette.scss +4 -7
  435. package/src/sass/components/_confetti.scss +1 -4
  436. package/src/sass/components/_countdown.scss +1 -1
  437. package/src/sass/components/_data-table.scss +172 -25
  438. package/src/sass/components/_datepicker.scss +54 -40
  439. package/src/sass/components/_description-list.scss +85 -0
  440. package/src/sass/components/_dialog.scss +48 -55
  441. package/src/sass/components/_docked-display.scss +1 -3
  442. package/src/sass/components/_drag-handle.scss +16 -20
  443. package/src/sass/components/_expanding-card.scss +21 -14
  444. package/src/sass/components/_fab-menu.scss +43 -39
  445. package/src/sass/components/_funnel-chart.scss +63 -0
  446. package/src/sass/components/_heatmap-chart.scss +114 -29
  447. package/src/sass/components/_icon-buttons.scss +8 -11
  448. package/src/sass/components/_icons-material-design.scss +2 -2
  449. package/src/sass/components/_image-compare.scss +108 -0
  450. package/src/sass/components/_index.scss +20 -0
  451. package/src/sass/components/_keypad.scss +39 -19
  452. package/src/sass/components/_kpi.scss +6 -11
  453. package/src/sass/components/_lightbox.scss +24 -13
  454. package/src/sass/components/_line-chart.scss +9 -63
  455. package/src/sass/components/_list.scss +59 -14
  456. package/src/sass/components/_loading-indicator.scss +1 -0
  457. package/src/sass/components/_loading-overlay.scss +105 -0
  458. package/src/sass/components/_map.scss +37 -11
  459. package/src/sass/components/_marquee.scss +4 -3
  460. package/src/sass/components/_mega-menu.scss +128 -0
  461. package/src/sass/components/_menu.scss +146 -127
  462. package/src/sass/components/_menubar.scss +47 -0
  463. package/src/sass/components/_message-scroller.scss +2 -2
  464. package/src/sass/components/_message.scss +3 -3
  465. package/src/sass/components/_mixed-chart.scss +27 -35
  466. package/src/sass/components/_modal-display.scss +21 -0
  467. package/src/sass/components/_navbar.scss +45 -36
  468. package/src/sass/components/_navigation-bar.scss +12 -77
  469. package/src/sass/components/_navigation-rail.scss +161 -92
  470. package/src/sass/components/_org-chart.scss +192 -0
  471. package/src/sass/components/_page-footer.scss +2 -4
  472. package/src/sass/components/_pagination.scss +9 -27
  473. package/src/sass/components/_panes.scss +35 -42
  474. package/src/sass/components/_particles.scss +1 -4
  475. package/src/sass/components/_pie-chart.scss +86 -68
  476. package/src/sass/components/_popover.scss +18 -5
  477. package/src/sass/components/_progress.scss +183 -44
  478. package/src/sass/components/_pull-to-refresh.scss +90 -0
  479. package/src/sass/components/_questionnaire.scss +74 -3
  480. package/src/sass/components/_radar-chart.scss +40 -42
  481. package/src/sass/components/_radial-chart.scss +108 -46
  482. package/src/sass/components/_rich-text-editor.scss +2 -2
  483. package/src/sass/components/_sankey-chart.scss +91 -0
  484. package/src/sass/components/_scatter-chart.scss +144 -0
  485. package/src/sass/components/_scrim.scss +0 -2
  486. package/src/sass/components/_scrollspy.scss +0 -2
  487. package/src/sass/components/_search.scss +27 -26
  488. package/src/sass/components/_show-more.scss +8 -0
  489. package/src/sass/components/_side-sheet.scss +32 -51
  490. package/src/sass/components/_skeleton.scss +26 -19
  491. package/src/sass/components/_snackbar.scss +25 -21
  492. package/src/sass/components/_split-button.scss +5 -5
  493. package/src/sass/components/_stat.scss +3 -8
  494. package/src/sass/components/_stepper.scss +1 -1
  495. package/src/sass/components/_swipe-actions.scss +71 -0
  496. package/src/sass/components/_table_of_contents.scss +1 -3
  497. package/src/sass/components/_tabs.scss +49 -46
  498. package/src/sass/components/_timeline.scss +12 -12
  499. package/src/sass/components/_timepicker.scss +111 -79
  500. package/src/sass/components/_toolbar.scss +36 -47
  501. package/src/sass/components/_tooltip.scss +25 -12
  502. package/src/sass/components/_tour.scss +89 -0
  503. package/src/sass/components/_transfer-list.scss +73 -0
  504. package/src/sass/components/_transitions.scss +4 -4
  505. package/src/sass/components/_tree.scss +7 -32
  506. package/src/sass/components/_treemap-chart.scss +98 -0
  507. package/src/sass/components/forms/_checkboxes.scss +107 -44
  508. package/src/sass/components/forms/_color-picker.scss +135 -0
  509. package/src/sass/components/forms/_color-swatches.scss +85 -0
  510. package/src/sass/components/forms/_drop-zone.scss +16 -13
  511. package/src/sass/components/forms/_fieldset.scss +4 -7
  512. package/src/sass/components/forms/_file-input.scss +12 -8
  513. package/src/sass/components/forms/_index.scss +3 -1
  514. package/src/sass/components/forms/_input-fields.scss +271 -90
  515. package/src/sass/components/forms/_radio-buttons.scss +34 -117
  516. package/src/sass/components/forms/_rating.scss +2 -32
  517. package/src/sass/components/forms/_select.scss +198 -20
  518. package/src/sass/components/forms/_slider.scss +92 -98
  519. package/src/sass/components/forms/_switches.scss +62 -180
  520. package/src/sass/custom.scss +10 -1
  521. package/src/sass/expressive.scss +3 -63
  522. package/src/sass/tokens/_contrast.scss +94 -0
  523. package/src/sass/tokens/_elevation.scss +16 -0
  524. package/src/sass/tokens/_index.scss +5 -0
  525. package/src/sass/tokens/_motion.scss +109 -0
  526. package/src/sass/tokens/_reference.scss +72 -141
  527. package/src/sass/tokens/_shape.scss +38 -0
  528. package/src/sass/tokens/_stacking.scss +27 -0
  529. package/src/sass/tokens/_state.scss +0 -2
  530. package/src/sass/tokens/_theme.scss +10 -1
  531. package/src/sass/tokens/_vibrant.scss +2 -5
  532. package/src/sass/utilities/_defer-render.scss +17 -0
  533. package/src/sass/utilities/_helpers.scss +184 -27
  534. package/src/sass/utilities/_index.scss +1 -0
  535. package/src/sass/utilities/_scroll-area.scss +0 -2
  536. package/src/sass/utilities/_spacing.scss +52 -34
  537. package/src/sass/utilities/_typescale.scss +8 -1
  538. package/src/sass/utilities/_visibility.scss +46 -77
  539. package/src/sass/utilities/_z-depth.scss +7 -4
  540. package/dist/js/chunks/chunk-33QVDDGR.mjs +0 -270
  541. package/dist/js/chunks/chunk-33QVDDGR.mjs.map +0 -7
  542. package/dist/js/chunks/chunk-45FER6RI.mjs +0 -59
  543. package/dist/js/chunks/chunk-45FER6RI.mjs.map +0 -7
  544. package/dist/js/chunks/chunk-5CEAOLUA.mjs.map +0 -7
  545. package/dist/js/chunks/chunk-6VATUZC6.mjs +0 -295
  546. package/dist/js/chunks/chunk-6VATUZC6.mjs.map +0 -7
  547. package/dist/js/chunks/chunk-74MXKKLN.mjs.map +0 -7
  548. package/dist/js/chunks/chunk-AIURVCG6.mjs +0 -55
  549. package/dist/js/chunks/chunk-AIURVCG6.mjs.map +0 -7
  550. package/dist/js/chunks/chunk-BGZLF6JZ.mjs.map +0 -7
  551. package/dist/js/chunks/chunk-C6CHEWYP.mjs.map +0 -7
  552. package/dist/js/chunks/chunk-CK2XCICY.mjs.map +0 -7
  553. package/dist/js/chunks/chunk-CXXM2L4F.mjs +0 -344
  554. package/dist/js/chunks/chunk-CXXM2L4F.mjs.map +0 -7
  555. package/dist/js/chunks/chunk-DXGRXYYL.mjs.map +0 -7
  556. package/dist/js/chunks/chunk-FM5CZOUB.mjs.map +0 -7
  557. package/dist/js/chunks/chunk-GJL6GCIU.mjs.map +0 -7
  558. package/dist/js/chunks/chunk-K3HZMFMD.mjs +0 -135
  559. package/dist/js/chunks/chunk-K3HZMFMD.mjs.map +0 -7
  560. package/dist/js/chunks/chunk-KHXZ2A4K.mjs.map +0 -7
  561. package/dist/js/chunks/chunk-KQACNQ22.mjs +0 -7
  562. package/dist/js/chunks/chunk-KQACNQ22.mjs.map +0 -7
  563. package/dist/js/chunks/chunk-KUFHW3DS.mjs.map +0 -7
  564. package/dist/js/chunks/chunk-KVJAVDBC.mjs.map +0 -7
  565. package/dist/js/chunks/chunk-L27Q6ZMI.mjs.map +0 -7
  566. package/dist/js/chunks/chunk-LQWUDNHZ.mjs.map +0 -7
  567. package/dist/js/chunks/chunk-M372EDXD.mjs +0 -322
  568. package/dist/js/chunks/chunk-M372EDXD.mjs.map +0 -7
  569. package/dist/js/chunks/chunk-M3MURWMB.mjs +0 -82
  570. package/dist/js/chunks/chunk-M3MURWMB.mjs.map +0 -7
  571. package/dist/js/chunks/chunk-NUHMOAOY.mjs.map +0 -7
  572. package/dist/js/chunks/chunk-OWG3LMUL.mjs +0 -169
  573. package/dist/js/chunks/chunk-OWG3LMUL.mjs.map +0 -7
  574. package/dist/js/chunks/chunk-PD6HYHAE.mjs +0 -48
  575. package/dist/js/chunks/chunk-PD6HYHAE.mjs.map +0 -7
  576. package/dist/js/chunks/chunk-PDG64UHF.mjs.map +0 -7
  577. package/dist/js/chunks/chunk-PO3AXVR3.mjs +0 -546
  578. package/dist/js/chunks/chunk-PO3AXVR3.mjs.map +0 -7
  579. package/dist/js/chunks/chunk-QYGK36OG.mjs +0 -181
  580. package/dist/js/chunks/chunk-QYGK36OG.mjs.map +0 -7
  581. package/dist/js/chunks/chunk-SFI2U4YW.mjs.map +0 -7
  582. package/dist/js/chunks/chunk-SMY7GJSS.mjs.map +0 -7
  583. package/dist/js/chunks/chunk-TCCA2HDG.mjs +0 -414
  584. package/dist/js/chunks/chunk-TCCA2HDG.mjs.map +0 -7
  585. package/dist/js/chunks/chunk-TSZYSW7F.mjs.map +0 -7
  586. package/dist/js/chunks/chunk-UAZSDUVP.mjs +0 -90
  587. package/dist/js/chunks/chunk-UAZSDUVP.mjs.map +0 -7
  588. package/dist/js/chunks/chunk-UBRZZWRA.mjs +0 -127
  589. package/dist/js/chunks/chunk-UBRZZWRA.mjs.map +0 -7
  590. package/dist/js/chunks/chunk-UCOE7ZDL.mjs +0 -287
  591. package/dist/js/chunks/chunk-UCOE7ZDL.mjs.map +0 -7
  592. package/dist/js/chunks/chunk-UETTGDLI.mjs.map +0 -7
  593. package/dist/js/chunks/chunk-UNCRDLP6.mjs +0 -136
  594. package/dist/js/chunks/chunk-UNCRDLP6.mjs.map +0 -7
  595. package/dist/js/chunks/chunk-VGNYF6FB.mjs.map +0 -7
  596. package/dist/js/chunks/chunk-VGPGBNGL.mjs +0 -68
  597. package/dist/js/chunks/chunk-VGPGBNGL.mjs.map +0 -7
  598. package/dist/js/chunks/chunk-VKAUVTQY.mjs +0 -1
  599. package/dist/js/chunks/chunk-VM4FTS7L.mjs +0 -48
  600. package/dist/js/chunks/chunk-VM4FTS7L.mjs.map +0 -7
  601. package/dist/js/chunks/chunk-WDK4T63U.mjs.map +0 -7
  602. package/dist/js/chunks/chunk-WOCCTVUF.mjs +0 -185
  603. package/dist/js/chunks/chunk-WOCCTVUF.mjs.map +0 -7
  604. package/dist/js/chunks/chunk-WQYN5L4E.mjs +0 -107
  605. package/dist/js/chunks/chunk-WQYN5L4E.mjs.map +0 -7
  606. package/dist/js/chunks/chunk-X4ISMKE2.mjs.map +0 -7
  607. package/dist/js/chunks/chunk-XAEAEHIX.mjs.map +0 -7
  608. package/dist/js/chunks/chunk-ZX6M7SWO.mjs.map +0 -7
  609. /package/dist/js/chunks/{chunk-VKAUVTQY.mjs.map → chunk-GNRSYMVH.mjs.map} +0 -0
@@ -0,0 +1,63 @@
1
+ @use "sass:list";
2
+ @use "sass:math";
3
+ @use "sass:string";
4
+
5
+ // Springs, solved at compile time. M3 Expressive describes motion as springs
6
+ // (a damping ratio and a stiffness, mass 1) rather than as curves and
7
+ // durations. CSS has no spring timing function, so spring() samples the
8
+ // spring's position from rest to the target into a `linear()` easing, and
9
+ // spring-duration() returns how long it takes to settle. Use them together:
10
+ //
11
+ // transition: translate spring-duration(0.8, 380) spring(0.8, 380);
12
+ //
13
+ // tokens/_motion.scss emits M3's six standard and expressive springs as
14
+ // --md-sys-motion-spring-* tokens from these.
15
+
16
+ // Settled once within this fraction of the distance, about a pixel on a
17
+ // 200px move.
18
+ $_settle: 0.005;
19
+ $_samples: 24;
20
+
21
+ // Position at $t seconds, from 0 to 1, for a spring released at rest.
22
+ @function _position($t, $damping, $stiffness) {
23
+ $w: math.sqrt($stiffness);
24
+ @if $damping < 1 {
25
+ $wd: $w * math.sqrt(1 - $damping * $damping);
26
+ $decay: math.pow(math.$e, -$damping * $w * $t);
27
+ @return 1 - $decay * (math.cos($wd * $t) + math.div($damping * $w, $wd) * math.sin($wd * $t));
28
+ }
29
+ // Critically damped (M3's effects springs). Overdamped springs are not used.
30
+ @return 1 - math.pow(math.$e, -$w * $t) * (1 + $w * $t);
31
+ }
32
+
33
+ // Seconds until the spring stays within $_settle of the target. An
34
+ // underdamped spring settles when its envelope does; a critically damped one
35
+ // is stepped forward a millisecond at a time.
36
+ @function _settle-time($damping, $stiffness) {
37
+ $w: math.sqrt($stiffness);
38
+ @if $damping < 1 {
39
+ @return math.div(math.log(math.div(1, $_settle * math.sqrt(1 - $damping * $damping))), $damping * $w);
40
+ }
41
+ $t: 0;
42
+ @while 1 - _position($t, $damping, $stiffness) > $_settle {
43
+ $t: $t + 0.001;
44
+ }
45
+ @return $t;
46
+ }
47
+
48
+ /// How long the spring takes to settle, in milliseconds.
49
+ @function spring-duration($damping, $stiffness) {
50
+ @return math.round(_settle-time($damping, $stiffness) * 1000) * 1ms;
51
+ }
52
+
53
+ /// The spring as a `linear()` easing over spring-duration().
54
+ @function spring($damping, $stiffness) {
55
+ $end: _settle-time($damping, $stiffness);
56
+ $points: (0,);
57
+ @for $i from 1 to $_samples {
58
+ $x: _position($end * math.div($i, $_samples), $damping, $stiffness);
59
+ $points: list.append($points, string.unquote("#{math.div(math.round($x * 10000), 10000)} #{math.div(math.round(math.div($i, $_samples) * 1000), 10)}%"), comma);
60
+ }
61
+ $points: list.append($points, 1, comma);
62
+ @return string.unquote("linear(#{$points})");
63
+ }
@@ -7,16 +7,37 @@
7
7
  // inset, icon-only toolbar actions stopped being 48dp circles and picked up the
8
8
  // text-action pill instead.
9
9
  //
10
- // So the answer lives in one place. `i` stays in the list for markup written
11
- // before 0.8.0. Interpolate it inside :is() - never as a bare comma list, which
12
- // breaks out of its context (see $_bar in components/_navbar).
13
- $icon: ":is(i, .material-symbols, .material-symbols-outlined, .material-symbols-rounded, .material-symbols-sharp, .material-icons)" !default;
10
+ // So the answer lives in one place. Interpolate it inside :is() - never as a
11
+ // bare comma list, which breaks out of its context (see $_bar in
12
+ // components/_navbar). A bare <i> is idiomatic text, not an icon, so it is
13
+ // not in the list.
14
+ $icon: ":is(.material-symbols, .material-symbols-outlined, .material-symbols-rounded, .material-symbols-sharp)" !default;
14
15
 
15
16
  // The label beside an icon: any span that is not itself an icon.
16
- $icon-label: "span:not(.material-symbols):not(.material-symbols-outlined):not(.material-symbols-rounded):not(.material-symbols-sharp):not(.material-icons)" !default;
17
+ $icon-label: "span:not(.material-symbols):not(.material-symbols-outlined):not(.material-symbols-rounded):not(.material-symbols-sharp)" !default;
17
18
 
18
19
  // The up arrow on a change line (Stat, KPI). Rotate it 180deg for down.
19
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
+ // The drop-down chevron: a select's caret and a mega menu button's trailing icon.
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;
26
+
27
+ // Mist Iris is the default seed for the generated ramps. Primary, secondary,
28
+ // tertiary and neutral colors derive from it; the error ramp stays fixed. It
29
+ // lives here rather than in tokens/_reference so `@use "expressive" with
30
+ // ($md-source: ...)` reaches it: only abstracts is forwarded, and the layers
31
+ // are loaded with meta.load-css(), which takes no configuration.
32
+ $md-source: #c6a0f6 !default;
33
+
34
+ // A control the user cannot operate, natively or by ARIA. The FAB menu and
35
+ // toolbar-group hosts and .hoverable skip it through
36
+ // :not(:where(#{$expressive-disabled})), which adds no specificity, so a
37
+ // disabled control never lifts or takes an enabled tint. Prefixed because
38
+ // abstracts is forwarded to consumers, and a bare $disabled would collide
39
+ // with theirs; not !default, since it is not a setting.
40
+ $expressive-disabled: ':is(:disabled, [disabled], .disabled, [aria-disabled="true"])';
20
41
 
21
42
  // Colors
22
43
  //
@@ -29,8 +50,8 @@ $link-color: var(--md-sys-color-primary) !default;
29
50
  // M3 Expressive color roles. The live tokens are --md-sys-color-#{role}.
30
51
  // 26 standard roles in six groups (primary, secondary, tertiary, error,
31
52
  // surface, outline), plus optional add-ons (fixed accents, the surface
32
- // container scale) and four legacy aliases (background, on-background,
33
- // surface-variant, surface-tint). Consumed by tokens/_theme.scss and
53
+ // container scale). The pre-1.0 aliases background, on-background,
54
+ // surface-variant and surface-tint were removed in 0.16.0. Consumed by tokens/_theme.scss and
34
55
  // utilities/_colors.scss so the token layer and the utility classes
35
56
  // cannot drift.
36
57
  $sys-color-roles: (
@@ -47,8 +68,7 @@ $sys-color-roles: (
47
68
  "surface-container-high", "surface-container-highest",
48
69
  "outline", "outline-variant",
49
70
  "inverse-surface", "inverse-on-surface", "inverse-primary",
50
- "scrim", "shadow",
51
- "background", "on-background", "surface-variant", "surface-tint"
71
+ "scrim", "shadow"
52
72
  ) !default;
53
73
 
54
74
  // Menu
@@ -86,7 +106,7 @@ $expressive-include-fonts: true !default;
86
106
  $expressive-glass: false !default;
87
107
  $expressive-glass-blur: 16px !default;
88
108
  $expressive-glass-opacity: 72% !default;
89
- $text-color: var(--md-sys-color-on-background) !default;
109
+ $text-color: var(--md-sys-color-on-surface) !default;
90
110
 
91
111
  // Modern browsers default to 16px. M3's web conversion is SP_SIZE / 16 = rem;
92
112
  // flow text uses the same basis without overriding the user's browser setting.
@@ -120,11 +140,11 @@ $flow-text-to: 960px !default; // the old loop's last step: 360px + 20 * 30
120
140
  // the group itself. A partial may not @use another partial, so a table two of
121
141
  // them share has to be here.
122
142
  $button-sizes: (
123
- "xsmall": (height: 32px, icon: 20px, space: 12px, gap: 8px, outline: 1px, label: "label-large"),
124
- "small": (height: 40px, icon: 20px, space: 16px, gap: 8px, outline: 1px, label: "label-large"),
125
- "medium": (height: 56px, icon: 24px, space: 24px, gap: 8px, outline: 1px, label: "title-medium"),
126
- "large": (height: 96px, icon: 32px, space: 48px, gap: 12px, outline: 2px, label: "headline-small"),
127
- "xlarge": (height: 136px, icon: 40px, space: 64px, gap: 16px, outline: 3px, label: "headline-large"),
143
+ "xsmall": (height: 32px, icon: 20px, space: 12px, gap: 8px, outline: 1px, square: 12px, pressed: 8px, label: "label-large"),
144
+ "small": (height: 40px, icon: 20px, space: 16px, gap: 8px, outline: 1px, square: 12px, pressed: 8px, label: "label-large"),
145
+ "medium": (height: 56px, icon: 24px, space: 24px, gap: 8px, outline: 1px, square: 16px, pressed: 12px, label: "title-medium"),
146
+ "large": (height: 96px, icon: 32px, space: 48px, gap: 12px, outline: 2px, square: 28px, pressed: 16px, label: "headline-small"),
147
+ "xlarge": (height: 136px, icon: 40px, space: 64px, gap: 16px, outline: 3px, square: 28px, pressed: 16px, label: "headline-large"),
128
148
  );
129
149
 
130
150
  // Icon-button geometry is shared with button groups. A group-size class must
@@ -138,12 +158,35 @@ $icon-button-sizes: (
138
158
  "xlarge": (height: 136px, icon: 40px, space: 48px, narrow: 32px, wide: 72px, square: 28px, pressed: 16px, outline: 3px),
139
159
  );
140
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
+
141
183
  // Material's fast-spatial spring (damping .9, stiffness 1400), sampled into a
142
- // CSS linear easing. Button groups and keypads both press with it, so the
143
- // curve lives here once.
184
+ // CSS linear easing over a fixed window. Superseded by spring(0.9, 1400) and
185
+ // the --md-sys-motion-spring-fast-spatial token, which button groups and the
186
+ // keypad now read; kept so Sass that still names it compiles.
144
187
  $motion-fast-spatial: linear(
145
- 0, .056 5%, .1796 10%, .3252 15%, .4675 20%, .5936 25%,
146
- .6988 30%, .7828 35%, .8475 40%, .8959 45%, .931 50%,
147
- .9559 55%, .973 60%, .9845 65%, .9919 70%, .9965 75%,
148
- .9992 80%, 1.0006 85%, 1.0013 90%, 1.0015 95%, 1.0015
188
+ 0, 0.056 5%, 0.1796 10%, 0.3252 15%, 0.4675 20%, 0.5936 25%,
189
+ 0.6988 30%, 0.7828 35%, 0.8475 40%, 0.8959 45%, 0.931 50%,
190
+ 0.9559 55%, 0.973 60%, 0.9845 65%, 0.9919 70%, 0.9965 75%,
191
+ 0.9992 80%, 1.0006 85%, 1.0013 90%, 1.0015 95%, 1.0015
149
192
  );
@@ -1,63 +1,76 @@
1
+ @use "sass:map";
2
+ @use "sass:string";
1
3
  @use "../abstracts" as *;
2
4
 
3
5
  // Self-hosted faces for the families the tokens and icon classes name.
4
6
  // Unlayered on purpose: @font-face inside a cascade layer is unreliable.
5
7
  // $expressive-font-path is relative to the compiled CSS (dist/css -> dist/fonts).
6
8
 
7
- @if $expressive-include-fonts {
8
- @font-face {
9
- font-family: "Material Symbols Outlined";
10
- font-style: normal;
11
- font-weight: 100 700;
12
- font-display: block;
13
- src: url("#{$expressive-font-path}/material-symbols-outlined.woff2") format("woff2");
14
- }
9
+ // Text subsets and their unicode-range, as Fontsource publishes them
10
+ // (node_modules/@fontsource/*/400.css). scripts/copy-fonts.mjs copies the
11
+ // same subsets. Arabic, Hebrew and Thai, which Noto Sans leaves out, come as
12
+ // their own Noto families with only their script's range, so a page fetches
13
+ // them only when it shows that script. CJK families are megabytes each, so
14
+ // CJK text falls through to the system font the browser picks for the
15
+ // element's lang.
16
+ $_roboto-subsets: (
17
+ "latin": "U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD",
18
+ "latin-ext": "U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF",
19
+ "cyrillic": "U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116",
20
+ "cyrillic-ext": "U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F",
21
+ "greek": "U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF",
22
+ "greek-ext": "U+1F00-1FFF",
23
+ "vietnamese": "U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB",
24
+ );
15
25
 
16
- @font-face {
17
- font-family: "Material Symbols Rounded";
18
- font-style: normal;
19
- font-weight: 100 700;
20
- font-display: block;
21
- src: url("#{$expressive-font-path}/material-symbols-rounded.woff2") format("woff2");
22
- }
26
+ // Noto Sans covers Roboto's subsets and adds Devanagari.
27
+ $_noto-sans-subsets: map.merge($_roboto-subsets, (
28
+ "devanagari": "U+0900-097F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF,U+11B00-11B09",
29
+ ));
23
30
 
24
- @font-face {
25
- font-family: "Material Symbols Sharp";
26
- font-style: normal;
27
- font-weight: 100 700;
28
- font-display: block;
29
- src: url("#{$expressive-font-path}/material-symbols-sharp.woff2") format("woff2");
30
- }
31
+ $_noto-sans-arabic-subsets: (
32
+ "arabic": "U+0600-06FF,U+0750-077F,U+0870-088E,U+0890-0891,U+0897-08E1,U+08E3-08FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC,U+102E0-102FB,U+10E60-10E7E,U+10EC2-10EC4,U+10EFC-10EFF,U+1EE00-1EEFF",
33
+ );
31
34
 
32
- @font-face {
33
- font-family: "Roboto";
34
- font-style: normal;
35
- font-weight: 400;
36
- font-display: swap;
37
- src: url("#{$expressive-font-path}/roboto-latin-400.woff2") format("woff2");
38
- }
35
+ $_noto-sans-hebrew-subsets: (
36
+ "hebrew": "U+0307-0308,U+0590-05FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F",
37
+ );
39
38
 
40
- @font-face {
41
- font-family: "Roboto";
42
- font-style: normal;
43
- font-weight: 500;
44
- font-display: swap;
45
- src: url("#{$expressive-font-path}/roboto-latin-500.woff2") format("woff2");
46
- }
39
+ $_noto-sans-thai-subsets: (
40
+ "thai": "U+02D7,U+0303,U+0331,U+0E01-0E5B,U+200C-200D,U+25CC",
41
+ );
47
42
 
48
- @font-face {
49
- font-family: "Noto Sans";
50
- font-style: normal;
51
- font-weight: 400;
52
- font-display: swap;
53
- src: url("#{$expressive-font-path}/noto-sans-latin-400.woff2") format("woff2");
43
+ @if $expressive-include-fonts {
44
+ @each $style in "Outlined", "Rounded", "Sharp" {
45
+ @font-face {
46
+ font-family: "Material Symbols #{$style}";
47
+ font-style: normal;
48
+ font-weight: 100 700;
49
+ font-display: block;
50
+ src: url("#{$expressive-font-path}/material-symbols-#{string.to-lower-case($style)}.woff2") format("woff2");
51
+ }
54
52
  }
55
53
 
56
- @font-face {
57
- font-family: "Noto Sans";
58
- font-style: normal;
59
- font-weight: 500;
60
- font-display: swap;
61
- src: url("#{$expressive-font-path}/noto-sans-latin-500.woff2") format("woff2");
54
+ // One face per subset and weight. unicode-range lets the browser fetch
55
+ // only the subsets the page's text uses, and 700 only when it is rendered.
56
+ @each $file, $family, $subsets in
57
+ ("roboto", "Roboto", $_roboto-subsets),
58
+ ("noto-sans", "Noto Sans", $_noto-sans-subsets),
59
+ ("noto-sans-arabic", "Noto Sans Arabic", $_noto-sans-arabic-subsets),
60
+ ("noto-sans-hebrew", "Noto Sans Hebrew", $_noto-sans-hebrew-subsets),
61
+ ("noto-sans-thai", "Noto Sans Thai", $_noto-sans-thai-subsets)
62
+ {
63
+ @each $subset, $range in $subsets {
64
+ @each $weight in (400, 500, 700) {
65
+ @font-face {
66
+ font-family: $family;
67
+ font-style: normal;
68
+ font-weight: $weight;
69
+ font-display: swap;
70
+ src: url("#{$expressive-font-path}/#{$file}-#{$subset}-#{$weight}.woff2") format("woff2");
71
+ unicode-range: string.unquote($range);
72
+ }
73
+ }
74
+ }
62
75
  }
63
76
  }
@@ -1,11 +1,15 @@
1
1
  @use "../abstracts" as *;
2
2
 
3
- // Element-level defaults only: box-sizing, links, blockquotes, icons, tables.
3
+ // Element-level defaults only: box-sizing, links, blockquotes, tables, meters.
4
4
  //
5
5
  // Helper classes belong in utilities/, and anything that serves a single widget
6
6
  // belongs in that widget's partial - nothing here should name a component.
7
7
 
8
- html {
8
+ // Each document anchor pairs with :host so a shadow-only load (see
9
+ // src/sass/README.md, "Shadow roots") inherits the same defaults. The page
10
+ // background stays on body: on :host it would paint the host element.
11
+ html,
12
+ :host {
9
13
  box-sizing: border-box;
10
14
  }
11
15
 
@@ -15,7 +19,11 @@ html {
15
19
 
16
20
  body {
17
21
  background-color: var(--md-sys-color-surface);
18
- color: var(--md-sys-color-on-background);
22
+ }
23
+
24
+ body,
25
+ :host {
26
+ color: $text-color;
19
27
  }
20
28
 
21
29
  button,
@@ -32,18 +40,18 @@ a {
32
40
  -webkit-tap-highlight-color: transparent; // Gets rid of tap active state
33
41
  }
34
42
 
35
- // Blockquote
36
- blockquote { margin: 20px 0; padding-left: 1.5rem; border-left: 5px solid var(--md-sys-color-primary); }
37
-
38
- // <i> as an element - italics. The icon modifiers (.left, .right, .tiny ..)
39
- // used to live here, keyed on `i`, which silently tied them to one element:
40
- // writing an icon as the canonical <span class="material-symbols"> dropped
41
- // them. They now hang off the icon class list in components/_icons-material-design,
42
- // where the size modifiers already were, so they follow the class instead.
43
- i {
44
- line-height: inherit;
43
+ // A link inside running text needs a cue besides its color (WCAG 1.4.1), so
44
+ // it keeps the underline. A link with a class is a component or a deliberate
45
+ // style and stays bare; so does every link outside these text containers,
46
+ // which is where navigation lists, menus and tabs put theirs.
47
+ :where(p, dd, blockquote, figcaption, td) a:not([class]) {
48
+ text-decoration: underline;
49
+ text-underline-offset: 0.15em;
45
50
  }
46
51
 
52
+ // Blockquote
53
+ blockquote { margin: 20px 0; padding-inline-start: 1.5rem; border-inline-start: 5px solid var(--md-sys-color-primary); }
54
+
47
55
  // Tables
48
56
  table, th, td {
49
57
  border: none;
@@ -60,15 +68,15 @@ table {
60
68
  border-bottom: none;
61
69
  }
62
70
  tbody > tr:nth-child(odd) {
63
- background-color: rgba(0, 0, 0, 0.08);
71
+ background-color: var(--md-sys-color-surface-container-high);
64
72
  }
65
73
  }
66
74
 
67
75
  &.highlight > tbody > tr {
68
- transition: background-color .25s ease;
76
+ transition: background-color var(--md-sys-motion-duration-medium1) ease;
69
77
 
70
78
  &:hover {
71
- background-color: rgba(0, 0, 0, 0.04);
79
+ background-color: state-layer(var(--md-sys-color-on-surface), "hover");
72
80
  }
73
81
  }
74
82
 
@@ -89,10 +97,8 @@ tr {
89
97
 
90
98
  td, th {
91
99
  padding: 15px 5px;
92
- display: table-cell;
93
- text-align: left;
100
+ text-align: start;
94
101
  vertical-align: middle;
95
- border-radius: 0;
96
102
  }
97
103
 
98
104
  // Responsive Table
@@ -112,14 +118,15 @@ td, th {
112
118
  }
113
119
  thead {
114
120
  display: block;
115
- float: left;
116
- /* sort out borders */
121
+ float: inline-start;
122
+ // sort out borders
117
123
  border: 0;
118
- border-right: 1px solid var(--md-sys-color-outline-variant);
124
+ border-inline-end: 1px solid var(--md-sys-color-outline-variant);
119
125
 
120
126
  tr {
121
127
  display: block;
122
- padding: 0 10px 0 0;
128
+ padding-block: 0;
129
+ padding-inline: 0 10px;
123
130
 
124
131
  th::before {
125
132
  content: "\00a0";
@@ -140,7 +147,7 @@ td, th {
140
147
  }
141
148
  th {
142
149
  display: block;
143
- text-align: right;
150
+ text-align: end;
144
151
  }
145
152
  td {
146
153
  display: block;
@@ -152,3 +159,76 @@ td, th {
152
159
  }
153
160
  }
154
161
  }
162
+
163
+ // Meter: a measurement within a known range, such as storage used or password
164
+ // strength, where <progress> is progress toward completion. The fill follows
165
+ // the native low/high/optimum regions: primary in the optimum region, tertiary
166
+ // one region away, error two away. Each engine's pseudo-element sits in its
167
+ // own rule, because an engine drops a whole selector list naming one it does
168
+ // not know.
169
+ meter {
170
+ --md-comp-meter-track: var(--md-sys-color-secondary-container);
171
+ --md-comp-meter-optimum: var(--md-sys-color-primary);
172
+ --md-comp-meter-suboptimum: var(--md-sys-color-tertiary);
173
+ --md-comp-meter-even-less-good: var(--md-sys-color-error);
174
+ --md-comp-meter-thickness: 8px;
175
+ --md-comp-meter-shape: var(--md-sys-shape-corner-extra-small);
176
+
177
+ width: 100%;
178
+ height: var(--md-comp-meter-thickness);
179
+ border: 0;
180
+ border-radius: var(--md-comp-meter-shape);
181
+ background: var(--md-comp-meter-track);
182
+ vertical-align: middle;
183
+ appearance: none;
184
+
185
+ // Chromium puts the bar in the middle row of a 1fr 2fr 1fr grid, which
186
+ // halves it; spanning every row gives it the meter's full height.
187
+ &::-webkit-meter-bar {
188
+ grid-row: 1 / -1;
189
+ height: 100%;
190
+ border: 0;
191
+ border-radius: var(--md-comp-meter-shape);
192
+ background: var(--md-comp-meter-track);
193
+ }
194
+
195
+ &::-webkit-meter-optimum-value {
196
+ border-radius: var(--md-comp-meter-shape);
197
+ background: var(--md-comp-meter-optimum);
198
+ }
199
+
200
+ &::-webkit-meter-suboptimum-value {
201
+ border-radius: var(--md-comp-meter-shape);
202
+ background: var(--md-comp-meter-suboptimum);
203
+ }
204
+
205
+ &::-webkit-meter-even-less-good-value {
206
+ border-radius: var(--md-comp-meter-shape);
207
+ background: var(--md-comp-meter-even-less-good);
208
+ }
209
+
210
+ &::-moz-meter-bar {
211
+ border-radius: var(--md-comp-meter-shape);
212
+ background: var(--md-comp-meter-optimum);
213
+ }
214
+
215
+ &:-moz-meter-sub-optimum::-moz-meter-bar {
216
+ background: var(--md-comp-meter-suboptimum);
217
+ }
218
+
219
+ &:-moz-meter-sub-sub-optimum::-moz-meter-bar {
220
+ background: var(--md-comp-meter-even-less-good);
221
+ }
222
+
223
+ // Forced colors would repaint track and fill as the same Canvas.
224
+ @media (forced-colors: active) {
225
+ --md-comp-meter-track: Canvas;
226
+ --md-comp-meter-optimum: CanvasText;
227
+ --md-comp-meter-suboptimum: CanvasText;
228
+ --md-comp-meter-even-less-good: CanvasText;
229
+
230
+ forced-color-adjust: none;
231
+ outline: 1px solid CanvasText;
232
+ outline-offset: 1px;
233
+ }
234
+ }
@@ -4,3 +4,5 @@
4
4
  @forward "global"; // element defaults: links, blockquotes, tables
5
5
  @forward "typography";
6
6
  @forward "grid"; // .container, .row, .s1–.s12 … .xxl1–.xxl12
7
+ @forward "prose"; // .prose: long-form content written as bare HTML
8
+ @forward "print"; // paper defaults: light scheme, link targets, page breaks