@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.
- package/CHANGELOG.md +1589 -1
- package/README.md +9 -8
- package/dist/css/expressive.css +19304 -12021
- package/dist/css/expressive.css.map +1 -1
- package/dist/css/expressive.min.css +1 -1
- package/dist/css/expressive.min.css.map +1 -1
- package/dist/fonts/LICENSE-noto-sans-arabic +93 -0
- package/dist/fonts/LICENSE-noto-sans-hebrew +93 -0
- package/dist/fonts/LICENSE-noto-sans-thai +93 -0
- package/dist/fonts/material-symbols-outlined.woff2 +0 -0
- package/dist/fonts/material-symbols-rounded.woff2 +0 -0
- package/dist/fonts/material-symbols-sharp.woff2 +0 -0
- package/dist/fonts/noto-sans-arabic-arabic-400.woff2 +0 -0
- package/dist/fonts/noto-sans-arabic-arabic-500.woff2 +0 -0
- package/dist/fonts/noto-sans-arabic-arabic-700.woff2 +0 -0
- package/dist/fonts/noto-sans-cyrillic-400.woff2 +0 -0
- package/dist/fonts/noto-sans-cyrillic-500.woff2 +0 -0
- package/dist/fonts/noto-sans-cyrillic-700.woff2 +0 -0
- package/dist/fonts/noto-sans-cyrillic-ext-400.woff2 +0 -0
- package/dist/fonts/noto-sans-cyrillic-ext-500.woff2 +0 -0
- package/dist/fonts/noto-sans-cyrillic-ext-700.woff2 +0 -0
- package/dist/fonts/noto-sans-devanagari-400.woff2 +0 -0
- package/dist/fonts/noto-sans-devanagari-500.woff2 +0 -0
- package/dist/fonts/noto-sans-devanagari-700.woff2 +0 -0
- package/dist/fonts/noto-sans-greek-400.woff2 +0 -0
- package/dist/fonts/noto-sans-greek-500.woff2 +0 -0
- package/dist/fonts/noto-sans-greek-700.woff2 +0 -0
- package/dist/fonts/noto-sans-greek-ext-400.woff2 +0 -0
- package/dist/fonts/noto-sans-greek-ext-500.woff2 +0 -0
- package/dist/fonts/noto-sans-greek-ext-700.woff2 +0 -0
- package/dist/fonts/noto-sans-hebrew-hebrew-400.woff2 +0 -0
- package/dist/fonts/noto-sans-hebrew-hebrew-500.woff2 +0 -0
- package/dist/fonts/noto-sans-hebrew-hebrew-700.woff2 +0 -0
- package/dist/fonts/noto-sans-latin-700.woff2 +0 -0
- package/dist/fonts/noto-sans-latin-ext-400.woff2 +0 -0
- package/dist/fonts/noto-sans-latin-ext-500.woff2 +0 -0
- package/dist/fonts/noto-sans-latin-ext-700.woff2 +0 -0
- package/dist/fonts/noto-sans-thai-thai-400.woff2 +0 -0
- package/dist/fonts/noto-sans-thai-thai-500.woff2 +0 -0
- package/dist/fonts/noto-sans-thai-thai-700.woff2 +0 -0
- package/dist/fonts/noto-sans-vietnamese-400.woff2 +0 -0
- package/dist/fonts/noto-sans-vietnamese-500.woff2 +0 -0
- package/dist/fonts/noto-sans-vietnamese-700.woff2 +0 -0
- package/dist/fonts/roboto-cyrillic-400.woff2 +0 -0
- package/dist/fonts/roboto-cyrillic-500.woff2 +0 -0
- package/dist/fonts/roboto-cyrillic-700.woff2 +0 -0
- package/dist/fonts/roboto-cyrillic-ext-400.woff2 +0 -0
- package/dist/fonts/roboto-cyrillic-ext-500.woff2 +0 -0
- package/dist/fonts/roboto-cyrillic-ext-700.woff2 +0 -0
- package/dist/fonts/roboto-greek-400.woff2 +0 -0
- package/dist/fonts/roboto-greek-500.woff2 +0 -0
- package/dist/fonts/roboto-greek-700.woff2 +0 -0
- package/dist/fonts/roboto-greek-ext-400.woff2 +0 -0
- package/dist/fonts/roboto-greek-ext-500.woff2 +0 -0
- package/dist/fonts/roboto-greek-ext-700.woff2 +0 -0
- package/dist/fonts/roboto-latin-700.woff2 +0 -0
- package/dist/fonts/roboto-latin-ext-400.woff2 +0 -0
- package/dist/fonts/roboto-latin-ext-500.woff2 +0 -0
- package/dist/fonts/roboto-latin-ext-700.woff2 +0 -0
- package/dist/fonts/roboto-vietnamese-400.woff2 +0 -0
- package/dist/fonts/roboto-vietnamese-500.woff2 +0 -0
- package/dist/fonts/roboto-vietnamese-700.woff2 +0 -0
- package/dist/js/chunks/chunk-2CS6TITK.mjs +219 -0
- package/dist/js/chunks/chunk-2CS6TITK.mjs.map +7 -0
- package/dist/js/chunks/chunk-2RLBDFH4.mjs +108 -0
- package/dist/js/chunks/chunk-2RLBDFH4.mjs.map +7 -0
- package/dist/js/chunks/chunk-3L3QIYLC.mjs +85 -0
- package/dist/js/chunks/chunk-3L3QIYLC.mjs.map +7 -0
- package/dist/js/chunks/chunk-4EWGD4V2.mjs +75 -0
- package/dist/js/chunks/chunk-4EWGD4V2.mjs.map +7 -0
- package/dist/js/chunks/chunk-4IKVPCSU.mjs +7 -0
- package/dist/js/chunks/chunk-4IKVPCSU.mjs.map +7 -0
- package/dist/js/chunks/chunk-4PIXLDNJ.mjs +127 -0
- package/dist/js/chunks/chunk-4PIXLDNJ.mjs.map +7 -0
- package/dist/js/chunks/{chunk-A7ALMYUR.mjs → chunk-4QUCNFSD.mjs} +68 -125
- package/dist/js/chunks/chunk-4QUCNFSD.mjs.map +7 -0
- package/dist/js/chunks/{chunk-4TKTLGEM.mjs → chunk-4TRZ2AER.mjs} +35 -41
- package/dist/js/chunks/chunk-4TRZ2AER.mjs.map +7 -0
- package/dist/js/chunks/{chunk-BG6ZRB5H.mjs → chunk-5KIHWJI2.mjs} +40 -26
- package/dist/js/chunks/chunk-5KIHWJI2.mjs.map +7 -0
- package/dist/js/chunks/{chunk-YDCS5S3J.mjs → chunk-67ZPPKXS.mjs} +20 -33
- package/dist/js/chunks/chunk-67ZPPKXS.mjs.map +7 -0
- package/dist/js/chunks/{chunk-3DHK5CZU.mjs → chunk-6FSEUFVW.mjs} +40 -29
- package/dist/js/chunks/chunk-6FSEUFVW.mjs.map +7 -0
- package/dist/js/chunks/chunk-752ADW4M.mjs +225 -0
- package/dist/js/chunks/chunk-752ADW4M.mjs.map +7 -0
- package/dist/js/chunks/{chunk-GVGT6MIU.mjs → chunk-75E5EDJF.mjs} +3 -11
- package/dist/js/chunks/chunk-75E5EDJF.mjs.map +7 -0
- package/dist/js/chunks/{chunk-TBM3FT7G.mjs → chunk-7NLUI3RR.mjs} +148 -78
- package/dist/js/chunks/chunk-7NLUI3RR.mjs.map +7 -0
- package/dist/js/chunks/chunk-7W7TV6NY.mjs +108 -0
- package/dist/js/chunks/chunk-7W7TV6NY.mjs.map +7 -0
- package/dist/js/chunks/chunk-7YQBHTK3.mjs +225 -0
- package/dist/js/chunks/chunk-7YQBHTK3.mjs.map +7 -0
- package/dist/js/chunks/chunk-7YZ5CN3V.mjs +33 -0
- package/dist/js/chunks/chunk-7YZ5CN3V.mjs.map +7 -0
- package/dist/js/chunks/chunk-AI73GJKG.mjs +28 -0
- package/dist/js/chunks/chunk-AI73GJKG.mjs.map +7 -0
- package/dist/js/chunks/{chunk-NS2UMNZV.mjs → chunk-ANKFWNWT.mjs} +21 -45
- package/dist/js/chunks/chunk-ANKFWNWT.mjs.map +7 -0
- package/dist/js/chunks/{chunk-GIW4K4SE.mjs → chunk-B7DQFHA5.mjs} +37 -53
- package/dist/js/chunks/chunk-B7DQFHA5.mjs.map +7 -0
- package/dist/js/chunks/chunk-BIGU5RCJ.mjs +153 -0
- package/dist/js/chunks/chunk-BIGU5RCJ.mjs.map +7 -0
- package/dist/js/chunks/{chunk-GUB3TNO2.mjs → chunk-BPF3I2MN.mjs} +109 -27
- package/dist/js/chunks/chunk-BPF3I2MN.mjs.map +7 -0
- package/dist/js/chunks/chunk-CMGXGYUC.mjs +74 -0
- package/dist/js/chunks/chunk-CMGXGYUC.mjs.map +7 -0
- package/dist/js/chunks/{chunk-JIDMQGK6.mjs → chunk-CSYWKEK3.mjs} +322 -223
- package/dist/js/chunks/chunk-CSYWKEK3.mjs.map +7 -0
- package/dist/js/chunks/chunk-CZSQHXEV.mjs +227 -0
- package/dist/js/chunks/chunk-CZSQHXEV.mjs.map +7 -0
- package/dist/js/chunks/chunk-DZYVU75J.mjs +121 -0
- package/dist/js/chunks/chunk-DZYVU75J.mjs.map +7 -0
- package/dist/js/chunks/{chunk-QDAL4IYN.mjs → chunk-EC26RU2D.mjs} +11 -29
- package/dist/js/chunks/chunk-EC26RU2D.mjs.map +7 -0
- package/dist/js/chunks/{chunk-3GVFZ4XO.mjs → chunk-EVCVFEV3.mjs} +238 -152
- package/dist/js/chunks/chunk-EVCVFEV3.mjs.map +7 -0
- package/dist/js/chunks/chunk-FCNF4GRJ.mjs +445 -0
- package/dist/js/chunks/chunk-FCNF4GRJ.mjs.map +7 -0
- package/dist/js/chunks/chunk-GCWWEZKO.mjs +342 -0
- package/dist/js/chunks/chunk-GCWWEZKO.mjs.map +7 -0
- package/dist/js/chunks/chunk-GNRSYMVH.mjs +1 -0
- package/dist/js/chunks/chunk-GVZQH2H5.mjs +54 -0
- package/dist/js/chunks/chunk-GVZQH2H5.mjs.map +7 -0
- package/dist/js/chunks/chunk-GWZ76SR4.mjs +435 -0
- package/dist/js/chunks/chunk-GWZ76SR4.mjs.map +7 -0
- package/dist/js/chunks/{chunk-ZAS25YFD.mjs → chunk-ILDRRG7T.mjs} +21 -23
- package/dist/js/chunks/chunk-ILDRRG7T.mjs.map +7 -0
- package/dist/js/chunks/chunk-INLZWHLY.mjs +80 -0
- package/dist/js/chunks/chunk-INLZWHLY.mjs.map +7 -0
- package/dist/js/chunks/chunk-JUKBBN6P.mjs +175 -0
- package/dist/js/chunks/chunk-JUKBBN6P.mjs.map +7 -0
- package/dist/js/chunks/chunk-KYIEG4U3.mjs +730 -0
- package/dist/js/chunks/chunk-KYIEG4U3.mjs.map +7 -0
- package/dist/js/chunks/{chunk-KHV6DZXX.mjs → chunk-KZPSAXIU.mjs} +156 -46
- package/dist/js/chunks/chunk-KZPSAXIU.mjs.map +7 -0
- package/dist/js/chunks/chunk-LDXCC2L3.mjs +438 -0
- package/dist/js/chunks/chunk-LDXCC2L3.mjs.map +7 -0
- package/dist/js/chunks/chunk-NAC72P7R.mjs +137 -0
- package/dist/js/chunks/chunk-NAC72P7R.mjs.map +7 -0
- package/dist/js/chunks/chunk-NBJAUGPP.mjs +244 -0
- package/dist/js/chunks/chunk-NBJAUGPP.mjs.map +7 -0
- package/dist/js/chunks/chunk-NNHVANQA.mjs +113 -0
- package/dist/js/chunks/chunk-NNHVANQA.mjs.map +7 -0
- package/dist/js/chunks/chunk-NVQ5EHCU.mjs +376 -0
- package/dist/js/chunks/chunk-NVQ5EHCU.mjs.map +7 -0
- package/dist/js/chunks/{chunk-Z2NRKI7R.mjs → chunk-OP43LLIC.mjs} +44 -73
- package/dist/js/chunks/chunk-OP43LLIC.mjs.map +7 -0
- package/dist/js/chunks/chunk-OUCHKSAW.mjs +63 -0
- package/dist/js/chunks/chunk-OUCHKSAW.mjs.map +7 -0
- package/dist/js/chunks/{chunk-PM655FXL.mjs → chunk-OYNUDOHR.mjs} +20 -48
- package/dist/js/chunks/chunk-OYNUDOHR.mjs.map +7 -0
- package/dist/js/chunks/{chunk-UEZUJQ66.mjs → chunk-P6DRQ6KS.mjs} +36 -31
- package/dist/js/chunks/chunk-P6DRQ6KS.mjs.map +7 -0
- package/dist/js/chunks/chunk-PA7NU5AK.mjs +99 -0
- package/dist/js/chunks/chunk-PA7NU5AK.mjs.map +7 -0
- package/dist/js/chunks/chunk-QACZ6TUP.mjs +224 -0
- package/dist/js/chunks/chunk-QACZ6TUP.mjs.map +7 -0
- package/dist/js/chunks/{chunk-5HQSGDZ5.mjs → chunk-QXKWVHBD.mjs} +286 -203
- package/dist/js/chunks/chunk-QXKWVHBD.mjs.map +7 -0
- package/dist/js/chunks/{chunk-DAIU5SLG.mjs → chunk-ROH2HDB4.mjs} +7 -6
- package/dist/js/chunks/chunk-ROH2HDB4.mjs.map +7 -0
- package/dist/js/chunks/chunk-S23RJ3XY.mjs +86 -0
- package/dist/js/chunks/chunk-S23RJ3XY.mjs.map +7 -0
- package/dist/js/chunks/{chunk-FS7XY3HT.mjs → chunk-SPPHF7YZ.mjs} +36 -29
- package/dist/js/chunks/chunk-SPPHF7YZ.mjs.map +7 -0
- package/dist/js/chunks/chunk-T3BNSRP3.mjs +152 -0
- package/dist/js/chunks/chunk-T3BNSRP3.mjs.map +7 -0
- package/dist/js/chunks/chunk-TFABTUAZ.mjs +108 -0
- package/dist/js/chunks/chunk-TFABTUAZ.mjs.map +7 -0
- package/dist/js/chunks/chunk-U4B3VHFS.mjs +507 -0
- package/dist/js/chunks/chunk-U4B3VHFS.mjs.map +7 -0
- package/dist/js/chunks/chunk-UGJHCHXG.mjs +341 -0
- package/dist/js/chunks/chunk-UGJHCHXG.mjs.map +7 -0
- package/dist/js/chunks/chunk-VFV75DHF.mjs +70 -0
- package/dist/js/chunks/chunk-VFV75DHF.mjs.map +7 -0
- package/dist/js/chunks/{chunk-4HZMB7LI.mjs → chunk-VGY4M57S.mjs} +281 -135
- package/dist/js/chunks/chunk-VGY4M57S.mjs.map +7 -0
- package/dist/js/chunks/chunk-VH4BMAZS.mjs +167 -0
- package/dist/js/chunks/chunk-VH4BMAZS.mjs.map +7 -0
- package/dist/js/chunks/chunk-VJVQIXHC.mjs +123 -0
- package/dist/js/chunks/chunk-VJVQIXHC.mjs.map +7 -0
- package/dist/js/chunks/{chunk-S3XDFGSZ.mjs → chunk-VMY55K2X.mjs} +92 -141
- package/dist/js/chunks/chunk-VMY55K2X.mjs.map +7 -0
- package/dist/js/chunks/{chunk-UEXCIMJZ.mjs → chunk-VR3L2WN5.mjs} +11 -17
- package/dist/js/chunks/chunk-VR3L2WN5.mjs.map +7 -0
- package/dist/js/chunks/chunk-W6FAL3TI.mjs +38 -0
- package/dist/js/chunks/chunk-W6FAL3TI.mjs.map +7 -0
- package/dist/js/chunks/chunk-WU7XJ4RR.mjs +450 -0
- package/dist/js/chunks/chunk-WU7XJ4RR.mjs.map +7 -0
- package/dist/js/chunks/chunk-X7SDA2J5.mjs +116 -0
- package/dist/js/chunks/chunk-X7SDA2J5.mjs.map +7 -0
- package/dist/js/chunks/chunk-Y6H2X7ZC.mjs +209 -0
- package/dist/js/chunks/chunk-Y6H2X7ZC.mjs.map +7 -0
- package/dist/js/chunks/chunk-Y6TLRA3U.mjs +129 -0
- package/dist/js/chunks/chunk-Y6TLRA3U.mjs.map +7 -0
- package/dist/js/chunks/chunk-Z4GICXR2.mjs +190 -0
- package/dist/js/chunks/chunk-Z4GICXR2.mjs.map +7 -0
- package/dist/js/chunks/chunk-Z4OARDZ7.mjs +442 -0
- package/dist/js/chunks/chunk-Z4OARDZ7.mjs.map +7 -0
- package/dist/js/chunks/{chunk-MZ6Z24BX.mjs → chunk-ZJNLAGY5.mjs} +19 -34
- package/dist/js/chunks/chunk-ZJNLAGY5.mjs.map +7 -0
- package/dist/js/chunks/chunk-ZKWUWBUB.mjs +81 -0
- package/dist/js/chunks/chunk-ZKWUWBUB.mjs.map +7 -0
- package/dist/js/chunks/chunk-ZM3XBHWV.mjs +746 -0
- package/dist/js/chunks/chunk-ZM3XBHWV.mjs.map +7 -0
- package/dist/js/chunks/chunk-ZO6ZLHFF.mjs +48 -0
- package/dist/js/chunks/chunk-ZO6ZLHFF.mjs.map +7 -0
- package/dist/js/chunks/chunk-ZVLOUDIJ.mjs +251 -0
- package/dist/js/chunks/chunk-ZVLOUDIJ.mjs.map +7 -0
- package/dist/js/expressive.cjs +10333 -4070
- package/dist/js/expressive.cjs.map +4 -4
- package/dist/js/expressive.js +10333 -4070
- package/dist/js/expressive.js.map +4 -4
- package/dist/js/expressive.min.js +23 -25
- package/dist/js/expressive.min.js.map +4 -4
- package/dist/js/expressive.mjs +184 -69
- package/dist/js/expressive.mjs.map +2 -2
- package/dist/js/internal/behaviors/bottomSheets.mjs +4 -3
- package/dist/js/internal/behaviors/copy.mjs +9 -0
- package/dist/js/internal/behaviors/copy.mjs.map +7 -0
- package/dist/js/internal/behaviors/dataTables.mjs +10 -0
- package/dist/js/internal/behaviors/dataTables.mjs.map +7 -0
- package/dist/js/internal/behaviors/dialogs.mjs +2 -2
- package/dist/js/internal/behaviors/forms.mjs +2 -2
- package/dist/js/internal/behaviors/imageCompare.mjs +8 -0
- package/dist/js/internal/behaviors/imageCompare.mjs.map +7 -0
- package/dist/js/internal/behaviors/lists.mjs +8 -0
- package/dist/js/internal/behaviors/lists.mjs.map +7 -0
- package/dist/js/internal/behaviors/paneResize.mjs +8 -0
- package/dist/js/internal/behaviors/paneResize.mjs.map +7 -0
- package/dist/js/internal/behaviors/sheetDrag.mjs +7 -2
- package/dist/js/internal/behaviors/sideSheets.mjs +4 -3
- package/dist/js/internal/behaviors/sortable.mjs +8 -0
- package/dist/js/internal/behaviors/sortable.mjs.map +7 -0
- package/dist/js/internal/behaviors/theme.mjs +8 -0
- package/dist/js/internal/behaviors/theme.mjs.map +7 -0
- package/dist/js/internal/behaviors/tour.mjs +8 -0
- package/dist/js/internal/behaviors/tour.mjs.map +7 -0
- package/dist/js/internal/behaviors/transferList.mjs +8 -0
- package/dist/js/internal/behaviors/transferList.mjs.map +7 -0
- package/dist/js/internal/components/appBar.mjs +3 -2
- package/dist/js/internal/components/autocomplete.mjs +4 -4
- package/dist/js/internal/components/backToTop.mjs +9 -0
- package/dist/js/internal/components/backToTop.mjs.map +7 -0
- package/dist/js/internal/components/barChart.mjs +5 -4
- package/dist/js/internal/components/buttonGroup.mjs +3 -2
- package/dist/js/internal/components/buttons.mjs +3 -3
- package/dist/js/internal/components/cards.mjs +3 -3
- package/dist/js/internal/components/carousel.mjs +3 -3
- package/dist/js/internal/components/cascader.mjs +10 -0
- package/dist/js/internal/components/cascader.mjs.map +7 -0
- package/dist/js/internal/components/characterCounter.mjs +3 -2
- package/dist/js/internal/components/chips.mjs +6 -5
- package/dist/js/internal/components/colorPicker.mjs +9 -0
- package/dist/js/internal/components/colorPicker.mjs.map +7 -0
- package/dist/js/internal/components/columnChart.mjs +4 -3
- package/dist/js/internal/components/commandPalette.mjs +3 -3
- package/dist/js/internal/components/confetti.mjs +3 -2
- package/dist/js/internal/components/currencyInput.mjs +9 -0
- package/dist/js/internal/components/currencyInput.mjs.map +7 -0
- package/dist/js/internal/components/datepicker.mjs +11 -8
- package/dist/js/internal/components/expandingCard.mjs +3 -3
- package/dist/js/internal/components/funnelChart.mjs +10 -0
- package/dist/js/internal/components/funnelChart.mjs.map +7 -0
- package/dist/js/internal/components/heatmapChart.mjs +4 -3
- package/dist/js/internal/components/hoverCard.mjs +9 -0
- package/dist/js/internal/components/hoverCard.mjs.map +7 -0
- package/dist/js/internal/components/index.mjs +133 -64
- package/dist/js/internal/components/inputMask.mjs +9 -0
- package/dist/js/internal/components/inputMask.mjs.map +7 -0
- package/dist/js/internal/components/keypad.mjs +9 -0
- package/dist/js/internal/components/keypad.mjs.map +7 -0
- package/dist/js/internal/components/lightbox.mjs +3 -3
- package/dist/js/internal/components/lineChart.mjs +29 -4
- package/dist/js/internal/components/loadingOverlay.mjs +9 -0
- package/dist/js/internal/components/loadingOverlay.mjs.map +7 -0
- package/dist/js/internal/components/mapView.mjs +3 -3
- package/dist/js/internal/components/menu.mjs +3 -3
- package/dist/js/internal/components/menubar.mjs +10 -0
- package/dist/js/internal/components/menubar.mjs.map +7 -0
- package/dist/js/internal/components/messageScroller.mjs +3 -3
- package/dist/js/internal/components/mixedChart.mjs +5 -4
- package/dist/js/internal/components/navigationRail.mjs +3 -2
- package/dist/js/internal/components/particles.mjs +3 -2
- package/dist/js/internal/components/pieChart.mjs +4 -3
- package/dist/js/internal/components/pullToRefresh.mjs +9 -0
- package/dist/js/internal/components/pullToRefresh.mjs.map +7 -0
- package/dist/js/internal/components/questionnaire.mjs +3 -3
- package/dist/js/internal/components/radarChart.mjs +4 -3
- package/dist/js/internal/components/radialChart.mjs +4 -3
- package/dist/js/internal/components/registry.mjs +59 -40
- package/dist/js/internal/components/richTextEditor.mjs +3 -3
- package/dist/js/internal/components/sankeyChart.mjs +10 -0
- package/dist/js/internal/components/sankeyChart.mjs.map +7 -0
- package/dist/js/internal/components/scatterChart.mjs +10 -0
- package/dist/js/internal/components/scatterChart.mjs.map +7 -0
- package/dist/js/internal/components/scrollspy.mjs +3 -2
- package/dist/js/internal/components/select.mjs +4 -4
- package/dist/js/internal/components/showMore.mjs +9 -0
- package/dist/js/internal/components/showMore.mjs.map +7 -0
- package/dist/js/internal/components/slider.mjs +3 -3
- package/dist/js/internal/components/snackbar.mjs +2 -2
- package/dist/js/internal/components/swipeActions.mjs +9 -0
- package/dist/js/internal/components/swipeActions.mjs.map +7 -0
- package/dist/js/internal/components/tabs.mjs +3 -4
- package/dist/js/internal/components/timepicker.mjs +5 -4
- package/dist/js/internal/components/tooltip.mjs +3 -3
- package/dist/js/internal/components/treeSelect.mjs +13 -0
- package/dist/js/internal/components/treeSelect.mjs.map +7 -0
- package/dist/js/internal/components/treemapChart.mjs +10 -0
- package/dist/js/internal/components/treemapChart.mjs.map +7 -0
- package/dist/js/internal/core/component.mjs +2 -1
- package/dist/js/internal/core/formControl.mjs +12 -0
- package/dist/js/internal/core/formControl.mjs.map +7 -0
- package/dist/js/internal/core/spring.mjs +11 -0
- package/dist/js/internal/core/spring.mjs.map +7 -0
- package/dist/js/internal/core/utils.mjs +11 -3
- package/dist/js/internal/plugins/dockedDisplayPlugin.mjs +2 -2
- package/dist/js/internal/plugins/modalDisplayPlugin.mjs +13 -0
- package/dist/js/internal/plugins/modalDisplayPlugin.mjs.map +7 -0
- package/dist/js/modular.mjs +175 -69
- package/dist/types/behaviors/bottomSheets.d.ts +19 -3
- package/dist/types/behaviors/copy.d.ts +18 -0
- package/dist/types/behaviors/dataTables.d.ts +129 -0
- package/dist/types/behaviors/dialogs.d.ts +27 -1
- package/dist/types/behaviors/forms.d.ts +68 -2
- package/dist/types/behaviors/imageCompare.d.ts +12 -0
- package/dist/types/behaviors/lists.d.ts +12 -0
- package/dist/types/behaviors/paneResize.d.ts +29 -0
- package/dist/types/behaviors/sheetDrag.d.ts +18 -0
- package/dist/types/behaviors/sideSheets.d.ts +1 -1
- package/dist/types/behaviors/sortable.d.ts +28 -0
- package/dist/types/behaviors/theme.d.ts +22 -0
- package/dist/types/behaviors/tour.d.ts +36 -0
- package/dist/types/behaviors/transferList.d.ts +51 -0
- package/dist/types/components/appBar.d.ts +5 -6
- package/dist/types/components/autocomplete.d.ts +92 -17
- package/dist/types/components/backToTop.d.ts +36 -0
- package/dist/types/components/barChart.d.ts +3 -6
- package/dist/types/components/buttonGroup.d.ts +2 -4
- package/dist/types/components/buttons.d.ts +5 -5
- package/dist/types/components/cards.d.ts +3 -16
- package/dist/types/components/carousel.d.ts +9 -15
- package/dist/types/components/cascader.d.ts +130 -0
- package/dist/types/components/characterCounter.d.ts +2 -15
- package/dist/types/components/chips.d.ts +65 -19
- package/dist/types/components/colorPicker.d.ts +42 -0
- package/dist/types/components/columnChart.d.ts +23 -10
- package/dist/types/components/commandPalette.d.ts +11 -16
- package/dist/types/components/confetti.d.ts +2 -4
- package/dist/types/components/currencyInput.d.ts +59 -0
- package/dist/types/components/datepicker.d.ts +59 -36
- package/dist/types/components/expandingCard.d.ts +6 -6
- package/dist/types/components/funnelChart.d.ts +38 -0
- package/dist/types/components/heatmapChart.d.ts +39 -8
- package/dist/types/components/hoverCard.d.ts +58 -0
- package/dist/types/components/index.d.ts +17 -1
- package/dist/types/components/inputMask.d.ts +30 -0
- package/dist/types/components/keypad.d.ts +66 -0
- package/dist/types/components/lightbox.d.ts +17 -25
- package/dist/types/components/lineChart.d.ts +176 -10
- package/dist/types/components/loadingOverlay.d.ts +42 -0
- package/dist/types/components/mapView.d.ts +26 -17
- package/dist/types/components/menu.d.ts +61 -22
- package/dist/types/components/menubar.d.ts +37 -0
- package/dist/types/components/messageScroller.d.ts +2 -14
- package/dist/types/components/mixedChart.d.ts +15 -6
- package/dist/types/components/navigationRail.d.ts +16 -5
- package/dist/types/components/particles.d.ts +8 -4
- package/dist/types/components/pieChart.d.ts +32 -7
- package/dist/types/components/pullToRefresh.d.ts +80 -0
- package/dist/types/components/questionnaire.d.ts +58 -16
- package/dist/types/components/radarChart.d.ts +10 -6
- package/dist/types/components/radialChart.d.ts +58 -8
- package/dist/types/components/registry.d.ts +77 -3
- package/dist/types/components/richTextEditor.d.ts +6 -14
- package/dist/types/components/sankeyChart.d.ts +72 -0
- package/dist/types/components/scatterChart.d.ts +102 -0
- package/dist/types/components/scrollspy.d.ts +3 -5
- package/dist/types/components/select.d.ts +43 -30
- package/dist/types/components/showMore.d.ts +51 -0
- package/dist/types/components/slider.d.ts +5 -15
- package/dist/types/components/snackbar.d.ts +62 -0
- package/dist/types/components/swipeActions.d.ts +81 -0
- package/dist/types/components/tabs.d.ts +93 -27
- package/dist/types/components/timepicker.d.ts +114 -20
- package/dist/types/components/tooltip.d.ts +56 -20
- package/dist/types/components/treeSelect.d.ts +106 -0
- package/dist/types/components/treemapChart.d.ts +56 -0
- package/dist/types/core/component.d.ts +43 -25
- package/dist/types/core/formControl.d.ts +21 -0
- package/dist/types/core/spring.d.ts +20 -0
- package/dist/types/core/utils.d.ts +85 -72
- package/dist/types/modular.d.ts +33 -1
- package/dist/types/plugins/dockedDisplayPlugin.d.ts +10 -7
- package/dist/types/plugins/modalDisplayPlugin.d.ts +32 -0
- package/package.json +10 -8
- package/src/sass/README.md +27 -18
- package/src/sass/abstracts/_breakpoints.scss +0 -1
- package/src/sass/abstracts/_elevation.scss +13 -7
- package/src/sass/abstracts/_index.scss +1 -0
- package/src/sass/abstracts/_mixins.scss +438 -92
- package/src/sass/abstracts/_spring.scss +63 -0
- package/src/sass/abstracts/_variables.scss +43 -15
- package/src/sass/base/_fonts.scss +61 -48
- package/src/sass/base/_global.scss +105 -34
- package/src/sass/base/_index.scss +3 -1
- package/src/sass/base/_normalize.scss +59 -114
- package/src/sass/base/_print.scss +21 -0
- package/src/sass/base/_prose.scss +68 -0
- package/src/sass/base/_typography.scss +9 -5
- package/src/sass/components/_accordion.scss +9 -16
- package/src/sass/components/_alert.scss +102 -0
- package/src/sass/components/_aura.scss +8 -3
- package/src/sass/components/_avatar.scss +3 -3
- package/src/sass/components/_back-to-top.scss +38 -0
- package/src/sass/components/_badges.scss +7 -13
- package/src/sass/components/_bar-chart.scss +41 -19
- package/src/sass/components/_bottom-sheet.scss +44 -16
- package/src/sass/components/_breadcrumb.scss +8 -1
- package/src/sass/components/_button-groups.scss +44 -89
- package/src/sass/components/_buttons.scss +156 -63
- package/src/sass/components/_calendar.scss +246 -0
- package/src/sass/components/_cards.scss +41 -68
- package/src/sass/components/_carousel.scss +43 -158
- package/src/sass/components/_cascader.scss +142 -0
- package/src/sass/components/_chips.scss +36 -52
- package/src/sass/components/_column-chart.scss +19 -12
- package/src/sass/components/_command-palette.scss +4 -7
- package/src/sass/components/_confetti.scss +0 -2
- package/src/sass/components/_countdown.scss +1 -1
- package/src/sass/components/_data-table.scss +162 -27
- package/src/sass/components/_datepicker.scss +57 -62
- package/src/sass/components/_description-list.scss +85 -0
- package/src/sass/components/_dialog.scss +42 -44
- package/src/sass/components/_docked-display.scss +1 -3
- package/src/sass/components/_drag-handle.scss +16 -20
- package/src/sass/components/_expanding-card.scss +20 -9
- package/src/sass/components/_fab-menu.scss +44 -32
- package/src/sass/components/_funnel-chart.scss +124 -0
- package/src/sass/components/_heatmap-chart.scss +113 -24
- package/src/sass/components/_icon-buttons.scss +7 -8
- package/src/sass/components/_icons-material-design.scss +2 -2
- package/src/sass/components/_image-compare.scss +108 -0
- package/src/sass/components/_index.scss +21 -0
- package/src/sass/components/_keypad.scss +182 -0
- package/src/sass/components/_kpi.scss +6 -11
- package/src/sass/components/_lightbox.scss +26 -20
- package/src/sass/components/_line-chart.scss +16 -2
- package/src/sass/components/_list.scss +59 -14
- package/src/sass/components/_loading-indicator.scss +1 -0
- package/src/sass/components/_loading-overlay.scss +105 -0
- package/src/sass/components/_map.scss +35 -13
- package/src/sass/components/_marquee.scss +3 -2
- package/src/sass/components/_mega-menu.scss +137 -0
- package/src/sass/components/_menu.scss +159 -182
- package/src/sass/components/_menubar.scss +59 -0
- package/src/sass/components/_message-scroller.scss +2 -2
- package/src/sass/components/_message.scss +3 -3
- package/src/sass/components/_mixed-chart.scss +37 -9
- package/src/sass/components/_modal-display.scss +21 -0
- package/src/sass/components/_navbar.scss +43 -65
- package/src/sass/components/_navigation-bar.scss +15 -77
- package/src/sass/components/_navigation-rail.scss +171 -121
- package/src/sass/components/_org-chart.scss +192 -0
- package/src/sass/components/_page-footer.scss +16 -13
- package/src/sass/components/_pagination.scss +6 -13
- package/src/sass/components/_panes.scss +33 -31
- package/src/sass/components/_particles.scss +0 -2
- package/src/sass/components/_pie-chart.scss +91 -11
- package/src/sass/components/_popover.scss +18 -5
- package/src/sass/components/_progress.scss +158 -35
- package/src/sass/components/_pull-to-refresh.scss +90 -0
- package/src/sass/components/_questionnaire.scss +74 -3
- package/src/sass/components/_radar-chart.scss +38 -10
- package/src/sass/components/_radial-chart.scss +113 -5
- package/src/sass/components/_rich-text-editor.scss +2 -2
- package/src/sass/components/_sankey-chart.scss +114 -0
- package/src/sass/components/_scatter-chart.scss +153 -0
- package/src/sass/components/_scrim.scss +0 -2
- package/src/sass/components/_scrollspy.scss +0 -2
- package/src/sass/components/_search.scss +26 -22
- package/src/sass/components/_show-more.scss +8 -0
- package/src/sass/components/_side-sheet.scss +23 -40
- package/src/sass/components/_skeleton.scss +2 -4
- package/src/sass/components/_snackbar.scss +27 -21
- package/src/sass/components/_split-button.scss +5 -5
- package/src/sass/components/_stat.scss +3 -8
- package/src/sass/components/_stepper.scss +1 -5
- package/src/sass/components/_swipe-actions.scss +71 -0
- package/src/sass/components/_tabs.scss +51 -32
- package/src/sass/components/_timeline.scss +12 -12
- package/src/sass/components/_timepicker.scss +111 -112
- package/src/sass/components/_toolbar.scss +35 -47
- package/src/sass/components/_tooltip.scss +21 -12
- package/src/sass/components/_tour.scss +89 -0
- package/src/sass/components/_transfer-list.scss +73 -0
- package/src/sass/components/_transitions.scss +4 -4
- package/src/sass/components/_tree.scss +3 -16
- package/src/sass/components/_treemap-chart.scss +122 -0
- package/src/sass/components/forms/_checkboxes.scss +140 -86
- package/src/sass/components/forms/_color-picker.scss +135 -0
- package/src/sass/components/forms/_color-swatches.scss +85 -0
- package/src/sass/components/forms/_drop-zone.scss +15 -9
- package/src/sass/components/forms/_fieldset.scss +10 -10
- package/src/sass/components/forms/_file-input.scss +6 -9
- package/src/sass/components/forms/_index.scss +3 -1
- package/src/sass/components/forms/_input-fields.scss +254 -90
- package/src/sass/components/forms/_radio-buttons.scss +40 -127
- package/src/sass/components/forms/_rating.scss +2 -32
- package/src/sass/components/forms/_select.scss +199 -23
- package/src/sass/components/forms/_slider.scss +140 -330
- package/src/sass/components/forms/_switches.scss +53 -164
- package/src/sass/custom.scss +10 -1
- package/src/sass/expressive.scss +3 -63
- package/src/sass/tokens/_contrast.scss +94 -0
- package/src/sass/tokens/_elevation.scss +16 -0
- package/src/sass/tokens/_index.scss +5 -0
- package/src/sass/tokens/_motion.scss +109 -0
- package/src/sass/tokens/_reference.scss +72 -141
- package/src/sass/tokens/_shape.scss +38 -0
- package/src/sass/tokens/_stacking.scss +27 -0
- package/src/sass/tokens/_state.scss +2 -4
- package/src/sass/tokens/_theme.scss +11 -2
- package/src/sass/tokens/_vibrant.scss +2 -5
- package/src/sass/utilities/_colors.scss +6 -1
- package/src/sass/utilities/_defer-render.scss +17 -0
- package/src/sass/utilities/_helpers.scss +183 -26
- package/src/sass/utilities/_index.scss +2 -1
- package/src/sass/utilities/_scroll-area.scss +0 -2
- package/src/sass/utilities/_spacing.scss +52 -34
- package/src/sass/utilities/_typescale.scss +8 -1
- package/src/sass/utilities/_visibility.scss +47 -76
- package/src/sass/utilities/_z-depth.scss +7 -4
- package/dist/js/chunks/chunk-3DHK5CZU.mjs.map +0 -7
- package/dist/js/chunks/chunk-3GVFZ4XO.mjs.map +0 -7
- package/dist/js/chunks/chunk-4HZMB7LI.mjs.map +0 -7
- package/dist/js/chunks/chunk-4KMNFIFZ.mjs +0 -270
- package/dist/js/chunks/chunk-4KMNFIFZ.mjs.map +0 -7
- package/dist/js/chunks/chunk-4TKTLGEM.mjs.map +0 -7
- package/dist/js/chunks/chunk-5BKHWHYY.mjs +0 -292
- package/dist/js/chunks/chunk-5BKHWHYY.mjs.map +0 -7
- package/dist/js/chunks/chunk-5HQSGDZ5.mjs.map +0 -7
- package/dist/js/chunks/chunk-6N2XAEFK.mjs +0 -125
- package/dist/js/chunks/chunk-6N2XAEFK.mjs.map +0 -7
- package/dist/js/chunks/chunk-A7ALMYUR.mjs.map +0 -7
- package/dist/js/chunks/chunk-BG6ZRB5H.mjs.map +0 -7
- package/dist/js/chunks/chunk-CUQPB25U.mjs +0 -55
- package/dist/js/chunks/chunk-CUQPB25U.mjs.map +0 -7
- package/dist/js/chunks/chunk-DAIU5SLG.mjs.map +0 -7
- package/dist/js/chunks/chunk-FS7XY3HT.mjs.map +0 -7
- package/dist/js/chunks/chunk-GIW4K4SE.mjs.map +0 -7
- package/dist/js/chunks/chunk-GUB3TNO2.mjs.map +0 -7
- package/dist/js/chunks/chunk-GVGT6MIU.mjs.map +0 -7
- package/dist/js/chunks/chunk-GZKEFWPM.mjs +0 -181
- package/dist/js/chunks/chunk-GZKEFWPM.mjs.map +0 -7
- package/dist/js/chunks/chunk-HKT2S7VM.mjs +0 -48
- package/dist/js/chunks/chunk-HKT2S7VM.mjs.map +0 -7
- package/dist/js/chunks/chunk-ILP3PDTL.mjs +0 -187
- package/dist/js/chunks/chunk-ILP3PDTL.mjs.map +0 -7
- package/dist/js/chunks/chunk-JIDMQGK6.mjs.map +0 -7
- package/dist/js/chunks/chunk-KBNN3QDH.mjs +0 -7
- package/dist/js/chunks/chunk-KBNN3QDH.mjs.map +0 -7
- package/dist/js/chunks/chunk-KHV6DZXX.mjs.map +0 -7
- package/dist/js/chunks/chunk-KY6U46SM.mjs +0 -345
- package/dist/js/chunks/chunk-KY6U46SM.mjs.map +0 -7
- package/dist/js/chunks/chunk-LRZMJZ3T.mjs +0 -291
- package/dist/js/chunks/chunk-LRZMJZ3T.mjs.map +0 -7
- package/dist/js/chunks/chunk-LTWPGFBR.mjs +0 -59
- package/dist/js/chunks/chunk-LTWPGFBR.mjs.map +0 -7
- package/dist/js/chunks/chunk-MNPROCZF.mjs +0 -328
- package/dist/js/chunks/chunk-MNPROCZF.mjs.map +0 -7
- package/dist/js/chunks/chunk-MZ6Z24BX.mjs.map +0 -7
- package/dist/js/chunks/chunk-NS2UMNZV.mjs.map +0 -7
- package/dist/js/chunks/chunk-O5XPWXIQ.mjs +0 -406
- package/dist/js/chunks/chunk-O5XPWXIQ.mjs.map +0 -7
- package/dist/js/chunks/chunk-PM655FXL.mjs.map +0 -7
- package/dist/js/chunks/chunk-QDAL4IYN.mjs.map +0 -7
- package/dist/js/chunks/chunk-QERLECVU.mjs +0 -572
- package/dist/js/chunks/chunk-QERLECVU.mjs.map +0 -7
- package/dist/js/chunks/chunk-QJABDLSD.mjs +0 -112
- package/dist/js/chunks/chunk-QJABDLSD.mjs.map +0 -7
- package/dist/js/chunks/chunk-RHRQKTTX.mjs +0 -139
- package/dist/js/chunks/chunk-RHRQKTTX.mjs.map +0 -7
- package/dist/js/chunks/chunk-S3XDFGSZ.mjs.map +0 -7
- package/dist/js/chunks/chunk-SPETGK25.mjs +0 -59
- package/dist/js/chunks/chunk-SPETGK25.mjs.map +0 -7
- package/dist/js/chunks/chunk-TBM3FT7G.mjs.map +0 -7
- package/dist/js/chunks/chunk-UEXCIMJZ.mjs.map +0 -7
- package/dist/js/chunks/chunk-UEZUJQ66.mjs.map +0 -7
- package/dist/js/chunks/chunk-VGZSAFTX.mjs +0 -173
- package/dist/js/chunks/chunk-VGZSAFTX.mjs.map +0 -7
- package/dist/js/chunks/chunk-X7OCHZVF.mjs +0 -76
- package/dist/js/chunks/chunk-X7OCHZVF.mjs.map +0 -7
- package/dist/js/chunks/chunk-YDCS5S3J.mjs.map +0 -7
- package/dist/js/chunks/chunk-YMSXJON6.mjs +0 -79
- package/dist/js/chunks/chunk-YMSXJON6.mjs.map +0 -7
- package/dist/js/chunks/chunk-Z2NRKI7R.mjs.map +0 -7
- package/dist/js/chunks/chunk-ZAS25YFD.mjs.map +0 -7
- package/dist/js/chunks/chunk-ZKZKNSLC.mjs +0 -1
- /package/dist/js/chunks/{chunk-ZKZKNSLC.mjs.map → chunk-GNRSYMVH.mjs.map} +0 -0
|
@@ -6,6 +6,16 @@
|
|
|
6
6
|
|
|
7
7
|
$_state-layers: ("hover", "focus", "pressed", "dragged");
|
|
8
8
|
|
|
9
|
+
/// A dp size as rem, for a box that holds text or an icon.
|
|
10
|
+
///
|
|
11
|
+
/// Type is set in rem, so raising the browser's default font size or zooming
|
|
12
|
+
/// text only grows the text. A px box around it stays put, and the text spills
|
|
13
|
+
/// out of it or is cut. A rem box grows with its text, and it renders exactly
|
|
14
|
+
/// as before at the default 16px. Borders, gaps and insets stay px.
|
|
15
|
+
@function rem($px) {
|
|
16
|
+
@return math.div($px, 16px) * 1rem;
|
|
17
|
+
}
|
|
18
|
+
|
|
9
19
|
/// A state layer opacity, as the percentage `color-mix()` wants.
|
|
10
20
|
///
|
|
11
21
|
/// The tokens hold numbers (0.08), because an overlay uses one as `opacity`
|
|
@@ -23,12 +33,17 @@ $_state-layers: ("hover", "focus", "pressed", "dragged");
|
|
|
23
33
|
@return calc(var(--md-sys-state-#{$state}-state-layer-opacity) * 100%);
|
|
24
34
|
}
|
|
25
35
|
|
|
36
|
+
/// `$color` at the `$state` layer's opacity, mixed over `$base`.
|
|
37
|
+
@function state-layer($color, $state, $base: transparent) {
|
|
38
|
+
@return color-mix(in oklab, $color state-opacity($state), $base);
|
|
39
|
+
}
|
|
40
|
+
|
|
26
41
|
|
|
27
42
|
// Common-button geometry. M3 Expressive's default size is small: 40dp,
|
|
28
43
|
// label-large, corner.full, 16dp inset, 8dp icon gap. The size axis moves
|
|
29
44
|
// those tokens; the style mixins only change color and elevation.
|
|
30
45
|
@mixin btn(
|
|
31
|
-
$height: var(--md-comp-filled-button-container-height, 40px),
|
|
46
|
+
$height: var(--md-comp-filled-button-container-height, #{rem(40px)}),
|
|
32
47
|
$border-radius: var(--md-comp-filled-button-container-shape, 9999px),
|
|
33
48
|
$padding-left: var(--md-comp-filled-button-leading-space, 16px),
|
|
34
49
|
$padding-right: var(--md-comp-filled-button-trailing-space, 16px),
|
|
@@ -56,58 +71,40 @@ $_state-layers: ("hover", "focus", "pressed", "dragged");
|
|
|
56
71
|
user-select: none;
|
|
57
72
|
appearance: none;
|
|
58
73
|
-webkit-tap-highlight-color: transparent;
|
|
59
|
-
transition: background-color
|
|
74
|
+
transition: background-color var(--md-sys-motion-duration-short4) ease-out, box-shadow var(--md-sys-motion-duration-short4) ease-out;
|
|
60
75
|
}
|
|
61
76
|
|
|
62
77
|
// State layers mix the on-color into the container in oklab; the opacities come
|
|
63
78
|
// from md.sys.state via `state-opacity()`. Filled and tonal have no elevation.
|
|
64
79
|
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
background-color: var(--md-comp-filled-button-container-color, var(--md-sys-color-primary));
|
|
68
|
-
|
|
80
|
+
// Shared by every style. Elevated also moves z-depth on hover and press.
|
|
81
|
+
@mixin _btn-states($on, $base, $hover-depth: null, $press-depth: null) {
|
|
69
82
|
&:hover {
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
var(--md-sys-color-on-primary) state-opacity("hover"),
|
|
73
|
-
var(--md-sys-color-primary)
|
|
74
|
-
);
|
|
83
|
+
@if $hover-depth { @include z-depth($hover-depth); }
|
|
84
|
+
background-color: state-layer($on, "hover", $base);
|
|
75
85
|
}
|
|
76
86
|
|
|
77
87
|
&:active,
|
|
78
88
|
&:focus {
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
var(--md-sys-color-on-primary) state-opacity("focus"),
|
|
82
|
-
var(--md-sys-color-primary)
|
|
83
|
-
);
|
|
89
|
+
@if $press-depth { @include z-depth($press-depth); }
|
|
90
|
+
background-color: state-layer($on, "focus", $base);
|
|
84
91
|
}
|
|
85
92
|
|
|
86
93
|
@include focus-visible();
|
|
87
94
|
}
|
|
88
95
|
|
|
96
|
+
@mixin btn-filled {
|
|
97
|
+
color: var(--md-comp-filled-button-label-text-color, var(--md-sys-color-on-primary));
|
|
98
|
+
background-color: var(--md-comp-filled-button-container-color, var(--md-sys-color-primary));
|
|
99
|
+
|
|
100
|
+
@include _btn-states(var(--md-sys-color-on-primary), var(--md-sys-color-primary));
|
|
101
|
+
}
|
|
102
|
+
|
|
89
103
|
@mixin btn-tonal {
|
|
90
104
|
color: var(--md-sys-color-on-secondary-container);
|
|
91
105
|
background-color: var(--md-sys-color-secondary-container);
|
|
92
106
|
|
|
93
|
-
|
|
94
|
-
background-color: color-mix(
|
|
95
|
-
in oklab,
|
|
96
|
-
var(--md-sys-color-on-secondary-container) state-opacity("hover"),
|
|
97
|
-
var(--md-sys-color-secondary-container)
|
|
98
|
-
);
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
&:active,
|
|
102
|
-
&:focus {
|
|
103
|
-
background-color: color-mix(
|
|
104
|
-
in oklab,
|
|
105
|
-
var(--md-sys-color-on-secondary-container) state-opacity("focus"),
|
|
106
|
-
var(--md-sys-color-secondary-container)
|
|
107
|
-
);
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
@include focus-visible();
|
|
107
|
+
@include _btn-states(var(--md-sys-color-on-secondary-container), var(--md-sys-color-secondary-container));
|
|
111
108
|
}
|
|
112
109
|
|
|
113
110
|
@mixin btn-elevated {
|
|
@@ -115,18 +112,7 @@ $_state-layers: ("hover", "focus", "pressed", "dragged");
|
|
|
115
112
|
background-color: var(--md-sys-color-surface-container-low);
|
|
116
113
|
@include z-depth("1");
|
|
117
114
|
|
|
118
|
-
|
|
119
|
-
@include z-depth("2");
|
|
120
|
-
background-color: color-mix(in oklab, var(--md-sys-color-primary) state-opacity("hover"), var(--md-sys-color-surface-container-low));
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
&:active,
|
|
124
|
-
&:focus {
|
|
125
|
-
@include z-depth("1");
|
|
126
|
-
background-color: color-mix(in oklab, var(--md-sys-color-primary) state-opacity("focus"), var(--md-sys-color-surface-container-low));
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
@include focus-visible();
|
|
115
|
+
@include _btn-states(var(--md-sys-color-primary), var(--md-sys-color-surface-container-low), "2", "1");
|
|
130
116
|
}
|
|
131
117
|
|
|
132
118
|
@mixin btn-outlined {
|
|
@@ -138,16 +124,7 @@ $_state-layers: ("hover", "focus", "pressed", "dragged");
|
|
|
138
124
|
// height right.
|
|
139
125
|
border: var(--md-comp-filled-button-outline-width, 1px) solid var(--md-sys-color-outline);
|
|
140
126
|
|
|
141
|
-
|
|
142
|
-
background-color: color-mix(in oklab, var(--md-sys-color-primary) state-opacity("hover"), transparent);
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
&:active,
|
|
146
|
-
&:focus {
|
|
147
|
-
background-color: color-mix(in oklab, var(--md-sys-color-primary) state-opacity("focus"), transparent);
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
@include focus-visible();
|
|
127
|
+
@include _btn-states(var(--md-sys-color-primary), transparent);
|
|
151
128
|
}
|
|
152
129
|
|
|
153
130
|
@mixin btn-flat {
|
|
@@ -156,16 +133,7 @@ $_state-layers: ("hover", "focus", "pressed", "dragged");
|
|
|
156
133
|
background-color: transparent;
|
|
157
134
|
border-color: transparent;
|
|
158
135
|
|
|
159
|
-
|
|
160
|
-
background-color: color-mix(in oklab, var(--md-sys-color-primary) state-opacity("hover"), transparent);
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
&:active,
|
|
164
|
-
&:focus {
|
|
165
|
-
background-color: color-mix(in oklab, var(--md-sys-color-primary) state-opacity("focus"), transparent);
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
@include focus-visible();
|
|
136
|
+
@include _btn-states(var(--md-sys-color-primary), transparent);
|
|
169
137
|
}
|
|
170
138
|
|
|
171
139
|
@mixin btn-disabled {
|
|
@@ -174,7 +142,6 @@ $_state-layers: ("hover", "focus", "pressed", "dragged");
|
|
|
174
142
|
background-color: color-mix(in oklab, var(--md-sys-color-on-surface) 12%, transparent);
|
|
175
143
|
border-color: transparent;
|
|
176
144
|
pointer-events: none;
|
|
177
|
-
box-shadow: none;
|
|
178
145
|
cursor: default;
|
|
179
146
|
}
|
|
180
147
|
|
|
@@ -187,9 +154,6 @@ $_state-layers: ("hover", "focus", "pressed", "dragged");
|
|
|
187
154
|
// `$important` is for the `.visually-hidden` utility, which has to beat a
|
|
188
155
|
// consumer's own `position` or `padding` the way `.hide` beats their
|
|
189
156
|
// `display`. Component rules leave it off.
|
|
190
|
-
//
|
|
191
|
-
// _navigation-rail.scss carries its own copy, which predates the mixin and
|
|
192
|
-
// omits the margin and white-space; fold it in when it is next touched.
|
|
193
157
|
@mixin visually-hidden($important: false) {
|
|
194
158
|
$flag: null;
|
|
195
159
|
@if $important { $flag: !important; }
|
|
@@ -220,29 +184,238 @@ $_state-layers: ("hover", "focus", "pressed", "dragged");
|
|
|
220
184
|
}
|
|
221
185
|
}
|
|
222
186
|
|
|
187
|
+
// The 18dp up arrow on a pseudo-element: Stat and KPI change lines, data
|
|
188
|
+
// table sort buttons. Rotate it 180deg for down.
|
|
189
|
+
@mixin trend-arrow {
|
|
190
|
+
content: "";
|
|
191
|
+
flex: none;
|
|
192
|
+
width: 18px;
|
|
193
|
+
height: 18px;
|
|
194
|
+
background-color: currentColor;
|
|
195
|
+
mask: $trend-arrow center / 18px no-repeat;
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
// A 48dp icon action in a dialog, pane or side sheet header bar.
|
|
199
|
+
@mixin header-icon-action {
|
|
200
|
+
flex: 0 0 48px;
|
|
201
|
+
box-sizing: border-box;
|
|
202
|
+
width: 48px;
|
|
203
|
+
height: 48px;
|
|
204
|
+
min-width: 48px;
|
|
205
|
+
padding: 0;
|
|
206
|
+
border: none;
|
|
207
|
+
border-radius: 50%;
|
|
208
|
+
background-color: transparent;
|
|
209
|
+
color: var(--md-sys-color-on-surface-variant);
|
|
210
|
+
box-shadow: none;
|
|
211
|
+
|
|
212
|
+
> #{$icon} {
|
|
213
|
+
font-size: rem(24px);
|
|
214
|
+
width: rem(24px);
|
|
215
|
+
height: rem(24px);
|
|
216
|
+
line-height: rem(24px);
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
&:hover {
|
|
220
|
+
background-color: state-layer(var(--md-sys-color-on-surface), "hover");
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
@include focus-visible;
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
// Forced colors repaint every background as Canvas and drop box-shadow, so a
|
|
227
|
+
// state shown only by a fill or a ring disappears. forced-colors-selected marks
|
|
228
|
+
// a selected item with a Highlight outline. forced-colors-fill keeps a drawn
|
|
229
|
+
// shape (an indicator bar, a dot, a glyph drawn as a mask) by opting it out
|
|
230
|
+
// and painting it with a system color.
|
|
231
|
+
@mixin forced-colors-selected {
|
|
232
|
+
@media (forced-colors: active) {
|
|
233
|
+
outline: 2px solid Highlight;
|
|
234
|
+
outline-offset: -2px;
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
// A tree branch's chevron, drawn as the row's ::before: it points to the end
|
|
239
|
+
// edge while closed. The row turns it with `transform: none` once the branch
|
|
240
|
+
// opens, and with rotate(90deg) under :dir(rtl). .tree and the tree select
|
|
241
|
+
// share it.
|
|
242
|
+
$_tree-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 15.4 6 9.4 7.4 8l4.6 4.6L16.6 8 18 9.4z'/%3E%3C/svg%3E");
|
|
243
|
+
|
|
244
|
+
@mixin tree-chevron {
|
|
245
|
+
content: "";
|
|
246
|
+
flex: none;
|
|
247
|
+
width: 20px;
|
|
248
|
+
height: 20px;
|
|
249
|
+
background-color: currentColor;
|
|
250
|
+
mask: $_tree-chevron center / 20px no-repeat;
|
|
251
|
+
transform: rotate(-90deg);
|
|
252
|
+
transition: transform var(--md-sys-motion-duration-short3) ease-out;
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
@mixin forced-colors-fill($color: CanvasText) {
|
|
256
|
+
@media (forced-colors: active) {
|
|
257
|
+
forced-color-adjust: none;
|
|
258
|
+
background-color: $color;
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
// A fieldset of round, labeled choices (color swatches, rating): no fieldset
|
|
263
|
+
// chrome, a body-medium legend, and labels whose 4px of padding makes the
|
|
264
|
+
// 48px target. $control is the input the label's focus and disabled states
|
|
265
|
+
// follow.
|
|
266
|
+
@mixin choice-fieldset($radius, $control) {
|
|
267
|
+
display: flex;
|
|
268
|
+
flex-wrap: wrap;
|
|
269
|
+
align-items: center;
|
|
270
|
+
margin: 0;
|
|
271
|
+
padding: 0;
|
|
272
|
+
border: 0;
|
|
273
|
+
|
|
274
|
+
> legend {
|
|
275
|
+
margin-block-end: 4px;
|
|
276
|
+
padding: 0;
|
|
277
|
+
color: var(--md-sys-color-on-surface-variant);
|
|
278
|
+
@include typescale("body-medium");
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
> label {
|
|
282
|
+
display: inline-flex;
|
|
283
|
+
gap: 0;
|
|
284
|
+
min-height: 0;
|
|
285
|
+
padding: 4px;
|
|
286
|
+
border-radius: $radius;
|
|
287
|
+
cursor: pointer;
|
|
288
|
+
|
|
289
|
+
&:has(> #{$control}:focus-visible) {
|
|
290
|
+
@include focus-ring;
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
&:has(> #{$control}:disabled) {
|
|
294
|
+
opacity: 0.38;
|
|
295
|
+
cursor: default;
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
// A navigation bar or rail destination stacked over its label: the indicator
|
|
301
|
+
// behind the icon, its hover layer, the active state, and a sibling badge on
|
|
302
|
+
// the upper trailing corner of the 24dp glyph. $prefix names the component
|
|
303
|
+
// tokens (nav-bar, nav-rail); $inset is the destination's top padding. Rules
|
|
304
|
+
// passed as content land between the active state and the badge.
|
|
305
|
+
@mixin nav-destination($prefix, $inset, $transition) {
|
|
306
|
+
> #{$icon} {
|
|
307
|
+
display: flex;
|
|
308
|
+
flex-shrink: 0;
|
|
309
|
+
align-items: center;
|
|
310
|
+
justify-content: center;
|
|
311
|
+
box-sizing: border-box;
|
|
312
|
+
width: var(--md-comp-#{$prefix}-indicator-width);
|
|
313
|
+
height: var(--md-comp-#{$prefix}-indicator-height);
|
|
314
|
+
border-radius: var(--md-comp-#{$prefix}-indicator-shape);
|
|
315
|
+
font-size: var(--md-comp-#{$prefix}-icon-size);
|
|
316
|
+
color: inherit;
|
|
317
|
+
transition: $transition;
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
&:hover:not(.active, [aria-current]) > #{$icon} {
|
|
321
|
+
background-color: state-layer(var(--md-sys-color-on-surface), "hover");
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
&.active,
|
|
325
|
+
&[aria-current] {
|
|
326
|
+
color: var(--md-sys-color-on-surface);
|
|
327
|
+
|
|
328
|
+
> #{$icon} {
|
|
329
|
+
background-color: var(--md-comp-#{$prefix}-active-indicator-color);
|
|
330
|
+
color: var(--md-comp-#{$prefix}-active-color);
|
|
331
|
+
--md-icon-fill: 1;
|
|
332
|
+
@include forced-colors-selected;
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
|
|
336
|
+
@content;
|
|
337
|
+
|
|
338
|
+
> .badge {
|
|
339
|
+
position: absolute;
|
|
340
|
+
z-index: 1;
|
|
341
|
+
top: calc(#{$inset} + (var(--md-comp-#{$prefix}-indicator-height) - 24px) / 2);
|
|
342
|
+
inset-inline-start: calc(50% + 12px);
|
|
343
|
+
transform: translate(-50%, -50%);
|
|
344
|
+
|
|
345
|
+
&:dir(rtl) {
|
|
346
|
+
transform: translate(50%, -50%);
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
// The same destination laid out as a row (bar .horizontal, rail .expanded):
|
|
352
|
+
// the indicator moves from the icon to the whole destination.
|
|
353
|
+
@mixin nav-destination-row($prefix) {
|
|
354
|
+
> #{$icon} {
|
|
355
|
+
width: var(--md-comp-#{$prefix}-icon-size);
|
|
356
|
+
height: var(--md-comp-#{$prefix}-icon-size);
|
|
357
|
+
border-radius: 0;
|
|
358
|
+
}
|
|
359
|
+
|
|
360
|
+
&:hover:not(.active, [aria-current]) {
|
|
361
|
+
background-color: state-layer(var(--md-sys-color-on-surface), "hover");
|
|
362
|
+
|
|
363
|
+
> #{$icon} {
|
|
364
|
+
background-color: transparent;
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
|
|
368
|
+
&.active,
|
|
369
|
+
&[aria-current] {
|
|
370
|
+
background-color: var(--md-comp-#{$prefix}-active-indicator-color);
|
|
371
|
+
color: var(--md-comp-#{$prefix}-active-color);
|
|
372
|
+
@include forced-colors-selected;
|
|
373
|
+
|
|
374
|
+
> #{$icon} {
|
|
375
|
+
background-color: transparent;
|
|
376
|
+
color: inherit;
|
|
377
|
+
outline: none;
|
|
378
|
+
}
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
|
|
223
382
|
// M3 type role. Every property must name a token tokens/_reference.scss
|
|
224
383
|
// actually defines — a missing var() drops the whole declaration.
|
|
225
|
-
|
|
384
|
+
// $emphasized takes the role's M3 Expressive emphasized weight.
|
|
385
|
+
@mixin typescale($role, $emphasized: false) {
|
|
226
386
|
font-family: var(--md-sys-typescale-#{$role}-font-family-name);
|
|
227
387
|
font-size: var(--md-sys-typescale-#{$role}-font-size);
|
|
228
|
-
|
|
388
|
+
@if $emphasized {
|
|
389
|
+
font-weight: var(--md-sys-typescale-emphasized-#{$role}-font-weight);
|
|
390
|
+
} @else {
|
|
391
|
+
font-weight: var(--md-sys-typescale-#{$role}-font-weight);
|
|
392
|
+
}
|
|
229
393
|
line-height: var(--md-sys-typescale-#{$role}-line-height);
|
|
230
394
|
letter-spacing: var(--md-sys-typescale-#{$role}-letter-spacing);
|
|
231
395
|
}
|
|
232
396
|
|
|
397
|
+
// The <label> row of a radio, checkbox or switch: 48dp touch target, 12dp
|
|
398
|
+
// between control and text, body-large on-surface.
|
|
399
|
+
@mixin selection-control-label($display: flex) {
|
|
400
|
+
display: $display;
|
|
401
|
+
align-items: center;
|
|
402
|
+
gap: 12px;
|
|
403
|
+
min-height: 48px;
|
|
404
|
+
margin: 0;
|
|
405
|
+
cursor: pointer;
|
|
406
|
+
user-select: none;
|
|
407
|
+
color: var(--md-sys-color-on-surface);
|
|
408
|
+
@include typescale("body-large");
|
|
409
|
+
}
|
|
410
|
+
|
|
233
411
|
/// The state layer some controls draw as a ring rather than an overlay.
|
|
234
412
|
///
|
|
235
413
|
/// Checkboxes and radio buttons have no room for an overlay pseudo-element, so
|
|
236
414
|
/// they grow a `box-shadow` from the control's edge out to the state layer
|
|
237
|
-
/// size.
|
|
238
|
-
/// the `* 100%`.
|
|
415
|
+
/// size.
|
|
239
416
|
@mixin state-layer-ring($outer, $inner, $color, $state) {
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
in oklab,
|
|
243
|
-
#{$color} state-opacity($state),
|
|
244
|
-
transparent
|
|
245
|
-
);
|
|
417
|
+
// Interpolated so a quoted color, such as "var(--c)", is written unquoted.
|
|
418
|
+
box-shadow: 0 0 0 calc((#{$outer} - #{$inner}) / 2) state-layer(#{$color}, $state);
|
|
246
419
|
}
|
|
247
420
|
|
|
248
421
|
/// The button size tokens for one rung of `$button-sizes`.
|
|
@@ -253,20 +426,22 @@ $_state-layers: ("hover", "focus", "pressed", "dragged");
|
|
|
253
426
|
@mixin button-size($name) {
|
|
254
427
|
$s: map.get($button-sizes, $name);
|
|
255
428
|
|
|
256
|
-
--md-comp-filled-button-container-height: #{map.get($s, height)};
|
|
257
|
-
--md-comp-filled-button-icon-size: #{map.get($s, icon)};
|
|
429
|
+
--md-comp-filled-button-container-height: #{rem(map.get($s, height))};
|
|
430
|
+
--md-comp-filled-button-icon-size: #{rem(map.get($s, icon))};
|
|
258
431
|
--md-comp-filled-button-leading-space: #{map.get($s, space)};
|
|
259
432
|
--md-comp-filled-button-trailing-space: #{map.get($s, space)};
|
|
260
433
|
--md-comp-filled-button-icon-label-space: #{map.get($s, gap)};
|
|
261
434
|
--md-comp-filled-button-outline-width: #{map.get($s, outline)};
|
|
435
|
+
--md-comp-filled-button-container-shape-square: #{map.get($s, square)};
|
|
436
|
+
--md-comp-filled-button-pressed-container-shape: #{map.get($s, pressed)};
|
|
262
437
|
}
|
|
263
438
|
|
|
264
439
|
/// The icon-button tokens for one rung of `$icon-button-sizes`.
|
|
265
440
|
@mixin icon-button-size($name) {
|
|
266
441
|
$s: map.get($icon-button-sizes, $name);
|
|
267
442
|
|
|
268
|
-
--md-comp-icon-button-container-height: #{map.get($s, height)};
|
|
269
|
-
--md-comp-icon-button-icon-size: #{map.get($s, icon)};
|
|
443
|
+
--md-comp-icon-button-container-height: #{rem(map.get($s, height))};
|
|
444
|
+
--md-comp-icon-button-icon-size: #{rem(map.get($s, icon))};
|
|
270
445
|
--md-comp-icon-button-leading-space: #{map.get($s, space)};
|
|
271
446
|
--md-comp-icon-button-trailing-space: #{map.get($s, space)};
|
|
272
447
|
--md-comp-icon-button-narrow-space: #{map.get($s, narrow)};
|
|
@@ -346,14 +521,70 @@ $_state-layers: ("hover", "focus", "pressed", "dragged");
|
|
|
346
521
|
}
|
|
347
522
|
}
|
|
348
523
|
|
|
524
|
+
// The .toggle legend button is the same in every chart, so chart() writes
|
|
525
|
+
// it once, with the first chart in the build.
|
|
526
|
+
$_chart-toggle-written: false;
|
|
527
|
+
|
|
528
|
+
// With .toggle, a button shows or hides each series. It covers its legend
|
|
529
|
+
// item, swatch included, and a hidden series is struck through with a
|
|
530
|
+
// hollow swatch, so the state does not rest on color. The class keeps it
|
|
531
|
+
// out of the button styles, in _buttons.scss.
|
|
532
|
+
@mixin _chart-toggle {
|
|
533
|
+
.chart-toggle {
|
|
534
|
+
min-height: rem(48px);
|
|
535
|
+
padding: 0;
|
|
536
|
+
border: 0;
|
|
537
|
+
background: none;
|
|
538
|
+
color: inherit;
|
|
539
|
+
font: inherit;
|
|
540
|
+
cursor: pointer;
|
|
541
|
+
|
|
542
|
+
&::after {
|
|
543
|
+
content: "";
|
|
544
|
+
position: absolute;
|
|
545
|
+
inset: 0;
|
|
546
|
+
border-radius: 4px;
|
|
547
|
+
}
|
|
548
|
+
|
|
549
|
+
&:focus-visible {
|
|
550
|
+
outline: none;
|
|
551
|
+
|
|
552
|
+
&::after {
|
|
553
|
+
@include focus-ring();
|
|
554
|
+
}
|
|
555
|
+
}
|
|
556
|
+
|
|
557
|
+
&:hover {
|
|
558
|
+
color: var(--md-sys-color-on-surface);
|
|
559
|
+
}
|
|
560
|
+
|
|
561
|
+
&[aria-pressed="false"] {
|
|
562
|
+
text-decoration: line-through;
|
|
563
|
+
}
|
|
564
|
+
|
|
565
|
+
&[aria-disabled="true"] {
|
|
566
|
+
cursor: default;
|
|
567
|
+
}
|
|
568
|
+
}
|
|
569
|
+
|
|
570
|
+
li:has(> .chart-toggle[aria-pressed="false"])::before {
|
|
571
|
+
mask: radial-gradient(closest-side, transparent 50%, #000 calc(50% + 0.5px));
|
|
572
|
+
}
|
|
573
|
+
}
|
|
574
|
+
|
|
349
575
|
// The parts LineChart draws for every chart type, prefixed with the
|
|
350
576
|
// component's name: .#{$name}-plot, -cursor, -tooltip, -labels and -legend.
|
|
351
577
|
// Defines the --md-comp-#{$name}-height, -grid-color and -color-1..4 tokens,
|
|
352
578
|
// and --#{$name}-color on each [data-series]. Include it at the root of the
|
|
353
579
|
// component's partial; the component adds its own marks and cursor look.
|
|
354
580
|
@mixin chart($name) {
|
|
581
|
+
@if not $_chart-toggle-written {
|
|
582
|
+
$_chart-toggle-written: true !global;
|
|
583
|
+
@include _chart-toggle;
|
|
584
|
+
}
|
|
585
|
+
|
|
355
586
|
.#{$name} {
|
|
356
|
-
--md-comp-#{$name}-height: 240px;
|
|
587
|
+
--md-comp-#{$name}-height: #{rem(240px)};
|
|
357
588
|
--md-comp-#{$name}-grid-color: var(--md-sys-color-outline-variant);
|
|
358
589
|
--md-comp-#{$name}-color-1: var(--md-sys-color-primary);
|
|
359
590
|
--md-comp-#{$name}-color-2: var(--md-sys-color-tertiary);
|
|
@@ -367,17 +598,17 @@ $_state-layers: ("hover", "focus", "pressed", "dragged");
|
|
|
367
598
|
margin: $element-top-margin 0 $element-bottom-margin;
|
|
368
599
|
color: var(--md-sys-color-on-surface);
|
|
369
600
|
|
|
370
|
-
> figcaption {
|
|
371
|
-
color: var(--md-sys-color-on-surface-variant);
|
|
372
|
-
@include typescale("title-small");
|
|
373
|
-
}
|
|
374
|
-
|
|
375
601
|
// A table keeps its content size under visually-hidden, so anchor it
|
|
376
602
|
// here rather than at some distant positioned ancestor. A fixed layout
|
|
377
603
|
// holds it to the 1px wide it is given. Its rows still set its height, so
|
|
378
604
|
// it hangs up from the bottom edge, where the overflow cannot scroll.
|
|
379
605
|
position: relative;
|
|
380
606
|
|
|
607
|
+
> figcaption {
|
|
608
|
+
color: var(--md-sys-color-on-surface-variant);
|
|
609
|
+
@include typescale("title-small");
|
|
610
|
+
}
|
|
611
|
+
|
|
381
612
|
&:has(> .#{$name}-plot) > table {
|
|
382
613
|
@include visually-hidden;
|
|
383
614
|
inset: auto auto 0 0;
|
|
@@ -418,10 +649,10 @@ $_state-layers: ("hover", "focus", "pressed", "dragged");
|
|
|
418
649
|
display: grid;
|
|
419
650
|
grid-template-columns: auto auto;
|
|
420
651
|
gap: 4px 16px;
|
|
421
|
-
min-width: 120px;
|
|
652
|
+
min-width: rem(120px);
|
|
422
653
|
margin: 0;
|
|
423
654
|
padding: 12px 16px;
|
|
424
|
-
border-radius:
|
|
655
|
+
border-radius: var(--md-sys-shape-corner-medium);
|
|
425
656
|
background-color: var(--md-comp-#{$name}-tooltip-color);
|
|
426
657
|
color: var(--md-sys-color-on-surface-variant);
|
|
427
658
|
@include typescale("body-small");
|
|
@@ -479,6 +710,28 @@ $_state-layers: ("hover", "focus", "pressed", "dragged");
|
|
|
479
710
|
text-overflow: ellipsis;
|
|
480
711
|
white-space: nowrap;
|
|
481
712
|
}
|
|
713
|
+
|
|
714
|
+
// When each label is wider than its column, LineChart keeps every nth
|
|
715
|
+
// one. A kept label spreads over the hidden ones beside it, still
|
|
716
|
+
// centred on its own column; the flex box centres what overflows. The
|
|
717
|
+
// end labels line up with the chart's edges, so none overflows them.
|
|
718
|
+
&[data-thinned] > li:not([data-skip]) {
|
|
719
|
+
display: flex;
|
|
720
|
+
justify-content: center;
|
|
721
|
+
overflow: visible;
|
|
722
|
+
|
|
723
|
+
&:first-child {
|
|
724
|
+
justify-content: start;
|
|
725
|
+
}
|
|
726
|
+
|
|
727
|
+
&:last-child {
|
|
728
|
+
justify-content: end;
|
|
729
|
+
}
|
|
730
|
+
}
|
|
731
|
+
|
|
732
|
+
> li[data-skip] {
|
|
733
|
+
visibility: hidden;
|
|
734
|
+
}
|
|
482
735
|
}
|
|
483
736
|
|
|
484
737
|
.#{$name}-legend {
|
|
@@ -487,6 +740,7 @@ $_state-layers: ("hover", "focus", "pressed", "dragged");
|
|
|
487
740
|
gap: 4px 16px;
|
|
488
741
|
|
|
489
742
|
> li {
|
|
743
|
+
position: relative;
|
|
490
744
|
display: flex;
|
|
491
745
|
align-items: center;
|
|
492
746
|
gap: 8px;
|
|
@@ -537,3 +791,95 @@ $_state-layers: ("hover", "focus", "pressed", "dragged");
|
|
|
537
791
|
}
|
|
538
792
|
}
|
|
539
793
|
}
|
|
794
|
+
|
|
795
|
+
// The columns' or bars' growth, inside their container: from the zero
|
|
796
|
+
// line, or after update() from where each span was, which ColumnChart
|
|
797
|
+
// writes as --from-top and --from-bottom. !important lets these starting
|
|
798
|
+
// values beat the inline --top and --bottom.
|
|
799
|
+
@mixin chart-column-motion {
|
|
800
|
+
@media (prefers-reduced-motion: no-preference) {
|
|
801
|
+
> div > span {
|
|
802
|
+
transition: clip-path var(--md-sys-motion-duration-medium4) var(--md-sys-motion-easing-standard);
|
|
803
|
+
|
|
804
|
+
@starting-style {
|
|
805
|
+
--top: var(--from-top, var(--zero, 100%)) !important;
|
|
806
|
+
--bottom: var(--from-bottom, calc(100% - var(--zero, 100%))) !important;
|
|
807
|
+
}
|
|
808
|
+
}
|
|
809
|
+
}
|
|
810
|
+
}
|
|
811
|
+
|
|
812
|
+
// The value labels LineChart draws for .axis: an .#{$name}-axis list in the
|
|
813
|
+
// plot, behind the marks, with each label's distance down the plot in --at.
|
|
814
|
+
// A label sits beside the plot with a grid line across it at its value; a
|
|
815
|
+
// mixed chart's end scale gets a second list, .end, on the far side, whose
|
|
816
|
+
// labels share those lines. With $beside the plot and row labels make room
|
|
817
|
+
// at the inline start (and end, for .end) for
|
|
818
|
+
// --md-comp-#{$name}-axis-width, 48px. Without it the component places the
|
|
819
|
+
// labels itself.
|
|
820
|
+
@mixin chart-axis($name, $beside: true) {
|
|
821
|
+
.#{$name}.axis {
|
|
822
|
+
--md-comp-#{$name}-axis-width: #{rem(48px)};
|
|
823
|
+
|
|
824
|
+
> .#{$name}-plot {
|
|
825
|
+
background: none;
|
|
826
|
+
}
|
|
827
|
+
}
|
|
828
|
+
|
|
829
|
+
@if $beside {
|
|
830
|
+
// Room for the top label's upper half.
|
|
831
|
+
.#{$name}.axis > .#{$name}-plot {
|
|
832
|
+
margin-block-start: 8px;
|
|
833
|
+
}
|
|
834
|
+
|
|
835
|
+
.#{$name}.axis > :is(.#{$name}-plot, .#{$name}-labels) {
|
|
836
|
+
margin-inline-start: var(--md-comp-#{$name}-axis-width);
|
|
837
|
+
}
|
|
838
|
+
|
|
839
|
+
.#{$name}.axis:has(.#{$name}-axis.end) > :is(.#{$name}-plot, .#{$name}-labels) {
|
|
840
|
+
margin-inline-end: var(--md-comp-#{$name}-axis-width);
|
|
841
|
+
}
|
|
842
|
+
}
|
|
843
|
+
|
|
844
|
+
.#{$name}-axis {
|
|
845
|
+
position: absolute;
|
|
846
|
+
inset: 0;
|
|
847
|
+
margin: 0;
|
|
848
|
+
padding: 0;
|
|
849
|
+
list-style: none;
|
|
850
|
+
color: var(--md-sys-color-on-surface-variant);
|
|
851
|
+
@include typescale("body-small");
|
|
852
|
+
font-variant-numeric: tabular-nums;
|
|
853
|
+
pointer-events: none;
|
|
854
|
+
|
|
855
|
+
> li {
|
|
856
|
+
position: absolute;
|
|
857
|
+
inset-inline: 0;
|
|
858
|
+
top: var(--at, 0%);
|
|
859
|
+
border-block-start: 1px solid var(--md-comp-#{$name}-grid-color);
|
|
860
|
+
}
|
|
861
|
+
|
|
862
|
+
> li > span {
|
|
863
|
+
position: absolute;
|
|
864
|
+
inset-inline-end: 100%;
|
|
865
|
+
box-sizing: border-box;
|
|
866
|
+
width: var(--md-comp-#{$name}-axis-width);
|
|
867
|
+
padding-inline-end: 8px;
|
|
868
|
+
overflow: hidden;
|
|
869
|
+
text-align: end;
|
|
870
|
+
text-overflow: ellipsis;
|
|
871
|
+
white-space: nowrap;
|
|
872
|
+
translate: 0 -50%;
|
|
873
|
+
}
|
|
874
|
+
|
|
875
|
+
&.end > li {
|
|
876
|
+
border: 0;
|
|
877
|
+
}
|
|
878
|
+
|
|
879
|
+
&.end > li > span {
|
|
880
|
+
inset-inline: 100% auto;
|
|
881
|
+
padding-inline: 8px 0;
|
|
882
|
+
text-align: start;
|
|
883
|
+
}
|
|
884
|
+
}
|
|
885
|
+
}
|