@expressivecss/expressive 0.14.1 → 0.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (603) hide show
  1. package/CHANGELOG.md +1589 -1
  2. package/README.md +9 -8
  3. package/dist/css/expressive.css +19304 -12021
  4. package/dist/css/expressive.css.map +1 -1
  5. package/dist/css/expressive.min.css +1 -1
  6. package/dist/css/expressive.min.css.map +1 -1
  7. package/dist/fonts/LICENSE-noto-sans-arabic +93 -0
  8. package/dist/fonts/LICENSE-noto-sans-hebrew +93 -0
  9. package/dist/fonts/LICENSE-noto-sans-thai +93 -0
  10. package/dist/fonts/material-symbols-outlined.woff2 +0 -0
  11. package/dist/fonts/material-symbols-rounded.woff2 +0 -0
  12. package/dist/fonts/material-symbols-sharp.woff2 +0 -0
  13. package/dist/fonts/noto-sans-arabic-arabic-400.woff2 +0 -0
  14. package/dist/fonts/noto-sans-arabic-arabic-500.woff2 +0 -0
  15. package/dist/fonts/noto-sans-arabic-arabic-700.woff2 +0 -0
  16. package/dist/fonts/noto-sans-cyrillic-400.woff2 +0 -0
  17. package/dist/fonts/noto-sans-cyrillic-500.woff2 +0 -0
  18. package/dist/fonts/noto-sans-cyrillic-700.woff2 +0 -0
  19. package/dist/fonts/noto-sans-cyrillic-ext-400.woff2 +0 -0
  20. package/dist/fonts/noto-sans-cyrillic-ext-500.woff2 +0 -0
  21. package/dist/fonts/noto-sans-cyrillic-ext-700.woff2 +0 -0
  22. package/dist/fonts/noto-sans-devanagari-400.woff2 +0 -0
  23. package/dist/fonts/noto-sans-devanagari-500.woff2 +0 -0
  24. package/dist/fonts/noto-sans-devanagari-700.woff2 +0 -0
  25. package/dist/fonts/noto-sans-greek-400.woff2 +0 -0
  26. package/dist/fonts/noto-sans-greek-500.woff2 +0 -0
  27. package/dist/fonts/noto-sans-greek-700.woff2 +0 -0
  28. package/dist/fonts/noto-sans-greek-ext-400.woff2 +0 -0
  29. package/dist/fonts/noto-sans-greek-ext-500.woff2 +0 -0
  30. package/dist/fonts/noto-sans-greek-ext-700.woff2 +0 -0
  31. package/dist/fonts/noto-sans-hebrew-hebrew-400.woff2 +0 -0
  32. package/dist/fonts/noto-sans-hebrew-hebrew-500.woff2 +0 -0
  33. package/dist/fonts/noto-sans-hebrew-hebrew-700.woff2 +0 -0
  34. package/dist/fonts/noto-sans-latin-700.woff2 +0 -0
  35. package/dist/fonts/noto-sans-latin-ext-400.woff2 +0 -0
  36. package/dist/fonts/noto-sans-latin-ext-500.woff2 +0 -0
  37. package/dist/fonts/noto-sans-latin-ext-700.woff2 +0 -0
  38. package/dist/fonts/noto-sans-thai-thai-400.woff2 +0 -0
  39. package/dist/fonts/noto-sans-thai-thai-500.woff2 +0 -0
  40. package/dist/fonts/noto-sans-thai-thai-700.woff2 +0 -0
  41. package/dist/fonts/noto-sans-vietnamese-400.woff2 +0 -0
  42. package/dist/fonts/noto-sans-vietnamese-500.woff2 +0 -0
  43. package/dist/fonts/noto-sans-vietnamese-700.woff2 +0 -0
  44. package/dist/fonts/roboto-cyrillic-400.woff2 +0 -0
  45. package/dist/fonts/roboto-cyrillic-500.woff2 +0 -0
  46. package/dist/fonts/roboto-cyrillic-700.woff2 +0 -0
  47. package/dist/fonts/roboto-cyrillic-ext-400.woff2 +0 -0
  48. package/dist/fonts/roboto-cyrillic-ext-500.woff2 +0 -0
  49. package/dist/fonts/roboto-cyrillic-ext-700.woff2 +0 -0
  50. package/dist/fonts/roboto-greek-400.woff2 +0 -0
  51. package/dist/fonts/roboto-greek-500.woff2 +0 -0
  52. package/dist/fonts/roboto-greek-700.woff2 +0 -0
  53. package/dist/fonts/roboto-greek-ext-400.woff2 +0 -0
  54. package/dist/fonts/roboto-greek-ext-500.woff2 +0 -0
  55. package/dist/fonts/roboto-greek-ext-700.woff2 +0 -0
  56. package/dist/fonts/roboto-latin-700.woff2 +0 -0
  57. package/dist/fonts/roboto-latin-ext-400.woff2 +0 -0
  58. package/dist/fonts/roboto-latin-ext-500.woff2 +0 -0
  59. package/dist/fonts/roboto-latin-ext-700.woff2 +0 -0
  60. package/dist/fonts/roboto-vietnamese-400.woff2 +0 -0
  61. package/dist/fonts/roboto-vietnamese-500.woff2 +0 -0
  62. package/dist/fonts/roboto-vietnamese-700.woff2 +0 -0
  63. package/dist/js/chunks/chunk-2CS6TITK.mjs +219 -0
  64. package/dist/js/chunks/chunk-2CS6TITK.mjs.map +7 -0
  65. package/dist/js/chunks/chunk-2RLBDFH4.mjs +108 -0
  66. package/dist/js/chunks/chunk-2RLBDFH4.mjs.map +7 -0
  67. package/dist/js/chunks/chunk-3L3QIYLC.mjs +85 -0
  68. package/dist/js/chunks/chunk-3L3QIYLC.mjs.map +7 -0
  69. package/dist/js/chunks/chunk-4EWGD4V2.mjs +75 -0
  70. package/dist/js/chunks/chunk-4EWGD4V2.mjs.map +7 -0
  71. package/dist/js/chunks/chunk-4IKVPCSU.mjs +7 -0
  72. package/dist/js/chunks/chunk-4IKVPCSU.mjs.map +7 -0
  73. package/dist/js/chunks/chunk-4PIXLDNJ.mjs +127 -0
  74. package/dist/js/chunks/chunk-4PIXLDNJ.mjs.map +7 -0
  75. package/dist/js/chunks/{chunk-A7ALMYUR.mjs → chunk-4QUCNFSD.mjs} +68 -125
  76. package/dist/js/chunks/chunk-4QUCNFSD.mjs.map +7 -0
  77. package/dist/js/chunks/{chunk-4TKTLGEM.mjs → chunk-4TRZ2AER.mjs} +35 -41
  78. package/dist/js/chunks/chunk-4TRZ2AER.mjs.map +7 -0
  79. package/dist/js/chunks/{chunk-BG6ZRB5H.mjs → chunk-5KIHWJI2.mjs} +40 -26
  80. package/dist/js/chunks/chunk-5KIHWJI2.mjs.map +7 -0
  81. package/dist/js/chunks/{chunk-YDCS5S3J.mjs → chunk-67ZPPKXS.mjs} +20 -33
  82. package/dist/js/chunks/chunk-67ZPPKXS.mjs.map +7 -0
  83. package/dist/js/chunks/{chunk-3DHK5CZU.mjs → chunk-6FSEUFVW.mjs} +40 -29
  84. package/dist/js/chunks/chunk-6FSEUFVW.mjs.map +7 -0
  85. package/dist/js/chunks/chunk-752ADW4M.mjs +225 -0
  86. package/dist/js/chunks/chunk-752ADW4M.mjs.map +7 -0
  87. package/dist/js/chunks/{chunk-GVGT6MIU.mjs → chunk-75E5EDJF.mjs} +3 -11
  88. package/dist/js/chunks/chunk-75E5EDJF.mjs.map +7 -0
  89. package/dist/js/chunks/{chunk-TBM3FT7G.mjs → chunk-7NLUI3RR.mjs} +148 -78
  90. package/dist/js/chunks/chunk-7NLUI3RR.mjs.map +7 -0
  91. package/dist/js/chunks/chunk-7W7TV6NY.mjs +108 -0
  92. package/dist/js/chunks/chunk-7W7TV6NY.mjs.map +7 -0
  93. package/dist/js/chunks/chunk-7YQBHTK3.mjs +225 -0
  94. package/dist/js/chunks/chunk-7YQBHTK3.mjs.map +7 -0
  95. package/dist/js/chunks/chunk-7YZ5CN3V.mjs +33 -0
  96. package/dist/js/chunks/chunk-7YZ5CN3V.mjs.map +7 -0
  97. package/dist/js/chunks/chunk-AI73GJKG.mjs +28 -0
  98. package/dist/js/chunks/chunk-AI73GJKG.mjs.map +7 -0
  99. package/dist/js/chunks/{chunk-NS2UMNZV.mjs → chunk-ANKFWNWT.mjs} +21 -45
  100. package/dist/js/chunks/chunk-ANKFWNWT.mjs.map +7 -0
  101. package/dist/js/chunks/{chunk-GIW4K4SE.mjs → chunk-B7DQFHA5.mjs} +37 -53
  102. package/dist/js/chunks/chunk-B7DQFHA5.mjs.map +7 -0
  103. package/dist/js/chunks/chunk-BIGU5RCJ.mjs +153 -0
  104. package/dist/js/chunks/chunk-BIGU5RCJ.mjs.map +7 -0
  105. package/dist/js/chunks/{chunk-GUB3TNO2.mjs → chunk-BPF3I2MN.mjs} +109 -27
  106. package/dist/js/chunks/chunk-BPF3I2MN.mjs.map +7 -0
  107. package/dist/js/chunks/chunk-CMGXGYUC.mjs +74 -0
  108. package/dist/js/chunks/chunk-CMGXGYUC.mjs.map +7 -0
  109. package/dist/js/chunks/{chunk-JIDMQGK6.mjs → chunk-CSYWKEK3.mjs} +322 -223
  110. package/dist/js/chunks/chunk-CSYWKEK3.mjs.map +7 -0
  111. package/dist/js/chunks/chunk-CZSQHXEV.mjs +227 -0
  112. package/dist/js/chunks/chunk-CZSQHXEV.mjs.map +7 -0
  113. package/dist/js/chunks/chunk-DZYVU75J.mjs +121 -0
  114. package/dist/js/chunks/chunk-DZYVU75J.mjs.map +7 -0
  115. package/dist/js/chunks/{chunk-QDAL4IYN.mjs → chunk-EC26RU2D.mjs} +11 -29
  116. package/dist/js/chunks/chunk-EC26RU2D.mjs.map +7 -0
  117. package/dist/js/chunks/{chunk-3GVFZ4XO.mjs → chunk-EVCVFEV3.mjs} +238 -152
  118. package/dist/js/chunks/chunk-EVCVFEV3.mjs.map +7 -0
  119. package/dist/js/chunks/chunk-FCNF4GRJ.mjs +445 -0
  120. package/dist/js/chunks/chunk-FCNF4GRJ.mjs.map +7 -0
  121. package/dist/js/chunks/chunk-GCWWEZKO.mjs +342 -0
  122. package/dist/js/chunks/chunk-GCWWEZKO.mjs.map +7 -0
  123. package/dist/js/chunks/chunk-GNRSYMVH.mjs +1 -0
  124. package/dist/js/chunks/chunk-GVZQH2H5.mjs +54 -0
  125. package/dist/js/chunks/chunk-GVZQH2H5.mjs.map +7 -0
  126. package/dist/js/chunks/chunk-GWZ76SR4.mjs +435 -0
  127. package/dist/js/chunks/chunk-GWZ76SR4.mjs.map +7 -0
  128. package/dist/js/chunks/{chunk-ZAS25YFD.mjs → chunk-ILDRRG7T.mjs} +21 -23
  129. package/dist/js/chunks/chunk-ILDRRG7T.mjs.map +7 -0
  130. package/dist/js/chunks/chunk-INLZWHLY.mjs +80 -0
  131. package/dist/js/chunks/chunk-INLZWHLY.mjs.map +7 -0
  132. package/dist/js/chunks/chunk-JUKBBN6P.mjs +175 -0
  133. package/dist/js/chunks/chunk-JUKBBN6P.mjs.map +7 -0
  134. package/dist/js/chunks/chunk-KYIEG4U3.mjs +730 -0
  135. package/dist/js/chunks/chunk-KYIEG4U3.mjs.map +7 -0
  136. package/dist/js/chunks/{chunk-KHV6DZXX.mjs → chunk-KZPSAXIU.mjs} +156 -46
  137. package/dist/js/chunks/chunk-KZPSAXIU.mjs.map +7 -0
  138. package/dist/js/chunks/chunk-LDXCC2L3.mjs +438 -0
  139. package/dist/js/chunks/chunk-LDXCC2L3.mjs.map +7 -0
  140. package/dist/js/chunks/chunk-NAC72P7R.mjs +137 -0
  141. package/dist/js/chunks/chunk-NAC72P7R.mjs.map +7 -0
  142. package/dist/js/chunks/chunk-NBJAUGPP.mjs +244 -0
  143. package/dist/js/chunks/chunk-NBJAUGPP.mjs.map +7 -0
  144. package/dist/js/chunks/chunk-NNHVANQA.mjs +113 -0
  145. package/dist/js/chunks/chunk-NNHVANQA.mjs.map +7 -0
  146. package/dist/js/chunks/chunk-NVQ5EHCU.mjs +376 -0
  147. package/dist/js/chunks/chunk-NVQ5EHCU.mjs.map +7 -0
  148. package/dist/js/chunks/{chunk-Z2NRKI7R.mjs → chunk-OP43LLIC.mjs} +44 -73
  149. package/dist/js/chunks/chunk-OP43LLIC.mjs.map +7 -0
  150. package/dist/js/chunks/chunk-OUCHKSAW.mjs +63 -0
  151. package/dist/js/chunks/chunk-OUCHKSAW.mjs.map +7 -0
  152. package/dist/js/chunks/{chunk-PM655FXL.mjs → chunk-OYNUDOHR.mjs} +20 -48
  153. package/dist/js/chunks/chunk-OYNUDOHR.mjs.map +7 -0
  154. package/dist/js/chunks/{chunk-UEZUJQ66.mjs → chunk-P6DRQ6KS.mjs} +36 -31
  155. package/dist/js/chunks/chunk-P6DRQ6KS.mjs.map +7 -0
  156. package/dist/js/chunks/chunk-PA7NU5AK.mjs +99 -0
  157. package/dist/js/chunks/chunk-PA7NU5AK.mjs.map +7 -0
  158. package/dist/js/chunks/chunk-QACZ6TUP.mjs +224 -0
  159. package/dist/js/chunks/chunk-QACZ6TUP.mjs.map +7 -0
  160. package/dist/js/chunks/{chunk-5HQSGDZ5.mjs → chunk-QXKWVHBD.mjs} +286 -203
  161. package/dist/js/chunks/chunk-QXKWVHBD.mjs.map +7 -0
  162. package/dist/js/chunks/{chunk-DAIU5SLG.mjs → chunk-ROH2HDB4.mjs} +7 -6
  163. package/dist/js/chunks/chunk-ROH2HDB4.mjs.map +7 -0
  164. package/dist/js/chunks/chunk-S23RJ3XY.mjs +86 -0
  165. package/dist/js/chunks/chunk-S23RJ3XY.mjs.map +7 -0
  166. package/dist/js/chunks/{chunk-FS7XY3HT.mjs → chunk-SPPHF7YZ.mjs} +36 -29
  167. package/dist/js/chunks/chunk-SPPHF7YZ.mjs.map +7 -0
  168. package/dist/js/chunks/chunk-T3BNSRP3.mjs +152 -0
  169. package/dist/js/chunks/chunk-T3BNSRP3.mjs.map +7 -0
  170. package/dist/js/chunks/chunk-TFABTUAZ.mjs +108 -0
  171. package/dist/js/chunks/chunk-TFABTUAZ.mjs.map +7 -0
  172. package/dist/js/chunks/chunk-U4B3VHFS.mjs +507 -0
  173. package/dist/js/chunks/chunk-U4B3VHFS.mjs.map +7 -0
  174. package/dist/js/chunks/chunk-UGJHCHXG.mjs +341 -0
  175. package/dist/js/chunks/chunk-UGJHCHXG.mjs.map +7 -0
  176. package/dist/js/chunks/chunk-VFV75DHF.mjs +70 -0
  177. package/dist/js/chunks/chunk-VFV75DHF.mjs.map +7 -0
  178. package/dist/js/chunks/{chunk-4HZMB7LI.mjs → chunk-VGY4M57S.mjs} +281 -135
  179. package/dist/js/chunks/chunk-VGY4M57S.mjs.map +7 -0
  180. package/dist/js/chunks/chunk-VH4BMAZS.mjs +167 -0
  181. package/dist/js/chunks/chunk-VH4BMAZS.mjs.map +7 -0
  182. package/dist/js/chunks/chunk-VJVQIXHC.mjs +123 -0
  183. package/dist/js/chunks/chunk-VJVQIXHC.mjs.map +7 -0
  184. package/dist/js/chunks/{chunk-S3XDFGSZ.mjs → chunk-VMY55K2X.mjs} +92 -141
  185. package/dist/js/chunks/chunk-VMY55K2X.mjs.map +7 -0
  186. package/dist/js/chunks/{chunk-UEXCIMJZ.mjs → chunk-VR3L2WN5.mjs} +11 -17
  187. package/dist/js/chunks/chunk-VR3L2WN5.mjs.map +7 -0
  188. package/dist/js/chunks/chunk-W6FAL3TI.mjs +38 -0
  189. package/dist/js/chunks/chunk-W6FAL3TI.mjs.map +7 -0
  190. package/dist/js/chunks/chunk-WU7XJ4RR.mjs +450 -0
  191. package/dist/js/chunks/chunk-WU7XJ4RR.mjs.map +7 -0
  192. package/dist/js/chunks/chunk-X7SDA2J5.mjs +116 -0
  193. package/dist/js/chunks/chunk-X7SDA2J5.mjs.map +7 -0
  194. package/dist/js/chunks/chunk-Y6H2X7ZC.mjs +209 -0
  195. package/dist/js/chunks/chunk-Y6H2X7ZC.mjs.map +7 -0
  196. package/dist/js/chunks/chunk-Y6TLRA3U.mjs +129 -0
  197. package/dist/js/chunks/chunk-Y6TLRA3U.mjs.map +7 -0
  198. package/dist/js/chunks/chunk-Z4GICXR2.mjs +190 -0
  199. package/dist/js/chunks/chunk-Z4GICXR2.mjs.map +7 -0
  200. package/dist/js/chunks/chunk-Z4OARDZ7.mjs +442 -0
  201. package/dist/js/chunks/chunk-Z4OARDZ7.mjs.map +7 -0
  202. package/dist/js/chunks/{chunk-MZ6Z24BX.mjs → chunk-ZJNLAGY5.mjs} +19 -34
  203. package/dist/js/chunks/chunk-ZJNLAGY5.mjs.map +7 -0
  204. package/dist/js/chunks/chunk-ZKWUWBUB.mjs +81 -0
  205. package/dist/js/chunks/chunk-ZKWUWBUB.mjs.map +7 -0
  206. package/dist/js/chunks/chunk-ZM3XBHWV.mjs +746 -0
  207. package/dist/js/chunks/chunk-ZM3XBHWV.mjs.map +7 -0
  208. package/dist/js/chunks/chunk-ZO6ZLHFF.mjs +48 -0
  209. package/dist/js/chunks/chunk-ZO6ZLHFF.mjs.map +7 -0
  210. package/dist/js/chunks/chunk-ZVLOUDIJ.mjs +251 -0
  211. package/dist/js/chunks/chunk-ZVLOUDIJ.mjs.map +7 -0
  212. package/dist/js/expressive.cjs +10333 -4070
  213. package/dist/js/expressive.cjs.map +4 -4
  214. package/dist/js/expressive.js +10333 -4070
  215. package/dist/js/expressive.js.map +4 -4
  216. package/dist/js/expressive.min.js +23 -25
  217. package/dist/js/expressive.min.js.map +4 -4
  218. package/dist/js/expressive.mjs +184 -69
  219. package/dist/js/expressive.mjs.map +2 -2
  220. package/dist/js/internal/behaviors/bottomSheets.mjs +4 -3
  221. package/dist/js/internal/behaviors/copy.mjs +9 -0
  222. package/dist/js/internal/behaviors/copy.mjs.map +7 -0
  223. package/dist/js/internal/behaviors/dataTables.mjs +10 -0
  224. package/dist/js/internal/behaviors/dataTables.mjs.map +7 -0
  225. package/dist/js/internal/behaviors/dialogs.mjs +2 -2
  226. package/dist/js/internal/behaviors/forms.mjs +2 -2
  227. package/dist/js/internal/behaviors/imageCompare.mjs +8 -0
  228. package/dist/js/internal/behaviors/imageCompare.mjs.map +7 -0
  229. package/dist/js/internal/behaviors/lists.mjs +8 -0
  230. package/dist/js/internal/behaviors/lists.mjs.map +7 -0
  231. package/dist/js/internal/behaviors/paneResize.mjs +8 -0
  232. package/dist/js/internal/behaviors/paneResize.mjs.map +7 -0
  233. package/dist/js/internal/behaviors/sheetDrag.mjs +7 -2
  234. package/dist/js/internal/behaviors/sideSheets.mjs +4 -3
  235. package/dist/js/internal/behaviors/sortable.mjs +8 -0
  236. package/dist/js/internal/behaviors/sortable.mjs.map +7 -0
  237. package/dist/js/internal/behaviors/theme.mjs +8 -0
  238. package/dist/js/internal/behaviors/theme.mjs.map +7 -0
  239. package/dist/js/internal/behaviors/tour.mjs +8 -0
  240. package/dist/js/internal/behaviors/tour.mjs.map +7 -0
  241. package/dist/js/internal/behaviors/transferList.mjs +8 -0
  242. package/dist/js/internal/behaviors/transferList.mjs.map +7 -0
  243. package/dist/js/internal/components/appBar.mjs +3 -2
  244. package/dist/js/internal/components/autocomplete.mjs +4 -4
  245. package/dist/js/internal/components/backToTop.mjs +9 -0
  246. package/dist/js/internal/components/backToTop.mjs.map +7 -0
  247. package/dist/js/internal/components/barChart.mjs +5 -4
  248. package/dist/js/internal/components/buttonGroup.mjs +3 -2
  249. package/dist/js/internal/components/buttons.mjs +3 -3
  250. package/dist/js/internal/components/cards.mjs +3 -3
  251. package/dist/js/internal/components/carousel.mjs +3 -3
  252. package/dist/js/internal/components/cascader.mjs +10 -0
  253. package/dist/js/internal/components/cascader.mjs.map +7 -0
  254. package/dist/js/internal/components/characterCounter.mjs +3 -2
  255. package/dist/js/internal/components/chips.mjs +6 -5
  256. package/dist/js/internal/components/colorPicker.mjs +9 -0
  257. package/dist/js/internal/components/colorPicker.mjs.map +7 -0
  258. package/dist/js/internal/components/columnChart.mjs +4 -3
  259. package/dist/js/internal/components/commandPalette.mjs +3 -3
  260. package/dist/js/internal/components/confetti.mjs +3 -2
  261. package/dist/js/internal/components/currencyInput.mjs +9 -0
  262. package/dist/js/internal/components/currencyInput.mjs.map +7 -0
  263. package/dist/js/internal/components/datepicker.mjs +11 -8
  264. package/dist/js/internal/components/expandingCard.mjs +3 -3
  265. package/dist/js/internal/components/funnelChart.mjs +10 -0
  266. package/dist/js/internal/components/funnelChart.mjs.map +7 -0
  267. package/dist/js/internal/components/heatmapChart.mjs +4 -3
  268. package/dist/js/internal/components/hoverCard.mjs +9 -0
  269. package/dist/js/internal/components/hoverCard.mjs.map +7 -0
  270. package/dist/js/internal/components/index.mjs +133 -64
  271. package/dist/js/internal/components/inputMask.mjs +9 -0
  272. package/dist/js/internal/components/inputMask.mjs.map +7 -0
  273. package/dist/js/internal/components/keypad.mjs +9 -0
  274. package/dist/js/internal/components/keypad.mjs.map +7 -0
  275. package/dist/js/internal/components/lightbox.mjs +3 -3
  276. package/dist/js/internal/components/lineChart.mjs +29 -4
  277. package/dist/js/internal/components/loadingOverlay.mjs +9 -0
  278. package/dist/js/internal/components/loadingOverlay.mjs.map +7 -0
  279. package/dist/js/internal/components/mapView.mjs +3 -3
  280. package/dist/js/internal/components/menu.mjs +3 -3
  281. package/dist/js/internal/components/menubar.mjs +10 -0
  282. package/dist/js/internal/components/menubar.mjs.map +7 -0
  283. package/dist/js/internal/components/messageScroller.mjs +3 -3
  284. package/dist/js/internal/components/mixedChart.mjs +5 -4
  285. package/dist/js/internal/components/navigationRail.mjs +3 -2
  286. package/dist/js/internal/components/particles.mjs +3 -2
  287. package/dist/js/internal/components/pieChart.mjs +4 -3
  288. package/dist/js/internal/components/pullToRefresh.mjs +9 -0
  289. package/dist/js/internal/components/pullToRefresh.mjs.map +7 -0
  290. package/dist/js/internal/components/questionnaire.mjs +3 -3
  291. package/dist/js/internal/components/radarChart.mjs +4 -3
  292. package/dist/js/internal/components/radialChart.mjs +4 -3
  293. package/dist/js/internal/components/registry.mjs +59 -40
  294. package/dist/js/internal/components/richTextEditor.mjs +3 -3
  295. package/dist/js/internal/components/sankeyChart.mjs +10 -0
  296. package/dist/js/internal/components/sankeyChart.mjs.map +7 -0
  297. package/dist/js/internal/components/scatterChart.mjs +10 -0
  298. package/dist/js/internal/components/scatterChart.mjs.map +7 -0
  299. package/dist/js/internal/components/scrollspy.mjs +3 -2
  300. package/dist/js/internal/components/select.mjs +4 -4
  301. package/dist/js/internal/components/showMore.mjs +9 -0
  302. package/dist/js/internal/components/showMore.mjs.map +7 -0
  303. package/dist/js/internal/components/slider.mjs +3 -3
  304. package/dist/js/internal/components/snackbar.mjs +2 -2
  305. package/dist/js/internal/components/swipeActions.mjs +9 -0
  306. package/dist/js/internal/components/swipeActions.mjs.map +7 -0
  307. package/dist/js/internal/components/tabs.mjs +3 -4
  308. package/dist/js/internal/components/timepicker.mjs +5 -4
  309. package/dist/js/internal/components/tooltip.mjs +3 -3
  310. package/dist/js/internal/components/treeSelect.mjs +13 -0
  311. package/dist/js/internal/components/treeSelect.mjs.map +7 -0
  312. package/dist/js/internal/components/treemapChart.mjs +10 -0
  313. package/dist/js/internal/components/treemapChart.mjs.map +7 -0
  314. package/dist/js/internal/core/component.mjs +2 -1
  315. package/dist/js/internal/core/formControl.mjs +12 -0
  316. package/dist/js/internal/core/formControl.mjs.map +7 -0
  317. package/dist/js/internal/core/spring.mjs +11 -0
  318. package/dist/js/internal/core/spring.mjs.map +7 -0
  319. package/dist/js/internal/core/utils.mjs +11 -3
  320. package/dist/js/internal/plugins/dockedDisplayPlugin.mjs +2 -2
  321. package/dist/js/internal/plugins/modalDisplayPlugin.mjs +13 -0
  322. package/dist/js/internal/plugins/modalDisplayPlugin.mjs.map +7 -0
  323. package/dist/js/modular.mjs +175 -69
  324. package/dist/types/behaviors/bottomSheets.d.ts +19 -3
  325. package/dist/types/behaviors/copy.d.ts +18 -0
  326. package/dist/types/behaviors/dataTables.d.ts +129 -0
  327. package/dist/types/behaviors/dialogs.d.ts +27 -1
  328. package/dist/types/behaviors/forms.d.ts +68 -2
  329. package/dist/types/behaviors/imageCompare.d.ts +12 -0
  330. package/dist/types/behaviors/lists.d.ts +12 -0
  331. package/dist/types/behaviors/paneResize.d.ts +29 -0
  332. package/dist/types/behaviors/sheetDrag.d.ts +18 -0
  333. package/dist/types/behaviors/sideSheets.d.ts +1 -1
  334. package/dist/types/behaviors/sortable.d.ts +28 -0
  335. package/dist/types/behaviors/theme.d.ts +22 -0
  336. package/dist/types/behaviors/tour.d.ts +36 -0
  337. package/dist/types/behaviors/transferList.d.ts +51 -0
  338. package/dist/types/components/appBar.d.ts +5 -6
  339. package/dist/types/components/autocomplete.d.ts +92 -17
  340. package/dist/types/components/backToTop.d.ts +36 -0
  341. package/dist/types/components/barChart.d.ts +3 -6
  342. package/dist/types/components/buttonGroup.d.ts +2 -4
  343. package/dist/types/components/buttons.d.ts +5 -5
  344. package/dist/types/components/cards.d.ts +3 -16
  345. package/dist/types/components/carousel.d.ts +9 -15
  346. package/dist/types/components/cascader.d.ts +130 -0
  347. package/dist/types/components/characterCounter.d.ts +2 -15
  348. package/dist/types/components/chips.d.ts +65 -19
  349. package/dist/types/components/colorPicker.d.ts +42 -0
  350. package/dist/types/components/columnChart.d.ts +23 -10
  351. package/dist/types/components/commandPalette.d.ts +11 -16
  352. package/dist/types/components/confetti.d.ts +2 -4
  353. package/dist/types/components/currencyInput.d.ts +59 -0
  354. package/dist/types/components/datepicker.d.ts +59 -36
  355. package/dist/types/components/expandingCard.d.ts +6 -6
  356. package/dist/types/components/funnelChart.d.ts +38 -0
  357. package/dist/types/components/heatmapChart.d.ts +39 -8
  358. package/dist/types/components/hoverCard.d.ts +58 -0
  359. package/dist/types/components/index.d.ts +17 -1
  360. package/dist/types/components/inputMask.d.ts +30 -0
  361. package/dist/types/components/keypad.d.ts +66 -0
  362. package/dist/types/components/lightbox.d.ts +17 -25
  363. package/dist/types/components/lineChart.d.ts +176 -10
  364. package/dist/types/components/loadingOverlay.d.ts +42 -0
  365. package/dist/types/components/mapView.d.ts +26 -17
  366. package/dist/types/components/menu.d.ts +61 -22
  367. package/dist/types/components/menubar.d.ts +37 -0
  368. package/dist/types/components/messageScroller.d.ts +2 -14
  369. package/dist/types/components/mixedChart.d.ts +15 -6
  370. package/dist/types/components/navigationRail.d.ts +16 -5
  371. package/dist/types/components/particles.d.ts +8 -4
  372. package/dist/types/components/pieChart.d.ts +32 -7
  373. package/dist/types/components/pullToRefresh.d.ts +80 -0
  374. package/dist/types/components/questionnaire.d.ts +58 -16
  375. package/dist/types/components/radarChart.d.ts +10 -6
  376. package/dist/types/components/radialChart.d.ts +58 -8
  377. package/dist/types/components/registry.d.ts +77 -3
  378. package/dist/types/components/richTextEditor.d.ts +6 -14
  379. package/dist/types/components/sankeyChart.d.ts +72 -0
  380. package/dist/types/components/scatterChart.d.ts +102 -0
  381. package/dist/types/components/scrollspy.d.ts +3 -5
  382. package/dist/types/components/select.d.ts +43 -30
  383. package/dist/types/components/showMore.d.ts +51 -0
  384. package/dist/types/components/slider.d.ts +5 -15
  385. package/dist/types/components/snackbar.d.ts +62 -0
  386. package/dist/types/components/swipeActions.d.ts +81 -0
  387. package/dist/types/components/tabs.d.ts +93 -27
  388. package/dist/types/components/timepicker.d.ts +114 -20
  389. package/dist/types/components/tooltip.d.ts +56 -20
  390. package/dist/types/components/treeSelect.d.ts +106 -0
  391. package/dist/types/components/treemapChart.d.ts +56 -0
  392. package/dist/types/core/component.d.ts +43 -25
  393. package/dist/types/core/formControl.d.ts +21 -0
  394. package/dist/types/core/spring.d.ts +20 -0
  395. package/dist/types/core/utils.d.ts +85 -72
  396. package/dist/types/modular.d.ts +33 -1
  397. package/dist/types/plugins/dockedDisplayPlugin.d.ts +10 -7
  398. package/dist/types/plugins/modalDisplayPlugin.d.ts +32 -0
  399. package/package.json +10 -8
  400. package/src/sass/README.md +27 -18
  401. package/src/sass/abstracts/_breakpoints.scss +0 -1
  402. package/src/sass/abstracts/_elevation.scss +13 -7
  403. package/src/sass/abstracts/_index.scss +1 -0
  404. package/src/sass/abstracts/_mixins.scss +438 -92
  405. package/src/sass/abstracts/_spring.scss +63 -0
  406. package/src/sass/abstracts/_variables.scss +43 -15
  407. package/src/sass/base/_fonts.scss +61 -48
  408. package/src/sass/base/_global.scss +105 -34
  409. package/src/sass/base/_index.scss +3 -1
  410. package/src/sass/base/_normalize.scss +59 -114
  411. package/src/sass/base/_print.scss +21 -0
  412. package/src/sass/base/_prose.scss +68 -0
  413. package/src/sass/base/_typography.scss +9 -5
  414. package/src/sass/components/_accordion.scss +9 -16
  415. package/src/sass/components/_alert.scss +102 -0
  416. package/src/sass/components/_aura.scss +8 -3
  417. package/src/sass/components/_avatar.scss +3 -3
  418. package/src/sass/components/_back-to-top.scss +38 -0
  419. package/src/sass/components/_badges.scss +7 -13
  420. package/src/sass/components/_bar-chart.scss +41 -19
  421. package/src/sass/components/_bottom-sheet.scss +44 -16
  422. package/src/sass/components/_breadcrumb.scss +8 -1
  423. package/src/sass/components/_button-groups.scss +44 -89
  424. package/src/sass/components/_buttons.scss +156 -63
  425. package/src/sass/components/_calendar.scss +246 -0
  426. package/src/sass/components/_cards.scss +41 -68
  427. package/src/sass/components/_carousel.scss +43 -158
  428. package/src/sass/components/_cascader.scss +142 -0
  429. package/src/sass/components/_chips.scss +36 -52
  430. package/src/sass/components/_column-chart.scss +19 -12
  431. package/src/sass/components/_command-palette.scss +4 -7
  432. package/src/sass/components/_confetti.scss +0 -2
  433. package/src/sass/components/_countdown.scss +1 -1
  434. package/src/sass/components/_data-table.scss +162 -27
  435. package/src/sass/components/_datepicker.scss +57 -62
  436. package/src/sass/components/_description-list.scss +85 -0
  437. package/src/sass/components/_dialog.scss +42 -44
  438. package/src/sass/components/_docked-display.scss +1 -3
  439. package/src/sass/components/_drag-handle.scss +16 -20
  440. package/src/sass/components/_expanding-card.scss +20 -9
  441. package/src/sass/components/_fab-menu.scss +44 -32
  442. package/src/sass/components/_funnel-chart.scss +124 -0
  443. package/src/sass/components/_heatmap-chart.scss +113 -24
  444. package/src/sass/components/_icon-buttons.scss +7 -8
  445. package/src/sass/components/_icons-material-design.scss +2 -2
  446. package/src/sass/components/_image-compare.scss +108 -0
  447. package/src/sass/components/_index.scss +21 -0
  448. package/src/sass/components/_keypad.scss +182 -0
  449. package/src/sass/components/_kpi.scss +6 -11
  450. package/src/sass/components/_lightbox.scss +26 -20
  451. package/src/sass/components/_line-chart.scss +16 -2
  452. package/src/sass/components/_list.scss +59 -14
  453. package/src/sass/components/_loading-indicator.scss +1 -0
  454. package/src/sass/components/_loading-overlay.scss +105 -0
  455. package/src/sass/components/_map.scss +35 -13
  456. package/src/sass/components/_marquee.scss +3 -2
  457. package/src/sass/components/_mega-menu.scss +137 -0
  458. package/src/sass/components/_menu.scss +159 -182
  459. package/src/sass/components/_menubar.scss +59 -0
  460. package/src/sass/components/_message-scroller.scss +2 -2
  461. package/src/sass/components/_message.scss +3 -3
  462. package/src/sass/components/_mixed-chart.scss +37 -9
  463. package/src/sass/components/_modal-display.scss +21 -0
  464. package/src/sass/components/_navbar.scss +43 -65
  465. package/src/sass/components/_navigation-bar.scss +15 -77
  466. package/src/sass/components/_navigation-rail.scss +171 -121
  467. package/src/sass/components/_org-chart.scss +192 -0
  468. package/src/sass/components/_page-footer.scss +16 -13
  469. package/src/sass/components/_pagination.scss +6 -13
  470. package/src/sass/components/_panes.scss +33 -31
  471. package/src/sass/components/_particles.scss +0 -2
  472. package/src/sass/components/_pie-chart.scss +91 -11
  473. package/src/sass/components/_popover.scss +18 -5
  474. package/src/sass/components/_progress.scss +158 -35
  475. package/src/sass/components/_pull-to-refresh.scss +90 -0
  476. package/src/sass/components/_questionnaire.scss +74 -3
  477. package/src/sass/components/_radar-chart.scss +38 -10
  478. package/src/sass/components/_radial-chart.scss +113 -5
  479. package/src/sass/components/_rich-text-editor.scss +2 -2
  480. package/src/sass/components/_sankey-chart.scss +114 -0
  481. package/src/sass/components/_scatter-chart.scss +153 -0
  482. package/src/sass/components/_scrim.scss +0 -2
  483. package/src/sass/components/_scrollspy.scss +0 -2
  484. package/src/sass/components/_search.scss +26 -22
  485. package/src/sass/components/_show-more.scss +8 -0
  486. package/src/sass/components/_side-sheet.scss +23 -40
  487. package/src/sass/components/_skeleton.scss +2 -4
  488. package/src/sass/components/_snackbar.scss +27 -21
  489. package/src/sass/components/_split-button.scss +5 -5
  490. package/src/sass/components/_stat.scss +3 -8
  491. package/src/sass/components/_stepper.scss +1 -5
  492. package/src/sass/components/_swipe-actions.scss +71 -0
  493. package/src/sass/components/_tabs.scss +51 -32
  494. package/src/sass/components/_timeline.scss +12 -12
  495. package/src/sass/components/_timepicker.scss +111 -112
  496. package/src/sass/components/_toolbar.scss +35 -47
  497. package/src/sass/components/_tooltip.scss +21 -12
  498. package/src/sass/components/_tour.scss +89 -0
  499. package/src/sass/components/_transfer-list.scss +73 -0
  500. package/src/sass/components/_transitions.scss +4 -4
  501. package/src/sass/components/_tree.scss +3 -16
  502. package/src/sass/components/_treemap-chart.scss +122 -0
  503. package/src/sass/components/forms/_checkboxes.scss +140 -86
  504. package/src/sass/components/forms/_color-picker.scss +135 -0
  505. package/src/sass/components/forms/_color-swatches.scss +85 -0
  506. package/src/sass/components/forms/_drop-zone.scss +15 -9
  507. package/src/sass/components/forms/_fieldset.scss +10 -10
  508. package/src/sass/components/forms/_file-input.scss +6 -9
  509. package/src/sass/components/forms/_index.scss +3 -1
  510. package/src/sass/components/forms/_input-fields.scss +254 -90
  511. package/src/sass/components/forms/_radio-buttons.scss +40 -127
  512. package/src/sass/components/forms/_rating.scss +2 -32
  513. package/src/sass/components/forms/_select.scss +199 -23
  514. package/src/sass/components/forms/_slider.scss +140 -330
  515. package/src/sass/components/forms/_switches.scss +53 -164
  516. package/src/sass/custom.scss +10 -1
  517. package/src/sass/expressive.scss +3 -63
  518. package/src/sass/tokens/_contrast.scss +94 -0
  519. package/src/sass/tokens/_elevation.scss +16 -0
  520. package/src/sass/tokens/_index.scss +5 -0
  521. package/src/sass/tokens/_motion.scss +109 -0
  522. package/src/sass/tokens/_reference.scss +72 -141
  523. package/src/sass/tokens/_shape.scss +38 -0
  524. package/src/sass/tokens/_stacking.scss +27 -0
  525. package/src/sass/tokens/_state.scss +2 -4
  526. package/src/sass/tokens/_theme.scss +11 -2
  527. package/src/sass/tokens/_vibrant.scss +2 -5
  528. package/src/sass/utilities/_colors.scss +6 -1
  529. package/src/sass/utilities/_defer-render.scss +17 -0
  530. package/src/sass/utilities/_helpers.scss +183 -26
  531. package/src/sass/utilities/_index.scss +2 -1
  532. package/src/sass/utilities/_scroll-area.scss +0 -2
  533. package/src/sass/utilities/_spacing.scss +52 -34
  534. package/src/sass/utilities/_typescale.scss +8 -1
  535. package/src/sass/utilities/_visibility.scss +47 -76
  536. package/src/sass/utilities/_z-depth.scss +7 -4
  537. package/dist/js/chunks/chunk-3DHK5CZU.mjs.map +0 -7
  538. package/dist/js/chunks/chunk-3GVFZ4XO.mjs.map +0 -7
  539. package/dist/js/chunks/chunk-4HZMB7LI.mjs.map +0 -7
  540. package/dist/js/chunks/chunk-4KMNFIFZ.mjs +0 -270
  541. package/dist/js/chunks/chunk-4KMNFIFZ.mjs.map +0 -7
  542. package/dist/js/chunks/chunk-4TKTLGEM.mjs.map +0 -7
  543. package/dist/js/chunks/chunk-5BKHWHYY.mjs +0 -292
  544. package/dist/js/chunks/chunk-5BKHWHYY.mjs.map +0 -7
  545. package/dist/js/chunks/chunk-5HQSGDZ5.mjs.map +0 -7
  546. package/dist/js/chunks/chunk-6N2XAEFK.mjs +0 -125
  547. package/dist/js/chunks/chunk-6N2XAEFK.mjs.map +0 -7
  548. package/dist/js/chunks/chunk-A7ALMYUR.mjs.map +0 -7
  549. package/dist/js/chunks/chunk-BG6ZRB5H.mjs.map +0 -7
  550. package/dist/js/chunks/chunk-CUQPB25U.mjs +0 -55
  551. package/dist/js/chunks/chunk-CUQPB25U.mjs.map +0 -7
  552. package/dist/js/chunks/chunk-DAIU5SLG.mjs.map +0 -7
  553. package/dist/js/chunks/chunk-FS7XY3HT.mjs.map +0 -7
  554. package/dist/js/chunks/chunk-GIW4K4SE.mjs.map +0 -7
  555. package/dist/js/chunks/chunk-GUB3TNO2.mjs.map +0 -7
  556. package/dist/js/chunks/chunk-GVGT6MIU.mjs.map +0 -7
  557. package/dist/js/chunks/chunk-GZKEFWPM.mjs +0 -181
  558. package/dist/js/chunks/chunk-GZKEFWPM.mjs.map +0 -7
  559. package/dist/js/chunks/chunk-HKT2S7VM.mjs +0 -48
  560. package/dist/js/chunks/chunk-HKT2S7VM.mjs.map +0 -7
  561. package/dist/js/chunks/chunk-ILP3PDTL.mjs +0 -187
  562. package/dist/js/chunks/chunk-ILP3PDTL.mjs.map +0 -7
  563. package/dist/js/chunks/chunk-JIDMQGK6.mjs.map +0 -7
  564. package/dist/js/chunks/chunk-KBNN3QDH.mjs +0 -7
  565. package/dist/js/chunks/chunk-KBNN3QDH.mjs.map +0 -7
  566. package/dist/js/chunks/chunk-KHV6DZXX.mjs.map +0 -7
  567. package/dist/js/chunks/chunk-KY6U46SM.mjs +0 -345
  568. package/dist/js/chunks/chunk-KY6U46SM.mjs.map +0 -7
  569. package/dist/js/chunks/chunk-LRZMJZ3T.mjs +0 -291
  570. package/dist/js/chunks/chunk-LRZMJZ3T.mjs.map +0 -7
  571. package/dist/js/chunks/chunk-LTWPGFBR.mjs +0 -59
  572. package/dist/js/chunks/chunk-LTWPGFBR.mjs.map +0 -7
  573. package/dist/js/chunks/chunk-MNPROCZF.mjs +0 -328
  574. package/dist/js/chunks/chunk-MNPROCZF.mjs.map +0 -7
  575. package/dist/js/chunks/chunk-MZ6Z24BX.mjs.map +0 -7
  576. package/dist/js/chunks/chunk-NS2UMNZV.mjs.map +0 -7
  577. package/dist/js/chunks/chunk-O5XPWXIQ.mjs +0 -406
  578. package/dist/js/chunks/chunk-O5XPWXIQ.mjs.map +0 -7
  579. package/dist/js/chunks/chunk-PM655FXL.mjs.map +0 -7
  580. package/dist/js/chunks/chunk-QDAL4IYN.mjs.map +0 -7
  581. package/dist/js/chunks/chunk-QERLECVU.mjs +0 -572
  582. package/dist/js/chunks/chunk-QERLECVU.mjs.map +0 -7
  583. package/dist/js/chunks/chunk-QJABDLSD.mjs +0 -112
  584. package/dist/js/chunks/chunk-QJABDLSD.mjs.map +0 -7
  585. package/dist/js/chunks/chunk-RHRQKTTX.mjs +0 -139
  586. package/dist/js/chunks/chunk-RHRQKTTX.mjs.map +0 -7
  587. package/dist/js/chunks/chunk-S3XDFGSZ.mjs.map +0 -7
  588. package/dist/js/chunks/chunk-SPETGK25.mjs +0 -59
  589. package/dist/js/chunks/chunk-SPETGK25.mjs.map +0 -7
  590. package/dist/js/chunks/chunk-TBM3FT7G.mjs.map +0 -7
  591. package/dist/js/chunks/chunk-UEXCIMJZ.mjs.map +0 -7
  592. package/dist/js/chunks/chunk-UEZUJQ66.mjs.map +0 -7
  593. package/dist/js/chunks/chunk-VGZSAFTX.mjs +0 -173
  594. package/dist/js/chunks/chunk-VGZSAFTX.mjs.map +0 -7
  595. package/dist/js/chunks/chunk-X7OCHZVF.mjs +0 -76
  596. package/dist/js/chunks/chunk-X7OCHZVF.mjs.map +0 -7
  597. package/dist/js/chunks/chunk-YDCS5S3J.mjs.map +0 -7
  598. package/dist/js/chunks/chunk-YMSXJON6.mjs +0 -79
  599. package/dist/js/chunks/chunk-YMSXJON6.mjs.map +0 -7
  600. package/dist/js/chunks/chunk-Z2NRKI7R.mjs.map +0 -7
  601. package/dist/js/chunks/chunk-ZAS25YFD.mjs.map +0 -7
  602. package/dist/js/chunks/chunk-ZKZKNSLC.mjs +0 -1
  603. /package/dist/js/chunks/{chunk-ZKZKNSLC.mjs.map → chunk-GNRSYMVH.mjs.map} +0 -0
@@ -12,7 +12,25 @@
12
12
  // Sorting and selection are page state written into the markup:
13
13
  // th[aria-sort] a <button> in the header cell shows the sort arrow
14
14
  // row checkbox a checked box in the first cell selects the row
15
- // The framework only draws them; the page reorders rows.
15
+ // [aria-expanded] a button in a row shows or hides the
16
+ // tr.data-table-detail right after it; a button with
17
+ // aria-haspopup (a row's menu, select or combobox) is
18
+ // not a disclosure and is left alone
19
+ // The framework draws them. With data-sort on the wrapper it also reorders
20
+ // the rows and moves aria-sort, and a checkbox in the first header cell
21
+ // selects every row (behaviors/dataTables.ts). The page flips
22
+ // aria-expanded. A .data-table-actions bar just before the wrapper joins its
23
+ // top edge and takes the selected color while any row is selected.
24
+ //
25
+ // .sticky-column on the wrapper pins each row's first cell to its
26
+ // inline-start edge while the other columns scroll sideways. When the first
27
+ // column holds checkboxes, the name cell after it is pinned too, so the
28
+ // checkbox column takes a fixed width that offsets the second cell. Detail
29
+ // rows and the caption scroll with the table.
30
+ //
31
+ // A <button class="drag-handle"> ending a header cell resizes its column by
32
+ // pointer, keyboard or click (behaviors/dataTables.ts). It sits on the cell's
33
+ // inline-end edge and is not a sort control.
16
34
  //
17
35
  // Tokens:
18
36
  // --md-comp-data-table-container-color surface
@@ -22,17 +40,21 @@
22
40
  // --md-comp-data-table-row-height 52px / dense 40px
23
41
  // --md-comp-data-table-cell-padding 16px
24
42
  // --md-comp-data-table-selected-container-color secondary-container
25
-
26
- $_data-table-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M11 20V7.8l-5.6 5.6L4 12l8-8 8 8-1.4 1.4L13 7.8V20z'/%3E%3C/svg%3E");
43
+ // --md-comp-data-table-detail-container-color surface-container-low
44
+ // --md-comp-data-table-checkbox-column-width cell padding + 18px box
45
+ // --md-comp-data-table-column-min-width 48px, the narrowest resize
27
46
 
28
47
  .data-table {
29
48
  --md-comp-data-table-container-color: var(--md-sys-color-surface);
30
- --md-comp-data-table-shape: 12px;
49
+ --md-comp-data-table-shape: var(--md-sys-shape-corner-medium);
31
50
  --md-comp-data-table-outline-color: var(--md-sys-color-outline-variant);
32
51
  --md-comp-data-table-header-height: 56px;
33
52
  --md-comp-data-table-row-height: 52px;
34
53
  --md-comp-data-table-cell-padding: 16px;
35
54
  --md-comp-data-table-selected-container-color: var(--md-sys-color-secondary-container);
55
+ --md-comp-data-table-detail-container-color: var(--md-sys-color-surface-container-low);
56
+ --md-comp-data-table-checkbox-column-width: calc(var(--md-comp-data-table-cell-padding) + 18px);
57
+ --md-comp-data-table-column-min-width: #{rem(48px)};
36
58
 
37
59
  box-sizing: border-box;
38
60
  max-width: 100%;
@@ -104,31 +126,109 @@ $_data-table-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000
104
126
  font-variant-numeric: tabular-nums;
105
127
  }
106
128
 
129
+ // --_row carries the row's state color to its cells, so a pinned cell can
130
+ // paint it over its own opaque fill.
107
131
  > table > tbody > tr {
108
- transition: background-color 0.2s ease-out;
132
+ background-color: var(--_row, transparent);
133
+ transition: background-color var(--md-sys-motion-duration-short4) ease-out;
109
134
 
110
135
  &:hover {
111
- background-color: color-mix(
112
- in oklab,
113
- var(--md-sys-color-on-surface) state-opacity("hover"),
114
- transparent
115
- );
136
+ --_row: #{state-layer(var(--md-sys-color-on-surface), "hover")};
116
137
  }
117
138
 
118
139
  &:has(> :first-child input[type="checkbox"]:checked) {
119
- background-color: var(--md-comp-data-table-selected-container-color);
140
+ --_row: var(--md-comp-data-table-selected-container-color);
120
141
  color: var(--md-sys-color-on-secondary-container);
121
142
  }
122
143
  }
123
144
 
145
+ // Row expansion. The detail row shows only while the row before it holds an
146
+ // expanded toggle, so the page flips one attribute and nothing else.
147
+ > table > tbody > tr:not(:has(button[aria-expanded="true"]:not([aria-haspopup]))) + tr.data-table-detail {
148
+ display: none;
149
+ }
150
+
151
+ // Keep filtering and paging separate from the author's hidden attribute.
152
+ > table > tbody > tr:is([data-table-filter-hidden], [data-table-page-hidden]) {
153
+ display: none;
154
+ }
155
+
156
+ > table > tbody > tr.data-table-detail > td {
157
+ padding-block: 16px;
158
+ background-color: var(--md-comp-data-table-detail-container-color);
159
+ }
160
+
161
+ td button[aria-expanded]:not([aria-haspopup]) > #{$icon} {
162
+ transition: transform var(--md-sys-motion-duration-short4) ease-out;
163
+ }
164
+
165
+ td button[aria-expanded="true"]:not([aria-haspopup]) > #{$icon} {
166
+ transform: rotate(180deg);
167
+ }
168
+
124
169
  // A checkbox cell hugs its box rather than taking a text column's width.
125
170
  :is(th, td):has(> label > input[type="checkbox"]:only-child) {
126
171
  width: 1px;
127
172
  padding-inline-end: 0;
128
173
  }
129
174
 
175
+ // Sticky first column. Pinned body cells stack above scrolled body cells,
176
+ // and the pinned header cells above the scrolled header cells.
177
+ &.sticky-column {
178
+ > table > * > tr:where(:not(.data-table-detail)) > :first-child {
179
+ position: sticky;
180
+ inset-inline-start: 0;
181
+ z-index: 1;
182
+ border-inline-end: 1px solid var(--md-comp-data-table-outline-color);
183
+ // ponytail: the row color jumps here while the rest of the row fades;
184
+ // a registered @property would let it transition too.
185
+ background: linear-gradient(var(--_row, transparent), var(--_row, transparent)) var(--md-comp-data-table-container-color);
186
+ }
187
+
188
+ > table > thead > tr > :first-child {
189
+ z-index: 2;
190
+ }
191
+ }
192
+
193
+ &.sticky-column:has(> table > * > tr > :first-child > label > input[type="checkbox"]:only-child) {
194
+ > table > * > tr:where(:not(.data-table-detail)) > :first-child {
195
+ width: var(--md-comp-data-table-checkbox-column-width);
196
+ padding-inline-end: 0;
197
+ border-inline-end: 0;
198
+ }
199
+
200
+ > table > * > tr:where(:not(.data-table-detail)) > :nth-child(2) {
201
+ position: sticky;
202
+ inset-inline-start: var(--md-comp-data-table-checkbox-column-width);
203
+ z-index: 1;
204
+ border-inline-end: 1px solid var(--md-comp-data-table-outline-color);
205
+ background: linear-gradient(var(--_row, transparent), var(--_row, transparent)) var(--md-comp-data-table-container-color);
206
+ }
207
+
208
+ > table > thead > tr > :nth-child(2) {
209
+ z-index: 2;
210
+ }
211
+ }
212
+
213
+ // A resizable column's handle. Header cells are sticky, so they hold it.
214
+ // The end padding clears the handle's 24px hit area, so end-aligned
215
+ // text never runs under it.
216
+ th:has(> button.drag-handle:last-child) {
217
+ min-inline-size: var(--md-comp-data-table-column-min-width);
218
+ padding-inline-end: max(var(--md-comp-data-table-cell-padding), 24px);
219
+ }
220
+
221
+ th > button.drag-handle:last-child {
222
+ position: absolute;
223
+ inset-block: 0;
224
+ inset-inline-end: 0;
225
+ block-size: auto;
226
+ cursor: col-resize;
227
+ touch-action: none;
228
+ }
229
+
130
230
  // The sort control fills the header text and carries a trailing arrow.
131
- th > button {
231
+ th > button:where(:not(.drag-handle)) {
132
232
  display: inline-flex;
133
233
  align-items: center;
134
234
  gap: 4px;
@@ -136,7 +236,7 @@ $_data-table-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000
136
236
  margin: 0;
137
237
  padding: 0;
138
238
  border: 0;
139
- border-radius: 4px;
239
+ border-radius: var(--md-sys-shape-corner-extra-small);
140
240
  background: none;
141
241
  color: inherit;
142
242
  font: inherit;
@@ -147,14 +247,9 @@ $_data-table-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000
147
247
  @include focus-visible;
148
248
 
149
249
  &::after {
150
- content: "";
151
- flex: none;
152
- width: 18px;
153
- height: 18px;
154
- background-color: currentColor;
155
- mask: $_data-table-arrow center / 18px no-repeat;
250
+ @include trend-arrow;
156
251
  opacity: 0;
157
- transition: opacity 0.2s ease-out, transform 0.2s ease-out;
252
+ transition: opacity var(--md-sys-motion-duration-short4) ease-out, transform var(--md-sys-motion-duration-short4) ease-out;
158
253
  }
159
254
 
160
255
  &:hover::after {
@@ -163,26 +258,66 @@ $_data-table-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000
163
258
  }
164
259
 
165
260
  // Numbers line up on their end edge, so the arrow leads their label.
166
- th.numeric > button {
261
+ th.numeric > button:where(:not(.drag-handle)) {
167
262
  flex-direction: row-reverse;
168
263
  }
169
264
 
170
265
  th:is([aria-sort="ascending"], [aria-sort="descending"]) {
171
266
  color: var(--md-sys-color-on-surface);
172
267
 
173
- > button::after {
268
+ > button:where(:not(.drag-handle))::after {
174
269
  opacity: 1;
175
270
  }
176
271
  }
177
272
 
178
- th[aria-sort="descending"] > button::after {
273
+ th[aria-sort="descending"] > button:where(:not(.drag-handle))::after {
179
274
  transform: rotate(180deg);
180
275
  }
181
276
  }
182
277
 
183
- @media (forced-colors: active) {
184
- .data-table th > button::after {
185
- forced-color-adjust: none;
186
- background-color: CanvasText;
278
+ .data-table th > button:where(:not(.drag-handle))::after {
279
+ @include forced-colors-fill;
280
+ }
281
+
282
+ // Bulk actions. A bar of buttons for the selected rows, written just before
283
+ // the .data-table it acts on. It shares the table's outline and joins its top
284
+ // edge; while a body row is selected it takes the selected color, so it reads
285
+ // as part of the selection. The page keeps any "3 selected" text current.
286
+ .data-table-actions {
287
+ box-sizing: border-box;
288
+ display: flex;
289
+ flex-wrap: wrap;
290
+ align-items: center;
291
+ gap: 8px;
292
+ min-height: 56px;
293
+ margin: $element-top-margin 0 0;
294
+ padding: 8px 16px;
295
+ border: 1px solid var(--md-sys-color-outline-variant);
296
+ border-block-end: 0;
297
+ border-radius: var(--md-sys-shape-corner-medium) var(--md-sys-shape-corner-medium) 0 0;
298
+ background-color: var(--md-sys-color-surface);
299
+ color: var(--md-sys-color-on-surface);
300
+ transition: background-color var(--md-sys-motion-duration-short4) ease-out;
301
+ @include typescale("title-small");
302
+
303
+ &[hidden] {
304
+ display: none;
305
+ }
306
+
307
+ &:has(+ .data-table > table > tbody > tr > :first-child input[type="checkbox"]:checked) {
308
+ background-color: var(--md-sys-color-secondary-container);
309
+ color: var(--md-sys-color-on-secondary-container);
310
+ }
311
+
312
+ // The count or label pushes the buttons to the end.
313
+ > :first-child:not(button, .button, .icon-button) {
314
+ margin-inline-end: auto;
315
+ }
316
+
317
+ // A hidden bar leaves the table's own top edge alone.
318
+ &:not([hidden]) + .data-table {
319
+ margin-block-start: 0;
320
+ border-start-start-radius: 0;
321
+ border-start-end-radius: 0;
187
322
  }
188
323
  }
@@ -1,6 +1,4 @@
1
- @use "../abstracts" as *;
2
-
3
- :is(.datepicker-container, .date-picker-container) {
1
+ .datepicker-container {
4
2
  display: flex;
5
3
  flex-direction: column;
6
4
  max-width: 325px;
@@ -8,7 +6,7 @@
8
6
  background-color: var(--md-sys-color-surface);
9
7
  }
10
8
 
11
- :is(.datepicker-controls, .date-picker-controls) {
9
+ .datepicker-controls {
12
10
  display: flex;
13
11
  justify-content: space-between;
14
12
  width: 280px;
@@ -23,7 +21,7 @@
23
21
  height: 49px;
24
22
  margin: 4px 0 0 0;
25
23
  border-bottom: none;
26
- border-radius: 4px;
24
+ border-radius: var(--md-sys-shape-corner-extra-small);
27
25
  text-align: center;
28
26
 
29
27
  &:focus {
@@ -85,23 +83,13 @@
85
83
  }
86
84
 
87
85
 
88
- /* Date Display */
89
- :is(.datepicker-date-display, .date-picker-date-display) {
86
+ // Date Display
87
+ .datepicker-date-display {
90
88
  flex: 1 auto;
91
- // @removed since v2.2.1-dev regarding Material M3 standards
92
- // background-color: var(--md-sys-color-primary);
93
- // color: var(--md-sys-color-on-primary);
94
89
  padding: 20px 22px;
95
- border-bottom: 1px solid var(--md-sys-color-surface-variant);
90
+ border-bottom: 1px solid var(--md-sys-color-surface-container-highest);
96
91
  font-weight: 500;
97
92
 
98
- .year-text {
99
- display: block;
100
- font-size: 1.5rem;
101
- line-height: 25px;
102
- color: var(--md-sys-color-on-primary);
103
- }
104
-
105
93
  .date-text {
106
94
  display: block;
107
95
  font-size: 2.8rem;
@@ -117,12 +105,12 @@
117
105
  }
118
106
 
119
107
 
120
- /* Calendar */
121
- :is(.datepicker-calendar-container, .date-picker-calendar-container) {
108
+ // Calendar
109
+ .datepicker-calendar-container {
122
110
  flex: 2.5 auto;
123
111
  }
124
112
 
125
- :is(.datepicker-table, .date-picker-table) {
113
+ .datepicker-table {
126
114
  width: 280px;
127
115
  font-size: 1rem;
128
116
  margin: 0 auto;
@@ -145,34 +133,19 @@
145
133
  color: var(--md-sys-color-on-surface-variant);
146
134
  }
147
135
 
148
- :is(.datepicker-day, .date-picker-day) {
136
+ .datepicker-day {
149
137
  padding: 0;
150
- color: var(--md-sys-color-on-background);
151
- // border-radius: 50%;
138
+ color: var(--md-sys-color-on-surface);
152
139
 
153
140
  &.is-today {
154
141
  color: var(--md-sys-color-primary);
155
142
  }
156
-
157
- /*&.is-selected button {
158
- background-color: var(--md-sys-color-primary);
159
- color: var(--md-sys-color-on-primary);
160
- }*/
161
143
  }
162
144
  }
163
145
 
164
- // @todo
165
- :is(.datepicker-day, .date-picker-day).has-event {}
166
- // @todo
167
- :is(.datepicker-day, .date-picker-day).is-inrange {}
168
- // @todo
169
- :is(.datepicker-day, .date-picker-day).is-startrange {}
170
- // @todo
171
- :is(.datepicker-day, .date-picker-day).is-endrange {}
172
-
173
- :is(.datepicker-day, .date-picker-day).is-daterange-start,
174
- :is(.datepicker-day, .date-picker-day).is-daterange-end,
175
- :is(.datepicker-day, .date-picker-day).is-daterange {
146
+ .datepicker-day.is-daterange-start,
147
+ .datepicker-day.is-daterange-end,
148
+ .datepicker-day.is-daterange {
176
149
  position: relative;
177
150
 
178
151
  &:before {
@@ -186,20 +159,27 @@
186
159
  }
187
160
  }
188
161
 
189
- :is(.datepicker-day, .date-picker-day).is-daterange-start:before,
190
- :is(.datepicker-day, .date-picker-day).is-daterange-end:before {
162
+ .datepicker-day.is-daterange-start:before,
163
+ .datepicker-day.is-daterange-end:before {
191
164
  width: 50%;
192
165
  }
193
166
 
194
- :is(.datepicker-day, .date-picker-day).is-daterange-start:before {
195
- left: 50%;
167
+ // Follows the table's reading direction, which is the page's. Known issue:
168
+ // the `isRTL` option reverses the cells in script instead, so with it on this
169
+ // band points away from the range (and on an RTL page the calendar reads left
170
+ // to right again). ponytail: render isRTL as dir="rtl" on the table; that also
171
+ // needs the arrow keys and renderRow callers handled, see the 2026-10-16 review.
172
+ // Before the start rule: a one-day range carries both classes and keeps the
173
+ // start band, as it always has in LTR.
174
+ .datepicker-day.is-daterange-end:before {
175
+ inset-inline-start: 0;
196
176
  }
197
177
 
198
- :is(.datepicker-day, .date-picker-day).is-daterange :is(.datepicker-day-button, .date-picker-day-button):before {
199
- background-color: var(--md-sys-color-primary-container);
178
+ .datepicker-day.is-daterange-start:before {
179
+ inset-inline-start: 50%;
200
180
  }
201
181
 
202
- :is(.datepicker-day-button, .date-picker-day-button) {
182
+ .datepicker-day-button {
203
183
  background-color: transparent;
204
184
  border: none;
205
185
  line-height: 34px;
@@ -226,20 +206,20 @@
226
206
  color: var(--md-sys-color-on-primary);
227
207
 
228
208
  &:focus {
229
- background-color: var(--md-sys-color-surface-variant);
209
+ background-color: var(--md-sys-color-surface-container-highest);
230
210
  color: var(--md-sys-color-primary);
231
211
  }
232
212
  }
233
213
 
234
- &.is-outside-current-month button,
235
- &.is-disabled button {
236
- color: var(--md-sys-color-on-surface);
214
+ // The state classes sit on the <td>, not the button.
215
+ :is(.is-outside-current-month, .is-disabled) & {
216
+ color: color-mix(in oklab, var(--md-sys-color-on-surface) 38%, transparent);
237
217
  pointer-events: none;
238
218
  }
239
219
  }
240
220
 
241
- /* Footer */
242
- :is(.datepicker-footer, .date-picker-footer) {
221
+ // Footer
222
+ .datepicker-footer {
243
223
  width: 280px;
244
224
  margin: 0 auto;
245
225
  padding-bottom: 5px;
@@ -247,15 +227,30 @@
247
227
  justify-content: space-between;
248
228
  }
249
229
 
250
- :is(.datepicker-cancel, .date-picker-cancel),
251
- :is(.datepicker-clear, .date-picker-clear),
252
- :is(.datepicker-today, .date-picker-today),
253
- :is(.datepicker-done, .date-picker-done) {
254
- color: var(--md-sys-color-primary);
230
+ .datepicker-clear {
231
+ color: var(--md-sys-color-error);
255
232
  padding: 0 1rem;
256
233
  }
257
234
 
258
- :is(.datepicker-clear, .date-picker-clear) {
259
- color: var(--md-sys-color-error);
260
- }
261
235
 
236
+ // Today, the selected day and the range are colour only, and forced colors
237
+ // paint them all as Canvas.
238
+ @media (forced-colors: active) {
239
+ .datepicker-day.is-today .datepicker-day-button {
240
+ outline: 1px solid CanvasText;
241
+ outline-offset: -1px;
242
+ }
243
+
244
+ .is-selected .datepicker-day-button {
245
+ forced-color-adjust: none;
246
+ background-color: Highlight;
247
+ color: HighlightText;
248
+ }
249
+
250
+ // A filled band would sit behind CanvasText day numbers, and no system
251
+ // color pair guarantees contrast there. Rule the band top and bottom.
252
+ .datepicker-day:is(.is-daterange-start, .is-daterange-end, .is-daterange)::before {
253
+ box-sizing: border-box;
254
+ border-block: 1px solid CanvasText;
255
+ }
256
+ }
@@ -0,0 +1,85 @@
1
+ @use "../abstracts" as *;
2
+
3
+ // Description list. Label and value pairs for a record's details, such as an
4
+ // order's status, dates and totals, on a native <dl>: each <dt> is a label and
5
+ // the <dd> elements after it are its values. A <div> may wrap each group, as
6
+ // HTML allows; it takes no box of its own.
7
+ //
8
+ // Two columns from Medium up, labels in the first; at Compact widths each
9
+ // label sits above its values, as it does in a .query-container narrower
10
+ // than 600px. A divider runs above every group.
11
+ //
12
+ // Tokens:
13
+ // --md-comp-description-list-label-width minmax(8rem, 33%)
14
+ // --md-comp-description-list-divider-color outline-variant
15
+ // --md-comp-description-list-padding 12px (block, per row)
16
+
17
+ @mixin _stacked {
18
+ grid-template-columns: minmax(0, 1fr);
19
+
20
+ dt,
21
+ dd {
22
+ grid-column: 1;
23
+ }
24
+
25
+ dt {
26
+ padding-block-end: 0;
27
+ }
28
+
29
+ dt + dd {
30
+ padding-block-start: 4px;
31
+ border-block-start: 0;
32
+ }
33
+ }
34
+
35
+ dl.description-list {
36
+ --md-comp-description-list-label-width: minmax(8rem, 33%);
37
+ --md-comp-description-list-divider-color: var(--md-sys-color-outline-variant);
38
+ --md-comp-description-list-padding: 12px;
39
+
40
+ display: grid;
41
+ grid-template-columns: var(--md-comp-description-list-label-width) minmax(0, 1fr);
42
+ margin: $element-top-margin 0 $element-bottom-margin;
43
+
44
+ > div {
45
+ display: contents;
46
+ }
47
+
48
+ dt,
49
+ dd {
50
+ margin: 0;
51
+ padding-block: var(--md-comp-description-list-padding);
52
+ overflow-wrap: break-word;
53
+ }
54
+
55
+ // The space between the columns is the label's own padding, so a group's
56
+ // divider runs unbroken across both.
57
+ dt {
58
+ grid-column: 1;
59
+ padding-inline-end: 24px;
60
+ color: var(--md-sys-color-on-surface-variant);
61
+ @include typescale("label-large");
62
+ }
63
+
64
+ dd {
65
+ grid-column: 2;
66
+ color: var(--md-sys-color-on-surface);
67
+ @include typescale("body-medium");
68
+ }
69
+
70
+ // A group's first row carries the divider; extra values under one label
71
+ // continue the group without one.
72
+ dt,
73
+ dt + dd {
74
+ border-block-start: 1px solid var(--md-comp-description-list-divider-color);
75
+ }
76
+
77
+ dd + dd {
78
+ padding-block-start: 0;
79
+ }
80
+
81
+ // One column on Compact windows, and in a query container narrower than
82
+ // Compact, so a list in a sidebar stacks on a wide window too.
83
+ @include bp-down("medium") { @include _stacked; }
84
+ @container (width < 600px) { @include _stacked; }
85
+ }