@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
@@ -1,3 +1,6 @@
1
+ @use "sass:map";
2
+ @use "../abstracts" as *;
3
+
1
4
  // Small single-purpose classes a page author applies deliberately.
2
5
  //
3
6
  // Anything here must be one job, one class, and independent of any component.
@@ -6,40 +9,139 @@
6
9
 
7
10
  // Positioning
8
11
  .valign-wrapper { display: flex; align-items: center; }
12
+ .relative { position: relative; }
13
+ .sticky-top { position: sticky; top: 0; }
14
+ // Not a bare `.fixed`: the navigation bar, toolbar and table of contents use
15
+ // that as a modifier, and a utility would override them. No z-index either;
16
+ // a fixed element takes a --expressive-z-* value from the page. Static comes
17
+ // last so it beats .relative and .sticky-top on the same element.
18
+ .position-absolute { position: absolute; }
19
+ .position-fixed { position: fixed; }
20
+ .position-static { position: static; }
21
+ .inset-0 { inset: 0; }
22
+ .top-0 { top: 0; }
23
+ .bottom-0 { bottom: 0; }
24
+ .start-0 { inset-inline-start: 0; }
25
+ .end-0 { inset-inline-end: 0; }
26
+
27
+ // Display and flex layout. One declaration each; combine on the container or child,
28
+ // and pair with .gap-* from _spacing.scss for the space between items.
29
+ //
30
+ // Every class in this map also comes with a window-size prefix, emitted at
31
+ // the end of this file: `.expanded:flex-row` applies from Expanded up, the
32
+ // way the grid's `l6` does. `.inline` is the checkbox and radio row, so the
33
+ // display utility for it is missing on purpose.
34
+ //
35
+ // The line clamps set display too, so put them on a child of a flex or grid
36
+ // container, never on the container. Overflow clips at the padding box, so
37
+ // block-end padding on a clamped element shows the top of the next line.
38
+ $_clamp: (overflow: hidden, display: -webkit-box, -webkit-box-orient: vertical);
39
+
40
+ $_layout: (
41
+ "block": (display: block),
42
+ "inline-block": (display: inline-block),
43
+ "flex": (display: flex),
44
+ "inline-flex": (display: inline-flex),
45
+ "grid": (display: grid),
46
+ "flex-row": (flex-direction: row),
47
+ "flex-column": (flex-direction: column),
48
+ "flex-wrap": (flex-wrap: wrap),
49
+ "flex-nowrap": (flex-wrap: nowrap),
50
+ "justify-start": (justify-content: flex-start),
51
+ "justify-center": (justify-content: center),
52
+ "justify-end": (justify-content: flex-end),
53
+ "justify-between": (justify-content: space-between),
54
+ "justify-around": (justify-content: space-around),
55
+ "justify-evenly": (justify-content: space-evenly),
56
+ "align-start": (align-items: flex-start),
57
+ "align-center": (align-items: center),
58
+ "align-end": (align-items: flex-end),
59
+ "align-stretch": (align-items: stretch),
60
+ "align-baseline": (align-items: baseline),
61
+ // Child sizing: shorthands precede shrink-only overrides.
62
+ "flex-1": (flex: 1 1 0),
63
+ "flex-none": (flex: none),
64
+ "flex-initial": (flex: 0 1 auto),
65
+ "shrink-0": (flex-shrink: 0),
66
+ "shrink-1": (flex-shrink: 1),
67
+ // Child self-alignment. .self-auto hands a child back to the parent's
68
+ // align-items, so a prefix can undo a smaller window's alignment.
69
+ "self-auto": (align-self: auto),
70
+ "self-start": (align-self: flex-start),
71
+ "self-center": (align-self: center),
72
+ "self-end": (align-self: flex-end),
73
+ "self-stretch": (align-self: stretch),
74
+ // Child order moves a child on screen only: Tab and reading order still
75
+ // follow the source. .order-none puts it back in its source position.
76
+ "order-first": (order: -1),
77
+ "order-last": (order: 1),
78
+ "order-none": (order: 0),
79
+ "start-align": (text-align: start),
80
+ "center-align": (text-align: center),
81
+ "end-align": (text-align: end),
82
+ "line-clamp-1": map.merge($_clamp, (-webkit-line-clamp: 1, line-clamp: 1)),
83
+ "line-clamp-2": map.merge($_clamp, (-webkit-line-clamp: 2, line-clamp: 2)),
84
+ "line-clamp-3": map.merge($_clamp, (-webkit-line-clamp: 3, line-clamp: 3)),
85
+ "line-clamp-none": (overflow: visible, display: block, -webkit-box-orient: horizontal, -webkit-line-clamp: unset, line-clamp: unset),
86
+ );
87
+
88
+ @mixin _declarations($map) {
89
+ @each $property, $value in $map {
90
+ #{$property}: $value;
91
+ }
92
+ }
93
+
94
+ @each $name, $declarations in $_layout {
95
+ .#{$name} { @include _declarations($declarations); }
96
+ }
9
97
 
10
- // Flex layout. One declaration each; combine on the container, and pair with
11
- // .gap-* from _spacing.scss for the space between items. Row direction and
12
- // start alignment are the flex defaults, so only the overrides get a class.
13
- .flex { display: flex; }
14
- .inline-flex { display: inline-flex; }
15
- .flex-column { flex-direction: column; }
16
- .flex-wrap { flex-wrap: wrap; }
17
- .justify-start { justify-content: flex-start; }
18
- .justify-center { justify-content: center; }
19
- .justify-end { justify-content: flex-end; }
20
- .justify-between { justify-content: space-between; }
21
- .align-start { align-items: flex-start; }
22
- .align-center { align-items: center; }
23
- .align-end { align-items: flex-end; }
24
- .align-stretch { align-items: stretch; }
25
- .flex-1 { flex: 1 1 0; }
26
- .flex-none { flex: none; }
98
+ .inline-grid { display: inline-grid; }
99
+
100
+ // As many columns as fit, each at least --grid-column-min wide (set it here or
101
+ // on an ancestor). Empty tracks stay, so a short last row keeps the column
102
+ // width, and a container narrower than the minimum gets one column. The
103
+ // column count follows the container, so there are no prefixed copies; pair
104
+ // with .gap-*.
105
+ .grid-auto-fill {
106
+ display: grid;
107
+ grid-template-columns: repeat(auto-fill, minmax(min(100%, var(--grid-column-min, #{rem(240px)})), 1fr));
108
+ }
109
+
110
+ .contents { display: contents; }
27
111
 
28
112
  // Allow flex and grid children to shrink around their content.
29
113
  .min-w-0 { min-width: 0; }
30
114
  .min-h-0 { min-height: 0; }
31
115
 
116
+ // Make the element a query container. Horizontal cards and description lists
117
+ // inside it stack when it is narrower than 600px, whatever the window size.
118
+ // Inline-size containment stops the element's width depending on its
119
+ // content, so use it on a wrapper that fills its parent, not on a
120
+ // shrink-to-fit box.
121
+ .query-container { container-type: inline-size; }
122
+
123
+ // Fill the containing block, or never overflow it.
124
+ .w-full { width: 100%; }
125
+ .h-full { height: 100%; }
126
+ .max-w-full { max-width: 100%; }
127
+
128
+ // Fixed proportions. With an explicit width the height follows; on an <img>
129
+ // or <video>, pair with .object-cover or .object-contain.
130
+ .aspect-1x1 { aspect-ratio: 1; }
131
+ .aspect-4x3 { aspect-ratio: 4 / 3; }
132
+ .aspect-16x9 { aspect-ratio: 16 / 9; }
133
+ .object-cover { object-fit: cover; }
134
+ .object-contain { object-fit: contain; }
135
+
32
136
  // Scrolling and clipping without changing the element's display or size.
33
137
  .overflow-x-auto { overflow-x: auto; }
34
138
  .overflow-y-auto { overflow-y: auto; }
35
139
  .overflow-hidden { overflow: hidden; }
36
140
 
37
- // Text alignment
141
+ // Text alignment. start, center and end are in $_layout above; the physical
142
+ // pair stays for text that must not mirror.
38
143
  .left-align { text-align: left; }
39
144
  .right-align { text-align: right }
40
- .center-align { text-align: center; }
41
- .start-align { text-align: start; }
42
- .end-align { text-align: end; }
43
145
 
44
146
  // Dividers
45
147
  .divider {
@@ -48,19 +150,63 @@
48
150
  background-color: var(--md-sys-color-outline-variant);
49
151
  }
50
152
 
153
+ // Borders and corners. `.border` and `.rounded` are card and button variants,
154
+ // so the all-sides border is `.bordered` and the corner classes use the M3
155
+ // corner names. Sides are logical, so start and end mirror in RTL.
156
+ .bordered { border: 1px solid var(--md-sys-color-outline-variant); }
157
+ .border-top { border-top: 1px solid var(--md-sys-color-outline-variant); }
158
+ .border-bottom { border-bottom: 1px solid var(--md-sys-color-outline-variant); }
159
+ .border-start { border-inline-start: 1px solid var(--md-sys-color-outline-variant); }
160
+ .border-end { border-inline-end: 1px solid var(--md-sys-color-outline-variant); }
161
+
162
+ @each $step in ("none", "extra-small", "small", "medium", "large", "extra-large", "full") {
163
+ .corner-#{$step} { border-radius: var(--md-sys-shape-corner-#{$step}); }
164
+ }
165
+
166
+ // Cut corners: the corner's radius becomes a straight bevel of the same
167
+ // size. .corner-cut cuts one element; the container surfaces below follow
168
+ // --md-sys-shape-corner-family, which corners="cut" switches for a subtree.
169
+ // Round indicators (radios, switches, avatars, .circle) stay round, since
170
+ // a cut 50% radius is a diamond. Browsers without `corner-shape` (Firefox
171
+ // 157) keep rounded corners; a clip-path fallback would cut focus rings and
172
+ // shadows too.
173
+ .corner-cut { corner-shape: bevel; }
174
+
175
+ :where(
176
+ article, dialog, menu[id], fieldset, .button:not(.circle), .chip, .alert,
177
+ .snackbar, .tooltip, .popover, .field.outlined > :is(input, textarea)
178
+ ) {
179
+ corner-shape: var(--md-sys-shape-corner-family);
180
+ }
181
+
51
182
  // Shape and text behaviour
52
- .no-select { user-select: none; }
53
183
  // A FAB is `circle extra` / `circle large`, and its container shape is
54
184
  // 16dp rounded corners, not a full round - so the utility skips it. Layer
55
185
  // order puts utilities after components, which is why the exclusion has to
56
186
  // live here: no selector in `components` can outrank this one.
57
187
  .circle:not(.extra, .large) { border-radius: 50%; }
58
- .center-block { display: block; margin-left: auto; margin-right: auto; }
59
188
  .break-words { overflow-wrap: anywhere; }
60
189
  .text-nowrap { white-space: nowrap; }
61
190
  .text-wrap { white-space: normal; }
191
+ .text-balance { text-wrap-style: balance; }
192
+ .text-pretty { text-wrap-style: pretty; }
62
193
  .truncate { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
63
- .no-padding { padding: 0 !important; }
194
+
195
+ // Pointer input. Clicks pass through a .pointer-events-none overlay to what
196
+ // lies beneath, and a .pointer-events-auto child takes them back. Neither
197
+ // changes focus or keys: use inert or disabled to block all input.
198
+ .pointer-events-none { pointer-events: none; }
199
+ .pointer-events-auto { pointer-events: auto; }
200
+ .cursor-pointer { cursor: pointer; }
201
+ // Opacity. 38 is M3's disabled-content opacity. Dimming hides nothing from
202
+ // pointers, keyboards or screen readers; use .hide or `hidden` for that.
203
+ @each $step, $value in ("0": 0, "25": 0.25, "38": 0.38, "50": 0.5, "75": 0.75, "100": 1) {
204
+ .opacity-#{$step} { opacity: $value; }
205
+ }
206
+
207
+ // Lists without markers or indentation. WebKit drops the list role from a
208
+ // list with `list-style: none`, so the markup adds role="list" back.
209
+ .list-unstyled { list-style: none; padding-inline-start: 0; }
64
210
 
65
211
  // Responsive media
66
212
  img.responsive-img,
@@ -74,14 +220,14 @@ video.responsive-video {
74
220
  // element+class pair would beat `.circle` and square the disc off.
75
221
  img.responsive-img:not(.circle),
76
222
  video.responsive-video {
77
- border-radius: 12px;
223
+ border-radius: var(--md-sys-shape-corner-medium);
78
224
  }
79
225
 
80
226
  .video-container {
81
227
  position: relative;
82
228
  aspect-ratio: 16 / 9; // was padding-bottom: 56.25% + height: 0
83
229
  overflow: hidden;
84
- border-radius: 12px;
230
+ border-radius: var(--md-sys-shape-corner-medium);
85
231
 
86
232
  iframe, object, embed {
87
233
  position: absolute;
@@ -91,3 +237,14 @@ video.responsive-video {
91
237
  border: 0;
92
238
  }
93
239
  }
240
+
241
+ // Window-size prefixes for $_layout, mobile first: each applies from that
242
+ // size class up and wins over the unprefixed class, because it comes later
243
+ // in the same layer.
244
+ @each $size in ("medium", "expanded", "large", "extra-large") {
245
+ @include bp-up($size) {
246
+ @each $name, $declarations in $_layout {
247
+ .#{$size}\:#{$name} { @include _declarations($declarations); }
248
+ }
249
+ }
250
+ }
@@ -5,6 +5,7 @@
5
5
  @forward "z-depth"; // .z-depth-0 ... .z-depth-5, .hoverable
6
6
  @forward "spacing"; // .m-3, .pt-2, .px-4, ...
7
7
  @forward "visibility"; // .hide, .hide-on-med-and-down, .show-on-large, ...
8
- @forward "helpers"; // alignment, floats, truncate, responsive media
8
+ @forward "helpers"; // alignment, flex, truncate, responsive media
9
9
  @forward "scroll-area"; // native scrolling with themed scrollbars
10
10
  @forward "shapes"; // .shape-pebble, .shape-scallop-6, ... (masks)
11
+ @forward "defer-render"; // skip layout and paint for off-screen rows
@@ -1,5 +1,3 @@
1
- @use "../abstracts" as *;
2
-
3
1
  // Keep scrolling native; use the current theme for scrollbar colors.
4
2
  .scroll-area {
5
3
  overflow: auto;
@@ -1,52 +1,70 @@
1
+ @use "../abstracts" as *;
2
+
1
3
  // Margin, padding and gap scale: .m-3, .pt-2, .px-4, .ms-auto, .gap-2, ...
2
4
  //
3
5
  // Shortcut x value x direction, all !important so a helper wins over the
4
6
  // component it is applied to. Edit the maps here to change the scale.
5
7
 
6
- $spacing-shortcuts: ("margin": "m", "padding": "p") !default;
8
+ $spacing-shortcuts: ("margin": "m", "padding": "p");
7
9
  $spacing-directions: (
8
10
  "top": "t", "right": "r", "bottom": "b", "left": "l",
9
11
  "inline-start": "s", "inline-end": "e"
10
- ) !default;
11
- $spacing-horizontal: "x" !default;
12
- $spacing-vertical: "y" !default;
13
- $spacing-values: ("0": 0, "1": 0.25rem, "2": 0.5rem, "3": 0.75rem, "4": 1rem, "5": 1.5rem, "6": 3rem, "auto": auto) !default;
12
+ );
13
+ $spacing-values: ("0": 0, "1": 0.25rem, "2": 0.5rem, "3": 0.75rem, "4": 1rem, "5": 1.5rem, "6": 3rem, "auto": auto);
14
14
 
15
- @each $property, $shortcut in $spacing-shortcuts{
16
- @each $name, $value in $spacing-values{
17
- // CSS accepts auto margins, but not auto padding.
18
- @if $property != "padding" or $value != auto {
19
- // All direction spacing
20
- .#{$shortcut}-#{$name}{
21
- #{$property}: $value !important;
22
- }
23
- // Physical and logical side spacing
24
- @each $direction, $suffix in $spacing-directions{
25
- .#{$shortcut}#{$suffix}-#{$name}{
26
- #{$property}-#{$direction}: $value !important
15
+ // $prefix is "" for the base classes, or an escaped window size such as
16
+ // medium\: for the prefixed ones at the end of this file.
17
+ @mixin _margin-and-padding($prefix: "") {
18
+ @each $property, $shortcut in $spacing-shortcuts{
19
+ @each $name, $value in $spacing-values{
20
+ // CSS accepts auto margins, but not auto padding.
21
+ @if $property != "padding" or $value != auto {
22
+ // All direction spacing
23
+ .#{$prefix}#{$shortcut}-#{$name}{
24
+ #{$property}: $value !important;
27
25
  }
28
- }
29
- // x spacing
30
- @if $spacing-horizontal != null{
31
- .#{$shortcut}#{$spacing-horizontal}-#{$name}{
32
- #{$property}-left: $value !important;
33
- #{$property}-right: $value !important;
34
- }
35
- }
36
- // y spacing
37
- @if $spacing-vertical != null{
38
- .#{$shortcut}#{$spacing-vertical}-#{$name}{
39
- #{$property}-top: $value !important;
40
- #{$property}-bottom: $value !important;
26
+ // Physical and logical side spacing
27
+ @each $direction, $suffix in $spacing-directions{
28
+ // The prefixed sets skip physical left and right; start and end
29
+ // cover them and mirror in RTL.
30
+ @if $prefix == "" or ($direction != "left" and $direction != "right") {
31
+ .#{$prefix}#{$shortcut}#{$suffix}-#{$name}{
32
+ #{$property}-#{$direction}: $value !important
33
+ }
34
+ }
35
+ }
36
+ .#{$prefix}#{$shortcut}x-#{$name}{
37
+ #{$property}-inline: $value !important;
38
+ }
39
+ .#{$prefix}#{$shortcut}y-#{$name}{
40
+ #{$property}-block: $value !important;
41
41
  }
42
42
  }
43
43
  }
44
44
  }
45
45
  }
46
46
 
47
- // Gap on the same scale for flex and grid containers: .gap-0 ... .gap-6.
48
- @each $name, $value in $spacing-values {
49
- @if $name != "auto" {
50
- .gap-#{$name} { gap: $value !important; }
47
+ @mixin _gaps($prefix: "") {
48
+ // Axis rules follow every shorthand value so they win at the same breakpoint.
49
+ @each $class, $property in ("gap": "gap", "gap-x": "column-gap", "gap-y": "row-gap") {
50
+ @each $name, $value in $spacing-values {
51
+ @if $name != "auto" {
52
+ .#{$prefix}#{$class}-#{$name} { #{$property}: $value !important; }
53
+ }
54
+ }
55
+ }
56
+ }
57
+
58
+ @include _margin-and-padding;
59
+ @include _gaps;
60
+
61
+ // The margin, padding and gap scales with window-size prefixes, like the
62
+ // layout classes in _helpers.scss: .expanded:p-5 and .expanded:gap-5 apply
63
+ // from Expanded up. Later in the sheet than the base classes, and every one
64
+ // is !important, so the prefixed class wins from its size class up.
65
+ @each $size in ("medium", "expanded", "large", "extra-large") {
66
+ @include bp-up($size) {
67
+ @include _margin-and-padding("#{$size}\\:");
68
+ @include _gaps("#{$size}\\:");
51
69
  }
52
70
  }
@@ -20,7 +20,7 @@ $typescale-roles: (
20
20
  "body-large", "body-medium", "body-small",
21
21
  "label-large", "label-medium", "label-small",
22
22
  "title-large", "title-medium", "title-small"
23
- ) !default;
23
+ );
24
24
 
25
25
  @each $role in $typescale-roles {
26
26
  .#{$role} {
@@ -28,6 +28,13 @@ $typescale-roles: (
28
28
  }
29
29
  }
30
30
 
31
+ // The emphasized counterpart of each role: the same type, heavier.
32
+ @each $role in $typescale-roles {
33
+ .#{$role}-emphasized {
34
+ @include typescale($role, $emphasized: true);
35
+ }
36
+ }
37
+
31
38
  // Emphasis and case. One job each, independent of the type role.
32
39
  .italic { font-style: italic; }
33
40
  .bold { font-weight: 500; }
@@ -1,98 +1,69 @@
1
1
  @use "../abstracts" as *;
2
2
 
3
- // Showing and hiding by the exact M3 window size classes.
4
- // The older small/med/xxl names remain aliases for compatibility.
3
+ // Showing and hiding by the exact M3 window size classes. The two
4
+ // `med-and-*` hide classes have no M3-named twin and stay as they are.
5
5
 
6
6
  .hide { display: none !important; }
7
7
 
8
- // Hidden from sight, still announced: a visible label's longer twin, an
9
- // icon-only control's name, a live region's text. Important for the same
10
- // reason `.hide` is.
11
- .visually-hidden,
12
- .visually-hidden-focusable:not(:focus-within) { @include visually-hidden(true); }
13
-
14
- .hide-on-compact-only,
15
- .hide-on-small-only,
16
- .hide-on-small-and-down {
17
- @include bp-down("medium") { display: none !important; }
18
- }
19
-
20
- .hide-on-med-and-down {
21
- @include bp-down("expanded") { display: none !important; }
22
- }
23
-
24
- .hide-on-med-and-up {
25
- @include bp-up("medium") { display: none !important; }
26
- }
27
-
28
- .hide-on-medium-only,
29
- .hide-on-med-only {
30
- @include bp-between("medium", "expanded") {
31
- display: none !important;
8
+ // .hide from a window size up, like the other prefixed helpers. Mobile first,
9
+ // so there is no prefixed show: pair it with a hide-on-* class instead.
10
+ @each $size in ("medium", "expanded", "large", "extra-large") {
11
+ .#{$size}\:hide {
12
+ @include bp-up($size) { display: none !important; }
32
13
  }
33
14
  }
34
15
 
35
- .hide-on-expanded-only {
36
- @include bp-between("expanded", "large") {
37
- display: none !important;
38
- }
39
- }
40
-
41
- .hide-on-expanded-and-up {
42
- @include bp-up("expanded") { display: none !important; }
43
- }
44
-
45
- .hide-on-large-only {
46
- @include bp-between("large", "extra-large") {
47
- display: none !important;
48
- }
16
+ // Print. .hide-on-print drops a screen-only control from paper; .print-only
17
+ // is the reverse, for a printed footer or a QR code beside a link.
18
+ .hide-on-print {
19
+ @media print { display: none !important; }
49
20
  }
50
21
 
51
- .hide-on-extra-large-only,
52
- .hide-on-xxl-only {
53
- @include bp-up("extra-large") { display: none !important; }
22
+ .print-only {
23
+ @media screen { display: none !important; }
54
24
  }
55
25
 
56
- .show-on-compact,
57
- .show-on-small {
58
- @include bp-down("medium") { display: block !important; }
59
- }
26
+ // Hidden from sight, still announced: a visible label's longer twin, an
27
+ // icon-only control's name, a live region's text. Important for the same
28
+ // reason `.hide` is.
29
+ .visually-hidden,
30
+ .visually-hidden-focusable:not(:focus-within) { @include visually-hidden(true); }
60
31
 
61
- .show-on-medium {
62
- @include bp-between("medium", "expanded") {
63
- display: block !important;
32
+ // From the $from window size up to, not including, $to. A null end is open.
33
+ @mixin _window($from, $to) {
34
+ @if not $from {
35
+ @include bp-down($to) { @content; }
36
+ } @else if not $to {
37
+ @include bp-up($from) { @content; }
38
+ } @else {
39
+ @include bp-between($from, $to) { @content; }
64
40
  }
65
41
  }
66
42
 
67
- .show-on-expanded {
68
- @include bp-between("expanded", "large") {
69
- display: block !important;
43
+ // Class, first window size, first size past the range, display.
44
+ @each $class, $from, $to, $display in (
45
+ ("hide-on-compact-only", null, "medium", none),
46
+ ("hide-on-med-and-down", null, "expanded", none),
47
+ ("hide-on-med-and-up", "medium", null, none),
48
+ ("hide-on-medium-only", "medium", "expanded", none),
49
+ ("hide-on-expanded-only", "expanded", "large", none),
50
+ ("hide-on-expanded-and-up", "expanded", null, none),
51
+ ("hide-on-large-only", "large", "extra-large", none),
52
+ ("hide-on-extra-large-only", "extra-large", null, none),
53
+ ("show-on-compact", null, "medium", block),
54
+ ("show-on-medium", "medium", "expanded", block),
55
+ ("show-on-expanded", "expanded", "large", block),
56
+ ("show-on-expanded-and-up", "expanded", null, block),
57
+ ("show-on-large", "large", "extra-large", block),
58
+ ("show-on-extra-large", "extra-large", null, block),
59
+ ("show-on-medium-and-up", "medium", null, block),
60
+ ("show-on-medium-and-down", null, "expanded", block),
61
+ ) {
62
+ .#{$class} {
63
+ @include _window($from, $to) { display: $display !important; }
70
64
  }
71
65
  }
72
66
 
73
- .show-on-expanded-and-up {
74
- @include bp-up("expanded") { display: block !important; }
75
- }
76
-
77
- .show-on-large {
78
- @include bp-between("large", "extra-large") {
79
- display: block !important;
80
- }
81
- }
82
-
83
- .show-on-extra-large,
84
- .show-on-xxl {
85
- @include bp-up("extra-large") { display: block !important; }
86
- }
87
-
88
- .show-on-medium-and-up {
89
- @include bp-up("medium") { display: block !important; }
90
- }
91
-
92
- .show-on-medium-and-down {
93
- @include bp-down("expanded") { display: block !important; }
94
- }
95
-
96
67
  // Center text on Compact windows.
97
68
  .center-on-small-only {
98
69
  @include bp-down("medium") { text-align: center; }
@@ -6,13 +6,16 @@
6
6
 
7
7
  @each $level in map.keys($elevations) {
8
8
  .z-depth-#{$level} {
9
- @include z-depth($level);
9
+ // Level 0 exists to cancel a shadow, so it alone stays unconditional.
10
+ @include z-depth($level, $important: $level == "0");
10
11
  }
11
12
  }
12
13
 
14
+ // A disabled element does not lift. Utilities outrank components, so the
15
+ // disabled card and button rules cannot cancel this shadow themselves.
13
16
  .hoverable {
14
- transition: box-shadow 0.25s;
15
- &:hover {
16
- box-shadow: 0 8px 17px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
17
+ transition: box-shadow var(--md-sys-motion-duration-medium1);
18
+ &:hover:not(:where(#{$expressive-disabled}, :has(> .primary-action[aria-disabled="true"]))) {
19
+ @include z-depth("3");
17
20
  }
18
21
  }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/ts/components/radarChart.ts"],
4
- "sourcesContent": ["import { InitElements, InitElement } from '../core/component';\nimport { LineChart, LineChartOptions, COLORS, svgNode as node } from './lineChart';\n\nexport type RadarChartOptions = LineChartOptions;\n\n/** Grid rings, evenly spaced from the middle to the rim. */\nconst RINGS = 4;\n\n/**\n * Radar chart. It reads its <table> like LineChart, but each row is a spoke,\n * clockwise from the top, and each value column is a series drawn as a\n * shape joining its values on the spokes, from zero in the middle to the\n * scale's top at the rim. The row labels sit round the rim.\n *\n * Re-run `RadarChart.init(el)` after changing the table.\n */\nexport class RadarChart extends LineChart {\n protected get _type() {\n return 'radar-chart';\n }\n\n protected get _key() {\n return 'Expressive_RadarChart';\n }\n\n /** The scale starts at zero, the middle, so shapes compare by size. */\n protected get _fromZero() {\n return true;\n }\n\n protected get _circular() {\n return true;\n }\n\n static init(el: HTMLElement, options?: Partial<RadarChartOptions>): RadarChart;\n static init(els: InitElements<InitElement>, options?: Partial<RadarChartOptions>): RadarChart[];\n static init(\n els: HTMLElement | InitElements<InitElement>,\n options: Partial<RadarChartOptions> = {}\n ): RadarChart | RadarChart[] {\n return super.init(els as HTMLElement, options) as RadarChart | RadarChart[];\n }\n\n static getInstance(el: HTMLElement): RadarChart {\n return el['Expressive_RadarChart'];\n }\n\n /**\n * The cursor is a spoke turned by --turn, and the tooltip sits past its\n * tip. LineChart's points on the spoke keep their top, a share of the\n * radius, which stops at the rim and the middle like the shapes.\n */\n protected _place(index: number) {\n for (const dot of this._cursor.children as HTMLCollectionOf<HTMLElement>) {\n dot.style.top = `${Math.min(100, Math.max(0, parseFloat(dot.style.top)))}%`;\n }\n const turn = this._turn(index);\n this._cursor.style.setProperty('--turn', String(turn));\n this._tooltip.style.setProperty('--turn', String(turn));\n // On the right half it opens leftwards, over the chart.\n this._tooltip.classList.toggle('end', turn > 0 && turn < 0.5);\n }\n\n /** A row's spoke as a fraction of a turn clockwise from the top. */\n private _turn(index: number) {\n return index / this.labels.length;\n }\n\n /** Only the legend; the labels go round the rim in _draw. */\n protected _guides(): Element[] {\n return this._legend();\n }\n\n /** The nearest spoke to the pointer, by its angle from the middle. */\n protected _indexAt(e: PointerEvent) {\n const [turn] = this._polarAt(e);\n return Math.round(turn * this.labels.length) % this.labels.length;\n }\n\n /**\n * An SVG in a -50 to 50 box: the rings and spokes of the grid, then each\n * series' shape, with its points for .points. The rim is the box's edge;\n * the labels round it are HTML.\n */\n protected _draw(): Element {\n const at = (index: number, share: number) => {\n const angle = this._turn(index) * 2 * Math.PI;\n return `${(50 * share * Math.sin(angle)).toFixed(3)},${(-50 * share * Math.cos(angle)).toFixed(3)}`;\n };\n // The rim is the scale's top, so _y is the distance in from the rim.\n const share = (value: number) => Math.min(1, Math.max(0, 1 - this._y(value) / 100));\n const rows = this.labels.map((_, i) => i);\n const ring = (r: number) => `M${rows.map((i) => at(i, r)).join('L')}Z`;\n\n const svg = node('svg', { viewBox: '-50 -50 100 100', 'aria-hidden': 'true', focusable: 'false' });\n svg.append(node('path', {\n class: 'radar-chart-grid',\n d: Array.from({ length: RINGS }, (_, r) => ring((r + 1) / RINGS)).join('')\n + rows.map((i) => `M0,0L${at(i, 1)}`).join('')\n }));\n const points = this.el.classList.contains('points');\n this.series.forEach((series, s) => {\n const group = node('g', {\n class: `radar-chart-series ${series.className}`.trim(),\n 'data-series': String((s % COLORS) + 1)\n });\n // ponytail: a gap joins the spokes either side of it; mark gaps if charts need them.\n const drawn = rows.filter((i) => series.values[i] !== null);\n const corners = drawn.map((i) => at(i, share(series.values[i]!)));\n group.append(node('path', { class: 'radar-chart-shape', d: corners.length ? `M${corners.join('L')}Z` : '' }));\n // Round caps on zero-length lines, so CSS sizes the points in pixels.\n if (points) group.append(node('path', { class: 'radar-chart-points', d: corners.map((c) => `M${c}h0`).join('') }));\n svg.append(group);\n });\n\n const labels = document.createElement('ol');\n labels.className = 'radar-chart-axes';\n labels.setAttribute('aria-hidden', 'true');\n this.labels.forEach((text, i) => {\n const li = document.createElement('li');\n li.textContent = text;\n li.style.setProperty('--turn', String(this._turn(i)));\n labels.append(li);\n });\n\n const web = document.createElement('div');\n web.className = 'radar-chart-web';\n web.append(svg, labels);\n return web;\n }\n}\n"],
5
- "mappings": ";;;;;;;AAMA,IAAM,QAAQ;AAUP,IAAM,aAAN,cAAyB,UAAU;AAAA,EACxC,IAAc,QAAQ;AACpB,WAAO;AAAA,EACT;AAAA,EAEA,IAAc,OAAO;AACnB,WAAO;AAAA,EACT;AAAA;AAAA,EAGA,IAAc,YAAY;AACxB,WAAO;AAAA,EACT;AAAA,EAEA,IAAc,YAAY;AACxB,WAAO;AAAA,EACT;AAAA,EAIA,OAAO,KACL,KACA,UAAsC,CAAC,GACZ;AAC3B,WAAO,MAAM,KAAK,KAAoB,OAAO;AAAA,EAC/C;AAAA,EAEA,OAAO,YAAY,IAA6B;AAC9C,WAAO,GAAG,uBAAuB;AAAA,EACnC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOU,OAAO,OAAe;AAC9B,eAAW,OAAO,KAAK,QAAQ,UAA2C;AACxE,UAAI,MAAM,MAAM,GAAG,KAAK,IAAI,KAAK,KAAK,IAAI,GAAG,WAAW,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC;AAAA,IAC1E;AACA,UAAM,OAAO,KAAK,MAAM,KAAK;AAC7B,SAAK,QAAQ,MAAM,YAAY,UAAU,OAAO,IAAI,CAAC;AACrD,SAAK,SAAS,MAAM,YAAY,UAAU,OAAO,IAAI,CAAC;AAEtD,SAAK,SAAS,UAAU,OAAO,OAAO,OAAO,KAAK,OAAO,GAAG;AAAA,EAC9D;AAAA;AAAA,EAGQ,MAAM,OAAe;AAC3B,WAAO,QAAQ,KAAK,OAAO;AAAA,EAC7B;AAAA;AAAA,EAGU,UAAqB;AAC7B,WAAO,KAAK,QAAQ;AAAA,EACtB;AAAA;AAAA,EAGU,SAAS,GAAiB;AAClC,UAAM,CAAC,IAAI,IAAI,KAAK,SAAS,CAAC;AAC9B,WAAO,KAAK,MAAM,OAAO,KAAK,OAAO,MAAM,IAAI,KAAK,OAAO;AAAA,EAC7D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOU,QAAiB;AACzB,UAAM,KAAK,CAAC,OAAeA,WAAkB;AAC3C,YAAM,QAAQ,KAAK,MAAM,KAAK,IAAI,IAAI,KAAK;AAC3C,aAAO,IAAI,KAAKA,SAAQ,KAAK,IAAI,KAAK,GAAG,QAAQ,CAAC,CAAC,KAAK,MAAMA,SAAQ,KAAK,IAAI,KAAK,GAAG,QAAQ,CAAC,CAAC;AAAA,IACnG;AAEA,UAAM,QAAQ,CAAC,UAAkB,KAAK,IAAI,GAAG,KAAK,IAAI,GAAG,IAAI,KAAK,GAAG,KAAK,IAAI,GAAG,CAAC;AAClF,UAAM,OAAO,KAAK,OAAO,IAAI,CAAC,GAAG,MAAM,CAAC;AACxC,UAAM,OAAO,CAAC,MAAc,IAAI,KAAK,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC;AAEnE,UAAM,MAAM,QAAK,OAAO,EAAE,SAAS,mBAAmB,eAAe,QAAQ,WAAW,QAAQ,CAAC;AACjG,QAAI,OAAO,QAAK,QAAQ;AAAA,MACtB,OAAO;AAAA,MACP,GAAG,MAAM,KAAK,EAAE,QAAQ,MAAM,GAAG,CAAC,GAAG,MAAM,MAAM,IAAI,KAAK,KAAK,CAAC,EAAE,KAAK,EAAE,IACrE,KAAK,IAAI,CAAC,MAAM,QAAQ,GAAG,GAAG,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE;AAAA,IACjD,CAAC,CAAC;AACF,UAAM,SAAS,KAAK,GAAG,UAAU,SAAS,QAAQ;AAClD,SAAK,OAAO,QAAQ,CAAC,QAAQ,MAAM;AACjC,YAAM,QAAQ,QAAK,KAAK;AAAA,QACtB,OAAO,sBAAsB,OAAO,SAAS,GAAG,KAAK;AAAA,QACrD,eAAe,OAAQ,IAAI,SAAU,CAAC;AAAA,MACxC,CAAC;AAED,YAAM,QAAQ,KAAK,OAAO,CAAC,MAAM,OAAO,OAAO,CAAC,MAAM,IAAI;AAC1D,YAAM,UAAU,MAAM,IAAI,CAAC,MAAM,GAAG,GAAG,MAAM,OAAO,OAAO,CAAC,CAAE,CAAC,CAAC;AAChE,YAAM,OAAO,QAAK,QAAQ,EAAE,OAAO,qBAAqB,GAAG,QAAQ,SAAS,IAAI,QAAQ,KAAK,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;AAE5G,UAAI,OAAQ,OAAM,OAAO,QAAK,QAAQ,EAAE,OAAO,sBAAsB,GAAG,QAAQ,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;AACjH,UAAI,OAAO,KAAK;AAAA,IAClB,CAAC;AAED,UAAM,SAAS,SAAS,cAAc,IAAI;AAC1C,WAAO,YAAY;AACnB,WAAO,aAAa,eAAe,MAAM;AACzC,SAAK,OAAO,QAAQ,CAAC,MAAM,MAAM;AAC/B,YAAM,KAAK,SAAS,cAAc,IAAI;AACtC,SAAG,cAAc;AACjB,SAAG,MAAM,YAAY,UAAU,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC;AACpD,aAAO,OAAO,EAAE;AAAA,IAClB,CAAC;AAED,UAAM,MAAM,SAAS,cAAc,KAAK;AACxC,QAAI,YAAY;AAChB,QAAI,OAAO,KAAK,MAAM;AACtB,WAAO;AAAA,EACT;AACF;",
6
- "names": ["share"]
7
- }