@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
@@ -3,15 +3,14 @@
3
3
  // Text fields.
4
4
  //
5
5
  // Anatomy is the HTML. .field is the container. The <label> after the
6
- // control is the floating label. A leading <i> (or .prefix) is the
7
- // leading icon; .suffix (or a second / trailing <i>) is the trailing
8
- // icon. Icons come before the control in the documented markup, so
6
+ // control is the floating label. A .prefix icon is the leading icon and a
7
+ // .suffix icon the trailing one. Icons come before the control in the documented markup, so
9
8
  // trailing cannot be selected with :last-child — that left .suffix
10
9
  // in flow above the well. <small> is supporting text. .outlined is
11
10
  // the outlined variant; the default is filled.
12
11
  //
13
12
  // Tokens follow https://m3.material.io/components/text-fields/specs
14
- // filled surface-variant well, 1rem corners, 1dp/2dp bottom indicator
13
+ // filled surface-container-highest well, 1rem corners, 1dp/2dp bottom indicator
15
14
  // outlined 1dp/2dp outline, 1rem corners
16
15
  // height 56dp
17
16
  // label body-large rest, body-small floated
@@ -25,20 +24,21 @@
25
24
  color: var(--md-sys-color-on-surface-variant);
26
25
  }
27
26
 
28
- $_text-inputs: "input:not([type]):not(.browser-default), input[type=text]:not(.browser-default), input[type=password]:not(.browser-default), input[type=email]:not(.browser-default), input[type=url]:not(.browser-default), input[type=time]:not(.browser-default), input[type=date]:not(.browser-default), input[type=datetime]:not(.browser-default), input[type=datetime-local]:not(.browser-default), input[type=month]:not(.browser-default), input[type=tel]:not(.browser-default), input[type=number]:not(.browser-default), input[type=search]:not(.browser-default), textarea.expressive-textarea";
29
-
30
- #{$_text-inputs} {
27
+ // :is() takes its most specific argument, (0,1,0) for each one here, so every
28
+ // input keeps the (0,2,1) a per-type :not(.browser-default) list gave it.
29
+ input:is(:not([type]), [type=text], [type=password], [type=email], [type=url], [type=time], [type=date], [type=datetime], [type=datetime-local], [type=month], [type=tel], [type=number], [type=search]):not(.browser-default),
30
+ textarea.expressive-textarea {
31
31
  outline: none;
32
32
  color: var(--md-sys-color-on-surface);
33
33
  width: 100%;
34
- height: 56px;
34
+ height: rem(56px);
35
35
  background-color: transparent;
36
36
  @include typescale("body-large");
37
37
  }
38
38
 
39
39
  // A .field is full of spans that are not the floating label: supporting text,
40
- // the character counter, the file path, the select caret, and - since field
41
- // icons stopped being <i> - the leading and trailing icons. Every rule that
40
+ // the character counter, the file path, the select caret, and the leading and
41
+ // trailing icons. Every rule that
42
42
  // styles "the label, or the span standing in for it" has to exclude all of
43
43
  // them, and there are five such rules. They were five hand-copied lists that
44
44
  // had already drifted (.file-path was in two of them), and adding .prefix /
@@ -47,31 +47,55 @@ $_text-inputs: "input:not([type]):not(.browser-default), input[type=text]:not(.b
47
47
  // pointer-events: none.
48
48
  $_not-label: ".supporting-text, .character-counter, .file-path, .caret, .prefix, .suffix, .chip";
49
49
 
50
+ // The label, or the span standing in for it, floats while the control is
51
+ // focused or holds a value. Nested under the control, so & is the control.
52
+ $_floated: '&:focus + label, &:not([placeholder=" "]) + label, &:not(:placeholder-shown) + label, &:focus + span:not(#{$_not-label}), &:not([placeholder=" "]) + span:not(#{$_not-label}), &:not(:placeholder-shown) + span:not(#{$_not-label})';
53
+
50
54
  .field {
51
55
  --md-comp-filled-text-field-container-color: var(--md-sys-color-surface-container-highest);
52
56
  --md-comp-filled-text-field-container-shape: 1rem;
53
57
  --md-comp-filled-text-field-caret-color: var(--md-sys-color-primary);
54
58
  --input-color: var(--md-comp-filled-text-field-caret-color);
55
59
 
60
+ // Start and end clearance of the field's own input, label and icons, in
61
+ // physical terms keyed to the field's dir through :dir(). An input can carry
62
+ // its own dir ("auto" for mixed-language text, "ltr" for an email address on
63
+ // an RTL page), and logical properties would follow that, or a CSS-only
64
+ // `direction`, instead. A page that sets only `direction` renders as LTR.
65
+ --_field-start: 16px;
66
+ --_field-end: 16px;
67
+ // Clearance for a 24dp icon at a 12dp inset with 16dp after it: 52px at
68
+ // the default size. The icon is rem, so the clearance grows with it.
69
+ --_field-icon-clearance: calc(28px + #{rem(24px)});
70
+ // A small icon button, 8dp either side of its rem icon: 40px by default.
71
+ --_field-icon-button: calc(16px + #{rem(24px)});
72
+ --_field-left: var(--_field-start);
73
+ --_field-right: var(--_field-end);
74
+
75
+ &:dir(rtl) {
76
+ --_field-left: var(--_field-end);
77
+ --_field-right: var(--_field-start);
78
+ }
79
+
56
80
  position: relative;
57
81
  clear: both;
58
82
 
59
83
  // Checkboxes / radios inside a field (multi-select menu) are not text
60
84
  // fields — do not give them the 56dp well.
61
- input:not([type="range"], [type="checkbox"], [type="radio"], [type="file"]),
85
+ input:not([type="range"], [type="checkbox"], [type="radio"], [type="file"], [type="color"]),
62
86
  textarea {
63
87
  box-sizing: border-box;
64
- padding: 20px 16px 8px;
88
+ padding: rem(20px) 16px rem(8px);
65
89
  border: none;
66
90
  border-radius: var(--md-comp-filled-text-field-container-shape);
67
91
  border-bottom: 1px solid var(--md-sys-color-on-surface-variant);
68
92
  background-color: var(--md-comp-filled-text-field-container-color);
69
93
  caret-color: var(--input-color);
70
94
 
71
- &:focus:not([readonly]) {
95
+ &:focus {
72
96
  border-bottom-width: 2px;
73
97
  border-bottom-color: var(--input-color);
74
- padding-bottom: 7px;
98
+ padding-bottom: calc(#{rem(8px)} - 1px);
75
99
  }
76
100
 
77
101
  &:disabled,
@@ -81,19 +105,14 @@ $_not-label: ".supporting-text, .character-counter, .file-path, .caret, .prefix,
81
105
  background-color: color-mix(in oklab, var(--md-sys-color-on-surface) 4%, transparent);
82
106
  }
83
107
 
84
- &:focus:not([readonly]) + label,
85
- &:focus:not([readonly]) + span:not(#{$_not-label}) {
108
+ &:focus + label,
109
+ &:focus + span:not(#{$_not-label}) {
86
110
  color: var(--input-color);
87
111
  }
88
112
 
89
- &:focus:not([readonly]) + label,
90
- &:not([placeholder=" "]) + label,
91
- &:not(:placeholder-shown) + label,
92
- &:focus:not([readonly]) + span:not(#{$_not-label}),
93
- &:not([placeholder=" "]) + span:not(#{$_not-label}),
94
- &:not(:placeholder-shown) + span:not(#{$_not-label}) {
113
+ #{$_floated} {
95
114
  transform: scale(calc(12 / 16));
96
- top: 8px;
115
+ top: rem(8px);
97
116
  }
98
117
 
99
118
  &:disabled + label,
@@ -133,6 +152,15 @@ $_not-label: ".supporting-text, .character-counter, .file-path, .caret, .prefix,
133
152
  user-select: none;
134
153
  }
135
154
 
155
+ // After the base rule, which ties it on specificity. Only the field's own
156
+ // control: an input nested deeper keeps 16px. Longhands, so a bad custom
157
+ // property costs one side rather than all four.
158
+ > :is(input:not([type="range"], [type="checkbox"], [type="radio"], [type="file"], [type="color"]), textarea) {
159
+ padding-left: var(--_field-left);
160
+ padding-right: var(--_field-right);
161
+ }
162
+
163
+
136
164
  // :not(.button, .icon-button) - the file input's trigger is a <label> and is
137
165
  // a button, not this field's floating label.
138
166
  > label:not(.button, .icon-button),
@@ -140,13 +168,24 @@ $_not-label: ".supporting-text, .character-counter, .file-path, .caret, .prefix,
140
168
  color: var(--md-sys-color-on-surface-variant);
141
169
  user-select: none;
142
170
  position: absolute;
143
- left: 16px;
144
- top: 16px;
171
+ left: var(--_field-start);
172
+ top: rem(16px);
145
173
  cursor: text;
146
174
  transform-origin: top left;
147
175
  pointer-events: none;
148
176
  @include typescale("body-large");
149
- transition: left 0.2s ease-out, top 0.2s ease-out, transform 0.2s ease-out, color 0.2s ease-out;
177
+ // left and right: the logical inset moves on `right` in a right-to-left field.
178
+ transition: left var(--md-sys-motion-duration-short4) ease-out, right var(--md-sys-motion-duration-short4) ease-out, top var(--md-sys-motion-duration-short4) ease-out, transform var(--md-sys-motion-duration-short4) ease-out, color var(--md-sys-motion-duration-short4) ease-out;
179
+
180
+ &:dir(rtl) {
181
+ left: auto;
182
+ right: var(--_field-start);
183
+ transform-origin: top right;
184
+ }
185
+
186
+ @media (prefers-reduced-motion: reduce) {
187
+ transition: none;
188
+ }
150
189
  }
151
190
 
152
191
  > small,
@@ -159,114 +198,131 @@ $_not-label: ".supporting-text, .character-counter, .file-path, .caret, .prefix,
159
198
  }
160
199
 
161
200
  > .character-counter {
162
- float: right;
163
201
  margin-top: 4px;
164
202
  padding: 0 16px;
165
203
  color: var(--md-sys-color-on-surface-variant);
166
204
  @include typescale("body-small");
167
205
  }
168
206
 
169
- // Shared icon box. Position is set on the leading / trailing rules;
170
- // a lone <i> matches several of the :is() items and must not pick
171
- // a side here.
172
- //
173
- // The `i` rules are the legacy path and still work. They cannot be widened
174
- // to the canonical <span class="material-symbols"> form, because they lean
175
- // on :first-of-type / :last-of-type - which count elements of the same
176
- // *type*, and a field is full of other spans (.supporting-text, .caret,
177
- // .character-counter, .file-path). So the documented markup names the side
178
- // explicitly with .prefix / .suffix, and those rules key on nothing else.
179
- > i:is(.prefix, .suffix, :first-of-type, :last-of-type, :last-child),
207
+ // Shared icon box. Position is set on the leading / trailing rules. The
208
+ // side is named with .prefix / .suffix rather than taken from position:
209
+ // :first-of-type counts elements of the same *type*, and a field is full
210
+ // of other spans (.supporting-text, .caret, .character-counter, .file-path).
180
211
  > :is(.prefix, .suffix):not(.icon-button) {
181
212
  position: absolute;
182
- top: 16px;
213
+ top: rem(16px);
183
214
  display: flex;
184
215
  align-items: center;
185
- font-size: 24px;
186
- width: 24px;
187
- height: 24px;
188
- line-height: 24px;
216
+ @include icon-size(rem(24px));
189
217
  color: var(--md-sys-color-on-surface-variant);
190
218
  user-select: none;
191
219
  }
192
220
 
193
- > i:first-of-type:not(.suffix):not(:last-child),
194
- > i.prefix,
221
+ // Physical sides, swapped by :dir(). The icon font sets direction: ltr on
222
+ // the icon itself, and Chromium maps an icon's own inset-inline-* through
223
+ // that, so a logical inset would stay on the left in a right-to-left page.
195
224
  > .prefix {
196
225
  left: 12px;
197
226
  pointer-events: none;
227
+
228
+ &:dir(rtl) {
229
+ left: auto;
230
+ right: 12px;
231
+ }
198
232
  }
199
233
 
200
- > i.suffix,
201
- > i:last-of-type:not(:first-of-type),
202
- > i:last-child:not(:first-child):not(.prefix),
203
234
  > .suffix:not(.icon-button) {
204
235
  right: 12px;
205
236
  // Both icons inherited this from the floating-label rule until they were
206
237
  // excluded from it. .prefix restates it below; .suffix has to as well, or
207
238
  // the trailing icon swallows the click that should focus the input.
208
239
  pointer-events: none;
240
+
241
+ &:dir(rtl) {
242
+ right: auto;
243
+ left: 12px;
244
+ }
209
245
  }
210
246
 
211
247
  // A trailing icon button is a control, so it keeps its 40dp target and its
212
248
  // clicks. It centres on the same point as a 24dp trailing icon.
213
249
  > .icon-button.suffix {
214
250
  position: absolute;
215
- top: 8px;
251
+ top: rem(8px);
216
252
  right: 4px;
217
253
  z-index: 1;
218
- }
219
254
 
220
- &:has(> i:first-of-type:not(.suffix):not(:last-child), > i.prefix, > .prefix) {
221
- > :is(input, textarea) {
222
- padding-left: 52px;
255
+ &:dir(rtl) {
256
+ right: auto;
257
+ left: 4px;
223
258
  }
259
+ }
260
+
261
+ // Number stepper: data-step="down" sits one button in from the end, before
262
+ // data-step="up". The Forms behavior does the stepping.
263
+ > .icon-button.suffix[data-step="down"] {
264
+ right: calc(8px + var(--_field-icon-button));
224
265
 
225
- // The exclusion list is what stops this indenting things that are not the
226
- // floating label. .prefix / .suffix joined it when field icons stopped
227
- // being <i> and became spans - without them the leading icon was pushed
228
- // to 52px, i.e. indented past its own padding.
229
- > :is(
230
- label,
231
- span:not(#{$_not-label})
232
- ) {
233
- left: 52px;
266
+ &:dir(rtl) {
267
+ right: auto;
268
+ left: calc(8px + var(--_field-icon-button));
234
269
  }
235
270
  }
236
271
 
237
- &:has(> i.suffix, > i:last-of-type:not(:first-of-type), > i:last-child:not(:first-child):not(.prefix), > .suffix) {
238
- > :is(input, textarea) {
239
- padding-right: 52px;
272
+ // The browser's spin buttons go when the field draws its own.
273
+ &:has(> [data-step]) > input[type="number"] {
274
+ appearance: textfield;
275
+
276
+ &::-webkit-inner-spin-button,
277
+ &::-webkit-outer-spin-button {
278
+ appearance: none;
279
+ margin: 0;
240
280
  }
241
281
  }
242
282
 
283
+ // The label reads --_field-start too, so it indents with the input.
284
+ &:has(> .prefix) {
285
+ --_field-start: var(--_field-icon-clearance);
286
+ }
287
+
288
+ &:has(> .suffix) {
289
+ --_field-end: var(--_field-icon-clearance);
290
+ }
291
+
292
+ // Two buttons, 4dp from the end and 4dp apart, then 8dp before the text.
293
+ &:has(> [data-step]) {
294
+ --_field-end: calc(16px + 2 * var(--_field-icon-button));
295
+ }
296
+
243
297
  &.outlined {
244
298
  > input,
245
299
  > textarea {
246
- padding-top: 8px;
247
- padding-bottom: 8px;
300
+ padding-top: rem(8px);
301
+ padding-bottom: rem(8px);
248
302
  background-color: transparent;
249
303
  border: 1px solid var(--md-sys-color-outline);
250
304
  border-radius: var(--md-comp-filled-text-field-container-shape);
251
305
 
252
- &:focus:not([readonly]) {
306
+ &:focus {
253
307
  border-width: 2px;
254
308
  border-color: var(--input-color);
255
- padding-top: 7px;
256
- padding-bottom: 7px;
309
+ padding-top: calc(#{rem(8px)} - 1px);
310
+ padding-bottom: calc(#{rem(8px)} - 1px);
257
311
  }
258
312
 
259
- &:focus:not([readonly]) + label,
260
- &:not([placeholder=" "]) + label,
261
- &:not(:placeholder-shown) + label,
262
- &:focus:not([readonly]) + span:not(#{$_not-label}),
263
- &:not([placeholder=" "]) + span:not(#{$_not-label}),
264
- &:not(:placeholder-shown) + span:not(#{$_not-label}) {
265
- top: -8px;
313
+ #{$_floated} {
314
+ top: rem(-8px);
266
315
  left: 16px;
267
316
  margin-left: -4px;
268
317
  padding: 0 4px;
269
- background-color: var(--md-sys-color-background);
318
+ background-color: var(--md-sys-color-surface);
319
+
320
+ &:dir(rtl) {
321
+ left: auto;
322
+ right: 16px;
323
+ margin-left: 0;
324
+ margin-right: -4px;
325
+ }
270
326
  }
271
327
 
272
328
  &:disabled,
@@ -281,6 +337,16 @@ $_not-label: ".supporting-text, .character-counter, .file-path, .caret, .prefix,
281
337
  box-shadow: none;
282
338
  }
283
339
  }
340
+
341
+ // A textarea's text starts at the top instead of centering, so pad its
342
+ // first line to the input's 28px midline: border + padding + half of 24px.
343
+ > textarea.expressive-textarea {
344
+ padding-block: calc(#{rem(16px)} - 1px);
345
+
346
+ &:focus {
347
+ padding-block: calc(#{rem(16px)} - 2px);
348
+ }
349
+ }
284
350
  }
285
351
  }
286
352
 
@@ -294,12 +360,14 @@ textarea {
294
360
  background-color: transparent;
295
361
 
296
362
  &.expressive-textarea {
297
- padding-top: 24px !important;
298
- padding-bottom: 8px !important;
299
- line-height: 24px;
363
+ // No !important: source order beats `.field textarea`, and the outlined
364
+ // and :focus rules outrank this one, as they must.
365
+ padding-top: rem(24px);
366
+ padding-bottom: rem(8px);
367
+ line-height: rem(24px);
300
368
  overflow-y: hidden;
301
369
  resize: none;
302
- min-height: 56px;
370
+ min-height: rem(56px);
303
371
  box-sizing: border-box;
304
372
  }
305
373
  }
@@ -317,6 +385,45 @@ textarea {
317
385
  margin: 5px 15px;
318
386
  }
319
387
  }
388
+
389
+ // Not an option: role="none" keeps Menu's hover layer off it. The text sits
390
+ // in the <li> itself, since Menu gives a bare span a pointer cursor.
391
+ > li.autocomplete-no-results {
392
+ display: flex;
393
+ align-items: center;
394
+ min-height: var(--md-comp-menu-item-container-height);
395
+ padding-inline: var(--md-comp-menu-item-leading-space)
396
+ var(--md-comp-menu-item-trailing-space);
397
+ color: var(--md-comp-menu-supporting-text-color);
398
+ cursor: default;
399
+ @include typescale("label-large");
400
+ }
401
+
402
+ // Menu lets a press on a disabled row fall through to the list, which takes
403
+ // focus from the field. The row takes the press so Autocomplete can cancel it.
404
+ > li[role="option"][aria-disabled="true"] {
405
+ pointer-events: auto;
406
+ cursor: default;
407
+ }
408
+
409
+ // FormSelect's listbox rule makes a group's wrapper flex, which would
410
+ // shrink the group to its widest row.
411
+ > li[role="none"] > ul[role="group"] {
412
+ flex: 1 1 auto;
413
+ }
414
+
415
+ // Menu's .label heading reaches direct rows only. The heading takes the
416
+ // press, as a disabled row does, so Autocomplete can cancel it.
417
+ > li > ul[role="group"] > li.autocomplete-group-label {
418
+ display: flex;
419
+ align-items: center;
420
+ min-height: rem(32px);
421
+ padding: 0 8px;
422
+ pointer-events: auto;
423
+ cursor: default;
424
+ color: var(--md-comp-menu-supporting-text-color);
425
+ @include typescale("label-large");
426
+ }
320
427
  }
321
428
 
322
429
  // Datepicker paints its formatted date over the native value with ::after.
@@ -328,17 +435,17 @@ textarea {
328
435
  // icons, which come before it. Raise them inside the field's own stacking
329
436
  // context, so they do not also rise over the docked search view or a
330
437
  // sticky header. A docked calendar in the field has to escape it.
331
- .field:has(> :is(.datepicker-date-input, .date-picker-date-input)) {
438
+ .field:has(> .datepicker-date-input) {
332
439
  &:not(:has(> .display-docked)) {
333
440
  isolation: isolate;
334
441
  }
335
442
 
336
- > :is(i, .prefix, .suffix) {
443
+ > :is(.prefix, .suffix) {
337
444
  z-index: 1;
338
445
  }
339
446
  }
340
447
 
341
- :is(.datepicker-date-input, .date-picker-date-input) {
448
+ .datepicker-date-input {
342
449
  position: relative;
343
450
  text-indent: -9999px;
344
451
 
@@ -351,11 +458,14 @@ textarea {
351
458
  text-indent: 0;
352
459
  }
353
460
 
354
- &:focus-visible {
461
+ // A focused date input edits its native fields, so show them. WebKit 27
462
+ // stopped matching :focus-visible on a date input, even after Tab, and
463
+ // Chromium already matches it on every focus, mouse included.
464
+ &:focus {
355
465
  text-indent: 0;
356
466
  }
357
467
 
358
- &:focus-visible:after {
468
+ &:focus:after {
359
469
  text-indent: -9999px;
360
470
  }
361
471
  }
@@ -397,8 +507,8 @@ textarea {
397
507
  // above, which would otherwise win on width, height and letter-spacing.
398
508
  input.otp:not(.browser-default) {
399
509
  --md-comp-otp-length: 6;
400
- --md-comp-otp-cell-width: 48px;
401
- --md-comp-otp-cell-height: 56px;
510
+ --md-comp-otp-cell-width: #{rem(48px)};
511
+ --md-comp-otp-cell-height: #{rem(56px)};
402
512
  --md-comp-otp-gap: 8px;
403
513
  --md-comp-otp-cell-color: var(--md-sys-color-surface-container-highest);
404
514
  --md-comp-otp-indicator-color: var(--md-sys-color-on-surface-variant);
@@ -425,7 +535,7 @@ input.otp:not(.browser-default) {
425
535
  // Digits read left to right in every script.
426
536
  direction: ltr;
427
537
  font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, "Liberation Mono", monospace;
428
- font-size: 24px;
538
+ font-size: rem(24px);
429
539
  font-variant-numeric: tabular-nums;
430
540
  letter-spacing: calc(var(--md-comp-otp-pitch) - 1ch);
431
541
  color: var(--md-sys-color-on-surface);
@@ -474,11 +584,82 @@ input.otp:not(.browser-default) {
474
584
  opacity: 0.38;
475
585
  }
476
586
 
587
+ // Forced colors drop gradients, which are the cells and the focus ring, so
588
+ // the code keeps them in system colors: a CanvasText line under each cell,
589
+ // Highlight while focused and GrayText when disabled.
477
590
  @media (forced-colors: active) {
591
+ --md-comp-otp-cell-color: Canvas;
478
592
  --md-comp-otp-indicator-color: CanvasText;
479
593
 
594
+ forced-color-adjust: none;
595
+ color: CanvasText;
596
+ caret-color: CanvasText;
597
+ background-color: Canvas;
598
+
599
+ &::placeholder {
600
+ color: GrayText;
601
+ }
602
+
480
603
  &:focus {
481
604
  --md-comp-otp-indicator-color: Highlight;
482
605
  }
606
+
607
+ &:disabled {
608
+ --md-comp-otp-indicator-color: GrayText;
609
+
610
+ color: GrayText;
611
+ opacity: 1;
612
+ }
613
+ }
614
+ }
615
+
616
+ // Color input. The native picker stays; the control is drawn as a 40px round
617
+ // swatch of the chosen color with an outline, a 48px target and the shared
618
+ // focus ring. Each engine's swatch is a private pseudo-element in its own rule.
619
+ input[type="color"] {
620
+ --md-comp-color-input-size: #{rem(40px)};
621
+ --md-comp-color-input-outline-color: var(--md-sys-color-outline);
622
+
623
+ box-sizing: content-box;
624
+ inline-size: var(--md-comp-color-input-size);
625
+ block-size: var(--md-comp-color-input-size);
626
+ margin: 0;
627
+ padding: 4px;
628
+ border: 0;
629
+ border-radius: 50%;
630
+ background: transparent;
631
+ cursor: pointer;
632
+ vertical-align: middle;
633
+ appearance: none;
634
+ @include focus-visible;
635
+
636
+ &::-webkit-color-swatch-wrapper {
637
+ padding: 0;
638
+ }
639
+
640
+ &::-webkit-color-swatch {
641
+ border: 1px solid var(--md-comp-color-input-outline-color);
642
+ border-radius: 50%;
643
+ }
644
+
645
+ &::-moz-color-swatch {
646
+ border: 1px solid var(--md-comp-color-input-outline-color);
647
+ border-radius: 50%;
648
+ }
649
+
650
+ &:disabled {
651
+ cursor: default;
652
+ opacity: 0.38;
653
+ }
654
+ }
655
+
656
+ // CharacterCounter appends the counter to the input's parent, which need not
657
+ // be a .field, so this is not nested. Physical and swapped by :dir() like the
658
+ // field's icons, so a page that sets only CSS `direction` keeps it on the right.
659
+ .character-counter {
660
+ float: right;
661
+
662
+ &:dir(rtl) {
663
+ float: left;
483
664
  }
484
665
  }