@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
@@ -4,7 +4,7 @@
4
4
  // Common buttons and FABs.
5
5
  //
6
6
  // Anatomy is the HTML. A <button> (or <a class="button">) is a filled
7
- // common button. Put an <i> first or last for a leading/trailing icon.
7
+ // common button. Put an icon first or last for a leading/trailing icon.
8
8
  // Icon-only is a 40dp icon button. Two independent modifier axes dress it:
9
9
  // a style (filled, tonal, outlined, elevated, text) and a size (xsmall …
10
10
  // xlarge).
@@ -28,7 +28,7 @@
28
28
  :root, :host {
29
29
  --md-comp-filled-button-container-color: var(--md-sys-color-primary);
30
30
  --md-comp-filled-button-label-text-color: var(--md-sys-color-on-primary);
31
- --md-comp-filled-button-container-shape: 9999px;
31
+ --md-comp-filled-button-container-shape: var(--md-sys-shape-corner-full);
32
32
  @include button-size("small");
33
33
  }
34
34
 
@@ -51,7 +51,7 @@
51
51
  // specificity; `.chip .close` would make it two and shift every button rule.
52
52
  // The delete button needs no entry: `.chip .close` is already two classes, so
53
53
  // it ties the state rules and wins on order.
54
- $_not-btn: ".datepicker-day-button, .date-picker-day-button, .month-prev, .month-next, .chip, .icon-button, .map-marker, .maplibregl-popup-close-button, .maplibregl-ctrl-attrib-button";
54
+ $_not-btn: ".datepicker-day-button, .month-prev, .month-next, .chip, .icon-button, .map-marker, .chart-toggle, .maplibregl-popup-close-button, .maplibregl-ctrl-attrib-button";
55
55
 
56
56
  // `label.button` is here for the file input: the control has to be a <label>
57
57
  // so that clicking it reaches the <input type="file"> it wraps, but it is a
@@ -133,21 +133,13 @@ $_btn: "button:not(#{$_not-btn}), a.button, label.button";
133
133
  }
134
134
  }
135
135
 
136
- // `.extra` is the pre-1.0 name for the 56dp button, which is now `.medium`.
137
- // It aliases the geometry and not the type role, because it never carried
138
- // one: a rail's FAB is `a.button.extra`, its label is label-large, and
139
- // `.medium`'s title-medium would grow it. Size, not size-and-label.
140
- //
141
- // It is also the FAB's marker class - `circle extra` is a FAB, and the rules
142
- // below reset this geometry entirely.
143
- :where(#{$_btn}).extra {
144
- @include button-size("medium");
145
- }
136
+ // `.extra` marks the FAB: `circle extra` is a FAB. On its own it no longer
137
+ // sizes a common button; use `.medium` for the 56dp one.
146
138
 
147
139
  // Every size is corner.full already, so this only bites when a consumer has
148
140
  // themed the shape token to something squarer and wants one button back.
149
141
  :where(#{$_btn}).rounded {
150
- border-radius: 9999px;
142
+ border-radius: var(--md-sys-shape-corner-full);
151
143
  }
152
144
 
153
145
  // Extended FAB: an icon plus a label, on its own size and colour axes.
@@ -193,20 +185,12 @@ $_extend-sizes: (
193
185
 
194
186
  &:hover {
195
187
  @include z-depth("4");
196
- background-color: color-mix(
197
- in oklab,
198
- var(--md-comp-extended-fab-label-text-color) state-opacity("hover"),
199
- var(--md-comp-extended-fab-container-color)
200
- );
188
+ background-color: state-layer(var(--md-comp-extended-fab-label-text-color), "hover", var(--md-comp-extended-fab-container-color));
201
189
  }
202
190
 
203
191
  &:active,
204
192
  &:focus {
205
- background-color: color-mix(
206
- in oklab,
207
- var(--md-comp-extended-fab-label-text-color) state-opacity("focus"),
208
- var(--md-comp-extended-fab-container-color)
209
- );
193
+ background-color: state-layer(var(--md-comp-extended-fab-label-text-color), "focus", var(--md-comp-extended-fab-container-color));
210
194
  }
211
195
 
212
196
  @include focus-visible;
@@ -222,9 +206,9 @@ $_extend-sizes: (
222
206
  // the geometry is written once, above, against those tokens.
223
207
  @each $name, $s in $_extend-sizes {
224
208
  &.#{$name} {
225
- --md-comp-extended-fab-container-height: #{map.get($s, height)};
209
+ --md-comp-extended-fab-container-height: #{rem(map.get($s, height))};
226
210
  --md-comp-extended-fab-container-shape: #{map.get($s, shape)};
227
- --md-comp-extended-fab-icon-size: #{map.get($s, icon)};
211
+ --md-comp-extended-fab-icon-size: #{rem(map.get($s, icon))};
228
212
  --md-comp-extended-fab-leading-space: #{map.get($s, space)};
229
213
  --md-comp-extended-fab-icon-label-space: #{map.get($s, gap)};
230
214
  --md-comp-extended-fab-trailing-space: #{map.get($s, space)};
@@ -257,10 +241,10 @@ $_extend-sizes: (
257
241
  // by size.
258
242
  :where(#{$_btn}).extra.circle,
259
243
  :where(#{$_btn}).large.circle {
260
- --md-comp-fab-container-height: 56px;
261
- --md-comp-fab-container-width: 56px;
262
- --md-comp-fab-container-shape: 16px;
263
- --md-comp-fab-icon-size: 24px;
244
+ --md-comp-fab-container-height: #{rem(56px)};
245
+ --md-comp-fab-container-width: #{rem(56px)};
246
+ --md-comp-fab-container-shape: var(--md-sys-shape-corner-large);
247
+ --md-comp-fab-icon-size: #{rem(24px)};
264
248
 
265
249
  display: inline-flex;
266
250
  flex: none;
@@ -290,40 +274,21 @@ $_extend-sizes: (
290
274
 
291
275
  &:hover {
292
276
  @include z-depth("4");
293
- background-color: color-mix(
294
- in oklab,
295
- var(--md-sys-color-on-primary-container) state-opacity("hover"),
296
- var(--md-sys-color-primary-container)
297
- );
277
+ background-color: state-layer(var(--md-sys-color-on-primary-container), "hover", var(--md-sys-color-primary-container));
298
278
  }
299
279
 
300
280
  &:active,
301
281
  &:focus {
302
- background-color: color-mix(
303
- in oklab,
304
- var(--md-sys-color-on-primary-container) state-opacity("focus"),
305
- var(--md-sys-color-primary-container)
306
- );
282
+ background-color: state-layer(var(--md-sys-color-on-primary-container), "focus", var(--md-sys-color-primary-container));
307
283
  }
308
284
 
309
285
  // Medium FAB: 80dp container, 26dp icon. The corner continues the size
310
286
  // ladder - 16dp default, 20dp here (corner.large-increased).
311
287
  &.medium {
312
- --md-comp-fab-container-height: 80px;
313
- --md-comp-fab-container-width: 80px;
314
- --md-comp-fab-container-shape: 20px;
315
- --md-comp-fab-icon-size: 26px;
316
- }
317
-
318
- &.halfway-fab {
319
- position: absolute;
320
- inset-inline-end: 24px;
321
- bottom: -28px;
322
-
323
- &.left {
324
- inset-inline-end: auto;
325
- inset-inline-start: 24px;
326
- }
288
+ --md-comp-fab-container-height: #{rem(80px)};
289
+ --md-comp-fab-container-width: #{rem(80px)};
290
+ --md-comp-fab-container-shape: var(--md-sys-shape-corner-large-increased);
291
+ --md-comp-fab-icon-size: #{rem(26px)};
327
292
  }
328
293
  }
329
294
 
@@ -335,15 +300,19 @@ $_extend-sizes: (
335
300
  // would compile `.large.circle.large` as well, and every aliased 56dp FAB on
336
301
  // a page would silently grow to 96dp.
337
302
  :where(#{$_btn}).extra.circle.large {
338
- --md-comp-fab-container-height: 96px;
339
- --md-comp-fab-container-width: 96px;
340
- --md-comp-fab-container-shape: 28px;
341
- --md-comp-fab-icon-size: 36px;
303
+ --md-comp-fab-container-height: #{rem(96px)};
304
+ --md-comp-fab-container-width: #{rem(96px)};
305
+ --md-comp-fab-container-shape: var(--md-sys-shape-corner-extra-large);
306
+ --md-comp-fab-icon-size: #{rem(36px)};
342
307
  }
343
308
 
344
- :where(#{$_btn}):disabled,
345
- :where(#{$_btn})[disabled],
346
- :where(#{$_btn}).disabled {
309
+ // The second arm matters for a focusable disabled control (`a.button.disabled`
310
+ // with an href, or a `<button class="disabled">`): a variant's `:focus` state
311
+ // is (0,2,0), so the plain disabled rule would lose its shadow and fill to it.
312
+ // The third covers the FAB, whose own rule is (0,2,0) and its states (0,3,0).
313
+ :where(#{$_btn}):is(:disabled, [disabled], .disabled),
314
+ :where(#{$_btn}):is(:disabled, [disabled], .disabled):is(:hover, :active, :focus),
315
+ :where(#{$_btn}):is(.extra, .large).circle:is(:disabled, [disabled], .disabled) {
347
316
  @include btn-disabled;
348
317
  }
349
318
 
@@ -376,7 +345,7 @@ $_extend-sizes: (
376
345
  // bars and rails, tabs, pagination and snackbar actions are fixed-height
377
346
  // slots. `:where()` keeps the whole rule at zero specificity; it only has to
378
347
  // come after the base rule above, whose `height` and `nowrap` it replaces.
379
- $_fixed: ".circle, .extend, .indicator-item, .chip .close, :is(.timepicker-container, .time-picker-container) :is(.am-btn, .pm-btn), :is(.button-group, .split-button, .toolbar, .navigation-bar, .navigation-rail, .snackbar) > *, header > :is(nav, .bar) > *, :is(.pagination, .tabs, .snackbar > nav, dialog > header) *";
348
+ $_fixed: ".circle, .extend, .indicator-item, .chip .close, .timepicker-container :is(.am-btn, .pm-btn), :is(.button-group, .split-button, .toolbar, .navigation-bar, .navigation-rail, .snackbar) > *, header > :is(nav, .bar) > *, :is(.pagination, .tabs, .snackbar > nav, dialog > header) *";
380
349
 
381
350
  :where(#{$_btn}):where(:not(#{$_fixed})) {
382
351
  height: auto;
@@ -391,3 +360,127 @@ $_fixed: ".circle, .extend, .indicator-item, .chip .close, :is(.timepicker-conta
391
360
  min-width: 0;
392
361
  }
393
362
  }
363
+
364
+ $_shaped: ":where(#{$_btn}):where(:not(#{$_fixed}))";
365
+
366
+ // Shape, from md.comp.button.<size>.{shape.square, pressed.container.shape}.
367
+ // A button is round; `.square` takes the size's squared corner. A toggle
368
+ // button, one with `aria-pressed`, swaps shape when selected: round goes
369
+ // square and square goes round, a cue beside the colour. Pressed, any
370
+ // common button morphs to the size's pressed corner on Material's spring.
371
+ // Buttons in fixed slots keep their own shapes and colours: FABs, button
372
+ // group items, the time picker's AM and PM, and the rest of `$_fixed`.
373
+ #{$_shaped} {
374
+ --_shape: var(--md-comp-filled-button-container-shape);
375
+
376
+ transition:
377
+ background-color var(--md-sys-motion-duration-short4) ease-out,
378
+ box-shadow var(--md-sys-motion-duration-short4) ease-out,
379
+ border-radius var(--md-sys-motion-spring-fast-spatial-duration) var(--md-sys-motion-spring-fast-spatial);
380
+
381
+ @media (prefers-reduced-motion: reduce) {
382
+ transition-property: background-color, box-shadow;
383
+ }
384
+ }
385
+
386
+ #{$_shaped}:is(.square, [aria-pressed="true"]) {
387
+ --_shape: var(--md-comp-filled-button-container-shape-square);
388
+ }
389
+
390
+ #{$_shaped}.square[aria-pressed="true"] {
391
+ --_shape: var(--md-sys-shape-corner-full);
392
+ }
393
+
394
+ #{$_shaped}:is(.square, [aria-pressed]) {
395
+ border-radius: var(--_shape);
396
+ }
397
+
398
+ #{$_shaped}:not(:disabled, [disabled], .disabled):active {
399
+ border-radius: var(--md-comp-filled-button-pressed-container-shape);
400
+ }
401
+
402
+ // Toggle colours, from md.comp.button.<style>.{unselected, selected}. Text
403
+ // buttons do not toggle. A disabled toggle takes the disabled colours below.
404
+ @mixin _toggle($container, $state) {
405
+ --_toggle-container: #{$container};
406
+ --_toggle-state: #{$state};
407
+ }
408
+
409
+ #{$_shaped}[aria-pressed]:not(.tonal, .outlined, .elevated, .text) {
410
+ @include _toggle(var(--md-sys-color-surface-container), var(--md-sys-color-on-surface-variant));
411
+ }
412
+
413
+ #{$_shaped}[aria-pressed="true"]:not(.tonal, .outlined, .elevated, .text) {
414
+ @include _toggle(var(--md-sys-color-primary), var(--md-sys-color-on-primary));
415
+ }
416
+
417
+ #{$_shaped}.tonal[aria-pressed] {
418
+ @include _toggle(var(--md-sys-color-secondary-container), var(--md-sys-color-on-secondary-container));
419
+ }
420
+
421
+ #{$_shaped}.tonal[aria-pressed="true"] {
422
+ @include _toggle(var(--md-sys-color-secondary), var(--md-sys-color-on-secondary));
423
+ }
424
+
425
+ #{$_shaped}.outlined[aria-pressed] {
426
+ @include _toggle(transparent, var(--md-sys-color-on-surface-variant));
427
+ }
428
+
429
+ #{$_shaped}.outlined[aria-pressed="true"] {
430
+ @include _toggle(var(--md-sys-color-inverse-surface), var(--md-sys-color-inverse-on-surface));
431
+
432
+ border-color: transparent;
433
+ }
434
+
435
+ #{$_shaped}.elevated[aria-pressed] {
436
+ @include _toggle(var(--md-sys-color-surface-container-low), var(--md-sys-color-primary));
437
+ }
438
+
439
+ #{$_shaped}.elevated[aria-pressed="true"] {
440
+ @include _toggle(var(--md-sys-color-primary), var(--md-sys-color-on-primary));
441
+ }
442
+
443
+ #{$_shaped}[aria-pressed]:not(.text, :disabled, [disabled], .disabled) {
444
+ color: var(--_toggle-state);
445
+ background-color: var(--_toggle-container);
446
+
447
+ &:hover {
448
+ background-color: state-layer(var(--_toggle-state), "hover", var(--_toggle-container));
449
+ }
450
+
451
+ &:is(:focus, :active) {
452
+ background-color: state-layer(var(--_toggle-state), "focus", var(--_toggle-container));
453
+ }
454
+ }
455
+
456
+ // Forced colors paint every container as Canvas and drop every shadow, so a
457
+ // filled, tonal or elevated button was a bare label and a pressed toggle, only
458
+ // a fill, looked like an unpressed one. An outline draws the container back
459
+ // without moving the layout, and lets the focus ring replace it; a pressed
460
+ // toggle takes the Highlight fill Windows gives a selected control.
461
+ //
462
+ // Only a button that names its container gets the edge: a style, or a class
463
+ // the hosts step aside for (`.button`, and the FAB's `.extra`, `.extend` and
464
+ // `.large.circle`). A plain <button> is filled too, but the hosts that restyle
465
+ // plain buttons as bare icons and labels (app bars, toolbars, rails,
466
+ // snackbars) leave nothing to outline; the components whose plain buttons are
467
+ // containers opt in where they are styled. The selector stays at one class so
468
+ // the focus ring still outranks the edge.
469
+ @media (forced-colors: active) {
470
+ :where(#{$_btn}):is(.filled, .tonal, .elevated, .button, .extra, .extend, :where(.large.circle)):where(:not(.outlined, .text)),
471
+ .icon-button:is(.filled, .tonal) {
472
+ outline: 1px solid ButtonText;
473
+ outline-offset: -1px;
474
+ }
475
+
476
+ :where(#{$_btn}):is(:disabled, [disabled], .disabled) {
477
+ outline-color: GrayText;
478
+ }
479
+
480
+ :where(#{$_btn}, .icon-button)[aria-pressed="true"]:not(:disabled, [disabled], .disabled) {
481
+ forced-color-adjust: none;
482
+ border-color: Highlight;
483
+ background-color: Highlight !important;
484
+ color: HighlightText !important;
485
+ }
486
+ }
@@ -0,0 +1,246 @@
1
+ @use "../abstracts" as *;
2
+
3
+ // Calendar. A month of days with their events, on a native <table> the page
4
+ // renders: a <caption> with the month, a header row of weekdays, then a row
5
+ // per week. Each day cell starts with a <time> holding the day number and
6
+ // may hold a .calendar-events list of links or text. The page owns the dates,
7
+ // navigation and events; the framework draws the grid.
8
+ //
9
+ // td.outside a day from the previous or next month
10
+ // td[aria-current=date] today
11
+ //
12
+ // Week and day: table.calendar.week (or .day, with one day column) is an
13
+ // hourly grid. The header row starts with an empty <td> over the hour
14
+ // column, then one <th scope="col"> per day holding the weekday and a <time>;
15
+ // mark today's header with aria-current="date". Each body row is an hour: a
16
+ // <th scope="row"> with its <time>, then a cell per day. An event in a cell
17
+ // starts at that hour and covers one hour; set these inline to change that:
18
+ //
19
+ // --md-comp-calendar-event-start hours after the row's hour (0.5 = :30)
20
+ // --md-comp-calendar-event-duration length in hours
21
+ //
22
+ // The placement is only visual, so the page writes each event's time in a
23
+ // .visually-hidden span. Events that overlap in time overlap on screen, and
24
+ // one that runs past the last hour row spills out of the table; the page
25
+ // splits the first and ends the second at the last row.
26
+ // ponytail: no side-by-side layout for overlapping events, add a column
27
+ // index custom property if schedules need it.
28
+ //
29
+ // Year: .calendar-year lays out twelve small month tables, each a normal
30
+ // table.calendar, in as many columns as fit. Render only the days; event
31
+ // lists belong in the month, week or day view.
32
+ //
33
+ // At Compact widths days get shorter and event chips tighter; long titles
34
+ // ellipsize rather than hide, so each event stays a visible target.
35
+ //
36
+ // Tokens:
37
+ // --md-comp-calendar-day-min-height 96px (Compact: 64px)
38
+ // --md-comp-calendar-outline-color outline-variant
39
+ // --md-comp-calendar-event-container-color primary-container
40
+ // --md-comp-calendar-event-color on-primary-container
41
+ // --md-comp-calendar-hour-height 48px (week and day)
42
+
43
+ table.calendar {
44
+ --md-comp-calendar-day-min-height: 96px;
45
+ --md-comp-calendar-outline-color: var(--md-sys-color-outline-variant);
46
+ --md-comp-calendar-event-container-color: var(--md-sys-color-primary-container);
47
+ --md-comp-calendar-event-color: var(--md-sys-color-on-primary-container);
48
+
49
+ inline-size: 100%;
50
+ margin: $element-top-margin 0 $element-bottom-margin;
51
+ border-collapse: collapse;
52
+ table-layout: fixed;
53
+ color: var(--md-sys-color-on-surface);
54
+
55
+ > caption {
56
+ padding-block-end: 12px;
57
+ text-align: start;
58
+ @include typescale("title-large");
59
+ }
60
+
61
+ th {
62
+ padding: 8px 4px;
63
+ border: 0;
64
+ color: var(--md-sys-color-on-surface-variant);
65
+ text-align: center;
66
+ @include typescale("label-medium");
67
+
68
+ abbr {
69
+ text-decoration: none;
70
+ }
71
+ }
72
+
73
+ td {
74
+ block-size: var(--md-comp-calendar-day-min-height);
75
+ padding: 4px;
76
+ border: 1px solid var(--md-comp-calendar-outline-color);
77
+ vertical-align: top;
78
+ overflow: hidden;
79
+
80
+ > time {
81
+ display: inline-flex;
82
+ align-items: center;
83
+ justify-content: center;
84
+ min-inline-size: 28px;
85
+ block-size: 28px;
86
+ border-radius: 14px;
87
+ @include typescale("label-large");
88
+ }
89
+
90
+ &.outside > time {
91
+ color: var(--md-sys-color-on-surface-variant);
92
+ opacity: 0.6;
93
+ }
94
+
95
+ &[aria-current="date"] > time {
96
+ background-color: var(--md-sys-color-primary);
97
+ color: var(--md-sys-color-on-primary);
98
+ }
99
+ }
100
+
101
+ .calendar-events {
102
+ display: flex;
103
+ flex-direction: column;
104
+ gap: 2px;
105
+ margin: 4px 0 0;
106
+ padding: 0;
107
+ list-style: none;
108
+
109
+ > li {
110
+ overflow: hidden;
111
+ padding: 2px 6px;
112
+ border-radius: var(--md-sys-shape-corner-extra-small);
113
+ background-color: var(--md-comp-calendar-event-container-color);
114
+ color: var(--md-comp-calendar-event-color);
115
+ white-space: nowrap;
116
+ text-overflow: ellipsis;
117
+ @include typescale("label-small");
118
+
119
+ > a {
120
+ color: inherit;
121
+ text-decoration: none;
122
+ @include focus-visible;
123
+ }
124
+ }
125
+ }
126
+
127
+ // Compact: shorter days and tighter chips. Chips keep their text, which
128
+ // ellipsizes, so every event stays a visible, reachable target.
129
+ @include bp-down("medium") {
130
+ --md-comp-calendar-day-min-height: 64px;
131
+
132
+ td {
133
+ padding: 2px;
134
+ }
135
+
136
+ .calendar-events > li {
137
+ padding: 1px 3px;
138
+ }
139
+ }
140
+
141
+ // Week and day: hour rows whose cells hold absolutely placed events, so a
142
+ // long event runs down into the rows below.
143
+ &.week,
144
+ &.day {
145
+ --md-comp-calendar-hour-height: #{rem(48px)};
146
+
147
+ thead td {
148
+ inline-size: rem(56px);
149
+ border: 0;
150
+ }
151
+
152
+ thead th > time {
153
+ display: flex;
154
+ align-items: center;
155
+ justify-content: center;
156
+ inline-size: rem(32px);
157
+ block-size: rem(32px);
158
+ margin: 4px auto 0;
159
+ border-radius: 50%;
160
+ color: var(--md-sys-color-on-surface);
161
+ @include typescale("title-medium");
162
+ }
163
+
164
+ thead th[aria-current="date"] > time {
165
+ background-color: var(--md-sys-color-primary);
166
+ color: var(--md-sys-color-on-primary);
167
+ }
168
+
169
+ tbody th {
170
+ padding-block: 0;
171
+ padding-inline: 0 8px;
172
+ vertical-align: top;
173
+ text-align: end;
174
+ @include typescale("label-small");
175
+ }
176
+
177
+ tbody td {
178
+ position: relative;
179
+ block-size: var(--md-comp-calendar-hour-height);
180
+ padding: 0;
181
+ overflow: visible;
182
+ }
183
+
184
+ .calendar-events {
185
+ margin: 0;
186
+
187
+ > li {
188
+ position: absolute;
189
+ z-index: 1;
190
+ inset-inline: 2px;
191
+ inset-block-start: calc(var(--md-comp-calendar-event-start, 0) * var(--md-comp-calendar-hour-height) + 1px);
192
+ block-size: calc(var(--md-comp-calendar-event-duration, 1) * var(--md-comp-calendar-hour-height) - 2px);
193
+ }
194
+ }
195
+ }
196
+
197
+ @media (forced-colors: active) {
198
+ thead th[aria-current="date"] > time,
199
+ td[aria-current="date"] > time {
200
+ outline: 2px solid CanvasText;
201
+ }
202
+
203
+ .calendar-events > li {
204
+ border: 1px solid CanvasText;
205
+ }
206
+ }
207
+ }
208
+
209
+ // Year: twelve small months in as many columns as fit.
210
+ .calendar-year {
211
+ display: grid;
212
+ grid-template-columns: repeat(auto-fill, minmax(rem(224px), 1fr));
213
+ gap: 24px;
214
+ margin: $element-top-margin 0 $element-bottom-margin;
215
+
216
+ > table.calendar {
217
+ margin: 0;
218
+
219
+ > caption {
220
+ padding-block-end: 4px;
221
+ @include typescale("title-small");
222
+ }
223
+
224
+ tr {
225
+ border: 0;
226
+ }
227
+
228
+ th {
229
+ padding: 4px 0;
230
+ @include typescale("label-small");
231
+ }
232
+
233
+ td {
234
+ block-size: auto;
235
+ padding: 2px 0;
236
+ border: 0;
237
+ text-align: center;
238
+
239
+ > time {
240
+ min-inline-size: rem(24px);
241
+ block-size: rem(24px);
242
+ @include typescale("label-small");
243
+ }
244
+ }
245
+ }
246
+ }