@expressivecss/expressive 0.15.0 → 0.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (609) hide show
  1. package/CHANGELOG.md +1807 -1
  2. package/README.md +9 -8
  3. package/dist/css/expressive.css +19176 -11958
  4. package/dist/css/expressive.css.map +1 -1
  5. package/dist/css/expressive.min.css +1 -1
  6. package/dist/css/expressive.min.css.map +1 -1
  7. package/dist/fonts/LICENSE-noto-sans-arabic +93 -0
  8. package/dist/fonts/LICENSE-noto-sans-hebrew +93 -0
  9. package/dist/fonts/LICENSE-noto-sans-thai +93 -0
  10. package/dist/fonts/material-symbols-outlined.woff2 +0 -0
  11. package/dist/fonts/material-symbols-rounded.woff2 +0 -0
  12. package/dist/fonts/material-symbols-sharp.woff2 +0 -0
  13. package/dist/fonts/noto-sans-arabic-arabic-400.woff2 +0 -0
  14. package/dist/fonts/noto-sans-arabic-arabic-500.woff2 +0 -0
  15. package/dist/fonts/noto-sans-arabic-arabic-700.woff2 +0 -0
  16. package/dist/fonts/noto-sans-cyrillic-400.woff2 +0 -0
  17. package/dist/fonts/noto-sans-cyrillic-500.woff2 +0 -0
  18. package/dist/fonts/noto-sans-cyrillic-700.woff2 +0 -0
  19. package/dist/fonts/noto-sans-cyrillic-ext-400.woff2 +0 -0
  20. package/dist/fonts/noto-sans-cyrillic-ext-500.woff2 +0 -0
  21. package/dist/fonts/noto-sans-cyrillic-ext-700.woff2 +0 -0
  22. package/dist/fonts/noto-sans-devanagari-400.woff2 +0 -0
  23. package/dist/fonts/noto-sans-devanagari-500.woff2 +0 -0
  24. package/dist/fonts/noto-sans-devanagari-700.woff2 +0 -0
  25. package/dist/fonts/noto-sans-greek-400.woff2 +0 -0
  26. package/dist/fonts/noto-sans-greek-500.woff2 +0 -0
  27. package/dist/fonts/noto-sans-greek-700.woff2 +0 -0
  28. package/dist/fonts/noto-sans-greek-ext-400.woff2 +0 -0
  29. package/dist/fonts/noto-sans-greek-ext-500.woff2 +0 -0
  30. package/dist/fonts/noto-sans-greek-ext-700.woff2 +0 -0
  31. package/dist/fonts/noto-sans-hebrew-hebrew-400.woff2 +0 -0
  32. package/dist/fonts/noto-sans-hebrew-hebrew-500.woff2 +0 -0
  33. package/dist/fonts/noto-sans-hebrew-hebrew-700.woff2 +0 -0
  34. package/dist/fonts/noto-sans-latin-700.woff2 +0 -0
  35. package/dist/fonts/noto-sans-latin-ext-400.woff2 +0 -0
  36. package/dist/fonts/noto-sans-latin-ext-500.woff2 +0 -0
  37. package/dist/fonts/noto-sans-latin-ext-700.woff2 +0 -0
  38. package/dist/fonts/noto-sans-thai-thai-400.woff2 +0 -0
  39. package/dist/fonts/noto-sans-thai-thai-500.woff2 +0 -0
  40. package/dist/fonts/noto-sans-thai-thai-700.woff2 +0 -0
  41. package/dist/fonts/noto-sans-vietnamese-400.woff2 +0 -0
  42. package/dist/fonts/noto-sans-vietnamese-500.woff2 +0 -0
  43. package/dist/fonts/noto-sans-vietnamese-700.woff2 +0 -0
  44. package/dist/fonts/roboto-cyrillic-400.woff2 +0 -0
  45. package/dist/fonts/roboto-cyrillic-500.woff2 +0 -0
  46. package/dist/fonts/roboto-cyrillic-700.woff2 +0 -0
  47. package/dist/fonts/roboto-cyrillic-ext-400.woff2 +0 -0
  48. package/dist/fonts/roboto-cyrillic-ext-500.woff2 +0 -0
  49. package/dist/fonts/roboto-cyrillic-ext-700.woff2 +0 -0
  50. package/dist/fonts/roboto-greek-400.woff2 +0 -0
  51. package/dist/fonts/roboto-greek-500.woff2 +0 -0
  52. package/dist/fonts/roboto-greek-700.woff2 +0 -0
  53. package/dist/fonts/roboto-greek-ext-400.woff2 +0 -0
  54. package/dist/fonts/roboto-greek-ext-500.woff2 +0 -0
  55. package/dist/fonts/roboto-greek-ext-700.woff2 +0 -0
  56. package/dist/fonts/roboto-latin-700.woff2 +0 -0
  57. package/dist/fonts/roboto-latin-ext-400.woff2 +0 -0
  58. package/dist/fonts/roboto-latin-ext-500.woff2 +0 -0
  59. package/dist/fonts/roboto-latin-ext-700.woff2 +0 -0
  60. package/dist/fonts/roboto-vietnamese-400.woff2 +0 -0
  61. package/dist/fonts/roboto-vietnamese-500.woff2 +0 -0
  62. package/dist/fonts/roboto-vietnamese-700.woff2 +0 -0
  63. package/dist/js/chunks/chunk-26VUH75M.mjs +102 -0
  64. package/dist/js/chunks/chunk-26VUH75M.mjs.map +7 -0
  65. package/dist/js/chunks/chunk-2LFCOGC3.mjs +233 -0
  66. package/dist/js/chunks/chunk-2LFCOGC3.mjs.map +7 -0
  67. package/dist/js/chunks/{chunk-DXGRXYYL.mjs → chunk-36GELQGX.mjs} +29 -46
  68. package/dist/js/chunks/chunk-36GELQGX.mjs.map +7 -0
  69. package/dist/js/chunks/{chunk-74MXKKLN.mjs → chunk-3FKWIRHW.mjs} +15 -29
  70. package/dist/js/chunks/chunk-3FKWIRHW.mjs.map +7 -0
  71. package/dist/js/chunks/chunk-3KF65KGL.mjs +209 -0
  72. package/dist/js/chunks/chunk-3KF65KGL.mjs.map +7 -0
  73. package/dist/js/chunks/{chunk-KVJAVDBC.mjs → chunk-3KLZRQZI.mjs} +88 -116
  74. package/dist/js/chunks/chunk-3KLZRQZI.mjs.map +7 -0
  75. package/dist/js/chunks/{chunk-CK2XCICY.mjs → chunk-3XORNED5.mjs} +3 -11
  76. package/dist/js/chunks/chunk-3XORNED5.mjs.map +7 -0
  77. package/dist/js/chunks/chunk-4WBGAQN3.mjs +113 -0
  78. package/dist/js/chunks/chunk-4WBGAQN3.mjs.map +7 -0
  79. package/dist/js/chunks/{chunk-FM5CZOUB.mjs → chunk-5F4URJHL.mjs} +19 -30
  80. package/dist/js/chunks/chunk-5F4URJHL.mjs.map +7 -0
  81. package/dist/js/chunks/chunk-67UNY7RH.mjs +299 -0
  82. package/dist/js/chunks/chunk-67UNY7RH.mjs.map +7 -0
  83. package/dist/js/chunks/chunk-7CXNATJS.mjs +97 -0
  84. package/dist/js/chunks/chunk-7CXNATJS.mjs.map +7 -0
  85. package/dist/js/chunks/{chunk-UETTGDLI.mjs → chunk-7X44MKEQ.mjs} +43 -48
  86. package/dist/js/chunks/chunk-7X44MKEQ.mjs.map +7 -0
  87. package/dist/js/chunks/chunk-7ZAMOMGY.mjs +440 -0
  88. package/dist/js/chunks/chunk-7ZAMOMGY.mjs.map +7 -0
  89. package/dist/js/chunks/chunk-AEG6LOAJ.mjs +54 -0
  90. package/dist/js/chunks/chunk-AEG6LOAJ.mjs.map +7 -0
  91. package/dist/js/chunks/chunk-AQNFCJJ5.mjs +135 -0
  92. package/dist/js/chunks/chunk-AQNFCJJ5.mjs.map +7 -0
  93. package/dist/js/chunks/chunk-B55LWKBM.mjs +75 -0
  94. package/dist/js/chunks/chunk-B55LWKBM.mjs.map +7 -0
  95. package/dist/js/chunks/chunk-BB5VXYXT.mjs +28 -0
  96. package/dist/js/chunks/chunk-BB5VXYXT.mjs.map +7 -0
  97. package/dist/js/chunks/chunk-BDATLH3H.mjs +108 -0
  98. package/dist/js/chunks/chunk-BDATLH3H.mjs.map +7 -0
  99. package/dist/js/chunks/chunk-CWMQOT4O.mjs +232 -0
  100. package/dist/js/chunks/chunk-CWMQOT4O.mjs.map +7 -0
  101. package/dist/js/chunks/chunk-CY2CTOVM.mjs +81 -0
  102. package/dist/js/chunks/chunk-CY2CTOVM.mjs.map +7 -0
  103. package/dist/js/chunks/{chunk-NUHMOAOY.mjs → chunk-DWA5UYLJ.mjs} +363 -218
  104. package/dist/js/chunks/chunk-DWA5UYLJ.mjs.map +7 -0
  105. package/dist/js/chunks/chunk-EB2V4OKL.mjs +79 -0
  106. package/dist/js/chunks/chunk-EB2V4OKL.mjs.map +7 -0
  107. package/dist/js/chunks/chunk-EWO662ZC.mjs +188 -0
  108. package/dist/js/chunks/chunk-EWO662ZC.mjs.map +7 -0
  109. package/dist/js/chunks/{chunk-ZX6M7SWO.mjs → chunk-F7LAKFMX.mjs} +320 -141
  110. package/dist/js/chunks/chunk-F7LAKFMX.mjs.map +7 -0
  111. package/dist/js/chunks/{chunk-L27Q6ZMI.mjs → chunk-FNIIH2LU.mjs} +20 -33
  112. package/dist/js/chunks/chunk-FNIIH2LU.mjs.map +7 -0
  113. package/dist/js/chunks/chunk-GE3YMFS6.mjs +15 -0
  114. package/dist/js/chunks/chunk-GE3YMFS6.mjs.map +7 -0
  115. package/dist/js/chunks/chunk-GFWYMWYN.mjs +125 -0
  116. package/dist/js/chunks/chunk-GFWYMWYN.mjs.map +7 -0
  117. package/dist/js/chunks/chunk-GNRSYMVH.mjs +1 -0
  118. package/dist/js/chunks/chunk-H5ISU45X.mjs +87 -0
  119. package/dist/js/chunks/chunk-H5ISU45X.mjs.map +7 -0
  120. package/dist/js/chunks/{chunk-GJL6GCIU.mjs → chunk-H6YIKFAQ.mjs} +311 -186
  121. package/dist/js/chunks/chunk-H6YIKFAQ.mjs.map +7 -0
  122. package/dist/js/chunks/{chunk-BGZLF6JZ.mjs → chunk-HEH7E3KO.mjs} +155 -35
  123. package/dist/js/chunks/chunk-HEH7E3KO.mjs.map +7 -0
  124. package/dist/js/chunks/chunk-HQRLBTNM.mjs +152 -0
  125. package/dist/js/chunks/chunk-HQRLBTNM.mjs.map +7 -0
  126. package/dist/js/chunks/chunk-I2F7MLUU.mjs +137 -0
  127. package/dist/js/chunks/chunk-I2F7MLUU.mjs.map +7 -0
  128. package/dist/js/chunks/chunk-IQOTGGHX.mjs +797 -0
  129. package/dist/js/chunks/chunk-IQOTGGHX.mjs.map +7 -0
  130. package/dist/js/chunks/chunk-JH3YWKA6.mjs +225 -0
  131. package/dist/js/chunks/chunk-JH3YWKA6.mjs.map +7 -0
  132. package/dist/js/chunks/chunk-JOLJAYIJ.mjs +7 -0
  133. package/dist/js/chunks/chunk-JOLJAYIJ.mjs.map +7 -0
  134. package/dist/js/chunks/{chunk-VGNYF6FB.mjs → chunk-KOTGMCMI.mjs} +116 -24
  135. package/dist/js/chunks/chunk-KOTGMCMI.mjs.map +7 -0
  136. package/dist/js/chunks/{chunk-LQWUDNHZ.mjs → chunk-LC4O5LFS.mjs} +21 -45
  137. package/dist/js/chunks/chunk-LC4O5LFS.mjs.map +7 -0
  138. package/dist/js/chunks/chunk-LEF33SCP.mjs +127 -0
  139. package/dist/js/chunks/chunk-LEF33SCP.mjs.map +7 -0
  140. package/dist/js/chunks/{chunk-PDG64UHF.mjs → chunk-LFORZRPH.mjs} +21 -23
  141. package/dist/js/chunks/chunk-LFORZRPH.mjs.map +7 -0
  142. package/dist/js/chunks/chunk-LWLNV5EC.mjs +451 -0
  143. package/dist/js/chunks/chunk-LWLNV5EC.mjs.map +7 -0
  144. package/dist/js/chunks/chunk-LXRHUQAX.mjs +491 -0
  145. package/dist/js/chunks/chunk-LXRHUQAX.mjs.map +7 -0
  146. package/dist/js/chunks/{chunk-SFI2U4YW.mjs → chunk-MA2SZZFB.mjs} +82 -111
  147. package/dist/js/chunks/chunk-MA2SZZFB.mjs.map +7 -0
  148. package/dist/js/chunks/chunk-MDBZAMIV.mjs +121 -0
  149. package/dist/js/chunks/chunk-MDBZAMIV.mjs.map +7 -0
  150. package/dist/js/chunks/chunk-NODZ5VAD.mjs +75 -0
  151. package/dist/js/chunks/chunk-NODZ5VAD.mjs.map +7 -0
  152. package/dist/js/chunks/chunk-O2WJB6TH.mjs +365 -0
  153. package/dist/js/chunks/chunk-O2WJB6TH.mjs.map +7 -0
  154. package/dist/js/chunks/chunk-PCABY5BN.mjs +35 -0
  155. package/dist/js/chunks/chunk-PCABY5BN.mjs.map +7 -0
  156. package/dist/js/chunks/chunk-PWKYVMND.mjs +120 -0
  157. package/dist/js/chunks/chunk-PWKYVMND.mjs.map +7 -0
  158. package/dist/js/chunks/{chunk-SMY7GJSS.mjs → chunk-QHZZT7YO.mjs} +66 -38
  159. package/dist/js/chunks/chunk-QHZZT7YO.mjs.map +7 -0
  160. package/dist/js/chunks/chunk-QND56EW2.mjs +439 -0
  161. package/dist/js/chunks/chunk-QND56EW2.mjs.map +7 -0
  162. package/dist/js/chunks/chunk-QNODAANY.mjs +376 -0
  163. package/dist/js/chunks/chunk-QNODAANY.mjs.map +7 -0
  164. package/dist/js/chunks/{chunk-KHXZ2A4K.mjs → chunk-QRO5FV3I.mjs} +156 -73
  165. package/dist/js/chunks/chunk-QRO5FV3I.mjs.map +7 -0
  166. package/dist/js/chunks/chunk-R7A7JRC5.mjs +440 -0
  167. package/dist/js/chunks/chunk-R7A7JRC5.mjs.map +7 -0
  168. package/dist/js/chunks/chunk-RKG2CBFE.mjs +74 -0
  169. package/dist/js/chunks/chunk-RKG2CBFE.mjs.map +7 -0
  170. package/dist/js/chunks/{chunk-XAEAEHIX.mjs → chunk-RSNS5OYS.mjs} +38 -25
  171. package/dist/js/chunks/chunk-RSNS5OYS.mjs.map +7 -0
  172. package/dist/js/chunks/{chunk-X4ISMKE2.mjs → chunk-RUDYMEJ3.mjs} +7 -6
  173. package/dist/js/chunks/chunk-RUDYMEJ3.mjs.map +7 -0
  174. package/dist/js/chunks/chunk-STJR62SU.mjs +161 -0
  175. package/dist/js/chunks/chunk-STJR62SU.mjs.map +7 -0
  176. package/dist/js/chunks/chunk-SUSD4UTN.mjs +220 -0
  177. package/dist/js/chunks/chunk-SUSD4UTN.mjs.map +7 -0
  178. package/dist/js/chunks/{chunk-5CEAOLUA.mjs → chunk-SYBOA5HC.mjs} +26 -48
  179. package/dist/js/chunks/chunk-SYBOA5HC.mjs.map +7 -0
  180. package/dist/js/chunks/chunk-T4MOBP3J.mjs +108 -0
  181. package/dist/js/chunks/chunk-T4MOBP3J.mjs.map +7 -0
  182. package/dist/js/chunks/chunk-TM7HPGTV.mjs +342 -0
  183. package/dist/js/chunks/chunk-TM7HPGTV.mjs.map +7 -0
  184. package/dist/js/chunks/{chunk-C6CHEWYP.mjs → chunk-TMQDZSDC.mjs} +71 -35
  185. package/dist/js/chunks/chunk-TMQDZSDC.mjs.map +7 -0
  186. package/dist/js/chunks/chunk-TVSX5YA2.mjs +48 -0
  187. package/dist/js/chunks/chunk-TVSX5YA2.mjs.map +7 -0
  188. package/dist/js/chunks/chunk-UHO5CV6K.mjs +80 -0
  189. package/dist/js/chunks/chunk-UHO5CV6K.mjs.map +7 -0
  190. package/dist/js/chunks/chunk-UKCNELUN.mjs +223 -0
  191. package/dist/js/chunks/chunk-UKCNELUN.mjs.map +7 -0
  192. package/dist/js/chunks/chunk-UKQK5GWR.mjs +167 -0
  193. package/dist/js/chunks/chunk-UKQK5GWR.mjs.map +7 -0
  194. package/dist/js/chunks/{chunk-TSZYSW7F.mjs → chunk-UTSLYQ65.mjs} +21 -48
  195. package/dist/js/chunks/chunk-UTSLYQ65.mjs.map +7 -0
  196. package/dist/js/chunks/chunk-VS5OJBOD.mjs +108 -0
  197. package/dist/js/chunks/chunk-VS5OJBOD.mjs.map +7 -0
  198. package/dist/js/chunks/chunk-VZMROW5A.mjs +759 -0
  199. package/dist/js/chunks/chunk-VZMROW5A.mjs.map +7 -0
  200. package/dist/js/chunks/chunk-W6FAL3TI.mjs +38 -0
  201. package/dist/js/chunks/chunk-W6FAL3TI.mjs.map +7 -0
  202. package/dist/js/chunks/chunk-XB6Y7P5W.mjs +69 -0
  203. package/dist/js/chunks/chunk-XB6Y7P5W.mjs.map +7 -0
  204. package/dist/js/chunks/chunk-XDAMOMVD.mjs +226 -0
  205. package/dist/js/chunks/chunk-XDAMOMVD.mjs.map +7 -0
  206. package/dist/js/chunks/{chunk-WDK4T63U.mjs → chunk-XJPMW5SP.mjs} +247 -172
  207. package/dist/js/chunks/chunk-XJPMW5SP.mjs.map +7 -0
  208. package/dist/js/chunks/{chunk-KUFHW3DS.mjs → chunk-YKANQILZ.mjs} +16 -21
  209. package/dist/js/chunks/chunk-YKANQILZ.mjs.map +7 -0
  210. package/dist/js/chunks/chunk-YLZOJLDI.mjs +175 -0
  211. package/dist/js/chunks/chunk-YLZOJLDI.mjs.map +7 -0
  212. package/dist/js/chunks/chunk-ZK7YY322.mjs +514 -0
  213. package/dist/js/chunks/chunk-ZK7YY322.mjs.map +7 -0
  214. package/dist/js/expressive.cjs +10266 -3628
  215. package/dist/js/expressive.cjs.map +4 -4
  216. package/dist/js/expressive.js +10266 -3628
  217. package/dist/js/expressive.js.map +4 -4
  218. package/dist/js/expressive.min.js +23 -22
  219. package/dist/js/expressive.min.js.map +4 -4
  220. package/dist/js/expressive.mjs +181 -69
  221. package/dist/js/expressive.mjs.map +2 -2
  222. package/dist/js/internal/behaviors/bottomSheets.mjs +4 -3
  223. package/dist/js/internal/behaviors/copy.mjs +9 -0
  224. package/dist/js/internal/behaviors/copy.mjs.map +7 -0
  225. package/dist/js/internal/behaviors/dataTables.mjs +8 -0
  226. package/dist/js/internal/behaviors/dataTables.mjs.map +7 -0
  227. package/dist/js/internal/behaviors/dialogs.mjs +2 -2
  228. package/dist/js/internal/behaviors/forms.mjs +2 -2
  229. package/dist/js/internal/behaviors/imageCompare.mjs +8 -0
  230. package/dist/js/internal/behaviors/imageCompare.mjs.map +7 -0
  231. package/dist/js/internal/behaviors/lists.mjs +8 -0
  232. package/dist/js/internal/behaviors/lists.mjs.map +7 -0
  233. package/dist/js/internal/behaviors/paneResize.mjs +8 -0
  234. package/dist/js/internal/behaviors/paneResize.mjs.map +7 -0
  235. package/dist/js/internal/behaviors/sheetDrag.mjs +7 -2
  236. package/dist/js/internal/behaviors/sideSheets.mjs +4 -3
  237. package/dist/js/internal/behaviors/sortable.mjs +8 -0
  238. package/dist/js/internal/behaviors/sortable.mjs.map +7 -0
  239. package/dist/js/internal/behaviors/theme.mjs +8 -0
  240. package/dist/js/internal/behaviors/theme.mjs.map +7 -0
  241. package/dist/js/internal/behaviors/tour.mjs +8 -0
  242. package/dist/js/internal/behaviors/tour.mjs.map +7 -0
  243. package/dist/js/internal/behaviors/transferList.mjs +8 -0
  244. package/dist/js/internal/behaviors/transferList.mjs.map +7 -0
  245. package/dist/js/internal/components/appBar.mjs +3 -2
  246. package/dist/js/internal/components/autocomplete.mjs +5 -4
  247. package/dist/js/internal/components/backToTop.mjs +9 -0
  248. package/dist/js/internal/components/backToTop.mjs.map +7 -0
  249. package/dist/js/internal/components/barChart.mjs +5 -4
  250. package/dist/js/internal/components/buttonGroup.mjs +3 -2
  251. package/dist/js/internal/components/buttons.mjs +3 -3
  252. package/dist/js/internal/components/cards.mjs +3 -3
  253. package/dist/js/internal/components/carousel.mjs +3 -3
  254. package/dist/js/internal/components/cascader.mjs +10 -0
  255. package/dist/js/internal/components/cascader.mjs.map +7 -0
  256. package/dist/js/internal/components/characterCounter.mjs +3 -2
  257. package/dist/js/internal/components/chips.mjs +7 -5
  258. package/dist/js/internal/components/colorPicker.mjs +9 -0
  259. package/dist/js/internal/components/colorPicker.mjs.map +7 -0
  260. package/dist/js/internal/components/columnChart.mjs +4 -3
  261. package/dist/js/internal/components/commandPalette.mjs +3 -3
  262. package/dist/js/internal/components/confetti.mjs +3 -2
  263. package/dist/js/internal/components/currencyInput.mjs +9 -0
  264. package/dist/js/internal/components/currencyInput.mjs.map +7 -0
  265. package/dist/js/internal/components/datepicker.mjs +12 -8
  266. package/dist/js/internal/components/expandingCard.mjs +3 -3
  267. package/dist/js/internal/components/funnelChart.mjs +10 -0
  268. package/dist/js/internal/components/funnelChart.mjs.map +7 -0
  269. package/dist/js/internal/components/heatmapChart.mjs +4 -3
  270. package/dist/js/internal/components/hoverCard.mjs +9 -0
  271. package/dist/js/internal/components/hoverCard.mjs.map +7 -0
  272. package/dist/js/internal/components/index.mjs +131 -65
  273. package/dist/js/internal/components/inputMask.mjs +9 -0
  274. package/dist/js/internal/components/inputMask.mjs.map +7 -0
  275. package/dist/js/internal/components/keypad.mjs +3 -3
  276. package/dist/js/internal/components/lightbox.mjs +3 -3
  277. package/dist/js/internal/components/lineChart.mjs +41 -4
  278. package/dist/js/internal/components/loadingOverlay.mjs +9 -0
  279. package/dist/js/internal/components/loadingOverlay.mjs.map +7 -0
  280. package/dist/js/internal/components/mapView.mjs +3 -3
  281. package/dist/js/internal/components/menu.mjs +3 -3
  282. package/dist/js/internal/components/menubar.mjs +10 -0
  283. package/dist/js/internal/components/menubar.mjs.map +7 -0
  284. package/dist/js/internal/components/messageScroller.mjs +3 -3
  285. package/dist/js/internal/components/mixedChart.mjs +5 -4
  286. package/dist/js/internal/components/navigationRail.mjs +3 -2
  287. package/dist/js/internal/components/particles.mjs +3 -2
  288. package/dist/js/internal/components/pieChart.mjs +4 -3
  289. package/dist/js/internal/components/pullToRefresh.mjs +9 -0
  290. package/dist/js/internal/components/pullToRefresh.mjs.map +7 -0
  291. package/dist/js/internal/components/questionnaire.mjs +3 -3
  292. package/dist/js/internal/components/radarChart.mjs +4 -3
  293. package/dist/js/internal/components/radialChart.mjs +4 -3
  294. package/dist/js/internal/components/registry.mjs +60 -41
  295. package/dist/js/internal/components/richTextEditor.mjs +3 -3
  296. package/dist/js/internal/components/sankeyChart.mjs +10 -0
  297. package/dist/js/internal/components/sankeyChart.mjs.map +7 -0
  298. package/dist/js/internal/components/scatterChart.mjs +10 -0
  299. package/dist/js/internal/components/scatterChart.mjs.map +7 -0
  300. package/dist/js/internal/components/scrollspy.mjs +3 -2
  301. package/dist/js/internal/components/select.mjs +5 -4
  302. package/dist/js/internal/components/showMore.mjs +9 -0
  303. package/dist/js/internal/components/showMore.mjs.map +7 -0
  304. package/dist/js/internal/components/slider.mjs +3 -3
  305. package/dist/js/internal/components/snackbar.mjs +2 -2
  306. package/dist/js/internal/components/swipeActions.mjs +9 -0
  307. package/dist/js/internal/components/swipeActions.mjs.map +7 -0
  308. package/dist/js/internal/components/tabs.mjs +3 -4
  309. package/dist/js/internal/components/timepicker.mjs +5 -4
  310. package/dist/js/internal/components/tooltip.mjs +3 -3
  311. package/dist/js/internal/components/treeSelect.mjs +14 -0
  312. package/dist/js/internal/components/treeSelect.mjs.map +7 -0
  313. package/dist/js/internal/components/treemapChart.mjs +10 -0
  314. package/dist/js/internal/components/treemapChart.mjs.map +7 -0
  315. package/dist/js/internal/core/component.mjs +6 -3
  316. package/dist/js/internal/core/formControl.mjs +12 -0
  317. package/dist/js/internal/core/formControl.mjs.map +7 -0
  318. package/dist/js/internal/core/imageURL.mjs +7 -0
  319. package/dist/js/internal/core/imageURL.mjs.map +7 -0
  320. package/dist/js/internal/core/spring.mjs +11 -0
  321. package/dist/js/internal/core/spring.mjs.map +7 -0
  322. package/dist/js/internal/core/utils.mjs +21 -3
  323. package/dist/js/internal/plugins/dockedDisplayPlugin.mjs +2 -2
  324. package/dist/js/internal/plugins/modalDisplayPlugin.mjs +13 -0
  325. package/dist/js/internal/plugins/modalDisplayPlugin.mjs.map +7 -0
  326. package/dist/js/modular.mjs +172 -69
  327. package/dist/types/behaviors/bottomSheets.d.ts +23 -5
  328. package/dist/types/behaviors/copy.d.ts +18 -0
  329. package/dist/types/behaviors/dataTables.d.ts +125 -0
  330. package/dist/types/behaviors/dialogs.d.ts +27 -1
  331. package/dist/types/behaviors/forms.d.ts +70 -4
  332. package/dist/types/behaviors/imageCompare.d.ts +13 -0
  333. package/dist/types/behaviors/lists.d.ts +12 -0
  334. package/dist/types/behaviors/paneResize.d.ts +29 -0
  335. package/dist/types/behaviors/sheetDrag.d.ts +18 -0
  336. package/dist/types/behaviors/sideSheets.d.ts +1 -1
  337. package/dist/types/behaviors/sortable.d.ts +28 -0
  338. package/dist/types/behaviors/theme.d.ts +22 -0
  339. package/dist/types/behaviors/tour.d.ts +36 -0
  340. package/dist/types/behaviors/transferList.d.ts +53 -0
  341. package/dist/types/components/appBar.d.ts +5 -6
  342. package/dist/types/components/autocomplete.d.ts +105 -20
  343. package/dist/types/components/backToTop.d.ts +36 -0
  344. package/dist/types/components/barChart.d.ts +3 -6
  345. package/dist/types/components/buttonGroup.d.ts +2 -4
  346. package/dist/types/components/buttons.d.ts +5 -5
  347. package/dist/types/components/cards.d.ts +3 -16
  348. package/dist/types/components/carousel.d.ts +16 -15
  349. package/dist/types/components/cascader.d.ts +130 -0
  350. package/dist/types/components/characterCounter.d.ts +2 -15
  351. package/dist/types/components/chips.d.ts +80 -19
  352. package/dist/types/components/colorPicker.d.ts +56 -0
  353. package/dist/types/components/columnChart.d.ts +23 -10
  354. package/dist/types/components/commandPalette.d.ts +11 -16
  355. package/dist/types/components/confetti.d.ts +2 -4
  356. package/dist/types/components/currencyInput.d.ts +60 -0
  357. package/dist/types/components/datepicker.d.ts +107 -56
  358. package/dist/types/components/expandingCard.d.ts +4 -6
  359. package/dist/types/components/funnelChart.d.ts +35 -0
  360. package/dist/types/components/heatmapChart.d.ts +42 -8
  361. package/dist/types/components/hoverCard.d.ts +59 -0
  362. package/dist/types/components/index.d.ts +16 -1
  363. package/dist/types/components/inputMask.d.ts +28 -0
  364. package/dist/types/components/keypad.d.ts +38 -6
  365. package/dist/types/components/lightbox.d.ts +14 -20
  366. package/dist/types/components/lineChart.d.ts +212 -12
  367. package/dist/types/components/loadingOverlay.d.ts +42 -0
  368. package/dist/types/components/mapView.d.ts +138 -27
  369. package/dist/types/components/menu.d.ts +74 -22
  370. package/dist/types/components/menubar.d.ts +37 -0
  371. package/dist/types/components/messageScroller.d.ts +2 -14
  372. package/dist/types/components/mixedChart.d.ts +15 -6
  373. package/dist/types/components/navigationRail.d.ts +16 -5
  374. package/dist/types/components/particles.d.ts +22 -5
  375. package/dist/types/components/pieChart.d.ts +33 -9
  376. package/dist/types/components/pullToRefresh.d.ts +80 -0
  377. package/dist/types/components/questionnaire.d.ts +58 -16
  378. package/dist/types/components/radarChart.d.ts +10 -6
  379. package/dist/types/components/radialChart.d.ts +58 -7
  380. package/dist/types/components/registry.d.ts +73 -3
  381. package/dist/types/components/richTextEditor.d.ts +45 -22
  382. package/dist/types/components/sankeyChart.d.ts +72 -0
  383. package/dist/types/components/scatterChart.d.ts +102 -0
  384. package/dist/types/components/scrollspy.d.ts +3 -5
  385. package/dist/types/components/select.d.ts +44 -33
  386. package/dist/types/components/showMore.d.ts +53 -0
  387. package/dist/types/components/slider.d.ts +2 -15
  388. package/dist/types/components/snackbar.d.ts +68 -1
  389. package/dist/types/components/swipeActions.d.ts +81 -0
  390. package/dist/types/components/tabs.d.ts +92 -30
  391. package/dist/types/components/timepicker.d.ts +128 -27
  392. package/dist/types/components/tooltip.d.ts +57 -21
  393. package/dist/types/components/treeSelect.d.ts +106 -0
  394. package/dist/types/components/treemapChart.d.ts +56 -0
  395. package/dist/types/core/component.d.ts +49 -25
  396. package/dist/types/core/formControl.d.ts +21 -0
  397. package/dist/types/core/imageURL.d.ts +2 -0
  398. package/dist/types/core/spring.d.ts +20 -0
  399. package/dist/types/core/utils.d.ts +123 -72
  400. package/dist/types/modular.d.ts +33 -1
  401. package/dist/types/plugins/dockedDisplayPlugin.d.ts +10 -8
  402. package/dist/types/plugins/modalDisplayPlugin.d.ts +39 -0
  403. package/package.json +17 -13
  404. package/src/sass/README.md +27 -18
  405. package/src/sass/abstracts/_elevation.scss +13 -7
  406. package/src/sass/abstracts/_index.scss +1 -0
  407. package/src/sass/abstracts/_mixins.scss +864 -78
  408. package/src/sass/abstracts/_spring.scss +63 -0
  409. package/src/sass/abstracts/_variables.scss +64 -21
  410. package/src/sass/base/_fonts.scss +61 -48
  411. package/src/sass/base/_global.scss +104 -24
  412. package/src/sass/base/_index.scss +2 -0
  413. package/src/sass/base/_normalize.scss +59 -114
  414. package/src/sass/base/_print.scss +21 -0
  415. package/src/sass/base/_prose.scss +68 -0
  416. package/src/sass/base/_typography.scss +9 -5
  417. package/src/sass/components/_accordion.scss +10 -19
  418. package/src/sass/components/_alert.scss +102 -0
  419. package/src/sass/components/_aura.scss +9 -3
  420. package/src/sass/components/_avatar.scss +3 -3
  421. package/src/sass/components/_back-to-top.scss +38 -0
  422. package/src/sass/components/_badges.scss +6 -5
  423. package/src/sass/components/_bar-chart.scss +31 -90
  424. package/src/sass/components/_bottom-sheet.scss +51 -16
  425. package/src/sass/components/_breadcrumb.scss +8 -7
  426. package/src/sass/components/_button-groups.scss +30 -63
  427. package/src/sass/components/_buttons.scss +137 -94
  428. package/src/sass/components/_calendar.scss +244 -0
  429. package/src/sass/components/_cards.scss +36 -44
  430. package/src/sass/components/_carousel.scss +37 -113
  431. package/src/sass/components/_cascader.scss +131 -0
  432. package/src/sass/components/_chips.scss +36 -46
  433. package/src/sass/components/_column-chart.scss +15 -26
  434. package/src/sass/components/_command-palette.scss +4 -7
  435. package/src/sass/components/_confetti.scss +1 -4
  436. package/src/sass/components/_countdown.scss +1 -1
  437. package/src/sass/components/_data-table.scss +172 -25
  438. package/src/sass/components/_datepicker.scss +54 -40
  439. package/src/sass/components/_description-list.scss +85 -0
  440. package/src/sass/components/_dialog.scss +48 -55
  441. package/src/sass/components/_docked-display.scss +1 -3
  442. package/src/sass/components/_drag-handle.scss +16 -20
  443. package/src/sass/components/_expanding-card.scss +21 -14
  444. package/src/sass/components/_fab-menu.scss +43 -39
  445. package/src/sass/components/_funnel-chart.scss +63 -0
  446. package/src/sass/components/_heatmap-chart.scss +114 -29
  447. package/src/sass/components/_icon-buttons.scss +8 -11
  448. package/src/sass/components/_icons-material-design.scss +2 -2
  449. package/src/sass/components/_image-compare.scss +108 -0
  450. package/src/sass/components/_index.scss +20 -0
  451. package/src/sass/components/_keypad.scss +39 -19
  452. package/src/sass/components/_kpi.scss +6 -11
  453. package/src/sass/components/_lightbox.scss +24 -13
  454. package/src/sass/components/_line-chart.scss +9 -63
  455. package/src/sass/components/_list.scss +59 -14
  456. package/src/sass/components/_loading-indicator.scss +1 -0
  457. package/src/sass/components/_loading-overlay.scss +105 -0
  458. package/src/sass/components/_map.scss +37 -11
  459. package/src/sass/components/_marquee.scss +4 -3
  460. package/src/sass/components/_mega-menu.scss +128 -0
  461. package/src/sass/components/_menu.scss +146 -127
  462. package/src/sass/components/_menubar.scss +47 -0
  463. package/src/sass/components/_message-scroller.scss +2 -2
  464. package/src/sass/components/_message.scss +3 -3
  465. package/src/sass/components/_mixed-chart.scss +27 -35
  466. package/src/sass/components/_modal-display.scss +21 -0
  467. package/src/sass/components/_navbar.scss +45 -36
  468. package/src/sass/components/_navigation-bar.scss +12 -77
  469. package/src/sass/components/_navigation-rail.scss +161 -92
  470. package/src/sass/components/_org-chart.scss +192 -0
  471. package/src/sass/components/_page-footer.scss +2 -4
  472. package/src/sass/components/_pagination.scss +9 -27
  473. package/src/sass/components/_panes.scss +35 -42
  474. package/src/sass/components/_particles.scss +1 -4
  475. package/src/sass/components/_pie-chart.scss +86 -68
  476. package/src/sass/components/_popover.scss +18 -5
  477. package/src/sass/components/_progress.scss +183 -44
  478. package/src/sass/components/_pull-to-refresh.scss +90 -0
  479. package/src/sass/components/_questionnaire.scss +74 -3
  480. package/src/sass/components/_radar-chart.scss +40 -42
  481. package/src/sass/components/_radial-chart.scss +108 -46
  482. package/src/sass/components/_rich-text-editor.scss +2 -2
  483. package/src/sass/components/_sankey-chart.scss +91 -0
  484. package/src/sass/components/_scatter-chart.scss +144 -0
  485. package/src/sass/components/_scrim.scss +0 -2
  486. package/src/sass/components/_scrollspy.scss +0 -2
  487. package/src/sass/components/_search.scss +27 -26
  488. package/src/sass/components/_show-more.scss +8 -0
  489. package/src/sass/components/_side-sheet.scss +32 -51
  490. package/src/sass/components/_skeleton.scss +26 -19
  491. package/src/sass/components/_snackbar.scss +25 -21
  492. package/src/sass/components/_split-button.scss +5 -5
  493. package/src/sass/components/_stat.scss +3 -8
  494. package/src/sass/components/_stepper.scss +1 -1
  495. package/src/sass/components/_swipe-actions.scss +71 -0
  496. package/src/sass/components/_table_of_contents.scss +1 -3
  497. package/src/sass/components/_tabs.scss +49 -46
  498. package/src/sass/components/_timeline.scss +12 -12
  499. package/src/sass/components/_timepicker.scss +111 -79
  500. package/src/sass/components/_toolbar.scss +36 -47
  501. package/src/sass/components/_tooltip.scss +25 -12
  502. package/src/sass/components/_tour.scss +89 -0
  503. package/src/sass/components/_transfer-list.scss +73 -0
  504. package/src/sass/components/_transitions.scss +4 -4
  505. package/src/sass/components/_tree.scss +7 -32
  506. package/src/sass/components/_treemap-chart.scss +98 -0
  507. package/src/sass/components/forms/_checkboxes.scss +107 -44
  508. package/src/sass/components/forms/_color-picker.scss +135 -0
  509. package/src/sass/components/forms/_color-swatches.scss +85 -0
  510. package/src/sass/components/forms/_drop-zone.scss +16 -13
  511. package/src/sass/components/forms/_fieldset.scss +4 -7
  512. package/src/sass/components/forms/_file-input.scss +12 -8
  513. package/src/sass/components/forms/_index.scss +3 -1
  514. package/src/sass/components/forms/_input-fields.scss +271 -90
  515. package/src/sass/components/forms/_radio-buttons.scss +34 -117
  516. package/src/sass/components/forms/_rating.scss +2 -32
  517. package/src/sass/components/forms/_select.scss +198 -20
  518. package/src/sass/components/forms/_slider.scss +92 -98
  519. package/src/sass/components/forms/_switches.scss +62 -180
  520. package/src/sass/custom.scss +10 -1
  521. package/src/sass/expressive.scss +3 -63
  522. package/src/sass/tokens/_contrast.scss +94 -0
  523. package/src/sass/tokens/_elevation.scss +16 -0
  524. package/src/sass/tokens/_index.scss +5 -0
  525. package/src/sass/tokens/_motion.scss +109 -0
  526. package/src/sass/tokens/_reference.scss +72 -141
  527. package/src/sass/tokens/_shape.scss +38 -0
  528. package/src/sass/tokens/_stacking.scss +27 -0
  529. package/src/sass/tokens/_state.scss +0 -2
  530. package/src/sass/tokens/_theme.scss +10 -1
  531. package/src/sass/tokens/_vibrant.scss +2 -5
  532. package/src/sass/utilities/_defer-render.scss +17 -0
  533. package/src/sass/utilities/_helpers.scss +184 -27
  534. package/src/sass/utilities/_index.scss +1 -0
  535. package/src/sass/utilities/_scroll-area.scss +0 -2
  536. package/src/sass/utilities/_spacing.scss +52 -34
  537. package/src/sass/utilities/_typescale.scss +8 -1
  538. package/src/sass/utilities/_visibility.scss +46 -77
  539. package/src/sass/utilities/_z-depth.scss +7 -4
  540. package/dist/js/chunks/chunk-33QVDDGR.mjs +0 -270
  541. package/dist/js/chunks/chunk-33QVDDGR.mjs.map +0 -7
  542. package/dist/js/chunks/chunk-45FER6RI.mjs +0 -59
  543. package/dist/js/chunks/chunk-45FER6RI.mjs.map +0 -7
  544. package/dist/js/chunks/chunk-5CEAOLUA.mjs.map +0 -7
  545. package/dist/js/chunks/chunk-6VATUZC6.mjs +0 -295
  546. package/dist/js/chunks/chunk-6VATUZC6.mjs.map +0 -7
  547. package/dist/js/chunks/chunk-74MXKKLN.mjs.map +0 -7
  548. package/dist/js/chunks/chunk-AIURVCG6.mjs +0 -55
  549. package/dist/js/chunks/chunk-AIURVCG6.mjs.map +0 -7
  550. package/dist/js/chunks/chunk-BGZLF6JZ.mjs.map +0 -7
  551. package/dist/js/chunks/chunk-C6CHEWYP.mjs.map +0 -7
  552. package/dist/js/chunks/chunk-CK2XCICY.mjs.map +0 -7
  553. package/dist/js/chunks/chunk-CXXM2L4F.mjs +0 -344
  554. package/dist/js/chunks/chunk-CXXM2L4F.mjs.map +0 -7
  555. package/dist/js/chunks/chunk-DXGRXYYL.mjs.map +0 -7
  556. package/dist/js/chunks/chunk-FM5CZOUB.mjs.map +0 -7
  557. package/dist/js/chunks/chunk-GJL6GCIU.mjs.map +0 -7
  558. package/dist/js/chunks/chunk-K3HZMFMD.mjs +0 -135
  559. package/dist/js/chunks/chunk-K3HZMFMD.mjs.map +0 -7
  560. package/dist/js/chunks/chunk-KHXZ2A4K.mjs.map +0 -7
  561. package/dist/js/chunks/chunk-KQACNQ22.mjs +0 -7
  562. package/dist/js/chunks/chunk-KQACNQ22.mjs.map +0 -7
  563. package/dist/js/chunks/chunk-KUFHW3DS.mjs.map +0 -7
  564. package/dist/js/chunks/chunk-KVJAVDBC.mjs.map +0 -7
  565. package/dist/js/chunks/chunk-L27Q6ZMI.mjs.map +0 -7
  566. package/dist/js/chunks/chunk-LQWUDNHZ.mjs.map +0 -7
  567. package/dist/js/chunks/chunk-M372EDXD.mjs +0 -322
  568. package/dist/js/chunks/chunk-M372EDXD.mjs.map +0 -7
  569. package/dist/js/chunks/chunk-M3MURWMB.mjs +0 -82
  570. package/dist/js/chunks/chunk-M3MURWMB.mjs.map +0 -7
  571. package/dist/js/chunks/chunk-NUHMOAOY.mjs.map +0 -7
  572. package/dist/js/chunks/chunk-OWG3LMUL.mjs +0 -169
  573. package/dist/js/chunks/chunk-OWG3LMUL.mjs.map +0 -7
  574. package/dist/js/chunks/chunk-PD6HYHAE.mjs +0 -48
  575. package/dist/js/chunks/chunk-PD6HYHAE.mjs.map +0 -7
  576. package/dist/js/chunks/chunk-PDG64UHF.mjs.map +0 -7
  577. package/dist/js/chunks/chunk-PO3AXVR3.mjs +0 -546
  578. package/dist/js/chunks/chunk-PO3AXVR3.mjs.map +0 -7
  579. package/dist/js/chunks/chunk-QYGK36OG.mjs +0 -181
  580. package/dist/js/chunks/chunk-QYGK36OG.mjs.map +0 -7
  581. package/dist/js/chunks/chunk-SFI2U4YW.mjs.map +0 -7
  582. package/dist/js/chunks/chunk-SMY7GJSS.mjs.map +0 -7
  583. package/dist/js/chunks/chunk-TCCA2HDG.mjs +0 -414
  584. package/dist/js/chunks/chunk-TCCA2HDG.mjs.map +0 -7
  585. package/dist/js/chunks/chunk-TSZYSW7F.mjs.map +0 -7
  586. package/dist/js/chunks/chunk-UAZSDUVP.mjs +0 -90
  587. package/dist/js/chunks/chunk-UAZSDUVP.mjs.map +0 -7
  588. package/dist/js/chunks/chunk-UBRZZWRA.mjs +0 -127
  589. package/dist/js/chunks/chunk-UBRZZWRA.mjs.map +0 -7
  590. package/dist/js/chunks/chunk-UCOE7ZDL.mjs +0 -287
  591. package/dist/js/chunks/chunk-UCOE7ZDL.mjs.map +0 -7
  592. package/dist/js/chunks/chunk-UETTGDLI.mjs.map +0 -7
  593. package/dist/js/chunks/chunk-UNCRDLP6.mjs +0 -136
  594. package/dist/js/chunks/chunk-UNCRDLP6.mjs.map +0 -7
  595. package/dist/js/chunks/chunk-VGNYF6FB.mjs.map +0 -7
  596. package/dist/js/chunks/chunk-VGPGBNGL.mjs +0 -68
  597. package/dist/js/chunks/chunk-VGPGBNGL.mjs.map +0 -7
  598. package/dist/js/chunks/chunk-VKAUVTQY.mjs +0 -1
  599. package/dist/js/chunks/chunk-VM4FTS7L.mjs +0 -48
  600. package/dist/js/chunks/chunk-VM4FTS7L.mjs.map +0 -7
  601. package/dist/js/chunks/chunk-WDK4T63U.mjs.map +0 -7
  602. package/dist/js/chunks/chunk-WOCCTVUF.mjs +0 -185
  603. package/dist/js/chunks/chunk-WOCCTVUF.mjs.map +0 -7
  604. package/dist/js/chunks/chunk-WQYN5L4E.mjs +0 -107
  605. package/dist/js/chunks/chunk-WQYN5L4E.mjs.map +0 -7
  606. package/dist/js/chunks/chunk-X4ISMKE2.mjs.map +0 -7
  607. package/dist/js/chunks/chunk-XAEAEHIX.mjs.map +0 -7
  608. package/dist/js/chunks/chunk-ZX6M7SWO.mjs.map +0 -7
  609. /package/dist/js/chunks/{chunk-VKAUVTQY.mjs.map → chunk-GNRSYMVH.mjs.map} +0 -0
@@ -33,16 +33,8 @@ label:has(> [type="checkbox"]):not(.switch),
33
33
  --md-comp-checkbox-state-layer-size: 40px;
34
34
 
35
35
  position: relative;
36
- display: flex;
37
- align-items: center;
38
- gap: 12px;
39
- min-height: 48px;
40
- margin: 0;
41
- cursor: pointer;
42
- user-select: none;
43
36
  -webkit-tap-highlight-color: transparent;
44
- color: var(--md-sys-color-on-surface);
45
- @include typescale("body-large");
37
+ @include selection-control-label;
46
38
  }
47
39
 
48
40
  // A row of checkboxes is a group of controls, not navigation - see rule 4 in
@@ -66,18 +58,11 @@ label:has(> [type="checkbox"]):not(.switch),
66
58
  // do not write :has(:not(:has(+ span))).
67
59
  label:has(> [type="checkbox"]):not(.switch) > [type="checkbox"],
68
60
  .checkbox > [type="checkbox"] {
69
- appearance: none;
70
- flex: 0 0 var(--md-comp-checkbox-container-size);
71
- box-sizing: border-box;
72
- width: var(--md-comp-checkbox-container-size);
73
- height: var(--md-comp-checkbox-container-size);
74
- margin: 0;
75
- padding: 0;
76
- border: 2px solid var(--md-sys-color-on-surface-variant);
61
+ @include selection-control(var(--md-comp-checkbox-container-size), var(--md-comp-checkbox-container-size), var(--md-sys-color-on-surface-variant));
77
62
  border-radius: var(--md-comp-checkbox-container-shape);
78
63
  background-color: transparent;
79
64
  cursor: pointer;
80
- transition: border-color .2s ease, background-color .2s ease, box-shadow .2s ease;
65
+ transition: border-color var(--md-sys-motion-duration-short4) ease, background-color var(--md-sys-motion-duration-short4) ease, box-shadow var(--md-sys-motion-duration-short4) ease;
81
66
 
82
67
  &:checked,
83
68
  &:indeterminate {
@@ -85,20 +70,7 @@ label:has(> [type="checkbox"]):not(.switch) > [type="checkbox"],
85
70
  background-color: var(--md-sys-color-primary);
86
71
  }
87
72
 
88
- &:hover {
89
- @include _ring(var(--md-sys-color-on-surface), "hover");
90
- }
91
-
92
- &:checked:hover,
93
- &:indeterminate:hover {
94
- @include _ring(var(--md-sys-color-primary), "hover");
95
- }
96
-
97
- &:focus-visible,
98
- &.tabbed:focus {
99
- @include _ring(var(--md-sys-color-primary), "focus");
100
- outline: none;
101
- }
73
+ @include selection-control-states(var(--md-comp-checkbox-state-layer-size), var(--md-comp-checkbox-container-size), (":checked", ":indeterminate"));
102
74
 
103
75
  &.invalid,
104
76
  &[aria-invalid="true"] {
@@ -152,14 +124,14 @@ label:has(> [type="checkbox"]):not(.switch):not(:has(> [type="checkbox"] + span)
152
124
  &::before {
153
125
  content: "";
154
126
  position: absolute;
155
- left: 0;
127
+ // A label that pads its box in, such as a list row, moves the mark with it.
128
+ inset-inline-start: var(--checkbox-mark-inset, 0);
156
129
  top: 50%;
157
130
  width: var(--md-comp-checkbox-container-size);
158
131
  height: var(--md-comp-checkbox-container-size);
159
132
  margin-top: calc(var(--md-comp-checkbox-container-size) / -2);
160
133
  pointer-events: none;
161
134
  background-color: var(--md-sys-color-on-primary);
162
- -webkit-mask: #{$_cb-check} center / contain no-repeat;
163
135
  mask: #{$_cb-check} center / contain no-repeat;
164
136
  opacity: 0;
165
137
  }
@@ -170,7 +142,6 @@ label:has(> [type="checkbox"]):not(.switch):not(:has(> [type="checkbox"] + span)
170
142
  }
171
143
 
172
144
  &:has(> [type="checkbox"]:indeterminate)::before {
173
- -webkit-mask-image: #{$_cb-dash};
174
145
  mask-image: #{$_cb-dash};
175
146
  }
176
147
 
@@ -191,10 +162,10 @@ label:has(> [type="checkbox"]:disabled):not(.switch),
191
162
  }
192
163
 
193
164
  // Legacy / Select / Autocomplete: input + span draws the same
194
- // 18dp anatomy. Exclude .switch — that file paints the track on a span.
165
+ // 18dp anatomy. Exclude .switch, which paints its own track.
195
166
  // $state is appended to the checkbox, e.g. ":checked" or ".invalid".
196
167
  @function _cb-span($state: "") {
197
- @return "*:not(.switch) > [type='checkbox']#{$state} + span:not(.lever, .supporting-text, .character-counter, .file-path)";
168
+ @return "*:not(.switch) > [type='checkbox']#{$state} + span:not(.supporting-text, .character-counter, .file-path)";
198
169
  }
199
170
 
200
171
  // inline-block, not inline-flex: a flex span turns each text run and link
@@ -207,7 +178,7 @@ label:has(> [type="checkbox"]:disabled):not(.switch),
207
178
  box-sizing: border-box;
208
179
  min-height: 48px;
209
180
  padding-block: calc((48px - 1lh) / 2);
210
- padding-left: 30px;
181
+ padding-inline-start: 30px;
211
182
  cursor: pointer;
212
183
  user-select: none;
213
184
  }
@@ -216,7 +187,7 @@ label:has(> [type="checkbox"]:disabled):not(.switch),
216
187
  #{_cb-span()}::after {
217
188
  content: "";
218
189
  position: absolute;
219
- left: 0;
190
+ inset-inline-start: 0;
220
191
  top: 50%;
221
192
  box-sizing: border-box;
222
193
  width: 18px;
@@ -228,12 +199,11 @@ label:has(> [type="checkbox"]:disabled):not(.switch),
228
199
  #{_cb-span()}::before {
229
200
  border: 2px solid var(--md-sys-color-on-surface-variant);
230
201
  background-color: transparent;
231
- transition: border-color .2s ease, background-color .2s ease, box-shadow .2s ease;
202
+ transition: border-color var(--md-sys-motion-duration-short4) ease, background-color var(--md-sys-motion-duration-short4) ease, box-shadow var(--md-sys-motion-duration-short4) ease;
232
203
  }
233
204
 
234
205
  #{_cb-span()}::after {
235
206
  background-color: var(--md-sys-color-on-primary);
236
- -webkit-mask: #{$_cb-check} center / contain no-repeat;
237
207
  mask: #{$_cb-check} center / contain no-repeat;
238
208
  opacity: 0;
239
209
  }
@@ -248,7 +218,6 @@ label:has(> [type="checkbox"]:disabled):not(.switch),
248
218
  }
249
219
 
250
220
  #{_cb-span(":indeterminate")}::after {
251
- -webkit-mask-image: #{$_cb-dash};
252
221
  mask-image: #{$_cb-dash};
253
222
  }
254
223
 
@@ -260,8 +229,7 @@ label:has(> [type="checkbox"]:disabled):not(.switch),
260
229
  @include _ring(var(--md-sys-color-primary), "hover");
261
230
  }
262
231
 
263
- #{_cb-span(":focus-visible")}::before,
264
- #{_cb-span(".tabbed:focus")}::before {
232
+ #{_cb-span(":focus-visible")}::before {
265
233
  @include _ring(var(--md-sys-color-primary), "focus");
266
234
  }
267
235
 
@@ -300,3 +268,98 @@ label:has(> [type="checkbox"]:disabled):not(.switch),
300
268
  #{_cb-span(":disabled:is(:checked, :indeterminate)")}::after {
301
269
  background-color: var(--md-sys-color-surface);
302
270
  }
271
+
272
+ // Forced colors paint the box and the masked check as Canvas, so checked and
273
+ // unchecked look the same, and the focus ring is a box-shadow they drop. Draw
274
+ // the state in system colors and give focus a real outline.
275
+ @media (forced-colors: active) {
276
+ label:has(> [type="checkbox"]):not(.switch) > [type="checkbox"],
277
+ .checkbox > [type="checkbox"] {
278
+ &:focus-visible {
279
+ outline: 2px solid CanvasText;
280
+ outline-offset: 2px;
281
+ }
282
+
283
+ &:is(:checked, :indeterminate) {
284
+ forced-color-adjust: none;
285
+ border-color: Highlight;
286
+ background-color: Highlight;
287
+ }
288
+
289
+ &:disabled {
290
+ border-color: GrayText;
291
+ }
292
+
293
+ &:disabled:is(:checked, :indeterminate) {
294
+ background-color: GrayText;
295
+ }
296
+
297
+ // Forced colors have no error color, so an invalid box takes a dashed
298
+ // edge instead. A checked one keeps the Highlight fill - the error fill
299
+ // above is more specific than the :checked rule here and would pass the
300
+ // author's red through - inside a CanvasText edge, clipped so Canvas
301
+ // shows between the dashes. A disabled one stays GrayText.
302
+ &:is(.invalid, [aria-invalid="true"]) {
303
+ border-style: dashed;
304
+ }
305
+
306
+ &:is(.invalid, [aria-invalid="true"]):is(:checked, :indeterminate):not(:disabled) {
307
+ border-color: CanvasText;
308
+ background-color: Highlight;
309
+ background-clip: padding-box;
310
+ }
311
+ }
312
+
313
+ // Forced colors repaint the dimmed label as CanvasText, like an enabled one.
314
+ label:has(> [type="checkbox"]:disabled):not(.switch),
315
+ .checkbox:has([type="checkbox"]:disabled) {
316
+ color: GrayText;
317
+ }
318
+
319
+ label:has(> [type="checkbox"]):not(.switch):not(:has(> [type="checkbox"] + span)),
320
+ .checkbox:not(:has(> [type="checkbox"] + span)) {
321
+ &::before {
322
+ forced-color-adjust: none;
323
+ background-color: HighlightText;
324
+ }
325
+ }
326
+
327
+ #{_cb-span(":is(:checked, :indeterminate)")}::before {
328
+ forced-color-adjust: none;
329
+ border-color: Highlight;
330
+ background-color: Highlight;
331
+ }
332
+
333
+ #{_cb-span()}::after {
334
+ forced-color-adjust: none;
335
+ background-color: HighlightText;
336
+ }
337
+
338
+ #{_cb-span(":focus-visible")}::before {
339
+ outline: 2px solid CanvasText;
340
+ outline-offset: 2px;
341
+ }
342
+
343
+ #{_cb-span(":is(.invalid, [aria-invalid='true'])")}::before {
344
+ border-style: dashed;
345
+ }
346
+
347
+ // The error mark color is more specific than the HighlightText rules
348
+ // above, so an invalid box restates them with the same selector.
349
+ label:has(> [type="checkbox"]):not(.switch):not(:has(> [type="checkbox"] + span)),
350
+ .checkbox:not(:has(> [type="checkbox"] + span)) {
351
+ &:has(> [type="checkbox"]:is(.invalid, [aria-invalid="true"]):is(:checked, :indeterminate):not(:disabled))::before {
352
+ background-color: HighlightText;
353
+ }
354
+ }
355
+
356
+ #{_cb-span(":is(.invalid, [aria-invalid='true']):is(:checked, :indeterminate):not(:disabled)")}::after {
357
+ background-color: HighlightText;
358
+ }
359
+
360
+ #{_cb-span(":is(.invalid, [aria-invalid='true']):is(:checked, :indeterminate):not(:disabled)")}::before {
361
+ border-color: CanvasText;
362
+ background-color: Highlight;
363
+ background-clip: padding-box;
364
+ }
365
+ }
@@ -0,0 +1,135 @@
1
+ @use "../../abstracts" as *;
2
+
3
+ // Color picker. A .color-picker holding an <input type="color"> works as the
4
+ // native swatch without JavaScript. ColorPicker adds a saturation and
5
+ // brightness area, a hue slider and a hex field around that input, which
6
+ // stays the form value and the preview.
7
+ //
8
+ // <div class="color-picker" role="group" aria-label="Accent">
9
+ // <input type="color" name="accent" value="#6750a4" aria-label="Accent">
10
+ // </div>
11
+ //
12
+ // The hue slider is the framework's range input, so it keeps the M3 handle
13
+ // and states; only its track becomes the hue gradient. The area and the hue
14
+ // track are the color itself, so they keep their colors under forced colors
15
+ // and do not mirror in RTL.
16
+ //
17
+ // Tokens:
18
+ // --md-comp-color-picker-width 280px
19
+ // --md-comp-color-picker-area-height 160px
20
+ // --md-comp-color-picker-area-shape corner.medium
21
+ // --md-comp-color-picker-thumb-size 24px
22
+ // --md-comp-color-picker-field-shape corner.extra-small
23
+
24
+ $_hue-gradient: linear-gradient(
25
+ to right,
26
+ hsl(0 100% 50%), hsl(60 100% 50%), hsl(120 100% 50%), hsl(180 100% 50%),
27
+ hsl(240 100% 50%), hsl(300 100% 50%), hsl(360 100% 50%)
28
+ );
29
+
30
+ .color-picker {
31
+ --md-comp-color-picker-width: 280px;
32
+ --md-comp-color-picker-area-height: 160px;
33
+ --md-comp-color-picker-area-shape: var(--md-sys-shape-corner-medium);
34
+ --md-comp-color-picker-thumb-size: 24px;
35
+ --md-comp-color-picker-field-shape: var(--md-sys-shape-corner-extra-small);
36
+
37
+ display: inline-grid;
38
+ grid-template-columns: auto minmax(0, 1fr);
39
+ align-items: center;
40
+ gap: 8px 12px;
41
+ inline-size: min(100%, var(--md-comp-color-picker-width));
42
+
43
+ > .color-picker-area,
44
+ > .color-picker-hue {
45
+ grid-column: 1 / -1;
46
+ }
47
+
48
+ > .color-picker-hue {
49
+ --md-comp-slider-handle-color: var(--md-sys-color-on-surface);
50
+ direction: ltr;
51
+ margin: 0;
52
+ forced-color-adjust: none;
53
+ }
54
+ }
55
+
56
+ .color-picker-area {
57
+ position: relative;
58
+ block-size: var(--md-comp-color-picker-area-height);
59
+ border-radius: var(--md-comp-color-picker-area-shape);
60
+ background:
61
+ linear-gradient(to top, #000, transparent),
62
+ linear-gradient(to right, #fff, transparent),
63
+ hsl(var(--_color-picker-hue, 0) 100% 50%);
64
+ cursor: crosshair;
65
+ touch-action: none;
66
+ forced-color-adjust: none;
67
+ }
68
+
69
+ // White ring plus a dark edge, so the thumb shows on every color.
70
+ .color-picker-thumb {
71
+ position: absolute;
72
+ top: calc(var(--_color-picker-y, 0) * 100%);
73
+ left: calc(var(--_color-picker-x, 0) * 100%);
74
+ box-sizing: border-box;
75
+ inline-size: var(--md-comp-color-picker-thumb-size);
76
+ block-size: var(--md-comp-color-picker-thumb-size);
77
+ border: 3px solid #fff;
78
+ border-radius: var(--md-sys-shape-corner-full);
79
+ background-color: var(--_color-picker-color, transparent);
80
+ box-shadow: 0 0 0 1px rgb(0 0 0 / 0.5), inset 0 0 0 1px rgb(0 0 0 / 0.3);
81
+ translate: -50% -50%;
82
+ @include focus-visible;
83
+ }
84
+
85
+ // One rule per engine: a browser drops a whole rule with a pseudo-element it
86
+ // does not know.
87
+ @each $track in ("::-webkit-slider-runnable-track", "::-moz-range-track") {
88
+ .color-picker > .color-picker-hue#{$track} {
89
+ background: $_hue-gradient;
90
+ }
91
+ }
92
+
93
+ .color-picker-hex {
94
+ box-sizing: border-box;
95
+ min-inline-size: 0;
96
+ block-size: 40px;
97
+ margin: 0;
98
+ padding-inline: 12px;
99
+ border: 1px solid var(--md-sys-color-outline);
100
+ border-radius: var(--md-comp-color-picker-field-shape);
101
+ background: transparent;
102
+ color: var(--md-sys-color-on-surface);
103
+ font-family: $font-stack;
104
+ @include typescale("body-large");
105
+
106
+ &:focus {
107
+ outline: 2px solid var(--md-sys-color-primary);
108
+ outline-offset: -2px;
109
+ }
110
+
111
+ &:disabled {
112
+ opacity: 0.38;
113
+ }
114
+ }
115
+
116
+ .color-picker:has(> input[type="color"]:disabled) > .color-picker-area {
117
+ cursor: default;
118
+ opacity: 0.38;
119
+ }
120
+
121
+ @media (forced-colors: active) {
122
+ .color-picker-thumb {
123
+ border-color: Canvas;
124
+ box-shadow: 0 0 0 2px CanvasText;
125
+ }
126
+
127
+ .color-picker-hex {
128
+ border-color: CanvasText;
129
+ }
130
+
131
+ // The area keeps its colors, and its dark edge meets a dark Canvas.
132
+ .color-picker-area {
133
+ outline: 1px solid CanvasText;
134
+ }
135
+ }
@@ -0,0 +1,85 @@
1
+ @use "../../abstracts" as *;
2
+
3
+ // Color swatches: pick one color from a preset palette. Each swatch is a
4
+ // native radio drawn as a round chip of its color, so the group has one Tab
5
+ // stop, arrow keys and a checked state with no script. A native color input
6
+ // at the end of the group offers a custom value. CSS only.
7
+ //
8
+ // <fieldset class="color-swatches">
9
+ // <legend>Accent</legend>
10
+ // <label><span class="visually-hidden">Purple</span><input type="radio"
11
+ // name="accent" value="#6750a4" style="--md-comp-color-swatch-color: #6750a4" checked></label>
12
+ // <label><span class="visually-hidden">Custom accent</span><input type="color" value="#ff8800"></label>
13
+ // </fieldset>
14
+ //
15
+ // The same anatomy as Rating: the name is visually hidden text in the label,
16
+ // before the input. Loaded after radio-buttons, so these rules match the
17
+ // radio rules' weight and win on order.
18
+ //
19
+ // Tokens:
20
+ // --md-comp-color-swatch-color the swatch's color, per input transparent
21
+ // --md-comp-color-swatches-size swatch diameter 40px
22
+ // --md-comp-color-swatches-outline-color edge of every swatch outline
23
+ // --md-comp-color-swatches-selected-color ring around the checked one on-surface
24
+
25
+ fieldset.color-swatches {
26
+ --md-comp-color-swatch-color: transparent;
27
+ --md-comp-color-swatches-size: 40px;
28
+ --md-comp-color-swatches-outline-color: var(--md-sys-color-outline);
29
+ --md-comp-color-swatches-selected-color: var(--md-sys-color-on-surface);
30
+
31
+ @include choice-fieldset(var(--md-sys-shape-corner-full), '[type="radio"]');
32
+
33
+ > label > [type="color"] {
34
+ padding: 0;
35
+ }
36
+
37
+ > label > [type="radio"] {
38
+ flex: none;
39
+ width: var(--md-comp-color-swatches-size);
40
+ height: var(--md-comp-color-swatches-size);
41
+ border: 1px solid var(--md-comp-color-swatches-outline-color);
42
+ border-radius: var(--md-sys-shape-corner-full);
43
+ background-color: var(--md-comp-color-swatch-color);
44
+ background-image: none;
45
+ box-shadow: none;
46
+ outline: 0;
47
+ // The color is the content, so forced colors must not repaint it.
48
+ forced-color-adjust: none;
49
+
50
+ // The base radio draws its dot and state ring in these states, some at a
51
+ // higher weight; the swatch has neither.
52
+ &:hover,
53
+ &:focus-visible,
54
+ &:disabled,
55
+ &:checked:hover,
56
+ &:disabled:checked {
57
+ border-color: var(--md-comp-color-swatches-outline-color);
58
+ background-image: none;
59
+ box-shadow: none;
60
+ }
61
+
62
+ // A gap in the surface color, then a ring: the shape marks the choice,
63
+ // so it does not depend on telling two colors apart.
64
+ &:checked,
65
+ &:checked:hover {
66
+ border-color: var(--md-comp-color-swatches-outline-color);
67
+ background-image: none;
68
+ box-shadow:
69
+ 0 0 0 2px var(--md-sys-color-surface),
70
+ 0 0 0 4px var(--md-comp-color-swatches-selected-color);
71
+ }
72
+ }
73
+
74
+ @media (forced-colors: active) {
75
+ > label > [type="radio"] {
76
+ border-color: CanvasText;
77
+ }
78
+
79
+ > label > [type="radio"]:checked {
80
+ box-shadow: none;
81
+ outline: 3px solid Highlight;
82
+ outline-offset: 2px;
83
+ }
84
+ }
85
+ }
@@ -16,7 +16,7 @@
16
16
  // --md-comp-drop-zone-dragover-color on-primary-container
17
17
 
18
18
  .drop-zone {
19
- --md-comp-drop-zone-shape: 16px;
19
+ --md-comp-drop-zone-shape: var(--md-sys-shape-corner-large);
20
20
  --md-comp-drop-zone-outline-color: var(--md-sys-color-outline);
21
21
  --md-comp-drop-zone-dragover-container-color: var(--md-sys-color-primary-container);
22
22
  --md-comp-drop-zone-dragover-color: var(--md-sys-color-on-primary-container);
@@ -36,12 +36,12 @@
36
36
  text-align: center;
37
37
  color: var(--md-sys-color-on-surface-variant);
38
38
  cursor: pointer;
39
- transition: background-color 0.2s ease-out, border-color 0.2s ease-out;
39
+ transition: background-color var(--md-sys-motion-duration-short4) ease-out, border-color var(--md-sys-motion-duration-short4) ease-out;
40
40
  @include typescale("body-large");
41
41
 
42
42
  > #{$icon} {
43
43
  margin-block-end: 8px;
44
- font-size: 32px;
44
+ font-size: rem(32px);
45
45
  color: var(--md-sys-color-primary);
46
46
  }
47
47
 
@@ -50,10 +50,7 @@
50
50
  }
51
51
 
52
52
  > input[type="file"] {
53
- position: absolute;
54
- inset: 0;
55
- width: 100%;
56
- height: 100%;
53
+ @include fill-parent;
57
54
  margin: 0;
58
55
  padding: 0;
59
56
  opacity: 0;
@@ -61,11 +58,7 @@
61
58
  }
62
59
 
63
60
  &:hover {
64
- background-color: color-mix(
65
- in oklab,
66
- var(--md-sys-color-on-surface) state-opacity("hover"),
67
- transparent
68
- );
61
+ background-color: state-layer(var(--md-sys-color-on-surface), "hover");
69
62
  }
70
63
 
71
64
  &:has(> input:focus-visible) {
@@ -86,6 +79,16 @@
86
79
  color: var(--md-comp-drop-zone-dragover-color);
87
80
  }
88
81
 
82
+ > label:has(> input:is([data-validate-types], [data-max-size], [data-max-files])[aria-invalid="true"]) {
83
+ border-color: var(--md-sys-color-error);
84
+ }
85
+
86
+ &:has(> label > input:is([data-validate-types], [data-max-size], [data-max-files])) > .supporting-text[data-error] {
87
+ margin: 8px 16px 0;
88
+ color: var(--md-sys-color-error);
89
+ @include typescale("body-small");
90
+ }
91
+
89
92
  > .drop-zone-files {
90
93
  display: flex;
91
94
  flex-direction: column;
@@ -99,7 +102,7 @@
99
102
  justify-content: space-between;
100
103
  gap: 16px;
101
104
  padding: 8px 16px;
102
- border-radius: 8px;
105
+ border-radius: var(--md-sys-shape-corner-small);
103
106
  background-color: var(--md-sys-color-surface-container);
104
107
  color: var(--md-sys-color-on-surface);
105
108
  @include typescale("body-medium");
@@ -12,7 +12,7 @@
12
12
  // container used around related form content, and the outlined text-field
13
13
  // shape so a group of fields matches the fields:
14
14
  // container transparent, 4dp corners, 1dp outline-variant
15
- // filled surface-variant, no outline
15
+ // filled surface-container-highest, no outline
16
16
  // legend title-small / on-surface
17
17
  // supporting body-small / on-surface-variant
18
18
  // padding 16dp, 16dp between children
@@ -22,7 +22,7 @@
22
22
 
23
23
  fieldset {
24
24
  --md-comp-fieldset-container-color: transparent;
25
- --md-comp-fieldset-container-shape: 4px;
25
+ --md-comp-fieldset-container-shape: var(--md-sys-shape-corner-extra-small);
26
26
  --md-comp-fieldset-outline-color: var(--md-sys-color-outline-variant);
27
27
  --md-comp-fieldset-outline-width: 1px;
28
28
  --md-comp-fieldset-legend-color: var(--md-sys-color-on-surface);
@@ -51,10 +51,7 @@ fieldset {
51
51
  @include typescale("title-small");
52
52
 
53
53
  > #{$icon} {
54
- font-size: 18px;
55
- width: 18px;
56
- height: 18px;
57
- line-height: 18px;
54
+ @include icon-size(rem(18px));
58
55
  margin-inline-end: 8px;
59
56
  vertical-align: -3px;
60
57
  color: var(--md-sys-color-on-surface-variant);
@@ -97,7 +94,7 @@ fieldset.border {
97
94
  }
98
95
 
99
96
  fieldset.rounded {
100
- --md-comp-fieldset-container-shape: 12px;
97
+ --md-comp-fieldset-container-shape: var(--md-sys-shape-corner-medium);
101
98
  }
102
99
 
103
100
  // Plain groups radios or checkboxes inside a surface that already frames them,
@@ -13,12 +13,10 @@
13
13
 
14
14
  input.file-path { width: 100%; }
15
15
 
16
- // The trigger. `label.button` is the documented form - it wraps the file
17
- // input, which is how clicking it opens the picker with no script. <button>
18
- // and .btn are the older markup and still work.
19
- > label.button,
20
- > button,
21
- > .btn {
16
+ // The trigger. `label.button` wraps the file input, which is how clicking
17
+ // it opens the picker with no script. A <button> cannot hold the input:
18
+ // one control inside another is invalid HTML.
19
+ > label.button {
22
20
  display: block;
23
21
  align-content: center;
24
22
  overflow-wrap: break-word;
@@ -29,6 +27,12 @@
29
27
  align-self: start;
30
28
  min-height: 3rem;
31
29
  min-width: 0;
30
+
31
+ // The focused control is the invisible file input inside, so the
32
+ // trigger shows its ring.
33
+ &:has(> input[type="file"]:focus-visible) {
34
+ @include focus-ring;
35
+ }
32
36
  }
33
37
 
34
38
  span {
@@ -38,7 +42,7 @@
38
42
  // Scoped to the trigger, not to .file-field. `inset: 0` against the field
39
43
  // stretched the invisible input across the whole row, so clicking the path
40
44
  // display - or any empty space - opened the file picker.
41
- :is(label.button, button, .btn) input[type=file] {
45
+ label.button input[type=file] {
42
46
  position: absolute;
43
47
  inset: 0;
44
48
  cursor: pointer;
@@ -46,7 +50,7 @@
46
50
  margin: 0;
47
51
  padding: 0;
48
52
  opacity: 0;
49
- font-size: 20px;
53
+ font-size: rem(20px);
50
54
 
51
55
  // Needed to override the UA-rendered button. `::file-selector-button` is
52
56
  // the standardised name for the old ::-webkit-file-upload-button.
@@ -8,9 +8,11 @@
8
8
  @forward 'drop-zone';
9
9
  @forward 'slider';
10
10
  @forward 'fieldset';
11
+ @forward 'color-swatches';
12
+ @forward 'color-picker';
11
13
 
12
14
  label {
13
- font-size: .8rem;
15
+ font-size: 0.8rem;
14
16
  color: var(--md-sys-color-on-surface-variant);
15
17
  }
16
18