@expressivecss/expressive 0.15.0 → 0.17.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 +1807 -1
- package/README.md +9 -8
- package/dist/css/expressive.css +19176 -11958
- 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-26VUH75M.mjs +102 -0
- package/dist/js/chunks/chunk-26VUH75M.mjs.map +7 -0
- package/dist/js/chunks/chunk-2LFCOGC3.mjs +233 -0
- package/dist/js/chunks/chunk-2LFCOGC3.mjs.map +7 -0
- package/dist/js/chunks/{chunk-DXGRXYYL.mjs → chunk-36GELQGX.mjs} +29 -46
- package/dist/js/chunks/chunk-36GELQGX.mjs.map +7 -0
- package/dist/js/chunks/{chunk-74MXKKLN.mjs → chunk-3FKWIRHW.mjs} +15 -29
- package/dist/js/chunks/chunk-3FKWIRHW.mjs.map +7 -0
- package/dist/js/chunks/chunk-3KF65KGL.mjs +209 -0
- package/dist/js/chunks/chunk-3KF65KGL.mjs.map +7 -0
- package/dist/js/chunks/{chunk-KVJAVDBC.mjs → chunk-3KLZRQZI.mjs} +88 -116
- package/dist/js/chunks/chunk-3KLZRQZI.mjs.map +7 -0
- package/dist/js/chunks/{chunk-CK2XCICY.mjs → chunk-3XORNED5.mjs} +3 -11
- package/dist/js/chunks/chunk-3XORNED5.mjs.map +7 -0
- package/dist/js/chunks/chunk-4WBGAQN3.mjs +113 -0
- package/dist/js/chunks/chunk-4WBGAQN3.mjs.map +7 -0
- package/dist/js/chunks/{chunk-FM5CZOUB.mjs → chunk-5F4URJHL.mjs} +19 -30
- package/dist/js/chunks/chunk-5F4URJHL.mjs.map +7 -0
- package/dist/js/chunks/chunk-67UNY7RH.mjs +299 -0
- package/dist/js/chunks/chunk-67UNY7RH.mjs.map +7 -0
- package/dist/js/chunks/chunk-7CXNATJS.mjs +97 -0
- package/dist/js/chunks/chunk-7CXNATJS.mjs.map +7 -0
- package/dist/js/chunks/{chunk-UETTGDLI.mjs → chunk-7X44MKEQ.mjs} +43 -48
- package/dist/js/chunks/chunk-7X44MKEQ.mjs.map +7 -0
- package/dist/js/chunks/chunk-7ZAMOMGY.mjs +440 -0
- package/dist/js/chunks/chunk-7ZAMOMGY.mjs.map +7 -0
- package/dist/js/chunks/chunk-AEG6LOAJ.mjs +54 -0
- package/dist/js/chunks/chunk-AEG6LOAJ.mjs.map +7 -0
- package/dist/js/chunks/chunk-AQNFCJJ5.mjs +135 -0
- package/dist/js/chunks/chunk-AQNFCJJ5.mjs.map +7 -0
- package/dist/js/chunks/chunk-B55LWKBM.mjs +75 -0
- package/dist/js/chunks/chunk-B55LWKBM.mjs.map +7 -0
- package/dist/js/chunks/chunk-BB5VXYXT.mjs +28 -0
- package/dist/js/chunks/chunk-BB5VXYXT.mjs.map +7 -0
- package/dist/js/chunks/chunk-BDATLH3H.mjs +108 -0
- package/dist/js/chunks/chunk-BDATLH3H.mjs.map +7 -0
- package/dist/js/chunks/chunk-CWMQOT4O.mjs +232 -0
- package/dist/js/chunks/chunk-CWMQOT4O.mjs.map +7 -0
- package/dist/js/chunks/chunk-CY2CTOVM.mjs +81 -0
- package/dist/js/chunks/chunk-CY2CTOVM.mjs.map +7 -0
- package/dist/js/chunks/{chunk-NUHMOAOY.mjs → chunk-DWA5UYLJ.mjs} +363 -218
- package/dist/js/chunks/chunk-DWA5UYLJ.mjs.map +7 -0
- package/dist/js/chunks/chunk-EB2V4OKL.mjs +79 -0
- package/dist/js/chunks/chunk-EB2V4OKL.mjs.map +7 -0
- package/dist/js/chunks/chunk-EWO662ZC.mjs +188 -0
- package/dist/js/chunks/chunk-EWO662ZC.mjs.map +7 -0
- package/dist/js/chunks/{chunk-ZX6M7SWO.mjs → chunk-F7LAKFMX.mjs} +320 -141
- package/dist/js/chunks/chunk-F7LAKFMX.mjs.map +7 -0
- package/dist/js/chunks/{chunk-L27Q6ZMI.mjs → chunk-FNIIH2LU.mjs} +20 -33
- package/dist/js/chunks/chunk-FNIIH2LU.mjs.map +7 -0
- package/dist/js/chunks/chunk-GE3YMFS6.mjs +15 -0
- package/dist/js/chunks/chunk-GE3YMFS6.mjs.map +7 -0
- package/dist/js/chunks/chunk-GFWYMWYN.mjs +125 -0
- package/dist/js/chunks/chunk-GFWYMWYN.mjs.map +7 -0
- package/dist/js/chunks/chunk-GNRSYMVH.mjs +1 -0
- package/dist/js/chunks/chunk-H5ISU45X.mjs +87 -0
- package/dist/js/chunks/chunk-H5ISU45X.mjs.map +7 -0
- package/dist/js/chunks/{chunk-GJL6GCIU.mjs → chunk-H6YIKFAQ.mjs} +311 -186
- package/dist/js/chunks/chunk-H6YIKFAQ.mjs.map +7 -0
- package/dist/js/chunks/{chunk-BGZLF6JZ.mjs → chunk-HEH7E3KO.mjs} +155 -35
- package/dist/js/chunks/chunk-HEH7E3KO.mjs.map +7 -0
- package/dist/js/chunks/chunk-HQRLBTNM.mjs +152 -0
- package/dist/js/chunks/chunk-HQRLBTNM.mjs.map +7 -0
- package/dist/js/chunks/chunk-I2F7MLUU.mjs +137 -0
- package/dist/js/chunks/chunk-I2F7MLUU.mjs.map +7 -0
- package/dist/js/chunks/chunk-IQOTGGHX.mjs +797 -0
- package/dist/js/chunks/chunk-IQOTGGHX.mjs.map +7 -0
- package/dist/js/chunks/chunk-JH3YWKA6.mjs +225 -0
- package/dist/js/chunks/chunk-JH3YWKA6.mjs.map +7 -0
- package/dist/js/chunks/chunk-JOLJAYIJ.mjs +7 -0
- package/dist/js/chunks/chunk-JOLJAYIJ.mjs.map +7 -0
- package/dist/js/chunks/{chunk-VGNYF6FB.mjs → chunk-KOTGMCMI.mjs} +116 -24
- package/dist/js/chunks/chunk-KOTGMCMI.mjs.map +7 -0
- package/dist/js/chunks/{chunk-LQWUDNHZ.mjs → chunk-LC4O5LFS.mjs} +21 -45
- package/dist/js/chunks/chunk-LC4O5LFS.mjs.map +7 -0
- package/dist/js/chunks/chunk-LEF33SCP.mjs +127 -0
- package/dist/js/chunks/chunk-LEF33SCP.mjs.map +7 -0
- package/dist/js/chunks/{chunk-PDG64UHF.mjs → chunk-LFORZRPH.mjs} +21 -23
- package/dist/js/chunks/chunk-LFORZRPH.mjs.map +7 -0
- package/dist/js/chunks/chunk-LWLNV5EC.mjs +451 -0
- package/dist/js/chunks/chunk-LWLNV5EC.mjs.map +7 -0
- package/dist/js/chunks/chunk-LXRHUQAX.mjs +491 -0
- package/dist/js/chunks/chunk-LXRHUQAX.mjs.map +7 -0
- package/dist/js/chunks/{chunk-SFI2U4YW.mjs → chunk-MA2SZZFB.mjs} +82 -111
- package/dist/js/chunks/chunk-MA2SZZFB.mjs.map +7 -0
- package/dist/js/chunks/chunk-MDBZAMIV.mjs +121 -0
- package/dist/js/chunks/chunk-MDBZAMIV.mjs.map +7 -0
- package/dist/js/chunks/chunk-NODZ5VAD.mjs +75 -0
- package/dist/js/chunks/chunk-NODZ5VAD.mjs.map +7 -0
- package/dist/js/chunks/chunk-O2WJB6TH.mjs +365 -0
- package/dist/js/chunks/chunk-O2WJB6TH.mjs.map +7 -0
- package/dist/js/chunks/chunk-PCABY5BN.mjs +35 -0
- package/dist/js/chunks/chunk-PCABY5BN.mjs.map +7 -0
- package/dist/js/chunks/chunk-PWKYVMND.mjs +120 -0
- package/dist/js/chunks/chunk-PWKYVMND.mjs.map +7 -0
- package/dist/js/chunks/{chunk-SMY7GJSS.mjs → chunk-QHZZT7YO.mjs} +66 -38
- package/dist/js/chunks/chunk-QHZZT7YO.mjs.map +7 -0
- package/dist/js/chunks/chunk-QND56EW2.mjs +439 -0
- package/dist/js/chunks/chunk-QND56EW2.mjs.map +7 -0
- package/dist/js/chunks/chunk-QNODAANY.mjs +376 -0
- package/dist/js/chunks/chunk-QNODAANY.mjs.map +7 -0
- package/dist/js/chunks/{chunk-KHXZ2A4K.mjs → chunk-QRO5FV3I.mjs} +156 -73
- package/dist/js/chunks/chunk-QRO5FV3I.mjs.map +7 -0
- package/dist/js/chunks/chunk-R7A7JRC5.mjs +440 -0
- package/dist/js/chunks/chunk-R7A7JRC5.mjs.map +7 -0
- package/dist/js/chunks/chunk-RKG2CBFE.mjs +74 -0
- package/dist/js/chunks/chunk-RKG2CBFE.mjs.map +7 -0
- package/dist/js/chunks/{chunk-XAEAEHIX.mjs → chunk-RSNS5OYS.mjs} +38 -25
- package/dist/js/chunks/chunk-RSNS5OYS.mjs.map +7 -0
- package/dist/js/chunks/{chunk-X4ISMKE2.mjs → chunk-RUDYMEJ3.mjs} +7 -6
- package/dist/js/chunks/chunk-RUDYMEJ3.mjs.map +7 -0
- package/dist/js/chunks/chunk-STJR62SU.mjs +161 -0
- package/dist/js/chunks/chunk-STJR62SU.mjs.map +7 -0
- package/dist/js/chunks/chunk-SUSD4UTN.mjs +220 -0
- package/dist/js/chunks/chunk-SUSD4UTN.mjs.map +7 -0
- package/dist/js/chunks/{chunk-5CEAOLUA.mjs → chunk-SYBOA5HC.mjs} +26 -48
- package/dist/js/chunks/chunk-SYBOA5HC.mjs.map +7 -0
- package/dist/js/chunks/chunk-T4MOBP3J.mjs +108 -0
- package/dist/js/chunks/chunk-T4MOBP3J.mjs.map +7 -0
- package/dist/js/chunks/chunk-TM7HPGTV.mjs +342 -0
- package/dist/js/chunks/chunk-TM7HPGTV.mjs.map +7 -0
- package/dist/js/chunks/{chunk-C6CHEWYP.mjs → chunk-TMQDZSDC.mjs} +71 -35
- package/dist/js/chunks/chunk-TMQDZSDC.mjs.map +7 -0
- package/dist/js/chunks/chunk-TVSX5YA2.mjs +48 -0
- package/dist/js/chunks/chunk-TVSX5YA2.mjs.map +7 -0
- package/dist/js/chunks/chunk-UHO5CV6K.mjs +80 -0
- package/dist/js/chunks/chunk-UHO5CV6K.mjs.map +7 -0
- package/dist/js/chunks/chunk-UKCNELUN.mjs +223 -0
- package/dist/js/chunks/chunk-UKCNELUN.mjs.map +7 -0
- package/dist/js/chunks/chunk-UKQK5GWR.mjs +167 -0
- package/dist/js/chunks/chunk-UKQK5GWR.mjs.map +7 -0
- package/dist/js/chunks/{chunk-TSZYSW7F.mjs → chunk-UTSLYQ65.mjs} +21 -48
- package/dist/js/chunks/chunk-UTSLYQ65.mjs.map +7 -0
- package/dist/js/chunks/chunk-VS5OJBOD.mjs +108 -0
- package/dist/js/chunks/chunk-VS5OJBOD.mjs.map +7 -0
- package/dist/js/chunks/chunk-VZMROW5A.mjs +759 -0
- package/dist/js/chunks/chunk-VZMROW5A.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-XB6Y7P5W.mjs +69 -0
- package/dist/js/chunks/chunk-XB6Y7P5W.mjs.map +7 -0
- package/dist/js/chunks/chunk-XDAMOMVD.mjs +226 -0
- package/dist/js/chunks/chunk-XDAMOMVD.mjs.map +7 -0
- package/dist/js/chunks/{chunk-WDK4T63U.mjs → chunk-XJPMW5SP.mjs} +247 -172
- package/dist/js/chunks/chunk-XJPMW5SP.mjs.map +7 -0
- package/dist/js/chunks/{chunk-KUFHW3DS.mjs → chunk-YKANQILZ.mjs} +16 -21
- package/dist/js/chunks/chunk-YKANQILZ.mjs.map +7 -0
- package/dist/js/chunks/chunk-YLZOJLDI.mjs +175 -0
- package/dist/js/chunks/chunk-YLZOJLDI.mjs.map +7 -0
- package/dist/js/chunks/chunk-ZK7YY322.mjs +514 -0
- package/dist/js/chunks/chunk-ZK7YY322.mjs.map +7 -0
- package/dist/js/expressive.cjs +10266 -3628
- package/dist/js/expressive.cjs.map +4 -4
- package/dist/js/expressive.js +10266 -3628
- 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 +181 -69
- package/dist/js/expressive.mjs.map +2 -2
- package/dist/js/internal/behaviors/bottomSheets.mjs +4 -3
- package/dist/js/internal/behaviors/copy.mjs +9 -0
- package/dist/js/internal/behaviors/copy.mjs.map +7 -0
- package/dist/js/internal/behaviors/dataTables.mjs +8 -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 +5 -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 +7 -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 +12 -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 -65
- 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 +41 -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 +60 -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 +5 -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 +14 -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 +6 -3
- package/dist/js/internal/core/formControl.mjs +12 -0
- package/dist/js/internal/core/formControl.mjs.map +7 -0
- package/dist/js/internal/core/imageURL.mjs +7 -0
- package/dist/js/internal/core/imageURL.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 +21 -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 +172 -69
- package/dist/types/behaviors/bottomSheets.d.ts +23 -5
- package/dist/types/behaviors/copy.d.ts +18 -0
- package/dist/types/behaviors/dataTables.d.ts +125 -0
- package/dist/types/behaviors/dialogs.d.ts +27 -1
- package/dist/types/behaviors/forms.d.ts +70 -4
- package/dist/types/behaviors/imageCompare.d.ts +13 -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 +53 -0
- package/dist/types/components/appBar.d.ts +5 -6
- package/dist/types/components/autocomplete.d.ts +105 -20
- 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 +16 -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 +80 -19
- package/dist/types/components/colorPicker.d.ts +56 -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 +60 -0
- package/dist/types/components/datepicker.d.ts +107 -56
- package/dist/types/components/expandingCard.d.ts +4 -6
- package/dist/types/components/funnelChart.d.ts +35 -0
- package/dist/types/components/heatmapChart.d.ts +42 -8
- package/dist/types/components/hoverCard.d.ts +59 -0
- package/dist/types/components/index.d.ts +16 -1
- package/dist/types/components/inputMask.d.ts +28 -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 +212 -12
- package/dist/types/components/loadingOverlay.d.ts +42 -0
- package/dist/types/components/mapView.d.ts +138 -27
- package/dist/types/components/menu.d.ts +74 -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 +22 -5
- package/dist/types/components/pieChart.d.ts +33 -9
- 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 +45 -22
- 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 +44 -33
- package/dist/types/components/showMore.d.ts +53 -0
- package/dist/types/components/slider.d.ts +2 -15
- package/dist/types/components/snackbar.d.ts +68 -1
- package/dist/types/components/swipeActions.d.ts +81 -0
- package/dist/types/components/tabs.d.ts +92 -30
- package/dist/types/components/timepicker.d.ts +128 -27
- package/dist/types/components/tooltip.d.ts +57 -21
- 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 +49 -25
- package/dist/types/core/formControl.d.ts +21 -0
- package/dist/types/core/imageURL.d.ts +2 -0
- package/dist/types/core/spring.d.ts +20 -0
- package/dist/types/core/utils.d.ts +123 -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 +39 -0
- package/package.json +17 -13
- 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 +864 -78
- package/src/sass/abstracts/_spring.scss +63 -0
- package/src/sass/abstracts/_variables.scss +64 -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 +10 -19
- package/src/sass/components/_alert.scss +102 -0
- package/src/sass/components/_aura.scss +9 -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 +31 -90
- package/src/sass/components/_bottom-sheet.scss +51 -16
- package/src/sass/components/_breadcrumb.scss +8 -7
- package/src/sass/components/_button-groups.scss +30 -63
- package/src/sass/components/_buttons.scss +137 -94
- package/src/sass/components/_calendar.scss +244 -0
- package/src/sass/components/_cards.scss +36 -44
- package/src/sass/components/_carousel.scss +37 -113
- package/src/sass/components/_cascader.scss +131 -0
- package/src/sass/components/_chips.scss +36 -46
- package/src/sass/components/_column-chart.scss +15 -26
- package/src/sass/components/_command-palette.scss +4 -7
- package/src/sass/components/_confetti.scss +1 -4
- package/src/sass/components/_countdown.scss +1 -1
- package/src/sass/components/_data-table.scss +172 -25
- package/src/sass/components/_datepicker.scss +54 -40
- package/src/sass/components/_description-list.scss +85 -0
- package/src/sass/components/_dialog.scss +48 -55
- 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 +21 -14
- package/src/sass/components/_fab-menu.scss +43 -39
- package/src/sass/components/_funnel-chart.scss +63 -0
- package/src/sass/components/_heatmap-chart.scss +114 -29
- package/src/sass/components/_icon-buttons.scss +8 -11
- 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 +9 -63
- 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 +37 -11
- package/src/sass/components/_marquee.scss +4 -3
- package/src/sass/components/_mega-menu.scss +128 -0
- package/src/sass/components/_menu.scss +146 -127
- package/src/sass/components/_menubar.scss +47 -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 +27 -35
- package/src/sass/components/_modal-display.scss +21 -0
- package/src/sass/components/_navbar.scss +45 -36
- package/src/sass/components/_navigation-bar.scss +12 -77
- package/src/sass/components/_navigation-rail.scss +161 -92
- package/src/sass/components/_org-chart.scss +192 -0
- package/src/sass/components/_page-footer.scss +2 -4
- package/src/sass/components/_pagination.scss +9 -27
- package/src/sass/components/_panes.scss +35 -42
- package/src/sass/components/_particles.scss +1 -4
- package/src/sass/components/_pie-chart.scss +86 -68
- package/src/sass/components/_popover.scss +18 -5
- package/src/sass/components/_progress.scss +183 -44
- 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 +40 -42
- package/src/sass/components/_radial-chart.scss +108 -46
- package/src/sass/components/_rich-text-editor.scss +2 -2
- package/src/sass/components/_sankey-chart.scss +91 -0
- package/src/sass/components/_scatter-chart.scss +144 -0
- package/src/sass/components/_scrim.scss +0 -2
- package/src/sass/components/_scrollspy.scss +0 -2
- package/src/sass/components/_search.scss +27 -26
- package/src/sass/components/_show-more.scss +8 -0
- package/src/sass/components/_side-sheet.scss +32 -51
- package/src/sass/components/_skeleton.scss +26 -19
- package/src/sass/components/_snackbar.scss +25 -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/_table_of_contents.scss +1 -3
- package/src/sass/components/_tabs.scss +49 -46
- package/src/sass/components/_timeline.scss +12 -12
- package/src/sass/components/_timepicker.scss +111 -79
- package/src/sass/components/_toolbar.scss +36 -47
- package/src/sass/components/_tooltip.scss +25 -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 +7 -32
- package/src/sass/components/_treemap-chart.scss +98 -0
- package/src/sass/components/forms/_checkboxes.scss +107 -44
- 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 +16 -13
- package/src/sass/components/forms/_fieldset.scss +4 -7
- package/src/sass/components/forms/_file-input.scss +12 -8
- package/src/sass/components/forms/_index.scss +3 -1
- package/src/sass/components/forms/_input-fields.scss +271 -90
- package/src/sass/components/forms/_radio-buttons.scss +34 -117
- package/src/sass/components/forms/_rating.scss +2 -32
- package/src/sass/components/forms/_select.scss +198 -20
- package/src/sass/components/forms/_slider.scss +92 -98
- package/src/sass/components/forms/_switches.scss +62 -180
- 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 +184 -27
- 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 +46 -77
- 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 +0 -90
- 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
|
@@ -33,16 +33,8 @@ label:has(> [type="checkbox"]):not(.switch),
|
|
|
33
33
|
--md-comp-checkbox-state-layer-size: 40px;
|
|
34
34
|
|
|
35
35
|
position: relative;
|
|
36
|
-
display: flex;
|
|
37
|
-
align-items: center;
|
|
38
|
-
gap: 12px;
|
|
39
|
-
min-height: 48px;
|
|
40
|
-
margin: 0;
|
|
41
|
-
cursor: pointer;
|
|
42
|
-
user-select: none;
|
|
43
36
|
-webkit-tap-highlight-color: transparent;
|
|
44
|
-
|
|
45
|
-
@include typescale("body-large");
|
|
37
|
+
@include selection-control-label;
|
|
46
38
|
}
|
|
47
39
|
|
|
48
40
|
// A row of checkboxes is a group of controls, not navigation - see rule 4 in
|
|
@@ -66,18 +58,11 @@ label:has(> [type="checkbox"]):not(.switch),
|
|
|
66
58
|
// do not write :has(:not(:has(+ span))).
|
|
67
59
|
label:has(> [type="checkbox"]):not(.switch) > [type="checkbox"],
|
|
68
60
|
.checkbox > [type="checkbox"] {
|
|
69
|
-
|
|
70
|
-
flex: 0 0 var(--md-comp-checkbox-container-size);
|
|
71
|
-
box-sizing: border-box;
|
|
72
|
-
width: var(--md-comp-checkbox-container-size);
|
|
73
|
-
height: var(--md-comp-checkbox-container-size);
|
|
74
|
-
margin: 0;
|
|
75
|
-
padding: 0;
|
|
76
|
-
border: 2px solid var(--md-sys-color-on-surface-variant);
|
|
61
|
+
@include selection-control(var(--md-comp-checkbox-container-size), var(--md-comp-checkbox-container-size), var(--md-sys-color-on-surface-variant));
|
|
77
62
|
border-radius: var(--md-comp-checkbox-container-shape);
|
|
78
63
|
background-color: transparent;
|
|
79
64
|
cursor: pointer;
|
|
80
|
-
transition: border-color
|
|
65
|
+
transition: border-color var(--md-sys-motion-duration-short4) ease, background-color var(--md-sys-motion-duration-short4) ease, box-shadow var(--md-sys-motion-duration-short4) ease;
|
|
81
66
|
|
|
82
67
|
&:checked,
|
|
83
68
|
&:indeterminate {
|
|
@@ -85,20 +70,7 @@ label:has(> [type="checkbox"]):not(.switch) > [type="checkbox"],
|
|
|
85
70
|
background-color: var(--md-sys-color-primary);
|
|
86
71
|
}
|
|
87
72
|
|
|
88
|
-
|
|
89
|
-
@include _ring(var(--md-sys-color-on-surface), "hover");
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
&:checked:hover,
|
|
93
|
-
&:indeterminate:hover {
|
|
94
|
-
@include _ring(var(--md-sys-color-primary), "hover");
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
&:focus-visible,
|
|
98
|
-
&.tabbed:focus {
|
|
99
|
-
@include _ring(var(--md-sys-color-primary), "focus");
|
|
100
|
-
outline: none;
|
|
101
|
-
}
|
|
73
|
+
@include selection-control-states(var(--md-comp-checkbox-state-layer-size), var(--md-comp-checkbox-container-size), (":checked", ":indeterminate"));
|
|
102
74
|
|
|
103
75
|
&.invalid,
|
|
104
76
|
&[aria-invalid="true"] {
|
|
@@ -152,14 +124,14 @@ label:has(> [type="checkbox"]):not(.switch):not(:has(> [type="checkbox"] + span)
|
|
|
152
124
|
&::before {
|
|
153
125
|
content: "";
|
|
154
126
|
position: absolute;
|
|
155
|
-
|
|
127
|
+
// A label that pads its box in, such as a list row, moves the mark with it.
|
|
128
|
+
inset-inline-start: var(--checkbox-mark-inset, 0);
|
|
156
129
|
top: 50%;
|
|
157
130
|
width: var(--md-comp-checkbox-container-size);
|
|
158
131
|
height: var(--md-comp-checkbox-container-size);
|
|
159
132
|
margin-top: calc(var(--md-comp-checkbox-container-size) / -2);
|
|
160
133
|
pointer-events: none;
|
|
161
134
|
background-color: var(--md-sys-color-on-primary);
|
|
162
|
-
-webkit-mask: #{$_cb-check} center / contain no-repeat;
|
|
163
135
|
mask: #{$_cb-check} center / contain no-repeat;
|
|
164
136
|
opacity: 0;
|
|
165
137
|
}
|
|
@@ -170,7 +142,6 @@ label:has(> [type="checkbox"]):not(.switch):not(:has(> [type="checkbox"] + span)
|
|
|
170
142
|
}
|
|
171
143
|
|
|
172
144
|
&:has(> [type="checkbox"]:indeterminate)::before {
|
|
173
|
-
-webkit-mask-image: #{$_cb-dash};
|
|
174
145
|
mask-image: #{$_cb-dash};
|
|
175
146
|
}
|
|
176
147
|
|
|
@@ -191,10 +162,10 @@ label:has(> [type="checkbox"]:disabled):not(.switch),
|
|
|
191
162
|
}
|
|
192
163
|
|
|
193
164
|
// Legacy / Select / Autocomplete: input + span draws the same
|
|
194
|
-
// 18dp anatomy. Exclude .switch
|
|
165
|
+
// 18dp anatomy. Exclude .switch, which paints its own track.
|
|
195
166
|
// $state is appended to the checkbox, e.g. ":checked" or ".invalid".
|
|
196
167
|
@function _cb-span($state: "") {
|
|
197
|
-
@return "*:not(.switch) > [type='checkbox']#{$state} + span:not(.
|
|
168
|
+
@return "*:not(.switch) > [type='checkbox']#{$state} + span:not(.supporting-text, .character-counter, .file-path)";
|
|
198
169
|
}
|
|
199
170
|
|
|
200
171
|
// inline-block, not inline-flex: a flex span turns each text run and link
|
|
@@ -207,7 +178,7 @@ label:has(> [type="checkbox"]:disabled):not(.switch),
|
|
|
207
178
|
box-sizing: border-box;
|
|
208
179
|
min-height: 48px;
|
|
209
180
|
padding-block: calc((48px - 1lh) / 2);
|
|
210
|
-
padding-
|
|
181
|
+
padding-inline-start: 30px;
|
|
211
182
|
cursor: pointer;
|
|
212
183
|
user-select: none;
|
|
213
184
|
}
|
|
@@ -216,7 +187,7 @@ label:has(> [type="checkbox"]:disabled):not(.switch),
|
|
|
216
187
|
#{_cb-span()}::after {
|
|
217
188
|
content: "";
|
|
218
189
|
position: absolute;
|
|
219
|
-
|
|
190
|
+
inset-inline-start: 0;
|
|
220
191
|
top: 50%;
|
|
221
192
|
box-sizing: border-box;
|
|
222
193
|
width: 18px;
|
|
@@ -228,12 +199,11 @@ label:has(> [type="checkbox"]:disabled):not(.switch),
|
|
|
228
199
|
#{_cb-span()}::before {
|
|
229
200
|
border: 2px solid var(--md-sys-color-on-surface-variant);
|
|
230
201
|
background-color: transparent;
|
|
231
|
-
transition: border-color
|
|
202
|
+
transition: border-color var(--md-sys-motion-duration-short4) ease, background-color var(--md-sys-motion-duration-short4) ease, box-shadow var(--md-sys-motion-duration-short4) ease;
|
|
232
203
|
}
|
|
233
204
|
|
|
234
205
|
#{_cb-span()}::after {
|
|
235
206
|
background-color: var(--md-sys-color-on-primary);
|
|
236
|
-
-webkit-mask: #{$_cb-check} center / contain no-repeat;
|
|
237
207
|
mask: #{$_cb-check} center / contain no-repeat;
|
|
238
208
|
opacity: 0;
|
|
239
209
|
}
|
|
@@ -248,7 +218,6 @@ label:has(> [type="checkbox"]:disabled):not(.switch),
|
|
|
248
218
|
}
|
|
249
219
|
|
|
250
220
|
#{_cb-span(":indeterminate")}::after {
|
|
251
|
-
-webkit-mask-image: #{$_cb-dash};
|
|
252
221
|
mask-image: #{$_cb-dash};
|
|
253
222
|
}
|
|
254
223
|
|
|
@@ -260,8 +229,7 @@ label:has(> [type="checkbox"]:disabled):not(.switch),
|
|
|
260
229
|
@include _ring(var(--md-sys-color-primary), "hover");
|
|
261
230
|
}
|
|
262
231
|
|
|
263
|
-
#{_cb-span(":focus-visible")}::before
|
|
264
|
-
#{_cb-span(".tabbed:focus")}::before {
|
|
232
|
+
#{_cb-span(":focus-visible")}::before {
|
|
265
233
|
@include _ring(var(--md-sys-color-primary), "focus");
|
|
266
234
|
}
|
|
267
235
|
|
|
@@ -300,3 +268,98 @@ label:has(> [type="checkbox"]:disabled):not(.switch),
|
|
|
300
268
|
#{_cb-span(":disabled:is(:checked, :indeterminate)")}::after {
|
|
301
269
|
background-color: var(--md-sys-color-surface);
|
|
302
270
|
}
|
|
271
|
+
|
|
272
|
+
// Forced colors paint the box and the masked check as Canvas, so checked and
|
|
273
|
+
// unchecked look the same, and the focus ring is a box-shadow they drop. Draw
|
|
274
|
+
// the state in system colors and give focus a real outline.
|
|
275
|
+
@media (forced-colors: active) {
|
|
276
|
+
label:has(> [type="checkbox"]):not(.switch) > [type="checkbox"],
|
|
277
|
+
.checkbox > [type="checkbox"] {
|
|
278
|
+
&:focus-visible {
|
|
279
|
+
outline: 2px solid CanvasText;
|
|
280
|
+
outline-offset: 2px;
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
&:is(:checked, :indeterminate) {
|
|
284
|
+
forced-color-adjust: none;
|
|
285
|
+
border-color: Highlight;
|
|
286
|
+
background-color: Highlight;
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
&:disabled {
|
|
290
|
+
border-color: GrayText;
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
&:disabled:is(:checked, :indeterminate) {
|
|
294
|
+
background-color: GrayText;
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
// Forced colors have no error color, so an invalid box takes a dashed
|
|
298
|
+
// edge instead. A checked one keeps the Highlight fill - the error fill
|
|
299
|
+
// above is more specific than the :checked rule here and would pass the
|
|
300
|
+
// author's red through - inside a CanvasText edge, clipped so Canvas
|
|
301
|
+
// shows between the dashes. A disabled one stays GrayText.
|
|
302
|
+
&:is(.invalid, [aria-invalid="true"]) {
|
|
303
|
+
border-style: dashed;
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
&:is(.invalid, [aria-invalid="true"]):is(:checked, :indeterminate):not(:disabled) {
|
|
307
|
+
border-color: CanvasText;
|
|
308
|
+
background-color: Highlight;
|
|
309
|
+
background-clip: padding-box;
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
// Forced colors repaint the dimmed label as CanvasText, like an enabled one.
|
|
314
|
+
label:has(> [type="checkbox"]:disabled):not(.switch),
|
|
315
|
+
.checkbox:has([type="checkbox"]:disabled) {
|
|
316
|
+
color: GrayText;
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
label:has(> [type="checkbox"]):not(.switch):not(:has(> [type="checkbox"] + span)),
|
|
320
|
+
.checkbox:not(:has(> [type="checkbox"] + span)) {
|
|
321
|
+
&::before {
|
|
322
|
+
forced-color-adjust: none;
|
|
323
|
+
background-color: HighlightText;
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
#{_cb-span(":is(:checked, :indeterminate)")}::before {
|
|
328
|
+
forced-color-adjust: none;
|
|
329
|
+
border-color: Highlight;
|
|
330
|
+
background-color: Highlight;
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
#{_cb-span()}::after {
|
|
334
|
+
forced-color-adjust: none;
|
|
335
|
+
background-color: HighlightText;
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
#{_cb-span(":focus-visible")}::before {
|
|
339
|
+
outline: 2px solid CanvasText;
|
|
340
|
+
outline-offset: 2px;
|
|
341
|
+
}
|
|
342
|
+
|
|
343
|
+
#{_cb-span(":is(.invalid, [aria-invalid='true'])")}::before {
|
|
344
|
+
border-style: dashed;
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
// The error mark color is more specific than the HighlightText rules
|
|
348
|
+
// above, so an invalid box restates them with the same selector.
|
|
349
|
+
label:has(> [type="checkbox"]):not(.switch):not(:has(> [type="checkbox"] + span)),
|
|
350
|
+
.checkbox:not(:has(> [type="checkbox"] + span)) {
|
|
351
|
+
&:has(> [type="checkbox"]:is(.invalid, [aria-invalid="true"]):is(:checked, :indeterminate):not(:disabled))::before {
|
|
352
|
+
background-color: HighlightText;
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
#{_cb-span(":is(.invalid, [aria-invalid='true']):is(:checked, :indeterminate):not(:disabled)")}::after {
|
|
357
|
+
background-color: HighlightText;
|
|
358
|
+
}
|
|
359
|
+
|
|
360
|
+
#{_cb-span(":is(.invalid, [aria-invalid='true']):is(:checked, :indeterminate):not(:disabled)")}::before {
|
|
361
|
+
border-color: CanvasText;
|
|
362
|
+
background-color: Highlight;
|
|
363
|
+
background-clip: padding-box;
|
|
364
|
+
}
|
|
365
|
+
}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
@use "../../abstracts" as *;
|
|
2
|
+
|
|
3
|
+
// Color picker. A .color-picker holding an <input type="color"> works as the
|
|
4
|
+
// native swatch without JavaScript. ColorPicker adds a saturation and
|
|
5
|
+
// brightness area, a hue slider and a hex field around that input, which
|
|
6
|
+
// stays the form value and the preview.
|
|
7
|
+
//
|
|
8
|
+
// <div class="color-picker" role="group" aria-label="Accent">
|
|
9
|
+
// <input type="color" name="accent" value="#6750a4" aria-label="Accent">
|
|
10
|
+
// </div>
|
|
11
|
+
//
|
|
12
|
+
// The hue slider is the framework's range input, so it keeps the M3 handle
|
|
13
|
+
// and states; only its track becomes the hue gradient. The area and the hue
|
|
14
|
+
// track are the color itself, so they keep their colors under forced colors
|
|
15
|
+
// and do not mirror in RTL.
|
|
16
|
+
//
|
|
17
|
+
// Tokens:
|
|
18
|
+
// --md-comp-color-picker-width 280px
|
|
19
|
+
// --md-comp-color-picker-area-height 160px
|
|
20
|
+
// --md-comp-color-picker-area-shape corner.medium
|
|
21
|
+
// --md-comp-color-picker-thumb-size 24px
|
|
22
|
+
// --md-comp-color-picker-field-shape corner.extra-small
|
|
23
|
+
|
|
24
|
+
$_hue-gradient: linear-gradient(
|
|
25
|
+
to right,
|
|
26
|
+
hsl(0 100% 50%), hsl(60 100% 50%), hsl(120 100% 50%), hsl(180 100% 50%),
|
|
27
|
+
hsl(240 100% 50%), hsl(300 100% 50%), hsl(360 100% 50%)
|
|
28
|
+
);
|
|
29
|
+
|
|
30
|
+
.color-picker {
|
|
31
|
+
--md-comp-color-picker-width: 280px;
|
|
32
|
+
--md-comp-color-picker-area-height: 160px;
|
|
33
|
+
--md-comp-color-picker-area-shape: var(--md-sys-shape-corner-medium);
|
|
34
|
+
--md-comp-color-picker-thumb-size: 24px;
|
|
35
|
+
--md-comp-color-picker-field-shape: var(--md-sys-shape-corner-extra-small);
|
|
36
|
+
|
|
37
|
+
display: inline-grid;
|
|
38
|
+
grid-template-columns: auto minmax(0, 1fr);
|
|
39
|
+
align-items: center;
|
|
40
|
+
gap: 8px 12px;
|
|
41
|
+
inline-size: min(100%, var(--md-comp-color-picker-width));
|
|
42
|
+
|
|
43
|
+
> .color-picker-area,
|
|
44
|
+
> .color-picker-hue {
|
|
45
|
+
grid-column: 1 / -1;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
> .color-picker-hue {
|
|
49
|
+
--md-comp-slider-handle-color: var(--md-sys-color-on-surface);
|
|
50
|
+
direction: ltr;
|
|
51
|
+
margin: 0;
|
|
52
|
+
forced-color-adjust: none;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
.color-picker-area {
|
|
57
|
+
position: relative;
|
|
58
|
+
block-size: var(--md-comp-color-picker-area-height);
|
|
59
|
+
border-radius: var(--md-comp-color-picker-area-shape);
|
|
60
|
+
background:
|
|
61
|
+
linear-gradient(to top, #000, transparent),
|
|
62
|
+
linear-gradient(to right, #fff, transparent),
|
|
63
|
+
hsl(var(--_color-picker-hue, 0) 100% 50%);
|
|
64
|
+
cursor: crosshair;
|
|
65
|
+
touch-action: none;
|
|
66
|
+
forced-color-adjust: none;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
// White ring plus a dark edge, so the thumb shows on every color.
|
|
70
|
+
.color-picker-thumb {
|
|
71
|
+
position: absolute;
|
|
72
|
+
top: calc(var(--_color-picker-y, 0) * 100%);
|
|
73
|
+
left: calc(var(--_color-picker-x, 0) * 100%);
|
|
74
|
+
box-sizing: border-box;
|
|
75
|
+
inline-size: var(--md-comp-color-picker-thumb-size);
|
|
76
|
+
block-size: var(--md-comp-color-picker-thumb-size);
|
|
77
|
+
border: 3px solid #fff;
|
|
78
|
+
border-radius: var(--md-sys-shape-corner-full);
|
|
79
|
+
background-color: var(--_color-picker-color, transparent);
|
|
80
|
+
box-shadow: 0 0 0 1px rgb(0 0 0 / 0.5), inset 0 0 0 1px rgb(0 0 0 / 0.3);
|
|
81
|
+
translate: -50% -50%;
|
|
82
|
+
@include focus-visible;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
// One rule per engine: a browser drops a whole rule with a pseudo-element it
|
|
86
|
+
// does not know.
|
|
87
|
+
@each $track in ("::-webkit-slider-runnable-track", "::-moz-range-track") {
|
|
88
|
+
.color-picker > .color-picker-hue#{$track} {
|
|
89
|
+
background: $_hue-gradient;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
.color-picker-hex {
|
|
94
|
+
box-sizing: border-box;
|
|
95
|
+
min-inline-size: 0;
|
|
96
|
+
block-size: 40px;
|
|
97
|
+
margin: 0;
|
|
98
|
+
padding-inline: 12px;
|
|
99
|
+
border: 1px solid var(--md-sys-color-outline);
|
|
100
|
+
border-radius: var(--md-comp-color-picker-field-shape);
|
|
101
|
+
background: transparent;
|
|
102
|
+
color: var(--md-sys-color-on-surface);
|
|
103
|
+
font-family: $font-stack;
|
|
104
|
+
@include typescale("body-large");
|
|
105
|
+
|
|
106
|
+
&:focus {
|
|
107
|
+
outline: 2px solid var(--md-sys-color-primary);
|
|
108
|
+
outline-offset: -2px;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
&:disabled {
|
|
112
|
+
opacity: 0.38;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
.color-picker:has(> input[type="color"]:disabled) > .color-picker-area {
|
|
117
|
+
cursor: default;
|
|
118
|
+
opacity: 0.38;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
@media (forced-colors: active) {
|
|
122
|
+
.color-picker-thumb {
|
|
123
|
+
border-color: Canvas;
|
|
124
|
+
box-shadow: 0 0 0 2px CanvasText;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
.color-picker-hex {
|
|
128
|
+
border-color: CanvasText;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
// The area keeps its colors, and its dark edge meets a dark Canvas.
|
|
132
|
+
.color-picker-area {
|
|
133
|
+
outline: 1px solid CanvasText;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
@use "../../abstracts" as *;
|
|
2
|
+
|
|
3
|
+
// Color swatches: pick one color from a preset palette. Each swatch is a
|
|
4
|
+
// native radio drawn as a round chip of its color, so the group has one Tab
|
|
5
|
+
// stop, arrow keys and a checked state with no script. A native color input
|
|
6
|
+
// at the end of the group offers a custom value. CSS only.
|
|
7
|
+
//
|
|
8
|
+
// <fieldset class="color-swatches">
|
|
9
|
+
// <legend>Accent</legend>
|
|
10
|
+
// <label><span class="visually-hidden">Purple</span><input type="radio"
|
|
11
|
+
// name="accent" value="#6750a4" style="--md-comp-color-swatch-color: #6750a4" checked></label>
|
|
12
|
+
// <label><span class="visually-hidden">Custom accent</span><input type="color" value="#ff8800"></label>
|
|
13
|
+
// </fieldset>
|
|
14
|
+
//
|
|
15
|
+
// The same anatomy as Rating: the name is visually hidden text in the label,
|
|
16
|
+
// before the input. Loaded after radio-buttons, so these rules match the
|
|
17
|
+
// radio rules' weight and win on order.
|
|
18
|
+
//
|
|
19
|
+
// Tokens:
|
|
20
|
+
// --md-comp-color-swatch-color the swatch's color, per input transparent
|
|
21
|
+
// --md-comp-color-swatches-size swatch diameter 40px
|
|
22
|
+
// --md-comp-color-swatches-outline-color edge of every swatch outline
|
|
23
|
+
// --md-comp-color-swatches-selected-color ring around the checked one on-surface
|
|
24
|
+
|
|
25
|
+
fieldset.color-swatches {
|
|
26
|
+
--md-comp-color-swatch-color: transparent;
|
|
27
|
+
--md-comp-color-swatches-size: 40px;
|
|
28
|
+
--md-comp-color-swatches-outline-color: var(--md-sys-color-outline);
|
|
29
|
+
--md-comp-color-swatches-selected-color: var(--md-sys-color-on-surface);
|
|
30
|
+
|
|
31
|
+
@include choice-fieldset(var(--md-sys-shape-corner-full), '[type="radio"]');
|
|
32
|
+
|
|
33
|
+
> label > [type="color"] {
|
|
34
|
+
padding: 0;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
> label > [type="radio"] {
|
|
38
|
+
flex: none;
|
|
39
|
+
width: var(--md-comp-color-swatches-size);
|
|
40
|
+
height: var(--md-comp-color-swatches-size);
|
|
41
|
+
border: 1px solid var(--md-comp-color-swatches-outline-color);
|
|
42
|
+
border-radius: var(--md-sys-shape-corner-full);
|
|
43
|
+
background-color: var(--md-comp-color-swatch-color);
|
|
44
|
+
background-image: none;
|
|
45
|
+
box-shadow: none;
|
|
46
|
+
outline: 0;
|
|
47
|
+
// The color is the content, so forced colors must not repaint it.
|
|
48
|
+
forced-color-adjust: none;
|
|
49
|
+
|
|
50
|
+
// The base radio draws its dot and state ring in these states, some at a
|
|
51
|
+
// higher weight; the swatch has neither.
|
|
52
|
+
&:hover,
|
|
53
|
+
&:focus-visible,
|
|
54
|
+
&:disabled,
|
|
55
|
+
&:checked:hover,
|
|
56
|
+
&:disabled:checked {
|
|
57
|
+
border-color: var(--md-comp-color-swatches-outline-color);
|
|
58
|
+
background-image: none;
|
|
59
|
+
box-shadow: none;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
// A gap in the surface color, then a ring: the shape marks the choice,
|
|
63
|
+
// so it does not depend on telling two colors apart.
|
|
64
|
+
&:checked,
|
|
65
|
+
&:checked:hover {
|
|
66
|
+
border-color: var(--md-comp-color-swatches-outline-color);
|
|
67
|
+
background-image: none;
|
|
68
|
+
box-shadow:
|
|
69
|
+
0 0 0 2px var(--md-sys-color-surface),
|
|
70
|
+
0 0 0 4px var(--md-comp-color-swatches-selected-color);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
@media (forced-colors: active) {
|
|
75
|
+
> label > [type="radio"] {
|
|
76
|
+
border-color: CanvasText;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
> label > [type="radio"]:checked {
|
|
80
|
+
box-shadow: none;
|
|
81
|
+
outline: 3px solid Highlight;
|
|
82
|
+
outline-offset: 2px;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
// --md-comp-drop-zone-dragover-color on-primary-container
|
|
17
17
|
|
|
18
18
|
.drop-zone {
|
|
19
|
-
--md-comp-drop-zone-shape:
|
|
19
|
+
--md-comp-drop-zone-shape: var(--md-sys-shape-corner-large);
|
|
20
20
|
--md-comp-drop-zone-outline-color: var(--md-sys-color-outline);
|
|
21
21
|
--md-comp-drop-zone-dragover-container-color: var(--md-sys-color-primary-container);
|
|
22
22
|
--md-comp-drop-zone-dragover-color: var(--md-sys-color-on-primary-container);
|
|
@@ -36,12 +36,12 @@
|
|
|
36
36
|
text-align: center;
|
|
37
37
|
color: var(--md-sys-color-on-surface-variant);
|
|
38
38
|
cursor: pointer;
|
|
39
|
-
transition: background-color
|
|
39
|
+
transition: background-color var(--md-sys-motion-duration-short4) ease-out, border-color var(--md-sys-motion-duration-short4) ease-out;
|
|
40
40
|
@include typescale("body-large");
|
|
41
41
|
|
|
42
42
|
> #{$icon} {
|
|
43
43
|
margin-block-end: 8px;
|
|
44
|
-
font-size: 32px;
|
|
44
|
+
font-size: rem(32px);
|
|
45
45
|
color: var(--md-sys-color-primary);
|
|
46
46
|
}
|
|
47
47
|
|
|
@@ -50,10 +50,7 @@
|
|
|
50
50
|
}
|
|
51
51
|
|
|
52
52
|
> input[type="file"] {
|
|
53
|
-
|
|
54
|
-
inset: 0;
|
|
55
|
-
width: 100%;
|
|
56
|
-
height: 100%;
|
|
53
|
+
@include fill-parent;
|
|
57
54
|
margin: 0;
|
|
58
55
|
padding: 0;
|
|
59
56
|
opacity: 0;
|
|
@@ -61,11 +58,7 @@
|
|
|
61
58
|
}
|
|
62
59
|
|
|
63
60
|
&:hover {
|
|
64
|
-
background-color: color-
|
|
65
|
-
in oklab,
|
|
66
|
-
var(--md-sys-color-on-surface) state-opacity("hover"),
|
|
67
|
-
transparent
|
|
68
|
-
);
|
|
61
|
+
background-color: state-layer(var(--md-sys-color-on-surface), "hover");
|
|
69
62
|
}
|
|
70
63
|
|
|
71
64
|
&:has(> input:focus-visible) {
|
|
@@ -86,6 +79,16 @@
|
|
|
86
79
|
color: var(--md-comp-drop-zone-dragover-color);
|
|
87
80
|
}
|
|
88
81
|
|
|
82
|
+
> label:has(> input:is([data-validate-types], [data-max-size], [data-max-files])[aria-invalid="true"]) {
|
|
83
|
+
border-color: var(--md-sys-color-error);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
&:has(> label > input:is([data-validate-types], [data-max-size], [data-max-files])) > .supporting-text[data-error] {
|
|
87
|
+
margin: 8px 16px 0;
|
|
88
|
+
color: var(--md-sys-color-error);
|
|
89
|
+
@include typescale("body-small");
|
|
90
|
+
}
|
|
91
|
+
|
|
89
92
|
> .drop-zone-files {
|
|
90
93
|
display: flex;
|
|
91
94
|
flex-direction: column;
|
|
@@ -99,7 +102,7 @@
|
|
|
99
102
|
justify-content: space-between;
|
|
100
103
|
gap: 16px;
|
|
101
104
|
padding: 8px 16px;
|
|
102
|
-
border-radius:
|
|
105
|
+
border-radius: var(--md-sys-shape-corner-small);
|
|
103
106
|
background-color: var(--md-sys-color-surface-container);
|
|
104
107
|
color: var(--md-sys-color-on-surface);
|
|
105
108
|
@include typescale("body-medium");
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
// container used around related form content, and the outlined text-field
|
|
13
13
|
// shape so a group of fields matches the fields:
|
|
14
14
|
// container transparent, 4dp corners, 1dp outline-variant
|
|
15
|
-
// filled surface-
|
|
15
|
+
// filled surface-container-highest, no outline
|
|
16
16
|
// legend title-small / on-surface
|
|
17
17
|
// supporting body-small / on-surface-variant
|
|
18
18
|
// padding 16dp, 16dp between children
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
|
|
23
23
|
fieldset {
|
|
24
24
|
--md-comp-fieldset-container-color: transparent;
|
|
25
|
-
--md-comp-fieldset-container-shape:
|
|
25
|
+
--md-comp-fieldset-container-shape: var(--md-sys-shape-corner-extra-small);
|
|
26
26
|
--md-comp-fieldset-outline-color: var(--md-sys-color-outline-variant);
|
|
27
27
|
--md-comp-fieldset-outline-width: 1px;
|
|
28
28
|
--md-comp-fieldset-legend-color: var(--md-sys-color-on-surface);
|
|
@@ -51,10 +51,7 @@ fieldset {
|
|
|
51
51
|
@include typescale("title-small");
|
|
52
52
|
|
|
53
53
|
> #{$icon} {
|
|
54
|
-
|
|
55
|
-
width: 18px;
|
|
56
|
-
height: 18px;
|
|
57
|
-
line-height: 18px;
|
|
54
|
+
@include icon-size(rem(18px));
|
|
58
55
|
margin-inline-end: 8px;
|
|
59
56
|
vertical-align: -3px;
|
|
60
57
|
color: var(--md-sys-color-on-surface-variant);
|
|
@@ -97,7 +94,7 @@ fieldset.border {
|
|
|
97
94
|
}
|
|
98
95
|
|
|
99
96
|
fieldset.rounded {
|
|
100
|
-
--md-comp-fieldset-container-shape:
|
|
97
|
+
--md-comp-fieldset-container-shape: var(--md-sys-shape-corner-medium);
|
|
101
98
|
}
|
|
102
99
|
|
|
103
100
|
// Plain groups radios or checkboxes inside a surface that already frames them,
|
|
@@ -13,12 +13,10 @@
|
|
|
13
13
|
|
|
14
14
|
input.file-path { width: 100%; }
|
|
15
15
|
|
|
16
|
-
// The trigger. `label.button`
|
|
17
|
-
//
|
|
18
|
-
//
|
|
19
|
-
> label.button
|
|
20
|
-
> button,
|
|
21
|
-
> .btn {
|
|
16
|
+
// The trigger. `label.button` wraps the file input, which is how clicking
|
|
17
|
+
// it opens the picker with no script. A <button> cannot hold the input:
|
|
18
|
+
// one control inside another is invalid HTML.
|
|
19
|
+
> label.button {
|
|
22
20
|
display: block;
|
|
23
21
|
align-content: center;
|
|
24
22
|
overflow-wrap: break-word;
|
|
@@ -29,6 +27,12 @@
|
|
|
29
27
|
align-self: start;
|
|
30
28
|
min-height: 3rem;
|
|
31
29
|
min-width: 0;
|
|
30
|
+
|
|
31
|
+
// The focused control is the invisible file input inside, so the
|
|
32
|
+
// trigger shows its ring.
|
|
33
|
+
&:has(> input[type="file"]:focus-visible) {
|
|
34
|
+
@include focus-ring;
|
|
35
|
+
}
|
|
32
36
|
}
|
|
33
37
|
|
|
34
38
|
span {
|
|
@@ -38,7 +42,7 @@
|
|
|
38
42
|
// Scoped to the trigger, not to .file-field. `inset: 0` against the field
|
|
39
43
|
// stretched the invisible input across the whole row, so clicking the path
|
|
40
44
|
// display - or any empty space - opened the file picker.
|
|
41
|
-
|
|
45
|
+
label.button input[type=file] {
|
|
42
46
|
position: absolute;
|
|
43
47
|
inset: 0;
|
|
44
48
|
cursor: pointer;
|
|
@@ -46,7 +50,7 @@
|
|
|
46
50
|
margin: 0;
|
|
47
51
|
padding: 0;
|
|
48
52
|
opacity: 0;
|
|
49
|
-
font-size: 20px;
|
|
53
|
+
font-size: rem(20px);
|
|
50
54
|
|
|
51
55
|
// Needed to override the UA-rendered button. `::file-selector-button` is
|
|
52
56
|
// the standardised name for the old ::-webkit-file-upload-button.
|