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