@expressivecss/expressive 0.16.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 +306 -1
- package/README.md +1 -1
- package/dist/css/expressive.css +540 -646
- 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/js/chunks/{chunk-PA7NU5AK.mjs → chunk-26VUH75M.mjs} +6 -3
- package/dist/js/chunks/chunk-26VUH75M.mjs.map +7 -0
- package/dist/js/chunks/{chunk-NBJAUGPP.mjs → chunk-2LFCOGC3.mjs} +12 -23
- package/dist/js/chunks/chunk-2LFCOGC3.mjs.map +7 -0
- package/dist/js/chunks/{chunk-OP43LLIC.mjs → chunk-36GELQGX.mjs} +4 -4
- package/dist/js/chunks/{chunk-OP43LLIC.mjs.map → chunk-36GELQGX.mjs.map} +2 -2
- package/dist/js/chunks/{chunk-EC26RU2D.mjs → chunk-3FKWIRHW.mjs} +6 -2
- package/dist/js/chunks/chunk-3FKWIRHW.mjs.map +7 -0
- package/dist/js/chunks/{chunk-Y6H2X7ZC.mjs → chunk-3KF65KGL.mjs} +3 -3
- package/dist/js/chunks/{chunk-4QUCNFSD.mjs → chunk-3KLZRQZI.mjs} +31 -10
- package/dist/js/chunks/chunk-3KLZRQZI.mjs.map +7 -0
- package/dist/js/chunks/{chunk-75E5EDJF.mjs → chunk-3XORNED5.mjs} +2 -2
- package/dist/js/chunks/{chunk-NNHVANQA.mjs → chunk-4WBGAQN3.mjs} +3 -3
- package/dist/js/chunks/{chunk-ZJNLAGY5.mjs → chunk-5F4URJHL.mjs} +2 -2
- package/dist/js/chunks/{chunk-ZVLOUDIJ.mjs → chunk-67UNY7RH.mjs} +50 -2
- package/dist/js/chunks/chunk-67UNY7RH.mjs.map +7 -0
- package/dist/js/chunks/{chunk-P6DRQ6KS.mjs → chunk-7CXNATJS.mjs} +6 -5
- package/dist/js/chunks/chunk-7CXNATJS.mjs.map +7 -0
- package/dist/js/chunks/{chunk-4TRZ2AER.mjs → chunk-7X44MKEQ.mjs} +15 -14
- package/dist/js/chunks/chunk-7X44MKEQ.mjs.map +7 -0
- package/dist/js/chunks/{chunk-GWZ76SR4.mjs → chunk-7ZAMOMGY.mjs} +12 -7
- package/dist/js/chunks/chunk-7ZAMOMGY.mjs.map +7 -0
- package/dist/js/chunks/{chunk-GVZQH2H5.mjs → chunk-AEG6LOAJ.mjs} +2 -2
- package/dist/js/chunks/{chunk-Y6TLRA3U.mjs → chunk-AQNFCJJ5.mjs} +27 -21
- package/dist/js/chunks/chunk-AQNFCJJ5.mjs.map +7 -0
- package/dist/js/chunks/{chunk-OUCHKSAW.mjs → chunk-B55LWKBM.mjs} +16 -4
- package/dist/js/chunks/chunk-B55LWKBM.mjs.map +7 -0
- package/dist/js/chunks/{chunk-AI73GJKG.mjs → chunk-BB5VXYXT.mjs} +2 -2
- package/dist/js/chunks/{chunk-2RLBDFH4.mjs → chunk-BDATLH3H.mjs} +4 -4
- package/dist/js/chunks/{chunk-2CS6TITK.mjs → chunk-CWMQOT4O.mjs} +23 -10
- package/dist/js/chunks/chunk-CWMQOT4O.mjs.map +7 -0
- package/dist/js/chunks/{chunk-ZKWUWBUB.mjs → chunk-CY2CTOVM.mjs} +2 -2
- package/dist/js/chunks/{chunk-CSYWKEK3.mjs → chunk-DWA5UYLJ.mjs} +58 -27
- package/dist/js/chunks/chunk-DWA5UYLJ.mjs.map +7 -0
- package/dist/js/chunks/{chunk-CMGXGYUC.mjs → chunk-EB2V4OKL.mjs} +14 -9
- package/dist/js/chunks/chunk-EB2V4OKL.mjs.map +7 -0
- package/dist/js/chunks/{chunk-Z4GICXR2.mjs → chunk-EWO662ZC.mjs} +5 -7
- package/dist/js/chunks/chunk-EWO662ZC.mjs.map +7 -0
- package/dist/js/chunks/{chunk-VGY4M57S.mjs → chunk-F7LAKFMX.mjs} +67 -34
- package/dist/js/chunks/chunk-F7LAKFMX.mjs.map +7 -0
- package/dist/js/chunks/{chunk-67ZPPKXS.mjs → chunk-FNIIH2LU.mjs} +3 -3
- package/dist/js/chunks/chunk-GE3YMFS6.mjs +15 -0
- package/dist/js/chunks/chunk-GE3YMFS6.mjs.map +7 -0
- package/dist/js/chunks/{chunk-DZYVU75J.mjs → chunk-GFWYMWYN.mjs} +18 -14
- package/dist/js/chunks/chunk-GFWYMWYN.mjs.map +7 -0
- package/dist/js/chunks/{chunk-3L3QIYLC.mjs → chunk-H5ISU45X.mjs} +8 -6
- package/dist/js/chunks/chunk-H5ISU45X.mjs.map +7 -0
- package/dist/js/chunks/{chunk-QXKWVHBD.mjs → chunk-H6YIKFAQ.mjs} +67 -46
- package/dist/js/chunks/chunk-H6YIKFAQ.mjs.map +7 -0
- package/dist/js/chunks/{chunk-KZPSAXIU.mjs → chunk-HEH7E3KO.mjs} +22 -12
- package/dist/js/chunks/chunk-HEH7E3KO.mjs.map +7 -0
- package/dist/js/chunks/{chunk-T3BNSRP3.mjs → chunk-HQRLBTNM.mjs} +3 -3
- package/dist/js/chunks/{chunk-NAC72P7R.mjs → chunk-I2F7MLUU.mjs} +2 -2
- package/dist/js/chunks/{chunk-ZM3XBHWV.mjs → chunk-IQOTGGHX.mjs} +86 -35
- package/dist/js/chunks/chunk-IQOTGGHX.mjs.map +7 -0
- package/dist/js/chunks/{chunk-QACZ6TUP.mjs → chunk-JH3YWKA6.mjs} +5 -4
- package/dist/js/chunks/chunk-JH3YWKA6.mjs.map +7 -0
- package/dist/js/chunks/chunk-JOLJAYIJ.mjs +7 -0
- package/dist/js/chunks/{chunk-4IKVPCSU.mjs.map → chunk-JOLJAYIJ.mjs.map} +1 -1
- package/dist/js/chunks/{chunk-BPF3I2MN.mjs → chunk-KOTGMCMI.mjs} +9 -2
- package/dist/js/chunks/chunk-KOTGMCMI.mjs.map +7 -0
- package/dist/js/chunks/{chunk-ANKFWNWT.mjs → chunk-LC4O5LFS.mjs} +3 -3
- package/dist/js/chunks/{chunk-4PIXLDNJ.mjs → chunk-LEF33SCP.mjs} +2 -2
- package/dist/js/chunks/{chunk-ILDRRG7T.mjs → chunk-LFORZRPH.mjs} +3 -3
- package/dist/js/chunks/{chunk-Z4OARDZ7.mjs → chunk-LWLNV5EC.mjs} +26 -17
- package/dist/js/chunks/chunk-LWLNV5EC.mjs.map +7 -0
- package/dist/js/chunks/{chunk-WU7XJ4RR.mjs → chunk-LXRHUQAX.mjs} +66 -25
- package/dist/js/chunks/chunk-LXRHUQAX.mjs.map +7 -0
- package/dist/js/chunks/{chunk-VMY55K2X.mjs → chunk-MA2SZZFB.mjs} +11 -7
- package/dist/js/chunks/chunk-MA2SZZFB.mjs.map +7 -0
- package/dist/js/chunks/{chunk-VJVQIXHC.mjs → chunk-MDBZAMIV.mjs} +8 -10
- package/dist/js/chunks/chunk-MDBZAMIV.mjs.map +7 -0
- package/dist/js/chunks/{chunk-4EWGD4V2.mjs → chunk-NODZ5VAD.mjs} +2 -2
- package/dist/js/chunks/{chunk-UGJHCHXG.mjs → chunk-O2WJB6TH.mjs} +79 -55
- package/dist/js/chunks/chunk-O2WJB6TH.mjs.map +7 -0
- package/dist/js/chunks/{chunk-7YZ5CN3V.mjs → chunk-PCABY5BN.mjs} +5 -3
- package/dist/js/chunks/chunk-PCABY5BN.mjs.map +7 -0
- package/dist/js/chunks/{chunk-X7SDA2J5.mjs → chunk-PWKYVMND.mjs} +9 -5
- package/dist/js/chunks/{chunk-X7SDA2J5.mjs.map → chunk-PWKYVMND.mjs.map} +2 -2
- package/dist/js/chunks/{chunk-SPPHF7YZ.mjs → chunk-QHZZT7YO.mjs} +35 -14
- package/dist/js/chunks/chunk-QHZZT7YO.mjs.map +7 -0
- package/dist/js/chunks/{chunk-LDXCC2L3.mjs → chunk-QND56EW2.mjs} +5 -4
- package/dist/js/chunks/chunk-QND56EW2.mjs.map +7 -0
- package/dist/js/chunks/{chunk-NVQ5EHCU.mjs → chunk-QNODAANY.mjs} +4 -4
- package/dist/js/chunks/{chunk-7NLUI3RR.mjs → chunk-QRO5FV3I.mjs} +23 -13
- package/dist/js/chunks/chunk-QRO5FV3I.mjs.map +7 -0
- package/dist/js/chunks/{chunk-FCNF4GRJ.mjs → chunk-R7A7JRC5.mjs} +6 -11
- package/dist/js/chunks/chunk-R7A7JRC5.mjs.map +7 -0
- package/dist/js/chunks/{chunk-S23RJ3XY.mjs → chunk-RKG2CBFE.mjs} +4 -16
- package/dist/js/chunks/chunk-RKG2CBFE.mjs.map +7 -0
- package/dist/js/chunks/{chunk-6FSEUFVW.mjs → chunk-RSNS5OYS.mjs} +6 -6
- package/dist/js/chunks/chunk-RSNS5OYS.mjs.map +7 -0
- package/dist/js/chunks/{chunk-ROH2HDB4.mjs → chunk-RUDYMEJ3.mjs} +2 -2
- package/dist/js/chunks/{chunk-BIGU5RCJ.mjs → chunk-STJR62SU.mjs} +13 -5
- package/dist/js/chunks/chunk-STJR62SU.mjs.map +7 -0
- package/dist/js/chunks/{chunk-752ADW4M.mjs → chunk-SUSD4UTN.mjs} +27 -32
- package/dist/js/chunks/chunk-SUSD4UTN.mjs.map +7 -0
- package/dist/js/chunks/{chunk-B7DQFHA5.mjs → chunk-SYBOA5HC.mjs} +7 -12
- package/dist/js/chunks/chunk-SYBOA5HC.mjs.map +7 -0
- package/dist/js/chunks/{chunk-TFABTUAZ.mjs → chunk-T4MOBP3J.mjs} +2 -2
- package/dist/js/chunks/{chunk-GCWWEZKO.mjs → chunk-TM7HPGTV.mjs} +3 -3
- package/dist/js/chunks/{chunk-5KIHWJI2.mjs → chunk-TMQDZSDC.mjs} +34 -12
- package/dist/js/chunks/chunk-TMQDZSDC.mjs.map +7 -0
- package/dist/js/chunks/{chunk-ZO6ZLHFF.mjs → chunk-TVSX5YA2.mjs} +3 -3
- package/dist/js/chunks/{chunk-INLZWHLY.mjs → chunk-UHO5CV6K.mjs} +2 -2
- package/dist/js/chunks/{chunk-INLZWHLY.mjs.map → chunk-UHO5CV6K.mjs.map} +2 -2
- package/dist/js/chunks/{chunk-7YQBHTK3.mjs → chunk-UKCNELUN.mjs} +6 -8
- package/dist/js/chunks/chunk-UKCNELUN.mjs.map +7 -0
- package/dist/js/chunks/{chunk-VH4BMAZS.mjs → chunk-UKQK5GWR.mjs} +13 -13
- package/dist/js/chunks/chunk-UKQK5GWR.mjs.map +7 -0
- package/dist/js/chunks/{chunk-OYNUDOHR.mjs → chunk-UTSLYQ65.mjs} +7 -6
- package/dist/js/chunks/{chunk-OYNUDOHR.mjs.map → chunk-UTSLYQ65.mjs.map} +2 -2
- package/dist/js/chunks/{chunk-7W7TV6NY.mjs → chunk-VS5OJBOD.mjs} +2 -2
- package/dist/js/chunks/{chunk-7W7TV6NY.mjs.map → chunk-VS5OJBOD.mjs.map} +2 -2
- package/dist/js/chunks/{chunk-KYIEG4U3.mjs → chunk-VZMROW5A.mjs} +43 -14
- package/dist/js/chunks/chunk-VZMROW5A.mjs.map +7 -0
- package/dist/js/chunks/{chunk-VFV75DHF.mjs → chunk-XB6Y7P5W.mjs} +11 -12
- package/dist/js/chunks/chunk-XB6Y7P5W.mjs.map +7 -0
- package/dist/js/chunks/{chunk-CZSQHXEV.mjs → chunk-XDAMOMVD.mjs} +20 -21
- package/dist/js/chunks/chunk-XDAMOMVD.mjs.map +7 -0
- package/dist/js/chunks/{chunk-EVCVFEV3.mjs → chunk-XJPMW5SP.mjs} +21 -35
- package/dist/js/chunks/chunk-XJPMW5SP.mjs.map +7 -0
- package/dist/js/chunks/{chunk-VR3L2WN5.mjs → chunk-YKANQILZ.mjs} +7 -6
- package/dist/js/chunks/chunk-YKANQILZ.mjs.map +7 -0
- package/dist/js/chunks/{chunk-JUKBBN6P.mjs → chunk-YLZOJLDI.mjs} +2 -2
- package/dist/js/chunks/{chunk-U4B3VHFS.mjs → chunk-ZK7YY322.mjs} +28 -21
- package/dist/js/chunks/chunk-ZK7YY322.mjs.map +7 -0
- package/dist/js/expressive.cjs +2739 -2387
- package/dist/js/expressive.cjs.map +4 -4
- package/dist/js/expressive.js +2739 -2387
- package/dist/js/expressive.js.map +4 -4
- package/dist/js/expressive.min.js +7 -7
- package/dist/js/expressive.min.js.map +4 -4
- package/dist/js/expressive.mjs +76 -75
- package/dist/js/expressive.mjs.map +1 -1
- package/dist/js/internal/behaviors/bottomSheets.mjs +3 -3
- package/dist/js/internal/behaviors/copy.mjs +3 -3
- package/dist/js/internal/behaviors/dataTables.mjs +2 -4
- 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 +2 -2
- package/dist/js/internal/behaviors/lists.mjs +2 -2
- package/dist/js/internal/behaviors/paneResize.mjs +2 -2
- package/dist/js/internal/behaviors/sheetDrag.mjs +2 -2
- package/dist/js/internal/behaviors/sideSheets.mjs +3 -3
- package/dist/js/internal/behaviors/sortable.mjs +2 -2
- package/dist/js/internal/behaviors/theme.mjs +2 -2
- package/dist/js/internal/behaviors/tour.mjs +2 -2
- package/dist/js/internal/behaviors/transferList.mjs +2 -2
- package/dist/js/internal/components/appBar.mjs +3 -3
- package/dist/js/internal/components/autocomplete.mjs +5 -4
- package/dist/js/internal/components/backToTop.mjs +3 -3
- package/dist/js/internal/components/barChart.mjs +5 -5
- package/dist/js/internal/components/buttonGroup.mjs +3 -3
- 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 +4 -4
- package/dist/js/internal/components/characterCounter.mjs +3 -3
- package/dist/js/internal/components/chips.mjs +7 -6
- package/dist/js/internal/components/colorPicker.mjs +3 -3
- package/dist/js/internal/components/columnChart.mjs +4 -4
- package/dist/js/internal/components/commandPalette.mjs +3 -3
- package/dist/js/internal/components/confetti.mjs +3 -3
- package/dist/js/internal/components/currencyInput.mjs +3 -3
- package/dist/js/internal/components/datepicker.mjs +8 -7
- package/dist/js/internal/components/expandingCard.mjs +3 -3
- package/dist/js/internal/components/funnelChart.mjs +4 -4
- package/dist/js/internal/components/heatmapChart.mjs +4 -4
- package/dist/js/internal/components/hoverCard.mjs +3 -3
- package/dist/js/internal/components/index.mjs +60 -59
- package/dist/js/internal/components/inputMask.mjs +3 -3
- 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 +23 -7
- package/dist/js/internal/components/loadingOverlay.mjs +3 -3
- 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 +4 -4
- package/dist/js/internal/components/messageScroller.mjs +3 -3
- package/dist/js/internal/components/mixedChart.mjs +5 -5
- package/dist/js/internal/components/navigationRail.mjs +3 -3
- package/dist/js/internal/components/particles.mjs +3 -3
- package/dist/js/internal/components/pieChart.mjs +4 -4
- package/dist/js/internal/components/pullToRefresh.mjs +3 -3
- package/dist/js/internal/components/questionnaire.mjs +3 -3
- package/dist/js/internal/components/radarChart.mjs +4 -4
- package/dist/js/internal/components/radialChart.mjs +4 -4
- package/dist/js/internal/components/registry.mjs +59 -58
- package/dist/js/internal/components/richTextEditor.mjs +3 -3
- package/dist/js/internal/components/sankeyChart.mjs +4 -4
- package/dist/js/internal/components/scatterChart.mjs +4 -4
- package/dist/js/internal/components/scrollspy.mjs +3 -3
- package/dist/js/internal/components/select.mjs +5 -4
- package/dist/js/internal/components/showMore.mjs +3 -3
- 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 +3 -3
- package/dist/js/internal/components/tabs.mjs +3 -3
- package/dist/js/internal/components/timepicker.mjs +5 -5
- package/dist/js/internal/components/tooltip.mjs +3 -3
- package/dist/js/internal/components/treeSelect.mjs +6 -5
- package/dist/js/internal/components/treemapChart.mjs +4 -4
- package/dist/js/internal/core/component.mjs +6 -4
- package/dist/js/internal/core/formControl.mjs +2 -2
- package/dist/js/internal/core/imageURL.mjs +7 -0
- package/dist/js/internal/core/imageURL.mjs.map +7 -0
- package/dist/js/internal/core/utils.mjs +11 -1
- package/dist/js/internal/plugins/dockedDisplayPlugin.mjs +2 -2
- package/dist/js/internal/plugins/modalDisplayPlugin.mjs +3 -3
- package/dist/js/modular.mjs +76 -75
- package/dist/types/behaviors/bottomSheets.d.ts +5 -3
- package/dist/types/behaviors/dataTables.d.ts +2 -6
- package/dist/types/behaviors/forms.d.ts +7 -7
- package/dist/types/behaviors/imageCompare.d.ts +2 -1
- package/dist/types/behaviors/transferList.d.ts +2 -0
- package/dist/types/components/autocomplete.d.ts +14 -3
- package/dist/types/components/carousel.d.ts +7 -0
- package/dist/types/components/chips.d.ts +15 -0
- package/dist/types/components/colorPicker.d.ts +14 -0
- package/dist/types/components/currencyInput.d.ts +5 -4
- package/dist/types/components/datepicker.d.ts +54 -27
- package/dist/types/components/funnelChart.d.ts +1 -4
- package/dist/types/components/heatmapChart.d.ts +3 -0
- package/dist/types/components/hoverCard.d.ts +1 -0
- package/dist/types/components/inputMask.d.ts +0 -2
- package/dist/types/components/lineChart.d.ts +43 -5
- package/dist/types/components/mapView.d.ts +113 -11
- package/dist/types/components/menu.d.ts +14 -0
- package/dist/types/components/particles.d.ts +14 -1
- package/dist/types/components/pieChart.d.ts +1 -2
- package/dist/types/components/richTextEditor.d.ts +40 -9
- package/dist/types/components/select.d.ts +1 -3
- package/dist/types/components/showMore.d.ts +2 -0
- package/dist/types/components/slider.d.ts +0 -1
- package/dist/types/components/snackbar.d.ts +7 -1
- package/dist/types/components/tabs.d.ts +3 -3
- package/dist/types/components/timepicker.d.ts +15 -6
- package/dist/types/components/tooltip.d.ts +1 -1
- package/dist/types/components/treemapChart.d.ts +2 -2
- package/dist/types/core/component.d.ts +9 -3
- package/dist/types/core/imageURL.d.ts +2 -0
- package/dist/types/core/utils.d.ts +39 -1
- package/dist/types/modular.d.ts +1 -1
- package/dist/types/plugins/modalDisplayPlugin.d.ts +8 -1
- package/package.json +8 -6
- package/src/sass/abstracts/_mixins.scss +459 -59
- package/src/sass/abstracts/_variables.scss +25 -0
- package/src/sass/components/_accordion.scss +1 -3
- package/src/sass/components/_aura.scss +1 -0
- package/src/sass/components/_back-to-top.scss +3 -3
- package/src/sass/components/_bar-chart.scss +2 -83
- package/src/sass/components/_bottom-sheet.scss +7 -0
- package/src/sass/components/_breadcrumb.scss +1 -7
- package/src/sass/components/_button-groups.scss +15 -38
- package/src/sass/components/_buttons.scss +24 -74
- package/src/sass/components/_calendar.scss +1 -3
- package/src/sass/components/_carousel.scss +10 -10
- package/src/sass/components/_cascader.scss +3 -14
- package/src/sass/components/_column-chart.scss +1 -19
- package/src/sass/components/_confetti.scss +3 -4
- package/src/sass/components/_data-table.scss +10 -0
- package/src/sass/components/_dialog.scss +10 -18
- package/src/sass/components/_expanding-card.scss +1 -5
- package/src/sass/components/_fab-menu.scss +4 -12
- package/src/sass/components/_funnel-chart.scss +1 -62
- package/src/sass/components/_heatmap-chart.scss +2 -6
- package/src/sass/components/_icon-buttons.scss +1 -4
- package/src/sass/components/_line-chart.scss +2 -70
- package/src/sass/components/_map.scss +4 -0
- package/src/sass/components/_marquee.scss +3 -3
- package/src/sass/components/_mega-menu.scss +8 -17
- package/src/sass/components/_menu.scss +10 -11
- package/src/sass/components/_menubar.scss +1 -13
- package/src/sass/components/_mixed-chart.scss +1 -37
- package/src/sass/components/_navbar.scss +11 -16
- package/src/sass/components/_navigation-bar.scss +2 -5
- package/src/sass/components/_navigation-rail.scss +25 -15
- package/src/sass/components/_page-footer.scss +1 -3
- package/src/sass/components/_pagination.scss +3 -14
- package/src/sass/components/_panes.scss +3 -16
- package/src/sass/components/_particles.scss +3 -4
- package/src/sass/components/_pie-chart.scss +8 -70
- package/src/sass/components/_progress.scss +31 -13
- package/src/sass/components/_radar-chart.scss +2 -32
- package/src/sass/components/_radial-chart.scss +2 -48
- package/src/sass/components/_sankey-chart.scss +5 -28
- package/src/sass/components/_scatter-chart.scss +2 -11
- package/src/sass/components/_search.scss +1 -4
- package/src/sass/components/_side-sheet.scss +9 -14
- package/src/sass/components/_skeleton.scss +24 -15
- package/src/sass/components/_snackbar.scss +11 -13
- package/src/sass/components/_table_of_contents.scss +1 -3
- package/src/sass/components/_tabs.scss +4 -20
- package/src/sass/components/_timepicker.scss +2 -1
- package/src/sass/components/_toolbar.scss +1 -4
- package/src/sass/components/_tooltip.scss +9 -5
- package/src/sass/components/_tree.scss +5 -17
- package/src/sass/components/_treemap-chart.scss +2 -26
- package/src/sass/components/forms/_checkboxes.scss +2 -21
- package/src/sass/components/forms/_drop-zone.scss +1 -4
- package/src/sass/components/forms/_fieldset.scss +1 -4
- package/src/sass/components/forms/_file-input.scss +6 -0
- package/src/sass/components/forms/_input-fields.scss +21 -4
- package/src/sass/components/forms/_radio-buttons.scss +2 -24
- package/src/sass/components/forms/_select.scss +6 -7
- package/src/sass/components/forms/_slider.scss +1 -4
- package/src/sass/components/forms/_switches.scss +14 -21
- package/src/sass/utilities/_helpers.scss +1 -1
- package/src/sass/utilities/_visibility.scss +1 -3
- package/dist/js/chunks/chunk-2CS6TITK.mjs.map +0 -7
- package/dist/js/chunks/chunk-3L3QIYLC.mjs.map +0 -7
- package/dist/js/chunks/chunk-4IKVPCSU.mjs +0 -7
- package/dist/js/chunks/chunk-4QUCNFSD.mjs.map +0 -7
- package/dist/js/chunks/chunk-4TRZ2AER.mjs.map +0 -7
- package/dist/js/chunks/chunk-5KIHWJI2.mjs.map +0 -7
- package/dist/js/chunks/chunk-6FSEUFVW.mjs.map +0 -7
- package/dist/js/chunks/chunk-752ADW4M.mjs.map +0 -7
- package/dist/js/chunks/chunk-7NLUI3RR.mjs.map +0 -7
- package/dist/js/chunks/chunk-7YQBHTK3.mjs.map +0 -7
- package/dist/js/chunks/chunk-7YZ5CN3V.mjs.map +0 -7
- package/dist/js/chunks/chunk-B7DQFHA5.mjs.map +0 -7
- package/dist/js/chunks/chunk-BIGU5RCJ.mjs.map +0 -7
- package/dist/js/chunks/chunk-BPF3I2MN.mjs.map +0 -7
- package/dist/js/chunks/chunk-CMGXGYUC.mjs.map +0 -7
- package/dist/js/chunks/chunk-CSYWKEK3.mjs.map +0 -7
- package/dist/js/chunks/chunk-CZSQHXEV.mjs.map +0 -7
- package/dist/js/chunks/chunk-DZYVU75J.mjs.map +0 -7
- package/dist/js/chunks/chunk-EC26RU2D.mjs.map +0 -7
- package/dist/js/chunks/chunk-EVCVFEV3.mjs.map +0 -7
- package/dist/js/chunks/chunk-FCNF4GRJ.mjs.map +0 -7
- package/dist/js/chunks/chunk-GWZ76SR4.mjs.map +0 -7
- package/dist/js/chunks/chunk-KYIEG4U3.mjs.map +0 -7
- package/dist/js/chunks/chunk-KZPSAXIU.mjs.map +0 -7
- package/dist/js/chunks/chunk-LDXCC2L3.mjs.map +0 -7
- package/dist/js/chunks/chunk-NBJAUGPP.mjs.map +0 -7
- package/dist/js/chunks/chunk-OUCHKSAW.mjs.map +0 -7
- package/dist/js/chunks/chunk-P6DRQ6KS.mjs.map +0 -7
- package/dist/js/chunks/chunk-PA7NU5AK.mjs.map +0 -7
- package/dist/js/chunks/chunk-QACZ6TUP.mjs.map +0 -7
- package/dist/js/chunks/chunk-QXKWVHBD.mjs.map +0 -7
- package/dist/js/chunks/chunk-S23RJ3XY.mjs.map +0 -7
- package/dist/js/chunks/chunk-SPPHF7YZ.mjs.map +0 -7
- package/dist/js/chunks/chunk-U4B3VHFS.mjs.map +0 -7
- package/dist/js/chunks/chunk-UGJHCHXG.mjs.map +0 -7
- package/dist/js/chunks/chunk-VFV75DHF.mjs.map +0 -7
- package/dist/js/chunks/chunk-VGY4M57S.mjs.map +0 -7
- package/dist/js/chunks/chunk-VH4BMAZS.mjs.map +0 -7
- package/dist/js/chunks/chunk-VJVQIXHC.mjs.map +0 -7
- package/dist/js/chunks/chunk-VMY55K2X.mjs.map +0 -7
- package/dist/js/chunks/chunk-VR3L2WN5.mjs.map +0 -7
- package/dist/js/chunks/chunk-WU7XJ4RR.mjs.map +0 -7
- package/dist/js/chunks/chunk-Y6TLRA3U.mjs.map +0 -7
- package/dist/js/chunks/chunk-Z4GICXR2.mjs.map +0 -7
- package/dist/js/chunks/chunk-Z4OARDZ7.mjs.map +0 -7
- package/dist/js/chunks/chunk-ZM3XBHWV.mjs.map +0 -7
- package/dist/js/chunks/chunk-ZVLOUDIJ.mjs.map +0 -7
- /package/dist/js/chunks/{chunk-Y6H2X7ZC.mjs.map → chunk-3KF65KGL.mjs.map} +0 -0
- /package/dist/js/chunks/{chunk-75E5EDJF.mjs.map → chunk-3XORNED5.mjs.map} +0 -0
- /package/dist/js/chunks/{chunk-NNHVANQA.mjs.map → chunk-4WBGAQN3.mjs.map} +0 -0
- /package/dist/js/chunks/{chunk-ZJNLAGY5.mjs.map → chunk-5F4URJHL.mjs.map} +0 -0
- /package/dist/js/chunks/{chunk-GVZQH2H5.mjs.map → chunk-AEG6LOAJ.mjs.map} +0 -0
- /package/dist/js/chunks/{chunk-AI73GJKG.mjs.map → chunk-BB5VXYXT.mjs.map} +0 -0
- /package/dist/js/chunks/{chunk-2RLBDFH4.mjs.map → chunk-BDATLH3H.mjs.map} +0 -0
- /package/dist/js/chunks/{chunk-ZKWUWBUB.mjs.map → chunk-CY2CTOVM.mjs.map} +0 -0
- /package/dist/js/chunks/{chunk-67ZPPKXS.mjs.map → chunk-FNIIH2LU.mjs.map} +0 -0
- /package/dist/js/chunks/{chunk-T3BNSRP3.mjs.map → chunk-HQRLBTNM.mjs.map} +0 -0
- /package/dist/js/chunks/{chunk-NAC72P7R.mjs.map → chunk-I2F7MLUU.mjs.map} +0 -0
- /package/dist/js/chunks/{chunk-ANKFWNWT.mjs.map → chunk-LC4O5LFS.mjs.map} +0 -0
- /package/dist/js/chunks/{chunk-4PIXLDNJ.mjs.map → chunk-LEF33SCP.mjs.map} +0 -0
- /package/dist/js/chunks/{chunk-ILDRRG7T.mjs.map → chunk-LFORZRPH.mjs.map} +0 -0
- /package/dist/js/chunks/{chunk-4EWGD4V2.mjs.map → chunk-NODZ5VAD.mjs.map} +0 -0
- /package/dist/js/chunks/{chunk-NVQ5EHCU.mjs.map → chunk-QNODAANY.mjs.map} +0 -0
- /package/dist/js/chunks/{chunk-ROH2HDB4.mjs.map → chunk-RUDYMEJ3.mjs.map} +0 -0
- /package/dist/js/chunks/{chunk-TFABTUAZ.mjs.map → chunk-T4MOBP3J.mjs.map} +0 -0
- /package/dist/js/chunks/{chunk-GCWWEZKO.mjs.map → chunk-TM7HPGTV.mjs.map} +0 -0
- /package/dist/js/chunks/{chunk-ZO6ZLHFF.mjs.map → chunk-TVSX5YA2.mjs.map} +0 -0
- /package/dist/js/chunks/{chunk-JUKBBN6P.mjs.map → chunk-YLZOJLDI.mjs.map} +0 -0
|
@@ -101,6 +101,13 @@ $_bar: ".snackbar";
|
|
|
101
101
|
cursor: default;
|
|
102
102
|
@include glass(var(--md-comp-snackbar-container-color));
|
|
103
103
|
|
|
104
|
+
// Forced colors paint the fill as Canvas and drop the shadow, so the
|
|
105
|
+
// surface would blend into the page without an edge.
|
|
106
|
+
@media (forced-colors: active) {
|
|
107
|
+
outline: 1px solid CanvasText;
|
|
108
|
+
outline-offset: -1px;
|
|
109
|
+
}
|
|
110
|
+
|
|
104
111
|
@include bp-up("medium") {
|
|
105
112
|
width: max-content;
|
|
106
113
|
min-width: min(344px, 100%);
|
|
@@ -124,10 +131,7 @@ $_bar: ".snackbar";
|
|
|
124
131
|
// Optional leading icon. M3 snackbars have no leading icon.
|
|
125
132
|
> #{$icon}:first-child {
|
|
126
133
|
flex: 0 0 auto;
|
|
127
|
-
|
|
128
|
-
width: rem(24px);
|
|
129
|
-
height: rem(24px);
|
|
130
|
-
line-height: rem(24px);
|
|
134
|
+
@include icon-size(rem(24px));
|
|
131
135
|
color: var(--md-comp-snackbar-icon-color);
|
|
132
136
|
}
|
|
133
137
|
|
|
@@ -193,10 +197,7 @@ $_bar: ".snackbar";
|
|
|
193
197
|
box-shadow: none;
|
|
194
198
|
|
|
195
199
|
> #{$icon} {
|
|
196
|
-
|
|
197
|
-
width: rem(24px);
|
|
198
|
-
height: rem(24px);
|
|
199
|
-
line-height: rem(24px);
|
|
200
|
+
@include icon-size(rem(24px));
|
|
200
201
|
}
|
|
201
202
|
|
|
202
203
|
&:hover {
|
|
@@ -265,8 +266,5 @@ $_bar: ".snackbar";
|
|
|
265
266
|
}
|
|
266
267
|
}
|
|
267
268
|
|
|
268
|
-
// Transient messages are not part of the page.
|
|
269
|
-
|
|
270
|
-
@media print {
|
|
271
|
-
#snackbar-container { display: none !important; }
|
|
272
|
-
}
|
|
269
|
+
// Transient messages are not part of the page.
|
|
270
|
+
#snackbar-container { @include print-hidden; }
|
|
@@ -41,9 +41,7 @@ $_tab: "> a";
|
|
|
41
41
|
display: flex;
|
|
42
42
|
position: relative;
|
|
43
43
|
width: 100%;
|
|
44
|
-
|
|
45
|
-
padding: 0;
|
|
46
|
-
list-style: none;
|
|
44
|
+
@include list-reset;
|
|
47
45
|
overflow-x: auto;
|
|
48
46
|
overflow-y: hidden;
|
|
49
47
|
white-space: nowrap;
|
|
@@ -51,10 +49,6 @@ $_tab: "> a";
|
|
|
51
49
|
border-block-end: 1px solid var(--md-sys-color-outline-variant);
|
|
52
50
|
scrollbar-width: none;
|
|
53
51
|
|
|
54
|
-
&::-webkit-scrollbar {
|
|
55
|
-
display: none;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
52
|
#{$_tab} {
|
|
59
53
|
box-sizing: border-box;
|
|
60
54
|
position: relative;
|
|
@@ -80,10 +74,7 @@ $_tab: "> a";
|
|
|
80
74
|
|
|
81
75
|
> #{$icon} {
|
|
82
76
|
flex: 0 0 auto;
|
|
83
|
-
|
|
84
|
-
width: var(--md-comp-primary-tab-icon-size);
|
|
85
|
-
height: var(--md-comp-primary-tab-icon-size);
|
|
86
|
-
line-height: var(--md-comp-primary-tab-icon-size);
|
|
77
|
+
@include icon-size(var(--md-comp-primary-tab-icon-size));
|
|
87
78
|
color: inherit;
|
|
88
79
|
}
|
|
89
80
|
|
|
@@ -102,8 +93,7 @@ $_tab: "> a";
|
|
|
102
93
|
// The tint alone is faint and vanishes under forced colors. Inset, so the
|
|
103
94
|
// scrolling tab row does not clip it.
|
|
104
95
|
&:focus-visible {
|
|
105
|
-
@include focus-ring;
|
|
106
|
-
outline-offset: -3px;
|
|
96
|
+
@include focus-ring(-3px);
|
|
107
97
|
}
|
|
108
98
|
|
|
109
99
|
&.active {
|
|
@@ -162,9 +152,7 @@ $_tab: "> a";
|
|
|
162
152
|
background-color: var(--md-comp-primary-tab-active-indicator-color);
|
|
163
153
|
border-radius: var(--md-comp-primary-tab-active-indicator-shape);
|
|
164
154
|
pointer-events: none;
|
|
165
|
-
list-
|
|
166
|
-
padding: 0;
|
|
167
|
-
margin: 0;
|
|
155
|
+
@include list-reset;
|
|
168
156
|
@include forced-colors-fill(Highlight);
|
|
169
157
|
}
|
|
170
158
|
}
|
|
@@ -229,10 +217,6 @@ $_tab: "> a";
|
|
|
229
217
|
scroll-snap-type: x mandatory;
|
|
230
218
|
scrollbar-width: none;
|
|
231
219
|
|
|
232
|
-
&::-webkit-scrollbar {
|
|
233
|
-
display: none;
|
|
234
|
-
}
|
|
235
|
-
|
|
236
220
|
> * {
|
|
237
221
|
flex: 0 0 100%;
|
|
238
222
|
box-sizing: border-box;
|
|
@@ -292,8 +292,9 @@ input[type=text].timepicker-input-seconds {
|
|
|
292
292
|
border: 1px solid var(--md-sys-color-outline);
|
|
293
293
|
}
|
|
294
294
|
|
|
295
|
+
// The buttons share one edge: the start of PM, which is its right in RTL.
|
|
295
296
|
.timepicker-container .pm-btn {
|
|
296
|
-
border-
|
|
297
|
+
border-inline-start: 0;
|
|
297
298
|
}
|
|
298
299
|
|
|
299
300
|
.timepicker-plate {
|
|
@@ -115,10 +115,7 @@ $_vibrant: "#{$_toolbar}.vibrant";
|
|
|
115
115
|
|
|
116
116
|
> #{$icon} {
|
|
117
117
|
flex: 0 0 auto;
|
|
118
|
-
|
|
119
|
-
width: var(--md-comp-toolbar-icon-size);
|
|
120
|
-
height: var(--md-comp-toolbar-icon-size);
|
|
121
|
-
line-height: var(--md-comp-toolbar-icon-size);
|
|
118
|
+
@include icon-size(var(--md-comp-toolbar-icon-size));
|
|
122
119
|
}
|
|
123
120
|
|
|
124
121
|
// The state layer is the content color in both color sets, which is
|
|
@@ -43,6 +43,13 @@
|
|
|
43
43
|
pointer-events: auto;
|
|
44
44
|
z-index: var(--expressive-z-tooltip);
|
|
45
45
|
@include glass(var(--md-comp-plain-tooltip-container-color));
|
|
46
|
+
|
|
47
|
+
// Forced colors paint the fill as Canvas and drop the shadow, so the
|
|
48
|
+
// surface would blend into the page without an edge.
|
|
49
|
+
@media (forced-colors: active) {
|
|
50
|
+
outline: 1px solid CanvasText;
|
|
51
|
+
outline-offset: -1px;
|
|
52
|
+
}
|
|
46
53
|
}
|
|
47
54
|
|
|
48
55
|
// CSS-only: a child of the activator. Default sits above (M3 preferred).
|
|
@@ -183,8 +190,5 @@ body > .tooltip,
|
|
|
183
190
|
min-width: 0;
|
|
184
191
|
}
|
|
185
192
|
|
|
186
|
-
// Transient messages are not part of the page.
|
|
187
|
-
|
|
188
|
-
@media print {
|
|
189
|
-
.tooltip { display: none !important; }
|
|
190
|
-
}
|
|
193
|
+
// Transient messages are not part of the page.
|
|
194
|
+
.tooltip { @include print-hidden; }
|
|
@@ -29,12 +29,10 @@
|
|
|
29
29
|
// Each level hangs a guide line from the centre of its parent's chevron
|
|
30
30
|
// (12px inset + half the 20px chevron) and indents past it.
|
|
31
31
|
ul {
|
|
32
|
-
|
|
32
|
+
@include list-reset;
|
|
33
33
|
margin-inline-start: 22px;
|
|
34
|
-
padding: 0;
|
|
35
34
|
padding-inline-start: 6px;
|
|
36
35
|
border-inline-start: 1px solid var(--md-comp-tree-guide-color);
|
|
37
|
-
list-style: none;
|
|
38
36
|
}
|
|
39
37
|
|
|
40
38
|
li {
|
|
@@ -69,10 +67,7 @@
|
|
|
69
67
|
li > details > summary {
|
|
70
68
|
cursor: pointer;
|
|
71
69
|
@include focus-visible;
|
|
72
|
-
|
|
73
|
-
&:hover {
|
|
74
|
-
background-color: state-layer(var(--md-sys-color-on-surface), "hover");
|
|
75
|
-
}
|
|
70
|
+
@include text-action;
|
|
76
71
|
}
|
|
77
72
|
|
|
78
73
|
li > details > summary {
|
|
@@ -86,6 +81,7 @@
|
|
|
86
81
|
// Points to the end edge while closed and down once open.
|
|
87
82
|
&::before {
|
|
88
83
|
@include tree-chevron;
|
|
84
|
+
@include forced-colors-fill;
|
|
89
85
|
}
|
|
90
86
|
|
|
91
87
|
&:dir(rtl)::before {
|
|
@@ -112,15 +108,7 @@
|
|
|
112
108
|
}
|
|
113
109
|
}
|
|
114
110
|
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
forced-color-adjust: none;
|
|
118
|
-
background-color: CanvasText;
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
[aria-current]:not([aria-current="false"]) {
|
|
122
|
-
outline: 2px solid Highlight;
|
|
123
|
-
outline-offset: -2px;
|
|
124
|
-
}
|
|
111
|
+
[aria-current]:not([aria-current="false"]) {
|
|
112
|
+
@include forced-colors-selected;
|
|
125
113
|
}
|
|
126
114
|
}
|
|
@@ -23,32 +23,10 @@
|
|
|
23
23
|
// on-secondary, surface, surface,
|
|
24
24
|
// surface; the text in each
|
|
25
25
|
|
|
26
|
-
@include chart("treemap-chart");
|
|
26
|
+
@include chart("treemap-chart", $colors: 6, $on-colors: true, $grid: false);
|
|
27
27
|
|
|
28
28
|
.treemap-chart {
|
|
29
29
|
--md-comp-treemap-chart-gap: 4px;
|
|
30
|
-
// As in the pie chart: the container roles mixed 45% with on-surface pass
|
|
31
|
-
// 3:1 on the surface (WCAG 1.4.11), and surface text on them passes too.
|
|
32
|
-
--md-comp-treemap-chart-color-5: color-mix(in oklab, var(--md-sys-color-primary-container) 45%, var(--md-sys-color-on-surface));
|
|
33
|
-
--md-comp-treemap-chart-color-6: color-mix(in oklab, var(--md-sys-color-tertiary-container) 45%, var(--md-sys-color-on-surface));
|
|
34
|
-
--md-comp-treemap-chart-on-color-1: var(--md-sys-color-on-primary);
|
|
35
|
-
--md-comp-treemap-chart-on-color-2: var(--md-sys-color-on-tertiary);
|
|
36
|
-
--md-comp-treemap-chart-on-color-3: var(--md-sys-color-on-secondary);
|
|
37
|
-
--md-comp-treemap-chart-on-color-4: var(--md-sys-color-surface);
|
|
38
|
-
--md-comp-treemap-chart-on-color-5: var(--md-sys-color-surface);
|
|
39
|
-
--md-comp-treemap-chart-on-color-6: var(--md-sys-color-surface);
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
@for $i from 1 through 6 {
|
|
43
|
-
.treemap-chart [data-series="#{$i}"] {
|
|
44
|
-
--treemap-chart-color: var(--md-comp-treemap-chart-color-#{$i});
|
|
45
|
-
--treemap-chart-on-color: var(--md-comp-treemap-chart-on-color-#{$i});
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
.treemap-chart-plot {
|
|
50
|
-
border: 0;
|
|
51
|
-
background: none;
|
|
52
30
|
}
|
|
53
31
|
|
|
54
32
|
.treemap-chart-boxes {
|
|
@@ -84,10 +62,8 @@
|
|
|
84
62
|
|
|
85
63
|
> span {
|
|
86
64
|
position: relative;
|
|
87
|
-
|
|
65
|
+
@include ellipsis;
|
|
88
66
|
margin-inline: calc(var(--treemap-chart-inset) + 8px);
|
|
89
|
-
text-overflow: ellipsis;
|
|
90
|
-
white-space: nowrap;
|
|
91
67
|
}
|
|
92
68
|
|
|
93
69
|
> span:first-child {
|
|
@@ -58,14 +58,7 @@ label:has(> [type="checkbox"]):not(.switch),
|
|
|
58
58
|
// do not write :has(:not(:has(+ span))).
|
|
59
59
|
label:has(> [type="checkbox"]):not(.switch) > [type="checkbox"],
|
|
60
60
|
.checkbox > [type="checkbox"] {
|
|
61
|
-
|
|
62
|
-
flex: 0 0 var(--md-comp-checkbox-container-size);
|
|
63
|
-
box-sizing: border-box;
|
|
64
|
-
width: var(--md-comp-checkbox-container-size);
|
|
65
|
-
height: var(--md-comp-checkbox-container-size);
|
|
66
|
-
margin: 0;
|
|
67
|
-
padding: 0;
|
|
68
|
-
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));
|
|
69
62
|
border-radius: var(--md-comp-checkbox-container-shape);
|
|
70
63
|
background-color: transparent;
|
|
71
64
|
cursor: pointer;
|
|
@@ -77,19 +70,7 @@ label:has(> [type="checkbox"]):not(.switch) > [type="checkbox"],
|
|
|
77
70
|
background-color: var(--md-sys-color-primary);
|
|
78
71
|
}
|
|
79
72
|
|
|
80
|
-
|
|
81
|
-
@include _ring(var(--md-sys-color-on-surface), "hover");
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
&:checked:hover,
|
|
85
|
-
&:indeterminate:hover {
|
|
86
|
-
@include _ring(var(--md-sys-color-primary), "hover");
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
&:focus-visible {
|
|
90
|
-
@include _ring(var(--md-sys-color-primary), "focus");
|
|
91
|
-
outline: none;
|
|
92
|
-
}
|
|
73
|
+
@include selection-control-states(var(--md-comp-checkbox-state-layer-size), var(--md-comp-checkbox-container-size), (":checked", ":indeterminate"));
|
|
93
74
|
|
|
94
75
|
&.invalid,
|
|
95
76
|
&[aria-invalid="true"] {
|
|
@@ -51,10 +51,7 @@ fieldset {
|
|
|
51
51
|
@include typescale("title-small");
|
|
52
52
|
|
|
53
53
|
> #{$icon} {
|
|
54
|
-
|
|
55
|
-
width: rem(18px);
|
|
56
|
-
height: rem(18px);
|
|
57
|
-
line-height: rem(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);
|
|
@@ -27,6 +27,12 @@
|
|
|
27
27
|
align-self: start;
|
|
28
28
|
min-height: 3rem;
|
|
29
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
|
+
}
|
|
30
36
|
}
|
|
31
37
|
|
|
32
38
|
span {
|
|
@@ -213,10 +213,7 @@ $_floated: '&:focus + label, &:not([placeholder=" "]) + label, &:not(:placeholde
|
|
|
213
213
|
top: rem(16px);
|
|
214
214
|
display: flex;
|
|
215
215
|
align-items: center;
|
|
216
|
-
|
|
217
|
-
width: rem(24px);
|
|
218
|
-
height: rem(24px);
|
|
219
|
-
line-height: rem(24px);
|
|
216
|
+
@include icon-size(rem(24px));
|
|
220
217
|
color: var(--md-sys-color-on-surface-variant);
|
|
221
218
|
user-select: none;
|
|
222
219
|
}
|
|
@@ -587,12 +584,32 @@ input.otp:not(.browser-default) {
|
|
|
587
584
|
opacity: 0.38;
|
|
588
585
|
}
|
|
589
586
|
|
|
587
|
+
// Forced colors drop gradients, which are the cells and the focus ring, so
|
|
588
|
+
// the code keeps them in system colors: a CanvasText line under each cell,
|
|
589
|
+
// Highlight while focused and GrayText when disabled.
|
|
590
590
|
@media (forced-colors: active) {
|
|
591
|
+
--md-comp-otp-cell-color: Canvas;
|
|
591
592
|
--md-comp-otp-indicator-color: CanvasText;
|
|
592
593
|
|
|
594
|
+
forced-color-adjust: none;
|
|
595
|
+
color: CanvasText;
|
|
596
|
+
caret-color: CanvasText;
|
|
597
|
+
background-color: Canvas;
|
|
598
|
+
|
|
599
|
+
&::placeholder {
|
|
600
|
+
color: GrayText;
|
|
601
|
+
}
|
|
602
|
+
|
|
593
603
|
&:focus {
|
|
594
604
|
--md-comp-otp-indicator-color: Highlight;
|
|
595
605
|
}
|
|
606
|
+
|
|
607
|
+
&:disabled {
|
|
608
|
+
--md-comp-otp-indicator-color: GrayText;
|
|
609
|
+
|
|
610
|
+
color: GrayText;
|
|
611
|
+
opacity: 1;
|
|
612
|
+
}
|
|
596
613
|
}
|
|
597
614
|
}
|
|
598
615
|
|
|
@@ -16,10 +16,6 @@
|
|
|
16
16
|
//
|
|
17
17
|
// .with-gap is a no-op: the selected state is always the ring + inner.
|
|
18
18
|
|
|
19
|
-
@mixin _ring($color, $state) {
|
|
20
|
-
@include state-layer-ring(var(--md-comp-radio-button-state-layer-size), var(--md-comp-radio-button-icon-size), $color, $state);
|
|
21
|
-
}
|
|
22
|
-
|
|
23
19
|
label:has(> [type="radio"]),
|
|
24
20
|
.radio {
|
|
25
21
|
--md-comp-radio-button-icon-size: 20px;
|
|
@@ -46,14 +42,7 @@ label:has(> [type="radio"]),
|
|
|
46
42
|
// Paint the radio on the input.
|
|
47
43
|
label:has(> [type="radio"]) > [type="radio"],
|
|
48
44
|
.radio > [type="radio"] {
|
|
49
|
-
|
|
50
|
-
flex: 0 0 var(--md-comp-radio-button-icon-size);
|
|
51
|
-
box-sizing: border-box;
|
|
52
|
-
width: var(--md-comp-radio-button-icon-size);
|
|
53
|
-
height: var(--md-comp-radio-button-icon-size);
|
|
54
|
-
margin: 0;
|
|
55
|
-
padding: 0;
|
|
56
|
-
border: 2px solid var(--md-sys-color-on-surface-variant);
|
|
45
|
+
@include selection-control(var(--md-comp-radio-button-icon-size), var(--md-comp-radio-button-icon-size), var(--md-sys-color-on-surface-variant));
|
|
57
46
|
border-radius: 50%;
|
|
58
47
|
background-color: transparent;
|
|
59
48
|
cursor: pointer;
|
|
@@ -68,18 +57,7 @@ label:has(> [type="radio"]) > [type="radio"],
|
|
|
68
57
|
);
|
|
69
58
|
}
|
|
70
59
|
|
|
71
|
-
|
|
72
|
-
@include _ring(var(--md-sys-color-on-surface), "hover");
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
&:checked:hover {
|
|
76
|
-
@include _ring(var(--md-sys-color-primary), "hover");
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
&:focus-visible {
|
|
80
|
-
@include _ring(var(--md-sys-color-primary), "focus");
|
|
81
|
-
outline: none;
|
|
82
|
-
}
|
|
60
|
+
@include selection-control-states(var(--md-comp-radio-button-state-layer-size), var(--md-comp-radio-button-icon-size));
|
|
83
61
|
|
|
84
62
|
&:disabled {
|
|
85
63
|
border-color: color-mix(in oklab, var(--md-sys-color-on-surface) 38%, transparent);
|
|
@@ -319,17 +319,13 @@ menu[role="listbox"] li.optgroup-option {
|
|
|
319
319
|
// with the chevron .tree uses, a leaf lines its text up after it, and each
|
|
320
320
|
// level hangs a guide line from its parent's chevron, as in .tree.
|
|
321
321
|
ul[role="tree"] {
|
|
322
|
-
|
|
323
|
-
padding: 0;
|
|
324
|
-
list-style: none;
|
|
322
|
+
@include list-reset;
|
|
325
323
|
|
|
326
324
|
ul[role="group"] {
|
|
327
|
-
|
|
325
|
+
@include list-reset;
|
|
328
326
|
margin-inline-start: calc(var(--md-comp-menu-item-leading-space) + 10px);
|
|
329
|
-
padding: 0;
|
|
330
327
|
padding-inline-start: 4px;
|
|
331
328
|
border-inline-start: 1px solid var(--md-sys-color-outline-variant);
|
|
332
|
-
list-style: none;
|
|
333
329
|
}
|
|
334
330
|
|
|
335
331
|
li[role="treeitem"] {
|
|
@@ -358,10 +354,13 @@ ul[role="tree"] {
|
|
|
358
354
|
background-color: state-layer(var(--md-comp-menu-item-label-text-color), "hover");
|
|
359
355
|
}
|
|
360
356
|
|
|
357
|
+
// The focus layer alone is too faint to find, so the row takes the
|
|
358
|
+
// shared ring too, inset because the tree scrolls and would clip it.
|
|
361
359
|
&:focus-visible > span {
|
|
362
360
|
background-color: state-layer(var(--md-comp-menu-item-label-text-color), "focus");
|
|
361
|
+
@include focus-ring(-3px);
|
|
363
362
|
|
|
364
|
-
// Forced colors drop the focus fill
|
|
363
|
+
// Forced colors drop the focus fill and the ring's color.
|
|
365
364
|
@media (forced-colors: active) {
|
|
366
365
|
outline: 2px solid CanvasText;
|
|
367
366
|
outline-offset: -2px;
|
|
@@ -130,10 +130,7 @@ input[type="range"]:dir(rtl) {
|
|
|
130
130
|
left: var(--md-comp-slider-stop-inset);
|
|
131
131
|
top: 50%;
|
|
132
132
|
translate: 0 -50%;
|
|
133
|
-
|
|
134
|
-
width: var(--md-comp-slider-icon-size);
|
|
135
|
-
height: var(--md-comp-slider-icon-size);
|
|
136
|
-
line-height: 1;
|
|
133
|
+
@include icon-size(var(--md-comp-slider-icon-size), 1);
|
|
137
134
|
color: var(--md-sys-color-on-primary);
|
|
138
135
|
pointer-events: none;
|
|
139
136
|
}
|
|
@@ -31,15 +31,11 @@
|
|
|
31
31
|
|
|
32
32
|
// Paint the switch on the checkbox. The class goes on the <label> that wraps
|
|
33
33
|
// it; a checkbox nested deeper is an ordinary checkbox.
|
|
34
|
+
// The selected handle's distance from the start edge of the padding box.
|
|
35
|
+
$_on: calc(var(--md-comp-switch-track-width) - 4px - 2px - var(--md-comp-switch-handle-selected));
|
|
36
|
+
|
|
34
37
|
.switch > [type="checkbox"] {
|
|
35
|
-
|
|
36
|
-
flex: 0 0 var(--md-comp-switch-track-width);
|
|
37
|
-
box-sizing: border-box;
|
|
38
|
-
width: var(--md-comp-switch-track-width);
|
|
39
|
-
height: var(--md-comp-switch-track-height);
|
|
40
|
-
margin: 0;
|
|
41
|
-
padding: 0;
|
|
42
|
-
border: 2px solid var(--md-sys-color-outline);
|
|
38
|
+
@include selection-control(var(--md-comp-switch-track-width), var(--md-comp-switch-track-height), var(--md-sys-color-outline));
|
|
43
39
|
border-radius: var(--md-sys-shape-corner-large);
|
|
44
40
|
background-color: var(--md-sys-color-surface-container-highest);
|
|
45
41
|
// Size the image to the handle. A 100% gradient keeps the circle in
|
|
@@ -76,24 +72,21 @@
|
|
|
76
72
|
);
|
|
77
73
|
background-size: var(--md-comp-switch-handle-selected) var(--md-comp-switch-handle-selected);
|
|
78
74
|
// padding-box is track minus the 2px border on each side; 2px inset.
|
|
79
|
-
background-position:
|
|
80
|
-
var(--md-comp-switch-track-width) - 4px - 2px - var(--md-comp-switch-handle-selected)
|
|
81
|
-
)
|
|
82
|
-
50%;
|
|
75
|
+
background-position: $_on 50%;
|
|
83
76
|
}
|
|
84
77
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
78
|
+
// Off is at the start edge and on at the end, so RTL measures from the
|
|
79
|
+
// right. The same edge in both states keeps the slide animating.
|
|
80
|
+
&:dir(rtl) {
|
|
81
|
+
background-position: right 6px center;
|
|
88
82
|
|
|
89
|
-
|
|
90
|
-
|
|
83
|
+
&:checked {
|
|
84
|
+
background-position: right $_on center;
|
|
85
|
+
}
|
|
91
86
|
}
|
|
92
87
|
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
outline: none;
|
|
96
|
-
}
|
|
88
|
+
// A fixed 8px ring around the default 32px track, for a 48dp target.
|
|
89
|
+
@include selection-control-states(48px, 32px);
|
|
97
90
|
|
|
98
91
|
&:disabled {
|
|
99
92
|
opacity: 0.38;
|
|
@@ -190,7 +190,7 @@ $_layout: (
|
|
|
190
190
|
.text-wrap { white-space: normal; }
|
|
191
191
|
.text-balance { text-wrap-style: balance; }
|
|
192
192
|
.text-pretty { text-wrap-style: pretty; }
|
|
193
|
-
.truncate { display: block;
|
|
193
|
+
.truncate { display: block; @include ellipsis; }
|
|
194
194
|
|
|
195
195
|
// Pointer input. Clicks pass through a .pointer-events-none overlay to what
|
|
196
196
|
// lies beneath, and a .pointer-events-auto child takes them back. Neither
|
|
@@ -15,9 +15,7 @@
|
|
|
15
15
|
|
|
16
16
|
// Print. .hide-on-print drops a screen-only control from paper; .print-only
|
|
17
17
|
// is the reverse, for a printed footer or a QR code beside a link.
|
|
18
|
-
.hide-on-print {
|
|
19
|
-
@media print { display: none !important; }
|
|
20
|
-
}
|
|
18
|
+
.hide-on-print { @include print-hidden; }
|
|
21
19
|
|
|
22
20
|
.print-only {
|
|
23
21
|
@media screen { display: none !important; }
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/ts/components/colorPicker.ts"],
|
|
4
|
-
"sourcesContent": ["import { Component, BaseOptions } from '../core/component';\nimport { Utils, controllerFor } from '../core/utils';\n\nexport interface ColorPickerOptions extends BaseOptions {\n /**\n * Called with the new `#rrggbb` value when a change is committed: the end\n * of a drag, a key press, a hue release or a typed hex value.\n * @default null\n */\n onChange: ((value: string) => void) | null;\n}\n\nconst _defaults: ColorPickerOptions = {\n onChange: null\n};\n\n/** Hue in degrees, saturation and value from 0 to 1. */\ninterface Hsv { h: number; s: number; v: number }\n\nconst clamp = (n: number) => Math.min(1, Math.max(0, n));\n\n// Hue in degrees of an RGB color with channels from 0 to 1.\nfunction hueOf(r: number, g: number, b: number): number {\n const max = Math.max(r, g, b);\n const range = max - Math.min(r, g, b);\n if (!range) return 0;\n const sector = max === r ? (g - b) / range : max === g ? (b - r) / range + 2 : (r - g) / range + 4;\n return (sector * 60 + 360) % 360;\n}\n\nfunction toHsv(hex: string): Hsv | null {\n const match = /^#?([0-9a-f]{3}|[0-9a-f]{6})$/i.exec(hex.trim());\n if (!match) return null;\n const digits = match[1].length === 3 ? [...match[1]].map((c) => c + c).join('') : match[1];\n const [r, g, b] = [0, 2, 4].map((i) => parseInt(digits.slice(i, i + 2), 16) / 255);\n const max = Math.max(r, g, b);\n return { h: hueOf(r, g, b), s: max ? (max - Math.min(r, g, b)) / max : 0, v: max };\n}\n\nfunction toHex({ h, s, v }: Hsv): string {\n const channel = (n: number) => {\n const k = (n + h / 60) % 6;\n return v - v * s * Math.max(0, Math.min(k, 4 - k, 1));\n };\n return '#' + [5, 3, 1].map((n) => Math.round(channel(n) * 255).toString(16).padStart(2, '0')).join('');\n}\n\n// Area keys as [saturation, brightness] steps of 1%; Shift takes ten of them.\n// Home and End overshoot so the clamp lands on the ends of saturation.\nconst KEY_STEPS: Record<string, [number, number]> = {\n ArrowRight: [1, 0],\n ArrowLeft: [-1, 0],\n ArrowUp: [0, 1],\n ArrowDown: [0, -1],\n PageUp: [0, 10],\n PageDown: [0, -10],\n Home: [-100, 0],\n End: [100, 0]\n};\n\n/**\n * Color picker. Enhances a `.color-picker` holding an `<input type=\"color\">`\n * with a saturation and brightness area, a hue slider and a hex field. The\n * native input stays the form value and the preview, so the browser's own\n * picker still opens from it, and it fires `input` and `change` as it would\n * if the person had used that picker.\n */\nexport class ColorPicker extends Component<ColorPickerOptions> {\n /** The native color input that holds the value. */\n input: HTMLInputElement | null;\n private _hsv: Hsv = { h: 0, s: 0, v: 0 };\n private _area: HTMLDivElement | null = null;\n private _thumb: HTMLDivElement | null = null;\n private _hue: HTMLInputElement | null = null;\n private _hex: HTMLInputElement | null = null;\n // Set while the picker writes the native input, so its own events are not\n // read back as an outside change.\n private _writing = false;\n\n constructor(el: HTMLElement, options: Partial<ColorPickerOptions>) {\n super(el, options);\n this.input = el.querySelector<HTMLInputElement>(':scope > input[type=\"color\"]');\n if (!this.input) return;\n this._hsv = toHsv(this.input.value) ?? this._hsv;\n this._build();\n this.input.addEventListener('input', this._onNativeInput, { signal: this._events.signal });\n this._render();\n }\n\n static get defaults(): ColorPickerOptions {\n return _defaults;\n }\n\n static key = 'Expressive_ColorPicker';\n\n destroy() {\n for (const part of [this._area, this._hue, this._hex]) part?.remove();\n this._area = this._thumb = this._hue = this._hex = null;\n this.el.style.removeProperty('--_color-picker-hue');\n super.destroy();\n }\n\n /** The current color as `#rrggbb`. Setting it fires no events, as with a native input. */\n get value(): string {\n return this.input?.value ?? '';\n }\n\n set value(hex: string) {\n const hsv = toHsv(hex);\n if (!hsv || !this.input) return;\n this._hsv = hsv;\n this._writing = true;\n this.input.value = toHex(hsv);\n this._writing = false;\n this._render();\n }\n\n private _build() {\n const disabled = this.input!.disabled;\n\n const area = document.createElement('div');\n area.className = 'color-picker-area';\n const thumb = document.createElement('div');\n thumb.className = 'color-picker-thumb';\n thumb.setAttribute('role', 'slider');\n thumb.setAttribute('aria-label', 'Saturation and brightness');\n thumb.setAttribute('aria-valuemin', '0');\n thumb.setAttribute('aria-valuemax', '100');\n thumb.tabIndex = disabled ? -1 : 0;\n if (disabled) thumb.setAttribute('aria-disabled', 'true');\n area.append(thumb);\n\n const hue = document.createElement('input');\n hue.type = 'range';\n hue.className = 'color-picker-hue';\n hue.min = '0';\n hue.max = '359';\n hue.setAttribute('aria-label', 'Hue');\n hue.disabled = disabled;\n\n const hex = document.createElement('input');\n hex.type = 'text';\n hex.className = 'color-picker-hex';\n hex.setAttribute('aria-label', 'Hex color');\n hex.autocomplete = 'off';\n hex.spellcheck = false;\n hex.maxLength = 7;\n hex.disabled = disabled;\n\n // Area and hue before the native input, the hex field after it.\n this.input!.before(area, hue);\n this.input!.after(hex);\n this._area = area;\n this._thumb = thumb;\n this._hue = hue;\n this._hex = hex;\n\n area.addEventListener('pointerdown', this._onPointerDown);\n thumb.addEventListener('keydown', this._onKeyDown);\n hue.addEventListener('input', () => this._set({ ...this._hsv, h: Number(hue.value) }, false));\n hue.addEventListener('change', () => this._commit());\n hex.addEventListener('change', this._onHex);\n hex.addEventListener('keydown', (e) => {\n // Enter in a text field would submit the form; take it as \"apply\".\n if (e.key === 'Enter' && !Utils.isComposing(e)) {\n e.preventDefault();\n this._onHex();\n }\n });\n }\n\n private _render() {\n const { h, s, v } = this._hsv;\n const hex = toHex(this._hsv);\n const thumb = this._thumb!;\n this.el.style.setProperty('--_color-picker-hue', String(Math.round(h)));\n thumb.style.setProperty('--_color-picker-x', String(s));\n thumb.style.setProperty('--_color-picker-y', String(1 - v));\n thumb.style.setProperty('--_color-picker-color', hex);\n thumb.setAttribute('aria-valuenow', String(Math.round(s * 100)));\n thumb.setAttribute('aria-valuetext', `Saturation ${Math.round(s * 100)}%, brightness ${Math.round(v * 100)}%`);\n this._hue!.value = String(Math.round(h));\n // The hex field only commits on change, so rewriting it never fights typing.\n this._hex!.value = hex;\n }\n\n // Store the color, write it to the native input and fire `input`; with\n // `commit`, also fire `change` and onChange.\n // Only reached from the built controls, which a disabled input disables.\n private _set(hsv: Hsv, commit = true) {\n const input = this.input!;\n this._hsv = hsv;\n const hex = toHex(hsv);\n const changed = input.value !== hex;\n this._writing = true;\n input.value = hex;\n if (changed) input.dispatchEvent(new Event('input', { bubbles: true, composed: true }));\n this._writing = false;\n this._render();\n if (commit) this._commit();\n }\n\n private _commit() {\n if (!this.input) return;\n this._writing = true;\n this.input.dispatchEvent(new Event('change', { bubbles: true }));\n this._writing = false;\n this.options.onChange?.(this.input.value);\n }\n\n // The person used the browser's own picker on the native input.\n private _onNativeInput = () => {\n if (this._writing || !this.input) return;\n const hsv = toHsv(this.input.value);\n if (!hsv) return;\n this._hsv = hsv;\n this._render();\n };\n\n private _onHex = () => {\n const hsv = toHsv(this._hex!.value);\n if (hsv && toHex(hsv) !== this.input!.value) this._set(hsv);\n // An invalid entry goes back to the current color.\n this._hex!.value = toHex(this._hsv);\n };\n\n private _fromPoint(e: PointerEvent, commit: boolean) {\n const box = this._area!.getBoundingClientRect();\n const s = clamp((e.clientX - box.left) / box.width);\n const v = 1 - clamp((e.clientY - box.top) / box.height);\n this._set({ ...this._hsv, s, v }, commit);\n }\n\n private _onPointerDown = (e: PointerEvent) => {\n if (e.button || this.input!.disabled) return;\n const area = this._area!;\n e.preventDefault();\n this._thumb!.focus();\n area.setPointerCapture(e.pointerId);\n this._fromPoint(e, false);\n const move = (ev: PointerEvent) => this._fromPoint(ev, false);\n const drag = controllerFor(area);\n const up = (ev: PointerEvent) => {\n drag.abort();\n this._fromPoint(ev, true);\n };\n const { signal } = drag;\n area.addEventListener('pointermove', move, { signal });\n area.addEventListener('pointerup', up, { signal });\n area.addEventListener('pointercancel', up, { signal });\n };\n\n // Left and right change saturation, up and down brightness; see KEY_STEPS.\n private _onKeyDown = (e: KeyboardEvent) => {\n const steps = KEY_STEPS[e.key];\n if (!steps || this.input!.disabled) return;\n e.preventDefault();\n const unit = e.shiftKey ? 0.1 : 0.01;\n const { s, v } = this._hsv;\n this._set({ ...this._hsv, s: clamp(s + steps[0] * unit), v: clamp(v + steps[1] * unit) });\n };\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/ts/behaviors/bottomSheets.ts"],
|
|
4
|
-
"sourcesContent": ["import { DISMISS_DISTANCE, DISMISS_VELOCITY, installSheetDrag } from './sheetDrag';\nimport { Utils } from '../core/utils';\n\nconst SHEET_SELECTOR = 'dialog.bottom-sheet';\n/** Past this a drag up expands an .expandable sheet, in pixels; a drag down uses the dismissal distance. */\nconst RESIZE_DISTANCE = 48;\n\n/** Whether a drag went past `distance`, or flicked, down (1) or up (-1). */\nconst toward = (sign: 1 | -1, distance: number, delta: number, velocity: number) =>\n delta * sign > distance || velocity * sign > DISMISS_VELOCITY;\n\n/**\n * Drag-to-dismiss for `dialog.bottom-sheet`, and two heights for\n * `.expandable` sheets.\n *\n * The handle is the top 48dp of the sheet, or an explicit `.drag-handle`. A downward drag past 96dp, or a\n * flick, closes. Anything else snaps back. Content below the handle scrolls\n * normally. Light-dismiss on the scrim stays with {@link Dialogs}.\n *\n * The drag itself is {@link installSheetDrag}, shared with the side sheet. What\n * is here is what is not shared: a handle written as a `<button>` also closes\n * the sheet when it is *activated*, which is what makes it reachable without a\n * pointer - dragging is a pointer gesture, so a control labelled \"Dismiss\" that\n * only answers a drag promises an action a keyboard user cannot perform. A\n * handle written as any other element is decoration and does nothing here -\n * Escape still closes the sheet either way, natively.\n *\n * An `.expandable` sheet opens partly expanded. A drag up, or a flick up,\n * expands it to its full height with `.expanded`; from there a drag down\n * collapses it, and a drag down from the partial height dismisses as usual.\n * Its handle button switches between the two heights instead of closing,\n * and carries `aria-expanded`. Closing the sheet puts it back to partial.\n */\nexport class BottomSheets {\n /**\n * Whether the last pointer sequence moved. A drag ends with a `click` on the\n * element it started on, so without this the tail of a drag that snapped back\n * would dismiss the sheet the drag had just declined to dismiss.\n */\n private static _dragged = false;\n\n static Init() {\n installSheetDrag({\n selector: SHEET_SELECTOR,\n axis: 'y',\n property: '--md-comp-bottom-sheet-shift',\n motion: '--md-comp-bottom-sheet-motion',\n direction: () => 1,\n inHandle: (event, dialog) => {\n if (Utils.closestInPath(event, '.drag-handle')) return true;\n const rect = dialog.getBoundingClientRect();\n return event.clientY >= rect.top && event.clientY <= rect.top + 48;\n },\n onPress: () => {\n BottomSheets._dragged = false;\n },\n onRelease: (dragged) => {\n BottomSheets._dragged = dragged;\n },\n release: (dialog, delta, velocity) => BottomSheets._resize(dialog, delta, velocity)\n });\n Utils.onDocumentReady(() => {\n document.addEventListener('click', BottomSheets._onClick);\n // close does not bubble, so it is caught on its way down.\n document.addEventListener('close', BottomSheets._onClose, true);\n });\n }\n\n /**\n * For an .expandable sheet, a drag up expands it and a drag down from\n * expanded collapses it. Returns whether the drag resized the sheet.\n */\n static _resize(dialog: HTMLDialogElement, delta: number, velocity: number): boolean {\n if (!dialog.classList.contains('expandable')) return false;\n const expanded = dialog.classList.contains('expanded');\n const next = expanded ? !toward(1, DISMISS_DISTANCE, delta, velocity) : toward(-1, RESIZE_DISTANCE, delta, velocity);\n if (next === expanded) return false;\n BottomSheets.setExpanded(dialog, next);\n return true;\n }\n\n /** Sets an .expandable sheet to its full height or back to partial, and tells its handle. */\n static setExpanded(dialog: HTMLDialogElement, expanded: boolean) {\n dialog.classList.toggle('expanded', expanded);\n dialog.querySelector(':scope > button.drag-handle')?.setAttribute('aria-expanded', String(expanded));\n }\n\n private static _onClose(event: Event) {\n const dialog = event.target as Element;\n if (dialog.matches?.(`${SHEET_SELECTOR}.expandable`)) BottomSheets.setExpanded(dialog as HTMLDialogElement, false);\n }\n\n static _onClick(event: MouseEvent) {\n const handle = Utils.closestInPath(event, '.drag-handle');\n // Only a <button> is a control. A decorative <span> in the same slot is\n // exactly what it looks like, and clicking it does nothing.\n if (!(handle instanceof HTMLButtonElement)) return;\n // `detail` is 0 when the click came from Enter or Space and >= 1 when a\n // pointer produced it, so the keyboard path is decided without consulting\n // pointer state at all - a stale drag can never swallow a key press.\n if (event.detail !== 0 && BottomSheets._dragged) return;\n const dialog = handle.closest(SHEET_SELECTOR);\n if (dialog instanceof HTMLDialogElement && dialog.open) BottomSheets._activate(dialog);\n }\n\n /** The handle button switches an .expandable sheet's height, and closes any other. */\n private static _activate(dialog: HTMLDialogElement) {\n if (dialog.classList.contains('expandable')) BottomSheets.setExpanded(dialog, !dialog.classList.contains('expanded'));\n else dialog.close();\n }\n}\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;AAGA,IAAM,iBAAiB;AAEvB,IAAM,kBAAkB;AAGxB,IAAM,SAAS,CAAC,MAAc,UAAkB,OAAe,aAC7D,QAAQ,OAAO,YAAY,WAAW,OAAO;AAwBxC,IAAM,gBAAN,MAAM,cAAa;AAAA,EAQxB,OAAO,OAAO;AACZ,qBAAiB;AAAA,MACf,UAAU;AAAA,MACV,MAAM;AAAA,MACN,UAAU;AAAA,MACV,QAAQ;AAAA,MACR,WAAW,MAAM;AAAA,MACjB,UAAU,CAAC,OAAO,WAAW;AAC3B,YAAI,MAAM,cAAc,OAAO,cAAc,EAAG,QAAO;AACvD,cAAM,OAAO,OAAO,sBAAsB;AAC1C,eAAO,MAAM,WAAW,KAAK,OAAO,MAAM,WAAW,KAAK,MAAM;AAAA,MAClE;AAAA,MACA,SAAS,MAAM;AACb,sBAAa,WAAW;AAAA,MAC1B;AAAA,MACA,WAAW,CAAC,YAAY;AACtB,sBAAa,WAAW;AAAA,MAC1B;AAAA,MACA,SAAS,CAAC,QAAQ,OAAO,aAAa,cAAa,QAAQ,QAAQ,OAAO,QAAQ;AAAA,IACpF,CAAC;AACD,UAAM,gBAAgB,MAAM;AAC1B,eAAS,iBAAiB,SAAS,cAAa,QAAQ;AAExD,eAAS,iBAAiB,SAAS,cAAa,UAAU,IAAI;AAAA,IAChE,CAAC;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,OAAO,QAAQ,QAA2B,OAAe,UAA2B;AAClF,QAAI,CAAC,OAAO,UAAU,SAAS,YAAY,EAAG,QAAO;AACrD,UAAM,WAAW,OAAO,UAAU,SAAS,UAAU;AACrD,UAAM,OAAO,WAAW,CAAC,OAAO,GAAG,kBAAkB,OAAO,QAAQ,IAAI,OAAO,IAAI,iBAAiB,OAAO,QAAQ;AACnH,QAAI,SAAS,SAAU,QAAO;AAC9B,kBAAa,YAAY,QAAQ,IAAI;AACrC,WAAO;AAAA,EACT;AAAA;AAAA,EAGA,OAAO,YAAY,QAA2B,UAAmB;AAC/D,WAAO,UAAU,OAAO,YAAY,QAAQ;AAC5C,WAAO,cAAc,6BAA6B,GAAG,aAAa,iBAAiB,OAAO,QAAQ,CAAC;AAAA,EACrG;AAAA,EAEA,OAAe,SAAS,OAAc;AACpC,UAAM,SAAS,MAAM;AACrB,QAAI,OAAO,UAAU,GAAG,cAAc,aAAa,EAAG,eAAa,YAAY,QAA6B,KAAK;AAAA,EACnH;AAAA,EAEA,OAAO,SAAS,OAAmB;AACjC,UAAM,SAAS,MAAM,cAAc,OAAO,cAAc;AAGxD,QAAI,EAAE,kBAAkB,mBAAoB;AAI5C,QAAI,MAAM,WAAW,KAAK,cAAa,SAAU;AACjD,UAAM,SAAS,OAAO,QAAQ,cAAc;AAC5C,QAAI,kBAAkB,qBAAqB,OAAO,KAAM,eAAa,UAAU,MAAM;AAAA,EACvF;AAAA;AAAA,EAGA,OAAe,UAAU,QAA2B;AAClD,QAAI,OAAO,UAAU,SAAS,YAAY,EAAG,eAAa,YAAY,QAAQ,CAAC,OAAO,UAAU,SAAS,UAAU,CAAC;AAAA,QAC/G,QAAO,MAAM;AAAA,EACpB;AACF;AAAA;AAAA;AAAA;AAAA;AAAA;AA7Ea,cAMI,WAAW;AANrB,IAAM,eAAN;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|