@expressivecss/expressive 0.15.0 → 0.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +1502 -1
- package/README.md +9 -8
- package/dist/css/expressive.css +19247 -11923
- package/dist/css/expressive.css.map +1 -1
- package/dist/css/expressive.min.css +1 -1
- package/dist/css/expressive.min.css.map +1 -1
- package/dist/fonts/LICENSE-noto-sans-arabic +93 -0
- package/dist/fonts/LICENSE-noto-sans-hebrew +93 -0
- package/dist/fonts/LICENSE-noto-sans-thai +93 -0
- package/dist/fonts/material-symbols-outlined.woff2 +0 -0
- package/dist/fonts/material-symbols-rounded.woff2 +0 -0
- package/dist/fonts/material-symbols-sharp.woff2 +0 -0
- package/dist/fonts/noto-sans-arabic-arabic-400.woff2 +0 -0
- package/dist/fonts/noto-sans-arabic-arabic-500.woff2 +0 -0
- package/dist/fonts/noto-sans-arabic-arabic-700.woff2 +0 -0
- package/dist/fonts/noto-sans-cyrillic-400.woff2 +0 -0
- package/dist/fonts/noto-sans-cyrillic-500.woff2 +0 -0
- package/dist/fonts/noto-sans-cyrillic-700.woff2 +0 -0
- package/dist/fonts/noto-sans-cyrillic-ext-400.woff2 +0 -0
- package/dist/fonts/noto-sans-cyrillic-ext-500.woff2 +0 -0
- package/dist/fonts/noto-sans-cyrillic-ext-700.woff2 +0 -0
- package/dist/fonts/noto-sans-devanagari-400.woff2 +0 -0
- package/dist/fonts/noto-sans-devanagari-500.woff2 +0 -0
- package/dist/fonts/noto-sans-devanagari-700.woff2 +0 -0
- package/dist/fonts/noto-sans-greek-400.woff2 +0 -0
- package/dist/fonts/noto-sans-greek-500.woff2 +0 -0
- package/dist/fonts/noto-sans-greek-700.woff2 +0 -0
- package/dist/fonts/noto-sans-greek-ext-400.woff2 +0 -0
- package/dist/fonts/noto-sans-greek-ext-500.woff2 +0 -0
- package/dist/fonts/noto-sans-greek-ext-700.woff2 +0 -0
- package/dist/fonts/noto-sans-hebrew-hebrew-400.woff2 +0 -0
- package/dist/fonts/noto-sans-hebrew-hebrew-500.woff2 +0 -0
- package/dist/fonts/noto-sans-hebrew-hebrew-700.woff2 +0 -0
- package/dist/fonts/noto-sans-latin-700.woff2 +0 -0
- package/dist/fonts/noto-sans-latin-ext-400.woff2 +0 -0
- package/dist/fonts/noto-sans-latin-ext-500.woff2 +0 -0
- package/dist/fonts/noto-sans-latin-ext-700.woff2 +0 -0
- package/dist/fonts/noto-sans-thai-thai-400.woff2 +0 -0
- package/dist/fonts/noto-sans-thai-thai-500.woff2 +0 -0
- package/dist/fonts/noto-sans-thai-thai-700.woff2 +0 -0
- package/dist/fonts/noto-sans-vietnamese-400.woff2 +0 -0
- package/dist/fonts/noto-sans-vietnamese-500.woff2 +0 -0
- package/dist/fonts/noto-sans-vietnamese-700.woff2 +0 -0
- package/dist/fonts/roboto-cyrillic-400.woff2 +0 -0
- package/dist/fonts/roboto-cyrillic-500.woff2 +0 -0
- package/dist/fonts/roboto-cyrillic-700.woff2 +0 -0
- package/dist/fonts/roboto-cyrillic-ext-400.woff2 +0 -0
- package/dist/fonts/roboto-cyrillic-ext-500.woff2 +0 -0
- package/dist/fonts/roboto-cyrillic-ext-700.woff2 +0 -0
- package/dist/fonts/roboto-greek-400.woff2 +0 -0
- package/dist/fonts/roboto-greek-500.woff2 +0 -0
- package/dist/fonts/roboto-greek-700.woff2 +0 -0
- package/dist/fonts/roboto-greek-ext-400.woff2 +0 -0
- package/dist/fonts/roboto-greek-ext-500.woff2 +0 -0
- package/dist/fonts/roboto-greek-ext-700.woff2 +0 -0
- package/dist/fonts/roboto-latin-700.woff2 +0 -0
- package/dist/fonts/roboto-latin-ext-400.woff2 +0 -0
- package/dist/fonts/roboto-latin-ext-500.woff2 +0 -0
- package/dist/fonts/roboto-latin-ext-700.woff2 +0 -0
- package/dist/fonts/roboto-vietnamese-400.woff2 +0 -0
- package/dist/fonts/roboto-vietnamese-500.woff2 +0 -0
- package/dist/fonts/roboto-vietnamese-700.woff2 +0 -0
- package/dist/js/chunks/chunk-2CS6TITK.mjs +219 -0
- package/dist/js/chunks/chunk-2CS6TITK.mjs.map +7 -0
- package/dist/js/chunks/chunk-2RLBDFH4.mjs +108 -0
- package/dist/js/chunks/chunk-2RLBDFH4.mjs.map +7 -0
- package/dist/js/chunks/chunk-3L3QIYLC.mjs +85 -0
- package/dist/js/chunks/chunk-3L3QIYLC.mjs.map +7 -0
- package/dist/js/chunks/chunk-4EWGD4V2.mjs +75 -0
- package/dist/js/chunks/chunk-4EWGD4V2.mjs.map +7 -0
- package/dist/js/chunks/chunk-4IKVPCSU.mjs +7 -0
- package/dist/js/chunks/chunk-4IKVPCSU.mjs.map +7 -0
- package/dist/js/chunks/chunk-4PIXLDNJ.mjs +127 -0
- package/dist/js/chunks/chunk-4PIXLDNJ.mjs.map +7 -0
- package/dist/js/chunks/{chunk-KVJAVDBC.mjs → chunk-4QUCNFSD.mjs} +64 -113
- package/dist/js/chunks/chunk-4QUCNFSD.mjs.map +7 -0
- package/dist/js/chunks/{chunk-UETTGDLI.mjs → chunk-4TRZ2AER.mjs} +35 -41
- package/dist/js/chunks/chunk-4TRZ2AER.mjs.map +7 -0
- package/dist/js/chunks/{chunk-C6CHEWYP.mjs → chunk-5KIHWJI2.mjs} +40 -26
- package/dist/js/chunks/chunk-5KIHWJI2.mjs.map +7 -0
- package/dist/js/chunks/{chunk-L27Q6ZMI.mjs → chunk-67ZPPKXS.mjs} +20 -33
- package/dist/js/chunks/chunk-67ZPPKXS.mjs.map +7 -0
- package/dist/js/chunks/{chunk-XAEAEHIX.mjs → chunk-6FSEUFVW.mjs} +39 -26
- package/dist/js/chunks/chunk-6FSEUFVW.mjs.map +7 -0
- package/dist/js/chunks/chunk-752ADW4M.mjs +225 -0
- package/dist/js/chunks/chunk-752ADW4M.mjs.map +7 -0
- package/dist/js/chunks/{chunk-CK2XCICY.mjs → chunk-75E5EDJF.mjs} +3 -11
- package/dist/js/chunks/chunk-75E5EDJF.mjs.map +7 -0
- package/dist/js/chunks/{chunk-KHXZ2A4K.mjs → chunk-7NLUI3RR.mjs} +139 -66
- package/dist/js/chunks/chunk-7NLUI3RR.mjs.map +7 -0
- package/dist/js/chunks/chunk-7W7TV6NY.mjs +108 -0
- package/dist/js/chunks/chunk-7W7TV6NY.mjs.map +7 -0
- package/dist/js/chunks/chunk-7YQBHTK3.mjs +225 -0
- package/dist/js/chunks/chunk-7YQBHTK3.mjs.map +7 -0
- package/dist/js/chunks/chunk-7YZ5CN3V.mjs +33 -0
- package/dist/js/chunks/chunk-7YZ5CN3V.mjs.map +7 -0
- package/dist/js/chunks/chunk-AI73GJKG.mjs +28 -0
- package/dist/js/chunks/chunk-AI73GJKG.mjs.map +7 -0
- package/dist/js/chunks/{chunk-LQWUDNHZ.mjs → chunk-ANKFWNWT.mjs} +21 -45
- package/dist/js/chunks/chunk-ANKFWNWT.mjs.map +7 -0
- package/dist/js/chunks/{chunk-5CEAOLUA.mjs → chunk-B7DQFHA5.mjs} +30 -47
- package/dist/js/chunks/chunk-B7DQFHA5.mjs.map +7 -0
- package/dist/js/chunks/chunk-BIGU5RCJ.mjs +153 -0
- package/dist/js/chunks/chunk-BIGU5RCJ.mjs.map +7 -0
- package/dist/js/chunks/{chunk-VGNYF6FB.mjs → chunk-BPF3I2MN.mjs} +109 -24
- package/dist/js/chunks/chunk-BPF3I2MN.mjs.map +7 -0
- package/dist/js/chunks/chunk-CMGXGYUC.mjs +74 -0
- package/dist/js/chunks/chunk-CMGXGYUC.mjs.map +7 -0
- package/dist/js/chunks/{chunk-NUHMOAOY.mjs → chunk-CSYWKEK3.mjs} +310 -196
- package/dist/js/chunks/chunk-CSYWKEK3.mjs.map +7 -0
- package/dist/js/chunks/chunk-CZSQHXEV.mjs +227 -0
- package/dist/js/chunks/chunk-CZSQHXEV.mjs.map +7 -0
- package/dist/js/chunks/chunk-DZYVU75J.mjs +121 -0
- package/dist/js/chunks/chunk-DZYVU75J.mjs.map +7 -0
- package/dist/js/chunks/{chunk-74MXKKLN.mjs → chunk-EC26RU2D.mjs} +11 -29
- package/dist/js/chunks/chunk-EC26RU2D.mjs.map +7 -0
- package/dist/js/chunks/{chunk-WDK4T63U.mjs → chunk-EVCVFEV3.mjs} +235 -146
- package/dist/js/chunks/chunk-EVCVFEV3.mjs.map +7 -0
- package/dist/js/chunks/chunk-FCNF4GRJ.mjs +445 -0
- package/dist/js/chunks/chunk-FCNF4GRJ.mjs.map +7 -0
- package/dist/js/chunks/chunk-GCWWEZKO.mjs +342 -0
- package/dist/js/chunks/chunk-GCWWEZKO.mjs.map +7 -0
- package/dist/js/chunks/chunk-GNRSYMVH.mjs +1 -0
- package/dist/js/chunks/chunk-GVZQH2H5.mjs +54 -0
- package/dist/js/chunks/chunk-GVZQH2H5.mjs.map +7 -0
- package/dist/js/chunks/chunk-GWZ76SR4.mjs +435 -0
- package/dist/js/chunks/chunk-GWZ76SR4.mjs.map +7 -0
- package/dist/js/chunks/{chunk-PDG64UHF.mjs → chunk-ILDRRG7T.mjs} +21 -23
- package/dist/js/chunks/chunk-ILDRRG7T.mjs.map +7 -0
- package/dist/js/chunks/chunk-INLZWHLY.mjs +80 -0
- package/dist/js/chunks/chunk-INLZWHLY.mjs.map +7 -0
- package/dist/js/chunks/chunk-JUKBBN6P.mjs +175 -0
- package/dist/js/chunks/chunk-JUKBBN6P.mjs.map +7 -0
- package/dist/js/chunks/chunk-KYIEG4U3.mjs +730 -0
- package/dist/js/chunks/chunk-KYIEG4U3.mjs.map +7 -0
- package/dist/js/chunks/{chunk-BGZLF6JZ.mjs → chunk-KZPSAXIU.mjs} +142 -32
- package/dist/js/chunks/chunk-KZPSAXIU.mjs.map +7 -0
- package/dist/js/chunks/chunk-LDXCC2L3.mjs +438 -0
- package/dist/js/chunks/chunk-LDXCC2L3.mjs.map +7 -0
- package/dist/js/chunks/chunk-NAC72P7R.mjs +137 -0
- package/dist/js/chunks/chunk-NAC72P7R.mjs.map +7 -0
- package/dist/js/chunks/chunk-NBJAUGPP.mjs +244 -0
- package/dist/js/chunks/chunk-NBJAUGPP.mjs.map +7 -0
- package/dist/js/chunks/chunk-NNHVANQA.mjs +113 -0
- package/dist/js/chunks/chunk-NNHVANQA.mjs.map +7 -0
- package/dist/js/chunks/chunk-NVQ5EHCU.mjs +376 -0
- package/dist/js/chunks/chunk-NVQ5EHCU.mjs.map +7 -0
- package/dist/js/chunks/{chunk-DXGRXYYL.mjs → chunk-OP43LLIC.mjs} +28 -45
- package/dist/js/chunks/chunk-OP43LLIC.mjs.map +7 -0
- package/dist/js/chunks/chunk-OUCHKSAW.mjs +63 -0
- package/dist/js/chunks/chunk-OUCHKSAW.mjs.map +7 -0
- package/dist/js/chunks/{chunk-TSZYSW7F.mjs → chunk-OYNUDOHR.mjs} +19 -47
- package/dist/js/chunks/chunk-OYNUDOHR.mjs.map +7 -0
- package/dist/js/chunks/{chunk-UAZSDUVP.mjs → chunk-P6DRQ6KS.mjs} +36 -30
- package/dist/js/chunks/chunk-P6DRQ6KS.mjs.map +7 -0
- package/dist/js/chunks/chunk-PA7NU5AK.mjs +99 -0
- package/dist/js/chunks/chunk-PA7NU5AK.mjs.map +7 -0
- package/dist/js/chunks/chunk-QACZ6TUP.mjs +224 -0
- package/dist/js/chunks/chunk-QACZ6TUP.mjs.map +7 -0
- package/dist/js/chunks/{chunk-GJL6GCIU.mjs → chunk-QXKWVHBD.mjs} +265 -161
- package/dist/js/chunks/chunk-QXKWVHBD.mjs.map +7 -0
- package/dist/js/chunks/{chunk-X4ISMKE2.mjs → chunk-ROH2HDB4.mjs} +7 -6
- package/dist/js/chunks/chunk-ROH2HDB4.mjs.map +7 -0
- package/dist/js/chunks/chunk-S23RJ3XY.mjs +86 -0
- package/dist/js/chunks/chunk-S23RJ3XY.mjs.map +7 -0
- package/dist/js/chunks/{chunk-SMY7GJSS.mjs → chunk-SPPHF7YZ.mjs} +36 -29
- package/dist/js/chunks/chunk-SPPHF7YZ.mjs.map +7 -0
- package/dist/js/chunks/chunk-T3BNSRP3.mjs +152 -0
- package/dist/js/chunks/chunk-T3BNSRP3.mjs.map +7 -0
- package/dist/js/chunks/chunk-TFABTUAZ.mjs +108 -0
- package/dist/js/chunks/chunk-TFABTUAZ.mjs.map +7 -0
- package/dist/js/chunks/chunk-U4B3VHFS.mjs +507 -0
- package/dist/js/chunks/chunk-U4B3VHFS.mjs.map +7 -0
- package/dist/js/chunks/chunk-UGJHCHXG.mjs +341 -0
- package/dist/js/chunks/chunk-UGJHCHXG.mjs.map +7 -0
- package/dist/js/chunks/chunk-VFV75DHF.mjs +70 -0
- package/dist/js/chunks/chunk-VFV75DHF.mjs.map +7 -0
- package/dist/js/chunks/{chunk-ZX6M7SWO.mjs → chunk-VGY4M57S.mjs} +266 -120
- package/dist/js/chunks/chunk-VGY4M57S.mjs.map +7 -0
- package/dist/js/chunks/chunk-VH4BMAZS.mjs +167 -0
- package/dist/js/chunks/chunk-VH4BMAZS.mjs.map +7 -0
- package/dist/js/chunks/chunk-VJVQIXHC.mjs +123 -0
- package/dist/js/chunks/chunk-VJVQIXHC.mjs.map +7 -0
- package/dist/js/chunks/{chunk-SFI2U4YW.mjs → chunk-VMY55K2X.mjs} +76 -109
- package/dist/js/chunks/chunk-VMY55K2X.mjs.map +7 -0
- package/dist/js/chunks/{chunk-KUFHW3DS.mjs → chunk-VR3L2WN5.mjs} +11 -17
- package/dist/js/chunks/chunk-VR3L2WN5.mjs.map +7 -0
- package/dist/js/chunks/chunk-W6FAL3TI.mjs +38 -0
- package/dist/js/chunks/chunk-W6FAL3TI.mjs.map +7 -0
- package/dist/js/chunks/chunk-WU7XJ4RR.mjs +450 -0
- package/dist/js/chunks/chunk-WU7XJ4RR.mjs.map +7 -0
- package/dist/js/chunks/chunk-X7SDA2J5.mjs +116 -0
- package/dist/js/chunks/chunk-X7SDA2J5.mjs.map +7 -0
- package/dist/js/chunks/chunk-Y6H2X7ZC.mjs +209 -0
- package/dist/js/chunks/chunk-Y6H2X7ZC.mjs.map +7 -0
- package/dist/js/chunks/chunk-Y6TLRA3U.mjs +129 -0
- package/dist/js/chunks/chunk-Y6TLRA3U.mjs.map +7 -0
- package/dist/js/chunks/chunk-Z4GICXR2.mjs +190 -0
- package/dist/js/chunks/chunk-Z4GICXR2.mjs.map +7 -0
- package/dist/js/chunks/chunk-Z4OARDZ7.mjs +442 -0
- package/dist/js/chunks/chunk-Z4OARDZ7.mjs.map +7 -0
- package/dist/js/chunks/{chunk-FM5CZOUB.mjs → chunk-ZJNLAGY5.mjs} +19 -30
- package/dist/js/chunks/chunk-ZJNLAGY5.mjs.map +7 -0
- package/dist/js/chunks/chunk-ZKWUWBUB.mjs +81 -0
- package/dist/js/chunks/chunk-ZKWUWBUB.mjs.map +7 -0
- package/dist/js/chunks/chunk-ZM3XBHWV.mjs +746 -0
- package/dist/js/chunks/chunk-ZM3XBHWV.mjs.map +7 -0
- package/dist/js/chunks/chunk-ZO6ZLHFF.mjs +48 -0
- package/dist/js/chunks/chunk-ZO6ZLHFF.mjs.map +7 -0
- package/dist/js/chunks/chunk-ZVLOUDIJ.mjs +251 -0
- package/dist/js/chunks/chunk-ZVLOUDIJ.mjs.map +7 -0
- package/dist/js/expressive.cjs +10613 -4327
- package/dist/js/expressive.cjs.map +4 -4
- package/dist/js/expressive.js +10613 -4327
- package/dist/js/expressive.js.map +4 -4
- package/dist/js/expressive.min.js +23 -22
- package/dist/js/expressive.min.js.map +4 -4
- package/dist/js/expressive.mjs +182 -71
- package/dist/js/expressive.mjs.map +2 -2
- package/dist/js/internal/behaviors/bottomSheets.mjs +4 -3
- package/dist/js/internal/behaviors/copy.mjs +9 -0
- package/dist/js/internal/behaviors/copy.mjs.map +7 -0
- package/dist/js/internal/behaviors/dataTables.mjs +10 -0
- package/dist/js/internal/behaviors/dataTables.mjs.map +7 -0
- package/dist/js/internal/behaviors/dialogs.mjs +2 -2
- package/dist/js/internal/behaviors/forms.mjs +2 -2
- package/dist/js/internal/behaviors/imageCompare.mjs +8 -0
- package/dist/js/internal/behaviors/imageCompare.mjs.map +7 -0
- package/dist/js/internal/behaviors/lists.mjs +8 -0
- package/dist/js/internal/behaviors/lists.mjs.map +7 -0
- package/dist/js/internal/behaviors/paneResize.mjs +8 -0
- package/dist/js/internal/behaviors/paneResize.mjs.map +7 -0
- package/dist/js/internal/behaviors/sheetDrag.mjs +7 -2
- package/dist/js/internal/behaviors/sideSheets.mjs +4 -3
- package/dist/js/internal/behaviors/sortable.mjs +8 -0
- package/dist/js/internal/behaviors/sortable.mjs.map +7 -0
- package/dist/js/internal/behaviors/theme.mjs +8 -0
- package/dist/js/internal/behaviors/theme.mjs.map +7 -0
- package/dist/js/internal/behaviors/tour.mjs +8 -0
- package/dist/js/internal/behaviors/tour.mjs.map +7 -0
- package/dist/js/internal/behaviors/transferList.mjs +8 -0
- package/dist/js/internal/behaviors/transferList.mjs.map +7 -0
- package/dist/js/internal/components/appBar.mjs +3 -2
- package/dist/js/internal/components/autocomplete.mjs +4 -4
- package/dist/js/internal/components/backToTop.mjs +9 -0
- package/dist/js/internal/components/backToTop.mjs.map +7 -0
- package/dist/js/internal/components/barChart.mjs +5 -4
- package/dist/js/internal/components/buttonGroup.mjs +3 -2
- package/dist/js/internal/components/buttons.mjs +3 -3
- package/dist/js/internal/components/cards.mjs +3 -3
- package/dist/js/internal/components/carousel.mjs +3 -3
- package/dist/js/internal/components/cascader.mjs +10 -0
- package/dist/js/internal/components/cascader.mjs.map +7 -0
- package/dist/js/internal/components/characterCounter.mjs +3 -2
- package/dist/js/internal/components/chips.mjs +6 -5
- package/dist/js/internal/components/colorPicker.mjs +9 -0
- package/dist/js/internal/components/colorPicker.mjs.map +7 -0
- package/dist/js/internal/components/columnChart.mjs +4 -3
- package/dist/js/internal/components/commandPalette.mjs +3 -3
- package/dist/js/internal/components/confetti.mjs +3 -2
- package/dist/js/internal/components/currencyInput.mjs +9 -0
- package/dist/js/internal/components/currencyInput.mjs.map +7 -0
- package/dist/js/internal/components/datepicker.mjs +11 -8
- package/dist/js/internal/components/expandingCard.mjs +3 -3
- package/dist/js/internal/components/funnelChart.mjs +10 -0
- package/dist/js/internal/components/funnelChart.mjs.map +7 -0
- package/dist/js/internal/components/heatmapChart.mjs +4 -3
- package/dist/js/internal/components/hoverCard.mjs +9 -0
- package/dist/js/internal/components/hoverCard.mjs.map +7 -0
- package/dist/js/internal/components/index.mjs +131 -66
- package/dist/js/internal/components/inputMask.mjs +9 -0
- package/dist/js/internal/components/inputMask.mjs.map +7 -0
- package/dist/js/internal/components/keypad.mjs +3 -3
- package/dist/js/internal/components/lightbox.mjs +3 -3
- package/dist/js/internal/components/lineChart.mjs +25 -4
- package/dist/js/internal/components/loadingOverlay.mjs +9 -0
- package/dist/js/internal/components/loadingOverlay.mjs.map +7 -0
- package/dist/js/internal/components/mapView.mjs +3 -3
- package/dist/js/internal/components/menu.mjs +3 -3
- package/dist/js/internal/components/menubar.mjs +10 -0
- package/dist/js/internal/components/menubar.mjs.map +7 -0
- package/dist/js/internal/components/messageScroller.mjs +3 -3
- package/dist/js/internal/components/mixedChart.mjs +5 -4
- package/dist/js/internal/components/navigationRail.mjs +3 -2
- package/dist/js/internal/components/particles.mjs +3 -2
- package/dist/js/internal/components/pieChart.mjs +4 -3
- package/dist/js/internal/components/pullToRefresh.mjs +9 -0
- package/dist/js/internal/components/pullToRefresh.mjs.map +7 -0
- package/dist/js/internal/components/questionnaire.mjs +3 -3
- package/dist/js/internal/components/radarChart.mjs +4 -3
- package/dist/js/internal/components/radialChart.mjs +4 -3
- package/dist/js/internal/components/registry.mjs +59 -41
- package/dist/js/internal/components/richTextEditor.mjs +3 -3
- package/dist/js/internal/components/sankeyChart.mjs +10 -0
- package/dist/js/internal/components/sankeyChart.mjs.map +7 -0
- package/dist/js/internal/components/scatterChart.mjs +10 -0
- package/dist/js/internal/components/scatterChart.mjs.map +7 -0
- package/dist/js/internal/components/scrollspy.mjs +3 -2
- package/dist/js/internal/components/select.mjs +4 -4
- package/dist/js/internal/components/showMore.mjs +9 -0
- package/dist/js/internal/components/showMore.mjs.map +7 -0
- package/dist/js/internal/components/slider.mjs +3 -3
- package/dist/js/internal/components/snackbar.mjs +2 -2
- package/dist/js/internal/components/swipeActions.mjs +9 -0
- package/dist/js/internal/components/swipeActions.mjs.map +7 -0
- package/dist/js/internal/components/tabs.mjs +3 -4
- package/dist/js/internal/components/timepicker.mjs +5 -4
- package/dist/js/internal/components/tooltip.mjs +3 -3
- package/dist/js/internal/components/treeSelect.mjs +13 -0
- package/dist/js/internal/components/treeSelect.mjs.map +7 -0
- package/dist/js/internal/components/treemapChart.mjs +10 -0
- package/dist/js/internal/components/treemapChart.mjs.map +7 -0
- package/dist/js/internal/core/component.mjs +2 -1
- package/dist/js/internal/core/formControl.mjs +12 -0
- package/dist/js/internal/core/formControl.mjs.map +7 -0
- package/dist/js/internal/core/spring.mjs +11 -0
- package/dist/js/internal/core/spring.mjs.map +7 -0
- package/dist/js/internal/core/utils.mjs +11 -3
- package/dist/js/internal/plugins/dockedDisplayPlugin.mjs +2 -2
- package/dist/js/internal/plugins/modalDisplayPlugin.mjs +13 -0
- package/dist/js/internal/plugins/modalDisplayPlugin.mjs.map +7 -0
- package/dist/js/modular.mjs +173 -71
- package/dist/types/behaviors/bottomSheets.d.ts +19 -3
- package/dist/types/behaviors/copy.d.ts +18 -0
- package/dist/types/behaviors/dataTables.d.ts +129 -0
- package/dist/types/behaviors/dialogs.d.ts +27 -1
- package/dist/types/behaviors/forms.d.ts +68 -2
- package/dist/types/behaviors/imageCompare.d.ts +12 -0
- package/dist/types/behaviors/lists.d.ts +12 -0
- package/dist/types/behaviors/paneResize.d.ts +29 -0
- package/dist/types/behaviors/sheetDrag.d.ts +18 -0
- package/dist/types/behaviors/sideSheets.d.ts +1 -1
- package/dist/types/behaviors/sortable.d.ts +28 -0
- package/dist/types/behaviors/theme.d.ts +22 -0
- package/dist/types/behaviors/tour.d.ts +36 -0
- package/dist/types/behaviors/transferList.d.ts +51 -0
- package/dist/types/components/appBar.d.ts +5 -6
- package/dist/types/components/autocomplete.d.ts +91 -17
- package/dist/types/components/backToTop.d.ts +36 -0
- package/dist/types/components/barChart.d.ts +3 -6
- package/dist/types/components/buttonGroup.d.ts +2 -4
- package/dist/types/components/buttons.d.ts +5 -5
- package/dist/types/components/cards.d.ts +3 -16
- package/dist/types/components/carousel.d.ts +9 -15
- package/dist/types/components/cascader.d.ts +130 -0
- package/dist/types/components/characterCounter.d.ts +2 -15
- package/dist/types/components/chips.d.ts +65 -19
- package/dist/types/components/colorPicker.d.ts +42 -0
- package/dist/types/components/columnChart.d.ts +23 -10
- package/dist/types/components/commandPalette.d.ts +11 -16
- package/dist/types/components/confetti.d.ts +2 -4
- package/dist/types/components/currencyInput.d.ts +59 -0
- package/dist/types/components/datepicker.d.ts +56 -32
- package/dist/types/components/expandingCard.d.ts +4 -6
- package/dist/types/components/funnelChart.d.ts +38 -0
- package/dist/types/components/heatmapChart.d.ts +39 -8
- package/dist/types/components/hoverCard.d.ts +58 -0
- package/dist/types/components/index.d.ts +16 -1
- package/dist/types/components/inputMask.d.ts +30 -0
- package/dist/types/components/keypad.d.ts +38 -6
- package/dist/types/components/lightbox.d.ts +14 -20
- package/dist/types/components/lineChart.d.ts +172 -10
- package/dist/types/components/loadingOverlay.d.ts +42 -0
- package/dist/types/components/mapView.d.ts +26 -17
- package/dist/types/components/menu.d.ts +60 -22
- package/dist/types/components/menubar.d.ts +37 -0
- package/dist/types/components/messageScroller.d.ts +2 -14
- package/dist/types/components/mixedChart.d.ts +15 -6
- package/dist/types/components/navigationRail.d.ts +16 -5
- package/dist/types/components/particles.d.ts +8 -4
- package/dist/types/components/pieChart.d.ts +32 -7
- package/dist/types/components/pullToRefresh.d.ts +80 -0
- package/dist/types/components/questionnaire.d.ts +58 -16
- package/dist/types/components/radarChart.d.ts +10 -6
- package/dist/types/components/radialChart.d.ts +58 -7
- package/dist/types/components/registry.d.ts +73 -3
- package/dist/types/components/richTextEditor.d.ts +6 -14
- package/dist/types/components/sankeyChart.d.ts +72 -0
- package/dist/types/components/scatterChart.d.ts +102 -0
- package/dist/types/components/scrollspy.d.ts +3 -5
- package/dist/types/components/select.d.ts +43 -30
- package/dist/types/components/showMore.d.ts +51 -0
- package/dist/types/components/slider.d.ts +3 -15
- package/dist/types/components/snackbar.d.ts +61 -0
- package/dist/types/components/swipeActions.d.ts +81 -0
- package/dist/types/components/tabs.d.ts +89 -27
- package/dist/types/components/timepicker.d.ts +113 -21
- package/dist/types/components/tooltip.d.ts +56 -20
- package/dist/types/components/treeSelect.d.ts +106 -0
- package/dist/types/components/treemapChart.d.ts +56 -0
- package/dist/types/core/component.d.ts +43 -25
- package/dist/types/core/formControl.d.ts +21 -0
- package/dist/types/core/spring.d.ts +20 -0
- package/dist/types/core/utils.d.ts +85 -72
- package/dist/types/modular.d.ts +33 -1
- package/dist/types/plugins/dockedDisplayPlugin.d.ts +10 -8
- package/dist/types/plugins/modalDisplayPlugin.d.ts +32 -0
- package/package.json +10 -8
- package/src/sass/README.md +27 -18
- package/src/sass/abstracts/_elevation.scss +13 -7
- package/src/sass/abstracts/_index.scss +1 -0
- package/src/sass/abstracts/_mixins.scss +422 -36
- package/src/sass/abstracts/_spring.scss +63 -0
- package/src/sass/abstracts/_variables.scss +39 -21
- package/src/sass/base/_fonts.scss +61 -48
- package/src/sass/base/_global.scss +104 -24
- package/src/sass/base/_index.scss +2 -0
- package/src/sass/base/_normalize.scss +59 -114
- package/src/sass/base/_print.scss +21 -0
- package/src/sass/base/_prose.scss +68 -0
- package/src/sass/base/_typography.scss +9 -5
- package/src/sass/components/_accordion.scss +9 -16
- package/src/sass/components/_alert.scss +102 -0
- package/src/sass/components/_aura.scss +8 -3
- package/src/sass/components/_avatar.scss +3 -3
- package/src/sass/components/_back-to-top.scss +38 -0
- package/src/sass/components/_badges.scss +6 -5
- package/src/sass/components/_bar-chart.scss +41 -19
- package/src/sass/components/_bottom-sheet.scss +44 -16
- package/src/sass/components/_breadcrumb.scss +8 -1
- package/src/sass/components/_button-groups.scss +15 -25
- package/src/sass/components/_buttons.scss +156 -63
- package/src/sass/components/_calendar.scss +246 -0
- package/src/sass/components/_cards.scss +36 -44
- package/src/sass/components/_carousel.scss +27 -103
- package/src/sass/components/_cascader.scss +142 -0
- package/src/sass/components/_chips.scss +36 -46
- package/src/sass/components/_column-chart.scss +19 -12
- package/src/sass/components/_command-palette.scss +4 -7
- package/src/sass/components/_confetti.scss +0 -2
- package/src/sass/components/_countdown.scss +1 -1
- package/src/sass/components/_data-table.scss +162 -25
- package/src/sass/components/_datepicker.scss +54 -40
- package/src/sass/components/_description-list.scss +85 -0
- package/src/sass/components/_dialog.scss +42 -41
- package/src/sass/components/_docked-display.scss +1 -3
- package/src/sass/components/_drag-handle.scss +16 -20
- package/src/sass/components/_expanding-card.scss +20 -9
- package/src/sass/components/_fab-menu.scss +44 -32
- package/src/sass/components/_funnel-chart.scss +124 -0
- package/src/sass/components/_heatmap-chart.scss +111 -22
- package/src/sass/components/_icon-buttons.scss +7 -7
- package/src/sass/components/_icons-material-design.scss +2 -2
- package/src/sass/components/_image-compare.scss +108 -0
- package/src/sass/components/_index.scss +20 -0
- package/src/sass/components/_keypad.scss +39 -19
- package/src/sass/components/_kpi.scss +6 -11
- package/src/sass/components/_lightbox.scss +24 -13
- package/src/sass/components/_line-chart.scss +16 -2
- package/src/sass/components/_list.scss +59 -14
- package/src/sass/components/_loading-indicator.scss +1 -0
- package/src/sass/components/_loading-overlay.scss +105 -0
- package/src/sass/components/_map.scss +33 -11
- package/src/sass/components/_marquee.scss +3 -2
- package/src/sass/components/_mega-menu.scss +137 -0
- package/src/sass/components/_menu.scss +143 -123
- package/src/sass/components/_menubar.scss +59 -0
- package/src/sass/components/_message-scroller.scss +2 -2
- package/src/sass/components/_message.scss +3 -3
- package/src/sass/components/_mixed-chart.scss +37 -9
- package/src/sass/components/_modal-display.scss +21 -0
- package/src/sass/components/_navbar.scss +34 -20
- package/src/sass/components/_navigation-bar.scss +15 -77
- package/src/sass/components/_navigation-rail.scss +151 -92
- package/src/sass/components/_org-chart.scss +192 -0
- package/src/sass/components/_page-footer.scss +1 -1
- package/src/sass/components/_pagination.scss +6 -13
- package/src/sass/components/_panes.scss +32 -26
- package/src/sass/components/_particles.scss +0 -2
- package/src/sass/components/_pie-chart.scss +91 -11
- package/src/sass/components/_popover.scss +18 -5
- package/src/sass/components/_progress.scss +152 -31
- package/src/sass/components/_pull-to-refresh.scss +90 -0
- package/src/sass/components/_questionnaire.scss +74 -3
- package/src/sass/components/_radar-chart.scss +38 -10
- package/src/sass/components/_radial-chart.scss +113 -5
- package/src/sass/components/_rich-text-editor.scss +2 -2
- package/src/sass/components/_sankey-chart.scss +114 -0
- package/src/sass/components/_scatter-chart.scss +153 -0
- package/src/sass/components/_scrim.scss +0 -2
- package/src/sass/components/_scrollspy.scss +0 -2
- package/src/sass/components/_search.scss +26 -22
- package/src/sass/components/_show-more.scss +8 -0
- package/src/sass/components/_side-sheet.scss +23 -37
- package/src/sass/components/_skeleton.scss +2 -4
- package/src/sass/components/_snackbar.scss +27 -21
- package/src/sass/components/_split-button.scss +5 -5
- package/src/sass/components/_stat.scss +3 -8
- package/src/sass/components/_stepper.scss +1 -1
- package/src/sass/components/_swipe-actions.scss +71 -0
- package/src/sass/components/_tabs.scss +51 -32
- package/src/sass/components/_timeline.scss +12 -12
- package/src/sass/components/_timepicker.scss +109 -78
- package/src/sass/components/_toolbar.scss +35 -43
- package/src/sass/components/_tooltip.scss +21 -12
- package/src/sass/components/_tour.scss +89 -0
- package/src/sass/components/_transfer-list.scss +73 -0
- package/src/sass/components/_transitions.scss +4 -4
- package/src/sass/components/_tree.scss +3 -16
- package/src/sass/components/_treemap-chart.scss +122 -0
- package/src/sass/components/forms/_checkboxes.scss +106 -24
- package/src/sass/components/forms/_color-picker.scss +135 -0
- package/src/sass/components/forms/_color-swatches.scss +85 -0
- package/src/sass/components/forms/_drop-zone.scss +15 -9
- package/src/sass/components/forms/_fieldset.scss +7 -7
- package/src/sass/components/forms/_file-input.scss +6 -8
- package/src/sass/components/forms/_index.scss +3 -1
- package/src/sass/components/forms/_input-fields.scss +254 -90
- package/src/sass/components/forms/_radio-buttons.scss +33 -94
- package/src/sass/components/forms/_rating.scss +2 -32
- package/src/sass/components/forms/_select.scss +199 -20
- package/src/sass/components/forms/_slider.scss +91 -94
- package/src/sass/components/forms/_switches.scss +53 -164
- package/src/sass/custom.scss +10 -1
- package/src/sass/expressive.scss +3 -63
- package/src/sass/tokens/_contrast.scss +94 -0
- package/src/sass/tokens/_elevation.scss +16 -0
- package/src/sass/tokens/_index.scss +5 -0
- package/src/sass/tokens/_motion.scss +109 -0
- package/src/sass/tokens/_reference.scss +72 -141
- package/src/sass/tokens/_shape.scss +38 -0
- package/src/sass/tokens/_stacking.scss +27 -0
- package/src/sass/tokens/_state.scss +0 -2
- package/src/sass/tokens/_theme.scss +10 -1
- package/src/sass/tokens/_vibrant.scss +2 -5
- package/src/sass/utilities/_defer-render.scss +17 -0
- package/src/sass/utilities/_helpers.scss +183 -26
- package/src/sass/utilities/_index.scss +1 -0
- package/src/sass/utilities/_scroll-area.scss +0 -2
- package/src/sass/utilities/_spacing.scss +52 -34
- package/src/sass/utilities/_typescale.scss +8 -1
- package/src/sass/utilities/_visibility.scss +47 -76
- package/src/sass/utilities/_z-depth.scss +7 -4
- package/dist/js/chunks/chunk-33QVDDGR.mjs +0 -270
- package/dist/js/chunks/chunk-33QVDDGR.mjs.map +0 -7
- package/dist/js/chunks/chunk-45FER6RI.mjs +0 -59
- package/dist/js/chunks/chunk-45FER6RI.mjs.map +0 -7
- package/dist/js/chunks/chunk-5CEAOLUA.mjs.map +0 -7
- package/dist/js/chunks/chunk-6VATUZC6.mjs +0 -295
- package/dist/js/chunks/chunk-6VATUZC6.mjs.map +0 -7
- package/dist/js/chunks/chunk-74MXKKLN.mjs.map +0 -7
- package/dist/js/chunks/chunk-AIURVCG6.mjs +0 -55
- package/dist/js/chunks/chunk-AIURVCG6.mjs.map +0 -7
- package/dist/js/chunks/chunk-BGZLF6JZ.mjs.map +0 -7
- package/dist/js/chunks/chunk-C6CHEWYP.mjs.map +0 -7
- package/dist/js/chunks/chunk-CK2XCICY.mjs.map +0 -7
- package/dist/js/chunks/chunk-CXXM2L4F.mjs +0 -344
- package/dist/js/chunks/chunk-CXXM2L4F.mjs.map +0 -7
- package/dist/js/chunks/chunk-DXGRXYYL.mjs.map +0 -7
- package/dist/js/chunks/chunk-FM5CZOUB.mjs.map +0 -7
- package/dist/js/chunks/chunk-GJL6GCIU.mjs.map +0 -7
- package/dist/js/chunks/chunk-K3HZMFMD.mjs +0 -135
- package/dist/js/chunks/chunk-K3HZMFMD.mjs.map +0 -7
- package/dist/js/chunks/chunk-KHXZ2A4K.mjs.map +0 -7
- package/dist/js/chunks/chunk-KQACNQ22.mjs +0 -7
- package/dist/js/chunks/chunk-KQACNQ22.mjs.map +0 -7
- package/dist/js/chunks/chunk-KUFHW3DS.mjs.map +0 -7
- package/dist/js/chunks/chunk-KVJAVDBC.mjs.map +0 -7
- package/dist/js/chunks/chunk-L27Q6ZMI.mjs.map +0 -7
- package/dist/js/chunks/chunk-LQWUDNHZ.mjs.map +0 -7
- package/dist/js/chunks/chunk-M372EDXD.mjs +0 -322
- package/dist/js/chunks/chunk-M372EDXD.mjs.map +0 -7
- package/dist/js/chunks/chunk-M3MURWMB.mjs +0 -82
- package/dist/js/chunks/chunk-M3MURWMB.mjs.map +0 -7
- package/dist/js/chunks/chunk-NUHMOAOY.mjs.map +0 -7
- package/dist/js/chunks/chunk-OWG3LMUL.mjs +0 -169
- package/dist/js/chunks/chunk-OWG3LMUL.mjs.map +0 -7
- package/dist/js/chunks/chunk-PD6HYHAE.mjs +0 -48
- package/dist/js/chunks/chunk-PD6HYHAE.mjs.map +0 -7
- package/dist/js/chunks/chunk-PDG64UHF.mjs.map +0 -7
- package/dist/js/chunks/chunk-PO3AXVR3.mjs +0 -546
- package/dist/js/chunks/chunk-PO3AXVR3.mjs.map +0 -7
- package/dist/js/chunks/chunk-QYGK36OG.mjs +0 -181
- package/dist/js/chunks/chunk-QYGK36OG.mjs.map +0 -7
- package/dist/js/chunks/chunk-SFI2U4YW.mjs.map +0 -7
- package/dist/js/chunks/chunk-SMY7GJSS.mjs.map +0 -7
- package/dist/js/chunks/chunk-TCCA2HDG.mjs +0 -414
- package/dist/js/chunks/chunk-TCCA2HDG.mjs.map +0 -7
- package/dist/js/chunks/chunk-TSZYSW7F.mjs.map +0 -7
- package/dist/js/chunks/chunk-UAZSDUVP.mjs.map +0 -7
- package/dist/js/chunks/chunk-UBRZZWRA.mjs +0 -127
- package/dist/js/chunks/chunk-UBRZZWRA.mjs.map +0 -7
- package/dist/js/chunks/chunk-UCOE7ZDL.mjs +0 -287
- package/dist/js/chunks/chunk-UCOE7ZDL.mjs.map +0 -7
- package/dist/js/chunks/chunk-UETTGDLI.mjs.map +0 -7
- package/dist/js/chunks/chunk-UNCRDLP6.mjs +0 -136
- package/dist/js/chunks/chunk-UNCRDLP6.mjs.map +0 -7
- package/dist/js/chunks/chunk-VGNYF6FB.mjs.map +0 -7
- package/dist/js/chunks/chunk-VGPGBNGL.mjs +0 -68
- package/dist/js/chunks/chunk-VGPGBNGL.mjs.map +0 -7
- package/dist/js/chunks/chunk-VKAUVTQY.mjs +0 -1
- package/dist/js/chunks/chunk-VM4FTS7L.mjs +0 -48
- package/dist/js/chunks/chunk-VM4FTS7L.mjs.map +0 -7
- package/dist/js/chunks/chunk-WDK4T63U.mjs.map +0 -7
- package/dist/js/chunks/chunk-WOCCTVUF.mjs +0 -185
- package/dist/js/chunks/chunk-WOCCTVUF.mjs.map +0 -7
- package/dist/js/chunks/chunk-WQYN5L4E.mjs +0 -107
- package/dist/js/chunks/chunk-WQYN5L4E.mjs.map +0 -7
- package/dist/js/chunks/chunk-X4ISMKE2.mjs.map +0 -7
- package/dist/js/chunks/chunk-XAEAEHIX.mjs.map +0 -7
- package/dist/js/chunks/chunk-ZX6M7SWO.mjs.map +0 -7
- /package/dist/js/chunks/{chunk-VKAUVTQY.mjs.map → chunk-GNRSYMVH.mjs.map} +0 -0
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import {
|
|
2
|
+
restoreAttribute
|
|
3
|
+
} from "./chunk-ZVLOUDIJ.mjs";
|
|
4
|
+
|
|
5
|
+
// src/ts/core/formControl.ts
|
|
6
|
+
var formAssociated = () => typeof ElementInternals !== "undefined" && "setFormValue" in ElementInternals.prototype;
|
|
7
|
+
var mirrors = /* @__PURE__ */ new WeakMap();
|
|
8
|
+
function define(tag) {
|
|
9
|
+
var _a;
|
|
10
|
+
if (customElements.get(tag)) return;
|
|
11
|
+
customElements.define(tag, (_a = class extends HTMLElement {
|
|
12
|
+
constructor() {
|
|
13
|
+
super(...arguments);
|
|
14
|
+
this.internals = this.attachInternals();
|
|
15
|
+
this.onFormReset = null;
|
|
16
|
+
}
|
|
17
|
+
formResetCallback() {
|
|
18
|
+
this.onFormReset?.();
|
|
19
|
+
}
|
|
20
|
+
get form() {
|
|
21
|
+
return this.internals.form;
|
|
22
|
+
}
|
|
23
|
+
get name() {
|
|
24
|
+
return this.getAttribute("name") ?? "";
|
|
25
|
+
}
|
|
26
|
+
get labels() {
|
|
27
|
+
return this._input?.labels;
|
|
28
|
+
}
|
|
29
|
+
get validity() {
|
|
30
|
+
return this.internals.validity;
|
|
31
|
+
}
|
|
32
|
+
get validationMessage() {
|
|
33
|
+
return this.internals.validationMessage;
|
|
34
|
+
}
|
|
35
|
+
get willValidate() {
|
|
36
|
+
return this.internals.willValidate;
|
|
37
|
+
}
|
|
38
|
+
checkValidity() {
|
|
39
|
+
return this.internals.checkValidity();
|
|
40
|
+
}
|
|
41
|
+
reportValidity() {
|
|
42
|
+
return this.internals.reportValidity();
|
|
43
|
+
}
|
|
44
|
+
focus(options) {
|
|
45
|
+
this._input?.focus(options);
|
|
46
|
+
}
|
|
47
|
+
get _input() {
|
|
48
|
+
return this.querySelector(":scope > input");
|
|
49
|
+
}
|
|
50
|
+
}, _a.formAssociated = true, _a));
|
|
51
|
+
}
|
|
52
|
+
function copyState(control, input) {
|
|
53
|
+
["disabled", "form"].forEach((name) => restoreAttribute(control, name, input.getAttribute(name)));
|
|
54
|
+
}
|
|
55
|
+
function wrapInControl(tag, input, onChange) {
|
|
56
|
+
define(tag);
|
|
57
|
+
const control = document.createElement(tag);
|
|
58
|
+
control.style.display = "contents";
|
|
59
|
+
control.setAttribute("name", input.getAttribute("name") ?? "");
|
|
60
|
+
input.removeAttribute("name");
|
|
61
|
+
input.replaceWith(control);
|
|
62
|
+
control.append(input);
|
|
63
|
+
copyState(control, input);
|
|
64
|
+
const mirror = new MutationObserver(() => (copyState(control, input), onChange()));
|
|
65
|
+
mirror.observe(input, { attributeFilter: ["disabled", "readonly", "form"] });
|
|
66
|
+
mirrors.set(control, mirror);
|
|
67
|
+
return control;
|
|
68
|
+
}
|
|
69
|
+
function unwrapControl(control, input) {
|
|
70
|
+
mirrors.get(control)?.disconnect();
|
|
71
|
+
control.replaceWith(...control.childNodes);
|
|
72
|
+
input.setAttribute("name", control.getAttribute("name") ?? "");
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
export {
|
|
76
|
+
formAssociated,
|
|
77
|
+
wrapInControl,
|
|
78
|
+
unwrapControl
|
|
79
|
+
};
|
|
80
|
+
//# sourceMappingURL=chunk-INLZWHLY.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/ts/core/formControl.ts"],
|
|
4
|
+
"sourcesContent": ["import { restoreAttribute } from './utils';\n\n/**\n * A form-associated element that wraps a text input and submits for it, so\n * the browser handles the field's values, reset, validity and disabled state.\n * Chips and Cascader each define one under their own tag.\n */\nexport interface FormControl extends HTMLElement {\n readonly internals: ElementInternals;\n /** Called for a form reset no listener canceled, in the same task. */\n onFormReset: (() => void) | null;\n}\n\n/** Whether the browser has form-associated custom elements. jsdom does not. */\nexport const formAssociated = () => typeof ElementInternals !== 'undefined' && 'setFormValue' in ElementInternals.prototype;\n\n/** Each control's observer of its input's attributes. */\nconst mirrors = new WeakMap<FormControl, MutationObserver>();\n\n/**\n * Defines `tag` on first use, so importing the bundle needs no DOM, and only\n * once, so a second copy of the bundle on the page uses the first one's. The\n * form sees the control, so it answers what a field does; its anchor and\n * focus are the input it wraps.\n */\nfunction define(tag: string) {\n if (customElements.get(tag)) return;\n customElements.define(tag, class extends HTMLElement {\n static formAssociated = true;\n readonly internals = this.attachInternals();\n onFormReset: (() => void) | null = null;\n formResetCallback() { this.onFormReset?.(); }\n get form() { return this.internals.form; }\n get name() { return this.getAttribute('name') ?? ''; }\n get labels() { return this._input?.labels; }\n get validity() { return this.internals.validity; }\n get validationMessage() { return this.internals.validationMessage; }\n get willValidate() { return this.internals.willValidate; }\n checkValidity() { return this.internals.checkValidity(); }\n reportValidity() { return this.internals.reportValidity(); }\n focus(options?: FocusOptions) { this._input?.focus(options); }\n private get _input() { return this.querySelector<HTMLInputElement>(':scope > input'); }\n });\n}\n\n/** The control is disabled with the input, or with a fieldset by itself, and submits to the input's form. */\nfunction copyState(control: FormControl, input: HTMLInputElement) {\n ['disabled', 'form'].forEach((name) => restoreAttribute(control, name, input.getAttribute(name)));\n}\n\n/**\n * Wraps `input` in a `tag` control that takes its name. `display: contents`\n * lays the input out as a child of the field still. The control follows the\n * input's disabled and form attributes, and `onChange` runs after the input's\n * disabled, readonly or form attribute changes.\n */\nexport function wrapInControl(tag: string, input: HTMLInputElement, onChange: () => void): FormControl {\n define(tag);\n const control = document.createElement(tag) as FormControl;\n control.style.display = 'contents';\n control.setAttribute('name', input.getAttribute('name') ?? '');\n input.removeAttribute('name');\n input.replaceWith(control);\n control.append(input);\n copyState(control, input);\n const mirror = new MutationObserver(() => (copyState(control, input), onChange()));\n mirror.observe(input, { attributeFilter: ['disabled', 'readonly', 'form'] });\n mirrors.set(control, mirror);\n return control;\n}\n\n/** Unwraps the control, with whatever else went in it, and gives `input` its name back. */\nexport function unwrapControl(control: FormControl, input: HTMLInputElement) {\n mirrors.get(control)?.disconnect();\n control.replaceWith(...control.childNodes);\n input.setAttribute('name', control.getAttribute('name') ?? '');\n}\n"],
|
|
5
|
+
"mappings": ";;;;;AAcO,IAAM,iBAAiB,MAAM,OAAO,qBAAqB,eAAe,kBAAkB,iBAAiB;AAGlH,IAAM,UAAU,oBAAI,QAAuC;AAQ3D,SAAS,OAAO,KAAa;AAzB7B;AA0BE,MAAI,eAAe,IAAI,GAAG,EAAG;AAC7B,iBAAe,OAAO,MAAK,mBAAc,YAAY;AAAA,IAA1B;AAAA;AAEzB,WAAS,YAAY,KAAK,gBAAgB;AAC1C,yBAAmC;AAAA;AAAA,IACnC,oBAAoB;AAAE,WAAK,cAAc;AAAA,IAAG;AAAA,IAC5C,IAAI,OAAO;AAAE,aAAO,KAAK,UAAU;AAAA,IAAM;AAAA,IACzC,IAAI,OAAO;AAAE,aAAO,KAAK,aAAa,MAAM,KAAK;AAAA,IAAI;AAAA,IACrD,IAAI,SAAS;AAAE,aAAO,KAAK,QAAQ;AAAA,IAAQ;AAAA,IAC3C,IAAI,WAAW;AAAE,aAAO,KAAK,UAAU;AAAA,IAAU;AAAA,IACjD,IAAI,oBAAoB;AAAE,aAAO,KAAK,UAAU;AAAA,IAAmB;AAAA,IACnE,IAAI,eAAe;AAAE,aAAO,KAAK,UAAU;AAAA,IAAc;AAAA,IACzD,gBAAgB;AAAE,aAAO,KAAK,UAAU,cAAc;AAAA,IAAG;AAAA,IACzD,iBAAiB;AAAE,aAAO,KAAK,UAAU,eAAe;AAAA,IAAG;AAAA,IAC3D,MAAM,SAAwB;AAAE,WAAK,QAAQ,MAAM,OAAO;AAAA,IAAG;AAAA,IAC7D,IAAY,SAAS;AAAE,aAAO,KAAK,cAAgC,gBAAgB;AAAA,IAAG;AAAA,EACxF,GAf2B,GAClB,iBAAiB,MADC,GAe1B;AACH;AAGA,SAAS,UAAU,SAAsB,OAAyB;AAChE,GAAC,YAAY,MAAM,EAAE,QAAQ,CAAC,SAAS,iBAAiB,SAAS,MAAM,MAAM,aAAa,IAAI,CAAC,CAAC;AAClG;AAQO,SAAS,cAAc,KAAa,OAAyB,UAAmC;AACrG,SAAO,GAAG;AACV,QAAM,UAAU,SAAS,cAAc,GAAG;AAC1C,UAAQ,MAAM,UAAU;AACxB,UAAQ,aAAa,QAAQ,MAAM,aAAa,MAAM,KAAK,EAAE;AAC7D,QAAM,gBAAgB,MAAM;AAC5B,QAAM,YAAY,OAAO;AACzB,UAAQ,OAAO,KAAK;AACpB,YAAU,SAAS,KAAK;AACxB,QAAM,SAAS,IAAI,iBAAiB,OAAO,UAAU,SAAS,KAAK,GAAG,SAAS,EAAE;AACjF,SAAO,QAAQ,OAAO,EAAE,iBAAiB,CAAC,YAAY,YAAY,MAAM,EAAE,CAAC;AAC3E,UAAQ,IAAI,SAAS,MAAM;AAC3B,SAAO;AACT;AAGO,SAAS,cAAc,SAAsB,OAAyB;AAC3E,UAAQ,IAAI,OAAO,GAAG,WAAW;AACjC,UAAQ,YAAY,GAAG,QAAQ,UAAU;AACzC,QAAM,aAAa,QAAQ,QAAQ,aAAa,MAAM,KAAK,EAAE;AAC/D;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
import {
|
|
2
|
+
animatePath,
|
|
3
|
+
springPath,
|
|
4
|
+
springToken
|
|
5
|
+
} from "./chunk-W6FAL3TI.mjs";
|
|
6
|
+
import {
|
|
7
|
+
Utils
|
|
8
|
+
} from "./chunk-ZVLOUDIJ.mjs";
|
|
9
|
+
|
|
10
|
+
// src/ts/behaviors/sheetDrag.ts
|
|
11
|
+
var REDUCED = "(prefers-reduced-motion: reduce)";
|
|
12
|
+
var DISMISS_DISTANCE = 96;
|
|
13
|
+
var DISMISS_VELOCITY = 0.5;
|
|
14
|
+
var FLICK_TIMEOUT = 100;
|
|
15
|
+
var DRAG_SLOP = 4;
|
|
16
|
+
var flickVelocity = (held) => Date.now() - held.lastT < FLICK_TIMEOUT ? held.velocity : 0;
|
|
17
|
+
var dismisses = (held, velocity) => held.shift * held.direction > DISMISS_DISTANCE || velocity * held.direction > DISMISS_VELOCITY;
|
|
18
|
+
var springs = /* @__PURE__ */ new WeakMap();
|
|
19
|
+
function catchSpring(dialog, axis) {
|
|
20
|
+
const end = springs.get(dialog);
|
|
21
|
+
if (!end) return 0;
|
|
22
|
+
const [x, y = "0"] = getComputedStyle(dialog).translate.split(" ");
|
|
23
|
+
end(false);
|
|
24
|
+
return parseFloat(axis === "x" ? x : y) || 0;
|
|
25
|
+
}
|
|
26
|
+
var installed = /* @__PURE__ */ new Set();
|
|
27
|
+
function installSheetDrag(config) {
|
|
28
|
+
if (installed.has(config.selector)) return;
|
|
29
|
+
installed.add(config.selector);
|
|
30
|
+
const coord = (event) => config.axis === "x" ? event.clientX : event.clientY;
|
|
31
|
+
let observer;
|
|
32
|
+
let drag = null;
|
|
33
|
+
const sheetFor = (event) => {
|
|
34
|
+
const dialog = Utils.closestInPath(event, config.selector);
|
|
35
|
+
return dialog instanceof HTMLDialogElement ? dialog : null;
|
|
36
|
+
};
|
|
37
|
+
const reset = (dialog) => {
|
|
38
|
+
dialog.style.transition = "";
|
|
39
|
+
dialog.style.setProperty(config.property, "0px");
|
|
40
|
+
};
|
|
41
|
+
const onDown = (event) => {
|
|
42
|
+
if (!event.isPrimary) return;
|
|
43
|
+
if (event.pointerType === "mouse" && event.button !== 0) return;
|
|
44
|
+
onCancel();
|
|
45
|
+
config.onPress?.();
|
|
46
|
+
const dialog = sheetFor(event);
|
|
47
|
+
if (!dialog?.open || !config.inHandle(event, dialog)) return;
|
|
48
|
+
dialog.style.transition = "none";
|
|
49
|
+
const at = coord(event);
|
|
50
|
+
const caught = catchSpring(dialog, config.axis);
|
|
51
|
+
dialog.style.setProperty(config.property, `${caught}px`);
|
|
52
|
+
drag = {
|
|
53
|
+
dialog,
|
|
54
|
+
pointerId: event.pointerId,
|
|
55
|
+
direction: config.direction(dialog),
|
|
56
|
+
start: at - caught,
|
|
57
|
+
last: at,
|
|
58
|
+
lastT: Date.now(),
|
|
59
|
+
velocity: 0,
|
|
60
|
+
shift: caught
|
|
61
|
+
};
|
|
62
|
+
const watch = { childList: true, subtree: true, attributes: true, attributeFilter: ["open"], attributeOldValue: true };
|
|
63
|
+
const root = dialog.getRootNode();
|
|
64
|
+
observer.observe(document, watch);
|
|
65
|
+
if (root !== document) observer.observe(root, watch);
|
|
66
|
+
};
|
|
67
|
+
const onMove = (event) => {
|
|
68
|
+
if (!drag || drag.pointerId !== event.pointerId) return;
|
|
69
|
+
if (!drag.dialog.open || !drag.dialog.isConnected) {
|
|
70
|
+
onCancel();
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
const at = coord(event);
|
|
74
|
+
const delta = at - drag.start;
|
|
75
|
+
drag.shift = drag.direction === 1 ? Math.max(0, delta) : Math.min(0, delta);
|
|
76
|
+
if (at !== drag.last) {
|
|
77
|
+
const now = Date.now();
|
|
78
|
+
drag.velocity = (at - drag.last) / Math.max(1, now - drag.lastT);
|
|
79
|
+
drag.last = at;
|
|
80
|
+
drag.lastT = now;
|
|
81
|
+
}
|
|
82
|
+
drag.dialog.style.setProperty(config.property, `${drag.shift}px`);
|
|
83
|
+
};
|
|
84
|
+
const onUp = (event) => {
|
|
85
|
+
const held = drag;
|
|
86
|
+
if (!held || held.pointerId !== event.pointerId) return;
|
|
87
|
+
if (!held.dialog.open || !held.dialog.isConnected) {
|
|
88
|
+
onCancel();
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
onMove(event);
|
|
92
|
+
drag = null;
|
|
93
|
+
observer.disconnect();
|
|
94
|
+
letGo(held);
|
|
95
|
+
};
|
|
96
|
+
const letGo = (held) => {
|
|
97
|
+
const spring = springFor(held);
|
|
98
|
+
held.dialog.style.transition = "";
|
|
99
|
+
clearShift(held, !settle(held) && held.dialog.open ? spring : null);
|
|
100
|
+
};
|
|
101
|
+
const clearShift = (held, spring) => {
|
|
102
|
+
if (spring) held.dialog.style.transition = "none";
|
|
103
|
+
held.dialog.style.setProperty(config.property, "0px");
|
|
104
|
+
if (spring) springBack(held, spring);
|
|
105
|
+
};
|
|
106
|
+
const springFor = (held) => {
|
|
107
|
+
if (!held.shift || matchMedia(REDUCED).matches || !onSpring(held.dialog)) return null;
|
|
108
|
+
return springToken(held.dialog, "default-spatial");
|
|
109
|
+
};
|
|
110
|
+
const onSpring = (dialog) => {
|
|
111
|
+
const style = getComputedStyle(dialog);
|
|
112
|
+
const read = (name) => style.getPropertyValue(name).trim();
|
|
113
|
+
const spring = "--md-sys-motion-spring-default-spatial";
|
|
114
|
+
return read(config.motion) === read(spring) && read(`${config.motion}-duration`) === read(`${spring}-duration`);
|
|
115
|
+
};
|
|
116
|
+
const springBack = (held, spring) => {
|
|
117
|
+
const dialog = held.dialog;
|
|
118
|
+
const write = config.axis === "x" ? (value) => `${value}px 0` : (value) => `0 ${value}px`;
|
|
119
|
+
const running = animatePath(dialog, "translate", springPath(held.shift, 0, flickVelocity(held), spring), write);
|
|
120
|
+
const reduced = matchMedia(REDUCED);
|
|
121
|
+
const closing = new MutationObserver(() => dialog.open || end(true));
|
|
122
|
+
const end = (restore) => {
|
|
123
|
+
springs.delete(dialog);
|
|
124
|
+
closing.disconnect();
|
|
125
|
+
reduced.removeEventListener("change", stop);
|
|
126
|
+
running.onfinish = null;
|
|
127
|
+
running.cancel();
|
|
128
|
+
if (restore) dialog.style.transition = "";
|
|
129
|
+
};
|
|
130
|
+
const stop = () => end(true);
|
|
131
|
+
springs.set(dialog, end);
|
|
132
|
+
running.onfinish = stop;
|
|
133
|
+
reduced.addEventListener("change", stop);
|
|
134
|
+
closing.observe(dialog, { attributes: true, attributeFilter: ["open"] });
|
|
135
|
+
};
|
|
136
|
+
const onRelease = config.onRelease ?? (() => {
|
|
137
|
+
});
|
|
138
|
+
const release = config.release ?? (() => false);
|
|
139
|
+
const settle = (held) => {
|
|
140
|
+
const velocity = flickVelocity(held);
|
|
141
|
+
const delta = held.last - held.start;
|
|
142
|
+
const dragged = Math.abs(delta) > DRAG_SLOP;
|
|
143
|
+
onRelease(dragged);
|
|
144
|
+
const handled = !dragged || release(held.dialog, delta, velocity);
|
|
145
|
+
if (!handled && dismisses(held, velocity)) held.dialog.close();
|
|
146
|
+
return handled;
|
|
147
|
+
};
|
|
148
|
+
const onCancel = (event) => {
|
|
149
|
+
if (event && drag?.pointerId !== event.pointerId) return;
|
|
150
|
+
observer.disconnect();
|
|
151
|
+
onRelease(false);
|
|
152
|
+
const held = drag;
|
|
153
|
+
drag = null;
|
|
154
|
+
if (held) reset(held.dialog);
|
|
155
|
+
};
|
|
156
|
+
Utils.onDocumentReady(() => {
|
|
157
|
+
observer = new MutationObserver((records) => {
|
|
158
|
+
const dialog = drag?.dialog;
|
|
159
|
+
if (dialog && (!dialog.open || !dialog.isConnected || records.some(
|
|
160
|
+
(record) => record.type === "attributes" && record.target === dialog && record.oldValue === null || [...record.removedNodes].some((node) => node.contains(dialog))
|
|
161
|
+
))) onCancel();
|
|
162
|
+
});
|
|
163
|
+
document.addEventListener("pointerdown", onDown, { passive: true });
|
|
164
|
+
document.addEventListener("pointermove", onMove, { passive: true });
|
|
165
|
+
document.addEventListener("pointerup", onUp, { passive: true });
|
|
166
|
+
document.addEventListener("pointercancel", onCancel, { passive: true });
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
export {
|
|
171
|
+
DISMISS_DISTANCE,
|
|
172
|
+
DISMISS_VELOCITY,
|
|
173
|
+
installSheetDrag
|
|
174
|
+
};
|
|
175
|
+
//# sourceMappingURL=chunk-JUKBBN6P.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/ts/behaviors/sheetDrag.ts"],
|
|
4
|
+
"sourcesContent": ["import { Utils } from '../core/utils';\nimport { Spring, animatePath, springPath, springToken } from '../core/spring';\n\n/**\n * Drag-to-dismiss, shared by the bottom sheet and the side sheet.\n *\n * The two were the same state machine written twice on different axes - same\n * dismissal distance, same flick velocity, same transition suppression, same\n * pointer bookkeeping - so a fix to one could land without reaching the other.\n * What actually differs between them is stated as configuration below.\n *\n * Light-dismiss on the scrim is not here; it stays with `Dialogs`.\n */\nexport interface SheetDragConfig {\n /** Which dialogs this drag applies to. */\n selector: string;\n /** The axis the sheet travels on. */\n axis: 'x' | 'y';\n /** The custom property carrying the live drag offset. */\n property: string;\n /**\n * The sheet's motion easing token; `-duration` names its duration. While\n * both are the default spatial spring's, a snap-back solves that spring\n * at run time; an override keeps the CSS transition it asks for.\n */\n motion: string;\n /**\n * `1` when the sheet dismisses toward increasing coordinates (downward, or\n * rightward for an end-docked side sheet), `-1` when it dismisses toward\n * decreasing ones. A function rather than a constant because a side sheet's\n * direction depends on which edge each individual sheet is docked to.\n */\n direction: (dialog: HTMLDialogElement) => 1 | -1;\n /** Whether a press at this point landed on the sheet's drag handle. */\n inHandle: (event: PointerEvent, dialog: HTMLDialogElement) => boolean;\n /**\n * Called on primary `pointerdown`, after clearing the previous drag. The\n * bottom sheet clears its dragged flag here so a sequence abandoned without\n * a `pointerup` cannot leave the flag set and swallow the next tap.\n */\n onPress?: () => void;\n /** Called when a drag ends, with whether the pointer actually moved. */\n onRelease?: (dragged: boolean) => void;\n /**\n * Called when a drag that moved ends on an open sheet, before it can\n * dismiss, with how far the pointer travelled along the axis (either way,\n * unlike the dismissing shift) and its flick velocity. Returns whether the\n * drag did something else, such as resizing the sheet, so it does not also\n * dismiss it.\n */\n release?: (dialog: HTMLDialogElement, delta: number, velocity: number) => boolean;\n}\n\nconst REDUCED = '(prefers-reduced-motion: reduce)';\n\n/** Past this the sheet dismisses rather than snapping back, in pixels. */\nexport const DISMISS_DISTANCE = 96;\n/** Past this a flick dismisses whatever the distance, in pixels per millisecond. */\nexport const DISMISS_VELOCITY = 0.5;\n/** Ignore a flick after the pointer has rested for this many milliseconds. */\nconst FLICK_TIMEOUT = 100;\n/** Past this the pointer was dragging, not tapping. Hand jitter, in pixels. */\nconst DRAG_SLOP = 4;\n\n/** One drag in flight. */\ninterface Drag {\n dialog: HTMLDialogElement;\n pointerId: number;\n direction: 1 | -1;\n start: number;\n last: number;\n lastT: number;\n velocity: number;\n shift: number;\n}\n\n/** The pointer's velocity at release, or 0 once it has rested past the flick window. */\nconst flickVelocity = (held: Drag) => (Date.now() - held.lastT < FLICK_TIMEOUT ? held.velocity : 0);\n\n/** Whether the drag went past the dismissal distance, or flicked, toward the sheet's edge. */\nconst dismisses = (held: Drag, velocity: number) =>\n held.shift * held.direction > DISMISS_DISTANCE || velocity * held.direction > DISMISS_VELOCITY;\n\n/**\n * Each sheet's snap-back spring while it runs, as the function that ends\n * it, restoring the CSS transition or, for a drag that caught it, not.\n */\nconst springs = new WeakMap<HTMLDialogElement, (restore: boolean) => void>();\n\n/**\n * Stops a sheet's snap-back where it is and returns how far off its edge\n * that is, so a drag carries on from there instead of jumping.\n */\nfunction catchSpring(dialog: HTMLDialogElement, axis: 'x' | 'y') {\n const end = springs.get(dialog);\n if (!end) return 0;\n const [x, y = '0'] = getComputedStyle(dialog).translate.split(' ');\n end(false);\n return parseFloat(axis === 'x' ? x : y) || 0;\n}\n\n/** Selectors whose drag is already installed, so a second `Init()` is a no-op. */\nconst installed = new Set<string>();\n\n/**\n * Register one sheet kind's drag handlers on the document. Called once per kind\n * at import time; there is nothing to tear down.\n */\nexport function installSheetDrag(config: SheetDragConfig): void {\n if (installed.has(config.selector)) return;\n installed.add(config.selector);\n const coord = (event: PointerEvent) => (config.axis === 'x' ? event.clientX : event.clientY);\n let observer: MutationObserver;\n\n let drag: Drag | null = null;\n\n const sheetFor = (event: Event): HTMLDialogElement | null => {\n const dialog = Utils.closestInPath(event, config.selector);\n return dialog instanceof HTMLDialogElement ? dialog : null;\n };\n\n const reset = (dialog: HTMLDialogElement) => {\n dialog.style.transition = '';\n dialog.style.setProperty(config.property, '0px');\n };\n\n const onDown = (event: PointerEvent) => {\n // A press that is not the primary pointer is ignored without disturbing a\n // drag already in flight - a second finger must not abort the first one.\n // A press that lands off the sheet or off its handle does clear it.\n if (!event.isPrimary) return;\n if (event.pointerType === 'mouse' && event.button !== 0) return;\n onCancel();\n config.onPress?.();\n const dialog = sheetFor(event);\n if (!dialog?.open || !config.inHandle(event, dialog)) return;\n dialog.style.transition = 'none';\n const at = coord(event);\n // A sheet caught mid-spring carries on from where it is.\n const caught = catchSpring(dialog, config.axis);\n dialog.style.setProperty(config.property, `${caught}px`);\n drag = {\n dialog,\n pointerId: event.pointerId,\n direction: config.direction(dialog),\n start: at - caught,\n last: at,\n lastT: Date.now(),\n velocity: 0,\n shift: caught\n };\n // The document cannot see inside a shadow root, so a sheet there is\n // watched in its own root too; host removal still shows up in the document.\n const watch = { childList: true, subtree: true, attributes: true, attributeFilter: ['open'], attributeOldValue: true };\n const root = dialog.getRootNode();\n observer.observe(document, watch);\n if (root !== document) observer.observe(root, watch);\n };\n\n const onMove = (event: PointerEvent) => {\n if (!drag || drag.pointerId !== event.pointerId) return;\n if (!drag.dialog.open || !drag.dialog.isConnected) {\n onCancel();\n return;\n }\n const at = coord(event);\n const delta = at - drag.start;\n // Only movement toward dismissal counts; dragging the other way is a no-op\n // rather than a sheet that lifts off its edge.\n drag.shift = drag.direction === 1 ? Math.max(0, delta) : Math.min(0, delta);\n if (at !== drag.last) {\n const now = Date.now();\n drag.velocity = (at - drag.last) / Math.max(1, now - drag.lastT);\n drag.last = at;\n drag.lastT = now;\n }\n drag.dialog.style.setProperty(config.property, `${drag.shift}px`);\n };\n\n const onUp = (event: PointerEvent) => {\n const held = drag;\n if (!held || held.pointerId !== event.pointerId) return;\n if (!held.dialog.open || !held.dialog.isConnected) {\n onCancel();\n return;\n }\n onMove(event);\n drag = null;\n observer.disconnect();\n letGo(held);\n };\n\n /**\n * A finished drag resizes or dismisses the sheet, or else it springs back.\n * Not `reset()`, though it looks like it: the two halves belong on either\n * side of close(). The transition has to be back before the sheet closes,\n * so the dismissal animates; the shift has to clear after, or a snap-back\n * would jump to zero before the transition could carry it there.\n */\n const letGo = (held: Drag) => {\n const spring = springFor(held);\n held.dialog.style.transition = '';\n clearShift(held, !settle(held) && held.dialog.open ? spring : null);\n };\n\n /**\n * Clears the drag's shift, springing back on `spring` when there is one.\n * A running CSS transition would outrank the spring, so it waits until\n * the spring ends. It goes off before the shift changes: switched off\n * after, WebKit has already started it.\n */\n const clearShift = (held: Drag, spring: Spring | null) => {\n if (spring) held.dialog.style.transition = 'none';\n held.dialog.style.setProperty(config.property, '0px');\n if (spring) springBack(held, spring);\n };\n\n /**\n * The spring a released sheet snaps back on, or null for the CSS snap:\n * no shift, reduced motion, or motion tokens the page overrode.\n */\n const springFor = (held: Drag) => {\n if (!held.shift || matchMedia(REDUCED).matches || !onSpring(held.dialog)) return null;\n return springToken(held.dialog, 'default-spatial');\n };\n\n /** Whether the sheet's motion tokens are still the default spatial spring's. */\n const onSpring = (dialog: HTMLDialogElement) => {\n const style = getComputedStyle(dialog);\n const read = (name: string) => style.getPropertyValue(name).trim();\n const spring = '--md-sys-motion-spring-default-spatial';\n return read(config.motion) === read(spring) && read(`${config.motion}-duration`) === read(`${spring}-duration`);\n };\n\n /**\n * The snap-back: a spring solved from where the sheet is and the\n * finger's speed, instead of the CSS spring that starts from rest.\n */\n const springBack = (held: Drag, spring: Spring) => {\n const dialog = held.dialog;\n const write = config.axis === 'x' ? (value: number) => `${value}px 0` : (value: number) => `0 ${value}px`;\n const running = animatePath(dialog, 'translate', springPath(held.shift, 0, flickVelocity(held), spring), write);\n // It ends when it settles, and early when the sheet closes or the reader\n // asks for reduced motion, so neither inherits a stale spring or a\n // transition left off.\n const reduced = matchMedia(REDUCED);\n const closing = new MutationObserver(() => dialog.open || end(true));\n const end = (restore: boolean) => {\n springs.delete(dialog);\n closing.disconnect();\n reduced.removeEventListener('change', stop);\n running.onfinish = null;\n running.cancel();\n if (restore) dialog.style.transition = '';\n };\n const stop = () => end(true);\n springs.set(dialog, end);\n running.onfinish = stop;\n reduced.addEventListener('change', stop);\n closing.observe(dialog, { attributes: true, attributeFilter: ['open'] });\n };\n\n const onRelease = config.onRelease ?? (() => {});\n const release = config.release ?? (() => false);\n\n /**\n * A drag that moved resizes the sheet, if the sheet handles that, or else\n * dismisses it past the distance or a flick. Returns whether the release\n * did something other than let the sheet snap back.\n */\n const settle = (held: Drag) => {\n const velocity = flickVelocity(held);\n const delta = held.last - held.start;\n // Movement either way is a drag, so the click that ends it is not a tap.\n const dragged = Math.abs(delta) > DRAG_SLOP;\n onRelease(dragged);\n const handled = !dragged || release(held.dialog, delta, velocity);\n if (!handled && dismisses(held, velocity)) held.dialog.close();\n return handled;\n };\n\n const onCancel = (event?: PointerEvent) => {\n if (event && drag?.pointerId !== event.pointerId) return;\n observer.disconnect();\n onRelease(false);\n const held = drag;\n drag = null;\n if (held) reset(held.dialog);\n };\n\n Utils.onDocumentReady(() => {\n observer = new MutationObserver(records => {\n const dialog = drag?.dialog;\n if (dialog && (!dialog.open || !dialog.isConnected || records.some(record =>\n (record.type === 'attributes' && record.target === dialog && record.oldValue === null) ||\n [...record.removedNodes].some(node => node.contains(dialog))\n ))) onCancel();\n });\n document.addEventListener('pointerdown', onDown, { passive: true });\n document.addEventListener('pointermove', onMove, { passive: true });\n document.addEventListener('pointerup', onUp, { passive: true });\n document.addEventListener('pointercancel', onCancel, { passive: true });\n });\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|