diff --git a/global.d.ts b/global.d.ts index 7b9d325d..fb4b00a6 100644 --- a/global.d.ts +++ b/global.d.ts @@ -13,10 +13,6 @@ declare namespace JSX { interface IntrinsicElements { } } -declare module 'preact-i18n'; -declare module 'preact-material-components-drawer'; -declare module 'material-radial-progress'; - declare module 'classnames' { export default function classnames(...args: any[]): string; } diff --git a/package-lock.json b/package-lock.json index beea7643..f1a28dd1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -38,938 +38,6 @@ "tslib": "^1.8.1" } }, - "@material/animation": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@material/animation/-/animation-0.25.0.tgz", - "integrity": "sha512-4RzlpMwJtMnQ3/rNf4zpG9qnoQcCkYiRs6U515MRQzv7qFl1eCZx3U3dGaUu7UVf3Hwx4RskUB/fBxGc0b61CQ==" - }, - "@material/auto-init": { - "version": "0.35.0", - "resolved": "https://registry.npmjs.org/@material/auto-init/-/auto-init-0.35.0.tgz", - "integrity": "sha512-mrd6pZqPNdkuD78VwYhbgCrMob3Ws1rFttYunME+IcJzLeJWOtLLGe4xZe0kYrJJ6e0AZAEA+azLyokOwPQ3Fw==" - }, - "@material/base": { - "version": "0.29.0", - "resolved": "https://registry.npmjs.org/@material/base/-/base-0.29.0.tgz", - "integrity": "sha512-5jgaxI0x18JWb7orFPNm+on3Oe1o0RUgrh/xSpuJ4U4rEwMmC94rOMdacllaenmUuLq1DRPE7UeGOzfWfZf3bQ==" - }, - "@material/button": { - "version": "0.37.1", - "resolved": "https://registry.npmjs.org/@material/button/-/button-0.37.1.tgz", - "integrity": "sha512-sI6YRk2Z5hcAyBCV0k6i+QuWS7tlHO008jDNm7rjUPt3bJ5z/JaLaAaHIc6kEtgVSp+NMKlu6HhYtDl9KLq3xg==", - "requires": { - "@material/elevation": "^0.36.1", - "@material/ripple": "^0.37.1", - "@material/rtl": "^0.36.0", - "@material/theme": "^0.35.0", - "@material/typography": "^0.37.1" - }, - "dependencies": { - "@material/animation": { - "version": "0.34.0", - "resolved": "https://registry.npmjs.org/@material/animation/-/animation-0.34.0.tgz", - "integrity": "sha512-HKWU+pHda+xSIV0lwrTMOb/N005NIAV7+tvEEjTiLrQx74eO6J9nIjfCpZ0W4D8Kb9K90lgHFo0ZRC6yDTjizQ==" - }, - "@material/elevation": { - "version": "0.36.1", - "resolved": "https://registry.npmjs.org/@material/elevation/-/elevation-0.36.1.tgz", - "integrity": "sha512-kh7paJc3jc+6O6Op93j8S/eFqiA9KhSsT/gtQeVbEt2ebGweh4TTc/Smm0D/RPOzifPL1mRMAQY7SgFchlz1AQ==", - "requires": { - "@material/animation": "^0.34.0", - "@material/theme": "^0.35.0" - } - }, - "@material/rtl": { - "version": "0.36.0", - "resolved": "https://registry.npmjs.org/@material/rtl/-/rtl-0.36.0.tgz", - "integrity": "sha512-uCMwWGdKG0ooYh1kVINz7vTgSY++9wnvU3kOqjRdfOY+PZHWSa/X/EqRdE9Q1pUFwYlQeU2PXE/Z2dTK/nlziw==" - }, - "@material/theme": { - "version": "0.35.0", - "resolved": "https://registry.npmjs.org/@material/theme/-/theme-0.35.0.tgz", - "integrity": "sha512-jTjRDPKlWVCNnSs4RRe/eq9+F5lFBzxfbuI7klgCR6jTXRMB93jKKKO7k6chgo9l0oObhLh81ao6sq/eV0WFIw==" - }, - "@material/typography": { - "version": "0.37.1", - "resolved": "https://registry.npmjs.org/@material/typography/-/typography-0.37.1.tgz", - "integrity": "sha512-njbRrUwSte+Ag2ZsQxYCZVXqYphm7Wbe1iFCzljRAZEcZJUuKkz30rx3IK5CrmwoIpLxcE2Y/2WoAj8a2Ear0A==" - } - } - }, - "@material/card": { - "version": "0.37.1", - "resolved": "https://registry.npmjs.org/@material/card/-/card-0.37.1.tgz", - "integrity": "sha512-HLLov0DPnJJbQulkg/gHSlJlmDRDdL8TKR8Okd24UPjzQx5azjE6TUYjXDLHxESmZYYeAcDUcs2wq+j9q12ywg==", - "requires": { - "@material/elevation": "^0.36.1", - "@material/ripple": "^0.37.1", - "@material/rtl": "^0.36.0", - "@material/theme": "^0.35.0" - }, - "dependencies": { - "@material/animation": { - "version": "0.34.0", - "resolved": "https://registry.npmjs.org/@material/animation/-/animation-0.34.0.tgz", - "integrity": "sha512-HKWU+pHda+xSIV0lwrTMOb/N005NIAV7+tvEEjTiLrQx74eO6J9nIjfCpZ0W4D8Kb9K90lgHFo0ZRC6yDTjizQ==" - }, - "@material/elevation": { - "version": "0.36.1", - "resolved": "https://registry.npmjs.org/@material/elevation/-/elevation-0.36.1.tgz", - "integrity": "sha512-kh7paJc3jc+6O6Op93j8S/eFqiA9KhSsT/gtQeVbEt2ebGweh4TTc/Smm0D/RPOzifPL1mRMAQY7SgFchlz1AQ==", - "requires": { - "@material/animation": "^0.34.0", - "@material/theme": "^0.35.0" - } - }, - "@material/rtl": { - "version": "0.36.0", - "resolved": "https://registry.npmjs.org/@material/rtl/-/rtl-0.36.0.tgz", - "integrity": "sha512-uCMwWGdKG0ooYh1kVINz7vTgSY++9wnvU3kOqjRdfOY+PZHWSa/X/EqRdE9Q1pUFwYlQeU2PXE/Z2dTK/nlziw==" - }, - "@material/theme": { - "version": "0.35.0", - "resolved": "https://registry.npmjs.org/@material/theme/-/theme-0.35.0.tgz", - "integrity": "sha512-jTjRDPKlWVCNnSs4RRe/eq9+F5lFBzxfbuI7klgCR6jTXRMB93jKKKO7k6chgo9l0oObhLh81ao6sq/eV0WFIw==" - } - } - }, - "@material/checkbox": { - "version": "0.37.1", - "resolved": "https://registry.npmjs.org/@material/checkbox/-/checkbox-0.37.1.tgz", - "integrity": "sha512-blStJk0pZjL7jH9H2IjgrSUNgOpE8zrHWVCNsanyYFYr5sfHT2BGXRYnLa40+vB6RuUf44Wrn9uEzQ96k43ZEQ==", - "requires": { - "@material/animation": "^0.34.0", - "@material/base": "^0.35.0", - "@material/ripple": "^0.37.1", - "@material/rtl": "^0.36.0", - "@material/selection-control": "^0.37.1", - "@material/theme": "^0.35.0" - }, - "dependencies": { - "@material/animation": { - "version": "0.34.0", - "resolved": "https://registry.npmjs.org/@material/animation/-/animation-0.34.0.tgz", - "integrity": "sha512-HKWU+pHda+xSIV0lwrTMOb/N005NIAV7+tvEEjTiLrQx74eO6J9nIjfCpZ0W4D8Kb9K90lgHFo0ZRC6yDTjizQ==" - }, - "@material/base": { - "version": "0.35.0", - "resolved": "https://registry.npmjs.org/@material/base/-/base-0.35.0.tgz", - "integrity": "sha512-PYuluVzcH8hxtionVvpTSygTENlgyOHvJ5ka7JfbCRQfXlxjV8zKYwhh9u/1HqA6y1OonG1oGFCaBHopbdsNEQ==" - }, - "@material/rtl": { - "version": "0.36.0", - "resolved": "https://registry.npmjs.org/@material/rtl/-/rtl-0.36.0.tgz", - "integrity": "sha512-uCMwWGdKG0ooYh1kVINz7vTgSY++9wnvU3kOqjRdfOY+PZHWSa/X/EqRdE9Q1pUFwYlQeU2PXE/Z2dTK/nlziw==" - }, - "@material/theme": { - "version": "0.35.0", - "resolved": "https://registry.npmjs.org/@material/theme/-/theme-0.35.0.tgz", - "integrity": "sha512-jTjRDPKlWVCNnSs4RRe/eq9+F5lFBzxfbuI7klgCR6jTXRMB93jKKKO7k6chgo9l0oObhLh81ao6sq/eV0WFIw==" - } - } - }, - "@material/chips": { - "version": "0.37.1", - "resolved": "https://registry.npmjs.org/@material/chips/-/chips-0.37.1.tgz", - "integrity": "sha512-MgOKo4zAhRFlQtQq5SuaWFmTLR2b44Ig/1rUSSKcrivto/waBAIaeVWJocaYshcMeW6ZSNkHOGqPLm/fP56qmQ==", - "requires": { - "@material/animation": "^0.34.0", - "@material/base": "^0.35.0", - "@material/checkbox": "^0.37.1", - "@material/ripple": "^0.37.1", - "@material/typography": "^0.37.1" - }, - "dependencies": { - "@material/animation": { - "version": "0.34.0", - "resolved": "https://registry.npmjs.org/@material/animation/-/animation-0.34.0.tgz", - "integrity": "sha512-HKWU+pHda+xSIV0lwrTMOb/N005NIAV7+tvEEjTiLrQx74eO6J9nIjfCpZ0W4D8Kb9K90lgHFo0ZRC6yDTjizQ==" - }, - "@material/base": { - "version": "0.35.0", - "resolved": "https://registry.npmjs.org/@material/base/-/base-0.35.0.tgz", - "integrity": "sha512-PYuluVzcH8hxtionVvpTSygTENlgyOHvJ5ka7JfbCRQfXlxjV8zKYwhh9u/1HqA6y1OonG1oGFCaBHopbdsNEQ==" - }, - "@material/typography": { - "version": "0.37.1", - "resolved": "https://registry.npmjs.org/@material/typography/-/typography-0.37.1.tgz", - "integrity": "sha512-njbRrUwSte+Ag2ZsQxYCZVXqYphm7Wbe1iFCzljRAZEcZJUuKkz30rx3IK5CrmwoIpLxcE2Y/2WoAj8a2Ear0A==" - } - } - }, - "@material/dialog": { - "version": "0.37.1", - "resolved": "https://registry.npmjs.org/@material/dialog/-/dialog-0.37.1.tgz", - "integrity": "sha512-PCOobQdQCV+W+PYnwi1+yKPPPRB/SN1ogdBp3al5qlH0WLpXTu8AP6apaj2HI5aU9s3WW94Vmt+mTpPOmasxDg==", - "requires": { - "@material/animation": "^0.34.0", - "@material/base": "^0.35.0", - "@material/elevation": "^0.36.1", - "@material/ripple": "^0.37.1", - "@material/rtl": "^0.36.0", - "@material/theme": "^0.35.0", - "@material/typography": "^0.37.1", - "focus-trap": "^2.3.0" - }, - "dependencies": { - "@material/animation": { - "version": "0.34.0", - "resolved": "https://registry.npmjs.org/@material/animation/-/animation-0.34.0.tgz", - "integrity": "sha512-HKWU+pHda+xSIV0lwrTMOb/N005NIAV7+tvEEjTiLrQx74eO6J9nIjfCpZ0W4D8Kb9K90lgHFo0ZRC6yDTjizQ==" - }, - "@material/base": { - "version": "0.35.0", - "resolved": "https://registry.npmjs.org/@material/base/-/base-0.35.0.tgz", - "integrity": "sha512-PYuluVzcH8hxtionVvpTSygTENlgyOHvJ5ka7JfbCRQfXlxjV8zKYwhh9u/1HqA6y1OonG1oGFCaBHopbdsNEQ==" - }, - "@material/elevation": { - "version": "0.36.1", - "resolved": "https://registry.npmjs.org/@material/elevation/-/elevation-0.36.1.tgz", - "integrity": "sha512-kh7paJc3jc+6O6Op93j8S/eFqiA9KhSsT/gtQeVbEt2ebGweh4TTc/Smm0D/RPOzifPL1mRMAQY7SgFchlz1AQ==", - "requires": { - "@material/animation": "^0.34.0", - "@material/theme": "^0.35.0" - } - }, - "@material/rtl": { - "version": "0.36.0", - "resolved": "https://registry.npmjs.org/@material/rtl/-/rtl-0.36.0.tgz", - "integrity": "sha512-uCMwWGdKG0ooYh1kVINz7vTgSY++9wnvU3kOqjRdfOY+PZHWSa/X/EqRdE9Q1pUFwYlQeU2PXE/Z2dTK/nlziw==" - }, - "@material/theme": { - "version": "0.35.0", - "resolved": "https://registry.npmjs.org/@material/theme/-/theme-0.35.0.tgz", - "integrity": "sha512-jTjRDPKlWVCNnSs4RRe/eq9+F5lFBzxfbuI7klgCR6jTXRMB93jKKKO7k6chgo9l0oObhLh81ao6sq/eV0WFIw==" - }, - "@material/typography": { - "version": "0.37.1", - "resolved": "https://registry.npmjs.org/@material/typography/-/typography-0.37.1.tgz", - "integrity": "sha512-njbRrUwSte+Ag2ZsQxYCZVXqYphm7Wbe1iFCzljRAZEcZJUuKkz30rx3IK5CrmwoIpLxcE2Y/2WoAj8a2Ear0A==" - } - } - }, - "@material/drawer": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/@material/drawer/-/drawer-0.30.0.tgz", - "integrity": "sha512-NZyp6jVd6cDucBPUl391cTuIkR5Vy5OdrdNQxvH+pTjvb7R2yQJKVv2a7PxuR1uKjGM1vRudFOdXpviwbplr9A==", - "requires": { - "@material/animation": "^0.25.0", - "@material/base": "^0.29.0", - "@material/elevation": "^0.28.0", - "@material/rtl": "^0.30.0", - "@material/theme": "^0.30.0", - "@material/typography": "^0.28.0" - } - }, - "@material/elevation": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@material/elevation/-/elevation-0.28.0.tgz", - "integrity": "sha512-U2utCuMDDhrJ8Cyisz16GAejN9h9xyS4jvVkt2uIOUyPZRjnaJyoAbpyf0mOzFxIdBuRpNGJYm2PoAwHsSA+xw==", - "requires": { - "@material/animation": "^0.25.0", - "@material/theme": "^0.4.0" - }, - "dependencies": { - "@material/theme": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@material/theme/-/theme-0.4.0.tgz", - "integrity": "sha1-Cu8aAnm2XBWZBYT7i47KCVxzRkE=" - } - } - }, - "@material/fab": { - "version": "0.37.1", - "resolved": "https://registry.npmjs.org/@material/fab/-/fab-0.37.1.tgz", - "integrity": "sha512-CeV27OZFEL5LoUDeTONdz+uUMFVaaa1iVPtBltK3cE48vhWQia97oJ6U4+veiJHmx6dNQm/ExW3jsBqwsZyXUw==", - "requires": { - "@material/animation": "^0.34.0", - "@material/elevation": "^0.36.1", - "@material/ripple": "^0.37.1", - "@material/rtl": "^0.36.0", - "@material/theme": "^0.35.0", - "@material/typography": "^0.37.1" - }, - "dependencies": { - "@material/animation": { - "version": "0.34.0", - "resolved": "https://registry.npmjs.org/@material/animation/-/animation-0.34.0.tgz", - "integrity": "sha512-HKWU+pHda+xSIV0lwrTMOb/N005NIAV7+tvEEjTiLrQx74eO6J9nIjfCpZ0W4D8Kb9K90lgHFo0ZRC6yDTjizQ==" - }, - "@material/elevation": { - "version": "0.36.1", - "resolved": "https://registry.npmjs.org/@material/elevation/-/elevation-0.36.1.tgz", - "integrity": "sha512-kh7paJc3jc+6O6Op93j8S/eFqiA9KhSsT/gtQeVbEt2ebGweh4TTc/Smm0D/RPOzifPL1mRMAQY7SgFchlz1AQ==", - "requires": { - "@material/animation": "^0.34.0", - "@material/theme": "^0.35.0" - } - }, - "@material/rtl": { - "version": "0.36.0", - "resolved": "https://registry.npmjs.org/@material/rtl/-/rtl-0.36.0.tgz", - "integrity": "sha512-uCMwWGdKG0ooYh1kVINz7vTgSY++9wnvU3kOqjRdfOY+PZHWSa/X/EqRdE9Q1pUFwYlQeU2PXE/Z2dTK/nlziw==" - }, - "@material/theme": { - "version": "0.35.0", - "resolved": "https://registry.npmjs.org/@material/theme/-/theme-0.35.0.tgz", - "integrity": "sha512-jTjRDPKlWVCNnSs4RRe/eq9+F5lFBzxfbuI7klgCR6jTXRMB93jKKKO7k6chgo9l0oObhLh81ao6sq/eV0WFIw==" - }, - "@material/typography": { - "version": "0.37.1", - "resolved": "https://registry.npmjs.org/@material/typography/-/typography-0.37.1.tgz", - "integrity": "sha512-njbRrUwSte+Ag2ZsQxYCZVXqYphm7Wbe1iFCzljRAZEcZJUuKkz30rx3IK5CrmwoIpLxcE2Y/2WoAj8a2Ear0A==" - } - } - }, - "@material/floating-label": { - "version": "0.32.0", - "resolved": "https://registry.npmjs.org/@material/floating-label/-/floating-label-0.32.0.tgz", - "integrity": "sha512-YrcRSK04EnvmVJw2bH0if9zOaag6zUbk41vW2FQZJkkaKd3kQt02d0RqlAJ9qSKciGNb0J0h/EDMcdGpNDAp6Q==", - "requires": { - "@material/base": "^0.29.0", - "@material/rtl": "^0.30.0", - "@material/theme": "^0.30.0" - } - }, - "@material/form-field": { - "version": "0.37.1", - "resolved": "https://registry.npmjs.org/@material/form-field/-/form-field-0.37.1.tgz", - "integrity": "sha512-Gt1+KVzJZ5XH6ZkJz8dgTpWhDaPHh4tsRXeKPXlQJuVuVNLIFlERkKFPlfNmTcHg+wZznGSGLCUfSHEK+m0gtA==", - "requires": { - "@material/base": "^0.35.0", - "@material/rtl": "^0.36.0", - "@material/selection-control": "^0.37.1", - "@material/theme": "^0.35.0", - "@material/typography": "^0.37.1" - }, - "dependencies": { - "@material/base": { - "version": "0.35.0", - "resolved": "https://registry.npmjs.org/@material/base/-/base-0.35.0.tgz", - "integrity": "sha512-PYuluVzcH8hxtionVvpTSygTENlgyOHvJ5ka7JfbCRQfXlxjV8zKYwhh9u/1HqA6y1OonG1oGFCaBHopbdsNEQ==" - }, - "@material/rtl": { - "version": "0.36.0", - "resolved": "https://registry.npmjs.org/@material/rtl/-/rtl-0.36.0.tgz", - "integrity": "sha512-uCMwWGdKG0ooYh1kVINz7vTgSY++9wnvU3kOqjRdfOY+PZHWSa/X/EqRdE9Q1pUFwYlQeU2PXE/Z2dTK/nlziw==" - }, - "@material/theme": { - "version": "0.35.0", - "resolved": "https://registry.npmjs.org/@material/theme/-/theme-0.35.0.tgz", - "integrity": "sha512-jTjRDPKlWVCNnSs4RRe/eq9+F5lFBzxfbuI7klgCR6jTXRMB93jKKKO7k6chgo9l0oObhLh81ao6sq/eV0WFIw==" - }, - "@material/typography": { - "version": "0.37.1", - "resolved": "https://registry.npmjs.org/@material/typography/-/typography-0.37.1.tgz", - "integrity": "sha512-njbRrUwSte+Ag2ZsQxYCZVXqYphm7Wbe1iFCzljRAZEcZJUuKkz30rx3IK5CrmwoIpLxcE2Y/2WoAj8a2Ear0A==" - } - } - }, - "@material/grid-list": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/@material/grid-list/-/grid-list-0.30.0.tgz", - "integrity": "sha512-RjL5npvXRWqYE1ro83JjzF2JTimIqVrshCcjSCkiFcDY0AKyEBfihvtHA2JhngLgCgKBBcSHDzNL8sqGMT8AJg==", - "requires": { - "@material/base": "^0.29.0", - "@material/rtl": "^0.30.0", - "@material/theme": "^0.30.0", - "@material/typography": "^0.28.0" - } - }, - "@material/icon-button": { - "version": "0.37.1", - "resolved": "https://registry.npmjs.org/@material/icon-button/-/icon-button-0.37.1.tgz", - "integrity": "sha512-J3/p47pU3rz4BS0SQyPZVxp0AUQZJBEBk3RsDNeAUpX35EKpHubEWHqc9E+bSiRuTeMfqh626SUMDx0fAK718g==", - "requires": { - "@material/base": "^0.35.0", - "@material/ripple": "^0.37.1", - "@material/theme": "^0.35.0" - }, - "dependencies": { - "@material/base": { - "version": "0.35.0", - "resolved": "https://registry.npmjs.org/@material/base/-/base-0.35.0.tgz", - "integrity": "sha512-PYuluVzcH8hxtionVvpTSygTENlgyOHvJ5ka7JfbCRQfXlxjV8zKYwhh9u/1HqA6y1OonG1oGFCaBHopbdsNEQ==" - }, - "@material/theme": { - "version": "0.35.0", - "resolved": "https://registry.npmjs.org/@material/theme/-/theme-0.35.0.tgz", - "integrity": "sha512-jTjRDPKlWVCNnSs4RRe/eq9+F5lFBzxfbuI7klgCR6jTXRMB93jKKKO7k6chgo9l0oObhLh81ao6sq/eV0WFIw==" - } - } - }, - "@material/icon-toggle": { - "version": "0.37.1", - "resolved": "https://registry.npmjs.org/@material/icon-toggle/-/icon-toggle-0.37.1.tgz", - "integrity": "sha512-5E5i0TvF/mmsdWiS22Z6xrLJK/iOO/EXKPLx194R1ZQQetpvEm0MIogmZEdHLsrio4d6hlEI7XxT0DvDGtn9Sg==", - "requires": { - "@material/animation": "^0.34.0", - "@material/base": "^0.35.0", - "@material/ripple": "^0.37.1", - "@material/theme": "^0.35.0" - }, - "dependencies": { - "@material/animation": { - "version": "0.34.0", - "resolved": "https://registry.npmjs.org/@material/animation/-/animation-0.34.0.tgz", - "integrity": "sha512-HKWU+pHda+xSIV0lwrTMOb/N005NIAV7+tvEEjTiLrQx74eO6J9nIjfCpZ0W4D8Kb9K90lgHFo0ZRC6yDTjizQ==" - }, - "@material/base": { - "version": "0.35.0", - "resolved": "https://registry.npmjs.org/@material/base/-/base-0.35.0.tgz", - "integrity": "sha512-PYuluVzcH8hxtionVvpTSygTENlgyOHvJ5ka7JfbCRQfXlxjV8zKYwhh9u/1HqA6y1OonG1oGFCaBHopbdsNEQ==" - }, - "@material/theme": { - "version": "0.35.0", - "resolved": "https://registry.npmjs.org/@material/theme/-/theme-0.35.0.tgz", - "integrity": "sha512-jTjRDPKlWVCNnSs4RRe/eq9+F5lFBzxfbuI7klgCR6jTXRMB93jKKKO7k6chgo9l0oObhLh81ao6sq/eV0WFIw==" - } - } - }, - "@material/image-list": { - "version": "0.37.1", - "resolved": "https://registry.npmjs.org/@material/image-list/-/image-list-0.37.1.tgz", - "integrity": "sha512-xGKk0mfQ/G0KKAnVGlZRyb2U6GVLRSky1TDJghmgl056Dx8VQNOb2+R+HYKH2m+kXQ1RAGeSseFhVEpHpI27HA==", - "requires": { - "@material/theme": "^0.35.0", - "@material/typography": "^0.37.1" - }, - "dependencies": { - "@material/theme": { - "version": "0.35.0", - "resolved": "https://registry.npmjs.org/@material/theme/-/theme-0.35.0.tgz", - "integrity": "sha512-jTjRDPKlWVCNnSs4RRe/eq9+F5lFBzxfbuI7klgCR6jTXRMB93jKKKO7k6chgo9l0oObhLh81ao6sq/eV0WFIw==" - }, - "@material/typography": { - "version": "0.37.1", - "resolved": "https://registry.npmjs.org/@material/typography/-/typography-0.37.1.tgz", - "integrity": "sha512-njbRrUwSte+Ag2ZsQxYCZVXqYphm7Wbe1iFCzljRAZEcZJUuKkz30rx3IK5CrmwoIpLxcE2Y/2WoAj8a2Ear0A==" - } - } - }, - "@material/layout-grid": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@material/layout-grid/-/layout-grid-0.24.0.tgz", - "integrity": "sha512-38Si5CQgRkQwTSVb+lfCZkH8QEe1/HWfj2yNmK5OIFRMBFbSjQRsvf3p+aU1R7fM4TDjNKcgUWqRtBnKuUjNCQ==" - }, - "@material/line-ripple": { - "version": "0.35.0", - "resolved": "https://registry.npmjs.org/@material/line-ripple/-/line-ripple-0.35.0.tgz", - "integrity": "sha512-0w0kLYo2dGBiR2kgHxybifO7z4UxIYbL55EKOqkg+rG0dC+NkzFoURhjwoll6910EOlS//5UNo1N/u3to3uNjg==", - "requires": { - "@material/animation": "^0.34.0", - "@material/base": "^0.35.0", - "@material/theme": "^0.35.0" - }, - "dependencies": { - "@material/animation": { - "version": "0.34.0", - "resolved": "https://registry.npmjs.org/@material/animation/-/animation-0.34.0.tgz", - "integrity": "sha512-HKWU+pHda+xSIV0lwrTMOb/N005NIAV7+tvEEjTiLrQx74eO6J9nIjfCpZ0W4D8Kb9K90lgHFo0ZRC6yDTjizQ==" - }, - "@material/base": { - "version": "0.35.0", - "resolved": "https://registry.npmjs.org/@material/base/-/base-0.35.0.tgz", - "integrity": "sha512-PYuluVzcH8hxtionVvpTSygTENlgyOHvJ5ka7JfbCRQfXlxjV8zKYwhh9u/1HqA6y1OonG1oGFCaBHopbdsNEQ==" - }, - "@material/theme": { - "version": "0.35.0", - "resolved": "https://registry.npmjs.org/@material/theme/-/theme-0.35.0.tgz", - "integrity": "sha512-jTjRDPKlWVCNnSs4RRe/eq9+F5lFBzxfbuI7klgCR6jTXRMB93jKKKO7k6chgo9l0oObhLh81ao6sq/eV0WFIw==" - } - } - }, - "@material/linear-progress": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/@material/linear-progress/-/linear-progress-0.30.0.tgz", - "integrity": "sha512-xKeC22ni5B2xEoYwY8bBJABS3Xkxa1qjKb+bWu0zf90F7e3bQ0rp2pvzHSp0GGJHTAChu1COMXOyZ1QzaBYtGg==", - "requires": { - "@material/animation": "^0.25.0", - "@material/base": "^0.29.0", - "@material/theme": "^0.30.0" - } - }, - "@material/list": { - "version": "0.37.1", - "resolved": "https://registry.npmjs.org/@material/list/-/list-0.37.1.tgz", - "integrity": "sha512-GXRMjKvH/bE/0ckjwmq53WLK7stq3xBgYtO0/hoqCgJa3NYjhvgSFe4SA4H0J/Gpj2vA3A3E5beDMRULfND1BA==", - "requires": { - "@material/base": "^0.35.0", - "@material/ripple": "^0.37.1", - "@material/rtl": "^0.36.0", - "@material/theme": "^0.35.0", - "@material/typography": "^0.37.1" - }, - "dependencies": { - "@material/base": { - "version": "0.35.0", - "resolved": "https://registry.npmjs.org/@material/base/-/base-0.35.0.tgz", - "integrity": "sha512-PYuluVzcH8hxtionVvpTSygTENlgyOHvJ5ka7JfbCRQfXlxjV8zKYwhh9u/1HqA6y1OonG1oGFCaBHopbdsNEQ==" - }, - "@material/rtl": { - "version": "0.36.0", - "resolved": "https://registry.npmjs.org/@material/rtl/-/rtl-0.36.0.tgz", - "integrity": "sha512-uCMwWGdKG0ooYh1kVINz7vTgSY++9wnvU3kOqjRdfOY+PZHWSa/X/EqRdE9Q1pUFwYlQeU2PXE/Z2dTK/nlziw==" - }, - "@material/theme": { - "version": "0.35.0", - "resolved": "https://registry.npmjs.org/@material/theme/-/theme-0.35.0.tgz", - "integrity": "sha512-jTjRDPKlWVCNnSs4RRe/eq9+F5lFBzxfbuI7klgCR6jTXRMB93jKKKO7k6chgo9l0oObhLh81ao6sq/eV0WFIw==" - }, - "@material/typography": { - "version": "0.37.1", - "resolved": "https://registry.npmjs.org/@material/typography/-/typography-0.37.1.tgz", - "integrity": "sha512-njbRrUwSte+Ag2ZsQxYCZVXqYphm7Wbe1iFCzljRAZEcZJUuKkz30rx3IK5CrmwoIpLxcE2Y/2WoAj8a2Ear0A==" - } - } - }, - "@material/menu": { - "version": "0.31.0", - "resolved": "https://registry.npmjs.org/@material/menu/-/menu-0.31.0.tgz", - "integrity": "sha512-9318W8Ws1lnJzsXC9+3hVaYJkGxJOXNHR4PaIpvI9T4ZmyRu5+E6Cp0hf42RTQ1bHTDLOSG/tPuKvsN9VW/6hQ==", - "requires": { - "@material/animation": "^0.25.0", - "@material/base": "^0.29.0", - "@material/elevation": "^0.28.0", - "@material/theme": "^0.30.0", - "@material/typography": "^0.28.0" - } - }, - "@material/notched-outline": { - "version": "0.35.0", - "resolved": "https://registry.npmjs.org/@material/notched-outline/-/notched-outline-0.35.0.tgz", - "integrity": "sha512-VXng7P2E0FPbhmoe0afSnKmHocrwOxVHSaEnt46lZL0nT4O19JISprgCWrFHblbhq92SrppHdS73PHzxgfI9HQ==", - "requires": { - "@material/animation": "^0.34.0", - "@material/base": "^0.35.0", - "@material/theme": "^0.35.0" - }, - "dependencies": { - "@material/animation": { - "version": "0.34.0", - "resolved": "https://registry.npmjs.org/@material/animation/-/animation-0.34.0.tgz", - "integrity": "sha512-HKWU+pHda+xSIV0lwrTMOb/N005NIAV7+tvEEjTiLrQx74eO6J9nIjfCpZ0W4D8Kb9K90lgHFo0ZRC6yDTjizQ==" - }, - "@material/base": { - "version": "0.35.0", - "resolved": "https://registry.npmjs.org/@material/base/-/base-0.35.0.tgz", - "integrity": "sha512-PYuluVzcH8hxtionVvpTSygTENlgyOHvJ5ka7JfbCRQfXlxjV8zKYwhh9u/1HqA6y1OonG1oGFCaBHopbdsNEQ==" - }, - "@material/theme": { - "version": "0.35.0", - "resolved": "https://registry.npmjs.org/@material/theme/-/theme-0.35.0.tgz", - "integrity": "sha512-jTjRDPKlWVCNnSs4RRe/eq9+F5lFBzxfbuI7klgCR6jTXRMB93jKKKO7k6chgo9l0oObhLh81ao6sq/eV0WFIw==" - } - } - }, - "@material/radio": { - "version": "0.37.1", - "resolved": "https://registry.npmjs.org/@material/radio/-/radio-0.37.1.tgz", - "integrity": "sha512-LajWyVRJRe684Vv4soaSFpgd2U923zdwSks3j3dHHUIYMSr/mJna+S8KkuT6i5pTSM2u0sj2yQN01LcFxldZqQ==", - "requires": { - "@material/animation": "^0.34.0", - "@material/base": "^0.35.0", - "@material/ripple": "^0.37.1", - "@material/selection-control": "^0.37.1", - "@material/theme": "^0.35.0" - }, - "dependencies": { - "@material/animation": { - "version": "0.34.0", - "resolved": "https://registry.npmjs.org/@material/animation/-/animation-0.34.0.tgz", - "integrity": "sha512-HKWU+pHda+xSIV0lwrTMOb/N005NIAV7+tvEEjTiLrQx74eO6J9nIjfCpZ0W4D8Kb9K90lgHFo0ZRC6yDTjizQ==" - }, - "@material/base": { - "version": "0.35.0", - "resolved": "https://registry.npmjs.org/@material/base/-/base-0.35.0.tgz", - "integrity": "sha512-PYuluVzcH8hxtionVvpTSygTENlgyOHvJ5ka7JfbCRQfXlxjV8zKYwhh9u/1HqA6y1OonG1oGFCaBHopbdsNEQ==" - }, - "@material/theme": { - "version": "0.35.0", - "resolved": "https://registry.npmjs.org/@material/theme/-/theme-0.35.0.tgz", - "integrity": "sha512-jTjRDPKlWVCNnSs4RRe/eq9+F5lFBzxfbuI7klgCR6jTXRMB93jKKKO7k6chgo9l0oObhLh81ao6sq/eV0WFIw==" - } - } - }, - "@material/ripple": { - "version": "0.37.1", - "resolved": "https://registry.npmjs.org/@material/ripple/-/ripple-0.37.1.tgz", - "integrity": "sha512-FSBZd8Qs7cFcfnVhGLAq4KnMteJQ6HnnEXYmpQxNFHxtkc4FpVh9AwwBsvzCzxbyuMqaKk9YsQubMjyhuuhQ9A==", - "requires": { - "@material/animation": "^0.34.0", - "@material/base": "^0.35.0", - "@material/theme": "^0.35.0" - }, - "dependencies": { - "@material/animation": { - "version": "0.34.0", - "resolved": "https://registry.npmjs.org/@material/animation/-/animation-0.34.0.tgz", - "integrity": "sha512-HKWU+pHda+xSIV0lwrTMOb/N005NIAV7+tvEEjTiLrQx74eO6J9nIjfCpZ0W4D8Kb9K90lgHFo0ZRC6yDTjizQ==" - }, - "@material/base": { - "version": "0.35.0", - "resolved": "https://registry.npmjs.org/@material/base/-/base-0.35.0.tgz", - "integrity": "sha512-PYuluVzcH8hxtionVvpTSygTENlgyOHvJ5ka7JfbCRQfXlxjV8zKYwhh9u/1HqA6y1OonG1oGFCaBHopbdsNEQ==" - }, - "@material/theme": { - "version": "0.35.0", - "resolved": "https://registry.npmjs.org/@material/theme/-/theme-0.35.0.tgz", - "integrity": "sha512-jTjRDPKlWVCNnSs4RRe/eq9+F5lFBzxfbuI7klgCR6jTXRMB93jKKKO7k6chgo9l0oObhLh81ao6sq/eV0WFIw==" - } - } - }, - "@material/rtl": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/@material/rtl/-/rtl-0.30.0.tgz", - "integrity": "sha512-zxEiXFESaQvNNm+tHO0QVKxkGERkL6rX4ghusl7HhosueOcjaVLNYCxH5F0x6Et04TL0wh1ycBmFUIEqVhEkWw==" - }, - "@material/select": { - "version": "0.37.1", - "resolved": "https://registry.npmjs.org/@material/select/-/select-0.37.1.tgz", - "integrity": "sha512-hDElcfFmG4MSZwc2n2OVXMrmJHzG7yydLXoNOAvaaB3NUa6CQXnv0/7IHbtJEWRGRnrtMO6fzAnaieGGGcmzsA==", - "requires": { - "@material/animation": "^0.34.0", - "@material/base": "^0.35.0", - "@material/floating-label": "^0.37.1", - "@material/line-ripple": "^0.35.0", - "@material/notched-outline": "^0.37.1", - "@material/ripple": "^0.37.1", - "@material/rtl": "^0.36.0", - "@material/theme": "^0.35.0", - "@material/typography": "^0.37.1" - }, - "dependencies": { - "@material/animation": { - "version": "0.34.0", - "resolved": "https://registry.npmjs.org/@material/animation/-/animation-0.34.0.tgz", - "integrity": "sha512-HKWU+pHda+xSIV0lwrTMOb/N005NIAV7+tvEEjTiLrQx74eO6J9nIjfCpZ0W4D8Kb9K90lgHFo0ZRC6yDTjizQ==" - }, - "@material/base": { - "version": "0.35.0", - "resolved": "https://registry.npmjs.org/@material/base/-/base-0.35.0.tgz", - "integrity": "sha512-PYuluVzcH8hxtionVvpTSygTENlgyOHvJ5ka7JfbCRQfXlxjV8zKYwhh9u/1HqA6y1OonG1oGFCaBHopbdsNEQ==" - }, - "@material/floating-label": { - "version": "0.37.1", - "resolved": "https://registry.npmjs.org/@material/floating-label/-/floating-label-0.37.1.tgz", - "integrity": "sha512-y/nH5zh56HvL5do9vZ84/ky70Cdd6/ws+IXXDPouUp9MFSP2jhXuuWDDns2vYFIZI/I58ldCtfPsn9bJTqmpTw==", - "requires": { - "@material/base": "^0.35.0", - "@material/rtl": "^0.36.0", - "@material/theme": "^0.35.0", - "@material/typography": "^0.37.1" - } - }, - "@material/notched-outline": { - "version": "0.37.1", - "resolved": "https://registry.npmjs.org/@material/notched-outline/-/notched-outline-0.37.1.tgz", - "integrity": "sha512-IDaVgYWzzyYwOqjrhX8cdKFjBRnQvukwJNaBqlGv/Ikc+q7Q5UQLNGKQijYlCTR7lrzifIT3z6KpTFmYivbfDg==", - "requires": { - "@material/animation": "^0.34.0", - "@material/base": "^0.35.0", - "@material/theme": "^0.35.0" - } - }, - "@material/rtl": { - "version": "0.36.0", - "resolved": "https://registry.npmjs.org/@material/rtl/-/rtl-0.36.0.tgz", - "integrity": "sha512-uCMwWGdKG0ooYh1kVINz7vTgSY++9wnvU3kOqjRdfOY+PZHWSa/X/EqRdE9Q1pUFwYlQeU2PXE/Z2dTK/nlziw==" - }, - "@material/theme": { - "version": "0.35.0", - "resolved": "https://registry.npmjs.org/@material/theme/-/theme-0.35.0.tgz", - "integrity": "sha512-jTjRDPKlWVCNnSs4RRe/eq9+F5lFBzxfbuI7klgCR6jTXRMB93jKKKO7k6chgo9l0oObhLh81ao6sq/eV0WFIw==" - }, - "@material/typography": { - "version": "0.37.1", - "resolved": "https://registry.npmjs.org/@material/typography/-/typography-0.37.1.tgz", - "integrity": "sha512-njbRrUwSte+Ag2ZsQxYCZVXqYphm7Wbe1iFCzljRAZEcZJUuKkz30rx3IK5CrmwoIpLxcE2Y/2WoAj8a2Ear0A==" - } - } - }, - "@material/selection-control": { - "version": "0.37.1", - "resolved": "https://registry.npmjs.org/@material/selection-control/-/selection-control-0.37.1.tgz", - "integrity": "sha512-VGr232Th9+CjbAl5so+k+rj2crDvp8zVzA1QJ/qk0929NJ+e1GdxqgM7PIUPkS9rFLnhB7pAzZzpAgeLpfcU8g==", - "requires": { - "@material/ripple": "^0.37.1" - } - }, - "@material/shape": { - "version": "0.35.0", - "resolved": "https://registry.npmjs.org/@material/shape/-/shape-0.35.0.tgz", - "integrity": "sha512-WMmGLWrqRymMn8gaPybDWRIx7zNurUmaUa/OoxB++HSiLdLZf8hdEffiWLgqc5u97eRpb4IRaIi/jzcPbWxiUw==" - }, - "@material/slider": { - "version": "0.36.0", - "resolved": "https://registry.npmjs.org/@material/slider/-/slider-0.36.0.tgz", - "integrity": "sha512-WB4j62IzrQgToWrDwe5ssSX/7wUD2cvCNlVkehz0syjUMWLCDv3ZrWTJQhd3K6XE3TjSjtTa5JjhkuezAAr41A==", - "requires": { - "@material/animation": "^0.34.0", - "@material/base": "^0.35.0", - "@material/rtl": "^0.36.0", - "@material/theme": "^0.35.0" - }, - "dependencies": { - "@material/animation": { - "version": "0.34.0", - "resolved": "https://registry.npmjs.org/@material/animation/-/animation-0.34.0.tgz", - "integrity": "sha512-HKWU+pHda+xSIV0lwrTMOb/N005NIAV7+tvEEjTiLrQx74eO6J9nIjfCpZ0W4D8Kb9K90lgHFo0ZRC6yDTjizQ==" - }, - "@material/base": { - "version": "0.35.0", - "resolved": "https://registry.npmjs.org/@material/base/-/base-0.35.0.tgz", - "integrity": "sha512-PYuluVzcH8hxtionVvpTSygTENlgyOHvJ5ka7JfbCRQfXlxjV8zKYwhh9u/1HqA6y1OonG1oGFCaBHopbdsNEQ==" - }, - "@material/rtl": { - "version": "0.36.0", - "resolved": "https://registry.npmjs.org/@material/rtl/-/rtl-0.36.0.tgz", - "integrity": "sha512-uCMwWGdKG0ooYh1kVINz7vTgSY++9wnvU3kOqjRdfOY+PZHWSa/X/EqRdE9Q1pUFwYlQeU2PXE/Z2dTK/nlziw==" - }, - "@material/theme": { - "version": "0.35.0", - "resolved": "https://registry.npmjs.org/@material/theme/-/theme-0.35.0.tgz", - "integrity": "sha512-jTjRDPKlWVCNnSs4RRe/eq9+F5lFBzxfbuI7klgCR6jTXRMB93jKKKO7k6chgo9l0oObhLh81ao6sq/eV0WFIw==" - } - } - }, - "@material/snackbar": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/@material/snackbar/-/snackbar-0.30.0.tgz", - "integrity": "sha512-zQamWIxco7wZGYHXZ5G6TGTUKeZgS/EZ+YgRhA5hm6ZwfZrQYhn8coWRPOfsgHHlDN511sA8svU41h6HArlSFA==", - "requires": { - "@material/animation": "^0.25.0", - "@material/base": "^0.29.0", - "@material/rtl": "^0.30.0", - "@material/theme": "^0.30.0", - "@material/typography": "^0.28.0" - } - }, - "@material/switch": { - "version": "0.36.1", - "resolved": "https://registry.npmjs.org/@material/switch/-/switch-0.36.1.tgz", - "integrity": "sha512-CmpzhrahaHxZzhmRTEEuSjsNeALmlc9x1Roy18G7DtYKfPiBX0lXU8gQNKTPYX1rCeL4O4wp/HexFuFJlCRMGA==", - "requires": { - "@material/animation": "^0.34.0", - "@material/elevation": "^0.36.1", - "@material/rtl": "^0.36.0", - "@material/theme": "^0.35.0" - }, - "dependencies": { - "@material/animation": { - "version": "0.34.0", - "resolved": "https://registry.npmjs.org/@material/animation/-/animation-0.34.0.tgz", - "integrity": "sha512-HKWU+pHda+xSIV0lwrTMOb/N005NIAV7+tvEEjTiLrQx74eO6J9nIjfCpZ0W4D8Kb9K90lgHFo0ZRC6yDTjizQ==" - }, - "@material/elevation": { - "version": "0.36.1", - "resolved": "https://registry.npmjs.org/@material/elevation/-/elevation-0.36.1.tgz", - "integrity": "sha512-kh7paJc3jc+6O6Op93j8S/eFqiA9KhSsT/gtQeVbEt2ebGweh4TTc/Smm0D/RPOzifPL1mRMAQY7SgFchlz1AQ==", - "requires": { - "@material/animation": "^0.34.0", - "@material/theme": "^0.35.0" - } - }, - "@material/rtl": { - "version": "0.36.0", - "resolved": "https://registry.npmjs.org/@material/rtl/-/rtl-0.36.0.tgz", - "integrity": "sha512-uCMwWGdKG0ooYh1kVINz7vTgSY++9wnvU3kOqjRdfOY+PZHWSa/X/EqRdE9Q1pUFwYlQeU2PXE/Z2dTK/nlziw==" - }, - "@material/theme": { - "version": "0.35.0", - "resolved": "https://registry.npmjs.org/@material/theme/-/theme-0.35.0.tgz", - "integrity": "sha512-jTjRDPKlWVCNnSs4RRe/eq9+F5lFBzxfbuI7klgCR6jTXRMB93jKKKO7k6chgo9l0oObhLh81ao6sq/eV0WFIw==" - } - } - }, - "@material/tabs": { - "version": "0.37.1", - "resolved": "https://registry.npmjs.org/@material/tabs/-/tabs-0.37.1.tgz", - "integrity": "sha512-Az2+a4h+1CNvX6Bith+4wAlQuag9UF299s/lX2r3NbzjgwsjvIrSQhld9x8kWybY+K1r2gsvdeCKzYiJjJ5zEA==", - "requires": { - "@material/animation": "^0.34.0", - "@material/base": "^0.35.0", - "@material/ripple": "^0.37.1", - "@material/rtl": "^0.36.0", - "@material/theme": "^0.35.0", - "@material/typography": "^0.37.1" - }, - "dependencies": { - "@material/animation": { - "version": "0.34.0", - "resolved": "https://registry.npmjs.org/@material/animation/-/animation-0.34.0.tgz", - "integrity": "sha512-HKWU+pHda+xSIV0lwrTMOb/N005NIAV7+tvEEjTiLrQx74eO6J9nIjfCpZ0W4D8Kb9K90lgHFo0ZRC6yDTjizQ==" - }, - "@material/base": { - "version": "0.35.0", - "resolved": "https://registry.npmjs.org/@material/base/-/base-0.35.0.tgz", - "integrity": "sha512-PYuluVzcH8hxtionVvpTSygTENlgyOHvJ5ka7JfbCRQfXlxjV8zKYwhh9u/1HqA6y1OonG1oGFCaBHopbdsNEQ==" - }, - "@material/rtl": { - "version": "0.36.0", - "resolved": "https://registry.npmjs.org/@material/rtl/-/rtl-0.36.0.tgz", - "integrity": "sha512-uCMwWGdKG0ooYh1kVINz7vTgSY++9wnvU3kOqjRdfOY+PZHWSa/X/EqRdE9Q1pUFwYlQeU2PXE/Z2dTK/nlziw==" - }, - "@material/theme": { - "version": "0.35.0", - "resolved": "https://registry.npmjs.org/@material/theme/-/theme-0.35.0.tgz", - "integrity": "sha512-jTjRDPKlWVCNnSs4RRe/eq9+F5lFBzxfbuI7klgCR6jTXRMB93jKKKO7k6chgo9l0oObhLh81ao6sq/eV0WFIw==" - }, - "@material/typography": { - "version": "0.37.1", - "resolved": "https://registry.npmjs.org/@material/typography/-/typography-0.37.1.tgz", - "integrity": "sha512-njbRrUwSte+Ag2ZsQxYCZVXqYphm7Wbe1iFCzljRAZEcZJUuKkz30rx3IK5CrmwoIpLxcE2Y/2WoAj8a2Ear0A==" - } - } - }, - "@material/textfield": { - "version": "0.37.1", - "resolved": "https://registry.npmjs.org/@material/textfield/-/textfield-0.37.1.tgz", - "integrity": "sha512-Pjuy1+FOFmLpId+Wm3ncrhJcPI+Fct5wpErFZO8/eMhtfRs41+LqlTSDSggcYg8AjNo20/8P0Y5RIo67rkaYHQ==", - "requires": { - "@material/animation": "^0.34.0", - "@material/base": "^0.35.0", - "@material/floating-label": "^0.37.1", - "@material/line-ripple": "^0.35.0", - "@material/notched-outline": "^0.37.1", - "@material/ripple": "^0.37.1", - "@material/rtl": "^0.36.0", - "@material/theme": "^0.35.0", - "@material/typography": "^0.37.1" - }, - "dependencies": { - "@material/animation": { - "version": "0.34.0", - "resolved": "https://registry.npmjs.org/@material/animation/-/animation-0.34.0.tgz", - "integrity": "sha512-HKWU+pHda+xSIV0lwrTMOb/N005NIAV7+tvEEjTiLrQx74eO6J9nIjfCpZ0W4D8Kb9K90lgHFo0ZRC6yDTjizQ==" - }, - "@material/base": { - "version": "0.35.0", - "resolved": "https://registry.npmjs.org/@material/base/-/base-0.35.0.tgz", - "integrity": "sha512-PYuluVzcH8hxtionVvpTSygTENlgyOHvJ5ka7JfbCRQfXlxjV8zKYwhh9u/1HqA6y1OonG1oGFCaBHopbdsNEQ==" - }, - "@material/floating-label": { - "version": "0.37.1", - "resolved": "https://registry.npmjs.org/@material/floating-label/-/floating-label-0.37.1.tgz", - "integrity": "sha512-y/nH5zh56HvL5do9vZ84/ky70Cdd6/ws+IXXDPouUp9MFSP2jhXuuWDDns2vYFIZI/I58ldCtfPsn9bJTqmpTw==", - "requires": { - "@material/base": "^0.35.0", - "@material/rtl": "^0.36.0", - "@material/theme": "^0.35.0", - "@material/typography": "^0.37.1" - } - }, - "@material/notched-outline": { - "version": "0.37.1", - "resolved": "https://registry.npmjs.org/@material/notched-outline/-/notched-outline-0.37.1.tgz", - "integrity": "sha512-IDaVgYWzzyYwOqjrhX8cdKFjBRnQvukwJNaBqlGv/Ikc+q7Q5UQLNGKQijYlCTR7lrzifIT3z6KpTFmYivbfDg==", - "requires": { - "@material/animation": "^0.34.0", - "@material/base": "^0.35.0", - "@material/theme": "^0.35.0" - } - }, - "@material/rtl": { - "version": "0.36.0", - "resolved": "https://registry.npmjs.org/@material/rtl/-/rtl-0.36.0.tgz", - "integrity": "sha512-uCMwWGdKG0ooYh1kVINz7vTgSY++9wnvU3kOqjRdfOY+PZHWSa/X/EqRdE9Q1pUFwYlQeU2PXE/Z2dTK/nlziw==" - }, - "@material/theme": { - "version": "0.35.0", - "resolved": "https://registry.npmjs.org/@material/theme/-/theme-0.35.0.tgz", - "integrity": "sha512-jTjRDPKlWVCNnSs4RRe/eq9+F5lFBzxfbuI7klgCR6jTXRMB93jKKKO7k6chgo9l0oObhLh81ao6sq/eV0WFIw==" - }, - "@material/typography": { - "version": "0.37.1", - "resolved": "https://registry.npmjs.org/@material/typography/-/typography-0.37.1.tgz", - "integrity": "sha512-njbRrUwSte+Ag2ZsQxYCZVXqYphm7Wbe1iFCzljRAZEcZJUuKkz30rx3IK5CrmwoIpLxcE2Y/2WoAj8a2Ear0A==" - } - } - }, - "@material/theme": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/@material/theme/-/theme-0.30.0.tgz", - "integrity": "sha512-jd1iC5qyq5YX4w8sZj9+lXExeK4adXbAjw/lOQuDeT6WSGJf7HovxQlHjlyWJ4p/x0xTGrlaDHnrCxeJQCq4Og==" - }, - "@material/toolbar": { - "version": "0.37.1", - "resolved": "https://registry.npmjs.org/@material/toolbar/-/toolbar-0.37.1.tgz", - "integrity": "sha512-HhoMWsJI2ju+ynWfNIHjnhkW6Mef1Nq0xzzQb00Buf68eJ0p8tSYLjyQHdrca+qEcjWaCuNbrMtkCtt4JXXShw==", - "requires": { - "@material/base": "^0.35.0", - "@material/elevation": "^0.36.1", - "@material/ripple": "^0.37.1", - "@material/rtl": "^0.36.0", - "@material/theme": "^0.35.0", - "@material/typography": "^0.37.1" - }, - "dependencies": { - "@material/animation": { - "version": "0.34.0", - "resolved": "https://registry.npmjs.org/@material/animation/-/animation-0.34.0.tgz", - "integrity": "sha512-HKWU+pHda+xSIV0lwrTMOb/N005NIAV7+tvEEjTiLrQx74eO6J9nIjfCpZ0W4D8Kb9K90lgHFo0ZRC6yDTjizQ==" - }, - "@material/base": { - "version": "0.35.0", - "resolved": "https://registry.npmjs.org/@material/base/-/base-0.35.0.tgz", - "integrity": "sha512-PYuluVzcH8hxtionVvpTSygTENlgyOHvJ5ka7JfbCRQfXlxjV8zKYwhh9u/1HqA6y1OonG1oGFCaBHopbdsNEQ==" - }, - "@material/elevation": { - "version": "0.36.1", - "resolved": "https://registry.npmjs.org/@material/elevation/-/elevation-0.36.1.tgz", - "integrity": "sha512-kh7paJc3jc+6O6Op93j8S/eFqiA9KhSsT/gtQeVbEt2ebGweh4TTc/Smm0D/RPOzifPL1mRMAQY7SgFchlz1AQ==", - "requires": { - "@material/animation": "^0.34.0", - "@material/theme": "^0.35.0" - } - }, - "@material/rtl": { - "version": "0.36.0", - "resolved": "https://registry.npmjs.org/@material/rtl/-/rtl-0.36.0.tgz", - "integrity": "sha512-uCMwWGdKG0ooYh1kVINz7vTgSY++9wnvU3kOqjRdfOY+PZHWSa/X/EqRdE9Q1pUFwYlQeU2PXE/Z2dTK/nlziw==" - }, - "@material/theme": { - "version": "0.35.0", - "resolved": "https://registry.npmjs.org/@material/theme/-/theme-0.35.0.tgz", - "integrity": "sha512-jTjRDPKlWVCNnSs4RRe/eq9+F5lFBzxfbuI7klgCR6jTXRMB93jKKKO7k6chgo9l0oObhLh81ao6sq/eV0WFIw==" - }, - "@material/typography": { - "version": "0.37.1", - "resolved": "https://registry.npmjs.org/@material/typography/-/typography-0.37.1.tgz", - "integrity": "sha512-njbRrUwSte+Ag2ZsQxYCZVXqYphm7Wbe1iFCzljRAZEcZJUuKkz30rx3IK5CrmwoIpLxcE2Y/2WoAj8a2Ear0A==" - } - } - }, - "@material/top-app-bar": { - "version": "0.32.0", - "resolved": "https://registry.npmjs.org/@material/top-app-bar/-/top-app-bar-0.32.0.tgz", - "integrity": "sha512-zdL70MN10Hd1831o0xdGGAASemY4ht2Wz2juANaK3fCf9uvv2UFouS8eJa4BX16rHenIzwrffuA1EKn96RauaQ==", - "requires": { - "@material/animation": "^0.25.0", - "@material/base": "^0.29.0", - "@material/elevation": "^0.28.0", - "@material/ripple": "^0.32.0", - "@material/rtl": "^0.30.0", - "@material/theme": "^0.30.0", - "@material/typography": "^0.28.0" - }, - "dependencies": { - "@material/ripple": { - "version": "0.32.0", - "resolved": "https://registry.npmjs.org/@material/ripple/-/ripple-0.32.0.tgz", - "integrity": "sha512-pfG16d1/46f4QnrUHG66aV22kbY7sh7n2HR/cFALX6D0l0Kae3+xjuUnr1yy32Y1tzLAc84U9jGEzTDykVff9A==", - "requires": { - "@material/base": "^0.29.0", - "@material/theme": "^0.30.0" - } - } - } - }, - "@material/typography": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@material/typography/-/typography-0.28.0.tgz", - "integrity": "sha512-Cz8XxO/bocChQAM87xTAN9CM31Q04FgW0N4lSQWyha2PAK/LdtfjjWFPZWNZKyQbZJBNjINbE3/PqMnWDTd4cQ==" - }, "@mrmlnc/readdir-enhanced": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", @@ -1001,17 +69,18 @@ "integrity": "sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow==", "dev": true }, - "@types/filesize": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/@types/filesize/-/filesize-3.6.0.tgz", - "integrity": "sha512-rOWxCKMjt2DBuwddUnl5GOpf/jAkkqteB+XldncpVxVX+HPTmK2c5ACMOVEbp9gaH81IlhTdC3TwvRa5nopasw==" - }, "@types/node": { "version": "9.6.23", "resolved": "https://registry.npmjs.org/@types/node/-/node-9.6.23.tgz", "integrity": "sha512-d2SJJpwkiPudEQ3+9ysANN2Nvz4QJKUPoe/WL5zyQzI0RaEeZWH5K5xjvUIGszTItHQpFPdH+u51f6G/LkS8Cg==", "dev": true }, + "@types/pretty-bytes": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@types/pretty-bytes/-/pretty-bytes-5.1.0.tgz", + "integrity": "sha512-rc7x/HkZyguytBsCUVvcdARplUf0DsrRXqv3yO0v0CIgXuuwNlgYZRfYGCFHxr1CTnKHjCIJ13tB9t49ZixOIw==", + "dev": true + }, "@types/webassembly-js-api": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/@types/webassembly-js-api/-/webassembly-js-api-0.0.1.tgz", @@ -2311,9 +1380,9 @@ } }, "babel-plugin-transform-react-remove-prop-types": { - "version": "0.4.14", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.14.tgz", - "integrity": "sha512-fMlqvLZPX9v7k0Sl4SVzHofQOKTDXvQbpKx+glCm5Ar5L5KQZ8VxjCsYslQwP+KrYXCG6BY7hOp+O1tUVATTDA==", + "version": "0.4.15", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.15.tgz", + "integrity": "sha512-bFxxYdkZBwTjTgtZEPTLqu9g8Ajz8x8uEP/O1iVuaZIz2RuxJ2gtx0EXDJRonC++KGsgsW/4Hqvk4KViEtE2nw==", "dev": true }, "babel-plugin-transform-regenerator": { @@ -4318,11 +3387,6 @@ "path-type": "^3.0.0" } }, - "dlv": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.2.tgz", - "integrity": "sha512-xxD4VSH67GbRvSGUrckvha94RD7hjgOH7rqGxiytLpkaeMvixOHFZTGFK6EkIm3T761OVHT8ABHmGkq9gXgu6Q==" - }, "dns-equal": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", @@ -5114,7 +4178,8 @@ "filesize": { "version": "3.6.1", "resolved": "https://registry.npmjs.org/filesize/-/filesize-3.6.1.tgz", - "integrity": "sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg==" + "integrity": "sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg==", + "dev": true }, "fill-range": { "version": "4.0.0", @@ -5216,14 +4281,6 @@ "readable-stream": "^2.0.4" } }, - "focus-trap": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/focus-trap/-/focus-trap-2.4.3.tgz", - "integrity": "sha512-sT5Ip9nyAIxWq8Apt1Fdv6yTci5GotaOtO5Ro1/+F3PizttNBcCYz8j/Qze54PPFK73KUbOqh++HUCiyNPqvhA==", - "requires": { - "tabbable": "^1.0.3" - } - }, "follow-redirects": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.1.tgz", @@ -6246,24 +5303,6 @@ "lodash": "^4.17.2" } }, - "gzip-size": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-4.1.0.tgz", - "integrity": "sha1-iuCWJX6r59acRb4rZ8RIEk/7UXw=", - "dev": true, - "requires": { - "duplexer": "^0.1.1", - "pify": "^3.0.0" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - } - } - }, "handle-thing": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-1.2.5.tgz", @@ -8124,281 +7163,6 @@ "object-visit": "^1.0.0" } }, - "material-components-web": { - "version": "0.32.0", - "resolved": "https://registry.npmjs.org/material-components-web/-/material-components-web-0.32.0.tgz", - "integrity": "sha512-f2etJyWzZu/5U1qYnybzHXuUhyEAG19a/OFjSLi6rYJtjY1BtPS+Az9IHvnKDB7ahLET00vEtMKZbNsSa8Eksw==", - "requires": { - "@material/animation": "^0.25.0", - "@material/auto-init": "^0.32.0", - "@material/base": "^0.29.0", - "@material/button": "^0.32.0", - "@material/card": "^0.32.0", - "@material/checkbox": "^0.32.0", - "@material/chips": "^0.32.0", - "@material/dialog": "^0.32.0", - "@material/drawer": "^0.30.0", - "@material/elevation": "^0.28.0", - "@material/fab": "^0.32.0", - "@material/floating-label": "^0.32.0", - "@material/form-field": "^0.32.0", - "@material/grid-list": "^0.30.0", - "@material/icon-toggle": "^0.32.0", - "@material/layout-grid": "^0.24.0", - "@material/line-ripple": "^0.32.0", - "@material/linear-progress": "^0.30.0", - "@material/list": "^0.32.0", - "@material/menu": "^0.31.0", - "@material/radio": "^0.32.0", - "@material/ripple": "^0.32.0", - "@material/rtl": "^0.30.0", - "@material/select": "^0.32.0", - "@material/selection-control": "^0.32.0", - "@material/slider": "^0.32.0", - "@material/snackbar": "^0.30.0", - "@material/switch": "^0.32.0", - "@material/tabs": "^0.32.0", - "@material/textfield": "^0.32.0", - "@material/theme": "^0.30.0", - "@material/toolbar": "^0.32.0", - "@material/top-app-bar": "^0.32.0", - "@material/typography": "^0.28.0" - }, - "dependencies": { - "@material/auto-init": { - "version": "0.32.0", - "resolved": "https://registry.npmjs.org/@material/auto-init/-/auto-init-0.32.0.tgz", - "integrity": "sha512-yodqrTC/MjGt/dM4jiouWJuT8XRpthxicV/If/qUJUeznTkzHMvHp4hWJBcEiyjfryxvzTEoKOl5X8k/gx1GAw==" - }, - "@material/button": { - "version": "0.32.0", - "resolved": "https://registry.npmjs.org/@material/button/-/button-0.32.0.tgz", - "integrity": "sha512-3PBA+o8T5lFJbCo2GZD8sm5U4VXiHDN6nHkrKlysuvcbo6QQK1C3ZMP4BIj2nmSpodvNRXOk8opG3feDcubg3g==", - "requires": { - "@material/elevation": "^0.28.0", - "@material/ripple": "^0.32.0", - "@material/theme": "^0.30.0", - "@material/typography": "^0.28.0" - } - }, - "@material/card": { - "version": "0.32.0", - "resolved": "https://registry.npmjs.org/@material/card/-/card-0.32.0.tgz", - "integrity": "sha512-Y/o8Mekvlt3su0K80gcLpmcdFUa+D57nKDI3nVcM1Xi2r5/ra3qjAmFda5mauxZK/8PzyB/FJzF1fy/RH5s+9g==", - "requires": { - "@material/elevation": "^0.28.0", - "@material/ripple": "^0.32.0", - "@material/rtl": "^0.30.0", - "@material/theme": "^0.30.0" - } - }, - "@material/checkbox": { - "version": "0.32.0", - "resolved": "https://registry.npmjs.org/@material/checkbox/-/checkbox-0.32.0.tgz", - "integrity": "sha512-Rc6sidCCsc+wyktwd6KhNqAt14H6zSEarwLnvqCaYLv/Ml+lqg2SjQ3mg9rRKt1JREaN7G9BGKQKAnB//OMY4g==", - "requires": { - "@material/animation": "^0.25.0", - "@material/base": "^0.29.0", - "@material/ripple": "^0.32.0", - "@material/rtl": "^0.30.0", - "@material/selection-control": "^0.32.0", - "@material/theme": "^0.30.0" - } - }, - "@material/chips": { - "version": "0.32.0", - "resolved": "https://registry.npmjs.org/@material/chips/-/chips-0.32.0.tgz", - "integrity": "sha512-bw4LSzF+Ejyi4Z7iZHZE5J2k437b2iLVM9bGjkXYZ4bkFR+gqjjfB9787FEQGoowHwKOWmuVwYrsO+Vsomf6jg==", - "requires": { - "@material/base": "^0.29.0", - "@material/ripple": "^0.32.0" - } - }, - "@material/dialog": { - "version": "0.32.0", - "resolved": "https://registry.npmjs.org/@material/dialog/-/dialog-0.32.0.tgz", - "integrity": "sha512-tmOdwpFAT5aI4nI43ldzgZ5ONPEZzhE8Nf95DnP8najwKni/aY3D61yo3KwrE2Q0fuuXL1e6AEojX83IHEEciw==", - "requires": { - "@material/animation": "^0.25.0", - "@material/base": "^0.29.0", - "@material/elevation": "^0.28.0", - "@material/ripple": "^0.32.0", - "@material/rtl": "^0.30.0", - "@material/theme": "^0.30.0", - "@material/typography": "^0.1.1", - "focus-trap": "^2.3.0" - }, - "dependencies": { - "@material/typography": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@material/typography/-/typography-0.1.1.tgz", - "integrity": "sha1-+y40N70yhNOen7kUhXZ63msr0ME=" - } - } - }, - "@material/fab": { - "version": "0.32.0", - "resolved": "https://registry.npmjs.org/@material/fab/-/fab-0.32.0.tgz", - "integrity": "sha512-VWzka0qpDxDuqPai9alrFUQadpyEwSGuwt+vgqV0gL5vs0VxLlEa1XP8McZSvdCdHGPNEZtohUif2ZaDEiMSzQ==", - "requires": { - "@material/animation": "^0.25.0", - "@material/elevation": "^0.28.0", - "@material/ripple": "^0.32.0", - "@material/theme": "^0.30.0" - } - }, - "@material/form-field": { - "version": "0.32.0", - "resolved": "https://registry.npmjs.org/@material/form-field/-/form-field-0.32.0.tgz", - "integrity": "sha512-DrUSzqS73H+ksyI0HM66q7IRVSuIIN5dvapayaCXscoSVq5jU1jObqDNtu7PmBxEqvXj68SHrRWm7M06m06a5w==", - "requires": { - "@material/base": "^0.29.0", - "@material/rtl": "^0.30.0", - "@material/selection-control": "^0.32.0", - "@material/theme": "^0.30.0", - "@material/typography": "^0.28.0" - } - }, - "@material/icon-toggle": { - "version": "0.32.0", - "resolved": "https://registry.npmjs.org/@material/icon-toggle/-/icon-toggle-0.32.0.tgz", - "integrity": "sha512-49jrIvP64yVkhVuwek4PmPumMllB3CkqGHgGaSlNJHGdZ3VaSD4DqxnKD0avxhPxEUWg/NXy1dEE+3YFrI/Caw==", - "requires": { - "@material/animation": "^0.25.0", - "@material/base": "^0.29.0", - "@material/ripple": "^0.32.0", - "@material/theme": "^0.30.0" - } - }, - "@material/line-ripple": { - "version": "0.32.0", - "resolved": "https://registry.npmjs.org/@material/line-ripple/-/line-ripple-0.32.0.tgz", - "integrity": "sha512-vd/jlnK/paWZnsr9rvKkeo4qjIDTd59TljSUzqgXN4wiOwiCqXWtNgsy+veKG4fNLVqwad7ECKizUn2iQ/+IMQ==", - "requires": { - "@material/animation": "^0.25.0", - "@material/base": "^0.29.0", - "@material/theme": "^0.30.0" - } - }, - "@material/list": { - "version": "0.32.0", - "resolved": "https://registry.npmjs.org/@material/list/-/list-0.32.0.tgz", - "integrity": "sha512-03eZsHYRSS7b+fUsx5gBkRhUubfPYYg5Nr7PwLdEPLR5VuQ6RzgcNYcBnLtIa5rdvrd6NugNNSL9c2k27Qjt6g==", - "requires": { - "@material/ripple": "^0.32.0", - "@material/rtl": "^0.30.0", - "@material/theme": "^0.30.0", - "@material/typography": "^0.28.0" - } - }, - "@material/radio": { - "version": "0.32.0", - "resolved": "https://registry.npmjs.org/@material/radio/-/radio-0.32.0.tgz", - "integrity": "sha512-a+uUiCem0ULjcdH3mwOz/dabLGiiCshqr/Gu5xN1kB6bDLmXybM50DMgw3TowRXyyS4YOX6tm6j+af4dsiNJNQ==", - "requires": { - "@material/animation": "^0.25.0", - "@material/base": "^0.29.0", - "@material/ripple": "^0.32.0", - "@material/selection-control": "^0.32.0", - "@material/theme": "^0.30.0" - } - }, - "@material/ripple": { - "version": "0.32.0", - "resolved": "https://registry.npmjs.org/@material/ripple/-/ripple-0.32.0.tgz", - "integrity": "sha512-pfG16d1/46f4QnrUHG66aV22kbY7sh7n2HR/cFALX6D0l0Kae3+xjuUnr1yy32Y1tzLAc84U9jGEzTDykVff9A==", - "requires": { - "@material/base": "^0.29.0", - "@material/theme": "^0.30.0" - } - }, - "@material/select": { - "version": "0.32.0", - "resolved": "https://registry.npmjs.org/@material/select/-/select-0.32.0.tgz", - "integrity": "sha512-KLlP4i1QDzsDJoIW4qA1JB17zSrgHSG2PpxKeqhUjqb9W5Q71LJ6QjhPynFA897sq1Wd9WTSHl41BAu2qUZlFA==", - "requires": { - "@material/animation": "^0.25.0", - "@material/base": "^0.29.0", - "@material/list": "^0.32.0", - "@material/menu": "^0.31.0", - "@material/ripple": "^0.32.0", - "@material/rtl": "^0.30.0", - "@material/theme": "^0.30.0", - "@material/typography": "^0.28.0" - } - }, - "@material/selection-control": { - "version": "0.32.0", - "resolved": "https://registry.npmjs.org/@material/selection-control/-/selection-control-0.32.0.tgz", - "integrity": "sha512-zlq6x5n0pN3eKJQBYkWdh4UQScF7Ui7g7XIeeuKnNFo99oxJoKtuGk3WX5/OBc0wU4qe38rfQW6XGeFG4Adk3Q==", - "requires": { - "@material/ripple": "^0.32.0" - } - }, - "@material/slider": { - "version": "0.32.0", - "resolved": "https://registry.npmjs.org/@material/slider/-/slider-0.32.0.tgz", - "integrity": "sha512-FmV9tjzhj9KfTpxXL2YNgV3STQTWXmROp7SJqrz8v2JpDXiVyI/pq/DhcFLEMvs096cIZWgH+iyZPQGFTPH12A==", - "requires": { - "@material/animation": "^0.25.0", - "@material/base": "^0.29.0", - "@material/rtl": "^0.30.0", - "@material/theme": "^0.30.0" - } - }, - "@material/switch": { - "version": "0.32.0", - "resolved": "https://registry.npmjs.org/@material/switch/-/switch-0.32.0.tgz", - "integrity": "sha512-nn5HN8AdSb4aSOJEEG9wGvPg+wPhg2rMD3j8WTX1HZ7c0HklgM07SuNKI+Yz5VFgfA28m3qFJAdHIv7OdzSuaQ==", - "requires": { - "@material/animation": "^0.25.0", - "@material/elevation": "^0.28.0", - "@material/theme": "^0.30.0" - } - }, - "@material/tabs": { - "version": "0.32.0", - "resolved": "https://registry.npmjs.org/@material/tabs/-/tabs-0.32.0.tgz", - "integrity": "sha512-RWzxlQoR6MPqxCP2kVNrxg4+D2A5eT7WO0cqkoxsbDz8wAPeNlU/vdr17bnTlhAiiwcDCKulxHRNX7Gztwwg0A==", - "requires": { - "@material/animation": "^0.25.0", - "@material/base": "^0.29.0", - "@material/ripple": "^0.32.0", - "@material/rtl": "^0.30.0", - "@material/theme": "^0.30.0", - "@material/typography": "^0.28.0" - } - }, - "@material/textfield": { - "version": "0.32.0", - "resolved": "https://registry.npmjs.org/@material/textfield/-/textfield-0.32.0.tgz", - "integrity": "sha512-5gLDjBE14LqRT3NcToYZu/vVL/FzPY/kPT+oqzyZaRfvx3iyTBXSPsE0LOfGIgPv+Z65Z4g1PoccLWW/cZWHbw==", - "requires": { - "@material/animation": "^0.25.0", - "@material/base": "^0.29.0", - "@material/floating-label": "^0.32.0", - "@material/line-ripple": "^0.32.0", - "@material/ripple": "^0.32.0", - "@material/rtl": "^0.30.0", - "@material/theme": "^0.30.0", - "@material/typography": "^0.28.0" - } - }, - "@material/toolbar": { - "version": "0.32.0", - "resolved": "https://registry.npmjs.org/@material/toolbar/-/toolbar-0.32.0.tgz", - "integrity": "sha512-eDouRzRFqOpOigm1nOr8QrfEGJW87gdzhqlM8YbrIzUchm3JouAQgV62wvDs+mMpy2jXj1rMBZOTbtff78myqA==", - "requires": { - "@material/base": "^0.29.0", - "@material/elevation": "^0.28.0", - "@material/ripple": "^0.32.0", - "@material/rtl": "^0.30.0", - "@material/theme": "^0.30.0", - "@material/typography": "^0.28.0" - } - } - } - }, "math-expression-evaluator": { "version": "1.2.17", "resolved": "https://registry.npmjs.org/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz", @@ -10305,309 +9069,6 @@ "resolved": "https://registry.npmjs.org/preact/-/preact-8.3.1.tgz", "integrity": "sha512-s8H1Y8O9e+mOBo3UP1jvWqArPmjCba2lrrGLlq/0kN1XuIINUbYtf97iiXKxCuG3eYwmppPKnyW2DBrNj/TuTg==" }, - "preact-i18n": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/preact-i18n/-/preact-i18n-1.2.2.tgz", - "integrity": "sha512-1gn4rPrsH/LKjznMEq6oHwytU6y6oQN36wv+xiO3//hTHm8nB8KIFzEmwGEJ7EpSWhH7myE0t4YPfPvXFkwO9Q==", - "requires": { - "dlv": "^1.0.2" - } - }, - "preact-material-components": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/preact-material-components/-/preact-material-components-1.5.0.tgz", - "integrity": "sha512-WW5p+JPoAa8i2FClthiiG//Z+kg0iYnk1t8aZ8cPzDes+GNdOOI78rPrygKRIk3iaPerd6yh3nJ2E5pmB7n81w==", - "requires": { - "@material/animation": "^0.34.0", - "@material/auto-init": "^0.35.0", - "@material/base": "^0.35.0", - "@material/button": "^0.37.0", - "@material/card": "^0.37.0", - "@material/checkbox": "^0.37.0", - "@material/chips": "^0.37.0", - "@material/dialog": "^0.37.0", - "@material/drawer": "^0.36.0", - "@material/elevation": "^0.36.1", - "@material/fab": "^0.37.0", - "@material/form-field": "^0.37.0", - "@material/grid-list": "^0.36.0", - "@material/icon-toggle": "^0.37.0", - "@material/layout-grid": "^0.34.0", - "@material/line-ripple": "^0.35.0", - "@material/linear-progress": "^0.35.0", - "@material/list": "^0.37.0", - "@material/menu": "^0.36.1", - "@material/notched-outline": "^0.35.0", - "@material/radio": "^0.37.0", - "@material/ripple": "^0.37.0", - "@material/rtl": "^0.36.0", - "@material/select": "^0.37.0", - "@material/selection-control": "^0.37.0", - "@material/slider": "^0.36.0", - "@material/snackbar": "^0.36.0", - "@material/switch": "^0.36.0", - "@material/tabs": "^0.37.0", - "@material/textfield": "^0.37.0", - "@material/theme": "^0.35.0", - "@material/toolbar": "^0.37.0", - "@material/top-app-bar": "^0.37.0", - "@material/typography": "^0.35.0", - "material-components-web": "^0.37.0" - }, - "dependencies": { - "@material/animation": { - "version": "0.34.0", - "resolved": "https://registry.npmjs.org/@material/animation/-/animation-0.34.0.tgz", - "integrity": "sha512-HKWU+pHda+xSIV0lwrTMOb/N005NIAV7+tvEEjTiLrQx74eO6J9nIjfCpZ0W4D8Kb9K90lgHFo0ZRC6yDTjizQ==" - }, - "@material/base": { - "version": "0.35.0", - "resolved": "https://registry.npmjs.org/@material/base/-/base-0.35.0.tgz", - "integrity": "sha512-PYuluVzcH8hxtionVvpTSygTENlgyOHvJ5ka7JfbCRQfXlxjV8zKYwhh9u/1HqA6y1OonG1oGFCaBHopbdsNEQ==" - }, - "@material/drawer": { - "version": "0.36.1", - "resolved": "https://registry.npmjs.org/@material/drawer/-/drawer-0.36.1.tgz", - "integrity": "sha512-Y9vCu3M4RTAGiCstksMr7PyBs0TeM8w0bfulkqJkr49V5gJOCRTyf2lzmBNq3BhsB14LZ5f7MpI242VW/04cgg==", - "requires": { - "@material/animation": "^0.34.0", - "@material/base": "^0.35.0", - "@material/elevation": "^0.36.1", - "@material/rtl": "^0.36.0", - "@material/theme": "^0.35.0", - "@material/typography": "^0.35.0" - } - }, - "@material/elevation": { - "version": "0.36.1", - "resolved": "https://registry.npmjs.org/@material/elevation/-/elevation-0.36.1.tgz", - "integrity": "sha512-kh7paJc3jc+6O6Op93j8S/eFqiA9KhSsT/gtQeVbEt2ebGweh4TTc/Smm0D/RPOzifPL1mRMAQY7SgFchlz1AQ==", - "requires": { - "@material/animation": "^0.34.0", - "@material/theme": "^0.35.0" - } - }, - "@material/floating-label": { - "version": "0.37.1", - "resolved": "https://registry.npmjs.org/@material/floating-label/-/floating-label-0.37.1.tgz", - "integrity": "sha512-y/nH5zh56HvL5do9vZ84/ky70Cdd6/ws+IXXDPouUp9MFSP2jhXuuWDDns2vYFIZI/I58ldCtfPsn9bJTqmpTw==", - "requires": { - "@material/base": "^0.35.0", - "@material/rtl": "^0.36.0", - "@material/theme": "^0.35.0", - "@material/typography": "^0.37.1" - }, - "dependencies": { - "@material/typography": { - "version": "0.37.1", - "resolved": "https://registry.npmjs.org/@material/typography/-/typography-0.37.1.tgz", - "integrity": "sha512-njbRrUwSte+Ag2ZsQxYCZVXqYphm7Wbe1iFCzljRAZEcZJUuKkz30rx3IK5CrmwoIpLxcE2Y/2WoAj8a2Ear0A==" - } - } - }, - "@material/grid-list": { - "version": "0.36.0", - "resolved": "https://registry.npmjs.org/@material/grid-list/-/grid-list-0.36.0.tgz", - "integrity": "sha512-MnF6NY7NmFinz9+7Gh62zNK/AIrDmROPkyPoiMPBMtAdnuC5rqEDg14yIEGvBwdjrLQZ5bp8yTUR8dBsBpZTNg==", - "requires": { - "@material/base": "^0.35.0", - "@material/rtl": "^0.36.0", - "@material/theme": "^0.35.0", - "@material/typography": "^0.35.0" - } - }, - "@material/layout-grid": { - "version": "0.34.0", - "resolved": "https://registry.npmjs.org/@material/layout-grid/-/layout-grid-0.34.0.tgz", - "integrity": "sha512-LJ3LHCumfGftl1ihO0LW9JKsnR71nnlvpzhHdUlK6o1GPul+EEUUdOFN1zxI+Ik9iS++1na/Dg8f/1sdQUxj6w==" - }, - "@material/linear-progress": { - "version": "0.35.0", - "resolved": "https://registry.npmjs.org/@material/linear-progress/-/linear-progress-0.35.0.tgz", - "integrity": "sha512-ZU4wZxcJnkiu/jwp4EiwL3A61xuh2sdwthBTuySz1JPeipHUQ3t+lPzD5RwOQQ+akNTgf7q03s94Aaxq8ZUtlA==", - "requires": { - "@material/animation": "^0.34.0", - "@material/base": "^0.35.0", - "@material/theme": "^0.35.0" - } - }, - "@material/menu": { - "version": "0.36.1", - "resolved": "https://registry.npmjs.org/@material/menu/-/menu-0.36.1.tgz", - "integrity": "sha512-Bc1Bga7QPaBTw1+d50hvFth6I4HirBknur1lfOm+VQnLrmmCeHRBtpjT1l2PAgiFHFWu+3SY5HanwynEdFgKYQ==", - "requires": { - "@material/animation": "^0.34.0", - "@material/base": "^0.35.0", - "@material/elevation": "^0.36.1", - "@material/theme": "^0.35.0", - "@material/typography": "^0.35.0" - } - }, - "@material/rtl": { - "version": "0.36.0", - "resolved": "https://registry.npmjs.org/@material/rtl/-/rtl-0.36.0.tgz", - "integrity": "sha512-uCMwWGdKG0ooYh1kVINz7vTgSY++9wnvU3kOqjRdfOY+PZHWSa/X/EqRdE9Q1pUFwYlQeU2PXE/Z2dTK/nlziw==" - }, - "@material/snackbar": { - "version": "0.36.0", - "resolved": "https://registry.npmjs.org/@material/snackbar/-/snackbar-0.36.0.tgz", - "integrity": "sha512-Q5YL/DLa/cBcE8PGU1HGNsb63OoKknjmL4vYvIMlgy+uNljjXoVBg80Kl5sp8RMzf5XiHByeJaSS1XB7g1ynRQ==", - "requires": { - "@material/animation": "^0.34.0", - "@material/base": "^0.35.0", - "@material/rtl": "^0.36.0", - "@material/theme": "^0.35.0", - "@material/typography": "^0.35.0" - } - }, - "@material/theme": { - "version": "0.35.0", - "resolved": "https://registry.npmjs.org/@material/theme/-/theme-0.35.0.tgz", - "integrity": "sha512-jTjRDPKlWVCNnSs4RRe/eq9+F5lFBzxfbuI7klgCR6jTXRMB93jKKKO7k6chgo9l0oObhLh81ao6sq/eV0WFIw==" - }, - "@material/top-app-bar": { - "version": "0.37.1", - "resolved": "https://registry.npmjs.org/@material/top-app-bar/-/top-app-bar-0.37.1.tgz", - "integrity": "sha512-tITFhLRdD6RX0dHF4qa+ptZlmm+JrIej9MlSp1STeSmWERVaPG0JAK4NruAp+dnPKLTET3uG7Dh6UByxHh2X4A==", - "requires": { - "@material/animation": "^0.34.0", - "@material/base": "^0.35.0", - "@material/elevation": "^0.36.1", - "@material/ripple": "^0.37.1", - "@material/rtl": "^0.36.0", - "@material/theme": "^0.35.0", - "@material/typography": "^0.37.1" - }, - "dependencies": { - "@material/typography": { - "version": "0.37.1", - "resolved": "https://registry.npmjs.org/@material/typography/-/typography-0.37.1.tgz", - "integrity": "sha512-njbRrUwSte+Ag2ZsQxYCZVXqYphm7Wbe1iFCzljRAZEcZJUuKkz30rx3IK5CrmwoIpLxcE2Y/2WoAj8a2Ear0A==" - } - } - }, - "@material/typography": { - "version": "0.35.0", - "resolved": "https://registry.npmjs.org/@material/typography/-/typography-0.35.0.tgz", - "integrity": "sha512-7uXybSQToQCgB19RT0Pq47NkXSSojpbccVAObw/7fmfNUTcr3elNc8iPS/f1slYDTDEdyqM7hCreLcfZQK8ATQ==" - }, - "material-components-web": { - "version": "0.37.1", - "resolved": "https://registry.npmjs.org/material-components-web/-/material-components-web-0.37.1.tgz", - "integrity": "sha512-F9SY7Ak0RXJdf66M2k9WkVmpy7o8TeKC0F6clRbfgK7QNUtwR4l7AUL3N0FA2uz1LJV3LcAyDeOkfCDU8nD+IA==", - "requires": { - "@material/animation": "^0.34.0", - "@material/auto-init": "^0.35.0", - "@material/base": "^0.35.0", - "@material/button": "^0.37.1", - "@material/card": "^0.37.1", - "@material/checkbox": "^0.37.1", - "@material/chips": "^0.37.1", - "@material/dialog": "^0.37.1", - "@material/drawer": "^0.37.1", - "@material/elevation": "^0.36.1", - "@material/fab": "^0.37.1", - "@material/floating-label": "^0.37.1", - "@material/form-field": "^0.37.1", - "@material/grid-list": "^0.37.1", - "@material/icon-button": "^0.37.1", - "@material/icon-toggle": "^0.37.1", - "@material/image-list": "^0.37.1", - "@material/layout-grid": "^0.34.0", - "@material/line-ripple": "^0.35.0", - "@material/linear-progress": "^0.35.0", - "@material/list": "^0.37.1", - "@material/menu": "^0.37.1", - "@material/notched-outline": "^0.37.1", - "@material/radio": "^0.37.1", - "@material/ripple": "^0.37.1", - "@material/rtl": "^0.36.0", - "@material/select": "^0.37.1", - "@material/selection-control": "^0.37.1", - "@material/shape": "^0.35.0", - "@material/slider": "^0.36.0", - "@material/snackbar": "^0.37.1", - "@material/switch": "^0.36.1", - "@material/tabs": "^0.37.1", - "@material/textfield": "^0.37.1", - "@material/theme": "^0.35.0", - "@material/toolbar": "^0.37.1", - "@material/top-app-bar": "^0.37.1", - "@material/typography": "^0.37.1" - }, - "dependencies": { - "@material/drawer": { - "version": "0.37.1", - "resolved": "https://registry.npmjs.org/@material/drawer/-/drawer-0.37.1.tgz", - "integrity": "sha512-JZSDEbECK/grxnK/G8Mbwd5eETTMLrW9f6NfaId5eNvfWhqKEeVRBpuxscuuuli/z/ciHDb+Okrga6bHCQWEEQ==", - "requires": { - "@material/animation": "^0.34.0", - "@material/base": "^0.35.0", - "@material/elevation": "^0.36.1", - "@material/rtl": "^0.36.0", - "@material/theme": "^0.35.0", - "@material/typography": "^0.37.1" - } - }, - "@material/grid-list": { - "version": "0.37.1", - "resolved": "https://registry.npmjs.org/@material/grid-list/-/grid-list-0.37.1.tgz", - "integrity": "sha512-YbeFceFfEtPiFUuCHTJwOjIzujkiQCK9vZ+cmJglv4zHd9nnFS7sJqY6POxjwi1NKmC2yyZattagqV/V31WRjQ==", - "requires": { - "@material/base": "^0.35.0", - "@material/rtl": "^0.36.0", - "@material/theme": "^0.35.0", - "@material/typography": "^0.37.1" - } - }, - "@material/menu": { - "version": "0.37.1", - "resolved": "https://registry.npmjs.org/@material/menu/-/menu-0.37.1.tgz", - "integrity": "sha512-Q6fmjFM1kVYsnxGYVTao5zd7hrQpZ6BiwescDBZvQbhfGM/d2RnSIUdczojZR8qxA4vgOQpm26yReKk22FenSA==", - "requires": { - "@material/animation": "^0.34.0", - "@material/base": "^0.35.0", - "@material/elevation": "^0.36.1", - "@material/theme": "^0.35.0", - "@material/typography": "^0.37.1" - } - }, - "@material/notched-outline": { - "version": "0.37.1", - "resolved": "https://registry.npmjs.org/@material/notched-outline/-/notched-outline-0.37.1.tgz", - "integrity": "sha512-IDaVgYWzzyYwOqjrhX8cdKFjBRnQvukwJNaBqlGv/Ikc+q7Q5UQLNGKQijYlCTR7lrzifIT3z6KpTFmYivbfDg==", - "requires": { - "@material/animation": "^0.34.0", - "@material/base": "^0.35.0", - "@material/theme": "^0.35.0" - } - }, - "@material/snackbar": { - "version": "0.37.1", - "resolved": "https://registry.npmjs.org/@material/snackbar/-/snackbar-0.37.1.tgz", - "integrity": "sha512-zx703CH90k2ELwzGciLmC6W2gzrqWt3UmXp/gXFPIYAQujn/NShNKweox2qPHdTw5C7MCCXwOTg0HnlIcmVLnA==", - "requires": { - "@material/animation": "^0.34.0", - "@material/base": "^0.35.0", - "@material/rtl": "^0.36.0", - "@material/theme": "^0.35.0", - "@material/typography": "^0.37.1" - } - }, - "@material/typography": { - "version": "0.37.1", - "resolved": "https://registry.npmjs.org/@material/typography/-/typography-0.37.1.tgz", - "integrity": "sha512-njbRrUwSte+Ag2ZsQxYCZVXqYphm7Wbe1iFCzljRAZEcZJUuKkz30rx3IK5CrmwoIpLxcE2Y/2WoAj8a2Ear0A==" - } - } - } - } - }, - "preact-router": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/preact-router/-/preact-router-2.6.1.tgz", - "integrity": "sha512-Ql3fptQ8hiioIw5zUcWUq5NShl7yFR4e6KBUzLbGI7+HKMIgBnH+aOITN5IrY1rbr2vhKXBdHdd9nLbbjcJTOQ==" - }, "prepend-http": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", @@ -10627,10 +9088,9 @@ "dev": true }, "pretty-bytes": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-4.0.2.tgz", - "integrity": "sha1-sr+C5zUNZcbDOqlaqlpPYyf2HNk=", - "dev": true + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.1.0.tgz", + "integrity": "sha512-wa5+qGVg9Yt7PB6rYm3kXlKzgzgivYTLRandezh43jjRqgyDyP+9YxfJpJiLs9yKD1WeU8/OvtToWpW7255FtA==" }, "pretty-error": { "version": "2.1.1", @@ -12226,9 +10686,9 @@ "dev": true }, "stdout-stream": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.0.tgz", - "integrity": "sha1-osfIWH5U2UJ+qe2zrD8s1SLfN4s=", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz", + "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==", "dev": true, "requires": { "readable-stream": "^2.0.1" @@ -12445,11 +10905,6 @@ "integrity": "sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ=", "dev": true }, - "tabbable": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-1.1.2.tgz", - "integrity": "sha512-77oqsKEPrxIwgRcXUwipkj9W5ItO97L6eUT1Ar7vh+El16Zm4M6V+YU1cbipHEa6q0Yjw8O3Hoh8oRgatV5s7A==" - }, "tapable": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.0.0.tgz", @@ -12625,27 +11080,12 @@ "dev": true }, "true-case-path": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.2.tgz", - "integrity": "sha1-fskRMJJHZsf1c74wIMNPj9/QDWI=", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz", + "integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==", "dev": true, "requires": { - "glob": "^6.0.4" - }, - "dependencies": { - "glob": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", - "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", - "dev": true, - "requires": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "2 || 3", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - } + "glob": "^7.1.2" } }, "tryer": { @@ -13359,9 +11799,9 @@ } }, "webpack": { - "version": "4.16.5", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.16.5.tgz", - "integrity": "sha512-i5cHYHonzSc1zBuwB5MSzW4v9cScZFbprkHK8ZgzPDCRkQXGGpYzPmJhbus5bOrZ0tXTcQp+xyImRSvKb0b+Kw==", + "version": "4.17.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.17.1.tgz", + "integrity": "sha512-vdPYogljzWPhFKDj3Gcp01Vqgu7K3IQlybc3XIdKSQHelK1C3eIQuysEUR7MxKJmdandZlQB/9BG2Jb1leJHaw==", "dev": true, "requires": { "@webassemblyjs/ast": "1.5.13", @@ -13392,15 +11832,15 @@ }, "dependencies": { "ajv": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.2.tgz", - "integrity": "sha512-hOs7GfvI6tUI1LfZddH82ky6mOMyTuY0mk7kE2pWpmhhUSkumzaTO5vbVwij39MdwPQWCV4Zv57Eo06NtL/GVA==", + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.3.tgz", + "integrity": "sha512-LqZ9wY+fx3UMiiPd741yB2pj3hhil+hQc8taf4o2QGRFpWgZ2V5C8HA165DY9sS3fJwsk7uT7ZlFEyC3Ig3lLg==", "dev": true, "requires": { "fast-deep-equal": "^2.0.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.1" + "uri-js": "^4.2.2" } }, "fast-deep-equal": { @@ -13595,6 +12035,24 @@ "mkdirp": "^0.5.1", "opener": "^1.4.3", "ws": "^4.0.0" + }, + "dependencies": { + "gzip-size": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-4.1.0.tgz", + "integrity": "sha1-iuCWJX6r59acRb4rZ8RIEk/7UXw=", + "dev": true, + "requires": { + "duplexer": "^0.1.1", + "pify": "^3.0.0" + } + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + } } }, "webpack-cli": { @@ -14187,6 +12645,12 @@ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", "dev": true }, + "pretty-bytes": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-4.0.2.tgz", + "integrity": "sha1-sr+C5zUNZcbDOqlaqlpPYyf2HNk=", + "dev": true + }, "read-pkg": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", diff --git a/package.json b/package.json index 33c7ad7d..c71c2fab 100644 --- a/package.json +++ b/package.json @@ -18,6 +18,7 @@ }, "devDependencies": { "@types/node": "^9.6.23", + "@types/pretty-bytes": "^5.1.0", "@types/webassembly-js-api": "0.0.1", "babel-loader": "^7.1.5", "babel-plugin-jsx-pragmatic": "^1.0.2", @@ -62,15 +63,10 @@ "webpack-plugin-replace": "^1.1.1" }, "dependencies": { - "@types/filesize": "^3.6.0", "classnames": "^2.2.6", "comlink": "^3.0.3", "comlink-loader": "^1.0.0", - "filesize": "^3.6.1", - "material-components-web": "^0.32.0", "preact": "^8.3.1", - "preact-i18n": "^1.2.2", - "preact-material-components": "^1.4.7", - "preact-router": "^2.6.1" + "pretty-bytes": "^5.1.0" } } diff --git a/src/components/App/index.tsx b/src/components/App/index.tsx index 01a7f24b..9b344a00 100644 --- a/src/components/App/index.tsx +++ b/src/components/App/index.tsx @@ -1,5 +1,4 @@ import { h, Component } from 'preact'; -import { partial } from 'filesize'; import { bind, linkRef, bitmapToImageData } from '../../lib/util'; import * as style from './style.scss'; @@ -38,6 +37,8 @@ import { import { decodeImage } from '../../codecs/decoders'; import { cleanMerge, cleanSet } from '../../lib/clean-modify'; +type Orientation = 'horizontal' | 'vertical'; + interface SourceImage { file: File; bmp: ImageBitmap; @@ -65,14 +66,13 @@ interface State { images: [EncodedImage, EncodedImage]; loading: boolean; error?: string; + orientation: Orientation; } interface UpdateImageOptions { skipPreprocessing?: boolean; } -const filesize = partial({}); - async function preprocessImage( source: SourceImage, preprocessData: PreprocessorState, @@ -115,6 +115,8 @@ async function compressImage( } export default class App extends Component { + widthQuery = window.matchMedia('(min-width: 500px)'); + state: State = { loading: false, images: [ @@ -133,6 +135,7 @@ export default class App extends Component { loading: false, }, ], + orientation: this.widthQuery.matches ? 'horizontal' : 'vertical', }; private snackbar?: SnackBarElement; @@ -148,6 +151,13 @@ export default class App extends Component { window.STATE = this.state; }; } + + this.widthQuery.addListener(this.onMobileWidthChange); + } + + @bind + onMobileWidthChange() { + this.setState({ orientation: this.widthQuery.matches ? 'horizontal' : 'vertical' }); } onEncoderTypeChange(index: 0 | 1, newType: EncoderType): void { @@ -289,33 +299,32 @@ export default class App extends Component { this.snackbar.showSnackbar({ message: error }); } - render({ }: Props, { loading, images }: State) { + render({ }: Props, { loading, images, source, orientation }: State) { const [leftImageBmp, rightImageBmp] = images.map(i => i.bmp); const anyLoading = loading || images.some(image => image.loading); return ( -
+
{(leftImageBmp && rightImageBmp) ? ( - + ) : ( -
-

Select an image

- -
- )} - {images.map((image, index) => ( - - {encoderMap[image.encoderState.type].label} - {(image.downloadUrl && image.file) && ( - đź”» - )} - {image.file && ` - ${filesize(image.file.size)}`} - - ))} - {images.map((image, index) => ( +
+

Drop, paste or select an image

+ +
+ )} + {(leftImageBmp && rightImageBmp) && images.map((image, index) => ( > { + file?: FileContents; + compareTo?: FileContents; + increaseClass?: string; + decreaseClass?: string; +} + +interface State { + size?: number; + sizeFormatted?: string; + compareSize?: number; + compareSizeFormatted?: string; +} + +function calculateSize(data: FileContents): number { + return data instanceof ArrayBuffer ? data.byteLength : data.size; +} + +export default class FileSize extends Component { + constructor(props: Props) { + super(props); + if (props.file) { + this.computeSize('size', props.file); + } + if (props.compareTo) { + this.computeSize('compareSize', props.compareTo); + } + } + + componentWillReceiveProps({ file, compareTo }: Props) { + if (file !== this.props.file) { + this.computeSize('size', file); + } + if (compareTo !== this.props.compareTo) { + this.computeSize('compareSize', compareTo); + } + } + + componentDidMount() { + this.applyStyles(); + } + + componentDidUpdate() { + this.applyStyles(); + } + + applyStyles() { + const { size, compareSize = 0 } = this.state; + if (size != null && this.base) { + const delta = size && compareSize ? (size - compareSize) / compareSize : 0; + this.base.style.setProperty('--size', '' + size); + this.base.style.setProperty('--size-delta', '' + Math.round(Math.abs(delta * 100))); + } + } + + computeSize(prop: keyof State, data?: FileContents) { + const size = data ? calculateSize(data) : 0; + const pretty = prettyBytes(size); + this.setState({ + [prop]: size, + [prop + 'Formatted']: pretty, + }); + } + + render( + { file, compareTo, increaseClass, decreaseClass, ...props }: Props, + { size, sizeFormatted = '', compareSize }: State, + ) { + const delta = size && compareSize ? (size - compareSize) / compareSize : 0; + return ( + + {sizeFormatted} + {compareTo && ( + 0 ? increaseClass : decreaseClass}> + {delta > 0 && '+'} + {Math.round(delta * 100)}% + + )} + + ); + } +} diff --git a/src/components/Options/index.tsx b/src/components/Options/index.tsx index 27d0e37a..33f2e12a 100644 --- a/src/components/Options/index.tsx +++ b/src/components/Options/index.tsx @@ -30,11 +30,15 @@ import { encoders, encodersSupported, EncoderSupportMap, + encoderMap, } from '../../codecs/encoders'; import { QuantizeOptions } from '../../codecs/imagequant/quantizer'; import { PreprocessorState } from '../../codecs/preprocessors'; +import FileSize from '../FileSize'; +import { DownloadIcon } from '../../lib/icons'; + const encoderOptionsComponentMap = { [identity.type]: undefined, [optiPNG.type]: OptiPNGEncoderOptions, @@ -51,8 +55,17 @@ const encoderOptionsComponentMap = { [browserPDF.type]: undefined, }; +const titles = { + horizontal: ['Left Image', 'Right Image'], + vertical: ['Top Image', 'Bottom Image'], +}; + interface Props { - class?: string; + orientation: 'horizontal' | 'vertical'; + imageIndex: number; + sourceImageFile?: File; + imageFile?: File; + downloadUrl?: string; encoderState: EncoderState; preprocessorState: PreprocessorState; onEncoderTypeChange(newType: EncoderType): void; @@ -100,57 +113,94 @@ export default class Options extends Component { } render( - { class: className, encoderState, preprocessorState, onEncoderOptionsChange }: Props, + { + sourceImageFile, + imageIndex, + imageFile, + downloadUrl, + orientation, + encoderState, + preprocessorState, + onEncoderOptionsChange, + }: Props, { encoderSupportMap }: State, ) { // tslint:disable variable-name const EncoderOptionComponent = encoderOptionsComponentMap[encoderState.type]; return ( -
- {encoderState.type !== 'identity' && ( -
-

Quantization

- - {preprocessorState.quantizer.enabled && - +
+

+ {titles[orientation][imageIndex]} + {', '} + {encoderMap[encoderState.type].label} + + {(downloadUrl && imageFile) && ( + + + + )} +

+ +
+
+ {encoderSupportMap ? + + : + } -
-
- )} - - {EncoderOptionComponent && - + +
+ - } +
); } diff --git a/src/components/Options/style.scss b/src/components/Options/style.scss index 727aaac6..8f33ee19 100644 --- a/src/components/Options/style.scss +++ b/src/components/Options/style.scss @@ -3,36 +3,165 @@ Note: These styles are temporary. They will be replaced before going live. */ .options { - width: 180px; - padding: 10px; - background: rgba(50,50,50,0.8); - border: 1px solid #222; - box-shadow: inset 0 0 1px #fff, 0 0 1px #fff; - border-radius: 3px; - color: #eee; - overflow: auto; - z-index: 1; - transition: opacity 300ms ease; + box-sizing: border-box; + padding: 0; + background: rgba(40,40,40,0.8); + box-shadow: 0 1px 3px rgba(0,0,0,0.5); + color: #eee; + overflow: auto; + z-index: 1; + opacity: 0.9; + transform-origin: 50% 140%; + transition: opacity 300ms linear; + animation: options-open 500ms cubic-bezier(.6,1.6,.6,1) forwards 1; - &:not(:hover) { - opacity: .6; + &.horizontal { + border-radius: 1px 1px 5px 5px; + width: 230px; + + > .inner { + max-height: 80vh; + overflow: auto; + -webkit-overflow-scrolling: touch; + -ms-touch-action: pan-y; + touch-action: pan-y; + } + } + + &.vertical { + opacity: 1; + margin: 0 5px 10px; + border-radius: 0 0 5px 5px; + } + + &:hover, &:focus, &:focus-within { + opacity: 1; + } + + @keyframes options-open { + from { + transform: translateY(100px) scale(.8); + } + } + + .picker { + margin: 5px 15px; + + select { + display: block; + width: 100%; + box-sizing: border-box; + -webkit-appearance: none; + appearance: none; + padding: 10px 30px 10px 10px; + background: url('data:image/svg+xml,') right center no-repeat; + background-color: var(--gray-dark); + opacity: 0.9; + border: none; + font: inherit; + color: white; + + &:hover { + opacity: 1; + } + &:focus { + opacity: 1; + outline: none; + box-shadow: 0 0 0 2px var(--button-fg, #ccc); + } + } + } + + .title { + display: flex; + align-items: center; + padding: 10px 15px; + margin: 0 0 12px; + background: rgba(0,0,0,0.9); + font: inherit; + + .download { + flex: 0; + margin: 0 0 0 auto; + background: rgba(0,0,0,0.7); + border-radius: 50%; + padding: 5px; + width: 16px; + height: 16px; + text-decoration: none; + + > svg { + width: 16px; + height: 16px; + fill: #fff; + } + + &:hover { + background-color: rgba(255,255,255,0.3); + } + } + } + + label { + display: block; + padding: 5px; + margin: 0 10px; + + input { + vertical-align: middle; } - label { - display: block; - padding: 5px; - font-weight: bold; + input[type=checkbox], + input[type=radio] { + margin-right: 8px; + } - select { - margin-left: 5px; + range-input { + display: block; + width: 90%; + } + } + + .size-details { + padding: 5px 15px; + background: rgba(0,0,0,0.5); + + .size { + font-weight: normal; + + .increase, + .decrease { + font-style: italic; + filter: #{"grayscale(calc(50% - var(--size-delta, 50) * 0.5%))"}; + + &:before { + content: ' ('; } - - input { - vertical-align: middle; + &:after { + content: ')'; } - } + } - pre { - font-size: 10px; + .increase { + color: var(--negative); + } + .decrease { + color: var(--positive); + } } + } +} + + +.quantization { + padding: 5px 0; + margin: 5px 0; + box-shadow: inset 0 -.5px 0 rgba(0,0,0,0.25), 0 .5px 0 rgba(255,255,255,0.15); + + .toggle { + display: flex; + position: relative; + align-content: center; + font-size: 14px; + } } diff --git a/src/components/Output/custom-els/TwoUp/index.ts b/src/components/Output/custom-els/TwoUp/index.ts index 7ba144f8..53966c0a 100644 --- a/src/components/Output/custom-els/TwoUp/index.ts +++ b/src/components/Output/custom-els/TwoUp/index.ts @@ -56,6 +56,10 @@ export default class TwoUp extends HTMLElement { } connectedCallback() { + this._handle.innerHTML = `
${ + `` + }
`; + this._childrenChange(); if (!this._everConnected) { this._resetPosition(); diff --git a/src/components/Output/custom-els/TwoUp/styles.css b/src/components/Output/custom-els/TwoUp/styles.css index 19e547b3..f2069cba 100644 --- a/src/components/Output/custom-els/TwoUp/styles.css +++ b/src/components/Output/custom-els/TwoUp/styles.css @@ -2,6 +2,10 @@ two-up { display: grid; position: relative; --split-point: 0; + --accent-color: #777; + --track-color: var(--accent-color); + --thumb-background: #fff; + --thumb-color: var(--accent-color); } two-up > * { @@ -18,33 +22,47 @@ two-up[legacy-clip-compat] > :not(.twoUpHandle) { touch-action: none; position: relative; width: 10px; - background: red; + background: var(--track-color); transform: translateX(var(--split-point)) translateX(-50%); + box-shadow: inset 4px 0 0 rgba(0,0,0,0.1), 0 1px 4px rgba(0,0,0,0.4); will-change: transform; + cursor: ew-resize; } -.twoUpHandle::after { - content: ''; - display: block; +.scrubber { + display: flex; position: absolute; top: 50%; left: 50%; + transform-origin: 50% 50%; transform: translate(-50%, -50%); - width: 80px; - height: 40px; - background: red; - border-radius: 20px; + width: 62px; + height: 56px; + background: var(--thumb-background); + border: 1px solid rgba(0,0,0,0.2); + border-radius: 5px; + box-shadow: 0 1px 4px rgba(0,0,0,0.1); + color: var(--thumb-color); +} +.scrubber svg { + flex: 1; + margin: 0 10px; } two-up[orientation='vertical'] .twoUpHandle { width: auto; - height: 10px; + height: 7px; transform: translateY(var(--split-point)) translateY(-50%); + box-shadow: inset 0 3px 0 rgba(0,0,0,0.1), 0 1px 4px rgba(0,0,0,0.4); + cursor: ns-resize; } -two-up[orientation='vertical'] .twoUpHandle::after { - width: 40px; - height: 80px; +two-up[orientation='vertical'] .scrubber { + width: 46px; + height: 40px; + font-size: 18px; + box-shadow: 1px 0 4px rgba(0,0,0,0.1); + transform: translate(-50%, -50%) rotate(-90deg); } two-up > :nth-child(1):not(.twoUpHandle) { diff --git a/src/components/Output/index.tsx b/src/components/Output/index.tsx index 99cdaff3..74c4ad4b 100644 --- a/src/components/Output/index.tsx +++ b/src/components/Output/index.tsx @@ -3,34 +3,35 @@ import PinchZoom from './custom-els/PinchZoom'; import './custom-els/PinchZoom'; import './custom-els/TwoUp'; import * as style from './style.scss'; -import { bind, drawBitmapToCanvas, linkRef } from '../../lib/util'; +import { bind, shallowEqual, drawBitmapToCanvas, linkRef } from '../../lib/util'; +import { ToggleIcon, AddIcon, RemoveIcon } from '../../lib/icons'; import { twoUpHandle } from './custom-els/TwoUp/styles.css'; interface Props { + orientation: 'horizontal' | 'vertical'; leftImg: ImageBitmap; rightImg: ImageBitmap; } interface State { - verticalTwoUp: boolean; + scale: number; + editingScale: boolean; + altBackground: boolean; } export default class Output extends Component { - widthQuery = window.matchMedia('(min-width: 500px)'); state: State = { - verticalTwoUp: !this.widthQuery.matches, + scale: 1, + editingScale: false, + altBackground: false, }; canvasLeft?: HTMLCanvasElement; canvasRight?: HTMLCanvasElement; pinchZoomLeft?: PinchZoom; pinchZoomRight?: PinchZoom; + scaleInput?: HTMLInputElement; retargetedEvents = new WeakSet(); - constructor() { - super(); - this.widthQuery.addListener(this.onMobileWidthChange); - } - componentDidMount() { if (this.canvasLeft) { drawBitmapToCanvas(this.canvasLeft, this.props.leftImg); @@ -40,29 +41,76 @@ export default class Output extends Component { } } - componentDidUpdate(prevProps: Props) { + componentDidUpdate(prevProps: Props, prevState: State) { if (prevProps.leftImg !== this.props.leftImg && this.canvasLeft) { drawBitmapToCanvas(this.canvasLeft, this.props.leftImg); } if (prevProps.rightImg !== this.props.rightImg && this.canvasRight) { drawBitmapToCanvas(this.canvasRight, this.props.rightImg); } + + const { scale } = this.state; + if (scale !== prevState.scale && this.pinchZoomLeft && this.pinchZoomRight) { + // @TODO it would be nice if PinchZoom exposed a variant of setTransform() that + // preserved translation. It currently only does this for mouse wheel events. + this.pinchZoomLeft.setTransform({ scale }); + this.pinchZoomRight.setTransform({ scale }); + } } shouldComponentUpdate(nextProps: Props, nextState: State) { - return this.props.leftImg !== nextProps.leftImg || - this.props.rightImg !== nextProps.rightImg || - this.state.verticalTwoUp !== nextState.verticalTwoUp; + return !shallowEqual(this.props, nextProps) || !shallowEqual(this.state, nextState); } @bind - onMobileWidthChange() { - this.setState({ verticalTwoUp: !this.widthQuery.matches }); + toggleBackground() { + this.setState({ + altBackground: !this.state.altBackground, + }); + } + + @bind + zoomIn() { + this.setState({ + scale: Math.min(this.state.scale * 1.25, 100), + }); + } + + @bind + zoomOut() { + this.setState({ + scale: Math.max(this.state.scale / 1.25, 0.0001), + }); + } + + @bind + editScale() { + this.setState({ editingScale: true }, () => { + if (this.scaleInput) this.scaleInput.focus(); + }); + } + + @bind + cancelEditScale() { + this.setState({ editingScale: false }); + } + + @bind + onScaleInputChanged(event: Event) { + const target = event.target as HTMLInputElement; + const percent = parseFloat(target.value); + if (isNaN(percent)) return; + this.setState({ + scale: percent / 100, + }); } @bind onPinchZoomLeftChange(event: Event) { if (!this.pinchZoomRight || !this.pinchZoomLeft) throw Error('Missing pinch-zoom element'); + this.setState({ + scale: this.pinchZoomLeft.scale, + }); this.pinchZoomRight.setTransform({ scale: this.pinchZoomLeft.scale, x: this.pinchZoomLeft.x, @@ -97,11 +145,14 @@ export default class Output extends Component { this.pinchZoomLeft.dispatchEvent(clonedEvent); } - render({ leftImg, rightImg }: Props, { verticalTwoUp }: State) { + render( + { orientation, leftImg, rightImg }: Props, + { scale, editingScale, altBackground }: State, + ) { return ( -
+
{ onMouseDownCapture={this.onRetargetableEvent} onWheelCapture={this.onRetargetableEvent} > - + { /> + +
+
+ + {editingScale ? ( + + ) : ( + + {Math.round(scale * 100)} + % + + )} + +
+ +
); } diff --git a/src/components/Output/style.scss b/src/components/Output/style.scss index 71a38b55..d59f3605 100644 --- a/src/components/Output/style.scss +++ b/src/components/Output/style.scss @@ -14,16 +14,127 @@ Note: These styles are temporary. They will be replaced before going live. .output { @extend %fill; + background: url('data:image/svg+xml,') center repeat; + + &:before { + content: ''; + @extend %fill; + background: #000; + opacity: 0; + transition: opacity 500ms ease; + } + &.altBackground:before { + opacity: .6; + } > two-up { @extend %fill; + --accent-color: var(--button-fg); > pinch-zoom { @extend %fill; + outline: none; } } } +.controls { + position: absolute; + display: flex; + justify-content: center; + left: 220px; + right: 220px; + bottom: 0; + padding: 9px; + overflow: hidden; + flex-wrap: wrap; + contain: content; + + @media (max-width: 680px) { + top: 0; + bottom: auto; + left: 0; + right: 0; + } + + > * { + z-index: 2; + } + + .group { + display: flex; + } + + .button, + .zoom { + display: flex; + align-items: center; + flex: 0; + box-sizing: border-box; + height: 48px; + padding: 0 16px; + margin: 4px; + background-color: #fff; + border: 1px solid rgba(0,0,0,0.2); + border-radius: 5px; + line-height: 1; + font-size: 110%; + white-space: nowrap; + + &:focus { + box-shadow: 0 0 0 2px var(--button-fg); + outline: none; + z-index: 1; + } + } + + .button { + text-transform: uppercase; + color: var(--button-fg); + cursor: pointer; + text-indent: 6px; + } + + .button:hover { + background-color: #eee; + } + + .zoom { + flex: 0 0 6em; + color: #625E80; + font: inherit; + cursor: text; + width: 6em; + text-align: center; + justify-content: center; + + &:focus { + box-shadow: inset 0 1px 4px rgba(0,0,0,0.2), 0 0 0 2px var(--button-fg); + } + + strong { + position: relative; + top: 1px; + margin: 0 3px 0 0; + color: #888; + font-weight: normal; + border-bottom: 1px dashed #999; + } + } + + .group > :not(:first-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0; + margin-left: 0; + } + .group > :not(:last-child) { + margin-right: 0; + border-right-width: 0; + border-top-right-radius: 0; + border-bottom-right-radius: 0; + } +} + .outputCanvas { image-rendering: pixelated; } diff --git a/src/lib/icons.tsx b/src/lib/icons.tsx new file mode 100644 index 00000000..7ada39cc --- /dev/null +++ b/src/lib/icons.tsx @@ -0,0 +1,33 @@ +import { h } from 'preact'; + +// tslint:disable:max-line-length variable-name + +export interface IconProps extends JSX.HTMLAttributes {} + +const Icon = (props: IconProps) => ( + +); + +export const DownloadIcon = (props: IconProps) => ( + + + +); + +export const ToggleIcon = (props: IconProps) => ( + + + +); + +export const AddIcon = (props: IconProps) => ( + + + +); + +export const RemoveIcon = (props: IconProps) => ( + + + +); diff --git a/src/lib/util.ts b/src/lib/util.ts index 3017719e..ff270862 100644 --- a/src/lib/util.ts +++ b/src/lib/util.ts @@ -25,6 +25,15 @@ export function bind(target: any, propertyKey: string, descriptor: PropertyDescr }; } +/** Compare two objects, returning a boolean indicating if + * they have the same properties and strictly equal values. + */ +export function shallowEqual(one: any, two: any) { + for (const i in one) if (one[i] !== two[i]) return false; + for (const i in two) if (!(i in one)) return false; + return true; +} + /** Creates a function ref that assigns its value to a given property of an object. * @example * // element is stored as `this.foo` when rendered. diff --git a/src/style/index.scss b/src/style/index.scss index 8af04066..1f0053f0 100644 --- a/src/style/index.scss +++ b/src/style/index.scss @@ -9,8 +9,18 @@ html, body { width: 100%; padding: 0; margin: 0; - font: 14px/1.3 Roboto,'Helvetica Neue',arial,helvetica,sans-serif; + font: 12px/1.3 system-ui, -apple-system, BlinkMacSystemFont, Roboto, Helvetica, sans-serif; overflow: hidden; overscroll-behavior: none; contain: strict; } + +:root { + --gray-dark: rgba(0,0,0,0.8); + + --button-fg-color: 95, 180, 228; + --button-fg: rgb(95, 180, 228); + + --negative: rgb(207, 113, 127); + --positive: rgb(149, 212, 159); +}