@expressivecss/expressive 0.15.0 → 0.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (609) hide show
  1. package/CHANGELOG.md +1807 -1
  2. package/README.md +9 -8
  3. package/dist/css/expressive.css +19176 -11958
  4. package/dist/css/expressive.css.map +1 -1
  5. package/dist/css/expressive.min.css +1 -1
  6. package/dist/css/expressive.min.css.map +1 -1
  7. package/dist/fonts/LICENSE-noto-sans-arabic +93 -0
  8. package/dist/fonts/LICENSE-noto-sans-hebrew +93 -0
  9. package/dist/fonts/LICENSE-noto-sans-thai +93 -0
  10. package/dist/fonts/material-symbols-outlined.woff2 +0 -0
  11. package/dist/fonts/material-symbols-rounded.woff2 +0 -0
  12. package/dist/fonts/material-symbols-sharp.woff2 +0 -0
  13. package/dist/fonts/noto-sans-arabic-arabic-400.woff2 +0 -0
  14. package/dist/fonts/noto-sans-arabic-arabic-500.woff2 +0 -0
  15. package/dist/fonts/noto-sans-arabic-arabic-700.woff2 +0 -0
  16. package/dist/fonts/noto-sans-cyrillic-400.woff2 +0 -0
  17. package/dist/fonts/noto-sans-cyrillic-500.woff2 +0 -0
  18. package/dist/fonts/noto-sans-cyrillic-700.woff2 +0 -0
  19. package/dist/fonts/noto-sans-cyrillic-ext-400.woff2 +0 -0
  20. package/dist/fonts/noto-sans-cyrillic-ext-500.woff2 +0 -0
  21. package/dist/fonts/noto-sans-cyrillic-ext-700.woff2 +0 -0
  22. package/dist/fonts/noto-sans-devanagari-400.woff2 +0 -0
  23. package/dist/fonts/noto-sans-devanagari-500.woff2 +0 -0
  24. package/dist/fonts/noto-sans-devanagari-700.woff2 +0 -0
  25. package/dist/fonts/noto-sans-greek-400.woff2 +0 -0
  26. package/dist/fonts/noto-sans-greek-500.woff2 +0 -0
  27. package/dist/fonts/noto-sans-greek-700.woff2 +0 -0
  28. package/dist/fonts/noto-sans-greek-ext-400.woff2 +0 -0
  29. package/dist/fonts/noto-sans-greek-ext-500.woff2 +0 -0
  30. package/dist/fonts/noto-sans-greek-ext-700.woff2 +0 -0
  31. package/dist/fonts/noto-sans-hebrew-hebrew-400.woff2 +0 -0
  32. package/dist/fonts/noto-sans-hebrew-hebrew-500.woff2 +0 -0
  33. package/dist/fonts/noto-sans-hebrew-hebrew-700.woff2 +0 -0
  34. package/dist/fonts/noto-sans-latin-700.woff2 +0 -0
  35. package/dist/fonts/noto-sans-latin-ext-400.woff2 +0 -0
  36. package/dist/fonts/noto-sans-latin-ext-500.woff2 +0 -0
  37. package/dist/fonts/noto-sans-latin-ext-700.woff2 +0 -0
  38. package/dist/fonts/noto-sans-thai-thai-400.woff2 +0 -0
  39. package/dist/fonts/noto-sans-thai-thai-500.woff2 +0 -0
  40. package/dist/fonts/noto-sans-thai-thai-700.woff2 +0 -0
  41. package/dist/fonts/noto-sans-vietnamese-400.woff2 +0 -0
  42. package/dist/fonts/noto-sans-vietnamese-500.woff2 +0 -0
  43. package/dist/fonts/noto-sans-vietnamese-700.woff2 +0 -0
  44. package/dist/fonts/roboto-cyrillic-400.woff2 +0 -0
  45. package/dist/fonts/roboto-cyrillic-500.woff2 +0 -0
  46. package/dist/fonts/roboto-cyrillic-700.woff2 +0 -0
  47. package/dist/fonts/roboto-cyrillic-ext-400.woff2 +0 -0
  48. package/dist/fonts/roboto-cyrillic-ext-500.woff2 +0 -0
  49. package/dist/fonts/roboto-cyrillic-ext-700.woff2 +0 -0
  50. package/dist/fonts/roboto-greek-400.woff2 +0 -0
  51. package/dist/fonts/roboto-greek-500.woff2 +0 -0
  52. package/dist/fonts/roboto-greek-700.woff2 +0 -0
  53. package/dist/fonts/roboto-greek-ext-400.woff2 +0 -0
  54. package/dist/fonts/roboto-greek-ext-500.woff2 +0 -0
  55. package/dist/fonts/roboto-greek-ext-700.woff2 +0 -0
  56. package/dist/fonts/roboto-latin-700.woff2 +0 -0
  57. package/dist/fonts/roboto-latin-ext-400.woff2 +0 -0
  58. package/dist/fonts/roboto-latin-ext-500.woff2 +0 -0
  59. package/dist/fonts/roboto-latin-ext-700.woff2 +0 -0
  60. package/dist/fonts/roboto-vietnamese-400.woff2 +0 -0
  61. package/dist/fonts/roboto-vietnamese-500.woff2 +0 -0
  62. package/dist/fonts/roboto-vietnamese-700.woff2 +0 -0
  63. package/dist/js/chunks/chunk-26VUH75M.mjs +102 -0
  64. package/dist/js/chunks/chunk-26VUH75M.mjs.map +7 -0
  65. package/dist/js/chunks/chunk-2LFCOGC3.mjs +233 -0
  66. package/dist/js/chunks/chunk-2LFCOGC3.mjs.map +7 -0
  67. package/dist/js/chunks/{chunk-DXGRXYYL.mjs → chunk-36GELQGX.mjs} +29 -46
  68. package/dist/js/chunks/chunk-36GELQGX.mjs.map +7 -0
  69. package/dist/js/chunks/{chunk-74MXKKLN.mjs → chunk-3FKWIRHW.mjs} +15 -29
  70. package/dist/js/chunks/chunk-3FKWIRHW.mjs.map +7 -0
  71. package/dist/js/chunks/chunk-3KF65KGL.mjs +209 -0
  72. package/dist/js/chunks/chunk-3KF65KGL.mjs.map +7 -0
  73. package/dist/js/chunks/{chunk-KVJAVDBC.mjs → chunk-3KLZRQZI.mjs} +88 -116
  74. package/dist/js/chunks/chunk-3KLZRQZI.mjs.map +7 -0
  75. package/dist/js/chunks/{chunk-CK2XCICY.mjs → chunk-3XORNED5.mjs} +3 -11
  76. package/dist/js/chunks/chunk-3XORNED5.mjs.map +7 -0
  77. package/dist/js/chunks/chunk-4WBGAQN3.mjs +113 -0
  78. package/dist/js/chunks/chunk-4WBGAQN3.mjs.map +7 -0
  79. package/dist/js/chunks/{chunk-FM5CZOUB.mjs → chunk-5F4URJHL.mjs} +19 -30
  80. package/dist/js/chunks/chunk-5F4URJHL.mjs.map +7 -0
  81. package/dist/js/chunks/chunk-67UNY7RH.mjs +299 -0
  82. package/dist/js/chunks/chunk-67UNY7RH.mjs.map +7 -0
  83. package/dist/js/chunks/chunk-7CXNATJS.mjs +97 -0
  84. package/dist/js/chunks/chunk-7CXNATJS.mjs.map +7 -0
  85. package/dist/js/chunks/{chunk-UETTGDLI.mjs → chunk-7X44MKEQ.mjs} +43 -48
  86. package/dist/js/chunks/chunk-7X44MKEQ.mjs.map +7 -0
  87. package/dist/js/chunks/chunk-7ZAMOMGY.mjs +440 -0
  88. package/dist/js/chunks/chunk-7ZAMOMGY.mjs.map +7 -0
  89. package/dist/js/chunks/chunk-AEG6LOAJ.mjs +54 -0
  90. package/dist/js/chunks/chunk-AEG6LOAJ.mjs.map +7 -0
  91. package/dist/js/chunks/chunk-AQNFCJJ5.mjs +135 -0
  92. package/dist/js/chunks/chunk-AQNFCJJ5.mjs.map +7 -0
  93. package/dist/js/chunks/chunk-B55LWKBM.mjs +75 -0
  94. package/dist/js/chunks/chunk-B55LWKBM.mjs.map +7 -0
  95. package/dist/js/chunks/chunk-BB5VXYXT.mjs +28 -0
  96. package/dist/js/chunks/chunk-BB5VXYXT.mjs.map +7 -0
  97. package/dist/js/chunks/chunk-BDATLH3H.mjs +108 -0
  98. package/dist/js/chunks/chunk-BDATLH3H.mjs.map +7 -0
  99. package/dist/js/chunks/chunk-CWMQOT4O.mjs +232 -0
  100. package/dist/js/chunks/chunk-CWMQOT4O.mjs.map +7 -0
  101. package/dist/js/chunks/chunk-CY2CTOVM.mjs +81 -0
  102. package/dist/js/chunks/chunk-CY2CTOVM.mjs.map +7 -0
  103. package/dist/js/chunks/{chunk-NUHMOAOY.mjs → chunk-DWA5UYLJ.mjs} +363 -218
  104. package/dist/js/chunks/chunk-DWA5UYLJ.mjs.map +7 -0
  105. package/dist/js/chunks/chunk-EB2V4OKL.mjs +79 -0
  106. package/dist/js/chunks/chunk-EB2V4OKL.mjs.map +7 -0
  107. package/dist/js/chunks/chunk-EWO662ZC.mjs +188 -0
  108. package/dist/js/chunks/chunk-EWO662ZC.mjs.map +7 -0
  109. package/dist/js/chunks/{chunk-ZX6M7SWO.mjs → chunk-F7LAKFMX.mjs} +320 -141
  110. package/dist/js/chunks/chunk-F7LAKFMX.mjs.map +7 -0
  111. package/dist/js/chunks/{chunk-L27Q6ZMI.mjs → chunk-FNIIH2LU.mjs} +20 -33
  112. package/dist/js/chunks/chunk-FNIIH2LU.mjs.map +7 -0
  113. package/dist/js/chunks/chunk-GE3YMFS6.mjs +15 -0
  114. package/dist/js/chunks/chunk-GE3YMFS6.mjs.map +7 -0
  115. package/dist/js/chunks/chunk-GFWYMWYN.mjs +125 -0
  116. package/dist/js/chunks/chunk-GFWYMWYN.mjs.map +7 -0
  117. package/dist/js/chunks/chunk-GNRSYMVH.mjs +1 -0
  118. package/dist/js/chunks/chunk-H5ISU45X.mjs +87 -0
  119. package/dist/js/chunks/chunk-H5ISU45X.mjs.map +7 -0
  120. package/dist/js/chunks/{chunk-GJL6GCIU.mjs → chunk-H6YIKFAQ.mjs} +311 -186
  121. package/dist/js/chunks/chunk-H6YIKFAQ.mjs.map +7 -0
  122. package/dist/js/chunks/{chunk-BGZLF6JZ.mjs → chunk-HEH7E3KO.mjs} +155 -35
  123. package/dist/js/chunks/chunk-HEH7E3KO.mjs.map +7 -0
  124. package/dist/js/chunks/chunk-HQRLBTNM.mjs +152 -0
  125. package/dist/js/chunks/chunk-HQRLBTNM.mjs.map +7 -0
  126. package/dist/js/chunks/chunk-I2F7MLUU.mjs +137 -0
  127. package/dist/js/chunks/chunk-I2F7MLUU.mjs.map +7 -0
  128. package/dist/js/chunks/chunk-IQOTGGHX.mjs +797 -0
  129. package/dist/js/chunks/chunk-IQOTGGHX.mjs.map +7 -0
  130. package/dist/js/chunks/chunk-JH3YWKA6.mjs +225 -0
  131. package/dist/js/chunks/chunk-JH3YWKA6.mjs.map +7 -0
  132. package/dist/js/chunks/chunk-JOLJAYIJ.mjs +7 -0
  133. package/dist/js/chunks/chunk-JOLJAYIJ.mjs.map +7 -0
  134. package/dist/js/chunks/{chunk-VGNYF6FB.mjs → chunk-KOTGMCMI.mjs} +116 -24
  135. package/dist/js/chunks/chunk-KOTGMCMI.mjs.map +7 -0
  136. package/dist/js/chunks/{chunk-LQWUDNHZ.mjs → chunk-LC4O5LFS.mjs} +21 -45
  137. package/dist/js/chunks/chunk-LC4O5LFS.mjs.map +7 -0
  138. package/dist/js/chunks/chunk-LEF33SCP.mjs +127 -0
  139. package/dist/js/chunks/chunk-LEF33SCP.mjs.map +7 -0
  140. package/dist/js/chunks/{chunk-PDG64UHF.mjs → chunk-LFORZRPH.mjs} +21 -23
  141. package/dist/js/chunks/chunk-LFORZRPH.mjs.map +7 -0
  142. package/dist/js/chunks/chunk-LWLNV5EC.mjs +451 -0
  143. package/dist/js/chunks/chunk-LWLNV5EC.mjs.map +7 -0
  144. package/dist/js/chunks/chunk-LXRHUQAX.mjs +491 -0
  145. package/dist/js/chunks/chunk-LXRHUQAX.mjs.map +7 -0
  146. package/dist/js/chunks/{chunk-SFI2U4YW.mjs → chunk-MA2SZZFB.mjs} +82 -111
  147. package/dist/js/chunks/chunk-MA2SZZFB.mjs.map +7 -0
  148. package/dist/js/chunks/chunk-MDBZAMIV.mjs +121 -0
  149. package/dist/js/chunks/chunk-MDBZAMIV.mjs.map +7 -0
  150. package/dist/js/chunks/chunk-NODZ5VAD.mjs +75 -0
  151. package/dist/js/chunks/chunk-NODZ5VAD.mjs.map +7 -0
  152. package/dist/js/chunks/chunk-O2WJB6TH.mjs +365 -0
  153. package/dist/js/chunks/chunk-O2WJB6TH.mjs.map +7 -0
  154. package/dist/js/chunks/chunk-PCABY5BN.mjs +35 -0
  155. package/dist/js/chunks/chunk-PCABY5BN.mjs.map +7 -0
  156. package/dist/js/chunks/chunk-PWKYVMND.mjs +120 -0
  157. package/dist/js/chunks/chunk-PWKYVMND.mjs.map +7 -0
  158. package/dist/js/chunks/{chunk-SMY7GJSS.mjs → chunk-QHZZT7YO.mjs} +66 -38
  159. package/dist/js/chunks/chunk-QHZZT7YO.mjs.map +7 -0
  160. package/dist/js/chunks/chunk-QND56EW2.mjs +439 -0
  161. package/dist/js/chunks/chunk-QND56EW2.mjs.map +7 -0
  162. package/dist/js/chunks/chunk-QNODAANY.mjs +376 -0
  163. package/dist/js/chunks/chunk-QNODAANY.mjs.map +7 -0
  164. package/dist/js/chunks/{chunk-KHXZ2A4K.mjs → chunk-QRO5FV3I.mjs} +156 -73
  165. package/dist/js/chunks/chunk-QRO5FV3I.mjs.map +7 -0
  166. package/dist/js/chunks/chunk-R7A7JRC5.mjs +440 -0
  167. package/dist/js/chunks/chunk-R7A7JRC5.mjs.map +7 -0
  168. package/dist/js/chunks/chunk-RKG2CBFE.mjs +74 -0
  169. package/dist/js/chunks/chunk-RKG2CBFE.mjs.map +7 -0
  170. package/dist/js/chunks/{chunk-XAEAEHIX.mjs → chunk-RSNS5OYS.mjs} +38 -25
  171. package/dist/js/chunks/chunk-RSNS5OYS.mjs.map +7 -0
  172. package/dist/js/chunks/{chunk-X4ISMKE2.mjs → chunk-RUDYMEJ3.mjs} +7 -6
  173. package/dist/js/chunks/chunk-RUDYMEJ3.mjs.map +7 -0
  174. package/dist/js/chunks/chunk-STJR62SU.mjs +161 -0
  175. package/dist/js/chunks/chunk-STJR62SU.mjs.map +7 -0
  176. package/dist/js/chunks/chunk-SUSD4UTN.mjs +220 -0
  177. package/dist/js/chunks/chunk-SUSD4UTN.mjs.map +7 -0
  178. package/dist/js/chunks/{chunk-5CEAOLUA.mjs → chunk-SYBOA5HC.mjs} +26 -48
  179. package/dist/js/chunks/chunk-SYBOA5HC.mjs.map +7 -0
  180. package/dist/js/chunks/chunk-T4MOBP3J.mjs +108 -0
  181. package/dist/js/chunks/chunk-T4MOBP3J.mjs.map +7 -0
  182. package/dist/js/chunks/chunk-TM7HPGTV.mjs +342 -0
  183. package/dist/js/chunks/chunk-TM7HPGTV.mjs.map +7 -0
  184. package/dist/js/chunks/{chunk-C6CHEWYP.mjs → chunk-TMQDZSDC.mjs} +71 -35
  185. package/dist/js/chunks/chunk-TMQDZSDC.mjs.map +7 -0
  186. package/dist/js/chunks/chunk-TVSX5YA2.mjs +48 -0
  187. package/dist/js/chunks/chunk-TVSX5YA2.mjs.map +7 -0
  188. package/dist/js/chunks/chunk-UHO5CV6K.mjs +80 -0
  189. package/dist/js/chunks/chunk-UHO5CV6K.mjs.map +7 -0
  190. package/dist/js/chunks/chunk-UKCNELUN.mjs +223 -0
  191. package/dist/js/chunks/chunk-UKCNELUN.mjs.map +7 -0
  192. package/dist/js/chunks/chunk-UKQK5GWR.mjs +167 -0
  193. package/dist/js/chunks/chunk-UKQK5GWR.mjs.map +7 -0
  194. package/dist/js/chunks/{chunk-TSZYSW7F.mjs → chunk-UTSLYQ65.mjs} +21 -48
  195. package/dist/js/chunks/chunk-UTSLYQ65.mjs.map +7 -0
  196. package/dist/js/chunks/chunk-VS5OJBOD.mjs +108 -0
  197. package/dist/js/chunks/chunk-VS5OJBOD.mjs.map +7 -0
  198. package/dist/js/chunks/chunk-VZMROW5A.mjs +759 -0
  199. package/dist/js/chunks/chunk-VZMROW5A.mjs.map +7 -0
  200. package/dist/js/chunks/chunk-W6FAL3TI.mjs +38 -0
  201. package/dist/js/chunks/chunk-W6FAL3TI.mjs.map +7 -0
  202. package/dist/js/chunks/chunk-XB6Y7P5W.mjs +69 -0
  203. package/dist/js/chunks/chunk-XB6Y7P5W.mjs.map +7 -0
  204. package/dist/js/chunks/chunk-XDAMOMVD.mjs +226 -0
  205. package/dist/js/chunks/chunk-XDAMOMVD.mjs.map +7 -0
  206. package/dist/js/chunks/{chunk-WDK4T63U.mjs → chunk-XJPMW5SP.mjs} +247 -172
  207. package/dist/js/chunks/chunk-XJPMW5SP.mjs.map +7 -0
  208. package/dist/js/chunks/{chunk-KUFHW3DS.mjs → chunk-YKANQILZ.mjs} +16 -21
  209. package/dist/js/chunks/chunk-YKANQILZ.mjs.map +7 -0
  210. package/dist/js/chunks/chunk-YLZOJLDI.mjs +175 -0
  211. package/dist/js/chunks/chunk-YLZOJLDI.mjs.map +7 -0
  212. package/dist/js/chunks/chunk-ZK7YY322.mjs +514 -0
  213. package/dist/js/chunks/chunk-ZK7YY322.mjs.map +7 -0
  214. package/dist/js/expressive.cjs +10266 -3628
  215. package/dist/js/expressive.cjs.map +4 -4
  216. package/dist/js/expressive.js +10266 -3628
  217. package/dist/js/expressive.js.map +4 -4
  218. package/dist/js/expressive.min.js +23 -22
  219. package/dist/js/expressive.min.js.map +4 -4
  220. package/dist/js/expressive.mjs +181 -69
  221. package/dist/js/expressive.mjs.map +2 -2
  222. package/dist/js/internal/behaviors/bottomSheets.mjs +4 -3
  223. package/dist/js/internal/behaviors/copy.mjs +9 -0
  224. package/dist/js/internal/behaviors/copy.mjs.map +7 -0
  225. package/dist/js/internal/behaviors/dataTables.mjs +8 -0
  226. package/dist/js/internal/behaviors/dataTables.mjs.map +7 -0
  227. package/dist/js/internal/behaviors/dialogs.mjs +2 -2
  228. package/dist/js/internal/behaviors/forms.mjs +2 -2
  229. package/dist/js/internal/behaviors/imageCompare.mjs +8 -0
  230. package/dist/js/internal/behaviors/imageCompare.mjs.map +7 -0
  231. package/dist/js/internal/behaviors/lists.mjs +8 -0
  232. package/dist/js/internal/behaviors/lists.mjs.map +7 -0
  233. package/dist/js/internal/behaviors/paneResize.mjs +8 -0
  234. package/dist/js/internal/behaviors/paneResize.mjs.map +7 -0
  235. package/dist/js/internal/behaviors/sheetDrag.mjs +7 -2
  236. package/dist/js/internal/behaviors/sideSheets.mjs +4 -3
  237. package/dist/js/internal/behaviors/sortable.mjs +8 -0
  238. package/dist/js/internal/behaviors/sortable.mjs.map +7 -0
  239. package/dist/js/internal/behaviors/theme.mjs +8 -0
  240. package/dist/js/internal/behaviors/theme.mjs.map +7 -0
  241. package/dist/js/internal/behaviors/tour.mjs +8 -0
  242. package/dist/js/internal/behaviors/tour.mjs.map +7 -0
  243. package/dist/js/internal/behaviors/transferList.mjs +8 -0
  244. package/dist/js/internal/behaviors/transferList.mjs.map +7 -0
  245. package/dist/js/internal/components/appBar.mjs +3 -2
  246. package/dist/js/internal/components/autocomplete.mjs +5 -4
  247. package/dist/js/internal/components/backToTop.mjs +9 -0
  248. package/dist/js/internal/components/backToTop.mjs.map +7 -0
  249. package/dist/js/internal/components/barChart.mjs +5 -4
  250. package/dist/js/internal/components/buttonGroup.mjs +3 -2
  251. package/dist/js/internal/components/buttons.mjs +3 -3
  252. package/dist/js/internal/components/cards.mjs +3 -3
  253. package/dist/js/internal/components/carousel.mjs +3 -3
  254. package/dist/js/internal/components/cascader.mjs +10 -0
  255. package/dist/js/internal/components/cascader.mjs.map +7 -0
  256. package/dist/js/internal/components/characterCounter.mjs +3 -2
  257. package/dist/js/internal/components/chips.mjs +7 -5
  258. package/dist/js/internal/components/colorPicker.mjs +9 -0
  259. package/dist/js/internal/components/colorPicker.mjs.map +7 -0
  260. package/dist/js/internal/components/columnChart.mjs +4 -3
  261. package/dist/js/internal/components/commandPalette.mjs +3 -3
  262. package/dist/js/internal/components/confetti.mjs +3 -2
  263. package/dist/js/internal/components/currencyInput.mjs +9 -0
  264. package/dist/js/internal/components/currencyInput.mjs.map +7 -0
  265. package/dist/js/internal/components/datepicker.mjs +12 -8
  266. package/dist/js/internal/components/expandingCard.mjs +3 -3
  267. package/dist/js/internal/components/funnelChart.mjs +10 -0
  268. package/dist/js/internal/components/funnelChart.mjs.map +7 -0
  269. package/dist/js/internal/components/heatmapChart.mjs +4 -3
  270. package/dist/js/internal/components/hoverCard.mjs +9 -0
  271. package/dist/js/internal/components/hoverCard.mjs.map +7 -0
  272. package/dist/js/internal/components/index.mjs +131 -65
  273. package/dist/js/internal/components/inputMask.mjs +9 -0
  274. package/dist/js/internal/components/inputMask.mjs.map +7 -0
  275. package/dist/js/internal/components/keypad.mjs +3 -3
  276. package/dist/js/internal/components/lightbox.mjs +3 -3
  277. package/dist/js/internal/components/lineChart.mjs +41 -4
  278. package/dist/js/internal/components/loadingOverlay.mjs +9 -0
  279. package/dist/js/internal/components/loadingOverlay.mjs.map +7 -0
  280. package/dist/js/internal/components/mapView.mjs +3 -3
  281. package/dist/js/internal/components/menu.mjs +3 -3
  282. package/dist/js/internal/components/menubar.mjs +10 -0
  283. package/dist/js/internal/components/menubar.mjs.map +7 -0
  284. package/dist/js/internal/components/messageScroller.mjs +3 -3
  285. package/dist/js/internal/components/mixedChart.mjs +5 -4
  286. package/dist/js/internal/components/navigationRail.mjs +3 -2
  287. package/dist/js/internal/components/particles.mjs +3 -2
  288. package/dist/js/internal/components/pieChart.mjs +4 -3
  289. package/dist/js/internal/components/pullToRefresh.mjs +9 -0
  290. package/dist/js/internal/components/pullToRefresh.mjs.map +7 -0
  291. package/dist/js/internal/components/questionnaire.mjs +3 -3
  292. package/dist/js/internal/components/radarChart.mjs +4 -3
  293. package/dist/js/internal/components/radialChart.mjs +4 -3
  294. package/dist/js/internal/components/registry.mjs +60 -41
  295. package/dist/js/internal/components/richTextEditor.mjs +3 -3
  296. package/dist/js/internal/components/sankeyChart.mjs +10 -0
  297. package/dist/js/internal/components/sankeyChart.mjs.map +7 -0
  298. package/dist/js/internal/components/scatterChart.mjs +10 -0
  299. package/dist/js/internal/components/scatterChart.mjs.map +7 -0
  300. package/dist/js/internal/components/scrollspy.mjs +3 -2
  301. package/dist/js/internal/components/select.mjs +5 -4
  302. package/dist/js/internal/components/showMore.mjs +9 -0
  303. package/dist/js/internal/components/showMore.mjs.map +7 -0
  304. package/dist/js/internal/components/slider.mjs +3 -3
  305. package/dist/js/internal/components/snackbar.mjs +2 -2
  306. package/dist/js/internal/components/swipeActions.mjs +9 -0
  307. package/dist/js/internal/components/swipeActions.mjs.map +7 -0
  308. package/dist/js/internal/components/tabs.mjs +3 -4
  309. package/dist/js/internal/components/timepicker.mjs +5 -4
  310. package/dist/js/internal/components/tooltip.mjs +3 -3
  311. package/dist/js/internal/components/treeSelect.mjs +14 -0
  312. package/dist/js/internal/components/treeSelect.mjs.map +7 -0
  313. package/dist/js/internal/components/treemapChart.mjs +10 -0
  314. package/dist/js/internal/components/treemapChart.mjs.map +7 -0
  315. package/dist/js/internal/core/component.mjs +6 -3
  316. package/dist/js/internal/core/formControl.mjs +12 -0
  317. package/dist/js/internal/core/formControl.mjs.map +7 -0
  318. package/dist/js/internal/core/imageURL.mjs +7 -0
  319. package/dist/js/internal/core/imageURL.mjs.map +7 -0
  320. package/dist/js/internal/core/spring.mjs +11 -0
  321. package/dist/js/internal/core/spring.mjs.map +7 -0
  322. package/dist/js/internal/core/utils.mjs +21 -3
  323. package/dist/js/internal/plugins/dockedDisplayPlugin.mjs +2 -2
  324. package/dist/js/internal/plugins/modalDisplayPlugin.mjs +13 -0
  325. package/dist/js/internal/plugins/modalDisplayPlugin.mjs.map +7 -0
  326. package/dist/js/modular.mjs +172 -69
  327. package/dist/types/behaviors/bottomSheets.d.ts +23 -5
  328. package/dist/types/behaviors/copy.d.ts +18 -0
  329. package/dist/types/behaviors/dataTables.d.ts +125 -0
  330. package/dist/types/behaviors/dialogs.d.ts +27 -1
  331. package/dist/types/behaviors/forms.d.ts +70 -4
  332. package/dist/types/behaviors/imageCompare.d.ts +13 -0
  333. package/dist/types/behaviors/lists.d.ts +12 -0
  334. package/dist/types/behaviors/paneResize.d.ts +29 -0
  335. package/dist/types/behaviors/sheetDrag.d.ts +18 -0
  336. package/dist/types/behaviors/sideSheets.d.ts +1 -1
  337. package/dist/types/behaviors/sortable.d.ts +28 -0
  338. package/dist/types/behaviors/theme.d.ts +22 -0
  339. package/dist/types/behaviors/tour.d.ts +36 -0
  340. package/dist/types/behaviors/transferList.d.ts +53 -0
  341. package/dist/types/components/appBar.d.ts +5 -6
  342. package/dist/types/components/autocomplete.d.ts +105 -20
  343. package/dist/types/components/backToTop.d.ts +36 -0
  344. package/dist/types/components/barChart.d.ts +3 -6
  345. package/dist/types/components/buttonGroup.d.ts +2 -4
  346. package/dist/types/components/buttons.d.ts +5 -5
  347. package/dist/types/components/cards.d.ts +3 -16
  348. package/dist/types/components/carousel.d.ts +16 -15
  349. package/dist/types/components/cascader.d.ts +130 -0
  350. package/dist/types/components/characterCounter.d.ts +2 -15
  351. package/dist/types/components/chips.d.ts +80 -19
  352. package/dist/types/components/colorPicker.d.ts +56 -0
  353. package/dist/types/components/columnChart.d.ts +23 -10
  354. package/dist/types/components/commandPalette.d.ts +11 -16
  355. package/dist/types/components/confetti.d.ts +2 -4
  356. package/dist/types/components/currencyInput.d.ts +60 -0
  357. package/dist/types/components/datepicker.d.ts +107 -56
  358. package/dist/types/components/expandingCard.d.ts +4 -6
  359. package/dist/types/components/funnelChart.d.ts +35 -0
  360. package/dist/types/components/heatmapChart.d.ts +42 -8
  361. package/dist/types/components/hoverCard.d.ts +59 -0
  362. package/dist/types/components/index.d.ts +16 -1
  363. package/dist/types/components/inputMask.d.ts +28 -0
  364. package/dist/types/components/keypad.d.ts +38 -6
  365. package/dist/types/components/lightbox.d.ts +14 -20
  366. package/dist/types/components/lineChart.d.ts +212 -12
  367. package/dist/types/components/loadingOverlay.d.ts +42 -0
  368. package/dist/types/components/mapView.d.ts +138 -27
  369. package/dist/types/components/menu.d.ts +74 -22
  370. package/dist/types/components/menubar.d.ts +37 -0
  371. package/dist/types/components/messageScroller.d.ts +2 -14
  372. package/dist/types/components/mixedChart.d.ts +15 -6
  373. package/dist/types/components/navigationRail.d.ts +16 -5
  374. package/dist/types/components/particles.d.ts +22 -5
  375. package/dist/types/components/pieChart.d.ts +33 -9
  376. package/dist/types/components/pullToRefresh.d.ts +80 -0
  377. package/dist/types/components/questionnaire.d.ts +58 -16
  378. package/dist/types/components/radarChart.d.ts +10 -6
  379. package/dist/types/components/radialChart.d.ts +58 -7
  380. package/dist/types/components/registry.d.ts +73 -3
  381. package/dist/types/components/richTextEditor.d.ts +45 -22
  382. package/dist/types/components/sankeyChart.d.ts +72 -0
  383. package/dist/types/components/scatterChart.d.ts +102 -0
  384. package/dist/types/components/scrollspy.d.ts +3 -5
  385. package/dist/types/components/select.d.ts +44 -33
  386. package/dist/types/components/showMore.d.ts +53 -0
  387. package/dist/types/components/slider.d.ts +2 -15
  388. package/dist/types/components/snackbar.d.ts +68 -1
  389. package/dist/types/components/swipeActions.d.ts +81 -0
  390. package/dist/types/components/tabs.d.ts +92 -30
  391. package/dist/types/components/timepicker.d.ts +128 -27
  392. package/dist/types/components/tooltip.d.ts +57 -21
  393. package/dist/types/components/treeSelect.d.ts +106 -0
  394. package/dist/types/components/treemapChart.d.ts +56 -0
  395. package/dist/types/core/component.d.ts +49 -25
  396. package/dist/types/core/formControl.d.ts +21 -0
  397. package/dist/types/core/imageURL.d.ts +2 -0
  398. package/dist/types/core/spring.d.ts +20 -0
  399. package/dist/types/core/utils.d.ts +123 -72
  400. package/dist/types/modular.d.ts +33 -1
  401. package/dist/types/plugins/dockedDisplayPlugin.d.ts +10 -8
  402. package/dist/types/plugins/modalDisplayPlugin.d.ts +39 -0
  403. package/package.json +17 -13
  404. package/src/sass/README.md +27 -18
  405. package/src/sass/abstracts/_elevation.scss +13 -7
  406. package/src/sass/abstracts/_index.scss +1 -0
  407. package/src/sass/abstracts/_mixins.scss +864 -78
  408. package/src/sass/abstracts/_spring.scss +63 -0
  409. package/src/sass/abstracts/_variables.scss +64 -21
  410. package/src/sass/base/_fonts.scss +61 -48
  411. package/src/sass/base/_global.scss +104 -24
  412. package/src/sass/base/_index.scss +2 -0
  413. package/src/sass/base/_normalize.scss +59 -114
  414. package/src/sass/base/_print.scss +21 -0
  415. package/src/sass/base/_prose.scss +68 -0
  416. package/src/sass/base/_typography.scss +9 -5
  417. package/src/sass/components/_accordion.scss +10 -19
  418. package/src/sass/components/_alert.scss +102 -0
  419. package/src/sass/components/_aura.scss +9 -3
  420. package/src/sass/components/_avatar.scss +3 -3
  421. package/src/sass/components/_back-to-top.scss +38 -0
  422. package/src/sass/components/_badges.scss +6 -5
  423. package/src/sass/components/_bar-chart.scss +31 -90
  424. package/src/sass/components/_bottom-sheet.scss +51 -16
  425. package/src/sass/components/_breadcrumb.scss +8 -7
  426. package/src/sass/components/_button-groups.scss +30 -63
  427. package/src/sass/components/_buttons.scss +137 -94
  428. package/src/sass/components/_calendar.scss +244 -0
  429. package/src/sass/components/_cards.scss +36 -44
  430. package/src/sass/components/_carousel.scss +37 -113
  431. package/src/sass/components/_cascader.scss +131 -0
  432. package/src/sass/components/_chips.scss +36 -46
  433. package/src/sass/components/_column-chart.scss +15 -26
  434. package/src/sass/components/_command-palette.scss +4 -7
  435. package/src/sass/components/_confetti.scss +1 -4
  436. package/src/sass/components/_countdown.scss +1 -1
  437. package/src/sass/components/_data-table.scss +172 -25
  438. package/src/sass/components/_datepicker.scss +54 -40
  439. package/src/sass/components/_description-list.scss +85 -0
  440. package/src/sass/components/_dialog.scss +48 -55
  441. package/src/sass/components/_docked-display.scss +1 -3
  442. package/src/sass/components/_drag-handle.scss +16 -20
  443. package/src/sass/components/_expanding-card.scss +21 -14
  444. package/src/sass/components/_fab-menu.scss +43 -39
  445. package/src/sass/components/_funnel-chart.scss +63 -0
  446. package/src/sass/components/_heatmap-chart.scss +114 -29
  447. package/src/sass/components/_icon-buttons.scss +8 -11
  448. package/src/sass/components/_icons-material-design.scss +2 -2
  449. package/src/sass/components/_image-compare.scss +108 -0
  450. package/src/sass/components/_index.scss +20 -0
  451. package/src/sass/components/_keypad.scss +39 -19
  452. package/src/sass/components/_kpi.scss +6 -11
  453. package/src/sass/components/_lightbox.scss +24 -13
  454. package/src/sass/components/_line-chart.scss +9 -63
  455. package/src/sass/components/_list.scss +59 -14
  456. package/src/sass/components/_loading-indicator.scss +1 -0
  457. package/src/sass/components/_loading-overlay.scss +105 -0
  458. package/src/sass/components/_map.scss +37 -11
  459. package/src/sass/components/_marquee.scss +4 -3
  460. package/src/sass/components/_mega-menu.scss +128 -0
  461. package/src/sass/components/_menu.scss +146 -127
  462. package/src/sass/components/_menubar.scss +47 -0
  463. package/src/sass/components/_message-scroller.scss +2 -2
  464. package/src/sass/components/_message.scss +3 -3
  465. package/src/sass/components/_mixed-chart.scss +27 -35
  466. package/src/sass/components/_modal-display.scss +21 -0
  467. package/src/sass/components/_navbar.scss +45 -36
  468. package/src/sass/components/_navigation-bar.scss +12 -77
  469. package/src/sass/components/_navigation-rail.scss +161 -92
  470. package/src/sass/components/_org-chart.scss +192 -0
  471. package/src/sass/components/_page-footer.scss +2 -4
  472. package/src/sass/components/_pagination.scss +9 -27
  473. package/src/sass/components/_panes.scss +35 -42
  474. package/src/sass/components/_particles.scss +1 -4
  475. package/src/sass/components/_pie-chart.scss +86 -68
  476. package/src/sass/components/_popover.scss +18 -5
  477. package/src/sass/components/_progress.scss +183 -44
  478. package/src/sass/components/_pull-to-refresh.scss +90 -0
  479. package/src/sass/components/_questionnaire.scss +74 -3
  480. package/src/sass/components/_radar-chart.scss +40 -42
  481. package/src/sass/components/_radial-chart.scss +108 -46
  482. package/src/sass/components/_rich-text-editor.scss +2 -2
  483. package/src/sass/components/_sankey-chart.scss +91 -0
  484. package/src/sass/components/_scatter-chart.scss +144 -0
  485. package/src/sass/components/_scrim.scss +0 -2
  486. package/src/sass/components/_scrollspy.scss +0 -2
  487. package/src/sass/components/_search.scss +27 -26
  488. package/src/sass/components/_show-more.scss +8 -0
  489. package/src/sass/components/_side-sheet.scss +32 -51
  490. package/src/sass/components/_skeleton.scss +26 -19
  491. package/src/sass/components/_snackbar.scss +25 -21
  492. package/src/sass/components/_split-button.scss +5 -5
  493. package/src/sass/components/_stat.scss +3 -8
  494. package/src/sass/components/_stepper.scss +1 -1
  495. package/src/sass/components/_swipe-actions.scss +71 -0
  496. package/src/sass/components/_table_of_contents.scss +1 -3
  497. package/src/sass/components/_tabs.scss +49 -46
  498. package/src/sass/components/_timeline.scss +12 -12
  499. package/src/sass/components/_timepicker.scss +111 -79
  500. package/src/sass/components/_toolbar.scss +36 -47
  501. package/src/sass/components/_tooltip.scss +25 -12
  502. package/src/sass/components/_tour.scss +89 -0
  503. package/src/sass/components/_transfer-list.scss +73 -0
  504. package/src/sass/components/_transitions.scss +4 -4
  505. package/src/sass/components/_tree.scss +7 -32
  506. package/src/sass/components/_treemap-chart.scss +98 -0
  507. package/src/sass/components/forms/_checkboxes.scss +107 -44
  508. package/src/sass/components/forms/_color-picker.scss +135 -0
  509. package/src/sass/components/forms/_color-swatches.scss +85 -0
  510. package/src/sass/components/forms/_drop-zone.scss +16 -13
  511. package/src/sass/components/forms/_fieldset.scss +4 -7
  512. package/src/sass/components/forms/_file-input.scss +12 -8
  513. package/src/sass/components/forms/_index.scss +3 -1
  514. package/src/sass/components/forms/_input-fields.scss +271 -90
  515. package/src/sass/components/forms/_radio-buttons.scss +34 -117
  516. package/src/sass/components/forms/_rating.scss +2 -32
  517. package/src/sass/components/forms/_select.scss +198 -20
  518. package/src/sass/components/forms/_slider.scss +92 -98
  519. package/src/sass/components/forms/_switches.scss +62 -180
  520. package/src/sass/custom.scss +10 -1
  521. package/src/sass/expressive.scss +3 -63
  522. package/src/sass/tokens/_contrast.scss +94 -0
  523. package/src/sass/tokens/_elevation.scss +16 -0
  524. package/src/sass/tokens/_index.scss +5 -0
  525. package/src/sass/tokens/_motion.scss +109 -0
  526. package/src/sass/tokens/_reference.scss +72 -141
  527. package/src/sass/tokens/_shape.scss +38 -0
  528. package/src/sass/tokens/_stacking.scss +27 -0
  529. package/src/sass/tokens/_state.scss +0 -2
  530. package/src/sass/tokens/_theme.scss +10 -1
  531. package/src/sass/tokens/_vibrant.scss +2 -5
  532. package/src/sass/utilities/_defer-render.scss +17 -0
  533. package/src/sass/utilities/_helpers.scss +184 -27
  534. package/src/sass/utilities/_index.scss +1 -0
  535. package/src/sass/utilities/_scroll-area.scss +0 -2
  536. package/src/sass/utilities/_spacing.scss +52 -34
  537. package/src/sass/utilities/_typescale.scss +8 -1
  538. package/src/sass/utilities/_visibility.scss +46 -77
  539. package/src/sass/utilities/_z-depth.scss +7 -4
  540. package/dist/js/chunks/chunk-33QVDDGR.mjs +0 -270
  541. package/dist/js/chunks/chunk-33QVDDGR.mjs.map +0 -7
  542. package/dist/js/chunks/chunk-45FER6RI.mjs +0 -59
  543. package/dist/js/chunks/chunk-45FER6RI.mjs.map +0 -7
  544. package/dist/js/chunks/chunk-5CEAOLUA.mjs.map +0 -7
  545. package/dist/js/chunks/chunk-6VATUZC6.mjs +0 -295
  546. package/dist/js/chunks/chunk-6VATUZC6.mjs.map +0 -7
  547. package/dist/js/chunks/chunk-74MXKKLN.mjs.map +0 -7
  548. package/dist/js/chunks/chunk-AIURVCG6.mjs +0 -55
  549. package/dist/js/chunks/chunk-AIURVCG6.mjs.map +0 -7
  550. package/dist/js/chunks/chunk-BGZLF6JZ.mjs.map +0 -7
  551. package/dist/js/chunks/chunk-C6CHEWYP.mjs.map +0 -7
  552. package/dist/js/chunks/chunk-CK2XCICY.mjs.map +0 -7
  553. package/dist/js/chunks/chunk-CXXM2L4F.mjs +0 -344
  554. package/dist/js/chunks/chunk-CXXM2L4F.mjs.map +0 -7
  555. package/dist/js/chunks/chunk-DXGRXYYL.mjs.map +0 -7
  556. package/dist/js/chunks/chunk-FM5CZOUB.mjs.map +0 -7
  557. package/dist/js/chunks/chunk-GJL6GCIU.mjs.map +0 -7
  558. package/dist/js/chunks/chunk-K3HZMFMD.mjs +0 -135
  559. package/dist/js/chunks/chunk-K3HZMFMD.mjs.map +0 -7
  560. package/dist/js/chunks/chunk-KHXZ2A4K.mjs.map +0 -7
  561. package/dist/js/chunks/chunk-KQACNQ22.mjs +0 -7
  562. package/dist/js/chunks/chunk-KQACNQ22.mjs.map +0 -7
  563. package/dist/js/chunks/chunk-KUFHW3DS.mjs.map +0 -7
  564. package/dist/js/chunks/chunk-KVJAVDBC.mjs.map +0 -7
  565. package/dist/js/chunks/chunk-L27Q6ZMI.mjs.map +0 -7
  566. package/dist/js/chunks/chunk-LQWUDNHZ.mjs.map +0 -7
  567. package/dist/js/chunks/chunk-M372EDXD.mjs +0 -322
  568. package/dist/js/chunks/chunk-M372EDXD.mjs.map +0 -7
  569. package/dist/js/chunks/chunk-M3MURWMB.mjs +0 -82
  570. package/dist/js/chunks/chunk-M3MURWMB.mjs.map +0 -7
  571. package/dist/js/chunks/chunk-NUHMOAOY.mjs.map +0 -7
  572. package/dist/js/chunks/chunk-OWG3LMUL.mjs +0 -169
  573. package/dist/js/chunks/chunk-OWG3LMUL.mjs.map +0 -7
  574. package/dist/js/chunks/chunk-PD6HYHAE.mjs +0 -48
  575. package/dist/js/chunks/chunk-PD6HYHAE.mjs.map +0 -7
  576. package/dist/js/chunks/chunk-PDG64UHF.mjs.map +0 -7
  577. package/dist/js/chunks/chunk-PO3AXVR3.mjs +0 -546
  578. package/dist/js/chunks/chunk-PO3AXVR3.mjs.map +0 -7
  579. package/dist/js/chunks/chunk-QYGK36OG.mjs +0 -181
  580. package/dist/js/chunks/chunk-QYGK36OG.mjs.map +0 -7
  581. package/dist/js/chunks/chunk-SFI2U4YW.mjs.map +0 -7
  582. package/dist/js/chunks/chunk-SMY7GJSS.mjs.map +0 -7
  583. package/dist/js/chunks/chunk-TCCA2HDG.mjs +0 -414
  584. package/dist/js/chunks/chunk-TCCA2HDG.mjs.map +0 -7
  585. package/dist/js/chunks/chunk-TSZYSW7F.mjs.map +0 -7
  586. package/dist/js/chunks/chunk-UAZSDUVP.mjs +0 -90
  587. package/dist/js/chunks/chunk-UAZSDUVP.mjs.map +0 -7
  588. package/dist/js/chunks/chunk-UBRZZWRA.mjs +0 -127
  589. package/dist/js/chunks/chunk-UBRZZWRA.mjs.map +0 -7
  590. package/dist/js/chunks/chunk-UCOE7ZDL.mjs +0 -287
  591. package/dist/js/chunks/chunk-UCOE7ZDL.mjs.map +0 -7
  592. package/dist/js/chunks/chunk-UETTGDLI.mjs.map +0 -7
  593. package/dist/js/chunks/chunk-UNCRDLP6.mjs +0 -136
  594. package/dist/js/chunks/chunk-UNCRDLP6.mjs.map +0 -7
  595. package/dist/js/chunks/chunk-VGNYF6FB.mjs.map +0 -7
  596. package/dist/js/chunks/chunk-VGPGBNGL.mjs +0 -68
  597. package/dist/js/chunks/chunk-VGPGBNGL.mjs.map +0 -7
  598. package/dist/js/chunks/chunk-VKAUVTQY.mjs +0 -1
  599. package/dist/js/chunks/chunk-VM4FTS7L.mjs +0 -48
  600. package/dist/js/chunks/chunk-VM4FTS7L.mjs.map +0 -7
  601. package/dist/js/chunks/chunk-WDK4T63U.mjs.map +0 -7
  602. package/dist/js/chunks/chunk-WOCCTVUF.mjs +0 -185
  603. package/dist/js/chunks/chunk-WOCCTVUF.mjs.map +0 -7
  604. package/dist/js/chunks/chunk-WQYN5L4E.mjs +0 -107
  605. package/dist/js/chunks/chunk-WQYN5L4E.mjs.map +0 -7
  606. package/dist/js/chunks/chunk-X4ISMKE2.mjs.map +0 -7
  607. package/dist/js/chunks/chunk-XAEAEHIX.mjs.map +0 -7
  608. package/dist/js/chunks/chunk-ZX6M7SWO.mjs.map +0 -7
  609. /package/dist/js/chunks/{chunk-VKAUVTQY.mjs.map → chunk-GNRSYMVH.mjs.map} +0 -0
@@ -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,20 +52,33 @@
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) {
53
62
  writing-mode: horizontal-tb;
54
63
  }
55
64
 
65
+ // Two mirrored segments on a triple-width fill. Logical positioning shows
66
+ // the first third in LTR and the last in RTL, including CSS direction overrides.
67
+ // The middle third keeps the returning segments outside the visible track.
68
+ @function _progress-segments($start, $end) {
69
+ $start: math.div($start, 3);
70
+ $end: math.div($end, 3);
71
+ @return polygon(
72
+ $start 0, $start 100%, $end 100%, $end 0,
73
+ (100% - $end) 0, (100% - $end) 100%, (100% - $start) 100%, (100% - $start) 0
74
+ );
75
+ }
76
+
56
77
  progress.progress {
57
78
  vertical-align: baseline;
58
79
 
59
80
  &::-webkit-progress-bar {
60
- background-color: var(--md-comp-progress-track);
81
+ background: var(--_progress-stop, none), var(--_progress-track, var(--md-comp-progress-track));
61
82
  border-radius: var(--md-comp-progress-shape);
62
83
  }
63
84
 
@@ -74,19 +95,60 @@ progress.progress {
74
95
  // Firefox draws no ::before/::after on <progress> and paints the track as the
75
96
  // element's own background, so its indeterminate bar is the native one. It
76
97
  // places that bar from the physical left and reads only margin-left, which is
77
- // margin-inline-end in RTL, so both inline margins move. Keep this out of any
78
- // -webkit- selector list: Chromium drops a list naming a pseudo-element it
79
- // does not know.
98
+ // margin-inline-end in RTL. Offset the fixed fill to show its last third.
99
+ // Keep this out of any -webkit- selector list: Chromium drops a list naming
100
+ // a pseudo-element it does not know.
80
101
  &:indeterminate::-moz-progress-bar {
81
- width: 40%;
82
- margin-inline-end: 60%;
102
+ width: 300%;
103
+ margin-inline-end: -200%;
83
104
  animation: progress-indeterminate-moz 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite;
84
105
  }
85
106
  }
86
107
 
108
+ // The end stop, at the inline end of the track.
109
+ .progress.stop:not(.circular) {
110
+ --_progress-stop-at: calc(100% - var(--md-comp-progress-thickness) / 2);
111
+ --_progress-stop: radial-gradient(
112
+ circle at var(--_progress-stop-at) 50%,
113
+ var(--md-comp-progress-indicator) calc(var(--md-comp-progress-stop-size) / 2),
114
+ transparent calc(var(--md-comp-progress-stop-size) / 2 + 0.5px)
115
+ ) no-repeat;
116
+
117
+ &:dir(rtl) {
118
+ --_progress-stop-at: calc(var(--md-comp-progress-thickness) / 2);
119
+ }
120
+ }
121
+
122
+ // The wavy indicator: a 4px wave, 3px either side of the track's middle,
123
+ // drawn by masking the indicator with one wavelength repeated along it.
124
+ $_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");
125
+
126
+ .progress.wavy:not(.circular) {
127
+ --_progress-track: linear-gradient(var(--md-comp-progress-track) 0 0) center / 100% var(--md-comp-progress-thickness) no-repeat;
128
+ --_progress-wave: #{$_wave} repeat-x 0 50% / var(--md-comp-progress-wavelength) 14px;
129
+
130
+ height: 14px;
131
+ border-radius: 0;
132
+ }
133
+
134
+ .progress.wavy:not(.circular) > .determinate,
135
+ .progress.wavy:not(.circular) > .indeterminate::before,
136
+ .progress.wavy:not(.circular) > .indeterminate::after,
137
+ progress.progress.wavy::-webkit-progress-value,
138
+ progress.progress.wavy:indeterminate::before,
139
+ progress.progress.wavy:indeterminate::after {
140
+ mask: var(--_progress-wave);
141
+ }
142
+
143
+ // Firefox's own pseudo-element, kept out of the list above: Chromium drops a
144
+ // list naming a pseudo-element it does not know.
145
+ progress.progress.wavy::-moz-progress-bar {
146
+ mask: var(--_progress-wave);
147
+ }
148
+
87
149
  @keyframes progress-indeterminate-moz {
88
- from { margin-inline-start: -40%; margin-inline-end: 100%; }
89
- to { margin-inline-start: 100%; margin-inline-end: -40%; }
150
+ from { clip-path: _progress-segments(-40%, 0%); }
151
+ to { clip-path: _progress-segments(100%, 140%); }
90
152
  }
91
153
 
92
154
  .progress > .determinate {
@@ -95,7 +157,7 @@ progress.progress {
95
157
  inset-inline: 0 auto;
96
158
  width: var(--md-comp-progress-value, 0%);
97
159
  background-color: var(--md-comp-progress-indicator);
98
- transition: width 0.3s linear;
160
+ transition: width var(--md-sys-motion-duration-medium2) linear;
99
161
  }
100
162
 
101
163
  // Bare div.progress with a value token, no child. :not(.circular) because a
@@ -112,15 +174,21 @@ $_bare: ".progress:not(:is(progress)):not(.circular):not(:has(> .determinate, >
112
174
  inset-inline: 0 auto;
113
175
  width: var(--md-comp-progress-value, 0%);
114
176
  background-color: var(--md-comp-progress-indicator);
115
- transition: width 0.3s linear;
177
+ transition: width var(--md-sys-motion-duration-medium2) linear;
116
178
  }
117
179
 
118
180
  &:not([style*="--md-comp-progress-value"])::after {
181
+ // Auto width prevents a transition from the oversized fill to a known value.
119
182
  width: auto;
183
+ inset-inline-end: -200%;
120
184
  animation: preloader-indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite;
121
185
  }
122
186
  }
123
187
 
188
+ #{$_bare}.wavy::after {
189
+ mask: var(--_progress-wave);
190
+ }
191
+
124
192
  .progress > .indeterminate {
125
193
  background-color: transparent;
126
194
  }
@@ -133,6 +201,8 @@ progress.progress:indeterminate {
133
201
  position: absolute;
134
202
  inset-block: 0;
135
203
  inset-inline: 0 auto;
204
+ width: 300%;
205
+ clip-path: inset(50%);
136
206
  background-color: var(--md-comp-progress-indicator);
137
207
  }
138
208
 
@@ -147,24 +217,21 @@ progress.progress:indeterminate {
147
217
  }
148
218
 
149
219
  @keyframes preloader-indeterminate {
150
- 0% { inset-inline-start: -35%; inset-inline-end: 100%; }
151
- 60% { inset-inline-start: 100%; inset-inline-end: -90%; }
152
- 100% { inset-inline-start: 100%; inset-inline-end: -90%; }
220
+ 0% { clip-path: _progress-segments(-35%, 0%); }
221
+ 60%, 100% { clip-path: _progress-segments(100%, 190%); }
153
222
  }
154
223
 
155
224
  @keyframes preloader-indeterminate-short {
156
- 0% { inset-inline-start: -200%; inset-inline-end: 100%; }
157
- 60% { inset-inline-start: 107%; inset-inline-end: -8%; }
158
- 100% { inset-inline-start: 107%; inset-inline-end: -8%; }
225
+ 0% { clip-path: _progress-segments(-200%, 0%); }
226
+ 60%, 100% { clip-path: _progress-segments(107%, 108%); }
159
227
  }
160
228
 
161
229
  // ---------------------------------------------------------------------------
162
230
  // Circular — one element
163
231
  // ---------------------------------------------------------------------------
164
232
 
165
- // The circular indicator. `.progress.circular` is the M3-aligned name;
166
- // `.preloader` remains a compatibility alias.
167
- :is(.preloader, .progress.circular) {
233
+ // The circular indicator.
234
+ .progress.circular {
168
235
  box-sizing: border-box;
169
236
  display: inline-block;
170
237
  width: var(--md-comp-progress-circular-size);
@@ -180,11 +247,6 @@ progress.progress:indeterminate {
180
247
  transparent calc(100% - var(--md-comp-progress-circular-thickness)),
181
248
  #000 0
182
249
  );
183
- -webkit-mask: radial-gradient(
184
- farthest-side,
185
- transparent calc(100% - var(--md-comp-progress-circular-thickness)),
186
- #000 0
187
- );
188
250
  animation: preloader-rotate 1.4s linear infinite;
189
251
  vertical-align: middle;
190
252
 
@@ -202,13 +264,66 @@ progress.progress:indeterminate {
202
264
  }
203
265
  }
204
266
 
267
+ // Wavy circular: the indicator is a wave round the ring, 10 waves of 1.5
268
+ // units in a 48-unit box, over a thin plain track. The element draws
269
+ // nothing itself; ::before is the indicator and ::after the determinate
270
+ // track, each masked to its own ring.
271
+ @function _wave-ring($waves: 10, $amplitude: 1.5, $radius: 20, $steps: 80) {
272
+ $path: "";
273
+ @for $i from 0 through $steps {
274
+ $angle: math.div($i, $steps) * 2 * math.$pi;
275
+ $r: $radius + $amplitude * math.sin($waves * $angle);
276
+ $x: math.div(math.round((24 + $r * math.cos($angle)) * 10), 10);
277
+ $y: math.div(math.round((24 + $r * math.sin($angle)) * 10), 10);
278
+ $command: "L";
279
+ @if $i == 0 {
280
+ $command: "M";
281
+ }
282
+ $path: "#{$path}#{$command}#{$x} #{$y}";
283
+ }
284
+ @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");
285
+ }
286
+
287
+ .progress.circular.wavy {
288
+ position: relative;
289
+ // The pseudo-elements carry their own masks; a rounded clip as well
290
+ // leaves a hairline at the edge in WebKit.
291
+ overflow: visible;
292
+ background: none;
293
+ mask: none;
294
+
295
+ &::before,
296
+ &::after {
297
+ content: "";
298
+ position: absolute;
299
+ inset: 0;
300
+ }
301
+
302
+ &::before {
303
+ background: conic-gradient(var(--md-comp-progress-indicator) 0 90deg, transparent 0);
304
+ mask: _wave-ring() center / 100% 100% no-repeat;
305
+ }
306
+
307
+ &.determinate::before {
308
+ background: conic-gradient(var(--md-comp-progress-indicator) 0 var(--md-comp-progress-value, 0%), transparent 0);
309
+ }
310
+
311
+ // The track: a 2-unit ring through the middle of the wave, after the fill.
312
+ &.determinate::after {
313
+ background: conic-gradient(
314
+ transparent 0 var(--md-comp-progress-value, 0%),
315
+ color-mix(in oklab, var(--md-comp-progress-indicator) 20%, transparent) 0
316
+ );
317
+ mask: radial-gradient(farthest-side, transparent 79%, #000 79.5% 87%, transparent 87.5% 100%);
318
+ }
319
+ }
320
+
205
321
  @keyframes preloader-rotate {
206
322
  to { transform: rotate(1turn); }
207
323
  }
208
324
 
209
325
  @media (forced-colors: active) {
210
- .progress,
211
- .preloader {
326
+ .progress {
212
327
  forced-color-adjust: none;
213
328
  }
214
329
 
@@ -234,19 +349,44 @@ progress.progress:indeterminate {
234
349
  progress.progress:indeterminate::-moz-progress-bar {
235
350
  background-color: CanvasText;
236
351
  width: 40%;
352
+ margin-inline-end: 60%;
237
353
  animation: none;
238
354
  }
239
355
 
240
- :is(.preloader, .progress.circular) {
356
+ .progress.circular.wavy::before {
357
+ background: conic-gradient(CanvasText 0 90deg, transparent 0);
358
+ }
359
+
360
+ .progress.circular.wavy.determinate::before {
361
+ background: conic-gradient(CanvasText 0 var(--md-comp-progress-value, 0%), transparent 0);
362
+ }
363
+
364
+ .progress.circular.wavy.determinate::after {
365
+ background: conic-gradient(transparent 0 var(--md-comp-progress-value, 0%), GrayText 0);
366
+ }
367
+
368
+ .progress.circular {
241
369
  background: conic-gradient(CanvasText 0 90deg, transparent 90deg 360deg);
242
370
 
371
+ // The value fills the ring and the track is a 2px line through its
372
+ // middle, so the two differ in shape and not only in GrayText against
373
+ // CanvasText, which a theme can set close together.
243
374
  &.determinate {
244
- background: conic-gradient(
245
- CanvasText 0 var(--md-comp-progress-value, 0%),
246
- GrayText var(--md-comp-progress-value, 0%)
247
- );
375
+ background:
376
+ conic-gradient(CanvasText 0 var(--md-comp-progress-value, 0%), transparent 0),
377
+ radial-gradient(
378
+ farthest-side,
379
+ transparent calc(100% - var(--md-comp-progress-circular-thickness) / 2 - 1px),
380
+ GrayText 0 calc(100% - var(--md-comp-progress-circular-thickness) / 2 + 1px),
381
+ transparent 0
382
+ );
248
383
  }
249
384
  }
385
+
386
+ // A wavy ring draws on its pseudo-elements, so the element stays empty here too.
387
+ .progress.circular.wavy {
388
+ background: none;
389
+ }
250
390
  }
251
391
 
252
392
  @media (prefers-reduced-motion: reduce) {
@@ -256,7 +396,7 @@ progress.progress:indeterminate {
256
396
  progress.progress:indeterminate::before,
257
397
  progress.progress:indeterminate::after,
258
398
  #{$_bare}:not([style*="--md-comp-progress-value"])::after,
259
- :is(.preloader, .progress.circular) {
399
+ .progress.circular {
260
400
  animation: none;
261
401
  }
262
402
 
@@ -266,13 +406,12 @@ progress.progress:indeterminate {
266
406
  progress.progress:indeterminate::after,
267
407
  #{$_bare}:not([style*="--md-comp-progress-value"])::after {
268
408
  width: 40%;
269
- }
270
-
271
- .preloader {
272
- transform: none;
409
+ clip-path: none;
273
410
  }
274
411
 
275
412
  progress.progress:indeterminate::-moz-progress-bar {
413
+ width: 40%;
414
+ margin-inline-end: 60%;
276
415
  animation: none;
277
416
  }
278
417
  }
@@ -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
+ }