@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
@@ -3,7 +3,7 @@
3
3
  // Dialogs (M3 Expressive).
4
4
  //
5
5
  // Anatomy is the HTML. A <dialog> is a basic dialog: optional leading
6
- // <i>, a heading, supporting <p> (or a wrapping <div>), optional <hr>
6
+ // icon, a heading, supporting <p> (or a wrapping <div>), optional <hr>
7
7
  // + extra content, and a last-child <form method="dialog"> or <nav>
8
8
  // as the action row. dialog.max is the full-screen variant: a <header>
9
9
  // holds close, the headline, and the confirming action.
@@ -20,7 +20,7 @@
20
20
 
21
21
  dialog {
22
22
  --md-comp-basic-dialog-container-color: var(--md-sys-color-surface-container-high);
23
- --md-comp-basic-dialog-container-shape: 28px;
23
+ --md-comp-basic-dialog-container-shape: var(--md-sys-shape-corner-extra-large);
24
24
  --md-comp-basic-dialog-container-min-width: 280px;
25
25
  --md-comp-basic-dialog-container-max-width: 560px;
26
26
  --md-comp-basic-dialog-scrim-blur: 12px;
@@ -46,6 +46,37 @@ dialog {
46
46
  }
47
47
  }
48
48
 
49
+ // Basic dialogs fade in on the fast effects spring and grow from 96% on the
50
+ // default spatial spring, so motion="expressive" reaches them. Entry only:
51
+ // close() takes the dialog out of the top layer at once, as the sheets do.
52
+ // Sheets, full-screen dialogs and the expanding card's dialog move their
53
+ // own way.
54
+ $_basic: "dialog:not(.bottom-sheet, .side-sheet, .max, .expanding-card-dialog)";
55
+
56
+ #{$_basic} {
57
+ --md-comp-basic-dialog-easing: var(--md-sys-motion-spring-default-spatial);
58
+ --md-comp-basic-dialog-duration: var(--md-sys-motion-spring-default-spatial-duration);
59
+ --md-comp-basic-dialog-effects-easing: var(--md-sys-motion-spring-fast-effects);
60
+ --md-comp-basic-dialog-effects-duration: var(--md-sys-motion-spring-fast-effects-duration);
61
+
62
+ transition:
63
+ opacity var(--md-comp-basic-dialog-effects-duration) var(--md-comp-basic-dialog-effects-easing),
64
+ scale var(--md-comp-basic-dialog-duration) var(--md-comp-basic-dialog-easing);
65
+ }
66
+
67
+ @starting-style {
68
+ :is(#{$_basic})[open] {
69
+ opacity: 0;
70
+ scale: 0.96;
71
+ }
72
+ }
73
+
74
+ @media (prefers-reduced-motion: reduce) {
75
+ #{$_basic} {
76
+ transition: none;
77
+ }
78
+ }
79
+
49
80
  // showModal() puts the dialog in the top layer but does not lock the
50
81
  // document scroller. :modal is the modal-only match — a modeless
51
82
  // dialog.show() must not freeze the page.
@@ -65,10 +96,10 @@ dialog > #{$icon}:first-child {
65
96
  flex: 0 0 auto;
66
97
  align-self: center;
67
98
  margin: 24px 24px 0;
68
- font-size: 24px;
69
- width: 24px;
70
- height: 24px;
71
- line-height: 24px;
99
+ font-size: rem(24px);
100
+ width: rem(24px);
101
+ height: rem(24px);
102
+ line-height: rem(24px);
72
103
  color: var(--md-sys-color-secondary);
73
104
  }
74
105
 
@@ -144,15 +175,7 @@ dialog > :is(form, nav):last-child {
144
175
  background: none;
145
176
  }
146
177
 
147
- dialog:not(
148
- .bottom,
149
- .bottom-sheet,
150
- .side-sheet,
151
- .right,
152
- .right-sheet,
153
- .left,
154
- .left-sheet
155
- )
178
+ dialog:not(.bottom-sheet, .side-sheet)
156
179
  > :is(form, nav):last-child
157
180
  > :is(button, a.button):not(.tonal, .outlined, .elevated, .filled, .icon-button) {
158
181
  @include btn-flat;
@@ -208,7 +231,8 @@ dialog.max {
208
231
  flex: 0 0 auto;
209
232
  align-items: center;
210
233
  margin: 0;
211
- padding: 0 8px 0 0;
234
+ padding: 0;
235
+ padding-inline-end: 8px;
212
236
  border: 0;
213
237
  background: none;
214
238
  box-shadow: none;
@@ -222,35 +246,9 @@ dialog.max {
222
246
  // escape hatch the app bar already has.
223
247
  > header > :is(button, a):not(.button, .icon-button):has(> #{$icon}:only-child) {
224
248
  display: inline-flex;
225
- flex: 0 0 48px;
226
249
  align-items: center;
227
250
  justify-content: center;
228
- box-sizing: border-box;
229
- width: 48px;
230
- height: 48px;
231
- min-width: 48px;
232
- padding: 0;
233
- border: none;
234
- border-radius: 50%;
235
- background-color: transparent;
236
- color: var(--md-sys-color-on-surface-variant);
237
- box-shadow: none;
238
-
239
- > #{$icon} {
240
- font-size: 24px;
241
- width: 24px;
242
- height: 24px;
243
- line-height: 24px;
244
- }
245
-
246
- &:hover {
247
- background-color: color-mix(in oklab, var(--md-sys-color-on-surface) state-opacity("hover"), transparent);
248
- }
249
-
250
- &:focus-visible {
251
- outline: 3px solid var(--md-sys-color-secondary);
252
- outline-offset: 2px;
253
- }
251
+ @include header-icon-action;
254
252
  }
255
253
 
256
254
  // Confirming action in the header is a text button, not an icon.
@@ -260,7 +258,7 @@ dialog.max {
260
258
  min-width: 0;
261
259
  height: 40px;
262
260
  padding-inline: 12px;
263
- border-radius: 20px;
261
+ border-radius: var(--md-sys-shape-corner-large-increased);
264
262
  }
265
263
 
266
264
  > :is(p, div) {
@@ -1,11 +1,9 @@
1
- @use "../abstracts" as *;
2
-
3
1
  // Container created by src/ts/plugins/dockedDisplayPlugin.ts, which positions
4
2
  // and animates it inline. Only the resting state belongs here.
5
3
 
6
4
  .display-docked {
7
5
  position: absolute;
8
6
  opacity: 0;
9
- z-index: 9999;
7
+ z-index: var(--expressive-z-menu);
10
8
  visibility: hidden;
11
9
  }
@@ -8,12 +8,16 @@
8
8
  // to it. semantics.json enforces exactly that split, which is what lets the
9
9
  // interactive states below key off `button` and be right every time.
10
10
  //
11
- // **Nothing here drags.** The handle is CSS; the dragging is the page's, and so
12
- // is the keyboard path to whatever the drag achieves. A handle that answers
13
- // only a pointer puts its outcome out of reach of everyone not using one, so
14
- // the framework ships no reordering behaviour to hang off this and the docs say
15
- // plainly that a drag-only reorder is unreachable. The decorative spelling is
16
- // the default; the button spelling has to earn its name.
11
+ // **Nothing here drags.** The handle is CSS. Four behaviors wire it: the
12
+ // bottom sheet's dismiss drag, PaneResize and data table column resize on the
13
+ // button spelling, and Sortable on a decorative handle in a .sortable row.
14
+ // Each brings its own
15
+ // keyboard and single-pointer path; Sortable's is the row's Move up and Move
16
+ // down buttons, which semantics.json requires. Anywhere else the dragging is
17
+ // the page's, and so is the keyboard path to whatever the drag achieves. A
18
+ // handle that answers only a pointer puts its outcome out of reach of
19
+ // everyone not using one. The decorative spelling is the default; the button
20
+ // spelling has to earn its name.
17
21
  //
18
22
  // M3 Expressive tokenised the *vertical* handle - the one sitting in the gutter
19
23
  // between two panes, Compose's VerticalDragHandle: a 4x48dp bar in a 24dp
@@ -46,11 +50,11 @@
46
50
  --md-comp-drag-handle-container-width: 24px;
47
51
  --md-comp-drag-handle-width: 4px;
48
52
  --md-comp-drag-handle-height: 48px;
49
- --md-comp-drag-handle-shape: 9999px;
53
+ --md-comp-drag-handle-shape: var(--md-sys-shape-corner-full);
50
54
  --md-comp-drag-handle-color: var(--md-sys-color-outline);
51
55
  --md-comp-drag-handle-pressed-width: 12px;
52
56
  --md-comp-drag-handle-pressed-height: 52px;
53
- --md-comp-drag-handle-pressed-shape: 12px;
57
+ --md-comp-drag-handle-pressed-shape: var(--md-sys-shape-corner-medium);
54
58
  --md-comp-drag-handle-pressed-color: var(--md-sys-color-on-surface);
55
59
  --md-comp-drag-handle-state-layer-color: var(--md-sys-color-inverse-on-surface);
56
60
 
@@ -83,8 +87,8 @@
83
87
  block-size: var(--md-comp-drag-handle-height);
84
88
  border-radius: var(--md-comp-drag-handle-shape);
85
89
  background-color: var(--md-comp-drag-handle-color);
86
- transition: inline-size .15s ease, block-size .15s ease, border-radius .15s ease,
87
- background-color .15s ease;
90
+ transition: inline-size var(--md-sys-motion-duration-short3) ease, block-size var(--md-sys-motion-duration-short3) ease, border-radius var(--md-sys-motion-duration-short3) ease,
91
+ background-color var(--md-sys-motion-duration-short3) ease;
88
92
  }
89
93
  }
90
94
 
@@ -94,19 +98,11 @@
94
98
  // every other element to aria-hidden is what keeps the two in step.
95
99
  button.drag-handle {
96
100
  &:hover {
97
- background-color: color-mix(
98
- in oklab,
99
- var(--md-comp-drag-handle-state-layer-color) state-opacity("hover"),
100
- transparent
101
- );
101
+ background-color: state-layer(var(--md-comp-drag-handle-state-layer-color), "hover");
102
102
  }
103
103
 
104
104
  &:focus-visible {
105
- background-color: color-mix(
106
- in oklab,
107
- var(--md-comp-drag-handle-state-layer-color) state-opacity("focus"),
108
- transparent
109
- );
105
+ background-color: state-layer(var(--md-comp-drag-handle-state-layer-color), "focus");
110
106
  }
111
107
 
112
108
  @include focus-visible;
@@ -9,8 +9,19 @@
9
9
  article.expanding-card {
10
10
  --md-comp-expanding-card-container-color: var(--md-sys-color-surface);
11
11
  --md-comp-expanding-card-expanded-shape: 0;
12
- --md-comp-expanding-card-motion-duration: 500ms;
13
- --md-comp-expanding-card-motion-easing: cubic-bezier(0.2, 0, 0, 1);
12
+ // The container morph and the hero height run on the slow spatial spring,
13
+ // M3's choice for a full-screen move; the close button and the detail
14
+ // content arrive on the default spatial spring and fade on the fast
15
+ // effects spring. All follow motion="expressive". Each easing is paired
16
+ // with its own duration: a spring played over another duration is no
17
+ // longer that spring.
18
+ --md-comp-expanding-card-motion-duration: var(--md-sys-motion-spring-slow-spatial-duration);
19
+ --md-comp-expanding-card-motion-easing: var(--md-sys-motion-spring-slow-spatial);
20
+ --md-comp-expanding-card-content-duration: var(--md-sys-motion-spring-default-spatial-duration);
21
+ --md-comp-expanding-card-content-delay: var(--md-sys-motion-duration-short4);
22
+ --md-comp-expanding-card-content-easing: var(--md-sys-motion-spring-default-spatial);
23
+ --md-comp-expanding-card-fade-duration: var(--md-sys-motion-spring-fast-effects-duration);
24
+ --md-comp-expanding-card-fade-easing: var(--md-sys-motion-spring-fast-effects);
14
25
  --md-comp-expanding-card-content-padding: 16px;
15
26
  --md-comp-expanding-card-expanded-media-height: min(56dvh, 560px);
16
27
  }
@@ -114,16 +125,16 @@ dialog.expanding-card-dialog > .expanding-card-close {
114
125
  border-radius: 50%;
115
126
  box-shadow: none;
116
127
  opacity: 0;
117
- transform: scale(.8);
128
+ transform: scale(0.8);
118
129
  transition:
119
- opacity 150ms ease-out,
120
- transform 300ms var(--md-comp-expanding-card-motion-easing);
130
+ opacity var(--md-comp-expanding-card-fade-duration) var(--md-comp-expanding-card-fade-easing),
131
+ transform var(--md-comp-expanding-card-content-duration) var(--md-comp-expanding-card-content-easing);
121
132
  }
122
133
 
123
134
  dialog.expanding-card-dialog.expanded > .expanding-card-close {
124
135
  opacity: 1;
125
136
  transform: scale(1);
126
- transition-delay: 150ms;
137
+ transition-delay: var(--md-sys-motion-duration-short3);
127
138
  }
128
139
 
129
140
  dialog.expanding-card-dialog > .expanding-card-content {
@@ -136,14 +147,14 @@ dialog.expanding-card-dialog > .expanding-card-content {
136
147
  opacity: 0;
137
148
  transform: translateY(16px);
138
149
  transition:
139
- opacity 150ms ease-out,
140
- transform 300ms var(--md-comp-expanding-card-motion-easing);
150
+ opacity var(--md-comp-expanding-card-fade-duration) var(--md-comp-expanding-card-fade-easing),
151
+ transform var(--md-comp-expanding-card-content-duration) var(--md-comp-expanding-card-content-easing);
141
152
  }
142
153
 
143
154
  dialog.expanding-card-dialog.expanded > .expanding-card-content {
144
155
  opacity: 1;
145
156
  transform: translateY(0);
146
- transition-delay: 180ms;
157
+ transition-delay: var(--md-comp-expanding-card-content-delay);
147
158
  }
148
159
 
149
160
  .expanding-card-detail-header {
@@ -37,9 +37,15 @@ $_fab-menu-roles: ("primary", "secondary", "tertiary");
37
37
  );
38
38
  --md-comp-fab-menu-offset: 16px;
39
39
  --md-comp-fab-menu-z: 997;
40
- --md-comp-fab-menu-duration: 200ms;
40
+ // Items move on the fast spatial spring and fade on the fast effects
41
+ // spring, so motion="expressive" gives them a small bounce while the fade
42
+ // never overshoots. The spatial duration is the longer of the two, so it
43
+ // also times the list's visibility on close.
44
+ --md-comp-fab-menu-duration: var(--md-sys-motion-spring-fast-spatial-duration);
41
45
  --md-comp-fab-menu-stagger: 40ms;
42
- --md-comp-fab-menu-easing: cubic-bezier(0.65, 0, 0.35, 1);
46
+ --md-comp-fab-menu-easing: var(--md-sys-motion-spring-fast-spatial);
47
+ --md-comp-fab-menu-effects-duration: var(--md-sys-motion-spring-fast-effects-duration);
48
+ --md-comp-fab-menu-effects-easing: var(--md-sys-motion-spring-fast-effects);
43
49
 
44
50
  position: fixed;
45
51
  inset-inline-end: var(--md-comp-fab-menu-offset);
@@ -103,7 +109,7 @@ $_fab-menu-roles: ("primary", "secondary", "tertiary");
103
109
  padding-inline: var(--md-comp-fab-menu-menu-item-leading-space)
104
110
  var(--md-comp-fab-menu-menu-item-trailing-space);
105
111
  border: none;
106
- border-radius: 9999px;
112
+ border-radius: var(--md-sys-shape-corner-full);
107
113
  color: var(--md-comp-fab-menu-menu-item-label-text-color);
108
114
  background-color: var(--md-comp-fab-menu-menu-item-container-color);
109
115
  white-space: normal;
@@ -113,12 +119,12 @@ $_fab-menu-roles: ("primary", "secondary", "tertiary");
113
119
  cursor: pointer;
114
120
  appearance: none;
115
121
  opacity: 0;
116
- transform: scale(.8) translateY(1rem);
122
+ transform: scale(0.8) translateY(1rem);
117
123
  transition:
118
- opacity var(--md-comp-fab-menu-duration) var(--md-comp-fab-menu-easing),
124
+ opacity var(--md-comp-fab-menu-effects-duration) var(--md-comp-fab-menu-effects-easing),
119
125
  transform var(--md-comp-fab-menu-duration) var(--md-comp-fab-menu-easing),
120
- background-color .2s ease-out,
121
- box-shadow .2s ease-out;
126
+ background-color var(--md-sys-motion-duration-short4) ease-out,
127
+ box-shadow var(--md-sys-motion-duration-short4) ease-out;
122
128
  @include typescale("title-medium");
123
129
  @include focus-visible;
124
130
 
@@ -130,24 +136,31 @@ $_fab-menu-roles: ("primary", "secondary", "tertiary");
130
136
  color: inherit;
131
137
  }
132
138
 
133
- // Enabled is elevation 0; only the states lift.
134
- &:hover {
139
+ // The shared disabled rule in _buttons.scss is (0,1,0) and loses to this
140
+ // block, so a disabled item paints itself. aria-disabled is included:
141
+ // with the menu's own state arms skipped, the generic button focus tint
142
+ // would otherwise show through on a focused aria-disabled item.
143
+ &#{$expressive-disabled} {
144
+ @include btn-disabled;
145
+ }
146
+
147
+ // aria-disabled keeps pointer events, so a tooltip or title explaining
148
+ // why the item is unavailable still shows on hover. Activation is
149
+ // already ignored by the FAB script.
150
+ &[aria-disabled="true"] {
151
+ pointer-events: auto;
152
+ }
153
+
154
+ // Enabled is elevation 0; only the states lift, and only when enabled.
155
+ &:hover:not(:where(#{$expressive-disabled})) {
135
156
  @include z-depth("4");
136
- background-color: color-mix(
137
- in oklab,
138
- var(--md-comp-fab-menu-menu-item-label-text-color) state-opacity("hover"),
139
- var(--md-comp-fab-menu-menu-item-container-color)
140
- );
157
+ background-color: state-layer(var(--md-comp-fab-menu-menu-item-label-text-color), "hover", var(--md-comp-fab-menu-menu-item-container-color));
141
158
  }
142
159
 
143
- &:active,
144
- &:focus {
160
+ &:active:not(:where(#{$expressive-disabled})),
161
+ &:focus:not(:where(#{$expressive-disabled})) {
145
162
  @include z-depth("3");
146
- background-color: color-mix(
147
- in oklab,
148
- var(--md-comp-fab-menu-menu-item-label-text-color) state-opacity("focus"),
149
- var(--md-comp-fab-menu-menu-item-container-color)
150
- );
163
+ background-color: state-layer(var(--md-comp-fab-menu-menu-item-label-text-color), "focus", var(--md-comp-fab-menu-menu-item-container-color));
151
164
  }
152
165
  }
153
166
  }
@@ -174,7 +187,7 @@ $_fab-menu-roles: ("primary", "secondary", "tertiary");
174
187
  --md-comp-fab-container-width: var(
175
188
  --md-comp-fab-menu-close-button-container-width
176
189
  );
177
- --md-comp-fab-container-shape: 9999px;
190
+ --md-comp-fab-container-shape: var(--md-sys-shape-corner-full);
178
191
  --md-comp-fab-icon-size: var(--md-comp-fab-menu-close-button-icon-size);
179
192
 
180
193
  color: var(--md-comp-fab-menu-close-button-icon-color);
@@ -189,20 +202,12 @@ $_fab-menu-roles: ("primary", "secondary", "tertiary");
189
202
  }
190
203
 
191
204
  &:hover {
192
- background-color: color-mix(
193
- in oklab,
194
- var(--md-comp-fab-menu-close-button-icon-color) state-opacity("hover"),
195
- var(--md-comp-fab-menu-close-button-container-color)
196
- );
205
+ background-color: state-layer(var(--md-comp-fab-menu-close-button-icon-color), "hover", var(--md-comp-fab-menu-close-button-container-color));
197
206
  }
198
207
 
199
208
  &:active,
200
209
  &:focus {
201
- background-color: color-mix(
202
- in oklab,
203
- var(--md-comp-fab-menu-close-button-icon-color) state-opacity("focus"),
204
- var(--md-comp-fab-menu-close-button-container-color)
205
- );
210
+ background-color: state-layer(var(--md-comp-fab-menu-close-button-icon-color), "focus", var(--md-comp-fab-menu-close-button-container-color));
206
211
  }
207
212
  }
208
213
 
@@ -229,6 +234,13 @@ $_fab-menu-roles: ("primary", "secondary", "tertiary");
229
234
  @media (prefers-reduced-motion: reduce) {
230
235
  .fab-menu {
231
236
  --md-comp-fab-menu-duration: 0s;
237
+ --md-comp-fab-menu-effects-duration: 0s;
232
238
  --md-comp-fab-menu-stagger: 0s;
233
239
  }
234
240
  }
241
+
242
+ // A floating menu would print over the content. Important so a size or state rule that sets
243
+ // `display` cannot bring it back; see base/_print.scss for the page itself.
244
+ @media print {
245
+ .fab-menu { display: none !important; }
246
+ }
@@ -0,0 +1,124 @@
1
+ @use "../abstracts" as *;
2
+
3
+ // Funnel chart. A <figure class="funnel-chart"> holds a <figcaption> and a
4
+ // <table> of data: the first column labels each row, and the second holds
5
+ // each stage's value. Without JavaScript the table shows. FunnelChart draws
6
+ // each row as a stage, top to bottom in table order, as wide as its value
7
+ // against the largest one and centered, with the row's label at the inline
8
+ // start. It hides the table visually, so a screen reader still reads the
9
+ // data as a table. The plot and tooltip come from chart(). The plot is as
10
+ // tall as its rows, so --md-comp-funnel-chart-height does not apply; set
11
+ // the row height instead.
12
+ //
13
+ // Each stage's span carries --width, its width as a percentage of the plot.
14
+ //
15
+ // Tokens:
16
+ // --md-comp-funnel-chart-row-height 40px
17
+ // --md-comp-funnel-chart-stage-height 60% of each row's height
18
+ // --md-comp-funnel-chart-shape 4px, the stage's corner radius
19
+ // --md-comp-funnel-chart-color-1 primary, every stage's color
20
+
21
+ @include chart("funnel-chart");
22
+
23
+ .funnel-chart {
24
+ --md-comp-funnel-chart-row-height: #{rem(40px)};
25
+ --md-comp-funnel-chart-stage-height: 60%;
26
+ --md-comp-funnel-chart-shape: var(--md-sys-shape-corner-extra-small);
27
+
28
+ // Labels beside the plot, up to 40% of the width; everything else spans
29
+ // both columns. Dense flow puts the labels in the plot's row.
30
+ display: grid;
31
+ grid-template-columns: fit-content(40%) minmax(0, 1fr);
32
+ grid-auto-flow: row dense;
33
+ align-content: start;
34
+ column-gap: 12px;
35
+
36
+ > * {
37
+ grid-column: 1 / -1;
38
+ }
39
+
40
+ > .funnel-chart-plot {
41
+ grid-column: 2;
42
+ }
43
+
44
+ > .funnel-chart-labels {
45
+ grid-column: 1;
46
+ }
47
+ }
48
+
49
+ .funnel-chart-plot {
50
+ isolation: isolate;
51
+ height: calc(var(--rows, 1) * var(--md-comp-funnel-chart-row-height));
52
+ border-block-end: 0;
53
+ background: none;
54
+ }
55
+
56
+ .funnel-chart-labels {
57
+ grid-auto-rows: minmax(0, 1fr);
58
+ grid-auto-flow: row;
59
+ align-items: center;
60
+ text-align: end;
61
+ }
62
+
63
+ .funnel-chart-stages {
64
+ position: absolute;
65
+ inset: 0;
66
+ display: grid;
67
+ grid-auto-rows: minmax(0, 1fr);
68
+
69
+ > div {
70
+ display: flex;
71
+ align-items: center;
72
+ }
73
+
74
+ > div > span {
75
+ width: calc(var(--width, 0) * 1%);
76
+ height: var(--md-comp-funnel-chart-stage-height);
77
+ margin-inline: auto;
78
+ border-radius: var(--md-comp-funnel-chart-shape);
79
+ background-color: var(--funnel-chart-color);
80
+ }
81
+
82
+ // Each stage grows from nothing, or after update() from its old width,
83
+ // which FunnelChart writes as --from-width.
84
+ @media (prefers-reduced-motion: no-preference) {
85
+ > div > span {
86
+ transition: width var(--md-sys-motion-duration-medium4) var(--md-sys-motion-easing-standard);
87
+
88
+ @starting-style {
89
+ width: calc(var(--from-width, 0) * 1%);
90
+ }
91
+ }
92
+ }
93
+ }
94
+
95
+ // A band behind the highlighted row's stage.
96
+ .funnel-chart-cursor {
97
+ z-index: -1;
98
+ inset-block: auto;
99
+ inset-inline: 0;
100
+ height: calc(100% / var(--rows, 1));
101
+ border-radius: var(--md-comp-funnel-chart-shape);
102
+ background-color: state-layer(var(--md-sys-color-on-surface), "hover");
103
+ translate: 0 -50%;
104
+ }
105
+
106
+ // Below the highlighted row, or above it in the lower half.
107
+ .funnel-chart-tooltip {
108
+ left: 50%;
109
+ translate: -50% calc(var(--md-comp-funnel-chart-row-height) / 2);
110
+
111
+ &.end {
112
+ translate: -50% calc(-100% - var(--md-comp-funnel-chart-row-height) / 2);
113
+ }
114
+ }
115
+
116
+ @media (forced-colors: active) {
117
+ .funnel-chart-stages > div > span {
118
+ forced-color-adjust: none;
119
+ }
120
+
121
+ .funnel-chart-cursor {
122
+ outline: 1px solid CanvasText;
123
+ }
124
+ }