@expressivecss/expressive 0.15.0 → 0.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (602) hide show
  1. package/CHANGELOG.md +1502 -1
  2. package/README.md +9 -8
  3. package/dist/css/expressive.css +19247 -11923
  4. package/dist/css/expressive.css.map +1 -1
  5. package/dist/css/expressive.min.css +1 -1
  6. package/dist/css/expressive.min.css.map +1 -1
  7. package/dist/fonts/LICENSE-noto-sans-arabic +93 -0
  8. package/dist/fonts/LICENSE-noto-sans-hebrew +93 -0
  9. package/dist/fonts/LICENSE-noto-sans-thai +93 -0
  10. package/dist/fonts/material-symbols-outlined.woff2 +0 -0
  11. package/dist/fonts/material-symbols-rounded.woff2 +0 -0
  12. package/dist/fonts/material-symbols-sharp.woff2 +0 -0
  13. package/dist/fonts/noto-sans-arabic-arabic-400.woff2 +0 -0
  14. package/dist/fonts/noto-sans-arabic-arabic-500.woff2 +0 -0
  15. package/dist/fonts/noto-sans-arabic-arabic-700.woff2 +0 -0
  16. package/dist/fonts/noto-sans-cyrillic-400.woff2 +0 -0
  17. package/dist/fonts/noto-sans-cyrillic-500.woff2 +0 -0
  18. package/dist/fonts/noto-sans-cyrillic-700.woff2 +0 -0
  19. package/dist/fonts/noto-sans-cyrillic-ext-400.woff2 +0 -0
  20. package/dist/fonts/noto-sans-cyrillic-ext-500.woff2 +0 -0
  21. package/dist/fonts/noto-sans-cyrillic-ext-700.woff2 +0 -0
  22. package/dist/fonts/noto-sans-devanagari-400.woff2 +0 -0
  23. package/dist/fonts/noto-sans-devanagari-500.woff2 +0 -0
  24. package/dist/fonts/noto-sans-devanagari-700.woff2 +0 -0
  25. package/dist/fonts/noto-sans-greek-400.woff2 +0 -0
  26. package/dist/fonts/noto-sans-greek-500.woff2 +0 -0
  27. package/dist/fonts/noto-sans-greek-700.woff2 +0 -0
  28. package/dist/fonts/noto-sans-greek-ext-400.woff2 +0 -0
  29. package/dist/fonts/noto-sans-greek-ext-500.woff2 +0 -0
  30. package/dist/fonts/noto-sans-greek-ext-700.woff2 +0 -0
  31. package/dist/fonts/noto-sans-hebrew-hebrew-400.woff2 +0 -0
  32. package/dist/fonts/noto-sans-hebrew-hebrew-500.woff2 +0 -0
  33. package/dist/fonts/noto-sans-hebrew-hebrew-700.woff2 +0 -0
  34. package/dist/fonts/noto-sans-latin-700.woff2 +0 -0
  35. package/dist/fonts/noto-sans-latin-ext-400.woff2 +0 -0
  36. package/dist/fonts/noto-sans-latin-ext-500.woff2 +0 -0
  37. package/dist/fonts/noto-sans-latin-ext-700.woff2 +0 -0
  38. package/dist/fonts/noto-sans-thai-thai-400.woff2 +0 -0
  39. package/dist/fonts/noto-sans-thai-thai-500.woff2 +0 -0
  40. package/dist/fonts/noto-sans-thai-thai-700.woff2 +0 -0
  41. package/dist/fonts/noto-sans-vietnamese-400.woff2 +0 -0
  42. package/dist/fonts/noto-sans-vietnamese-500.woff2 +0 -0
  43. package/dist/fonts/noto-sans-vietnamese-700.woff2 +0 -0
  44. package/dist/fonts/roboto-cyrillic-400.woff2 +0 -0
  45. package/dist/fonts/roboto-cyrillic-500.woff2 +0 -0
  46. package/dist/fonts/roboto-cyrillic-700.woff2 +0 -0
  47. package/dist/fonts/roboto-cyrillic-ext-400.woff2 +0 -0
  48. package/dist/fonts/roboto-cyrillic-ext-500.woff2 +0 -0
  49. package/dist/fonts/roboto-cyrillic-ext-700.woff2 +0 -0
  50. package/dist/fonts/roboto-greek-400.woff2 +0 -0
  51. package/dist/fonts/roboto-greek-500.woff2 +0 -0
  52. package/dist/fonts/roboto-greek-700.woff2 +0 -0
  53. package/dist/fonts/roboto-greek-ext-400.woff2 +0 -0
  54. package/dist/fonts/roboto-greek-ext-500.woff2 +0 -0
  55. package/dist/fonts/roboto-greek-ext-700.woff2 +0 -0
  56. package/dist/fonts/roboto-latin-700.woff2 +0 -0
  57. package/dist/fonts/roboto-latin-ext-400.woff2 +0 -0
  58. package/dist/fonts/roboto-latin-ext-500.woff2 +0 -0
  59. package/dist/fonts/roboto-latin-ext-700.woff2 +0 -0
  60. package/dist/fonts/roboto-vietnamese-400.woff2 +0 -0
  61. package/dist/fonts/roboto-vietnamese-500.woff2 +0 -0
  62. package/dist/fonts/roboto-vietnamese-700.woff2 +0 -0
  63. package/dist/js/chunks/chunk-2CS6TITK.mjs +219 -0
  64. package/dist/js/chunks/chunk-2CS6TITK.mjs.map +7 -0
  65. package/dist/js/chunks/chunk-2RLBDFH4.mjs +108 -0
  66. package/dist/js/chunks/chunk-2RLBDFH4.mjs.map +7 -0
  67. package/dist/js/chunks/chunk-3L3QIYLC.mjs +85 -0
  68. package/dist/js/chunks/chunk-3L3QIYLC.mjs.map +7 -0
  69. package/dist/js/chunks/chunk-4EWGD4V2.mjs +75 -0
  70. package/dist/js/chunks/chunk-4EWGD4V2.mjs.map +7 -0
  71. package/dist/js/chunks/chunk-4IKVPCSU.mjs +7 -0
  72. package/dist/js/chunks/chunk-4IKVPCSU.mjs.map +7 -0
  73. package/dist/js/chunks/chunk-4PIXLDNJ.mjs +127 -0
  74. package/dist/js/chunks/chunk-4PIXLDNJ.mjs.map +7 -0
  75. package/dist/js/chunks/{chunk-KVJAVDBC.mjs → chunk-4QUCNFSD.mjs} +64 -113
  76. package/dist/js/chunks/chunk-4QUCNFSD.mjs.map +7 -0
  77. package/dist/js/chunks/{chunk-UETTGDLI.mjs → chunk-4TRZ2AER.mjs} +35 -41
  78. package/dist/js/chunks/chunk-4TRZ2AER.mjs.map +7 -0
  79. package/dist/js/chunks/{chunk-C6CHEWYP.mjs → chunk-5KIHWJI2.mjs} +40 -26
  80. package/dist/js/chunks/chunk-5KIHWJI2.mjs.map +7 -0
  81. package/dist/js/chunks/{chunk-L27Q6ZMI.mjs → chunk-67ZPPKXS.mjs} +20 -33
  82. package/dist/js/chunks/chunk-67ZPPKXS.mjs.map +7 -0
  83. package/dist/js/chunks/{chunk-XAEAEHIX.mjs → chunk-6FSEUFVW.mjs} +39 -26
  84. package/dist/js/chunks/chunk-6FSEUFVW.mjs.map +7 -0
  85. package/dist/js/chunks/chunk-752ADW4M.mjs +225 -0
  86. package/dist/js/chunks/chunk-752ADW4M.mjs.map +7 -0
  87. package/dist/js/chunks/{chunk-CK2XCICY.mjs → chunk-75E5EDJF.mjs} +3 -11
  88. package/dist/js/chunks/chunk-75E5EDJF.mjs.map +7 -0
  89. package/dist/js/chunks/{chunk-KHXZ2A4K.mjs → chunk-7NLUI3RR.mjs} +139 -66
  90. package/dist/js/chunks/chunk-7NLUI3RR.mjs.map +7 -0
  91. package/dist/js/chunks/chunk-7W7TV6NY.mjs +108 -0
  92. package/dist/js/chunks/chunk-7W7TV6NY.mjs.map +7 -0
  93. package/dist/js/chunks/chunk-7YQBHTK3.mjs +225 -0
  94. package/dist/js/chunks/chunk-7YQBHTK3.mjs.map +7 -0
  95. package/dist/js/chunks/chunk-7YZ5CN3V.mjs +33 -0
  96. package/dist/js/chunks/chunk-7YZ5CN3V.mjs.map +7 -0
  97. package/dist/js/chunks/chunk-AI73GJKG.mjs +28 -0
  98. package/dist/js/chunks/chunk-AI73GJKG.mjs.map +7 -0
  99. package/dist/js/chunks/{chunk-LQWUDNHZ.mjs → chunk-ANKFWNWT.mjs} +21 -45
  100. package/dist/js/chunks/chunk-ANKFWNWT.mjs.map +7 -0
  101. package/dist/js/chunks/{chunk-5CEAOLUA.mjs → chunk-B7DQFHA5.mjs} +30 -47
  102. package/dist/js/chunks/chunk-B7DQFHA5.mjs.map +7 -0
  103. package/dist/js/chunks/chunk-BIGU5RCJ.mjs +153 -0
  104. package/dist/js/chunks/chunk-BIGU5RCJ.mjs.map +7 -0
  105. package/dist/js/chunks/{chunk-VGNYF6FB.mjs → chunk-BPF3I2MN.mjs} +109 -24
  106. package/dist/js/chunks/chunk-BPF3I2MN.mjs.map +7 -0
  107. package/dist/js/chunks/chunk-CMGXGYUC.mjs +74 -0
  108. package/dist/js/chunks/chunk-CMGXGYUC.mjs.map +7 -0
  109. package/dist/js/chunks/{chunk-NUHMOAOY.mjs → chunk-CSYWKEK3.mjs} +310 -196
  110. package/dist/js/chunks/chunk-CSYWKEK3.mjs.map +7 -0
  111. package/dist/js/chunks/chunk-CZSQHXEV.mjs +227 -0
  112. package/dist/js/chunks/chunk-CZSQHXEV.mjs.map +7 -0
  113. package/dist/js/chunks/chunk-DZYVU75J.mjs +121 -0
  114. package/dist/js/chunks/chunk-DZYVU75J.mjs.map +7 -0
  115. package/dist/js/chunks/{chunk-74MXKKLN.mjs → chunk-EC26RU2D.mjs} +11 -29
  116. package/dist/js/chunks/chunk-EC26RU2D.mjs.map +7 -0
  117. package/dist/js/chunks/{chunk-WDK4T63U.mjs → chunk-EVCVFEV3.mjs} +235 -146
  118. package/dist/js/chunks/chunk-EVCVFEV3.mjs.map +7 -0
  119. package/dist/js/chunks/chunk-FCNF4GRJ.mjs +445 -0
  120. package/dist/js/chunks/chunk-FCNF4GRJ.mjs.map +7 -0
  121. package/dist/js/chunks/chunk-GCWWEZKO.mjs +342 -0
  122. package/dist/js/chunks/chunk-GCWWEZKO.mjs.map +7 -0
  123. package/dist/js/chunks/chunk-GNRSYMVH.mjs +1 -0
  124. package/dist/js/chunks/chunk-GVZQH2H5.mjs +54 -0
  125. package/dist/js/chunks/chunk-GVZQH2H5.mjs.map +7 -0
  126. package/dist/js/chunks/chunk-GWZ76SR4.mjs +435 -0
  127. package/dist/js/chunks/chunk-GWZ76SR4.mjs.map +7 -0
  128. package/dist/js/chunks/{chunk-PDG64UHF.mjs → chunk-ILDRRG7T.mjs} +21 -23
  129. package/dist/js/chunks/chunk-ILDRRG7T.mjs.map +7 -0
  130. package/dist/js/chunks/chunk-INLZWHLY.mjs +80 -0
  131. package/dist/js/chunks/chunk-INLZWHLY.mjs.map +7 -0
  132. package/dist/js/chunks/chunk-JUKBBN6P.mjs +175 -0
  133. package/dist/js/chunks/chunk-JUKBBN6P.mjs.map +7 -0
  134. package/dist/js/chunks/chunk-KYIEG4U3.mjs +730 -0
  135. package/dist/js/chunks/chunk-KYIEG4U3.mjs.map +7 -0
  136. package/dist/js/chunks/{chunk-BGZLF6JZ.mjs → chunk-KZPSAXIU.mjs} +142 -32
  137. package/dist/js/chunks/chunk-KZPSAXIU.mjs.map +7 -0
  138. package/dist/js/chunks/chunk-LDXCC2L3.mjs +438 -0
  139. package/dist/js/chunks/chunk-LDXCC2L3.mjs.map +7 -0
  140. package/dist/js/chunks/chunk-NAC72P7R.mjs +137 -0
  141. package/dist/js/chunks/chunk-NAC72P7R.mjs.map +7 -0
  142. package/dist/js/chunks/chunk-NBJAUGPP.mjs +244 -0
  143. package/dist/js/chunks/chunk-NBJAUGPP.mjs.map +7 -0
  144. package/dist/js/chunks/chunk-NNHVANQA.mjs +113 -0
  145. package/dist/js/chunks/chunk-NNHVANQA.mjs.map +7 -0
  146. package/dist/js/chunks/chunk-NVQ5EHCU.mjs +376 -0
  147. package/dist/js/chunks/chunk-NVQ5EHCU.mjs.map +7 -0
  148. package/dist/js/chunks/{chunk-DXGRXYYL.mjs → chunk-OP43LLIC.mjs} +28 -45
  149. package/dist/js/chunks/chunk-OP43LLIC.mjs.map +7 -0
  150. package/dist/js/chunks/chunk-OUCHKSAW.mjs +63 -0
  151. package/dist/js/chunks/chunk-OUCHKSAW.mjs.map +7 -0
  152. package/dist/js/chunks/{chunk-TSZYSW7F.mjs → chunk-OYNUDOHR.mjs} +19 -47
  153. package/dist/js/chunks/chunk-OYNUDOHR.mjs.map +7 -0
  154. package/dist/js/chunks/{chunk-UAZSDUVP.mjs → chunk-P6DRQ6KS.mjs} +36 -30
  155. package/dist/js/chunks/chunk-P6DRQ6KS.mjs.map +7 -0
  156. package/dist/js/chunks/chunk-PA7NU5AK.mjs +99 -0
  157. package/dist/js/chunks/chunk-PA7NU5AK.mjs.map +7 -0
  158. package/dist/js/chunks/chunk-QACZ6TUP.mjs +224 -0
  159. package/dist/js/chunks/chunk-QACZ6TUP.mjs.map +7 -0
  160. package/dist/js/chunks/{chunk-GJL6GCIU.mjs → chunk-QXKWVHBD.mjs} +265 -161
  161. package/dist/js/chunks/chunk-QXKWVHBD.mjs.map +7 -0
  162. package/dist/js/chunks/{chunk-X4ISMKE2.mjs → chunk-ROH2HDB4.mjs} +7 -6
  163. package/dist/js/chunks/chunk-ROH2HDB4.mjs.map +7 -0
  164. package/dist/js/chunks/chunk-S23RJ3XY.mjs +86 -0
  165. package/dist/js/chunks/chunk-S23RJ3XY.mjs.map +7 -0
  166. package/dist/js/chunks/{chunk-SMY7GJSS.mjs → chunk-SPPHF7YZ.mjs} +36 -29
  167. package/dist/js/chunks/chunk-SPPHF7YZ.mjs.map +7 -0
  168. package/dist/js/chunks/chunk-T3BNSRP3.mjs +152 -0
  169. package/dist/js/chunks/chunk-T3BNSRP3.mjs.map +7 -0
  170. package/dist/js/chunks/chunk-TFABTUAZ.mjs +108 -0
  171. package/dist/js/chunks/chunk-TFABTUAZ.mjs.map +7 -0
  172. package/dist/js/chunks/chunk-U4B3VHFS.mjs +507 -0
  173. package/dist/js/chunks/chunk-U4B3VHFS.mjs.map +7 -0
  174. package/dist/js/chunks/chunk-UGJHCHXG.mjs +341 -0
  175. package/dist/js/chunks/chunk-UGJHCHXG.mjs.map +7 -0
  176. package/dist/js/chunks/chunk-VFV75DHF.mjs +70 -0
  177. package/dist/js/chunks/chunk-VFV75DHF.mjs.map +7 -0
  178. package/dist/js/chunks/{chunk-ZX6M7SWO.mjs → chunk-VGY4M57S.mjs} +266 -120
  179. package/dist/js/chunks/chunk-VGY4M57S.mjs.map +7 -0
  180. package/dist/js/chunks/chunk-VH4BMAZS.mjs +167 -0
  181. package/dist/js/chunks/chunk-VH4BMAZS.mjs.map +7 -0
  182. package/dist/js/chunks/chunk-VJVQIXHC.mjs +123 -0
  183. package/dist/js/chunks/chunk-VJVQIXHC.mjs.map +7 -0
  184. package/dist/js/chunks/{chunk-SFI2U4YW.mjs → chunk-VMY55K2X.mjs} +76 -109
  185. package/dist/js/chunks/chunk-VMY55K2X.mjs.map +7 -0
  186. package/dist/js/chunks/{chunk-KUFHW3DS.mjs → chunk-VR3L2WN5.mjs} +11 -17
  187. package/dist/js/chunks/chunk-VR3L2WN5.mjs.map +7 -0
  188. package/dist/js/chunks/chunk-W6FAL3TI.mjs +38 -0
  189. package/dist/js/chunks/chunk-W6FAL3TI.mjs.map +7 -0
  190. package/dist/js/chunks/chunk-WU7XJ4RR.mjs +450 -0
  191. package/dist/js/chunks/chunk-WU7XJ4RR.mjs.map +7 -0
  192. package/dist/js/chunks/chunk-X7SDA2J5.mjs +116 -0
  193. package/dist/js/chunks/chunk-X7SDA2J5.mjs.map +7 -0
  194. package/dist/js/chunks/chunk-Y6H2X7ZC.mjs +209 -0
  195. package/dist/js/chunks/chunk-Y6H2X7ZC.mjs.map +7 -0
  196. package/dist/js/chunks/chunk-Y6TLRA3U.mjs +129 -0
  197. package/dist/js/chunks/chunk-Y6TLRA3U.mjs.map +7 -0
  198. package/dist/js/chunks/chunk-Z4GICXR2.mjs +190 -0
  199. package/dist/js/chunks/chunk-Z4GICXR2.mjs.map +7 -0
  200. package/dist/js/chunks/chunk-Z4OARDZ7.mjs +442 -0
  201. package/dist/js/chunks/chunk-Z4OARDZ7.mjs.map +7 -0
  202. package/dist/js/chunks/{chunk-FM5CZOUB.mjs → chunk-ZJNLAGY5.mjs} +19 -30
  203. package/dist/js/chunks/chunk-ZJNLAGY5.mjs.map +7 -0
  204. package/dist/js/chunks/chunk-ZKWUWBUB.mjs +81 -0
  205. package/dist/js/chunks/chunk-ZKWUWBUB.mjs.map +7 -0
  206. package/dist/js/chunks/chunk-ZM3XBHWV.mjs +746 -0
  207. package/dist/js/chunks/chunk-ZM3XBHWV.mjs.map +7 -0
  208. package/dist/js/chunks/chunk-ZO6ZLHFF.mjs +48 -0
  209. package/dist/js/chunks/chunk-ZO6ZLHFF.mjs.map +7 -0
  210. package/dist/js/chunks/chunk-ZVLOUDIJ.mjs +251 -0
  211. package/dist/js/chunks/chunk-ZVLOUDIJ.mjs.map +7 -0
  212. package/dist/js/expressive.cjs +10613 -4327
  213. package/dist/js/expressive.cjs.map +4 -4
  214. package/dist/js/expressive.js +10613 -4327
  215. package/dist/js/expressive.js.map +4 -4
  216. package/dist/js/expressive.min.js +23 -22
  217. package/dist/js/expressive.min.js.map +4 -4
  218. package/dist/js/expressive.mjs +182 -71
  219. package/dist/js/expressive.mjs.map +2 -2
  220. package/dist/js/internal/behaviors/bottomSheets.mjs +4 -3
  221. package/dist/js/internal/behaviors/copy.mjs +9 -0
  222. package/dist/js/internal/behaviors/copy.mjs.map +7 -0
  223. package/dist/js/internal/behaviors/dataTables.mjs +10 -0
  224. package/dist/js/internal/behaviors/dataTables.mjs.map +7 -0
  225. package/dist/js/internal/behaviors/dialogs.mjs +2 -2
  226. package/dist/js/internal/behaviors/forms.mjs +2 -2
  227. package/dist/js/internal/behaviors/imageCompare.mjs +8 -0
  228. package/dist/js/internal/behaviors/imageCompare.mjs.map +7 -0
  229. package/dist/js/internal/behaviors/lists.mjs +8 -0
  230. package/dist/js/internal/behaviors/lists.mjs.map +7 -0
  231. package/dist/js/internal/behaviors/paneResize.mjs +8 -0
  232. package/dist/js/internal/behaviors/paneResize.mjs.map +7 -0
  233. package/dist/js/internal/behaviors/sheetDrag.mjs +7 -2
  234. package/dist/js/internal/behaviors/sideSheets.mjs +4 -3
  235. package/dist/js/internal/behaviors/sortable.mjs +8 -0
  236. package/dist/js/internal/behaviors/sortable.mjs.map +7 -0
  237. package/dist/js/internal/behaviors/theme.mjs +8 -0
  238. package/dist/js/internal/behaviors/theme.mjs.map +7 -0
  239. package/dist/js/internal/behaviors/tour.mjs +8 -0
  240. package/dist/js/internal/behaviors/tour.mjs.map +7 -0
  241. package/dist/js/internal/behaviors/transferList.mjs +8 -0
  242. package/dist/js/internal/behaviors/transferList.mjs.map +7 -0
  243. package/dist/js/internal/components/appBar.mjs +3 -2
  244. package/dist/js/internal/components/autocomplete.mjs +4 -4
  245. package/dist/js/internal/components/backToTop.mjs +9 -0
  246. package/dist/js/internal/components/backToTop.mjs.map +7 -0
  247. package/dist/js/internal/components/barChart.mjs +5 -4
  248. package/dist/js/internal/components/buttonGroup.mjs +3 -2
  249. package/dist/js/internal/components/buttons.mjs +3 -3
  250. package/dist/js/internal/components/cards.mjs +3 -3
  251. package/dist/js/internal/components/carousel.mjs +3 -3
  252. package/dist/js/internal/components/cascader.mjs +10 -0
  253. package/dist/js/internal/components/cascader.mjs.map +7 -0
  254. package/dist/js/internal/components/characterCounter.mjs +3 -2
  255. package/dist/js/internal/components/chips.mjs +6 -5
  256. package/dist/js/internal/components/colorPicker.mjs +9 -0
  257. package/dist/js/internal/components/colorPicker.mjs.map +7 -0
  258. package/dist/js/internal/components/columnChart.mjs +4 -3
  259. package/dist/js/internal/components/commandPalette.mjs +3 -3
  260. package/dist/js/internal/components/confetti.mjs +3 -2
  261. package/dist/js/internal/components/currencyInput.mjs +9 -0
  262. package/dist/js/internal/components/currencyInput.mjs.map +7 -0
  263. package/dist/js/internal/components/datepicker.mjs +11 -8
  264. package/dist/js/internal/components/expandingCard.mjs +3 -3
  265. package/dist/js/internal/components/funnelChart.mjs +10 -0
  266. package/dist/js/internal/components/funnelChart.mjs.map +7 -0
  267. package/dist/js/internal/components/heatmapChart.mjs +4 -3
  268. package/dist/js/internal/components/hoverCard.mjs +9 -0
  269. package/dist/js/internal/components/hoverCard.mjs.map +7 -0
  270. package/dist/js/internal/components/index.mjs +131 -66
  271. package/dist/js/internal/components/inputMask.mjs +9 -0
  272. package/dist/js/internal/components/inputMask.mjs.map +7 -0
  273. package/dist/js/internal/components/keypad.mjs +3 -3
  274. package/dist/js/internal/components/lightbox.mjs +3 -3
  275. package/dist/js/internal/components/lineChart.mjs +25 -4
  276. package/dist/js/internal/components/loadingOverlay.mjs +9 -0
  277. package/dist/js/internal/components/loadingOverlay.mjs.map +7 -0
  278. package/dist/js/internal/components/mapView.mjs +3 -3
  279. package/dist/js/internal/components/menu.mjs +3 -3
  280. package/dist/js/internal/components/menubar.mjs +10 -0
  281. package/dist/js/internal/components/menubar.mjs.map +7 -0
  282. package/dist/js/internal/components/messageScroller.mjs +3 -3
  283. package/dist/js/internal/components/mixedChart.mjs +5 -4
  284. package/dist/js/internal/components/navigationRail.mjs +3 -2
  285. package/dist/js/internal/components/particles.mjs +3 -2
  286. package/dist/js/internal/components/pieChart.mjs +4 -3
  287. package/dist/js/internal/components/pullToRefresh.mjs +9 -0
  288. package/dist/js/internal/components/pullToRefresh.mjs.map +7 -0
  289. package/dist/js/internal/components/questionnaire.mjs +3 -3
  290. package/dist/js/internal/components/radarChart.mjs +4 -3
  291. package/dist/js/internal/components/radialChart.mjs +4 -3
  292. package/dist/js/internal/components/registry.mjs +59 -41
  293. package/dist/js/internal/components/richTextEditor.mjs +3 -3
  294. package/dist/js/internal/components/sankeyChart.mjs +10 -0
  295. package/dist/js/internal/components/sankeyChart.mjs.map +7 -0
  296. package/dist/js/internal/components/scatterChart.mjs +10 -0
  297. package/dist/js/internal/components/scatterChart.mjs.map +7 -0
  298. package/dist/js/internal/components/scrollspy.mjs +3 -2
  299. package/dist/js/internal/components/select.mjs +4 -4
  300. package/dist/js/internal/components/showMore.mjs +9 -0
  301. package/dist/js/internal/components/showMore.mjs.map +7 -0
  302. package/dist/js/internal/components/slider.mjs +3 -3
  303. package/dist/js/internal/components/snackbar.mjs +2 -2
  304. package/dist/js/internal/components/swipeActions.mjs +9 -0
  305. package/dist/js/internal/components/swipeActions.mjs.map +7 -0
  306. package/dist/js/internal/components/tabs.mjs +3 -4
  307. package/dist/js/internal/components/timepicker.mjs +5 -4
  308. package/dist/js/internal/components/tooltip.mjs +3 -3
  309. package/dist/js/internal/components/treeSelect.mjs +13 -0
  310. package/dist/js/internal/components/treeSelect.mjs.map +7 -0
  311. package/dist/js/internal/components/treemapChart.mjs +10 -0
  312. package/dist/js/internal/components/treemapChart.mjs.map +7 -0
  313. package/dist/js/internal/core/component.mjs +2 -1
  314. package/dist/js/internal/core/formControl.mjs +12 -0
  315. package/dist/js/internal/core/formControl.mjs.map +7 -0
  316. package/dist/js/internal/core/spring.mjs +11 -0
  317. package/dist/js/internal/core/spring.mjs.map +7 -0
  318. package/dist/js/internal/core/utils.mjs +11 -3
  319. package/dist/js/internal/plugins/dockedDisplayPlugin.mjs +2 -2
  320. package/dist/js/internal/plugins/modalDisplayPlugin.mjs +13 -0
  321. package/dist/js/internal/plugins/modalDisplayPlugin.mjs.map +7 -0
  322. package/dist/js/modular.mjs +173 -71
  323. package/dist/types/behaviors/bottomSheets.d.ts +19 -3
  324. package/dist/types/behaviors/copy.d.ts +18 -0
  325. package/dist/types/behaviors/dataTables.d.ts +129 -0
  326. package/dist/types/behaviors/dialogs.d.ts +27 -1
  327. package/dist/types/behaviors/forms.d.ts +68 -2
  328. package/dist/types/behaviors/imageCompare.d.ts +12 -0
  329. package/dist/types/behaviors/lists.d.ts +12 -0
  330. package/dist/types/behaviors/paneResize.d.ts +29 -0
  331. package/dist/types/behaviors/sheetDrag.d.ts +18 -0
  332. package/dist/types/behaviors/sideSheets.d.ts +1 -1
  333. package/dist/types/behaviors/sortable.d.ts +28 -0
  334. package/dist/types/behaviors/theme.d.ts +22 -0
  335. package/dist/types/behaviors/tour.d.ts +36 -0
  336. package/dist/types/behaviors/transferList.d.ts +51 -0
  337. package/dist/types/components/appBar.d.ts +5 -6
  338. package/dist/types/components/autocomplete.d.ts +91 -17
  339. package/dist/types/components/backToTop.d.ts +36 -0
  340. package/dist/types/components/barChart.d.ts +3 -6
  341. package/dist/types/components/buttonGroup.d.ts +2 -4
  342. package/dist/types/components/buttons.d.ts +5 -5
  343. package/dist/types/components/cards.d.ts +3 -16
  344. package/dist/types/components/carousel.d.ts +9 -15
  345. package/dist/types/components/cascader.d.ts +130 -0
  346. package/dist/types/components/characterCounter.d.ts +2 -15
  347. package/dist/types/components/chips.d.ts +65 -19
  348. package/dist/types/components/colorPicker.d.ts +42 -0
  349. package/dist/types/components/columnChart.d.ts +23 -10
  350. package/dist/types/components/commandPalette.d.ts +11 -16
  351. package/dist/types/components/confetti.d.ts +2 -4
  352. package/dist/types/components/currencyInput.d.ts +59 -0
  353. package/dist/types/components/datepicker.d.ts +56 -32
  354. package/dist/types/components/expandingCard.d.ts +4 -6
  355. package/dist/types/components/funnelChart.d.ts +38 -0
  356. package/dist/types/components/heatmapChart.d.ts +39 -8
  357. package/dist/types/components/hoverCard.d.ts +58 -0
  358. package/dist/types/components/index.d.ts +16 -1
  359. package/dist/types/components/inputMask.d.ts +30 -0
  360. package/dist/types/components/keypad.d.ts +38 -6
  361. package/dist/types/components/lightbox.d.ts +14 -20
  362. package/dist/types/components/lineChart.d.ts +172 -10
  363. package/dist/types/components/loadingOverlay.d.ts +42 -0
  364. package/dist/types/components/mapView.d.ts +26 -17
  365. package/dist/types/components/menu.d.ts +60 -22
  366. package/dist/types/components/menubar.d.ts +37 -0
  367. package/dist/types/components/messageScroller.d.ts +2 -14
  368. package/dist/types/components/mixedChart.d.ts +15 -6
  369. package/dist/types/components/navigationRail.d.ts +16 -5
  370. package/dist/types/components/particles.d.ts +8 -4
  371. package/dist/types/components/pieChart.d.ts +32 -7
  372. package/dist/types/components/pullToRefresh.d.ts +80 -0
  373. package/dist/types/components/questionnaire.d.ts +58 -16
  374. package/dist/types/components/radarChart.d.ts +10 -6
  375. package/dist/types/components/radialChart.d.ts +58 -7
  376. package/dist/types/components/registry.d.ts +73 -3
  377. package/dist/types/components/richTextEditor.d.ts +6 -14
  378. package/dist/types/components/sankeyChart.d.ts +72 -0
  379. package/dist/types/components/scatterChart.d.ts +102 -0
  380. package/dist/types/components/scrollspy.d.ts +3 -5
  381. package/dist/types/components/select.d.ts +43 -30
  382. package/dist/types/components/showMore.d.ts +51 -0
  383. package/dist/types/components/slider.d.ts +3 -15
  384. package/dist/types/components/snackbar.d.ts +61 -0
  385. package/dist/types/components/swipeActions.d.ts +81 -0
  386. package/dist/types/components/tabs.d.ts +89 -27
  387. package/dist/types/components/timepicker.d.ts +113 -21
  388. package/dist/types/components/tooltip.d.ts +56 -20
  389. package/dist/types/components/treeSelect.d.ts +106 -0
  390. package/dist/types/components/treemapChart.d.ts +56 -0
  391. package/dist/types/core/component.d.ts +43 -25
  392. package/dist/types/core/formControl.d.ts +21 -0
  393. package/dist/types/core/spring.d.ts +20 -0
  394. package/dist/types/core/utils.d.ts +85 -72
  395. package/dist/types/modular.d.ts +33 -1
  396. package/dist/types/plugins/dockedDisplayPlugin.d.ts +10 -8
  397. package/dist/types/plugins/modalDisplayPlugin.d.ts +32 -0
  398. package/package.json +10 -8
  399. package/src/sass/README.md +27 -18
  400. package/src/sass/abstracts/_elevation.scss +13 -7
  401. package/src/sass/abstracts/_index.scss +1 -0
  402. package/src/sass/abstracts/_mixins.scss +422 -36
  403. package/src/sass/abstracts/_spring.scss +63 -0
  404. package/src/sass/abstracts/_variables.scss +39 -21
  405. package/src/sass/base/_fonts.scss +61 -48
  406. package/src/sass/base/_global.scss +104 -24
  407. package/src/sass/base/_index.scss +2 -0
  408. package/src/sass/base/_normalize.scss +59 -114
  409. package/src/sass/base/_print.scss +21 -0
  410. package/src/sass/base/_prose.scss +68 -0
  411. package/src/sass/base/_typography.scss +9 -5
  412. package/src/sass/components/_accordion.scss +9 -16
  413. package/src/sass/components/_alert.scss +102 -0
  414. package/src/sass/components/_aura.scss +8 -3
  415. package/src/sass/components/_avatar.scss +3 -3
  416. package/src/sass/components/_back-to-top.scss +38 -0
  417. package/src/sass/components/_badges.scss +6 -5
  418. package/src/sass/components/_bar-chart.scss +41 -19
  419. package/src/sass/components/_bottom-sheet.scss +44 -16
  420. package/src/sass/components/_breadcrumb.scss +8 -1
  421. package/src/sass/components/_button-groups.scss +15 -25
  422. package/src/sass/components/_buttons.scss +156 -63
  423. package/src/sass/components/_calendar.scss +246 -0
  424. package/src/sass/components/_cards.scss +36 -44
  425. package/src/sass/components/_carousel.scss +27 -103
  426. package/src/sass/components/_cascader.scss +142 -0
  427. package/src/sass/components/_chips.scss +36 -46
  428. package/src/sass/components/_column-chart.scss +19 -12
  429. package/src/sass/components/_command-palette.scss +4 -7
  430. package/src/sass/components/_confetti.scss +0 -2
  431. package/src/sass/components/_countdown.scss +1 -1
  432. package/src/sass/components/_data-table.scss +162 -25
  433. package/src/sass/components/_datepicker.scss +54 -40
  434. package/src/sass/components/_description-list.scss +85 -0
  435. package/src/sass/components/_dialog.scss +42 -41
  436. package/src/sass/components/_docked-display.scss +1 -3
  437. package/src/sass/components/_drag-handle.scss +16 -20
  438. package/src/sass/components/_expanding-card.scss +20 -9
  439. package/src/sass/components/_fab-menu.scss +44 -32
  440. package/src/sass/components/_funnel-chart.scss +124 -0
  441. package/src/sass/components/_heatmap-chart.scss +111 -22
  442. package/src/sass/components/_icon-buttons.scss +7 -7
  443. package/src/sass/components/_icons-material-design.scss +2 -2
  444. package/src/sass/components/_image-compare.scss +108 -0
  445. package/src/sass/components/_index.scss +20 -0
  446. package/src/sass/components/_keypad.scss +39 -19
  447. package/src/sass/components/_kpi.scss +6 -11
  448. package/src/sass/components/_lightbox.scss +24 -13
  449. package/src/sass/components/_line-chart.scss +16 -2
  450. package/src/sass/components/_list.scss +59 -14
  451. package/src/sass/components/_loading-indicator.scss +1 -0
  452. package/src/sass/components/_loading-overlay.scss +105 -0
  453. package/src/sass/components/_map.scss +33 -11
  454. package/src/sass/components/_marquee.scss +3 -2
  455. package/src/sass/components/_mega-menu.scss +137 -0
  456. package/src/sass/components/_menu.scss +143 -123
  457. package/src/sass/components/_menubar.scss +59 -0
  458. package/src/sass/components/_message-scroller.scss +2 -2
  459. package/src/sass/components/_message.scss +3 -3
  460. package/src/sass/components/_mixed-chart.scss +37 -9
  461. package/src/sass/components/_modal-display.scss +21 -0
  462. package/src/sass/components/_navbar.scss +34 -20
  463. package/src/sass/components/_navigation-bar.scss +15 -77
  464. package/src/sass/components/_navigation-rail.scss +151 -92
  465. package/src/sass/components/_org-chart.scss +192 -0
  466. package/src/sass/components/_page-footer.scss +1 -1
  467. package/src/sass/components/_pagination.scss +6 -13
  468. package/src/sass/components/_panes.scss +32 -26
  469. package/src/sass/components/_particles.scss +0 -2
  470. package/src/sass/components/_pie-chart.scss +91 -11
  471. package/src/sass/components/_popover.scss +18 -5
  472. package/src/sass/components/_progress.scss +152 -31
  473. package/src/sass/components/_pull-to-refresh.scss +90 -0
  474. package/src/sass/components/_questionnaire.scss +74 -3
  475. package/src/sass/components/_radar-chart.scss +38 -10
  476. package/src/sass/components/_radial-chart.scss +113 -5
  477. package/src/sass/components/_rich-text-editor.scss +2 -2
  478. package/src/sass/components/_sankey-chart.scss +114 -0
  479. package/src/sass/components/_scatter-chart.scss +153 -0
  480. package/src/sass/components/_scrim.scss +0 -2
  481. package/src/sass/components/_scrollspy.scss +0 -2
  482. package/src/sass/components/_search.scss +26 -22
  483. package/src/sass/components/_show-more.scss +8 -0
  484. package/src/sass/components/_side-sheet.scss +23 -37
  485. package/src/sass/components/_skeleton.scss +2 -4
  486. package/src/sass/components/_snackbar.scss +27 -21
  487. package/src/sass/components/_split-button.scss +5 -5
  488. package/src/sass/components/_stat.scss +3 -8
  489. package/src/sass/components/_stepper.scss +1 -1
  490. package/src/sass/components/_swipe-actions.scss +71 -0
  491. package/src/sass/components/_tabs.scss +51 -32
  492. package/src/sass/components/_timeline.scss +12 -12
  493. package/src/sass/components/_timepicker.scss +109 -78
  494. package/src/sass/components/_toolbar.scss +35 -43
  495. package/src/sass/components/_tooltip.scss +21 -12
  496. package/src/sass/components/_tour.scss +89 -0
  497. package/src/sass/components/_transfer-list.scss +73 -0
  498. package/src/sass/components/_transitions.scss +4 -4
  499. package/src/sass/components/_tree.scss +3 -16
  500. package/src/sass/components/_treemap-chart.scss +122 -0
  501. package/src/sass/components/forms/_checkboxes.scss +106 -24
  502. package/src/sass/components/forms/_color-picker.scss +135 -0
  503. package/src/sass/components/forms/_color-swatches.scss +85 -0
  504. package/src/sass/components/forms/_drop-zone.scss +15 -9
  505. package/src/sass/components/forms/_fieldset.scss +7 -7
  506. package/src/sass/components/forms/_file-input.scss +6 -8
  507. package/src/sass/components/forms/_index.scss +3 -1
  508. package/src/sass/components/forms/_input-fields.scss +254 -90
  509. package/src/sass/components/forms/_radio-buttons.scss +33 -94
  510. package/src/sass/components/forms/_rating.scss +2 -32
  511. package/src/sass/components/forms/_select.scss +199 -20
  512. package/src/sass/components/forms/_slider.scss +91 -94
  513. package/src/sass/components/forms/_switches.scss +53 -164
  514. package/src/sass/custom.scss +10 -1
  515. package/src/sass/expressive.scss +3 -63
  516. package/src/sass/tokens/_contrast.scss +94 -0
  517. package/src/sass/tokens/_elevation.scss +16 -0
  518. package/src/sass/tokens/_index.scss +5 -0
  519. package/src/sass/tokens/_motion.scss +109 -0
  520. package/src/sass/tokens/_reference.scss +72 -141
  521. package/src/sass/tokens/_shape.scss +38 -0
  522. package/src/sass/tokens/_stacking.scss +27 -0
  523. package/src/sass/tokens/_state.scss +0 -2
  524. package/src/sass/tokens/_theme.scss +10 -1
  525. package/src/sass/tokens/_vibrant.scss +2 -5
  526. package/src/sass/utilities/_defer-render.scss +17 -0
  527. package/src/sass/utilities/_helpers.scss +183 -26
  528. package/src/sass/utilities/_index.scss +1 -0
  529. package/src/sass/utilities/_scroll-area.scss +0 -2
  530. package/src/sass/utilities/_spacing.scss +52 -34
  531. package/src/sass/utilities/_typescale.scss +8 -1
  532. package/src/sass/utilities/_visibility.scss +47 -76
  533. package/src/sass/utilities/_z-depth.scss +7 -4
  534. package/dist/js/chunks/chunk-33QVDDGR.mjs +0 -270
  535. package/dist/js/chunks/chunk-33QVDDGR.mjs.map +0 -7
  536. package/dist/js/chunks/chunk-45FER6RI.mjs +0 -59
  537. package/dist/js/chunks/chunk-45FER6RI.mjs.map +0 -7
  538. package/dist/js/chunks/chunk-5CEAOLUA.mjs.map +0 -7
  539. package/dist/js/chunks/chunk-6VATUZC6.mjs +0 -295
  540. package/dist/js/chunks/chunk-6VATUZC6.mjs.map +0 -7
  541. package/dist/js/chunks/chunk-74MXKKLN.mjs.map +0 -7
  542. package/dist/js/chunks/chunk-AIURVCG6.mjs +0 -55
  543. package/dist/js/chunks/chunk-AIURVCG6.mjs.map +0 -7
  544. package/dist/js/chunks/chunk-BGZLF6JZ.mjs.map +0 -7
  545. package/dist/js/chunks/chunk-C6CHEWYP.mjs.map +0 -7
  546. package/dist/js/chunks/chunk-CK2XCICY.mjs.map +0 -7
  547. package/dist/js/chunks/chunk-CXXM2L4F.mjs +0 -344
  548. package/dist/js/chunks/chunk-CXXM2L4F.mjs.map +0 -7
  549. package/dist/js/chunks/chunk-DXGRXYYL.mjs.map +0 -7
  550. package/dist/js/chunks/chunk-FM5CZOUB.mjs.map +0 -7
  551. package/dist/js/chunks/chunk-GJL6GCIU.mjs.map +0 -7
  552. package/dist/js/chunks/chunk-K3HZMFMD.mjs +0 -135
  553. package/dist/js/chunks/chunk-K3HZMFMD.mjs.map +0 -7
  554. package/dist/js/chunks/chunk-KHXZ2A4K.mjs.map +0 -7
  555. package/dist/js/chunks/chunk-KQACNQ22.mjs +0 -7
  556. package/dist/js/chunks/chunk-KQACNQ22.mjs.map +0 -7
  557. package/dist/js/chunks/chunk-KUFHW3DS.mjs.map +0 -7
  558. package/dist/js/chunks/chunk-KVJAVDBC.mjs.map +0 -7
  559. package/dist/js/chunks/chunk-L27Q6ZMI.mjs.map +0 -7
  560. package/dist/js/chunks/chunk-LQWUDNHZ.mjs.map +0 -7
  561. package/dist/js/chunks/chunk-M372EDXD.mjs +0 -322
  562. package/dist/js/chunks/chunk-M372EDXD.mjs.map +0 -7
  563. package/dist/js/chunks/chunk-M3MURWMB.mjs +0 -82
  564. package/dist/js/chunks/chunk-M3MURWMB.mjs.map +0 -7
  565. package/dist/js/chunks/chunk-NUHMOAOY.mjs.map +0 -7
  566. package/dist/js/chunks/chunk-OWG3LMUL.mjs +0 -169
  567. package/dist/js/chunks/chunk-OWG3LMUL.mjs.map +0 -7
  568. package/dist/js/chunks/chunk-PD6HYHAE.mjs +0 -48
  569. package/dist/js/chunks/chunk-PD6HYHAE.mjs.map +0 -7
  570. package/dist/js/chunks/chunk-PDG64UHF.mjs.map +0 -7
  571. package/dist/js/chunks/chunk-PO3AXVR3.mjs +0 -546
  572. package/dist/js/chunks/chunk-PO3AXVR3.mjs.map +0 -7
  573. package/dist/js/chunks/chunk-QYGK36OG.mjs +0 -181
  574. package/dist/js/chunks/chunk-QYGK36OG.mjs.map +0 -7
  575. package/dist/js/chunks/chunk-SFI2U4YW.mjs.map +0 -7
  576. package/dist/js/chunks/chunk-SMY7GJSS.mjs.map +0 -7
  577. package/dist/js/chunks/chunk-TCCA2HDG.mjs +0 -414
  578. package/dist/js/chunks/chunk-TCCA2HDG.mjs.map +0 -7
  579. package/dist/js/chunks/chunk-TSZYSW7F.mjs.map +0 -7
  580. package/dist/js/chunks/chunk-UAZSDUVP.mjs.map +0 -7
  581. package/dist/js/chunks/chunk-UBRZZWRA.mjs +0 -127
  582. package/dist/js/chunks/chunk-UBRZZWRA.mjs.map +0 -7
  583. package/dist/js/chunks/chunk-UCOE7ZDL.mjs +0 -287
  584. package/dist/js/chunks/chunk-UCOE7ZDL.mjs.map +0 -7
  585. package/dist/js/chunks/chunk-UETTGDLI.mjs.map +0 -7
  586. package/dist/js/chunks/chunk-UNCRDLP6.mjs +0 -136
  587. package/dist/js/chunks/chunk-UNCRDLP6.mjs.map +0 -7
  588. package/dist/js/chunks/chunk-VGNYF6FB.mjs.map +0 -7
  589. package/dist/js/chunks/chunk-VGPGBNGL.mjs +0 -68
  590. package/dist/js/chunks/chunk-VGPGBNGL.mjs.map +0 -7
  591. package/dist/js/chunks/chunk-VKAUVTQY.mjs +0 -1
  592. package/dist/js/chunks/chunk-VM4FTS7L.mjs +0 -48
  593. package/dist/js/chunks/chunk-VM4FTS7L.mjs.map +0 -7
  594. package/dist/js/chunks/chunk-WDK4T63U.mjs.map +0 -7
  595. package/dist/js/chunks/chunk-WOCCTVUF.mjs +0 -185
  596. package/dist/js/chunks/chunk-WOCCTVUF.mjs.map +0 -7
  597. package/dist/js/chunks/chunk-WQYN5L4E.mjs +0 -107
  598. package/dist/js/chunks/chunk-WQYN5L4E.mjs.map +0 -7
  599. package/dist/js/chunks/chunk-X4ISMKE2.mjs.map +0 -7
  600. package/dist/js/chunks/chunk-XAEAEHIX.mjs.map +0 -7
  601. package/dist/js/chunks/chunk-ZX6M7SWO.mjs.map +0 -7
  602. /package/dist/js/chunks/{chunk-VKAUVTQY.mjs.map → chunk-GNRSYMVH.mjs.map} +0 -0
@@ -1,6 +1,4 @@
1
- @use "../abstracts" as *;
2
-
3
- :is(.datepicker-container, .date-picker-container) {
1
+ .datepicker-container {
4
2
  display: flex;
5
3
  flex-direction: column;
6
4
  max-width: 325px;
@@ -8,7 +6,7 @@
8
6
  background-color: var(--md-sys-color-surface);
9
7
  }
10
8
 
11
- :is(.datepicker-controls, .date-picker-controls) {
9
+ .datepicker-controls {
12
10
  display: flex;
13
11
  justify-content: space-between;
14
12
  width: 280px;
@@ -23,7 +21,7 @@
23
21
  height: 49px;
24
22
  margin: 4px 0 0 0;
25
23
  border-bottom: none;
26
- border-radius: 4px;
24
+ border-radius: var(--md-sys-shape-corner-extra-small);
27
25
  text-align: center;
28
26
 
29
27
  &:focus {
@@ -85,19 +83,13 @@
85
83
  }
86
84
 
87
85
 
88
- /* Date Display */
89
- :is(.datepicker-date-display, .date-picker-date-display) {
86
+ // Date Display
87
+ .datepicker-date-display {
90
88
  flex: 1 auto;
91
89
  padding: 20px 22px;
92
- border-bottom: 1px solid var(--md-sys-color-surface-variant);
90
+ border-bottom: 1px solid var(--md-sys-color-surface-container-highest);
93
91
  font-weight: 500;
94
92
 
95
- .year-text {
96
- display: block;
97
- font-size: 1.5rem;
98
- line-height: 25px;
99
- }
100
-
101
93
  .date-text {
102
94
  display: block;
103
95
  font-size: 2.8rem;
@@ -113,12 +105,12 @@
113
105
  }
114
106
 
115
107
 
116
- /* Calendar */
117
- :is(.datepicker-calendar-container, .date-picker-calendar-container) {
108
+ // Calendar
109
+ .datepicker-calendar-container {
118
110
  flex: 2.5 auto;
119
111
  }
120
112
 
121
- :is(.datepicker-table, .date-picker-table) {
113
+ .datepicker-table {
122
114
  width: 280px;
123
115
  font-size: 1rem;
124
116
  margin: 0 auto;
@@ -141,9 +133,9 @@
141
133
  color: var(--md-sys-color-on-surface-variant);
142
134
  }
143
135
 
144
- :is(.datepicker-day, .date-picker-day) {
136
+ .datepicker-day {
145
137
  padding: 0;
146
- color: var(--md-sys-color-on-background);
138
+ color: var(--md-sys-color-on-surface);
147
139
 
148
140
  &.is-today {
149
141
  color: var(--md-sys-color-primary);
@@ -151,9 +143,9 @@
151
143
  }
152
144
  }
153
145
 
154
- :is(.datepicker-day, .date-picker-day).is-daterange-start,
155
- :is(.datepicker-day, .date-picker-day).is-daterange-end,
156
- :is(.datepicker-day, .date-picker-day).is-daterange {
146
+ .datepicker-day.is-daterange-start,
147
+ .datepicker-day.is-daterange-end,
148
+ .datepicker-day.is-daterange {
157
149
  position: relative;
158
150
 
159
151
  &:before {
@@ -167,20 +159,27 @@
167
159
  }
168
160
  }
169
161
 
170
- :is(.datepicker-day, .date-picker-day).is-daterange-start:before,
171
- :is(.datepicker-day, .date-picker-day).is-daterange-end:before {
162
+ .datepicker-day.is-daterange-start:before,
163
+ .datepicker-day.is-daterange-end:before {
172
164
  width: 50%;
173
165
  }
174
166
 
175
- :is(.datepicker-day, .date-picker-day).is-daterange-start:before {
176
- left: 50%;
167
+ // Follows the table's reading direction, which is the page's. Known issue:
168
+ // the `isRTL` option reverses the cells in script instead, so with it on this
169
+ // band points away from the range (and on an RTL page the calendar reads left
170
+ // to right again). ponytail: render isRTL as dir="rtl" on the table; that also
171
+ // needs the arrow keys and renderRow callers handled, see the 2026-10-16 review.
172
+ // Before the start rule: a one-day range carries both classes and keeps the
173
+ // start band, as it always has in LTR.
174
+ .datepicker-day.is-daterange-end:before {
175
+ inset-inline-start: 0;
177
176
  }
178
177
 
179
- :is(.datepicker-day, .date-picker-day).is-daterange :is(.datepicker-day-button, .date-picker-day-button):before {
180
- background-color: var(--md-sys-color-primary-container);
178
+ .datepicker-day.is-daterange-start:before {
179
+ inset-inline-start: 50%;
181
180
  }
182
181
 
183
- :is(.datepicker-day-button, .date-picker-day-button) {
182
+ .datepicker-day-button {
184
183
  background-color: transparent;
185
184
  border: none;
186
185
  line-height: 34px;
@@ -207,7 +206,7 @@
207
206
  color: var(--md-sys-color-on-primary);
208
207
 
209
208
  &:focus {
210
- background-color: var(--md-sys-color-surface-variant);
209
+ background-color: var(--md-sys-color-surface-container-highest);
211
210
  color: var(--md-sys-color-primary);
212
211
  }
213
212
  }
@@ -219,8 +218,8 @@
219
218
  }
220
219
  }
221
220
 
222
- /* Footer */
223
- :is(.datepicker-footer, .date-picker-footer) {
221
+ // Footer
222
+ .datepicker-footer {
224
223
  width: 280px;
225
224
  margin: 0 auto;
226
225
  padding-bottom: 5px;
@@ -228,15 +227,30 @@
228
227
  justify-content: space-between;
229
228
  }
230
229
 
231
- :is(.datepicker-cancel, .date-picker-cancel),
232
- :is(.datepicker-clear, .date-picker-clear),
233
- :is(.datepicker-today, .date-picker-today),
234
- :is(.datepicker-done, .date-picker-done) {
235
- color: var(--md-sys-color-primary);
230
+ .datepicker-clear {
231
+ color: var(--md-sys-color-error);
236
232
  padding: 0 1rem;
237
233
  }
238
234
 
239
- :is(.datepicker-clear, .date-picker-clear) {
240
- color: var(--md-sys-color-error);
241
- }
242
235
 
236
+ // Today, the selected day and the range are colour only, and forced colors
237
+ // paint them all as Canvas.
238
+ @media (forced-colors: active) {
239
+ .datepicker-day.is-today .datepicker-day-button {
240
+ outline: 1px solid CanvasText;
241
+ outline-offset: -1px;
242
+ }
243
+
244
+ .is-selected .datepicker-day-button {
245
+ forced-color-adjust: none;
246
+ background-color: Highlight;
247
+ color: HighlightText;
248
+ }
249
+
250
+ // A filled band would sit behind CanvasText day numbers, and no system
251
+ // color pair guarantees contrast there. Rule the band top and bottom.
252
+ .datepicker-day:is(.is-daterange-start, .is-daterange-end, .is-daterange)::before {
253
+ box-sizing: border-box;
254
+ border-block: 1px solid CanvasText;
255
+ }
256
+ }
@@ -0,0 +1,85 @@
1
+ @use "../abstracts" as *;
2
+
3
+ // Description list. Label and value pairs for a record's details, such as an
4
+ // order's status, dates and totals, on a native <dl>: each <dt> is a label and
5
+ // the <dd> elements after it are its values. A <div> may wrap each group, as
6
+ // HTML allows; it takes no box of its own.
7
+ //
8
+ // Two columns from Medium up, labels in the first; at Compact widths each
9
+ // label sits above its values, as it does in a .query-container narrower
10
+ // than 600px. A divider runs above every group.
11
+ //
12
+ // Tokens:
13
+ // --md-comp-description-list-label-width minmax(8rem, 33%)
14
+ // --md-comp-description-list-divider-color outline-variant
15
+ // --md-comp-description-list-padding 12px (block, per row)
16
+
17
+ @mixin _stacked {
18
+ grid-template-columns: minmax(0, 1fr);
19
+
20
+ dt,
21
+ dd {
22
+ grid-column: 1;
23
+ }
24
+
25
+ dt {
26
+ padding-block-end: 0;
27
+ }
28
+
29
+ dt + dd {
30
+ padding-block-start: 4px;
31
+ border-block-start: 0;
32
+ }
33
+ }
34
+
35
+ dl.description-list {
36
+ --md-comp-description-list-label-width: minmax(8rem, 33%);
37
+ --md-comp-description-list-divider-color: var(--md-sys-color-outline-variant);
38
+ --md-comp-description-list-padding: 12px;
39
+
40
+ display: grid;
41
+ grid-template-columns: var(--md-comp-description-list-label-width) minmax(0, 1fr);
42
+ margin: $element-top-margin 0 $element-bottom-margin;
43
+
44
+ > div {
45
+ display: contents;
46
+ }
47
+
48
+ dt,
49
+ dd {
50
+ margin: 0;
51
+ padding-block: var(--md-comp-description-list-padding);
52
+ overflow-wrap: break-word;
53
+ }
54
+
55
+ // The space between the columns is the label's own padding, so a group's
56
+ // divider runs unbroken across both.
57
+ dt {
58
+ grid-column: 1;
59
+ padding-inline-end: 24px;
60
+ color: var(--md-sys-color-on-surface-variant);
61
+ @include typescale("label-large");
62
+ }
63
+
64
+ dd {
65
+ grid-column: 2;
66
+ color: var(--md-sys-color-on-surface);
67
+ @include typescale("body-medium");
68
+ }
69
+
70
+ // A group's first row carries the divider; extra values under one label
71
+ // continue the group without one.
72
+ dt,
73
+ dt + dd {
74
+ border-block-start: 1px solid var(--md-comp-description-list-divider-color);
75
+ }
76
+
77
+ dd + dd {
78
+ padding-block-start: 0;
79
+ }
80
+
81
+ // One column on Compact windows, and in a query container narrower than
82
+ // Compact, so a list in a sidebar stacks on a wide window too.
83
+ @include bp-down("medium") { @include _stacked; }
84
+ @container (width < 600px) { @include _stacked; }
85
+ }
@@ -3,7 +3,7 @@
3
3
  // Dialogs (M3 Expressive).
4
4
  //
5
5
  // Anatomy is the HTML. A <dialog> is a basic dialog: optional leading
6
- // <i>, a heading, supporting <p> (or a wrapping <div>), optional <hr>
6
+ // icon, a heading, supporting <p> (or a wrapping <div>), optional <hr>
7
7
  // + extra content, and a last-child <form method="dialog"> or <nav>
8
8
  // as the action row. dialog.max is the full-screen variant: a <header>
9
9
  // holds close, the headline, and the confirming action.
@@ -20,7 +20,7 @@
20
20
 
21
21
  dialog {
22
22
  --md-comp-basic-dialog-container-color: var(--md-sys-color-surface-container-high);
23
- --md-comp-basic-dialog-container-shape: 28px;
23
+ --md-comp-basic-dialog-container-shape: var(--md-sys-shape-corner-extra-large);
24
24
  --md-comp-basic-dialog-container-min-width: 280px;
25
25
  --md-comp-basic-dialog-container-max-width: 560px;
26
26
  --md-comp-basic-dialog-scrim-blur: 12px;
@@ -46,6 +46,37 @@ dialog {
46
46
  }
47
47
  }
48
48
 
49
+ // Basic dialogs fade in on the fast effects spring and grow from 96% on the
50
+ // default spatial spring, so motion="expressive" reaches them. Entry only:
51
+ // close() takes the dialog out of the top layer at once, as the sheets do.
52
+ // Sheets, full-screen dialogs and the expanding card's dialog move their
53
+ // own way.
54
+ $_basic: "dialog:not(.bottom-sheet, .side-sheet, .max, .expanding-card-dialog)";
55
+
56
+ #{$_basic} {
57
+ --md-comp-basic-dialog-easing: var(--md-sys-motion-spring-default-spatial);
58
+ --md-comp-basic-dialog-duration: var(--md-sys-motion-spring-default-spatial-duration);
59
+ --md-comp-basic-dialog-effects-easing: var(--md-sys-motion-spring-fast-effects);
60
+ --md-comp-basic-dialog-effects-duration: var(--md-sys-motion-spring-fast-effects-duration);
61
+
62
+ transition:
63
+ opacity var(--md-comp-basic-dialog-effects-duration) var(--md-comp-basic-dialog-effects-easing),
64
+ scale var(--md-comp-basic-dialog-duration) var(--md-comp-basic-dialog-easing);
65
+ }
66
+
67
+ @starting-style {
68
+ :is(#{$_basic})[open] {
69
+ opacity: 0;
70
+ scale: 0.96;
71
+ }
72
+ }
73
+
74
+ @media (prefers-reduced-motion: reduce) {
75
+ #{$_basic} {
76
+ transition: none;
77
+ }
78
+ }
79
+
49
80
  // showModal() puts the dialog in the top layer but does not lock the
50
81
  // document scroller. :modal is the modal-only match — a modeless
51
82
  // dialog.show() must not freeze the page.
@@ -65,10 +96,10 @@ dialog > #{$icon}:first-child {
65
96
  flex: 0 0 auto;
66
97
  align-self: center;
67
98
  margin: 24px 24px 0;
68
- font-size: 24px;
69
- width: 24px;
70
- height: 24px;
71
- line-height: 24px;
99
+ font-size: rem(24px);
100
+ width: rem(24px);
101
+ height: rem(24px);
102
+ line-height: rem(24px);
72
103
  color: var(--md-sys-color-secondary);
73
104
  }
74
105
 
@@ -144,15 +175,7 @@ dialog > :is(form, nav):last-child {
144
175
  background: none;
145
176
  }
146
177
 
147
- dialog:not(
148
- .bottom,
149
- .bottom-sheet,
150
- .side-sheet,
151
- .right,
152
- .right-sheet,
153
- .left,
154
- .left-sheet
155
- )
178
+ dialog:not(.bottom-sheet, .side-sheet)
156
179
  > :is(form, nav):last-child
157
180
  > :is(button, a.button):not(.tonal, .outlined, .elevated, .filled, .icon-button) {
158
181
  @include btn-flat;
@@ -208,7 +231,8 @@ dialog.max {
208
231
  flex: 0 0 auto;
209
232
  align-items: center;
210
233
  margin: 0;
211
- padding: 0 8px 0 0;
234
+ padding: 0;
235
+ padding-inline-end: 8px;
212
236
  border: 0;
213
237
  background: none;
214
238
  box-shadow: none;
@@ -222,32 +246,9 @@ dialog.max {
222
246
  // escape hatch the app bar already has.
223
247
  > header > :is(button, a):not(.button, .icon-button):has(> #{$icon}:only-child) {
224
248
  display: inline-flex;
225
- flex: 0 0 48px;
226
249
  align-items: center;
227
250
  justify-content: center;
228
- box-sizing: border-box;
229
- width: 48px;
230
- height: 48px;
231
- min-width: 48px;
232
- padding: 0;
233
- border: none;
234
- border-radius: 50%;
235
- background-color: transparent;
236
- color: var(--md-sys-color-on-surface-variant);
237
- box-shadow: none;
238
-
239
- > #{$icon} {
240
- font-size: 24px;
241
- width: 24px;
242
- height: 24px;
243
- line-height: 24px;
244
- }
245
-
246
- &:hover {
247
- background-color: color-mix(in oklab, var(--md-sys-color-on-surface) state-opacity("hover"), transparent);
248
- }
249
-
250
- @include focus-visible;
251
+ @include header-icon-action;
251
252
  }
252
253
 
253
254
  // Confirming action in the header is a text button, not an icon.
@@ -257,7 +258,7 @@ dialog.max {
257
258
  min-width: 0;
258
259
  height: 40px;
259
260
  padding-inline: 12px;
260
- border-radius: 20px;
261
+ border-radius: var(--md-sys-shape-corner-large-increased);
261
262
  }
262
263
 
263
264
  > :is(p, div) {
@@ -1,11 +1,9 @@
1
- @use "../abstracts" as *;
2
-
3
1
  // Container created by src/ts/plugins/dockedDisplayPlugin.ts, which positions
4
2
  // and animates it inline. Only the resting state belongs here.
5
3
 
6
4
  .display-docked {
7
5
  position: absolute;
8
6
  opacity: 0;
9
- z-index: 9999;
7
+ z-index: var(--expressive-z-menu);
10
8
  visibility: hidden;
11
9
  }
@@ -8,12 +8,16 @@
8
8
  // to it. semantics.json enforces exactly that split, which is what lets the
9
9
  // interactive states below key off `button` and be right every time.
10
10
  //
11
- // **Nothing here drags.** The handle is CSS; the dragging is the page's, and so
12
- // is the keyboard path to whatever the drag achieves. A handle that answers
13
- // only a pointer puts its outcome out of reach of everyone not using one, so
14
- // the framework ships no reordering behaviour to hang off this and the docs say
15
- // plainly that a drag-only reorder is unreachable. The decorative spelling is
16
- // the default; the button spelling has to earn its name.
11
+ // **Nothing here drags.** The handle is CSS. Four behaviors wire it: the
12
+ // bottom sheet's dismiss drag, PaneResize and data table column resize on the
13
+ // button spelling, and Sortable on a decorative handle in a .sortable row.
14
+ // Each brings its own
15
+ // keyboard and single-pointer path; Sortable's is the row's Move up and Move
16
+ // down buttons, which semantics.json requires. Anywhere else the dragging is
17
+ // the page's, and so is the keyboard path to whatever the drag achieves. A
18
+ // handle that answers only a pointer puts its outcome out of reach of
19
+ // everyone not using one. The decorative spelling is the default; the button
20
+ // spelling has to earn its name.
17
21
  //
18
22
  // M3 Expressive tokenised the *vertical* handle - the one sitting in the gutter
19
23
  // between two panes, Compose's VerticalDragHandle: a 4x48dp bar in a 24dp
@@ -46,11 +50,11 @@
46
50
  --md-comp-drag-handle-container-width: 24px;
47
51
  --md-comp-drag-handle-width: 4px;
48
52
  --md-comp-drag-handle-height: 48px;
49
- --md-comp-drag-handle-shape: 9999px;
53
+ --md-comp-drag-handle-shape: var(--md-sys-shape-corner-full);
50
54
  --md-comp-drag-handle-color: var(--md-sys-color-outline);
51
55
  --md-comp-drag-handle-pressed-width: 12px;
52
56
  --md-comp-drag-handle-pressed-height: 52px;
53
- --md-comp-drag-handle-pressed-shape: 12px;
57
+ --md-comp-drag-handle-pressed-shape: var(--md-sys-shape-corner-medium);
54
58
  --md-comp-drag-handle-pressed-color: var(--md-sys-color-on-surface);
55
59
  --md-comp-drag-handle-state-layer-color: var(--md-sys-color-inverse-on-surface);
56
60
 
@@ -83,8 +87,8 @@
83
87
  block-size: var(--md-comp-drag-handle-height);
84
88
  border-radius: var(--md-comp-drag-handle-shape);
85
89
  background-color: var(--md-comp-drag-handle-color);
86
- transition: inline-size .15s ease, block-size .15s ease, border-radius .15s ease,
87
- background-color .15s ease;
90
+ transition: inline-size var(--md-sys-motion-duration-short3) ease, block-size var(--md-sys-motion-duration-short3) ease, border-radius var(--md-sys-motion-duration-short3) ease,
91
+ background-color var(--md-sys-motion-duration-short3) ease;
88
92
  }
89
93
  }
90
94
 
@@ -94,19 +98,11 @@
94
98
  // every other element to aria-hidden is what keeps the two in step.
95
99
  button.drag-handle {
96
100
  &:hover {
97
- background-color: color-mix(
98
- in oklab,
99
- var(--md-comp-drag-handle-state-layer-color) state-opacity("hover"),
100
- transparent
101
- );
101
+ background-color: state-layer(var(--md-comp-drag-handle-state-layer-color), "hover");
102
102
  }
103
103
 
104
104
  &:focus-visible {
105
- background-color: color-mix(
106
- in oklab,
107
- var(--md-comp-drag-handle-state-layer-color) state-opacity("focus"),
108
- transparent
109
- );
105
+ background-color: state-layer(var(--md-comp-drag-handle-state-layer-color), "focus");
110
106
  }
111
107
 
112
108
  @include focus-visible;
@@ -9,8 +9,19 @@
9
9
  article.expanding-card {
10
10
  --md-comp-expanding-card-container-color: var(--md-sys-color-surface);
11
11
  --md-comp-expanding-card-expanded-shape: 0;
12
- --md-comp-expanding-card-motion-duration: 500ms;
13
- --md-comp-expanding-card-motion-easing: cubic-bezier(0.2, 0, 0, 1);
12
+ // The container morph and the hero height run on the slow spatial spring,
13
+ // M3's choice for a full-screen move; the close button and the detail
14
+ // content arrive on the default spatial spring and fade on the fast
15
+ // effects spring. All follow motion="expressive". Each easing is paired
16
+ // with its own duration: a spring played over another duration is no
17
+ // longer that spring.
18
+ --md-comp-expanding-card-motion-duration: var(--md-sys-motion-spring-slow-spatial-duration);
19
+ --md-comp-expanding-card-motion-easing: var(--md-sys-motion-spring-slow-spatial);
20
+ --md-comp-expanding-card-content-duration: var(--md-sys-motion-spring-default-spatial-duration);
21
+ --md-comp-expanding-card-content-delay: var(--md-sys-motion-duration-short4);
22
+ --md-comp-expanding-card-content-easing: var(--md-sys-motion-spring-default-spatial);
23
+ --md-comp-expanding-card-fade-duration: var(--md-sys-motion-spring-fast-effects-duration);
24
+ --md-comp-expanding-card-fade-easing: var(--md-sys-motion-spring-fast-effects);
14
25
  --md-comp-expanding-card-content-padding: 16px;
15
26
  --md-comp-expanding-card-expanded-media-height: min(56dvh, 560px);
16
27
  }
@@ -114,16 +125,16 @@ dialog.expanding-card-dialog > .expanding-card-close {
114
125
  border-radius: 50%;
115
126
  box-shadow: none;
116
127
  opacity: 0;
117
- transform: scale(.8);
128
+ transform: scale(0.8);
118
129
  transition:
119
- opacity 150ms ease-out,
120
- transform 300ms var(--md-comp-expanding-card-motion-easing);
130
+ opacity var(--md-comp-expanding-card-fade-duration) var(--md-comp-expanding-card-fade-easing),
131
+ transform var(--md-comp-expanding-card-content-duration) var(--md-comp-expanding-card-content-easing);
121
132
  }
122
133
 
123
134
  dialog.expanding-card-dialog.expanded > .expanding-card-close {
124
135
  opacity: 1;
125
136
  transform: scale(1);
126
- transition-delay: 150ms;
137
+ transition-delay: var(--md-sys-motion-duration-short3);
127
138
  }
128
139
 
129
140
  dialog.expanding-card-dialog > .expanding-card-content {
@@ -136,14 +147,14 @@ dialog.expanding-card-dialog > .expanding-card-content {
136
147
  opacity: 0;
137
148
  transform: translateY(16px);
138
149
  transition:
139
- opacity 150ms ease-out,
140
- transform 300ms var(--md-comp-expanding-card-motion-easing);
150
+ opacity var(--md-comp-expanding-card-fade-duration) var(--md-comp-expanding-card-fade-easing),
151
+ transform var(--md-comp-expanding-card-content-duration) var(--md-comp-expanding-card-content-easing);
141
152
  }
142
153
 
143
154
  dialog.expanding-card-dialog.expanded > .expanding-card-content {
144
155
  opacity: 1;
145
156
  transform: translateY(0);
146
- transition-delay: 180ms;
157
+ transition-delay: var(--md-comp-expanding-card-content-delay);
147
158
  }
148
159
 
149
160
  .expanding-card-detail-header {
@@ -37,9 +37,15 @@ $_fab-menu-roles: ("primary", "secondary", "tertiary");
37
37
  );
38
38
  --md-comp-fab-menu-offset: 16px;
39
39
  --md-comp-fab-menu-z: 997;
40
- --md-comp-fab-menu-duration: 200ms;
40
+ // Items move on the fast spatial spring and fade on the fast effects
41
+ // spring, so motion="expressive" gives them a small bounce while the fade
42
+ // never overshoots. The spatial duration is the longer of the two, so it
43
+ // also times the list's visibility on close.
44
+ --md-comp-fab-menu-duration: var(--md-sys-motion-spring-fast-spatial-duration);
41
45
  --md-comp-fab-menu-stagger: 40ms;
42
- --md-comp-fab-menu-easing: cubic-bezier(0.65, 0, 0.35, 1);
46
+ --md-comp-fab-menu-easing: var(--md-sys-motion-spring-fast-spatial);
47
+ --md-comp-fab-menu-effects-duration: var(--md-sys-motion-spring-fast-effects-duration);
48
+ --md-comp-fab-menu-effects-easing: var(--md-sys-motion-spring-fast-effects);
43
49
 
44
50
  position: fixed;
45
51
  inset-inline-end: var(--md-comp-fab-menu-offset);
@@ -103,7 +109,7 @@ $_fab-menu-roles: ("primary", "secondary", "tertiary");
103
109
  padding-inline: var(--md-comp-fab-menu-menu-item-leading-space)
104
110
  var(--md-comp-fab-menu-menu-item-trailing-space);
105
111
  border: none;
106
- border-radius: 9999px;
112
+ border-radius: var(--md-sys-shape-corner-full);
107
113
  color: var(--md-comp-fab-menu-menu-item-label-text-color);
108
114
  background-color: var(--md-comp-fab-menu-menu-item-container-color);
109
115
  white-space: normal;
@@ -113,12 +119,12 @@ $_fab-menu-roles: ("primary", "secondary", "tertiary");
113
119
  cursor: pointer;
114
120
  appearance: none;
115
121
  opacity: 0;
116
- transform: scale(.8) translateY(1rem);
122
+ transform: scale(0.8) translateY(1rem);
117
123
  transition:
118
- opacity var(--md-comp-fab-menu-duration) var(--md-comp-fab-menu-easing),
124
+ opacity var(--md-comp-fab-menu-effects-duration) var(--md-comp-fab-menu-effects-easing),
119
125
  transform var(--md-comp-fab-menu-duration) var(--md-comp-fab-menu-easing),
120
- background-color .2s ease-out,
121
- box-shadow .2s ease-out;
126
+ background-color var(--md-sys-motion-duration-short4) ease-out,
127
+ box-shadow var(--md-sys-motion-duration-short4) ease-out;
122
128
  @include typescale("title-medium");
123
129
  @include focus-visible;
124
130
 
@@ -130,24 +136,31 @@ $_fab-menu-roles: ("primary", "secondary", "tertiary");
130
136
  color: inherit;
131
137
  }
132
138
 
133
- // Enabled is elevation 0; only the states lift.
134
- &:hover {
139
+ // The shared disabled rule in _buttons.scss is (0,1,0) and loses to this
140
+ // block, so a disabled item paints itself. aria-disabled is included:
141
+ // with the menu's own state arms skipped, the generic button focus tint
142
+ // would otherwise show through on a focused aria-disabled item.
143
+ &#{$expressive-disabled} {
144
+ @include btn-disabled;
145
+ }
146
+
147
+ // aria-disabled keeps pointer events, so a tooltip or title explaining
148
+ // why the item is unavailable still shows on hover. Activation is
149
+ // already ignored by the FAB script.
150
+ &[aria-disabled="true"] {
151
+ pointer-events: auto;
152
+ }
153
+
154
+ // Enabled is elevation 0; only the states lift, and only when enabled.
155
+ &:hover:not(:where(#{$expressive-disabled})) {
135
156
  @include z-depth("4");
136
- background-color: color-mix(
137
- in oklab,
138
- var(--md-comp-fab-menu-menu-item-label-text-color) state-opacity("hover"),
139
- var(--md-comp-fab-menu-menu-item-container-color)
140
- );
157
+ background-color: state-layer(var(--md-comp-fab-menu-menu-item-label-text-color), "hover", var(--md-comp-fab-menu-menu-item-container-color));
141
158
  }
142
159
 
143
- &:active,
144
- &:focus {
160
+ &:active:not(:where(#{$expressive-disabled})),
161
+ &:focus:not(:where(#{$expressive-disabled})) {
145
162
  @include z-depth("3");
146
- background-color: color-mix(
147
- in oklab,
148
- var(--md-comp-fab-menu-menu-item-label-text-color) state-opacity("focus"),
149
- var(--md-comp-fab-menu-menu-item-container-color)
150
- );
163
+ background-color: state-layer(var(--md-comp-fab-menu-menu-item-label-text-color), "focus", var(--md-comp-fab-menu-menu-item-container-color));
151
164
  }
152
165
  }
153
166
  }
@@ -174,7 +187,7 @@ $_fab-menu-roles: ("primary", "secondary", "tertiary");
174
187
  --md-comp-fab-container-width: var(
175
188
  --md-comp-fab-menu-close-button-container-width
176
189
  );
177
- --md-comp-fab-container-shape: 9999px;
190
+ --md-comp-fab-container-shape: var(--md-sys-shape-corner-full);
178
191
  --md-comp-fab-icon-size: var(--md-comp-fab-menu-close-button-icon-size);
179
192
 
180
193
  color: var(--md-comp-fab-menu-close-button-icon-color);
@@ -189,20 +202,12 @@ $_fab-menu-roles: ("primary", "secondary", "tertiary");
189
202
  }
190
203
 
191
204
  &:hover {
192
- background-color: color-mix(
193
- in oklab,
194
- var(--md-comp-fab-menu-close-button-icon-color) state-opacity("hover"),
195
- var(--md-comp-fab-menu-close-button-container-color)
196
- );
205
+ background-color: state-layer(var(--md-comp-fab-menu-close-button-icon-color), "hover", var(--md-comp-fab-menu-close-button-container-color));
197
206
  }
198
207
 
199
208
  &:active,
200
209
  &:focus {
201
- background-color: color-mix(
202
- in oklab,
203
- var(--md-comp-fab-menu-close-button-icon-color) state-opacity("focus"),
204
- var(--md-comp-fab-menu-close-button-container-color)
205
- );
210
+ background-color: state-layer(var(--md-comp-fab-menu-close-button-icon-color), "focus", var(--md-comp-fab-menu-close-button-container-color));
206
211
  }
207
212
  }
208
213
 
@@ -229,6 +234,13 @@ $_fab-menu-roles: ("primary", "secondary", "tertiary");
229
234
  @media (prefers-reduced-motion: reduce) {
230
235
  .fab-menu {
231
236
  --md-comp-fab-menu-duration: 0s;
237
+ --md-comp-fab-menu-effects-duration: 0s;
232
238
  --md-comp-fab-menu-stagger: 0s;
233
239
  }
234
240
  }
241
+
242
+ // A floating menu would print over the content. Important so a size or state rule that sets
243
+ // `display` cannot bring it back; see base/_print.scss for the page itself.
244
+ @media print {
245
+ .fab-menu { display: none !important; }
246
+ }