@expressivecss/expressive 0.15.0 → 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 (602) hide show
  1. package/CHANGELOG.md +1502 -1
  2. package/README.md +9 -8
  3. package/dist/css/expressive.css +19247 -11923
  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-KVJAVDBC.mjs → chunk-4QUCNFSD.mjs} +64 -113
  76. package/dist/js/chunks/chunk-4QUCNFSD.mjs.map +7 -0
  77. package/dist/js/chunks/{chunk-UETTGDLI.mjs → chunk-4TRZ2AER.mjs} +35 -41
  78. package/dist/js/chunks/chunk-4TRZ2AER.mjs.map +7 -0
  79. package/dist/js/chunks/{chunk-C6CHEWYP.mjs → chunk-5KIHWJI2.mjs} +40 -26
  80. package/dist/js/chunks/chunk-5KIHWJI2.mjs.map +7 -0
  81. package/dist/js/chunks/{chunk-L27Q6ZMI.mjs → chunk-67ZPPKXS.mjs} +20 -33
  82. package/dist/js/chunks/chunk-67ZPPKXS.mjs.map +7 -0
  83. package/dist/js/chunks/{chunk-XAEAEHIX.mjs → chunk-6FSEUFVW.mjs} +39 -26
  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-CK2XCICY.mjs → chunk-75E5EDJF.mjs} +3 -11
  88. package/dist/js/chunks/chunk-75E5EDJF.mjs.map +7 -0
  89. package/dist/js/chunks/{chunk-KHXZ2A4K.mjs → chunk-7NLUI3RR.mjs} +139 -66
  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-LQWUDNHZ.mjs → chunk-ANKFWNWT.mjs} +21 -45
  100. package/dist/js/chunks/chunk-ANKFWNWT.mjs.map +7 -0
  101. package/dist/js/chunks/{chunk-5CEAOLUA.mjs → chunk-B7DQFHA5.mjs} +30 -47
  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-VGNYF6FB.mjs → chunk-BPF3I2MN.mjs} +109 -24
  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-NUHMOAOY.mjs → chunk-CSYWKEK3.mjs} +310 -196
  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-74MXKKLN.mjs → chunk-EC26RU2D.mjs} +11 -29
  116. package/dist/js/chunks/chunk-EC26RU2D.mjs.map +7 -0
  117. package/dist/js/chunks/{chunk-WDK4T63U.mjs → chunk-EVCVFEV3.mjs} +235 -146
  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-PDG64UHF.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-BGZLF6JZ.mjs → chunk-KZPSAXIU.mjs} +142 -32
  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-DXGRXYYL.mjs → chunk-OP43LLIC.mjs} +28 -45
  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-TSZYSW7F.mjs → chunk-OYNUDOHR.mjs} +19 -47
  153. package/dist/js/chunks/chunk-OYNUDOHR.mjs.map +7 -0
  154. package/dist/js/chunks/{chunk-UAZSDUVP.mjs → chunk-P6DRQ6KS.mjs} +36 -30
  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-GJL6GCIU.mjs → chunk-QXKWVHBD.mjs} +265 -161
  161. package/dist/js/chunks/chunk-QXKWVHBD.mjs.map +7 -0
  162. package/dist/js/chunks/{chunk-X4ISMKE2.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-SMY7GJSS.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-ZX6M7SWO.mjs → chunk-VGY4M57S.mjs} +266 -120
  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-SFI2U4YW.mjs → chunk-VMY55K2X.mjs} +76 -109
  185. package/dist/js/chunks/chunk-VMY55K2X.mjs.map +7 -0
  186. package/dist/js/chunks/{chunk-KUFHW3DS.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-FM5CZOUB.mjs → chunk-ZJNLAGY5.mjs} +19 -30
  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 +10613 -4327
  213. package/dist/js/expressive.cjs.map +4 -4
  214. package/dist/js/expressive.js +10613 -4327
  215. package/dist/js/expressive.js.map +4 -4
  216. package/dist/js/expressive.min.js +23 -22
  217. package/dist/js/expressive.min.js.map +4 -4
  218. package/dist/js/expressive.mjs +182 -71
  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 +131 -66
  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 +3 -3
  274. package/dist/js/internal/components/lightbox.mjs +3 -3
  275. package/dist/js/internal/components/lineChart.mjs +25 -4
  276. package/dist/js/internal/components/loadingOverlay.mjs +9 -0
  277. package/dist/js/internal/components/loadingOverlay.mjs.map +7 -0
  278. package/dist/js/internal/components/mapView.mjs +3 -3
  279. package/dist/js/internal/components/menu.mjs +3 -3
  280. package/dist/js/internal/components/menubar.mjs +10 -0
  281. package/dist/js/internal/components/menubar.mjs.map +7 -0
  282. package/dist/js/internal/components/messageScroller.mjs +3 -3
  283. package/dist/js/internal/components/mixedChart.mjs +5 -4
  284. package/dist/js/internal/components/navigationRail.mjs +3 -2
  285. package/dist/js/internal/components/particles.mjs +3 -2
  286. package/dist/js/internal/components/pieChart.mjs +4 -3
  287. package/dist/js/internal/components/pullToRefresh.mjs +9 -0
  288. package/dist/js/internal/components/pullToRefresh.mjs.map +7 -0
  289. package/dist/js/internal/components/questionnaire.mjs +3 -3
  290. package/dist/js/internal/components/radarChart.mjs +4 -3
  291. package/dist/js/internal/components/radialChart.mjs +4 -3
  292. package/dist/js/internal/components/registry.mjs +59 -41
  293. package/dist/js/internal/components/richTextEditor.mjs +3 -3
  294. package/dist/js/internal/components/sankeyChart.mjs +10 -0
  295. package/dist/js/internal/components/sankeyChart.mjs.map +7 -0
  296. package/dist/js/internal/components/scatterChart.mjs +10 -0
  297. package/dist/js/internal/components/scatterChart.mjs.map +7 -0
  298. package/dist/js/internal/components/scrollspy.mjs +3 -2
  299. package/dist/js/internal/components/select.mjs +4 -4
  300. package/dist/js/internal/components/showMore.mjs +9 -0
  301. package/dist/js/internal/components/showMore.mjs.map +7 -0
  302. package/dist/js/internal/components/slider.mjs +3 -3
  303. package/dist/js/internal/components/snackbar.mjs +2 -2
  304. package/dist/js/internal/components/swipeActions.mjs +9 -0
  305. package/dist/js/internal/components/swipeActions.mjs.map +7 -0
  306. package/dist/js/internal/components/tabs.mjs +3 -4
  307. package/dist/js/internal/components/timepicker.mjs +5 -4
  308. package/dist/js/internal/components/tooltip.mjs +3 -3
  309. package/dist/js/internal/components/treeSelect.mjs +13 -0
  310. package/dist/js/internal/components/treeSelect.mjs.map +7 -0
  311. package/dist/js/internal/components/treemapChart.mjs +10 -0
  312. package/dist/js/internal/components/treemapChart.mjs.map +7 -0
  313. package/dist/js/internal/core/component.mjs +2 -1
  314. package/dist/js/internal/core/formControl.mjs +12 -0
  315. package/dist/js/internal/core/formControl.mjs.map +7 -0
  316. package/dist/js/internal/core/spring.mjs +11 -0
  317. package/dist/js/internal/core/spring.mjs.map +7 -0
  318. package/dist/js/internal/core/utils.mjs +11 -3
  319. package/dist/js/internal/plugins/dockedDisplayPlugin.mjs +2 -2
  320. package/dist/js/internal/plugins/modalDisplayPlugin.mjs +13 -0
  321. package/dist/js/internal/plugins/modalDisplayPlugin.mjs.map +7 -0
  322. package/dist/js/modular.mjs +173 -71
  323. package/dist/types/behaviors/bottomSheets.d.ts +19 -3
  324. package/dist/types/behaviors/copy.d.ts +18 -0
  325. package/dist/types/behaviors/dataTables.d.ts +129 -0
  326. package/dist/types/behaviors/dialogs.d.ts +27 -1
  327. package/dist/types/behaviors/forms.d.ts +68 -2
  328. package/dist/types/behaviors/imageCompare.d.ts +12 -0
  329. package/dist/types/behaviors/lists.d.ts +12 -0
  330. package/dist/types/behaviors/paneResize.d.ts +29 -0
  331. package/dist/types/behaviors/sheetDrag.d.ts +18 -0
  332. package/dist/types/behaviors/sideSheets.d.ts +1 -1
  333. package/dist/types/behaviors/sortable.d.ts +28 -0
  334. package/dist/types/behaviors/theme.d.ts +22 -0
  335. package/dist/types/behaviors/tour.d.ts +36 -0
  336. package/dist/types/behaviors/transferList.d.ts +51 -0
  337. package/dist/types/components/appBar.d.ts +5 -6
  338. package/dist/types/components/autocomplete.d.ts +91 -17
  339. package/dist/types/components/backToTop.d.ts +36 -0
  340. package/dist/types/components/barChart.d.ts +3 -6
  341. package/dist/types/components/buttonGroup.d.ts +2 -4
  342. package/dist/types/components/buttons.d.ts +5 -5
  343. package/dist/types/components/cards.d.ts +3 -16
  344. package/dist/types/components/carousel.d.ts +9 -15
  345. package/dist/types/components/cascader.d.ts +130 -0
  346. package/dist/types/components/characterCounter.d.ts +2 -15
  347. package/dist/types/components/chips.d.ts +65 -19
  348. package/dist/types/components/colorPicker.d.ts +42 -0
  349. package/dist/types/components/columnChart.d.ts +23 -10
  350. package/dist/types/components/commandPalette.d.ts +11 -16
  351. package/dist/types/components/confetti.d.ts +2 -4
  352. package/dist/types/components/currencyInput.d.ts +59 -0
  353. package/dist/types/components/datepicker.d.ts +56 -32
  354. package/dist/types/components/expandingCard.d.ts +4 -6
  355. package/dist/types/components/funnelChart.d.ts +38 -0
  356. package/dist/types/components/heatmapChart.d.ts +39 -8
  357. package/dist/types/components/hoverCard.d.ts +58 -0
  358. package/dist/types/components/index.d.ts +16 -1
  359. package/dist/types/components/inputMask.d.ts +30 -0
  360. package/dist/types/components/keypad.d.ts +38 -6
  361. package/dist/types/components/lightbox.d.ts +14 -20
  362. package/dist/types/components/lineChart.d.ts +172 -10
  363. package/dist/types/components/loadingOverlay.d.ts +42 -0
  364. package/dist/types/components/mapView.d.ts +26 -17
  365. package/dist/types/components/menu.d.ts +60 -22
  366. package/dist/types/components/menubar.d.ts +37 -0
  367. package/dist/types/components/messageScroller.d.ts +2 -14
  368. package/dist/types/components/mixedChart.d.ts +15 -6
  369. package/dist/types/components/navigationRail.d.ts +16 -5
  370. package/dist/types/components/particles.d.ts +8 -4
  371. package/dist/types/components/pieChart.d.ts +32 -7
  372. package/dist/types/components/pullToRefresh.d.ts +80 -0
  373. package/dist/types/components/questionnaire.d.ts +58 -16
  374. package/dist/types/components/radarChart.d.ts +10 -6
  375. package/dist/types/components/radialChart.d.ts +58 -7
  376. package/dist/types/components/registry.d.ts +73 -3
  377. package/dist/types/components/richTextEditor.d.ts +6 -14
  378. package/dist/types/components/sankeyChart.d.ts +72 -0
  379. package/dist/types/components/scatterChart.d.ts +102 -0
  380. package/dist/types/components/scrollspy.d.ts +3 -5
  381. package/dist/types/components/select.d.ts +43 -30
  382. package/dist/types/components/showMore.d.ts +51 -0
  383. package/dist/types/components/slider.d.ts +3 -15
  384. package/dist/types/components/snackbar.d.ts +61 -0
  385. package/dist/types/components/swipeActions.d.ts +81 -0
  386. package/dist/types/components/tabs.d.ts +89 -27
  387. package/dist/types/components/timepicker.d.ts +113 -21
  388. package/dist/types/components/tooltip.d.ts +56 -20
  389. package/dist/types/components/treeSelect.d.ts +106 -0
  390. package/dist/types/components/treemapChart.d.ts +56 -0
  391. package/dist/types/core/component.d.ts +43 -25
  392. package/dist/types/core/formControl.d.ts +21 -0
  393. package/dist/types/core/spring.d.ts +20 -0
  394. package/dist/types/core/utils.d.ts +85 -72
  395. package/dist/types/modular.d.ts +33 -1
  396. package/dist/types/plugins/dockedDisplayPlugin.d.ts +10 -8
  397. package/dist/types/plugins/modalDisplayPlugin.d.ts +32 -0
  398. package/package.json +10 -8
  399. package/src/sass/README.md +27 -18
  400. package/src/sass/abstracts/_elevation.scss +13 -7
  401. package/src/sass/abstracts/_index.scss +1 -0
  402. package/src/sass/abstracts/_mixins.scss +422 -36
  403. package/src/sass/abstracts/_spring.scss +63 -0
  404. package/src/sass/abstracts/_variables.scss +39 -21
  405. package/src/sass/base/_fonts.scss +61 -48
  406. package/src/sass/base/_global.scss +104 -24
  407. package/src/sass/base/_index.scss +2 -0
  408. package/src/sass/base/_normalize.scss +59 -114
  409. package/src/sass/base/_print.scss +21 -0
  410. package/src/sass/base/_prose.scss +68 -0
  411. package/src/sass/base/_typography.scss +9 -5
  412. package/src/sass/components/_accordion.scss +9 -16
  413. package/src/sass/components/_alert.scss +102 -0
  414. package/src/sass/components/_aura.scss +8 -3
  415. package/src/sass/components/_avatar.scss +3 -3
  416. package/src/sass/components/_back-to-top.scss +38 -0
  417. package/src/sass/components/_badges.scss +6 -5
  418. package/src/sass/components/_bar-chart.scss +41 -19
  419. package/src/sass/components/_bottom-sheet.scss +44 -16
  420. package/src/sass/components/_breadcrumb.scss +8 -1
  421. package/src/sass/components/_button-groups.scss +15 -25
  422. package/src/sass/components/_buttons.scss +156 -63
  423. package/src/sass/components/_calendar.scss +246 -0
  424. package/src/sass/components/_cards.scss +36 -44
  425. package/src/sass/components/_carousel.scss +27 -103
  426. package/src/sass/components/_cascader.scss +142 -0
  427. package/src/sass/components/_chips.scss +36 -46
  428. package/src/sass/components/_column-chart.scss +19 -12
  429. package/src/sass/components/_command-palette.scss +4 -7
  430. package/src/sass/components/_confetti.scss +0 -2
  431. package/src/sass/components/_countdown.scss +1 -1
  432. package/src/sass/components/_data-table.scss +162 -25
  433. package/src/sass/components/_datepicker.scss +54 -40
  434. package/src/sass/components/_description-list.scss +85 -0
  435. package/src/sass/components/_dialog.scss +42 -41
  436. package/src/sass/components/_docked-display.scss +1 -3
  437. package/src/sass/components/_drag-handle.scss +16 -20
  438. package/src/sass/components/_expanding-card.scss +20 -9
  439. package/src/sass/components/_fab-menu.scss +44 -32
  440. package/src/sass/components/_funnel-chart.scss +124 -0
  441. package/src/sass/components/_heatmap-chart.scss +111 -22
  442. package/src/sass/components/_icon-buttons.scss +7 -7
  443. package/src/sass/components/_icons-material-design.scss +2 -2
  444. package/src/sass/components/_image-compare.scss +108 -0
  445. package/src/sass/components/_index.scss +20 -0
  446. package/src/sass/components/_keypad.scss +39 -19
  447. package/src/sass/components/_kpi.scss +6 -11
  448. package/src/sass/components/_lightbox.scss +24 -13
  449. package/src/sass/components/_line-chart.scss +16 -2
  450. package/src/sass/components/_list.scss +59 -14
  451. package/src/sass/components/_loading-indicator.scss +1 -0
  452. package/src/sass/components/_loading-overlay.scss +105 -0
  453. package/src/sass/components/_map.scss +33 -11
  454. package/src/sass/components/_marquee.scss +3 -2
  455. package/src/sass/components/_mega-menu.scss +137 -0
  456. package/src/sass/components/_menu.scss +143 -123
  457. package/src/sass/components/_menubar.scss +59 -0
  458. package/src/sass/components/_message-scroller.scss +2 -2
  459. package/src/sass/components/_message.scss +3 -3
  460. package/src/sass/components/_mixed-chart.scss +37 -9
  461. package/src/sass/components/_modal-display.scss +21 -0
  462. package/src/sass/components/_navbar.scss +34 -20
  463. package/src/sass/components/_navigation-bar.scss +15 -77
  464. package/src/sass/components/_navigation-rail.scss +151 -92
  465. package/src/sass/components/_org-chart.scss +192 -0
  466. package/src/sass/components/_page-footer.scss +1 -1
  467. package/src/sass/components/_pagination.scss +6 -13
  468. package/src/sass/components/_panes.scss +32 -26
  469. package/src/sass/components/_particles.scss +0 -2
  470. package/src/sass/components/_pie-chart.scss +91 -11
  471. package/src/sass/components/_popover.scss +18 -5
  472. package/src/sass/components/_progress.scss +152 -31
  473. package/src/sass/components/_pull-to-refresh.scss +90 -0
  474. package/src/sass/components/_questionnaire.scss +74 -3
  475. package/src/sass/components/_radar-chart.scss +38 -10
  476. package/src/sass/components/_radial-chart.scss +113 -5
  477. package/src/sass/components/_rich-text-editor.scss +2 -2
  478. package/src/sass/components/_sankey-chart.scss +114 -0
  479. package/src/sass/components/_scatter-chart.scss +153 -0
  480. package/src/sass/components/_scrim.scss +0 -2
  481. package/src/sass/components/_scrollspy.scss +0 -2
  482. package/src/sass/components/_search.scss +26 -22
  483. package/src/sass/components/_show-more.scss +8 -0
  484. package/src/sass/components/_side-sheet.scss +23 -37
  485. package/src/sass/components/_skeleton.scss +2 -4
  486. package/src/sass/components/_snackbar.scss +27 -21
  487. package/src/sass/components/_split-button.scss +5 -5
  488. package/src/sass/components/_stat.scss +3 -8
  489. package/src/sass/components/_stepper.scss +1 -1
  490. package/src/sass/components/_swipe-actions.scss +71 -0
  491. package/src/sass/components/_tabs.scss +51 -32
  492. package/src/sass/components/_timeline.scss +12 -12
  493. package/src/sass/components/_timepicker.scss +109 -78
  494. package/src/sass/components/_toolbar.scss +35 -43
  495. package/src/sass/components/_tooltip.scss +21 -12
  496. package/src/sass/components/_tour.scss +89 -0
  497. package/src/sass/components/_transfer-list.scss +73 -0
  498. package/src/sass/components/_transitions.scss +4 -4
  499. package/src/sass/components/_tree.scss +3 -16
  500. package/src/sass/components/_treemap-chart.scss +122 -0
  501. package/src/sass/components/forms/_checkboxes.scss +106 -24
  502. package/src/sass/components/forms/_color-picker.scss +135 -0
  503. package/src/sass/components/forms/_color-swatches.scss +85 -0
  504. package/src/sass/components/forms/_drop-zone.scss +15 -9
  505. package/src/sass/components/forms/_fieldset.scss +7 -7
  506. package/src/sass/components/forms/_file-input.scss +6 -8
  507. package/src/sass/components/forms/_index.scss +3 -1
  508. package/src/sass/components/forms/_input-fields.scss +254 -90
  509. package/src/sass/components/forms/_radio-buttons.scss +33 -94
  510. package/src/sass/components/forms/_rating.scss +2 -32
  511. package/src/sass/components/forms/_select.scss +199 -20
  512. package/src/sass/components/forms/_slider.scss +91 -94
  513. package/src/sass/components/forms/_switches.scss +53 -164
  514. package/src/sass/custom.scss +10 -1
  515. package/src/sass/expressive.scss +3 -63
  516. package/src/sass/tokens/_contrast.scss +94 -0
  517. package/src/sass/tokens/_elevation.scss +16 -0
  518. package/src/sass/tokens/_index.scss +5 -0
  519. package/src/sass/tokens/_motion.scss +109 -0
  520. package/src/sass/tokens/_reference.scss +72 -141
  521. package/src/sass/tokens/_shape.scss +38 -0
  522. package/src/sass/tokens/_stacking.scss +27 -0
  523. package/src/sass/tokens/_state.scss +0 -2
  524. package/src/sass/tokens/_theme.scss +10 -1
  525. package/src/sass/tokens/_vibrant.scss +2 -5
  526. package/src/sass/utilities/_defer-render.scss +17 -0
  527. package/src/sass/utilities/_helpers.scss +183 -26
  528. package/src/sass/utilities/_index.scss +1 -0
  529. package/src/sass/utilities/_scroll-area.scss +0 -2
  530. package/src/sass/utilities/_spacing.scss +52 -34
  531. package/src/sass/utilities/_typescale.scss +8 -1
  532. package/src/sass/utilities/_visibility.scss +47 -76
  533. package/src/sass/utilities/_z-depth.scss +7 -4
  534. package/dist/js/chunks/chunk-33QVDDGR.mjs +0 -270
  535. package/dist/js/chunks/chunk-33QVDDGR.mjs.map +0 -7
  536. package/dist/js/chunks/chunk-45FER6RI.mjs +0 -59
  537. package/dist/js/chunks/chunk-45FER6RI.mjs.map +0 -7
  538. package/dist/js/chunks/chunk-5CEAOLUA.mjs.map +0 -7
  539. package/dist/js/chunks/chunk-6VATUZC6.mjs +0 -295
  540. package/dist/js/chunks/chunk-6VATUZC6.mjs.map +0 -7
  541. package/dist/js/chunks/chunk-74MXKKLN.mjs.map +0 -7
  542. package/dist/js/chunks/chunk-AIURVCG6.mjs +0 -55
  543. package/dist/js/chunks/chunk-AIURVCG6.mjs.map +0 -7
  544. package/dist/js/chunks/chunk-BGZLF6JZ.mjs.map +0 -7
  545. package/dist/js/chunks/chunk-C6CHEWYP.mjs.map +0 -7
  546. package/dist/js/chunks/chunk-CK2XCICY.mjs.map +0 -7
  547. package/dist/js/chunks/chunk-CXXM2L4F.mjs +0 -344
  548. package/dist/js/chunks/chunk-CXXM2L4F.mjs.map +0 -7
  549. package/dist/js/chunks/chunk-DXGRXYYL.mjs.map +0 -7
  550. package/dist/js/chunks/chunk-FM5CZOUB.mjs.map +0 -7
  551. package/dist/js/chunks/chunk-GJL6GCIU.mjs.map +0 -7
  552. package/dist/js/chunks/chunk-K3HZMFMD.mjs +0 -135
  553. package/dist/js/chunks/chunk-K3HZMFMD.mjs.map +0 -7
  554. package/dist/js/chunks/chunk-KHXZ2A4K.mjs.map +0 -7
  555. package/dist/js/chunks/chunk-KQACNQ22.mjs +0 -7
  556. package/dist/js/chunks/chunk-KQACNQ22.mjs.map +0 -7
  557. package/dist/js/chunks/chunk-KUFHW3DS.mjs.map +0 -7
  558. package/dist/js/chunks/chunk-KVJAVDBC.mjs.map +0 -7
  559. package/dist/js/chunks/chunk-L27Q6ZMI.mjs.map +0 -7
  560. package/dist/js/chunks/chunk-LQWUDNHZ.mjs.map +0 -7
  561. package/dist/js/chunks/chunk-M372EDXD.mjs +0 -322
  562. package/dist/js/chunks/chunk-M372EDXD.mjs.map +0 -7
  563. package/dist/js/chunks/chunk-M3MURWMB.mjs +0 -82
  564. package/dist/js/chunks/chunk-M3MURWMB.mjs.map +0 -7
  565. package/dist/js/chunks/chunk-NUHMOAOY.mjs.map +0 -7
  566. package/dist/js/chunks/chunk-OWG3LMUL.mjs +0 -169
  567. package/dist/js/chunks/chunk-OWG3LMUL.mjs.map +0 -7
  568. package/dist/js/chunks/chunk-PD6HYHAE.mjs +0 -48
  569. package/dist/js/chunks/chunk-PD6HYHAE.mjs.map +0 -7
  570. package/dist/js/chunks/chunk-PDG64UHF.mjs.map +0 -7
  571. package/dist/js/chunks/chunk-PO3AXVR3.mjs +0 -546
  572. package/dist/js/chunks/chunk-PO3AXVR3.mjs.map +0 -7
  573. package/dist/js/chunks/chunk-QYGK36OG.mjs +0 -181
  574. package/dist/js/chunks/chunk-QYGK36OG.mjs.map +0 -7
  575. package/dist/js/chunks/chunk-SFI2U4YW.mjs.map +0 -7
  576. package/dist/js/chunks/chunk-SMY7GJSS.mjs.map +0 -7
  577. package/dist/js/chunks/chunk-TCCA2HDG.mjs +0 -414
  578. package/dist/js/chunks/chunk-TCCA2HDG.mjs.map +0 -7
  579. package/dist/js/chunks/chunk-TSZYSW7F.mjs.map +0 -7
  580. package/dist/js/chunks/chunk-UAZSDUVP.mjs.map +0 -7
  581. package/dist/js/chunks/chunk-UBRZZWRA.mjs +0 -127
  582. package/dist/js/chunks/chunk-UBRZZWRA.mjs.map +0 -7
  583. package/dist/js/chunks/chunk-UCOE7ZDL.mjs +0 -287
  584. package/dist/js/chunks/chunk-UCOE7ZDL.mjs.map +0 -7
  585. package/dist/js/chunks/chunk-UETTGDLI.mjs.map +0 -7
  586. package/dist/js/chunks/chunk-UNCRDLP6.mjs +0 -136
  587. package/dist/js/chunks/chunk-UNCRDLP6.mjs.map +0 -7
  588. package/dist/js/chunks/chunk-VGNYF6FB.mjs.map +0 -7
  589. package/dist/js/chunks/chunk-VGPGBNGL.mjs +0 -68
  590. package/dist/js/chunks/chunk-VGPGBNGL.mjs.map +0 -7
  591. package/dist/js/chunks/chunk-VKAUVTQY.mjs +0 -1
  592. package/dist/js/chunks/chunk-VM4FTS7L.mjs +0 -48
  593. package/dist/js/chunks/chunk-VM4FTS7L.mjs.map +0 -7
  594. package/dist/js/chunks/chunk-WDK4T63U.mjs.map +0 -7
  595. package/dist/js/chunks/chunk-WOCCTVUF.mjs +0 -185
  596. package/dist/js/chunks/chunk-WOCCTVUF.mjs.map +0 -7
  597. package/dist/js/chunks/chunk-WQYN5L4E.mjs +0 -107
  598. package/dist/js/chunks/chunk-WQYN5L4E.mjs.map +0 -7
  599. package/dist/js/chunks/chunk-X4ISMKE2.mjs.map +0 -7
  600. package/dist/js/chunks/chunk-XAEAEHIX.mjs.map +0 -7
  601. package/dist/js/chunks/chunk-ZX6M7SWO.mjs.map +0 -7
  602. /package/dist/js/chunks/{chunk-VKAUVTQY.mjs.map → chunk-GNRSYMVH.mjs.map} +0 -0
@@ -1,31 +1,39 @@
1
+ @use "sass:math";
1
2
  @use "../abstracts" as *;
2
3
 
3
4
  // Progress. Anatomy is the HTML:
4
5
  // <progress class="progress" value="70" max="100"> determinate bar
5
6
  // <progress class="progress"> indeterminate bar
6
- // <span class="preloader" role="status"> circular spinner
7
+ // <span class="progress circular" role="status"> circular spinner
7
8
  //
8
9
  // Linear aliases: .progress > .determinate / .indeterminate, and
9
10
  // --md-comp-progress-value on a bare div.progress.
10
11
  //
12
+ // Linear modifiers, from M3 Expressive: .stop puts a dot in the indicator
13
+ // colour at the track's end, so the end still reads where the track's own
14
+ // contrast falls short; .wavy draws the indicator as a wave over a thin
15
+ // track. A circular indicator takes .wavy too.
16
+ //
11
17
  // Tokens:
12
18
  // --md-comp-progress-track
13
19
  // --md-comp-progress-indicator
14
20
  // --md-comp-progress-thickness 4px
15
21
  // --md-comp-progress-shape 4px
16
22
  // --md-comp-progress-value determinate fill (optional)
23
+ // --md-comp-progress-stop-size 4px, the .stop dot
24
+ // --md-comp-progress-wavelength 40px, the .wavy indicator's wavelength
17
25
  // --md-comp-progress-circular-size 48px
18
26
  // --md-comp-progress-circular-thickness 4px
19
27
 
20
28
  // M3 names this component "Progress indicators", linear and circular. The
21
- // class is `.progress`; `.preloader` is the older name for the circular
22
- // one and stays as an alias, as does `.progress.circular`.
23
- .progress,
24
- .preloader {
29
+ // class is `.progress`, and `.progress.circular` is the circular one.
30
+ .progress {
25
31
  --md-comp-progress-track: var(--md-sys-color-secondary-container);
26
32
  --md-comp-progress-indicator: var(--md-sys-color-primary);
27
33
  --md-comp-progress-thickness: 4px;
28
- --md-comp-progress-shape: 4px;
34
+ --md-comp-progress-shape: var(--md-sys-shape-corner-extra-small);
35
+ --md-comp-progress-stop-size: 4px;
36
+ --md-comp-progress-wavelength: 40px;
29
37
  --md-comp-progress-circular-size: 48px;
30
38
  --md-comp-progress-circular-thickness: 4px;
31
39
  }
@@ -44,9 +52,10 @@
44
52
  overflow: hidden;
45
53
  border: 0;
46
54
  border-radius: var(--md-comp-progress-shape);
47
- background-color: var(--md-comp-progress-track);
55
+ // The track, under the .stop dot when there is one. .wavy narrows the track
56
+ // to a stripe; the layers are custom properties so the two combine.
57
+ background: var(--_progress-stop, none), var(--_progress-track, var(--md-comp-progress-track));
48
58
  appearance: none;
49
- -webkit-appearance: none;
50
59
  }
51
60
 
52
61
  .progress:not(.circular) {
@@ -57,7 +66,7 @@ progress.progress {
57
66
  vertical-align: baseline;
58
67
 
59
68
  &::-webkit-progress-bar {
60
- background-color: var(--md-comp-progress-track);
69
+ background: var(--_progress-stop, none), var(--_progress-track, var(--md-comp-progress-track));
61
70
  border-radius: var(--md-comp-progress-shape);
62
71
  }
63
72
 
@@ -84,6 +93,47 @@ progress.progress {
84
93
  }
85
94
  }
86
95
 
96
+ // The end stop, at the inline end of the track.
97
+ .progress.stop:not(.circular) {
98
+ --_progress-stop-at: calc(100% - var(--md-comp-progress-thickness) / 2);
99
+ --_progress-stop: radial-gradient(
100
+ circle at var(--_progress-stop-at) 50%,
101
+ var(--md-comp-progress-indicator) calc(var(--md-comp-progress-stop-size) / 2),
102
+ transparent calc(var(--md-comp-progress-stop-size) / 2 + 0.5px)
103
+ ) no-repeat;
104
+
105
+ &:dir(rtl) {
106
+ --_progress-stop-at: calc(var(--md-comp-progress-thickness) / 2);
107
+ }
108
+ }
109
+
110
+ // The wavy indicator: a 4px wave, 3px either side of the track's middle,
111
+ // drawn by masking the indicator with one wavelength repeated along it.
112
+ $_wave: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='14'%3E%3Cpath d='M0 7C6.67 3 13.33 3 20 7S33.33 11 40 7' fill='none' stroke='%23000' stroke-width='4' stroke-linecap='round'/%3E%3C/svg%3E");
113
+
114
+ .progress.wavy:not(.circular) {
115
+ --_progress-track: linear-gradient(var(--md-comp-progress-track) 0 0) center / 100% var(--md-comp-progress-thickness) no-repeat;
116
+ --_progress-wave: #{$_wave} repeat-x 0 50% / var(--md-comp-progress-wavelength) 14px;
117
+
118
+ height: 14px;
119
+ border-radius: 0;
120
+ }
121
+
122
+ .progress.wavy:not(.circular) > .determinate,
123
+ .progress.wavy:not(.circular) > .indeterminate::before,
124
+ .progress.wavy:not(.circular) > .indeterminate::after,
125
+ progress.progress.wavy::-webkit-progress-value,
126
+ progress.progress.wavy:indeterminate::before,
127
+ progress.progress.wavy:indeterminate::after {
128
+ mask: var(--_progress-wave);
129
+ }
130
+
131
+ // Firefox's own pseudo-element, kept out of the list above: Chromium drops a
132
+ // list naming a pseudo-element it does not know.
133
+ progress.progress.wavy::-moz-progress-bar {
134
+ mask: var(--_progress-wave);
135
+ }
136
+
87
137
  @keyframes progress-indeterminate-moz {
88
138
  from { margin-inline-start: -40%; margin-inline-end: 100%; }
89
139
  to { margin-inline-start: 100%; margin-inline-end: -40%; }
@@ -95,7 +145,7 @@ progress.progress {
95
145
  inset-inline: 0 auto;
96
146
  width: var(--md-comp-progress-value, 0%);
97
147
  background-color: var(--md-comp-progress-indicator);
98
- transition: width 0.3s linear;
148
+ transition: width var(--md-sys-motion-duration-medium2) linear;
99
149
  }
100
150
 
101
151
  // Bare div.progress with a value token, no child. :not(.circular) because a
@@ -112,7 +162,7 @@ $_bare: ".progress:not(:is(progress)):not(.circular):not(:has(> .determinate, >
112
162
  inset-inline: 0 auto;
113
163
  width: var(--md-comp-progress-value, 0%);
114
164
  background-color: var(--md-comp-progress-indicator);
115
- transition: width 0.3s linear;
165
+ transition: width var(--md-sys-motion-duration-medium2) linear;
116
166
  }
117
167
 
118
168
  &:not([style*="--md-comp-progress-value"])::after {
@@ -121,6 +171,10 @@ $_bare: ".progress:not(:is(progress)):not(.circular):not(:has(> .determinate, >
121
171
  }
122
172
  }
123
173
 
174
+ #{$_bare}.wavy::after {
175
+ mask: var(--_progress-wave);
176
+ }
177
+
124
178
  .progress > .indeterminate {
125
179
  background-color: transparent;
126
180
  }
@@ -162,9 +216,8 @@ progress.progress:indeterminate {
162
216
  // Circular — one element
163
217
  // ---------------------------------------------------------------------------
164
218
 
165
- // The circular indicator. `.progress.circular` is the M3-aligned name;
166
- // `.preloader` remains a compatibility alias.
167
- :is(.preloader, .progress.circular) {
219
+ // The circular indicator.
220
+ .progress.circular {
168
221
  box-sizing: border-box;
169
222
  display: inline-block;
170
223
  width: var(--md-comp-progress-circular-size);
@@ -180,11 +233,6 @@ progress.progress:indeterminate {
180
233
  transparent calc(100% - var(--md-comp-progress-circular-thickness)),
181
234
  #000 0
182
235
  );
183
- -webkit-mask: radial-gradient(
184
- farthest-side,
185
- transparent calc(100% - var(--md-comp-progress-circular-thickness)),
186
- #000 0
187
- );
188
236
  animation: preloader-rotate 1.4s linear infinite;
189
237
  vertical-align: middle;
190
238
 
@@ -202,13 +250,66 @@ progress.progress:indeterminate {
202
250
  }
203
251
  }
204
252
 
253
+ // Wavy circular: the indicator is a wave round the ring, 10 waves of 1.5
254
+ // units in a 48-unit box, over a thin plain track. The element draws
255
+ // nothing itself; ::before is the indicator and ::after the determinate
256
+ // track, each masked to its own ring.
257
+ @function _wave-ring($waves: 10, $amplitude: 1.5, $radius: 20, $steps: 80) {
258
+ $path: "";
259
+ @for $i from 0 through $steps {
260
+ $angle: math.div($i, $steps) * 2 * math.$pi;
261
+ $r: $radius + $amplitude * math.sin($waves * $angle);
262
+ $x: math.div(math.round((24 + $r * math.cos($angle)) * 10), 10);
263
+ $y: math.div(math.round((24 + $r * math.sin($angle)) * 10), 10);
264
+ $command: "L";
265
+ @if $i == 0 {
266
+ $command: "M";
267
+ }
268
+ $path: "#{$path}#{$command}#{$x} #{$y}";
269
+ }
270
+ @return url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Cpath d='#{$path}Z' fill='none' stroke='%23000' stroke-width='4' stroke-linejoin='round'/%3E%3C/svg%3E");
271
+ }
272
+
273
+ .progress.circular.wavy {
274
+ position: relative;
275
+ // The pseudo-elements carry their own masks; a rounded clip as well
276
+ // leaves a hairline at the edge in WebKit.
277
+ overflow: visible;
278
+ background: none;
279
+ mask: none;
280
+
281
+ &::before,
282
+ &::after {
283
+ content: "";
284
+ position: absolute;
285
+ inset: 0;
286
+ }
287
+
288
+ &::before {
289
+ background: conic-gradient(var(--md-comp-progress-indicator) 0 90deg, transparent 0);
290
+ mask: _wave-ring() center / 100% 100% no-repeat;
291
+ }
292
+
293
+ &.determinate::before {
294
+ background: conic-gradient(var(--md-comp-progress-indicator) 0 var(--md-comp-progress-value, 0%), transparent 0);
295
+ }
296
+
297
+ // The track: a 2-unit ring through the middle of the wave, after the fill.
298
+ &.determinate::after {
299
+ background: conic-gradient(
300
+ transparent 0 var(--md-comp-progress-value, 0%),
301
+ color-mix(in oklab, var(--md-comp-progress-indicator) 20%, transparent) 0
302
+ );
303
+ mask: radial-gradient(farthest-side, transparent 79%, #000 79.5% 87%, transparent 87.5% 100%);
304
+ }
305
+ }
306
+
205
307
  @keyframes preloader-rotate {
206
308
  to { transform: rotate(1turn); }
207
309
  }
208
310
 
209
311
  @media (forced-colors: active) {
210
- .progress,
211
- .preloader {
312
+ .progress {
212
313
  forced-color-adjust: none;
213
314
  }
214
315
 
@@ -237,16 +338,40 @@ progress.progress:indeterminate {
237
338
  animation: none;
238
339
  }
239
340
 
240
- :is(.preloader, .progress.circular) {
341
+ .progress.circular.wavy::before {
342
+ background: conic-gradient(CanvasText 0 90deg, transparent 0);
343
+ }
344
+
345
+ .progress.circular.wavy.determinate::before {
346
+ background: conic-gradient(CanvasText 0 var(--md-comp-progress-value, 0%), transparent 0);
347
+ }
348
+
349
+ .progress.circular.wavy.determinate::after {
350
+ background: conic-gradient(transparent 0 var(--md-comp-progress-value, 0%), GrayText 0);
351
+ }
352
+
353
+ .progress.circular {
241
354
  background: conic-gradient(CanvasText 0 90deg, transparent 90deg 360deg);
242
355
 
356
+ // The value fills the ring and the track is a 2px line through its
357
+ // middle, so the two differ in shape and not only in GrayText against
358
+ // CanvasText, which a theme can set close together.
243
359
  &.determinate {
244
- background: conic-gradient(
245
- CanvasText 0 var(--md-comp-progress-value, 0%),
246
- GrayText var(--md-comp-progress-value, 0%)
247
- );
360
+ background:
361
+ conic-gradient(CanvasText 0 var(--md-comp-progress-value, 0%), transparent 0),
362
+ radial-gradient(
363
+ farthest-side,
364
+ transparent calc(100% - var(--md-comp-progress-circular-thickness) / 2 - 1px),
365
+ GrayText 0 calc(100% - var(--md-comp-progress-circular-thickness) / 2 + 1px),
366
+ transparent 0
367
+ );
248
368
  }
249
369
  }
370
+
371
+ // A wavy ring draws on its pseudo-elements, so the element stays empty here too.
372
+ .progress.circular.wavy {
373
+ background: none;
374
+ }
250
375
  }
251
376
 
252
377
  @media (prefers-reduced-motion: reduce) {
@@ -256,7 +381,7 @@ progress.progress:indeterminate {
256
381
  progress.progress:indeterminate::before,
257
382
  progress.progress:indeterminate::after,
258
383
  #{$_bare}:not([style*="--md-comp-progress-value"])::after,
259
- :is(.preloader, .progress.circular) {
384
+ .progress.circular {
260
385
  animation: none;
261
386
  }
262
387
 
@@ -268,10 +393,6 @@ progress.progress:indeterminate {
268
393
  width: 40%;
269
394
  }
270
395
 
271
- .preloader {
272
- transform: none;
273
- }
274
-
275
396
  progress.progress:indeterminate::-moz-progress-bar {
276
397
  animation: none;
277
398
  }
@@ -0,0 +1,90 @@
1
+ @use "../abstracts" as *;
2
+
3
+ // Pull-to-refresh. The author's loading indicator, a direct child, hides at
4
+ // rest, comes down with a touch pull from the top, and stays while the page
5
+ // refreshes.
6
+ //
7
+ // <div class="pull-to-refresh">
8
+ // <span class="loading-indicator contained" role="status" aria-label="Refreshing"></span>
9
+ // <button type="button" class="text" data-refresh>Refresh</button>
10
+ // ...content
11
+ // </div>
12
+ //
13
+ // While a finger pulls, the script adds `.pulling` and sets
14
+ // `--pull-to-refresh-offset` (how far the indicator has come down) and
15
+ // `--pull-to-refresh-progress` (0 to 1 toward the threshold). A refresh sets
16
+ // `aria-busy="true"` until the page reports the finish, and announces the
17
+ // start and the finish in a `.pull-to-refresh-status` region it adds.
18
+ //
19
+ // Tokens:
20
+ // --md-comp-pull-to-refresh-indicator-offset 16px where the indicator rests while refreshing
21
+ // --md-comp-pull-to-refresh-motion default spatial spring, for the indicator's return
22
+ // --md-comp-pull-to-refresh-motion-duration its duration
23
+
24
+ .pull-to-refresh {
25
+ --md-comp-pull-to-refresh-indicator-offset: 16px;
26
+ --md-comp-pull-to-refresh-motion: var(--md-sys-motion-spring-default-spatial);
27
+ --md-comp-pull-to-refresh-motion-duration: var(--md-sys-motion-spring-default-spatial-duration);
28
+
29
+ // Stops the browser's own pull-to-refresh and scroll chaining.
30
+ overscroll-behavior-y: contain;
31
+
32
+ // Sticky with a negative end margin, so it stays at the top of the scroll
33
+ // area without taking space from the content under it.
34
+ > .loading-indicator {
35
+ position: sticky;
36
+ top: 0;
37
+ z-index: 1;
38
+ display: flex;
39
+ margin-inline: auto;
40
+ margin-block-end: calc(-1 * var(--md-comp-loading-indicator-container-size));
41
+ // It covers the content under it while showing, and has nothing to press.
42
+ pointer-events: none;
43
+ visibility: hidden;
44
+ opacity: 0;
45
+ translate: 0 -100%;
46
+ // Hidden only once it has gone back up.
47
+ transition:
48
+ translate var(--md-comp-pull-to-refresh-motion-duration) var(--md-comp-pull-to-refresh-motion),
49
+ opacity var(--md-comp-pull-to-refresh-motion-duration) var(--md-comp-pull-to-refresh-motion),
50
+ visibility 0s linear var(--md-comp-pull-to-refresh-motion-duration);
51
+
52
+ &::before {
53
+ animation-play-state: paused;
54
+ }
55
+ }
56
+
57
+ &.pulling > .loading-indicator {
58
+ visibility: visible;
59
+ translate: 0 calc(var(--pull-to-refresh-offset, 0px) - 100%);
60
+ opacity: var(--pull-to-refresh-progress, 1);
61
+ transition: none;
62
+ }
63
+
64
+ &[aria-busy="true"] > .loading-indicator {
65
+ visibility: visible;
66
+ opacity: 1;
67
+ translate: 0 var(--md-comp-pull-to-refresh-indicator-offset);
68
+ // Shown at once; only hiding waits for the motion.
69
+ transition-delay: 0s;
70
+
71
+ &::before {
72
+ animation-play-state: running;
73
+ }
74
+ }
75
+ }
76
+
77
+ .pull-to-refresh-status {
78
+ @include visually-hidden;
79
+ }
80
+
81
+ // A container that does not scroll pulls the page, so the page's own pull stops too.
82
+ :root:has(.pull-to-refresh) {
83
+ overscroll-behavior-y: contain;
84
+ }
85
+
86
+ @media (prefers-reduced-motion: reduce) {
87
+ .pull-to-refresh > .loading-indicator {
88
+ transition: none;
89
+ }
90
+ }
@@ -14,7 +14,10 @@
14
14
  // the submit button sends the form.
15
15
  //
16
16
  // Choices are outlined rows; a selected one fills with secondary-container,
17
- // the M3 colour for a selected item in a list.
17
+ // the M3 colour for a selected item in a list. With data-shortcuts each
18
+ // choice ends in the letter that picks it, hidden from screen readers.
19
+ // With data-summary a .questionnaire-summary lists each answer before the
20
+ // submit button.
18
21
  //
19
22
  // Tokens:
20
23
  // --md-comp-questionnaire-choice-shape 12px
@@ -22,7 +25,7 @@
22
25
  // --md-comp-questionnaire-choice-selected-color secondary-container
23
26
 
24
27
  .questionnaire {
25
- --md-comp-questionnaire-choice-shape: 12px;
28
+ --md-comp-questionnaire-choice-shape: var(--md-sys-shape-corner-medium);
26
29
  --md-comp-questionnaire-choice-outline-color: var(--md-sys-color-outline-variant);
27
30
  --md-comp-questionnaire-choice-selected-color: var(--md-sys-color-secondary-container);
28
31
 
@@ -68,7 +71,10 @@
68
71
  display: none;
69
72
  }
70
73
 
74
+ counter-reset: questionnaire-choice;
75
+
71
76
  > label:has(> :is([type="radio"], [type="checkbox"])) {
77
+ counter-increment: questionnaire-choice;
72
78
  display: grid;
73
79
  grid-template-columns: auto 1fr;
74
80
  align-items: center;
@@ -79,7 +85,7 @@
79
85
  padding: 8px 16px;
80
86
  border: 1px solid var(--md-comp-questionnaire-choice-outline-color);
81
87
  border-radius: var(--md-comp-questionnaire-choice-shape);
82
- transition: background-color .2s ease, border-color .2s ease;
88
+ transition: background-color var(--md-sys-motion-duration-short4) ease, border-color var(--md-sys-motion-duration-short4) ease;
83
89
 
84
90
  p + & {
85
91
  margin-block-start: 16px;
@@ -115,6 +121,61 @@
115
121
  }
116
122
  }
117
123
 
124
+ &[data-shortcuts] > fieldset > label:has(> :is([type="radio"], [type="checkbox"])) {
125
+ grid-template-columns: auto 1fr auto;
126
+
127
+ &::after {
128
+ content: counter(questionnaire-choice, upper-alpha) / "";
129
+ grid-row: 1;
130
+ grid-column: 3;
131
+ min-width: 24px;
132
+ padding: 2px 6px;
133
+ border: 1px solid var(--md-comp-questionnaire-choice-outline-color);
134
+ border-radius: var(--md-sys-shape-corner-extra-small);
135
+ color: var(--md-sys-color-on-surface-variant);
136
+ text-align: center;
137
+ @include typescale("label-medium");
138
+ }
139
+ }
140
+
141
+ // The review step: each question, its answer and a button back to it.
142
+ > .questionnaire-summary {
143
+ outline: 0;
144
+
145
+ > dl {
146
+ margin: 0;
147
+ }
148
+
149
+ > dl > div {
150
+ display: grid;
151
+ grid-template-columns: 1fr auto;
152
+ align-items: center;
153
+ column-gap: 16px;
154
+ padding: 12px 0;
155
+ border-block-end: 1px solid var(--md-sys-color-outline-variant);
156
+ }
157
+
158
+ dt {
159
+ color: var(--md-sys-color-on-surface-variant);
160
+ @include typescale("label-large");
161
+ }
162
+
163
+ dd {
164
+ margin: 0;
165
+ }
166
+
167
+ dd:first-of-type {
168
+ grid-column: 1;
169
+ color: var(--md-sys-color-on-surface);
170
+ @include typescale("body-large");
171
+ }
172
+
173
+ dd:last-of-type {
174
+ grid-row: 1 / span 2;
175
+ grid-column: 2;
176
+ }
177
+ }
178
+
118
179
  // The selector matches the page footer's, which every <footer> gets.
119
180
  > footer:not(:has(> .navigation-bar:only-child)) {
120
181
  margin: 0;
@@ -142,3 +203,13 @@
142
203
  display: none;
143
204
  }
144
205
  }
206
+
207
+ // The footer's plain buttons are filled ones, which forced colors paint as
208
+ // Canvas; the button styles outline only a named container. `:where()` keeps
209
+ // the focus ring ahead of it.
210
+ @media (forced-colors: active) {
211
+ :where(.questionnaire > footer) > button:not(.outlined, .text) {
212
+ outline: 1px solid ButtonText;
213
+ outline-offset: -1px;
214
+ }
215
+ }
@@ -12,7 +12,11 @@
12
12
  // the cursor spoke and the tooltip are HTML placed by the --turn RadarChart
13
13
  // sets, a fraction of a turn clockwise from the top.
14
14
  //
15
- // Modifiers: .area fills each shape, .points marks each value, .sparkline
15
+ // A gap in a series breaks its outline; .area fills each unbroken run as a
16
+ // wedge from the middle.
17
+ //
18
+ // Modifiers: .area fills each shape, .points marks each value, .axis
19
+ // rings the grid at round values and labels the rings, .sparkline
16
20
  // is a small chart with no labels, legend or tooltip.
17
21
  // A series header cell's classes reach its shape: <th class="dashed">.
18
22
  //
@@ -25,16 +29,17 @@
25
29
  // on-surface-variant
26
30
 
27
31
  @include chart("radar-chart");
32
+ @include chart-axis("radar-chart", $beside: false);
28
33
 
29
34
  .radar-chart {
30
35
  --md-comp-radar-chart-line-width: 2px;
31
- --md-comp-radar-chart-label-room: 80px;
36
+ --md-comp-radar-chart-label-room: #{rem(80px)};
32
37
  // How far past the rim a label starts.
33
38
  --radar-chart-label-offset: 8px;
34
39
 
35
40
  &.sparkline {
36
41
  --md-comp-radar-chart-line-width: 1.5px;
37
- --md-comp-radar-chart-label-room: 0px;
42
+ --md-comp-radar-chart-label-room: #{rem(0px)};
38
43
  --radar-chart-label-offset: 0px;
39
44
  }
40
45
  }
@@ -58,6 +63,26 @@
58
63
  background: none;
59
64
  }
60
65
 
66
+ // .axis rings the grid at round values and labels each ring up the top
67
+ // spoke. Zero, the middle, goes unlabelled.
68
+ .radar-chart-axis > li {
69
+ inset-inline: auto;
70
+ left: 50%;
71
+ top: calc(var(--at, 0%) / 2);
72
+ border: 0;
73
+
74
+ &:first-child {
75
+ display: none;
76
+ }
77
+ }
78
+
79
+ .radar-chart-axis > li > span {
80
+ inset: auto auto auto 4px;
81
+ width: auto;
82
+ padding: 0;
83
+ overflow: visible;
84
+ }
85
+
61
86
  .radar-chart-web {
62
87
  position: absolute;
63
88
  inset: 0;
@@ -86,12 +111,19 @@
86
111
  }
87
112
 
88
113
  .radar-chart-shape {
89
- fill: var(--radar-chart-color);
90
- fill-opacity: 0;
114
+ fill: none;
91
115
  stroke-width: var(--md-comp-radar-chart-line-width);
116
+ }
117
+
118
+ .radar-chart-area {
119
+ fill: var(--radar-chart-color);
120
+ fill-opacity: 0.24;
121
+ }
92
122
 
123
+ .radar-chart-shape,
124
+ .radar-chart-area {
93
125
  @media (prefers-reduced-motion: no-preference) {
94
- transition: opacity 400ms cubic-bezier(0.2, 0, 0, 1), scale 400ms cubic-bezier(0.2, 0, 0, 1);
126
+ transition: opacity var(--md-sys-motion-duration-medium4) var(--md-sys-motion-easing-standard), scale var(--md-sys-motion-duration-medium4) var(--md-sys-motion-easing-standard);
95
127
 
96
128
  @starting-style {
97
129
  opacity: 0;
@@ -100,10 +132,6 @@
100
132
  }
101
133
  }
102
134
 
103
- .radar-chart.area .radar-chart-shape {
104
- fill-opacity: 0.24;
105
- }
106
-
107
135
  .radar-chart-series.dashed .radar-chart-shape {
108
136
  stroke-dasharray: 2 6;
109
137
  }