@expressivecss/expressive 0.14.1 → 0.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (603) hide show
  1. package/CHANGELOG.md +1589 -1
  2. package/README.md +9 -8
  3. package/dist/css/expressive.css +19304 -12021
  4. package/dist/css/expressive.css.map +1 -1
  5. package/dist/css/expressive.min.css +1 -1
  6. package/dist/css/expressive.min.css.map +1 -1
  7. package/dist/fonts/LICENSE-noto-sans-arabic +93 -0
  8. package/dist/fonts/LICENSE-noto-sans-hebrew +93 -0
  9. package/dist/fonts/LICENSE-noto-sans-thai +93 -0
  10. package/dist/fonts/material-symbols-outlined.woff2 +0 -0
  11. package/dist/fonts/material-symbols-rounded.woff2 +0 -0
  12. package/dist/fonts/material-symbols-sharp.woff2 +0 -0
  13. package/dist/fonts/noto-sans-arabic-arabic-400.woff2 +0 -0
  14. package/dist/fonts/noto-sans-arabic-arabic-500.woff2 +0 -0
  15. package/dist/fonts/noto-sans-arabic-arabic-700.woff2 +0 -0
  16. package/dist/fonts/noto-sans-cyrillic-400.woff2 +0 -0
  17. package/dist/fonts/noto-sans-cyrillic-500.woff2 +0 -0
  18. package/dist/fonts/noto-sans-cyrillic-700.woff2 +0 -0
  19. package/dist/fonts/noto-sans-cyrillic-ext-400.woff2 +0 -0
  20. package/dist/fonts/noto-sans-cyrillic-ext-500.woff2 +0 -0
  21. package/dist/fonts/noto-sans-cyrillic-ext-700.woff2 +0 -0
  22. package/dist/fonts/noto-sans-devanagari-400.woff2 +0 -0
  23. package/dist/fonts/noto-sans-devanagari-500.woff2 +0 -0
  24. package/dist/fonts/noto-sans-devanagari-700.woff2 +0 -0
  25. package/dist/fonts/noto-sans-greek-400.woff2 +0 -0
  26. package/dist/fonts/noto-sans-greek-500.woff2 +0 -0
  27. package/dist/fonts/noto-sans-greek-700.woff2 +0 -0
  28. package/dist/fonts/noto-sans-greek-ext-400.woff2 +0 -0
  29. package/dist/fonts/noto-sans-greek-ext-500.woff2 +0 -0
  30. package/dist/fonts/noto-sans-greek-ext-700.woff2 +0 -0
  31. package/dist/fonts/noto-sans-hebrew-hebrew-400.woff2 +0 -0
  32. package/dist/fonts/noto-sans-hebrew-hebrew-500.woff2 +0 -0
  33. package/dist/fonts/noto-sans-hebrew-hebrew-700.woff2 +0 -0
  34. package/dist/fonts/noto-sans-latin-700.woff2 +0 -0
  35. package/dist/fonts/noto-sans-latin-ext-400.woff2 +0 -0
  36. package/dist/fonts/noto-sans-latin-ext-500.woff2 +0 -0
  37. package/dist/fonts/noto-sans-latin-ext-700.woff2 +0 -0
  38. package/dist/fonts/noto-sans-thai-thai-400.woff2 +0 -0
  39. package/dist/fonts/noto-sans-thai-thai-500.woff2 +0 -0
  40. package/dist/fonts/noto-sans-thai-thai-700.woff2 +0 -0
  41. package/dist/fonts/noto-sans-vietnamese-400.woff2 +0 -0
  42. package/dist/fonts/noto-sans-vietnamese-500.woff2 +0 -0
  43. package/dist/fonts/noto-sans-vietnamese-700.woff2 +0 -0
  44. package/dist/fonts/roboto-cyrillic-400.woff2 +0 -0
  45. package/dist/fonts/roboto-cyrillic-500.woff2 +0 -0
  46. package/dist/fonts/roboto-cyrillic-700.woff2 +0 -0
  47. package/dist/fonts/roboto-cyrillic-ext-400.woff2 +0 -0
  48. package/dist/fonts/roboto-cyrillic-ext-500.woff2 +0 -0
  49. package/dist/fonts/roboto-cyrillic-ext-700.woff2 +0 -0
  50. package/dist/fonts/roboto-greek-400.woff2 +0 -0
  51. package/dist/fonts/roboto-greek-500.woff2 +0 -0
  52. package/dist/fonts/roboto-greek-700.woff2 +0 -0
  53. package/dist/fonts/roboto-greek-ext-400.woff2 +0 -0
  54. package/dist/fonts/roboto-greek-ext-500.woff2 +0 -0
  55. package/dist/fonts/roboto-greek-ext-700.woff2 +0 -0
  56. package/dist/fonts/roboto-latin-700.woff2 +0 -0
  57. package/dist/fonts/roboto-latin-ext-400.woff2 +0 -0
  58. package/dist/fonts/roboto-latin-ext-500.woff2 +0 -0
  59. package/dist/fonts/roboto-latin-ext-700.woff2 +0 -0
  60. package/dist/fonts/roboto-vietnamese-400.woff2 +0 -0
  61. package/dist/fonts/roboto-vietnamese-500.woff2 +0 -0
  62. package/dist/fonts/roboto-vietnamese-700.woff2 +0 -0
  63. package/dist/js/chunks/chunk-2CS6TITK.mjs +219 -0
  64. package/dist/js/chunks/chunk-2CS6TITK.mjs.map +7 -0
  65. package/dist/js/chunks/chunk-2RLBDFH4.mjs +108 -0
  66. package/dist/js/chunks/chunk-2RLBDFH4.mjs.map +7 -0
  67. package/dist/js/chunks/chunk-3L3QIYLC.mjs +85 -0
  68. package/dist/js/chunks/chunk-3L3QIYLC.mjs.map +7 -0
  69. package/dist/js/chunks/chunk-4EWGD4V2.mjs +75 -0
  70. package/dist/js/chunks/chunk-4EWGD4V2.mjs.map +7 -0
  71. package/dist/js/chunks/chunk-4IKVPCSU.mjs +7 -0
  72. package/dist/js/chunks/chunk-4IKVPCSU.mjs.map +7 -0
  73. package/dist/js/chunks/chunk-4PIXLDNJ.mjs +127 -0
  74. package/dist/js/chunks/chunk-4PIXLDNJ.mjs.map +7 -0
  75. package/dist/js/chunks/{chunk-A7ALMYUR.mjs → chunk-4QUCNFSD.mjs} +68 -125
  76. package/dist/js/chunks/chunk-4QUCNFSD.mjs.map +7 -0
  77. package/dist/js/chunks/{chunk-4TKTLGEM.mjs → chunk-4TRZ2AER.mjs} +35 -41
  78. package/dist/js/chunks/chunk-4TRZ2AER.mjs.map +7 -0
  79. package/dist/js/chunks/{chunk-BG6ZRB5H.mjs → chunk-5KIHWJI2.mjs} +40 -26
  80. package/dist/js/chunks/chunk-5KIHWJI2.mjs.map +7 -0
  81. package/dist/js/chunks/{chunk-YDCS5S3J.mjs → chunk-67ZPPKXS.mjs} +20 -33
  82. package/dist/js/chunks/chunk-67ZPPKXS.mjs.map +7 -0
  83. package/dist/js/chunks/{chunk-3DHK5CZU.mjs → chunk-6FSEUFVW.mjs} +40 -29
  84. package/dist/js/chunks/chunk-6FSEUFVW.mjs.map +7 -0
  85. package/dist/js/chunks/chunk-752ADW4M.mjs +225 -0
  86. package/dist/js/chunks/chunk-752ADW4M.mjs.map +7 -0
  87. package/dist/js/chunks/{chunk-GVGT6MIU.mjs → chunk-75E5EDJF.mjs} +3 -11
  88. package/dist/js/chunks/chunk-75E5EDJF.mjs.map +7 -0
  89. package/dist/js/chunks/{chunk-TBM3FT7G.mjs → chunk-7NLUI3RR.mjs} +148 -78
  90. package/dist/js/chunks/chunk-7NLUI3RR.mjs.map +7 -0
  91. package/dist/js/chunks/chunk-7W7TV6NY.mjs +108 -0
  92. package/dist/js/chunks/chunk-7W7TV6NY.mjs.map +7 -0
  93. package/dist/js/chunks/chunk-7YQBHTK3.mjs +225 -0
  94. package/dist/js/chunks/chunk-7YQBHTK3.mjs.map +7 -0
  95. package/dist/js/chunks/chunk-7YZ5CN3V.mjs +33 -0
  96. package/dist/js/chunks/chunk-7YZ5CN3V.mjs.map +7 -0
  97. package/dist/js/chunks/chunk-AI73GJKG.mjs +28 -0
  98. package/dist/js/chunks/chunk-AI73GJKG.mjs.map +7 -0
  99. package/dist/js/chunks/{chunk-NS2UMNZV.mjs → chunk-ANKFWNWT.mjs} +21 -45
  100. package/dist/js/chunks/chunk-ANKFWNWT.mjs.map +7 -0
  101. package/dist/js/chunks/{chunk-GIW4K4SE.mjs → chunk-B7DQFHA5.mjs} +37 -53
  102. package/dist/js/chunks/chunk-B7DQFHA5.mjs.map +7 -0
  103. package/dist/js/chunks/chunk-BIGU5RCJ.mjs +153 -0
  104. package/dist/js/chunks/chunk-BIGU5RCJ.mjs.map +7 -0
  105. package/dist/js/chunks/{chunk-GUB3TNO2.mjs → chunk-BPF3I2MN.mjs} +109 -27
  106. package/dist/js/chunks/chunk-BPF3I2MN.mjs.map +7 -0
  107. package/dist/js/chunks/chunk-CMGXGYUC.mjs +74 -0
  108. package/dist/js/chunks/chunk-CMGXGYUC.mjs.map +7 -0
  109. package/dist/js/chunks/{chunk-JIDMQGK6.mjs → chunk-CSYWKEK3.mjs} +322 -223
  110. package/dist/js/chunks/chunk-CSYWKEK3.mjs.map +7 -0
  111. package/dist/js/chunks/chunk-CZSQHXEV.mjs +227 -0
  112. package/dist/js/chunks/chunk-CZSQHXEV.mjs.map +7 -0
  113. package/dist/js/chunks/chunk-DZYVU75J.mjs +121 -0
  114. package/dist/js/chunks/chunk-DZYVU75J.mjs.map +7 -0
  115. package/dist/js/chunks/{chunk-QDAL4IYN.mjs → chunk-EC26RU2D.mjs} +11 -29
  116. package/dist/js/chunks/chunk-EC26RU2D.mjs.map +7 -0
  117. package/dist/js/chunks/{chunk-3GVFZ4XO.mjs → chunk-EVCVFEV3.mjs} +238 -152
  118. package/dist/js/chunks/chunk-EVCVFEV3.mjs.map +7 -0
  119. package/dist/js/chunks/chunk-FCNF4GRJ.mjs +445 -0
  120. package/dist/js/chunks/chunk-FCNF4GRJ.mjs.map +7 -0
  121. package/dist/js/chunks/chunk-GCWWEZKO.mjs +342 -0
  122. package/dist/js/chunks/chunk-GCWWEZKO.mjs.map +7 -0
  123. package/dist/js/chunks/chunk-GNRSYMVH.mjs +1 -0
  124. package/dist/js/chunks/chunk-GVZQH2H5.mjs +54 -0
  125. package/dist/js/chunks/chunk-GVZQH2H5.mjs.map +7 -0
  126. package/dist/js/chunks/chunk-GWZ76SR4.mjs +435 -0
  127. package/dist/js/chunks/chunk-GWZ76SR4.mjs.map +7 -0
  128. package/dist/js/chunks/{chunk-ZAS25YFD.mjs → chunk-ILDRRG7T.mjs} +21 -23
  129. package/dist/js/chunks/chunk-ILDRRG7T.mjs.map +7 -0
  130. package/dist/js/chunks/chunk-INLZWHLY.mjs +80 -0
  131. package/dist/js/chunks/chunk-INLZWHLY.mjs.map +7 -0
  132. package/dist/js/chunks/chunk-JUKBBN6P.mjs +175 -0
  133. package/dist/js/chunks/chunk-JUKBBN6P.mjs.map +7 -0
  134. package/dist/js/chunks/chunk-KYIEG4U3.mjs +730 -0
  135. package/dist/js/chunks/chunk-KYIEG4U3.mjs.map +7 -0
  136. package/dist/js/chunks/{chunk-KHV6DZXX.mjs → chunk-KZPSAXIU.mjs} +156 -46
  137. package/dist/js/chunks/chunk-KZPSAXIU.mjs.map +7 -0
  138. package/dist/js/chunks/chunk-LDXCC2L3.mjs +438 -0
  139. package/dist/js/chunks/chunk-LDXCC2L3.mjs.map +7 -0
  140. package/dist/js/chunks/chunk-NAC72P7R.mjs +137 -0
  141. package/dist/js/chunks/chunk-NAC72P7R.mjs.map +7 -0
  142. package/dist/js/chunks/chunk-NBJAUGPP.mjs +244 -0
  143. package/dist/js/chunks/chunk-NBJAUGPP.mjs.map +7 -0
  144. package/dist/js/chunks/chunk-NNHVANQA.mjs +113 -0
  145. package/dist/js/chunks/chunk-NNHVANQA.mjs.map +7 -0
  146. package/dist/js/chunks/chunk-NVQ5EHCU.mjs +376 -0
  147. package/dist/js/chunks/chunk-NVQ5EHCU.mjs.map +7 -0
  148. package/dist/js/chunks/{chunk-Z2NRKI7R.mjs → chunk-OP43LLIC.mjs} +44 -73
  149. package/dist/js/chunks/chunk-OP43LLIC.mjs.map +7 -0
  150. package/dist/js/chunks/chunk-OUCHKSAW.mjs +63 -0
  151. package/dist/js/chunks/chunk-OUCHKSAW.mjs.map +7 -0
  152. package/dist/js/chunks/{chunk-PM655FXL.mjs → chunk-OYNUDOHR.mjs} +20 -48
  153. package/dist/js/chunks/chunk-OYNUDOHR.mjs.map +7 -0
  154. package/dist/js/chunks/{chunk-UEZUJQ66.mjs → chunk-P6DRQ6KS.mjs} +36 -31
  155. package/dist/js/chunks/chunk-P6DRQ6KS.mjs.map +7 -0
  156. package/dist/js/chunks/chunk-PA7NU5AK.mjs +99 -0
  157. package/dist/js/chunks/chunk-PA7NU5AK.mjs.map +7 -0
  158. package/dist/js/chunks/chunk-QACZ6TUP.mjs +224 -0
  159. package/dist/js/chunks/chunk-QACZ6TUP.mjs.map +7 -0
  160. package/dist/js/chunks/{chunk-5HQSGDZ5.mjs → chunk-QXKWVHBD.mjs} +286 -203
  161. package/dist/js/chunks/chunk-QXKWVHBD.mjs.map +7 -0
  162. package/dist/js/chunks/{chunk-DAIU5SLG.mjs → chunk-ROH2HDB4.mjs} +7 -6
  163. package/dist/js/chunks/chunk-ROH2HDB4.mjs.map +7 -0
  164. package/dist/js/chunks/chunk-S23RJ3XY.mjs +86 -0
  165. package/dist/js/chunks/chunk-S23RJ3XY.mjs.map +7 -0
  166. package/dist/js/chunks/{chunk-FS7XY3HT.mjs → chunk-SPPHF7YZ.mjs} +36 -29
  167. package/dist/js/chunks/chunk-SPPHF7YZ.mjs.map +7 -0
  168. package/dist/js/chunks/chunk-T3BNSRP3.mjs +152 -0
  169. package/dist/js/chunks/chunk-T3BNSRP3.mjs.map +7 -0
  170. package/dist/js/chunks/chunk-TFABTUAZ.mjs +108 -0
  171. package/dist/js/chunks/chunk-TFABTUAZ.mjs.map +7 -0
  172. package/dist/js/chunks/chunk-U4B3VHFS.mjs +507 -0
  173. package/dist/js/chunks/chunk-U4B3VHFS.mjs.map +7 -0
  174. package/dist/js/chunks/chunk-UGJHCHXG.mjs +341 -0
  175. package/dist/js/chunks/chunk-UGJHCHXG.mjs.map +7 -0
  176. package/dist/js/chunks/chunk-VFV75DHF.mjs +70 -0
  177. package/dist/js/chunks/chunk-VFV75DHF.mjs.map +7 -0
  178. package/dist/js/chunks/{chunk-4HZMB7LI.mjs → chunk-VGY4M57S.mjs} +281 -135
  179. package/dist/js/chunks/chunk-VGY4M57S.mjs.map +7 -0
  180. package/dist/js/chunks/chunk-VH4BMAZS.mjs +167 -0
  181. package/dist/js/chunks/chunk-VH4BMAZS.mjs.map +7 -0
  182. package/dist/js/chunks/chunk-VJVQIXHC.mjs +123 -0
  183. package/dist/js/chunks/chunk-VJVQIXHC.mjs.map +7 -0
  184. package/dist/js/chunks/{chunk-S3XDFGSZ.mjs → chunk-VMY55K2X.mjs} +92 -141
  185. package/dist/js/chunks/chunk-VMY55K2X.mjs.map +7 -0
  186. package/dist/js/chunks/{chunk-UEXCIMJZ.mjs → chunk-VR3L2WN5.mjs} +11 -17
  187. package/dist/js/chunks/chunk-VR3L2WN5.mjs.map +7 -0
  188. package/dist/js/chunks/chunk-W6FAL3TI.mjs +38 -0
  189. package/dist/js/chunks/chunk-W6FAL3TI.mjs.map +7 -0
  190. package/dist/js/chunks/chunk-WU7XJ4RR.mjs +450 -0
  191. package/dist/js/chunks/chunk-WU7XJ4RR.mjs.map +7 -0
  192. package/dist/js/chunks/chunk-X7SDA2J5.mjs +116 -0
  193. package/dist/js/chunks/chunk-X7SDA2J5.mjs.map +7 -0
  194. package/dist/js/chunks/chunk-Y6H2X7ZC.mjs +209 -0
  195. package/dist/js/chunks/chunk-Y6H2X7ZC.mjs.map +7 -0
  196. package/dist/js/chunks/chunk-Y6TLRA3U.mjs +129 -0
  197. package/dist/js/chunks/chunk-Y6TLRA3U.mjs.map +7 -0
  198. package/dist/js/chunks/chunk-Z4GICXR2.mjs +190 -0
  199. package/dist/js/chunks/chunk-Z4GICXR2.mjs.map +7 -0
  200. package/dist/js/chunks/chunk-Z4OARDZ7.mjs +442 -0
  201. package/dist/js/chunks/chunk-Z4OARDZ7.mjs.map +7 -0
  202. package/dist/js/chunks/{chunk-MZ6Z24BX.mjs → chunk-ZJNLAGY5.mjs} +19 -34
  203. package/dist/js/chunks/chunk-ZJNLAGY5.mjs.map +7 -0
  204. package/dist/js/chunks/chunk-ZKWUWBUB.mjs +81 -0
  205. package/dist/js/chunks/chunk-ZKWUWBUB.mjs.map +7 -0
  206. package/dist/js/chunks/chunk-ZM3XBHWV.mjs +746 -0
  207. package/dist/js/chunks/chunk-ZM3XBHWV.mjs.map +7 -0
  208. package/dist/js/chunks/chunk-ZO6ZLHFF.mjs +48 -0
  209. package/dist/js/chunks/chunk-ZO6ZLHFF.mjs.map +7 -0
  210. package/dist/js/chunks/chunk-ZVLOUDIJ.mjs +251 -0
  211. package/dist/js/chunks/chunk-ZVLOUDIJ.mjs.map +7 -0
  212. package/dist/js/expressive.cjs +10333 -4070
  213. package/dist/js/expressive.cjs.map +4 -4
  214. package/dist/js/expressive.js +10333 -4070
  215. package/dist/js/expressive.js.map +4 -4
  216. package/dist/js/expressive.min.js +23 -25
  217. package/dist/js/expressive.min.js.map +4 -4
  218. package/dist/js/expressive.mjs +184 -69
  219. package/dist/js/expressive.mjs.map +2 -2
  220. package/dist/js/internal/behaviors/bottomSheets.mjs +4 -3
  221. package/dist/js/internal/behaviors/copy.mjs +9 -0
  222. package/dist/js/internal/behaviors/copy.mjs.map +7 -0
  223. package/dist/js/internal/behaviors/dataTables.mjs +10 -0
  224. package/dist/js/internal/behaviors/dataTables.mjs.map +7 -0
  225. package/dist/js/internal/behaviors/dialogs.mjs +2 -2
  226. package/dist/js/internal/behaviors/forms.mjs +2 -2
  227. package/dist/js/internal/behaviors/imageCompare.mjs +8 -0
  228. package/dist/js/internal/behaviors/imageCompare.mjs.map +7 -0
  229. package/dist/js/internal/behaviors/lists.mjs +8 -0
  230. package/dist/js/internal/behaviors/lists.mjs.map +7 -0
  231. package/dist/js/internal/behaviors/paneResize.mjs +8 -0
  232. package/dist/js/internal/behaviors/paneResize.mjs.map +7 -0
  233. package/dist/js/internal/behaviors/sheetDrag.mjs +7 -2
  234. package/dist/js/internal/behaviors/sideSheets.mjs +4 -3
  235. package/dist/js/internal/behaviors/sortable.mjs +8 -0
  236. package/dist/js/internal/behaviors/sortable.mjs.map +7 -0
  237. package/dist/js/internal/behaviors/theme.mjs +8 -0
  238. package/dist/js/internal/behaviors/theme.mjs.map +7 -0
  239. package/dist/js/internal/behaviors/tour.mjs +8 -0
  240. package/dist/js/internal/behaviors/tour.mjs.map +7 -0
  241. package/dist/js/internal/behaviors/transferList.mjs +8 -0
  242. package/dist/js/internal/behaviors/transferList.mjs.map +7 -0
  243. package/dist/js/internal/components/appBar.mjs +3 -2
  244. package/dist/js/internal/components/autocomplete.mjs +4 -4
  245. package/dist/js/internal/components/backToTop.mjs +9 -0
  246. package/dist/js/internal/components/backToTop.mjs.map +7 -0
  247. package/dist/js/internal/components/barChart.mjs +5 -4
  248. package/dist/js/internal/components/buttonGroup.mjs +3 -2
  249. package/dist/js/internal/components/buttons.mjs +3 -3
  250. package/dist/js/internal/components/cards.mjs +3 -3
  251. package/dist/js/internal/components/carousel.mjs +3 -3
  252. package/dist/js/internal/components/cascader.mjs +10 -0
  253. package/dist/js/internal/components/cascader.mjs.map +7 -0
  254. package/dist/js/internal/components/characterCounter.mjs +3 -2
  255. package/dist/js/internal/components/chips.mjs +6 -5
  256. package/dist/js/internal/components/colorPicker.mjs +9 -0
  257. package/dist/js/internal/components/colorPicker.mjs.map +7 -0
  258. package/dist/js/internal/components/columnChart.mjs +4 -3
  259. package/dist/js/internal/components/commandPalette.mjs +3 -3
  260. package/dist/js/internal/components/confetti.mjs +3 -2
  261. package/dist/js/internal/components/currencyInput.mjs +9 -0
  262. package/dist/js/internal/components/currencyInput.mjs.map +7 -0
  263. package/dist/js/internal/components/datepicker.mjs +11 -8
  264. package/dist/js/internal/components/expandingCard.mjs +3 -3
  265. package/dist/js/internal/components/funnelChart.mjs +10 -0
  266. package/dist/js/internal/components/funnelChart.mjs.map +7 -0
  267. package/dist/js/internal/components/heatmapChart.mjs +4 -3
  268. package/dist/js/internal/components/hoverCard.mjs +9 -0
  269. package/dist/js/internal/components/hoverCard.mjs.map +7 -0
  270. package/dist/js/internal/components/index.mjs +133 -64
  271. package/dist/js/internal/components/inputMask.mjs +9 -0
  272. package/dist/js/internal/components/inputMask.mjs.map +7 -0
  273. package/dist/js/internal/components/keypad.mjs +9 -0
  274. package/dist/js/internal/components/keypad.mjs.map +7 -0
  275. package/dist/js/internal/components/lightbox.mjs +3 -3
  276. package/dist/js/internal/components/lineChart.mjs +29 -4
  277. package/dist/js/internal/components/loadingOverlay.mjs +9 -0
  278. package/dist/js/internal/components/loadingOverlay.mjs.map +7 -0
  279. package/dist/js/internal/components/mapView.mjs +3 -3
  280. package/dist/js/internal/components/menu.mjs +3 -3
  281. package/dist/js/internal/components/menubar.mjs +10 -0
  282. package/dist/js/internal/components/menubar.mjs.map +7 -0
  283. package/dist/js/internal/components/messageScroller.mjs +3 -3
  284. package/dist/js/internal/components/mixedChart.mjs +5 -4
  285. package/dist/js/internal/components/navigationRail.mjs +3 -2
  286. package/dist/js/internal/components/particles.mjs +3 -2
  287. package/dist/js/internal/components/pieChart.mjs +4 -3
  288. package/dist/js/internal/components/pullToRefresh.mjs +9 -0
  289. package/dist/js/internal/components/pullToRefresh.mjs.map +7 -0
  290. package/dist/js/internal/components/questionnaire.mjs +3 -3
  291. package/dist/js/internal/components/radarChart.mjs +4 -3
  292. package/dist/js/internal/components/radialChart.mjs +4 -3
  293. package/dist/js/internal/components/registry.mjs +59 -40
  294. package/dist/js/internal/components/richTextEditor.mjs +3 -3
  295. package/dist/js/internal/components/sankeyChart.mjs +10 -0
  296. package/dist/js/internal/components/sankeyChart.mjs.map +7 -0
  297. package/dist/js/internal/components/scatterChart.mjs +10 -0
  298. package/dist/js/internal/components/scatterChart.mjs.map +7 -0
  299. package/dist/js/internal/components/scrollspy.mjs +3 -2
  300. package/dist/js/internal/components/select.mjs +4 -4
  301. package/dist/js/internal/components/showMore.mjs +9 -0
  302. package/dist/js/internal/components/showMore.mjs.map +7 -0
  303. package/dist/js/internal/components/slider.mjs +3 -3
  304. package/dist/js/internal/components/snackbar.mjs +2 -2
  305. package/dist/js/internal/components/swipeActions.mjs +9 -0
  306. package/dist/js/internal/components/swipeActions.mjs.map +7 -0
  307. package/dist/js/internal/components/tabs.mjs +3 -4
  308. package/dist/js/internal/components/timepicker.mjs +5 -4
  309. package/dist/js/internal/components/tooltip.mjs +3 -3
  310. package/dist/js/internal/components/treeSelect.mjs +13 -0
  311. package/dist/js/internal/components/treeSelect.mjs.map +7 -0
  312. package/dist/js/internal/components/treemapChart.mjs +10 -0
  313. package/dist/js/internal/components/treemapChart.mjs.map +7 -0
  314. package/dist/js/internal/core/component.mjs +2 -1
  315. package/dist/js/internal/core/formControl.mjs +12 -0
  316. package/dist/js/internal/core/formControl.mjs.map +7 -0
  317. package/dist/js/internal/core/spring.mjs +11 -0
  318. package/dist/js/internal/core/spring.mjs.map +7 -0
  319. package/dist/js/internal/core/utils.mjs +11 -3
  320. package/dist/js/internal/plugins/dockedDisplayPlugin.mjs +2 -2
  321. package/dist/js/internal/plugins/modalDisplayPlugin.mjs +13 -0
  322. package/dist/js/internal/plugins/modalDisplayPlugin.mjs.map +7 -0
  323. package/dist/js/modular.mjs +175 -69
  324. package/dist/types/behaviors/bottomSheets.d.ts +19 -3
  325. package/dist/types/behaviors/copy.d.ts +18 -0
  326. package/dist/types/behaviors/dataTables.d.ts +129 -0
  327. package/dist/types/behaviors/dialogs.d.ts +27 -1
  328. package/dist/types/behaviors/forms.d.ts +68 -2
  329. package/dist/types/behaviors/imageCompare.d.ts +12 -0
  330. package/dist/types/behaviors/lists.d.ts +12 -0
  331. package/dist/types/behaviors/paneResize.d.ts +29 -0
  332. package/dist/types/behaviors/sheetDrag.d.ts +18 -0
  333. package/dist/types/behaviors/sideSheets.d.ts +1 -1
  334. package/dist/types/behaviors/sortable.d.ts +28 -0
  335. package/dist/types/behaviors/theme.d.ts +22 -0
  336. package/dist/types/behaviors/tour.d.ts +36 -0
  337. package/dist/types/behaviors/transferList.d.ts +51 -0
  338. package/dist/types/components/appBar.d.ts +5 -6
  339. package/dist/types/components/autocomplete.d.ts +92 -17
  340. package/dist/types/components/backToTop.d.ts +36 -0
  341. package/dist/types/components/barChart.d.ts +3 -6
  342. package/dist/types/components/buttonGroup.d.ts +2 -4
  343. package/dist/types/components/buttons.d.ts +5 -5
  344. package/dist/types/components/cards.d.ts +3 -16
  345. package/dist/types/components/carousel.d.ts +9 -15
  346. package/dist/types/components/cascader.d.ts +130 -0
  347. package/dist/types/components/characterCounter.d.ts +2 -15
  348. package/dist/types/components/chips.d.ts +65 -19
  349. package/dist/types/components/colorPicker.d.ts +42 -0
  350. package/dist/types/components/columnChart.d.ts +23 -10
  351. package/dist/types/components/commandPalette.d.ts +11 -16
  352. package/dist/types/components/confetti.d.ts +2 -4
  353. package/dist/types/components/currencyInput.d.ts +59 -0
  354. package/dist/types/components/datepicker.d.ts +59 -36
  355. package/dist/types/components/expandingCard.d.ts +6 -6
  356. package/dist/types/components/funnelChart.d.ts +38 -0
  357. package/dist/types/components/heatmapChart.d.ts +39 -8
  358. package/dist/types/components/hoverCard.d.ts +58 -0
  359. package/dist/types/components/index.d.ts +17 -1
  360. package/dist/types/components/inputMask.d.ts +30 -0
  361. package/dist/types/components/keypad.d.ts +66 -0
  362. package/dist/types/components/lightbox.d.ts +17 -25
  363. package/dist/types/components/lineChart.d.ts +176 -10
  364. package/dist/types/components/loadingOverlay.d.ts +42 -0
  365. package/dist/types/components/mapView.d.ts +26 -17
  366. package/dist/types/components/menu.d.ts +61 -22
  367. package/dist/types/components/menubar.d.ts +37 -0
  368. package/dist/types/components/messageScroller.d.ts +2 -14
  369. package/dist/types/components/mixedChart.d.ts +15 -6
  370. package/dist/types/components/navigationRail.d.ts +16 -5
  371. package/dist/types/components/particles.d.ts +8 -4
  372. package/dist/types/components/pieChart.d.ts +32 -7
  373. package/dist/types/components/pullToRefresh.d.ts +80 -0
  374. package/dist/types/components/questionnaire.d.ts +58 -16
  375. package/dist/types/components/radarChart.d.ts +10 -6
  376. package/dist/types/components/radialChart.d.ts +58 -8
  377. package/dist/types/components/registry.d.ts +77 -3
  378. package/dist/types/components/richTextEditor.d.ts +6 -14
  379. package/dist/types/components/sankeyChart.d.ts +72 -0
  380. package/dist/types/components/scatterChart.d.ts +102 -0
  381. package/dist/types/components/scrollspy.d.ts +3 -5
  382. package/dist/types/components/select.d.ts +43 -30
  383. package/dist/types/components/showMore.d.ts +51 -0
  384. package/dist/types/components/slider.d.ts +5 -15
  385. package/dist/types/components/snackbar.d.ts +62 -0
  386. package/dist/types/components/swipeActions.d.ts +81 -0
  387. package/dist/types/components/tabs.d.ts +93 -27
  388. package/dist/types/components/timepicker.d.ts +114 -20
  389. package/dist/types/components/tooltip.d.ts +56 -20
  390. package/dist/types/components/treeSelect.d.ts +106 -0
  391. package/dist/types/components/treemapChart.d.ts +56 -0
  392. package/dist/types/core/component.d.ts +43 -25
  393. package/dist/types/core/formControl.d.ts +21 -0
  394. package/dist/types/core/spring.d.ts +20 -0
  395. package/dist/types/core/utils.d.ts +85 -72
  396. package/dist/types/modular.d.ts +33 -1
  397. package/dist/types/plugins/dockedDisplayPlugin.d.ts +10 -7
  398. package/dist/types/plugins/modalDisplayPlugin.d.ts +32 -0
  399. package/package.json +10 -8
  400. package/src/sass/README.md +27 -18
  401. package/src/sass/abstracts/_breakpoints.scss +0 -1
  402. package/src/sass/abstracts/_elevation.scss +13 -7
  403. package/src/sass/abstracts/_index.scss +1 -0
  404. package/src/sass/abstracts/_mixins.scss +438 -92
  405. package/src/sass/abstracts/_spring.scss +63 -0
  406. package/src/sass/abstracts/_variables.scss +43 -15
  407. package/src/sass/base/_fonts.scss +61 -48
  408. package/src/sass/base/_global.scss +105 -34
  409. package/src/sass/base/_index.scss +3 -1
  410. package/src/sass/base/_normalize.scss +59 -114
  411. package/src/sass/base/_print.scss +21 -0
  412. package/src/sass/base/_prose.scss +68 -0
  413. package/src/sass/base/_typography.scss +9 -5
  414. package/src/sass/components/_accordion.scss +9 -16
  415. package/src/sass/components/_alert.scss +102 -0
  416. package/src/sass/components/_aura.scss +8 -3
  417. package/src/sass/components/_avatar.scss +3 -3
  418. package/src/sass/components/_back-to-top.scss +38 -0
  419. package/src/sass/components/_badges.scss +7 -13
  420. package/src/sass/components/_bar-chart.scss +41 -19
  421. package/src/sass/components/_bottom-sheet.scss +44 -16
  422. package/src/sass/components/_breadcrumb.scss +8 -1
  423. package/src/sass/components/_button-groups.scss +44 -89
  424. package/src/sass/components/_buttons.scss +156 -63
  425. package/src/sass/components/_calendar.scss +246 -0
  426. package/src/sass/components/_cards.scss +41 -68
  427. package/src/sass/components/_carousel.scss +43 -158
  428. package/src/sass/components/_cascader.scss +142 -0
  429. package/src/sass/components/_chips.scss +36 -52
  430. package/src/sass/components/_column-chart.scss +19 -12
  431. package/src/sass/components/_command-palette.scss +4 -7
  432. package/src/sass/components/_confetti.scss +0 -2
  433. package/src/sass/components/_countdown.scss +1 -1
  434. package/src/sass/components/_data-table.scss +162 -27
  435. package/src/sass/components/_datepicker.scss +57 -62
  436. package/src/sass/components/_description-list.scss +85 -0
  437. package/src/sass/components/_dialog.scss +42 -44
  438. package/src/sass/components/_docked-display.scss +1 -3
  439. package/src/sass/components/_drag-handle.scss +16 -20
  440. package/src/sass/components/_expanding-card.scss +20 -9
  441. package/src/sass/components/_fab-menu.scss +44 -32
  442. package/src/sass/components/_funnel-chart.scss +124 -0
  443. package/src/sass/components/_heatmap-chart.scss +113 -24
  444. package/src/sass/components/_icon-buttons.scss +7 -8
  445. package/src/sass/components/_icons-material-design.scss +2 -2
  446. package/src/sass/components/_image-compare.scss +108 -0
  447. package/src/sass/components/_index.scss +21 -0
  448. package/src/sass/components/_keypad.scss +182 -0
  449. package/src/sass/components/_kpi.scss +6 -11
  450. package/src/sass/components/_lightbox.scss +26 -20
  451. package/src/sass/components/_line-chart.scss +16 -2
  452. package/src/sass/components/_list.scss +59 -14
  453. package/src/sass/components/_loading-indicator.scss +1 -0
  454. package/src/sass/components/_loading-overlay.scss +105 -0
  455. package/src/sass/components/_map.scss +35 -13
  456. package/src/sass/components/_marquee.scss +3 -2
  457. package/src/sass/components/_mega-menu.scss +137 -0
  458. package/src/sass/components/_menu.scss +159 -182
  459. package/src/sass/components/_menubar.scss +59 -0
  460. package/src/sass/components/_message-scroller.scss +2 -2
  461. package/src/sass/components/_message.scss +3 -3
  462. package/src/sass/components/_mixed-chart.scss +37 -9
  463. package/src/sass/components/_modal-display.scss +21 -0
  464. package/src/sass/components/_navbar.scss +43 -65
  465. package/src/sass/components/_navigation-bar.scss +15 -77
  466. package/src/sass/components/_navigation-rail.scss +171 -121
  467. package/src/sass/components/_org-chart.scss +192 -0
  468. package/src/sass/components/_page-footer.scss +16 -13
  469. package/src/sass/components/_pagination.scss +6 -13
  470. package/src/sass/components/_panes.scss +33 -31
  471. package/src/sass/components/_particles.scss +0 -2
  472. package/src/sass/components/_pie-chart.scss +91 -11
  473. package/src/sass/components/_popover.scss +18 -5
  474. package/src/sass/components/_progress.scss +158 -35
  475. package/src/sass/components/_pull-to-refresh.scss +90 -0
  476. package/src/sass/components/_questionnaire.scss +74 -3
  477. package/src/sass/components/_radar-chart.scss +38 -10
  478. package/src/sass/components/_radial-chart.scss +113 -5
  479. package/src/sass/components/_rich-text-editor.scss +2 -2
  480. package/src/sass/components/_sankey-chart.scss +114 -0
  481. package/src/sass/components/_scatter-chart.scss +153 -0
  482. package/src/sass/components/_scrim.scss +0 -2
  483. package/src/sass/components/_scrollspy.scss +0 -2
  484. package/src/sass/components/_search.scss +26 -22
  485. package/src/sass/components/_show-more.scss +8 -0
  486. package/src/sass/components/_side-sheet.scss +23 -40
  487. package/src/sass/components/_skeleton.scss +2 -4
  488. package/src/sass/components/_snackbar.scss +27 -21
  489. package/src/sass/components/_split-button.scss +5 -5
  490. package/src/sass/components/_stat.scss +3 -8
  491. package/src/sass/components/_stepper.scss +1 -5
  492. package/src/sass/components/_swipe-actions.scss +71 -0
  493. package/src/sass/components/_tabs.scss +51 -32
  494. package/src/sass/components/_timeline.scss +12 -12
  495. package/src/sass/components/_timepicker.scss +111 -112
  496. package/src/sass/components/_toolbar.scss +35 -47
  497. package/src/sass/components/_tooltip.scss +21 -12
  498. package/src/sass/components/_tour.scss +89 -0
  499. package/src/sass/components/_transfer-list.scss +73 -0
  500. package/src/sass/components/_transitions.scss +4 -4
  501. package/src/sass/components/_tree.scss +3 -16
  502. package/src/sass/components/_treemap-chart.scss +122 -0
  503. package/src/sass/components/forms/_checkboxes.scss +140 -86
  504. package/src/sass/components/forms/_color-picker.scss +135 -0
  505. package/src/sass/components/forms/_color-swatches.scss +85 -0
  506. package/src/sass/components/forms/_drop-zone.scss +15 -9
  507. package/src/sass/components/forms/_fieldset.scss +10 -10
  508. package/src/sass/components/forms/_file-input.scss +6 -9
  509. package/src/sass/components/forms/_index.scss +3 -1
  510. package/src/sass/components/forms/_input-fields.scss +254 -90
  511. package/src/sass/components/forms/_radio-buttons.scss +40 -127
  512. package/src/sass/components/forms/_rating.scss +2 -32
  513. package/src/sass/components/forms/_select.scss +199 -23
  514. package/src/sass/components/forms/_slider.scss +140 -330
  515. package/src/sass/components/forms/_switches.scss +53 -164
  516. package/src/sass/custom.scss +10 -1
  517. package/src/sass/expressive.scss +3 -63
  518. package/src/sass/tokens/_contrast.scss +94 -0
  519. package/src/sass/tokens/_elevation.scss +16 -0
  520. package/src/sass/tokens/_index.scss +5 -0
  521. package/src/sass/tokens/_motion.scss +109 -0
  522. package/src/sass/tokens/_reference.scss +72 -141
  523. package/src/sass/tokens/_shape.scss +38 -0
  524. package/src/sass/tokens/_stacking.scss +27 -0
  525. package/src/sass/tokens/_state.scss +2 -4
  526. package/src/sass/tokens/_theme.scss +11 -2
  527. package/src/sass/tokens/_vibrant.scss +2 -5
  528. package/src/sass/utilities/_colors.scss +6 -1
  529. package/src/sass/utilities/_defer-render.scss +17 -0
  530. package/src/sass/utilities/_helpers.scss +183 -26
  531. package/src/sass/utilities/_index.scss +2 -1
  532. package/src/sass/utilities/_scroll-area.scss +0 -2
  533. package/src/sass/utilities/_spacing.scss +52 -34
  534. package/src/sass/utilities/_typescale.scss +8 -1
  535. package/src/sass/utilities/_visibility.scss +47 -76
  536. package/src/sass/utilities/_z-depth.scss +7 -4
  537. package/dist/js/chunks/chunk-3DHK5CZU.mjs.map +0 -7
  538. package/dist/js/chunks/chunk-3GVFZ4XO.mjs.map +0 -7
  539. package/dist/js/chunks/chunk-4HZMB7LI.mjs.map +0 -7
  540. package/dist/js/chunks/chunk-4KMNFIFZ.mjs +0 -270
  541. package/dist/js/chunks/chunk-4KMNFIFZ.mjs.map +0 -7
  542. package/dist/js/chunks/chunk-4TKTLGEM.mjs.map +0 -7
  543. package/dist/js/chunks/chunk-5BKHWHYY.mjs +0 -292
  544. package/dist/js/chunks/chunk-5BKHWHYY.mjs.map +0 -7
  545. package/dist/js/chunks/chunk-5HQSGDZ5.mjs.map +0 -7
  546. package/dist/js/chunks/chunk-6N2XAEFK.mjs +0 -125
  547. package/dist/js/chunks/chunk-6N2XAEFK.mjs.map +0 -7
  548. package/dist/js/chunks/chunk-A7ALMYUR.mjs.map +0 -7
  549. package/dist/js/chunks/chunk-BG6ZRB5H.mjs.map +0 -7
  550. package/dist/js/chunks/chunk-CUQPB25U.mjs +0 -55
  551. package/dist/js/chunks/chunk-CUQPB25U.mjs.map +0 -7
  552. package/dist/js/chunks/chunk-DAIU5SLG.mjs.map +0 -7
  553. package/dist/js/chunks/chunk-FS7XY3HT.mjs.map +0 -7
  554. package/dist/js/chunks/chunk-GIW4K4SE.mjs.map +0 -7
  555. package/dist/js/chunks/chunk-GUB3TNO2.mjs.map +0 -7
  556. package/dist/js/chunks/chunk-GVGT6MIU.mjs.map +0 -7
  557. package/dist/js/chunks/chunk-GZKEFWPM.mjs +0 -181
  558. package/dist/js/chunks/chunk-GZKEFWPM.mjs.map +0 -7
  559. package/dist/js/chunks/chunk-HKT2S7VM.mjs +0 -48
  560. package/dist/js/chunks/chunk-HKT2S7VM.mjs.map +0 -7
  561. package/dist/js/chunks/chunk-ILP3PDTL.mjs +0 -187
  562. package/dist/js/chunks/chunk-ILP3PDTL.mjs.map +0 -7
  563. package/dist/js/chunks/chunk-JIDMQGK6.mjs.map +0 -7
  564. package/dist/js/chunks/chunk-KBNN3QDH.mjs +0 -7
  565. package/dist/js/chunks/chunk-KBNN3QDH.mjs.map +0 -7
  566. package/dist/js/chunks/chunk-KHV6DZXX.mjs.map +0 -7
  567. package/dist/js/chunks/chunk-KY6U46SM.mjs +0 -345
  568. package/dist/js/chunks/chunk-KY6U46SM.mjs.map +0 -7
  569. package/dist/js/chunks/chunk-LRZMJZ3T.mjs +0 -291
  570. package/dist/js/chunks/chunk-LRZMJZ3T.mjs.map +0 -7
  571. package/dist/js/chunks/chunk-LTWPGFBR.mjs +0 -59
  572. package/dist/js/chunks/chunk-LTWPGFBR.mjs.map +0 -7
  573. package/dist/js/chunks/chunk-MNPROCZF.mjs +0 -328
  574. package/dist/js/chunks/chunk-MNPROCZF.mjs.map +0 -7
  575. package/dist/js/chunks/chunk-MZ6Z24BX.mjs.map +0 -7
  576. package/dist/js/chunks/chunk-NS2UMNZV.mjs.map +0 -7
  577. package/dist/js/chunks/chunk-O5XPWXIQ.mjs +0 -406
  578. package/dist/js/chunks/chunk-O5XPWXIQ.mjs.map +0 -7
  579. package/dist/js/chunks/chunk-PM655FXL.mjs.map +0 -7
  580. package/dist/js/chunks/chunk-QDAL4IYN.mjs.map +0 -7
  581. package/dist/js/chunks/chunk-QERLECVU.mjs +0 -572
  582. package/dist/js/chunks/chunk-QERLECVU.mjs.map +0 -7
  583. package/dist/js/chunks/chunk-QJABDLSD.mjs +0 -112
  584. package/dist/js/chunks/chunk-QJABDLSD.mjs.map +0 -7
  585. package/dist/js/chunks/chunk-RHRQKTTX.mjs +0 -139
  586. package/dist/js/chunks/chunk-RHRQKTTX.mjs.map +0 -7
  587. package/dist/js/chunks/chunk-S3XDFGSZ.mjs.map +0 -7
  588. package/dist/js/chunks/chunk-SPETGK25.mjs +0 -59
  589. package/dist/js/chunks/chunk-SPETGK25.mjs.map +0 -7
  590. package/dist/js/chunks/chunk-TBM3FT7G.mjs.map +0 -7
  591. package/dist/js/chunks/chunk-UEXCIMJZ.mjs.map +0 -7
  592. package/dist/js/chunks/chunk-UEZUJQ66.mjs.map +0 -7
  593. package/dist/js/chunks/chunk-VGZSAFTX.mjs +0 -173
  594. package/dist/js/chunks/chunk-VGZSAFTX.mjs.map +0 -7
  595. package/dist/js/chunks/chunk-X7OCHZVF.mjs +0 -76
  596. package/dist/js/chunks/chunk-X7OCHZVF.mjs.map +0 -7
  597. package/dist/js/chunks/chunk-YDCS5S3J.mjs.map +0 -7
  598. package/dist/js/chunks/chunk-YMSXJON6.mjs +0 -79
  599. package/dist/js/chunks/chunk-YMSXJON6.mjs.map +0 -7
  600. package/dist/js/chunks/chunk-Z2NRKI7R.mjs.map +0 -7
  601. package/dist/js/chunks/chunk-ZAS25YFD.mjs.map +0 -7
  602. package/dist/js/chunks/chunk-ZKZKNSLC.mjs +0 -1
  603. /package/dist/js/chunks/{chunk-ZKZKNSLC.mjs.map → chunk-GNRSYMVH.mjs.map} +0 -0
@@ -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,34 @@
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
+
24
+ // Mist Iris is the default seed for the generated ramps. Primary, secondary,
25
+ // tertiary and neutral colors derive from it; the error ramp stays fixed. It
26
+ // lives here rather than in tokens/_reference so `@use "expressive" with
27
+ // ($md-source: ...)` reaches it: only abstracts is forwarded, and the layers
28
+ // are loaded with meta.load-css(), which takes no configuration.
29
+ $md-source: #c6a0f6 !default;
30
+
31
+ // A control the user cannot operate, natively or by ARIA. The FAB menu and
32
+ // toolbar-group hosts and .hoverable skip it through
33
+ // :not(:where(#{$expressive-disabled})), which adds no specificity, so a
34
+ // disabled control never lifts or takes an enabled tint. Prefixed because
35
+ // abstracts is forwarded to consumers, and a bare $disabled would collide
36
+ // with theirs; not !default, since it is not a setting.
37
+ $expressive-disabled: ':is(:disabled, [disabled], .disabled, [aria-disabled="true"])';
20
38
 
21
39
  // Colors
22
40
  //
@@ -29,8 +47,8 @@ $link-color: var(--md-sys-color-primary) !default;
29
47
  // M3 Expressive color roles. The live tokens are --md-sys-color-#{role}.
30
48
  // 26 standard roles in six groups (primary, secondary, tertiary, error,
31
49
  // 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
50
+ // container scale). The pre-1.0 aliases background, on-background,
51
+ // surface-variant and surface-tint were removed in 0.16.0. Consumed by tokens/_theme.scss and
34
52
  // utilities/_colors.scss so the token layer and the utility classes
35
53
  // cannot drift.
36
54
  $sys-color-roles: (
@@ -47,8 +65,7 @@ $sys-color-roles: (
47
65
  "surface-container-high", "surface-container-highest",
48
66
  "outline", "outline-variant",
49
67
  "inverse-surface", "inverse-on-surface", "inverse-primary",
50
- "scrim", "shadow",
51
- "background", "on-background", "surface-variant", "surface-tint"
68
+ "scrim", "shadow"
52
69
  ) !default;
53
70
 
54
71
  // Menu
@@ -86,7 +103,7 @@ $expressive-include-fonts: true !default;
86
103
  $expressive-glass: false !default;
87
104
  $expressive-glass-blur: 16px !default;
88
105
  $expressive-glass-opacity: 72% !default;
89
- $text-color: var(--md-sys-color-on-background) !default;
106
+ $text-color: var(--md-sys-color-on-surface) !default;
90
107
 
91
108
  // Modern browsers default to 16px. M3's web conversion is SP_SIZE / 16 = rem;
92
109
  // flow text uses the same basis without overriding the user's browser setting.
@@ -120,11 +137,11 @@ $flow-text-to: 960px !default; // the old loop's last step: 360px + 20 * 30
120
137
  // the group itself. A partial may not @use another partial, so a table two of
121
138
  // them share has to be here.
122
139
  $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"),
140
+ "xsmall": (height: 32px, icon: 20px, space: 12px, gap: 8px, outline: 1px, square: 12px, pressed: 8px, label: "label-large"),
141
+ "small": (height: 40px, icon: 20px, space: 16px, gap: 8px, outline: 1px, square: 12px, pressed: 8px, label: "label-large"),
142
+ "medium": (height: 56px, icon: 24px, space: 24px, gap: 8px, outline: 1px, square: 16px, pressed: 12px, label: "title-medium"),
143
+ "large": (height: 96px, icon: 32px, space: 48px, gap: 12px, outline: 2px, square: 28px, pressed: 16px, label: "headline-small"),
144
+ "xlarge": (height: 136px, icon: 40px, space: 64px, gap: 16px, outline: 3px, square: 28px, pressed: 16px, label: "headline-large"),
128
145
  );
129
146
 
130
147
  // Icon-button geometry is shared with button groups. A group-size class must
@@ -137,3 +154,14 @@ $icon-button-sizes: (
137
154
  "large": (height: 96px, icon: 32px, space: 32px, narrow: 16px, wide: 48px, square: 28px, pressed: 16px, outline: 2px),
138
155
  "xlarge": (height: 136px, icon: 40px, space: 48px, narrow: 32px, wide: 72px, square: 28px, pressed: 16px, outline: 3px),
139
156
  );
157
+
158
+ // Material's fast-spatial spring (damping .9, stiffness 1400), sampled into a
159
+ // CSS linear easing over a fixed window. Superseded by spring(0.9, 1400) and
160
+ // the --md-sys-motion-spring-fast-spatial token, which button groups and the
161
+ // keypad now read; kept so Sass that still names it compiles.
162
+ $motion-fast-spatial: linear(
163
+ 0, 0.056 5%, 0.1796 10%, 0.3252 15%, 0.4675 20%, 0.5936 25%,
164
+ 0.6988 30%, 0.7828 35%, 0.8475 40%, 0.8959 45%, 0.931 50%,
165
+ 0.9559 55%, 0.973 60%, 0.9845 65%, 0.9919 70%, 0.9965 75%,
166
+ 0.9992 80%, 1.0006 85%, 1.0013 90%, 1.0015 95%, 1.0015
167
+ );
@@ -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,19 +97,14 @@ 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
99
105
  @include bp-down("expanded") {
100
106
 
101
107
  table.responsive-table {
102
- width: 100%;
103
- border-collapse: collapse;
104
- border-spacing: 0;
105
108
  display: block;
106
109
  position: relative;
107
110
 
@@ -113,16 +116,17 @@ td, th {
113
116
  margin: 0;
114
117
  vertical-align: top;
115
118
  }
116
- th {
117
- text-align: left;
118
- }
119
119
  thead {
120
120
  display: block;
121
- float: left;
121
+ float: inline-start;
122
+ // sort out borders
123
+ border: 0;
124
+ border-inline-end: 1px solid var(--md-sys-color-outline-variant);
122
125
 
123
126
  tr {
124
127
  display: block;
125
- padding: 0 10px 0 0;
128
+ padding-block: 0;
129
+ padding-inline: 0 10px;
126
130
 
127
131
  th::before {
128
132
  content: "\00a0";
@@ -143,21 +147,88 @@ td, th {
143
147
  }
144
148
  th {
145
149
  display: block;
146
- text-align: right;
150
+ text-align: end;
147
151
  }
148
152
  td {
149
153
  display: block;
150
154
  min-height: 1.25em;
151
- text-align: left;
152
155
  }
153
156
  tr {
154
157
  border-bottom: none;
155
158
  padding: 0 10px;
156
159
  }
157
- /* sort out borders */
158
- thead {
159
- border: 0;
160
- border-right: 1px solid var(--md-sys-color-outline-variant);
161
- }
160
+ }
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;
162
233
  }
163
234
  }
@@ -1,6 +1,8 @@
1
1
  // Element-level styling: no component classes live here.
2
2
 
3
3
  @forward "normalize";
4
- @forward "global"; // z-depth, spacing helpers, positioning, element defaults
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