@expressivecss/expressive 0.15.0 → 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 +1502 -1
- package/README.md +9 -8
- package/dist/css/expressive.css +19247 -11923
- 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-KVJAVDBC.mjs → chunk-4QUCNFSD.mjs} +64 -113
- package/dist/js/chunks/chunk-4QUCNFSD.mjs.map +7 -0
- package/dist/js/chunks/{chunk-UETTGDLI.mjs → chunk-4TRZ2AER.mjs} +35 -41
- package/dist/js/chunks/chunk-4TRZ2AER.mjs.map +7 -0
- package/dist/js/chunks/{chunk-C6CHEWYP.mjs → chunk-5KIHWJI2.mjs} +40 -26
- package/dist/js/chunks/chunk-5KIHWJI2.mjs.map +7 -0
- package/dist/js/chunks/{chunk-L27Q6ZMI.mjs → chunk-67ZPPKXS.mjs} +20 -33
- package/dist/js/chunks/chunk-67ZPPKXS.mjs.map +7 -0
- package/dist/js/chunks/{chunk-XAEAEHIX.mjs → chunk-6FSEUFVW.mjs} +39 -26
- 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-CK2XCICY.mjs → chunk-75E5EDJF.mjs} +3 -11
- package/dist/js/chunks/chunk-75E5EDJF.mjs.map +7 -0
- package/dist/js/chunks/{chunk-KHXZ2A4K.mjs → chunk-7NLUI3RR.mjs} +139 -66
- 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-LQWUDNHZ.mjs → chunk-ANKFWNWT.mjs} +21 -45
- package/dist/js/chunks/chunk-ANKFWNWT.mjs.map +7 -0
- package/dist/js/chunks/{chunk-5CEAOLUA.mjs → chunk-B7DQFHA5.mjs} +30 -47
- 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-VGNYF6FB.mjs → chunk-BPF3I2MN.mjs} +109 -24
- 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-NUHMOAOY.mjs → chunk-CSYWKEK3.mjs} +310 -196
- 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-74MXKKLN.mjs → chunk-EC26RU2D.mjs} +11 -29
- package/dist/js/chunks/chunk-EC26RU2D.mjs.map +7 -0
- package/dist/js/chunks/{chunk-WDK4T63U.mjs → chunk-EVCVFEV3.mjs} +235 -146
- 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-PDG64UHF.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-BGZLF6JZ.mjs → chunk-KZPSAXIU.mjs} +142 -32
- 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-DXGRXYYL.mjs → chunk-OP43LLIC.mjs} +28 -45
- 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-TSZYSW7F.mjs → chunk-OYNUDOHR.mjs} +19 -47
- package/dist/js/chunks/chunk-OYNUDOHR.mjs.map +7 -0
- package/dist/js/chunks/{chunk-UAZSDUVP.mjs → chunk-P6DRQ6KS.mjs} +36 -30
- 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-GJL6GCIU.mjs → chunk-QXKWVHBD.mjs} +265 -161
- package/dist/js/chunks/chunk-QXKWVHBD.mjs.map +7 -0
- package/dist/js/chunks/{chunk-X4ISMKE2.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-SMY7GJSS.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-ZX6M7SWO.mjs → chunk-VGY4M57S.mjs} +266 -120
- 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-SFI2U4YW.mjs → chunk-VMY55K2X.mjs} +76 -109
- package/dist/js/chunks/chunk-VMY55K2X.mjs.map +7 -0
- package/dist/js/chunks/{chunk-KUFHW3DS.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-FM5CZOUB.mjs → chunk-ZJNLAGY5.mjs} +19 -30
- 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 +10613 -4327
- package/dist/js/expressive.cjs.map +4 -4
- package/dist/js/expressive.js +10613 -4327
- package/dist/js/expressive.js.map +4 -4
- package/dist/js/expressive.min.js +23 -22
- package/dist/js/expressive.min.js.map +4 -4
- package/dist/js/expressive.mjs +182 -71
- 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 +131 -66
- 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 +3 -3
- package/dist/js/internal/components/lightbox.mjs +3 -3
- package/dist/js/internal/components/lineChart.mjs +25 -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 -41
- 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 +173 -71
- 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 +91 -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 +56 -32
- package/dist/types/components/expandingCard.d.ts +4 -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 +16 -1
- package/dist/types/components/inputMask.d.ts +30 -0
- package/dist/types/components/keypad.d.ts +38 -6
- package/dist/types/components/lightbox.d.ts +14 -20
- package/dist/types/components/lineChart.d.ts +172 -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 +60 -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 -7
- package/dist/types/components/registry.d.ts +73 -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 +3 -15
- package/dist/types/components/snackbar.d.ts +61 -0
- package/dist/types/components/swipeActions.d.ts +81 -0
- package/dist/types/components/tabs.d.ts +89 -27
- package/dist/types/components/timepicker.d.ts +113 -21
- 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 -8
- 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/_elevation.scss +13 -7
- package/src/sass/abstracts/_index.scss +1 -0
- package/src/sass/abstracts/_mixins.scss +422 -36
- package/src/sass/abstracts/_spring.scss +63 -0
- package/src/sass/abstracts/_variables.scss +39 -21
- package/src/sass/base/_fonts.scss +61 -48
- package/src/sass/base/_global.scss +104 -24
- package/src/sass/base/_index.scss +2 -0
- 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 +6 -5
- 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 +15 -25
- package/src/sass/components/_buttons.scss +156 -63
- package/src/sass/components/_calendar.scss +246 -0
- package/src/sass/components/_cards.scss +36 -44
- package/src/sass/components/_carousel.scss +27 -103
- package/src/sass/components/_cascader.scss +142 -0
- package/src/sass/components/_chips.scss +36 -46
- 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 -25
- package/src/sass/components/_datepicker.scss +54 -40
- package/src/sass/components/_description-list.scss +85 -0
- package/src/sass/components/_dialog.scss +42 -41
- 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 +111 -22
- package/src/sass/components/_icon-buttons.scss +7 -7
- 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 +20 -0
- package/src/sass/components/_keypad.scss +39 -19
- package/src/sass/components/_kpi.scss +6 -11
- package/src/sass/components/_lightbox.scss +24 -13
- 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 +33 -11
- package/src/sass/components/_marquee.scss +3 -2
- package/src/sass/components/_mega-menu.scss +137 -0
- package/src/sass/components/_menu.scss +143 -123
- 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 +34 -20
- package/src/sass/components/_navigation-bar.scss +15 -77
- package/src/sass/components/_navigation-rail.scss +151 -92
- package/src/sass/components/_org-chart.scss +192 -0
- package/src/sass/components/_page-footer.scss +1 -1
- package/src/sass/components/_pagination.scss +6 -13
- package/src/sass/components/_panes.scss +32 -26
- 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 +152 -31
- 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 -37
- 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 -1
- 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 +109 -78
- package/src/sass/components/_toolbar.scss +35 -43
- 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 +106 -24
- 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 +7 -7
- package/src/sass/components/forms/_file-input.scss +6 -8
- 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 +33 -94
- package/src/sass/components/forms/_rating.scss +2 -32
- package/src/sass/components/forms/_select.scss +199 -20
- package/src/sass/components/forms/_slider.scss +91 -94
- 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 +0 -2
- package/src/sass/tokens/_theme.scss +10 -1
- package/src/sass/tokens/_vibrant.scss +2 -5
- package/src/sass/utilities/_defer-render.scss +17 -0
- package/src/sass/utilities/_helpers.scss +183 -26
- package/src/sass/utilities/_index.scss +1 -0
- 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-33QVDDGR.mjs +0 -270
- package/dist/js/chunks/chunk-33QVDDGR.mjs.map +0 -7
- package/dist/js/chunks/chunk-45FER6RI.mjs +0 -59
- package/dist/js/chunks/chunk-45FER6RI.mjs.map +0 -7
- package/dist/js/chunks/chunk-5CEAOLUA.mjs.map +0 -7
- package/dist/js/chunks/chunk-6VATUZC6.mjs +0 -295
- package/dist/js/chunks/chunk-6VATUZC6.mjs.map +0 -7
- package/dist/js/chunks/chunk-74MXKKLN.mjs.map +0 -7
- package/dist/js/chunks/chunk-AIURVCG6.mjs +0 -55
- package/dist/js/chunks/chunk-AIURVCG6.mjs.map +0 -7
- package/dist/js/chunks/chunk-BGZLF6JZ.mjs.map +0 -7
- package/dist/js/chunks/chunk-C6CHEWYP.mjs.map +0 -7
- package/dist/js/chunks/chunk-CK2XCICY.mjs.map +0 -7
- package/dist/js/chunks/chunk-CXXM2L4F.mjs +0 -344
- package/dist/js/chunks/chunk-CXXM2L4F.mjs.map +0 -7
- package/dist/js/chunks/chunk-DXGRXYYL.mjs.map +0 -7
- package/dist/js/chunks/chunk-FM5CZOUB.mjs.map +0 -7
- package/dist/js/chunks/chunk-GJL6GCIU.mjs.map +0 -7
- package/dist/js/chunks/chunk-K3HZMFMD.mjs +0 -135
- package/dist/js/chunks/chunk-K3HZMFMD.mjs.map +0 -7
- package/dist/js/chunks/chunk-KHXZ2A4K.mjs.map +0 -7
- package/dist/js/chunks/chunk-KQACNQ22.mjs +0 -7
- package/dist/js/chunks/chunk-KQACNQ22.mjs.map +0 -7
- package/dist/js/chunks/chunk-KUFHW3DS.mjs.map +0 -7
- package/dist/js/chunks/chunk-KVJAVDBC.mjs.map +0 -7
- package/dist/js/chunks/chunk-L27Q6ZMI.mjs.map +0 -7
- package/dist/js/chunks/chunk-LQWUDNHZ.mjs.map +0 -7
- package/dist/js/chunks/chunk-M372EDXD.mjs +0 -322
- package/dist/js/chunks/chunk-M372EDXD.mjs.map +0 -7
- package/dist/js/chunks/chunk-M3MURWMB.mjs +0 -82
- package/dist/js/chunks/chunk-M3MURWMB.mjs.map +0 -7
- package/dist/js/chunks/chunk-NUHMOAOY.mjs.map +0 -7
- package/dist/js/chunks/chunk-OWG3LMUL.mjs +0 -169
- package/dist/js/chunks/chunk-OWG3LMUL.mjs.map +0 -7
- package/dist/js/chunks/chunk-PD6HYHAE.mjs +0 -48
- package/dist/js/chunks/chunk-PD6HYHAE.mjs.map +0 -7
- package/dist/js/chunks/chunk-PDG64UHF.mjs.map +0 -7
- package/dist/js/chunks/chunk-PO3AXVR3.mjs +0 -546
- package/dist/js/chunks/chunk-PO3AXVR3.mjs.map +0 -7
- package/dist/js/chunks/chunk-QYGK36OG.mjs +0 -181
- package/dist/js/chunks/chunk-QYGK36OG.mjs.map +0 -7
- package/dist/js/chunks/chunk-SFI2U4YW.mjs.map +0 -7
- package/dist/js/chunks/chunk-SMY7GJSS.mjs.map +0 -7
- package/dist/js/chunks/chunk-TCCA2HDG.mjs +0 -414
- package/dist/js/chunks/chunk-TCCA2HDG.mjs.map +0 -7
- package/dist/js/chunks/chunk-TSZYSW7F.mjs.map +0 -7
- package/dist/js/chunks/chunk-UAZSDUVP.mjs.map +0 -7
- package/dist/js/chunks/chunk-UBRZZWRA.mjs +0 -127
- package/dist/js/chunks/chunk-UBRZZWRA.mjs.map +0 -7
- package/dist/js/chunks/chunk-UCOE7ZDL.mjs +0 -287
- package/dist/js/chunks/chunk-UCOE7ZDL.mjs.map +0 -7
- package/dist/js/chunks/chunk-UETTGDLI.mjs.map +0 -7
- package/dist/js/chunks/chunk-UNCRDLP6.mjs +0 -136
- package/dist/js/chunks/chunk-UNCRDLP6.mjs.map +0 -7
- package/dist/js/chunks/chunk-VGNYF6FB.mjs.map +0 -7
- package/dist/js/chunks/chunk-VGPGBNGL.mjs +0 -68
- package/dist/js/chunks/chunk-VGPGBNGL.mjs.map +0 -7
- package/dist/js/chunks/chunk-VKAUVTQY.mjs +0 -1
- package/dist/js/chunks/chunk-VM4FTS7L.mjs +0 -48
- package/dist/js/chunks/chunk-VM4FTS7L.mjs.map +0 -7
- package/dist/js/chunks/chunk-WDK4T63U.mjs.map +0 -7
- package/dist/js/chunks/chunk-WOCCTVUF.mjs +0 -185
- package/dist/js/chunks/chunk-WOCCTVUF.mjs.map +0 -7
- package/dist/js/chunks/chunk-WQYN5L4E.mjs +0 -107
- package/dist/js/chunks/chunk-WQYN5L4E.mjs.map +0 -7
- package/dist/js/chunks/chunk-X4ISMKE2.mjs.map +0 -7
- package/dist/js/chunks/chunk-XAEAEHIX.mjs.map +0 -7
- package/dist/js/chunks/chunk-ZX6M7SWO.mjs.map +0 -7
- /package/dist/js/chunks/{chunk-VKAUVTQY.mjs.map → chunk-GNRSYMVH.mjs.map} +0 -0
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
@use "../abstracts" as *;
|
|
2
|
+
|
|
3
|
+
// Funnel chart. A <figure class="funnel-chart"> holds a <figcaption> and a
|
|
4
|
+
// <table> of data: the first column labels each row, and the second holds
|
|
5
|
+
// each stage's value. Without JavaScript the table shows. FunnelChart draws
|
|
6
|
+
// each row as a stage, top to bottom in table order, as wide as its value
|
|
7
|
+
// against the largest one and centered, with the row's label at the inline
|
|
8
|
+
// start. It hides the table visually, so a screen reader still reads the
|
|
9
|
+
// data as a table. The plot and tooltip come from chart(). The plot is as
|
|
10
|
+
// tall as its rows, so --md-comp-funnel-chart-height does not apply; set
|
|
11
|
+
// the row height instead.
|
|
12
|
+
//
|
|
13
|
+
// Each stage's span carries --width, its width as a percentage of the plot.
|
|
14
|
+
//
|
|
15
|
+
// Tokens:
|
|
16
|
+
// --md-comp-funnel-chart-row-height 40px
|
|
17
|
+
// --md-comp-funnel-chart-stage-height 60% of each row's height
|
|
18
|
+
// --md-comp-funnel-chart-shape 4px, the stage's corner radius
|
|
19
|
+
// --md-comp-funnel-chart-color-1 primary, every stage's color
|
|
20
|
+
|
|
21
|
+
@include chart("funnel-chart");
|
|
22
|
+
|
|
23
|
+
.funnel-chart {
|
|
24
|
+
--md-comp-funnel-chart-row-height: #{rem(40px)};
|
|
25
|
+
--md-comp-funnel-chart-stage-height: 60%;
|
|
26
|
+
--md-comp-funnel-chart-shape: var(--md-sys-shape-corner-extra-small);
|
|
27
|
+
|
|
28
|
+
// Labels beside the plot, up to 40% of the width; everything else spans
|
|
29
|
+
// both columns. Dense flow puts the labels in the plot's row.
|
|
30
|
+
display: grid;
|
|
31
|
+
grid-template-columns: fit-content(40%) minmax(0, 1fr);
|
|
32
|
+
grid-auto-flow: row dense;
|
|
33
|
+
align-content: start;
|
|
34
|
+
column-gap: 12px;
|
|
35
|
+
|
|
36
|
+
> * {
|
|
37
|
+
grid-column: 1 / -1;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
> .funnel-chart-plot {
|
|
41
|
+
grid-column: 2;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
> .funnel-chart-labels {
|
|
45
|
+
grid-column: 1;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
.funnel-chart-plot {
|
|
50
|
+
isolation: isolate;
|
|
51
|
+
height: calc(var(--rows, 1) * var(--md-comp-funnel-chart-row-height));
|
|
52
|
+
border-block-end: 0;
|
|
53
|
+
background: none;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
.funnel-chart-labels {
|
|
57
|
+
grid-auto-rows: minmax(0, 1fr);
|
|
58
|
+
grid-auto-flow: row;
|
|
59
|
+
align-items: center;
|
|
60
|
+
text-align: end;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
.funnel-chart-stages {
|
|
64
|
+
position: absolute;
|
|
65
|
+
inset: 0;
|
|
66
|
+
display: grid;
|
|
67
|
+
grid-auto-rows: minmax(0, 1fr);
|
|
68
|
+
|
|
69
|
+
> div {
|
|
70
|
+
display: flex;
|
|
71
|
+
align-items: center;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
> div > span {
|
|
75
|
+
width: calc(var(--width, 0) * 1%);
|
|
76
|
+
height: var(--md-comp-funnel-chart-stage-height);
|
|
77
|
+
margin-inline: auto;
|
|
78
|
+
border-radius: var(--md-comp-funnel-chart-shape);
|
|
79
|
+
background-color: var(--funnel-chart-color);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
// Each stage grows from nothing, or after update() from its old width,
|
|
83
|
+
// which FunnelChart writes as --from-width.
|
|
84
|
+
@media (prefers-reduced-motion: no-preference) {
|
|
85
|
+
> div > span {
|
|
86
|
+
transition: width var(--md-sys-motion-duration-medium4) var(--md-sys-motion-easing-standard);
|
|
87
|
+
|
|
88
|
+
@starting-style {
|
|
89
|
+
width: calc(var(--from-width, 0) * 1%);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
// A band behind the highlighted row's stage.
|
|
96
|
+
.funnel-chart-cursor {
|
|
97
|
+
z-index: -1;
|
|
98
|
+
inset-block: auto;
|
|
99
|
+
inset-inline: 0;
|
|
100
|
+
height: calc(100% / var(--rows, 1));
|
|
101
|
+
border-radius: var(--md-comp-funnel-chart-shape);
|
|
102
|
+
background-color: state-layer(var(--md-sys-color-on-surface), "hover");
|
|
103
|
+
translate: 0 -50%;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
// Below the highlighted row, or above it in the lower half.
|
|
107
|
+
.funnel-chart-tooltip {
|
|
108
|
+
left: 50%;
|
|
109
|
+
translate: -50% calc(var(--md-comp-funnel-chart-row-height) / 2);
|
|
110
|
+
|
|
111
|
+
&.end {
|
|
112
|
+
translate: -50% calc(-100% - var(--md-comp-funnel-chart-row-height) / 2);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
@media (forced-colors: active) {
|
|
117
|
+
.funnel-chart-stages > div > span {
|
|
118
|
+
forced-color-adjust: none;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
.funnel-chart-cursor {
|
|
122
|
+
outline: 1px solid CanvasText;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
@@ -7,25 +7,49 @@
|
|
|
7
7
|
// its rows, so --md-comp-heatmap-chart-height does not apply.
|
|
8
8
|
//
|
|
9
9
|
// Each cell carries --level, 0 for the lowest value and 1 for the highest,
|
|
10
|
-
// and mixes the color into the empty color by that much.
|
|
11
|
-
//
|
|
12
|
-
//
|
|
10
|
+
// and mixes the color into the empty color by that much. On a diverging
|
|
11
|
+
// scale (data-mid) a level below 0 mixes in the low color instead. A .gap
|
|
12
|
+
// cell has no value and draws no fill. Value text is black or white,
|
|
13
|
+
// whichever contrasts more with the cell's mix, in any theme.
|
|
14
|
+
//
|
|
15
|
+
// Cells keep --md-comp-heatmap-chart-cell-min-width, and a grid too wide
|
|
16
|
+
// for its figure scrolls its cells sideways beside the row labels.
|
|
13
17
|
//
|
|
14
18
|
// Modifiers: .values writes each cell's text on it.
|
|
15
19
|
//
|
|
16
20
|
// Tokens:
|
|
17
|
-
// --md-comp-heatmap-chart-row-height
|
|
18
|
-
// --md-comp-heatmap-chart-
|
|
19
|
-
// --md-comp-heatmap-chart-
|
|
20
|
-
// --md-comp-heatmap-chart-
|
|
21
|
-
// --md-comp-heatmap-chart-
|
|
21
|
+
// --md-comp-heatmap-chart-row-height 32px
|
|
22
|
+
// --md-comp-heatmap-chart-cell-min-width 12px, below which the grid scrolls
|
|
23
|
+
// --md-comp-heatmap-chart-gap 3px between cells
|
|
24
|
+
// --md-comp-heatmap-chart-shape 4px, the cell's corner radius
|
|
25
|
+
// --md-comp-heatmap-chart-color primary, the highest value
|
|
26
|
+
// --md-comp-heatmap-chart-low-color tertiary, the lowest value on a
|
|
27
|
+
// diverging scale
|
|
28
|
+
// --md-comp-heatmap-chart-empty-color surface-container-highest, the
|
|
29
|
+
// lowest, or the midpoint
|
|
22
30
|
|
|
23
31
|
@include chart("heatmap-chart");
|
|
24
32
|
|
|
33
|
+
// A level's color: the color above 0, the low color below it, both mixed
|
|
34
|
+
// into the empty color, so one formula serves both kinds of scale.
|
|
35
|
+
@function shade($level) {
|
|
36
|
+
@return color-mix(
|
|
37
|
+
in oklab,
|
|
38
|
+
var(--md-comp-heatmap-chart-color) calc(max(#{$level}, 0) * 100%),
|
|
39
|
+
color-mix(
|
|
40
|
+
in oklab,
|
|
41
|
+
var(--md-comp-heatmap-chart-low-color) calc(max(-1 * #{$level}, 0) * 100%),
|
|
42
|
+
var(--md-comp-heatmap-chart-empty-color)
|
|
43
|
+
)
|
|
44
|
+
);
|
|
45
|
+
}
|
|
46
|
+
|
|
25
47
|
.heatmap-chart {
|
|
26
|
-
--md-comp-heatmap-chart-row-height: 32px;
|
|
48
|
+
--md-comp-heatmap-chart-row-height: #{rem(32px)};
|
|
49
|
+
--md-comp-heatmap-chart-cell-min-width: 12px;
|
|
50
|
+
--md-comp-heatmap-chart-low-color: var(--md-sys-color-tertiary);
|
|
27
51
|
--md-comp-heatmap-chart-gap: 3px;
|
|
28
|
-
--md-comp-heatmap-chart-shape:
|
|
52
|
+
--md-comp-heatmap-chart-shape: var(--md-sys-shape-corner-extra-small);
|
|
29
53
|
--md-comp-heatmap-chart-color: var(--md-sys-color-primary);
|
|
30
54
|
--md-comp-heatmap-chart-empty-color: var(--md-sys-color-surface-container-highest);
|
|
31
55
|
}
|
|
@@ -33,11 +57,7 @@
|
|
|
33
57
|
// The cells and the tooltip swatch share the mix.
|
|
34
58
|
.heatmap-chart-cell,
|
|
35
59
|
.heatmap-chart-tooltip > span {
|
|
36
|
-
--heatmap-chart-color:
|
|
37
|
-
in oklab,
|
|
38
|
-
var(--md-comp-heatmap-chart-color) calc(var(--level, 0) * 100%),
|
|
39
|
-
var(--md-comp-heatmap-chart-empty-color)
|
|
40
|
-
);
|
|
60
|
+
--heatmap-chart-color: #{shade(var(--level, 0))};
|
|
41
61
|
}
|
|
42
62
|
|
|
43
63
|
.heatmap-chart-plot {
|
|
@@ -46,16 +66,42 @@
|
|
|
46
66
|
background: none;
|
|
47
67
|
}
|
|
48
68
|
|
|
69
|
+
// The row labels, then the cells beside them. Row labels take up to 40% of
|
|
70
|
+
// the width and end in an ellipsis past it; the cells take the rest and
|
|
71
|
+
// scroll sideways when their minimum width would not fit, while the row
|
|
72
|
+
// labels stay in view. Both sides use the same fixed row height, so the
|
|
73
|
+
// rows line up.
|
|
49
74
|
.heatmap-chart-grid {
|
|
50
75
|
display: grid;
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
grid-template-rows: repeat(var(--rows, 1), var(--md-comp-heatmap-chart-row-height));
|
|
54
|
-
gap: var(--md-comp-heatmap-chart-gap);
|
|
76
|
+
grid-template-columns: fit-content(40%) minmax(0, 1fr);
|
|
77
|
+
column-gap: var(--md-comp-heatmap-chart-gap);
|
|
55
78
|
color: var(--md-sys-color-on-surface-variant);
|
|
56
79
|
@include typescale("body-small");
|
|
57
80
|
}
|
|
58
81
|
|
|
82
|
+
.heatmap-chart-rows,
|
|
83
|
+
.heatmap-chart-cells {
|
|
84
|
+
display: grid;
|
|
85
|
+
grid-template-rows: repeat(var(--rows, 1), var(--md-comp-heatmap-chart-row-height)) auto;
|
|
86
|
+
gap: var(--md-comp-heatmap-chart-gap);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
.heatmap-chart-rows {
|
|
90
|
+
min-width: 0;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
.heatmap-chart-scroll {
|
|
94
|
+
overflow-x: auto;
|
|
95
|
+
// Room for the active cell's outline, which the scrolling would clip.
|
|
96
|
+
margin: -3px;
|
|
97
|
+
padding: 3px;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
.heatmap-chart-cells {
|
|
101
|
+
grid-template-columns: repeat(var(--columns, 1), minmax(var(--md-comp-heatmap-chart-cell-min-width), 1fr));
|
|
102
|
+
width: max(100%, var(--columns, 1) * (var(--md-comp-heatmap-chart-cell-min-width) + var(--md-comp-heatmap-chart-gap)) - var(--md-comp-heatmap-chart-gap));
|
|
103
|
+
}
|
|
104
|
+
|
|
59
105
|
.heatmap-chart-row,
|
|
60
106
|
.heatmap-chart-column {
|
|
61
107
|
overflow: hidden;
|
|
@@ -76,6 +122,27 @@
|
|
|
76
122
|
&.run {
|
|
77
123
|
text-align: start;
|
|
78
124
|
}
|
|
125
|
+
|
|
126
|
+
// When each label is wider than its column, HeatmapChart keeps every nth
|
|
127
|
+
// one, as LineChart does. A kept label spreads over the hidden ones beside
|
|
128
|
+
// it, centred on its column; the end labels line up with the grid's edges.
|
|
129
|
+
.heatmap-chart-cells[data-thinned] > &:not([data-skip]) {
|
|
130
|
+
display: flex;
|
|
131
|
+
justify-content: center;
|
|
132
|
+
overflow: visible;
|
|
133
|
+
|
|
134
|
+
&:nth-child(1 of .heatmap-chart-column) {
|
|
135
|
+
justify-content: start;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
&:nth-last-child(1 of .heatmap-chart-column) {
|
|
139
|
+
justify-content: end;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
&[data-skip] {
|
|
144
|
+
visibility: hidden;
|
|
145
|
+
}
|
|
79
146
|
}
|
|
80
147
|
|
|
81
148
|
.heatmap-chart-cell {
|
|
@@ -134,12 +201,34 @@
|
|
|
134
201
|
.heatmap-chart-scale {
|
|
135
202
|
width: 96px;
|
|
136
203
|
height: 8px;
|
|
137
|
-
border-radius:
|
|
204
|
+
border-radius: var(--md-sys-shape-corner-extra-small);
|
|
138
205
|
// From the lowest cell's shade to the highest's, set by HeatmapChart.
|
|
139
206
|
background: linear-gradient(
|
|
140
207
|
in oklab to var(--heatmap-chart-to, right),
|
|
141
|
-
|
|
142
|
-
|
|
208
|
+
#{shade(var(--low, 0))},
|
|
209
|
+
#{shade(var(--high, 1))}
|
|
210
|
+
);
|
|
211
|
+
|
|
212
|
+
// A stepped scale is a swatch per band, which HeatmapChart writes.
|
|
213
|
+
&:has(> span) {
|
|
214
|
+
display: flex;
|
|
215
|
+
overflow: hidden;
|
|
216
|
+
background: none;
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
> span {
|
|
220
|
+
flex: 1;
|
|
221
|
+
background: #{shade(var(--level, 0))};
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
// A diverging scale whose data crosses the midpoint passes its empty color.
|
|
226
|
+
.heatmap-chart-scale.diverging {
|
|
227
|
+
background: linear-gradient(
|
|
228
|
+
in oklab to var(--heatmap-chart-to, right),
|
|
229
|
+
#{shade(var(--low, 0))},
|
|
230
|
+
var(--md-comp-heatmap-chart-empty-color) var(--mid, 0%),
|
|
231
|
+
#{shade(var(--high, 1))}
|
|
143
232
|
);
|
|
144
233
|
}
|
|
145
234
|
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
|
|
44
44
|
--md-comp-icon-button-color: var(--md-sys-color-on-surface-variant);
|
|
45
45
|
--md-comp-icon-button-container-color: transparent;
|
|
46
|
-
--md-comp-icon-button-container-shape:
|
|
46
|
+
--md-comp-icon-button-container-shape: var(--md-sys-shape-corner-full);
|
|
47
47
|
|
|
48
48
|
box-sizing: border-box;
|
|
49
49
|
display: inline-flex;
|
|
@@ -65,7 +65,11 @@
|
|
|
65
65
|
appearance: none;
|
|
66
66
|
vertical-align: middle;
|
|
67
67
|
-webkit-tap-highlight-color: transparent;
|
|
68
|
-
transition: background-color
|
|
68
|
+
transition: background-color var(--md-sys-motion-duration-short4) ease-out, border-radius var(--md-sys-motion-duration-short4) ease-out;
|
|
69
|
+
|
|
70
|
+
@media (prefers-reduced-motion: reduce) {
|
|
71
|
+
transition: none;
|
|
72
|
+
}
|
|
69
73
|
|
|
70
74
|
> #{$icon} {
|
|
71
75
|
flex: 0 0 auto;
|
|
@@ -82,11 +86,7 @@
|
|
|
82
86
|
// icon button gets a translucent tint instead of an opaque one.
|
|
83
87
|
@each $state, $selector in ("hover": "&:hover", "focus": "&:focus", "pressed": "&:active") {
|
|
84
88
|
#{$selector} {
|
|
85
|
-
background-color: color-
|
|
86
|
-
in oklab,
|
|
87
|
-
var(--md-comp-icon-button-color) state-opacity($state),
|
|
88
|
-
var(--md-comp-icon-button-container-color)
|
|
89
|
-
);
|
|
89
|
+
background-color: state-layer(var(--md-comp-icon-button-color), $state, var(--md-comp-icon-button-container-color));
|
|
90
90
|
}
|
|
91
91
|
}
|
|
92
92
|
|
|
@@ -30,14 +30,14 @@
|
|
|
30
30
|
[icon-style="sharp"],
|
|
31
31
|
:host([icon-style="sharp"]) { --md-icon-font: var(--md-icon-font-sharp); }
|
|
32
32
|
|
|
33
|
-
$_icon: ".material-symbols, .material-symbols-outlined, .material-symbols-rounded, .material-symbols-sharp
|
|
33
|
+
$_icon: ".material-symbols, .material-symbols-outlined, .material-symbols-rounded, .material-symbols-sharp";
|
|
34
34
|
|
|
35
35
|
#{$_icon} {
|
|
36
36
|
display: inline-block;
|
|
37
37
|
font-family: var(--md-icon-font);
|
|
38
38
|
font-weight: normal;
|
|
39
39
|
font-style: normal;
|
|
40
|
-
font-size: 24px;
|
|
40
|
+
font-size: rem(24px);
|
|
41
41
|
line-height: 1;
|
|
42
42
|
letter-spacing: normal;
|
|
43
43
|
text-transform: none;
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
@use "../abstracts" as *;
|
|
2
|
+
|
|
3
|
+
// Image compare. Two images of the same scene stacked, with a divider that
|
|
4
|
+
// reveals the second over the first. A .image-compare holds two <img> and a
|
|
5
|
+
// native <input type="range">: the range is the control, so keyboard,
|
|
6
|
+
// pointer, touch and its "slider" semantics are the browser's. It covers the
|
|
7
|
+
// images invisibly, and the container draws the divider and handle at
|
|
8
|
+
// --md-comp-image-compare-position, which the ImageCompare behavior keeps in
|
|
9
|
+
// step with the range's value.
|
|
10
|
+
//
|
|
11
|
+
// Tokens:
|
|
12
|
+
// --md-comp-image-compare-position 50% (from the inline start)
|
|
13
|
+
// --md-comp-image-compare-shape 16px
|
|
14
|
+
// --md-comp-image-compare-divider-color surface
|
|
15
|
+
// --md-comp-image-compare-handle-size 40px
|
|
16
|
+
|
|
17
|
+
.image-compare {
|
|
18
|
+
--md-comp-image-compare-position: 50%;
|
|
19
|
+
--md-comp-image-compare-shape: var(--md-sys-shape-corner-large);
|
|
20
|
+
--md-comp-image-compare-divider-color: var(--md-sys-color-surface);
|
|
21
|
+
--md-comp-image-compare-handle-size: 40px;
|
|
22
|
+
|
|
23
|
+
position: relative;
|
|
24
|
+
display: grid;
|
|
25
|
+
overflow: hidden;
|
|
26
|
+
border-radius: var(--md-comp-image-compare-shape);
|
|
27
|
+
isolation: isolate;
|
|
28
|
+
|
|
29
|
+
> img {
|
|
30
|
+
grid-area: 1 / 1;
|
|
31
|
+
display: block;
|
|
32
|
+
inline-size: 100%;
|
|
33
|
+
block-size: 100%;
|
|
34
|
+
object-fit: cover;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
> img + img {
|
|
38
|
+
clip-path: inset(0 0 0 var(--md-comp-image-compare-position));
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
&:dir(rtl) > img + img {
|
|
42
|
+
clip-path: inset(0 var(--md-comp-image-compare-position) 0 0);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
> input[type="range"] {
|
|
46
|
+
grid-area: 1 / 1;
|
|
47
|
+
z-index: 2;
|
|
48
|
+
inline-size: 100%;
|
|
49
|
+
block-size: 100%;
|
|
50
|
+
margin: 0;
|
|
51
|
+
cursor: ew-resize;
|
|
52
|
+
opacity: 0;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
// The divider line, then the round handle on it.
|
|
56
|
+
&::before,
|
|
57
|
+
&::after {
|
|
58
|
+
content: "";
|
|
59
|
+
position: absolute;
|
|
60
|
+
z-index: 1;
|
|
61
|
+
inset-inline-start: var(--md-comp-image-compare-position);
|
|
62
|
+
pointer-events: none;
|
|
63
|
+
translate: -50% 0;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
&:dir(rtl)::before,
|
|
67
|
+
&:dir(rtl)::after {
|
|
68
|
+
translate: 50% 0;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
&::before {
|
|
72
|
+
inset-block: 0;
|
|
73
|
+
inline-size: 2px;
|
|
74
|
+
background-color: var(--md-comp-image-compare-divider-color);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
&::after {
|
|
78
|
+
inset-block-start: calc(50% - var(--md-comp-image-compare-handle-size) / 2);
|
|
79
|
+
inline-size: var(--md-comp-image-compare-handle-size);
|
|
80
|
+
block-size: var(--md-comp-image-compare-handle-size);
|
|
81
|
+
border-radius: 50%;
|
|
82
|
+
background-color: var(--md-comp-image-compare-divider-color);
|
|
83
|
+
@include z-depth("2");
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
&:has(> input:focus-visible)::after {
|
|
87
|
+
@include focus-ring();
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
&:has(> input:disabled) {
|
|
91
|
+
> input {
|
|
92
|
+
cursor: default;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
&::after {
|
|
96
|
+
opacity: 0.38;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
@media (forced-colors: active) {
|
|
101
|
+
&::before,
|
|
102
|
+
&::after {
|
|
103
|
+
forced-color-adjust: none;
|
|
104
|
+
background-color: Canvas;
|
|
105
|
+
outline: 2px solid CanvasText;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
@@ -31,6 +31,7 @@
|
|
|
31
31
|
@forward "chips";
|
|
32
32
|
@forward "lightbox";
|
|
33
33
|
@forward "docked-display";
|
|
34
|
+
@forward "modal-display";
|
|
34
35
|
@forward "page-footer";
|
|
35
36
|
@forward "forms";
|
|
36
37
|
@forward "table_of_contents";
|
|
@@ -44,6 +45,11 @@
|
|
|
44
45
|
@forward "panes";
|
|
45
46
|
@forward "fab-menu";
|
|
46
47
|
@forward "loading-indicator";
|
|
48
|
+
@forward "pull-to-refresh";
|
|
49
|
+
@forward "loading-overlay";
|
|
50
|
+
@forward "swipe-actions";
|
|
51
|
+
@forward "show-more";
|
|
52
|
+
@forward "transfer-list";
|
|
47
53
|
@forward "search";
|
|
48
54
|
@forward "drag-handle";
|
|
49
55
|
@forward "scrim";
|
|
@@ -53,9 +59,16 @@
|
|
|
53
59
|
@forward "map";
|
|
54
60
|
@forward "accordion";
|
|
55
61
|
@forward "data-table";
|
|
62
|
+
@forward "description-list";
|
|
63
|
+
@forward "calendar";
|
|
64
|
+
@forward "mega-menu";
|
|
65
|
+
@forward "image-compare";
|
|
66
|
+
@forward "tour";
|
|
67
|
+
@forward "menubar";
|
|
56
68
|
@forward "avatar";
|
|
57
69
|
@forward "skeleton";
|
|
58
70
|
@forward "empty-state";
|
|
71
|
+
@forward "alert";
|
|
59
72
|
@forward "countdown";
|
|
60
73
|
@forward "popover";
|
|
61
74
|
@forward "stepper";
|
|
@@ -72,9 +85,16 @@
|
|
|
72
85
|
@forward "radar-chart";
|
|
73
86
|
@forward "radial-chart";
|
|
74
87
|
@forward "mixed-chart";
|
|
88
|
+
@forward "scatter-chart";
|
|
89
|
+
@forward "funnel-chart";
|
|
90
|
+
@forward "sankey-chart";
|
|
91
|
+
@forward "treemap-chart";
|
|
75
92
|
@forward "aura";
|
|
76
93
|
@forward "kpi";
|
|
77
94
|
@forward "marquee";
|
|
78
95
|
@forward "confetti";
|
|
79
96
|
@forward "particles";
|
|
80
97
|
@forward "keypad";
|
|
98
|
+
@forward "org-chart";
|
|
99
|
+
@forward "back-to-top";
|
|
100
|
+
@forward "cascader";
|
|
@@ -4,8 +4,10 @@
|
|
|
4
4
|
//
|
|
5
5
|
// Anatomy is the HTML. Every key is a <button type="button">. A key with a
|
|
6
6
|
// `value` types that value; a key with `data-key` is a function key
|
|
7
|
-
// (Backspace, Enter, Shift).
|
|
8
|
-
//
|
|
7
|
+
// (Backspace, Enter, Shift, CapsLock, Layer). A Layer key shows the
|
|
8
|
+
// elements whose `data-layer` matches its `value`, such as a row of
|
|
9
|
+
// symbols. `.keypad` is a three-column grid of round keys, the dial pad
|
|
10
|
+
// and PIN pad. `.keyboard` is a column of rows (any <div>), each
|
|
9
11
|
// row a flex line of keys. A key carrying a button style class (.filled,
|
|
10
12
|
// .tonal, .outlined, .elevated, .text) keeps that style, so a call or submit
|
|
11
13
|
// key is written the same way as any other button.
|
|
@@ -25,9 +27,10 @@ $_key: "button:not(.filled, .tonal, .outlined, .elevated, .text, :disabled)";
|
|
|
25
27
|
--md-comp-keypad-key-label-color: var(--md-sys-color-on-surface);
|
|
26
28
|
--md-comp-keypad-function-key-color: var(--md-sys-color-secondary-container);
|
|
27
29
|
--md-comp-keypad-function-key-label-color: var(--md-sys-color-on-secondary-container);
|
|
28
|
-
--md-comp-keypad-key-pressed-shape:
|
|
30
|
+
--md-comp-keypad-key-pressed-shape: var(--md-sys-shape-corner-medium);
|
|
29
31
|
// Material's fast-spatial spring, the curve button groups press with.
|
|
30
|
-
--md-comp-keypad-motion:
|
|
32
|
+
--md-comp-keypad-motion: var(--md-sys-motion-spring-fast-spatial);
|
|
33
|
+
--md-comp-keypad-motion-duration: var(--md-sys-motion-spring-fast-spatial-duration);
|
|
31
34
|
|
|
32
35
|
touch-action: manipulation;
|
|
33
36
|
|
|
@@ -37,8 +40,8 @@ $_key: "button:not(.filled, .tonal, .outlined, .elevated, .text, :disabled)";
|
|
|
37
40
|
min-width: 0;
|
|
38
41
|
padding: 0;
|
|
39
42
|
transition:
|
|
40
|
-
border-radius
|
|
41
|
-
background-color
|
|
43
|
+
border-radius var(--md-comp-keypad-motion-duration) var(--md-comp-keypad-motion),
|
|
44
|
+
background-color var(--md-sys-motion-duration-short4) ease-out;
|
|
42
45
|
|
|
43
46
|
&[data-key] {
|
|
44
47
|
--_color: var(--md-comp-keypad-function-key-color);
|
|
@@ -47,13 +50,14 @@ $_key: "button:not(.filled, .tonal, .outlined, .elevated, .text, :disabled)";
|
|
|
47
50
|
|
|
48
51
|
// The state layer's opacity. Only the rule below reads it, so a key
|
|
49
52
|
// that keeps a button style ignores it.
|
|
50
|
-
|
|
53
|
+
// .pressed is a hardware key held down in the field.
|
|
54
|
+
@each $state, $selector in ("hover": "&:hover", "focus": "&:focus", "pressed": "&:is(:active, .pressed)") {
|
|
51
55
|
#{$selector} {
|
|
52
56
|
--_state: #{state-opacity($state)};
|
|
53
57
|
}
|
|
54
58
|
}
|
|
55
59
|
|
|
56
|
-
&:active:not(:disabled) {
|
|
60
|
+
&:is(:active, .pressed):not(:disabled) {
|
|
57
61
|
border-radius: var(--md-comp-keypad-key-pressed-shape);
|
|
58
62
|
}
|
|
59
63
|
|
|
@@ -68,8 +72,8 @@ $_key: "button:not(.filled, .tonal, .outlined, .elevated, .text, :disabled)";
|
|
|
68
72
|
background-color: color-mix(in oklab, var(--_label) var(--_state, 0%), var(--_color));
|
|
69
73
|
}
|
|
70
74
|
|
|
71
|
-
// A latched Shift reads as selected: primary, like a selected toggle.
|
|
72
|
-
[data-key="Shift"][aria-pressed="true"] {
|
|
75
|
+
// A latched Shift or Caps Lock reads as selected: primary, like a selected toggle.
|
|
76
|
+
:is([data-key="Shift"], [data-key="CapsLock"])[aria-pressed="true"] {
|
|
73
77
|
--_color: var(--md-sys-color-primary);
|
|
74
78
|
--_label: var(--md-sys-color-on-primary);
|
|
75
79
|
}
|
|
@@ -80,7 +84,7 @@ $_key: "button:not(.filled, .tonal, .outlined, .elevated, .text, :disabled)";
|
|
|
80
84
|
// Keys fill their cell, so `.wide` spans two and becomes a pill: a call key
|
|
81
85
|
// beside Backspace leaves no hole in the last row.
|
|
82
86
|
.keypad {
|
|
83
|
-
--md-comp-keypad-key-size: 72px;
|
|
87
|
+
--md-comp-keypad-key-size: #{rem(72px)};
|
|
84
88
|
--md-comp-keypad-gap: 12px;
|
|
85
89
|
|
|
86
90
|
display: inline-grid;
|
|
@@ -102,7 +106,7 @@ $_key: "button:not(.filled, .tonal, .outlined, .elevated, .text, :disabled)";
|
|
|
102
106
|
> small {
|
|
103
107
|
@include typescale("label-small");
|
|
104
108
|
color: inherit;
|
|
105
|
-
opacity: .78;
|
|
109
|
+
opacity: 0.78;
|
|
106
110
|
}
|
|
107
111
|
}
|
|
108
112
|
}
|
|
@@ -115,12 +119,12 @@ $_key: "button:not(.filled, .tonal, .outlined, .elevated, .text, :disabled)";
|
|
|
115
119
|
.keyboard {
|
|
116
120
|
--md-comp-keyboard-columns: 10;
|
|
117
121
|
--md-comp-keyboard-gap: 6px;
|
|
118
|
-
--md-comp-keyboard-key-height: 48px;
|
|
119
|
-
--md-comp-keyboard-number-key-height: 40px;
|
|
120
|
-
--md-comp-keyboard-key-shape:
|
|
122
|
+
--md-comp-keyboard-key-height: #{rem(48px)};
|
|
123
|
+
--md-comp-keyboard-number-key-height: #{rem(40px)};
|
|
124
|
+
--md-comp-keyboard-key-shape: var(--md-sys-shape-corner-medium);
|
|
121
125
|
--md-comp-keypad-key-pressed-shape: 6px;
|
|
122
126
|
--md-comp-keyboard-container-color: var(--md-sys-color-surface-container);
|
|
123
|
-
--md-comp-keyboard-container-shape:
|
|
127
|
+
--md-comp-keyboard-container-shape: var(--md-sys-shape-corner-large);
|
|
124
128
|
|
|
125
129
|
display: flex;
|
|
126
130
|
flex-direction: column;
|
|
@@ -143,7 +147,7 @@ $_key: "button:not(.filled, .tonal, .outlined, .elevated, .text, :disabled)";
|
|
|
143
147
|
@include typescale("title-medium");
|
|
144
148
|
|
|
145
149
|
&[data-key] {
|
|
146
|
-
flex-basis: calc(1.5 * var(--_unit) + .5 * var(--md-comp-keyboard-gap));
|
|
150
|
+
flex-basis: calc(1.5 * var(--_unit) + 0.5 * var(--md-comp-keyboard-gap));
|
|
147
151
|
}
|
|
148
152
|
|
|
149
153
|
&[value=" "] {
|
|
@@ -155,8 +159,24 @@ $_key: "button:not(.filled, .tonal, .outlined, .elevated, .text, :disabled)";
|
|
|
155
159
|
height: var(--md-comp-keyboard-number-key-height);
|
|
156
160
|
}
|
|
157
161
|
|
|
158
|
-
// Shift shows capitals on the character keys while
|
|
159
|
-
&:has([data-key="Shift"][aria-pressed="true"]) button[value] {
|
|
162
|
+
// Shift or Caps Lock shows capitals on the character keys while latched.
|
|
163
|
+
&:has(:is([data-key="Shift"], [data-key="CapsLock"])[aria-pressed="true"]) button[value] {
|
|
160
164
|
text-transform: uppercase;
|
|
161
165
|
}
|
|
162
166
|
}
|
|
167
|
+
|
|
168
|
+
// Forced colors paint the keys and the keyboard's container as Canvas.
|
|
169
|
+
@media (forced-colors: active) {
|
|
170
|
+
:is(.keypad, .keyboard) button,
|
|
171
|
+
.keyboard {
|
|
172
|
+
outline: 1px solid ButtonText;
|
|
173
|
+
outline-offset: -1px;
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
// The fill that marks the main key, such as Call, is dropped too, so a
|
|
177
|
+
// thicker edge sets it apart, as a default button's is in high contrast.
|
|
178
|
+
:is(.keypad, .keyboard) button.filled {
|
|
179
|
+
outline-width: 3px;
|
|
180
|
+
outline-offset: -3px;
|
|
181
|
+
}
|
|
182
|
+
}
|