diff --git a/package-lock.json b/package-lock.json index 0f2a0fe4..db6db9b4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1211,6 +1211,29 @@ "resolved": "https://registry.npmjs.org/@csstools/normalize.css/-/normalize.css-10.1.0.tgz", "integrity": "sha512-ij4wRiunFfaJxjB0BdrYHIH8FxBJpOwNPhhAcunlmPdXudL1WQV1qoP9un6JsEBAgQH+7UXyyjh0g7jTxXK6tg==" }, + "@emotion/is-prop-valid": { + "version": "0.8.8", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz", + "integrity": "sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==", + "requires": { + "@emotion/memoize": "0.7.4" + } + }, + "@emotion/memoize": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz", + "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==" + }, + "@emotion/stylis": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/@emotion/stylis/-/stylis-0.8.5.tgz", + "integrity": "sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ==" + }, + "@emotion/unitless": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", + "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==" + }, "@eslint/eslintrc": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.0.tgz", @@ -1242,6 +1265,35 @@ } } }, + "@fortawesome/fontawesome-common-types": { + "version": "0.2.36", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.2.36.tgz", + "integrity": "sha512-a/7BiSgobHAgBWeN7N0w+lAhInrGxksn13uK7231n2m8EDPE3BMCl9NZLTGrj9ZXfCmC6LM0QLqXidIizVQ6yg==" + }, + "@fortawesome/fontawesome-svg-core": { + "version": "1.2.36", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-1.2.36.tgz", + "integrity": "sha512-YUcsLQKYb6DmaJjIHdDWpBIGCcyE/W+p/LMGvjQem55Mm2XWVAP5kWTMKWLv9lwpCVjpLxPyOMOyUocP1GxrtA==", + "requires": { + "@fortawesome/fontawesome-common-types": "^0.2.36" + } + }, + "@fortawesome/free-solid-svg-icons": { + "version": "5.15.4", + "resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-5.15.4.tgz", + "integrity": "sha512-JLmQfz6tdtwxoihXLg6lT78BorrFyCf59SAwBM6qV/0zXyVeDygJVb3fk+j5Qat+Yvcxp1buLTY5iDh1ZSAQ8w==", + "requires": { + "@fortawesome/fontawesome-common-types": "^0.2.36" + } + }, + "@fortawesome/react-fontawesome": { + "version": "0.1.16", + "resolved": "https://registry.npmjs.org/@fortawesome/react-fontawesome/-/react-fontawesome-0.1.16.tgz", + "integrity": "sha512-aLmzDwC9rEOAJv2UJdMns89VZR5Ry4IHu5dQQh24Z/lWKEm44lfQr1UNalZlkUaQN8d155tNh+CS7ntntj1VMA==", + "requires": { + "prop-types": "^15.7.2" + } + }, "@hapi/address": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/@hapi/address/-/address-2.1.4.tgz", @@ -1817,12 +1869,13 @@ "@nitrots/nitro-renderer": { "version": "file:../nitro-renderer", "requires": { - "@pixi/canvas-renderer": "^6.1.0", - "@pixi/extract": "^6.1.0", + "@pixi/canvas-renderer": "^6.1.3", + "@pixi/extract": "^6.1.3", "@pixi/filter-adjustment": "^4.1.3", + "@pixi/tilemap": "^3.2.2", "pako": "^2.0.4", - "pixi.js": "^6.1.0", - "tslib": "^2.3.0" + "pixi.js": "^6.1.3", + "tslib": "^2.3.1" }, "dependencies": { "@babel/code-frame": { @@ -1922,44 +1975,44 @@ } }, "@pixi/accessibility": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@pixi/accessibility/-/accessibility-6.1.0.tgz", - "integrity": "sha512-SDbu08F0eXTc5jqkJdLoX5G6yrSD68V5X7nU9+AfVL5mYdR+wkAuDXjcOINbGq2vxHPN6fgoBNZIDNPfRHeATw==" + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/@pixi/accessibility/-/accessibility-6.2.0.tgz", + "integrity": "sha512-eih01Q8E+aI78ggJ/ONVPN6yK9L/P2XWu2DUJghhGlAaQ1vjlvZzGY2bfuZPwR2Dmake72qEoQY6hEGASjjV+w==" }, "@pixi/app": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@pixi/app/-/app-6.1.0.tgz", - "integrity": "sha512-QIMNyMpswWAIXo1RhTbnem7DEdNnrYCV8RLK9E9nZ3NlzP3587IuMEmNfwZp7PsvMJXehH2opY/hlYxVOmYxew==" + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/@pixi/app/-/app-6.2.0.tgz", + "integrity": "sha512-X/VVB/Lk0VMXsdw+A15UIG8JlVU+yREWW2TSzto+ub0l3RjrphiHULhGUYE4/hbNC5RQzHC8j+lw3sBXItx1EQ==" }, "@pixi/canvas-renderer": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@pixi/canvas-renderer/-/canvas-renderer-6.1.0.tgz", - "integrity": "sha512-dukgaw9OQyFjTZZ/R2jvf+cyxVQA7P+wJVtGO4Ev/TlaLs85KKy1xtnRpgYbF/etPhORRgN232H6rys50B0YjQ==" + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/@pixi/canvas-renderer/-/canvas-renderer-6.2.0.tgz", + "integrity": "sha512-gqMc6Dnw0M6QoJ4ChuWpZQhjGeZXecHwxl8/LAQadv8MqHqIl7ZYLTurrOhE0K9VY1GPZ/tY8Trw2YkgZNlrFQ==" }, "@pixi/compressed-textures": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@pixi/compressed-textures/-/compressed-textures-6.1.0.tgz", - "integrity": "sha512-3Go+GT43avgzyX4+fFYiTEfjR5pHrzafKpVlMvttC9xGRhMV1BZFDi1rKjHYuYk8SgNycuqRa2RulsoVq0bQUw==" + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/@pixi/compressed-textures/-/compressed-textures-6.2.0.tgz", + "integrity": "sha512-NS6tCczzqFWEjah4+MO7t3mzXT1e3IlAHG1Ex4BeuDe296QIIaNhPAqcZPTZI3LlQpmnCw5V9g+yAQwRcF5g8w==" }, "@pixi/constants": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@pixi/constants/-/constants-6.1.0.tgz", - "integrity": "sha512-4mIvvyiovu/tT1m32fQO/pYwGxO/ch9ZGOArAcsVKx0gWEk/Whi0fuJVxgCemu8gpSFkcIJreWnOiLUzZCVpdQ==" + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/@pixi/constants/-/constants-6.2.0.tgz", + "integrity": "sha512-8WzYWtx3Q/UnH4WQIF6iDHLh9N2Lh0pU2jFluRehaXWtVmvfF5pB8XYFB5wllVNBKoeyfymk0g5G6y84dZ43Pw==" }, "@pixi/core": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@pixi/core/-/core-6.1.0.tgz", - "integrity": "sha512-u6pXk8K05ZLhFNQxg+mtlHA6IjV0+lr/IDrEbx55eDZo+ImJwI4ummkJ/uiXaNn04GG0tVAQt+y5+e3fJjVFEQ==" + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/@pixi/core/-/core-6.2.0.tgz", + "integrity": "sha512-RpPW5LPRoTl6bB27AGXxzJeq2KksRC0lp8C40l8F1+nJUj7AUJILOAvn9KLEmCFSUuIIp4sOcD66y5iFynfmvQ==" }, "@pixi/display": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@pixi/display/-/display-6.1.0.tgz", - "integrity": "sha512-Jb1V54kpJXiGjKFx1qe5NhZyl1u6Z1t3o6mWawIFbXKiOJs+nkouUqRyPX2877cu1zkufbAalEe5V8WXOkqixg==" + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/@pixi/display/-/display-6.2.0.tgz", + "integrity": "sha512-uEphbxCvr9jnWD+0zStwUn8xQlMqA3wrhm4+xsUWJmQZkS1yV5dWwtFth5bbP3lAcP2/CpK9tUF/ScnLbys7NQ==" }, "@pixi/extract": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@pixi/extract/-/extract-6.1.0.tgz", - "integrity": "sha512-QqOb9jZ473mt8NDuAnfD/oUuXefspGLOoVTfHD+NVRP0J3P4Mnzq98ljHHpOFII/XgM8Jam6YRuOlTGyT7H+vg==" + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/@pixi/extract/-/extract-6.2.0.tgz", + "integrity": "sha512-f6jcHSwqRpEIf3to39PRJPWlJiMzUHC6SFGfS12VBwxv0/TGE9HyMEGs04XsihPDFBFs7b4+GaR4kEKUUfzWCw==" }, "@pixi/filter-adjustment": { "version": "4.1.3", @@ -1967,151 +2020,156 @@ "integrity": "sha512-W+NhPiZRYKoRToa5+tkU95eOw8gnS5dfIp3ZP+pLv2mdER9RI+4xHxp1uLHMqUYZViTaMdZIIoVOuCgHFPYCbQ==" }, "@pixi/filter-alpha": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@pixi/filter-alpha/-/filter-alpha-6.1.0.tgz", - "integrity": "sha512-giNst0xR8h3Ulkk3u6JEN8L1TmZsE5JEPZ+brvdZ336k6wiRMxkqIZ2wt1w9cQLq3PY3MAiUO+SZkYr4Zr1GJg==" + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/@pixi/filter-alpha/-/filter-alpha-6.2.0.tgz", + "integrity": "sha512-E7imqhvWDffYoMnSB/4fskWywnnq3oVtReIgjTOYnT2+o89Mu6th8do/c8aaYKF/e+0Y95UkeIKiv2TjtPpV/Q==" }, "@pixi/filter-blur": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@pixi/filter-blur/-/filter-blur-6.1.0.tgz", - "integrity": "sha512-EskO2DjKGyOwSMQIqVkONJgG8rdF7Ja9EtBBuWGL6V+lE7DUQ0I25+D13+12HD3OMUsEnXyZWmlYtGW9BD9P7g==" + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/@pixi/filter-blur/-/filter-blur-6.2.0.tgz", + "integrity": "sha512-MEq1gklzaW4bl1HQDlwd4Vss4bQXPg+/L3dgwMfeoHsj+6CT30V5HoOXOUYK/EeYNBBg5ViLjVqnK6PadjWyOQ==" }, "@pixi/filter-color-matrix": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@pixi/filter-color-matrix/-/filter-color-matrix-6.1.0.tgz", - "integrity": "sha512-8OE8EDyV8KEUhcqwQxeNvW6r0YMBrQXS7IZLUlCvIVdM5rI24qBA1n9ec5w8ofe7A6jdMArmV4NwiNiSHCkYvw==" + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/@pixi/filter-color-matrix/-/filter-color-matrix-6.2.0.tgz", + "integrity": "sha512-sJ9zELuz6MuPllZw3E/4+csT4kzzcw3EMFkFiJyYYndqJhRP+fc6iRTgnmYrmhDtBcqxfS/HAcrqUUgELlKbAA==" }, "@pixi/filter-displacement": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@pixi/filter-displacement/-/filter-displacement-6.1.0.tgz", - "integrity": "sha512-ZmsLEYhLQLxVbhP688ofv0bmfRXObYk2Xa3ORwKgivyJeX3UqizP+OUHa1mJ+4n6Q50BwtCra/Cg+TJ0q2R0wQ==" + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/@pixi/filter-displacement/-/filter-displacement-6.2.0.tgz", + "integrity": "sha512-vL/ErS6EjMiEcqkTd93CE8kfjCZXSCktYaAmaeDZ/oPB18ldEqJ/oK18fOuzTC6RhJAfhOpw2xT0cDv+CT11XQ==" }, "@pixi/filter-fxaa": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@pixi/filter-fxaa/-/filter-fxaa-6.1.0.tgz", - "integrity": "sha512-htFHMvW7GId9UTw5c8Mdd4FU3RGTg9aSsQ04yQCJekm54pwQsTGzkbElGTVWHznurflOhjAJJRib6dtWW1CY8A==" + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/@pixi/filter-fxaa/-/filter-fxaa-6.2.0.tgz", + "integrity": "sha512-S0cxGIlhJUMnSeODugz8gDwRamBBHjnEwRrKjJVllCxQGPYGAEcIKRpK+Ewv9+JuxezzW06MZIQ8SdyXanh/Cw==" }, "@pixi/filter-noise": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@pixi/filter-noise/-/filter-noise-6.1.0.tgz", - "integrity": "sha512-5qdW1UZOcN8pJsyp/L7qNzGvigGwKB0c+RvI9LKWn/DsWC4WfAhatMtKV7dTsYNSRE+MWaFbelBQZT6wYw05Jg==" + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/@pixi/filter-noise/-/filter-noise-6.2.0.tgz", + "integrity": "sha512-+vsUXgeZtPympkg2Qw9zFGraWJzLH63MhieveiX78qJi0BAqmUObjsil8hO2wTSnU+nfFEoPKRJwCbRnNuNtbA==" }, "@pixi/graphics": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@pixi/graphics/-/graphics-6.1.0.tgz", - "integrity": "sha512-NfbVX/TIXYrzUDItrXCg6c9LKM6Td1O+xXFnM9uP6EQQ1cyH5uUHtkSR0xgnPpdcs8IEa/FgyOmABEJ+G17syA==" + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/@pixi/graphics/-/graphics-6.2.0.tgz", + "integrity": "sha512-VUh2o49FheH57U0G8cW371jpNy3JOxEQXy/DRCfm34hcRjlokOrdP/MtOibVruIOKVVZSGAb0ybsjF3N5ELIvg==" }, "@pixi/interaction": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@pixi/interaction/-/interaction-6.1.0.tgz", - "integrity": "sha512-0GijG3v7oWET96FaFC59ozNrXa5D/fROpZSh2ywwL0NRvftLcjHOSDMGxDXhrlfpsjPgLVqDQQUHAcpIKigleA==" + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/@pixi/interaction/-/interaction-6.2.0.tgz", + "integrity": "sha512-okuYrv7tqm9+Vb2N/+acKzR9nxQpuMoXAMTmm0rq53gTHCyliFds6lXRa8JHi3HufoAKhyHEP3QYrMgKRGvCiw==" }, "@pixi/loaders": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@pixi/loaders/-/loaders-6.1.0.tgz", - "integrity": "sha512-0RcJuWKJx+4r2lZoVWMfSdaMjC+gGTouDrnGFNX6NGRRXXE3vKQdyFlwwkaJzUefvsjbNe4cYxC7iws9lqL3oA==" + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/@pixi/loaders/-/loaders-6.2.0.tgz", + "integrity": "sha512-fkEErikWslkFycTuUYOe84rLfVRGLVT4mXIpqjS1AWHa+Q0NjhmMoSsmZbmp1NHg/gGgnta0q5kZI23X2SNyVw==" }, "@pixi/math": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@pixi/math/-/math-6.1.0.tgz", - "integrity": "sha512-4INGyMqO7z02kTzHEp/7sl1TOrIhPmKLx3jNUDyQ/J7RPJJE3ZbgEktZcfmG0tofJoW3KbLqL4fd6k/FIi5Hsw==" + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/@pixi/math/-/math-6.2.0.tgz", + "integrity": "sha512-S/whcwowZdK8X594ZDL0VNdPdzgNyb9cDhwDChhbRIKyVitxZcPPQZcBxDwWmaMyyqN6GKfIBX8wGVghVOI3lw==" }, "@pixi/mesh": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@pixi/mesh/-/mesh-6.1.0.tgz", - "integrity": "sha512-l3zFMs9ENGB8y5PIRMCf2/7nHXu40yfeBZq4bPYIJJeHztkzaNKDbEFtDOx/Y1+QrG8VX4LiDWQ+sE7Tk+qIRA==" + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/@pixi/mesh/-/mesh-6.2.0.tgz", + "integrity": "sha512-+2TM6OJdWcANH59Yl2kj+BAbYlglBIUMtUifs0clmRGqSQPsEiuHj3IFbxm89F4upfA5vIf/3GekRE/qLIhIxg==" }, "@pixi/mesh-extras": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@pixi/mesh-extras/-/mesh-extras-6.1.0.tgz", - "integrity": "sha512-/l/ohKrxDRkho85TcGPZrturJPQRUSGLoctIkWCqhNePMk9ATLVQ2ihg7GR1glaYqvxMOQXj5qqIfEC/T7eMlw==" + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/@pixi/mesh-extras/-/mesh-extras-6.2.0.tgz", + "integrity": "sha512-E3FUh6FLGOmcwkMxVt//R/eqNUIZj3Bi9X9d7+9FIxuMaGVi/LdQ2tAdDJkWDx4HwAtRLslIhymbsl0x6IzJDQ==" }, "@pixi/mixin-cache-as-bitmap": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@pixi/mixin-cache-as-bitmap/-/mixin-cache-as-bitmap-6.1.0.tgz", - "integrity": "sha512-nwmXcfw7cFyhZwNDFHZLyE7dhJvLEZbm0BJ5cpiDb2HC1g4U5+BfGkjxQulUh2JfdOaqTp7EeU8K5okMVvcdnQ==" + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/@pixi/mixin-cache-as-bitmap/-/mixin-cache-as-bitmap-6.2.0.tgz", + "integrity": "sha512-QkX1LPu4WOiE7huNYUFKecUB66tQhcb2f4glJ0bbVNICodAkbz6HfnX1eDezx/6GYX4e01VNDwQ3TfQil+5r5w==" }, "@pixi/mixin-get-child-by-name": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@pixi/mixin-get-child-by-name/-/mixin-get-child-by-name-6.1.0.tgz", - "integrity": "sha512-F78olhSbF9ukDigA27hqcPFYrqw0Yj6Z+2NLYVxyWD8vys8Cfev8wtztDk50WYVnCRk8BRYiTiEAtBGYIPSbYA==" + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/@pixi/mixin-get-child-by-name/-/mixin-get-child-by-name-6.2.0.tgz", + "integrity": "sha512-VCokQVg7Xh9QCUou553yfbu0FTi++E++7ByCUPqzTU1hR2VFQRmI8aIkrHNER+PolqnnrrCKFXR7bZW0RdHD+A==" }, "@pixi/mixin-get-global-position": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@pixi/mixin-get-global-position/-/mixin-get-global-position-6.1.0.tgz", - "integrity": "sha512-c/mrnEv7ZuKnjjaME+8jyOiP/Mtk2cq/UXDEM+lwOX98zVdxiaBFf13BhnMPnVq7Vq1+HeDDRZ2/VIlrLkU9Ag==" + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/@pixi/mixin-get-global-position/-/mixin-get-global-position-6.2.0.tgz", + "integrity": "sha512-yaoqbzFlfD3e7Kh20f9r21G2zZsw9oveGhLbUgFnBGpvjCHArcWOTCjHrXYy9pKGaFOh6hpJYWbhx/Lhg+YpcQ==" }, "@pixi/particle-container": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@pixi/particle-container/-/particle-container-6.1.0.tgz", - "integrity": "sha512-Nu/UqG6n66b51UPdfQjuVfuGnM+D3caUqQCq2rLGVJIJmfrd38J0AooOaTtqePuadQWII2g3pFZ+dXv0oN1Blg==" + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/@pixi/particle-container/-/particle-container-6.2.0.tgz", + "integrity": "sha512-DAYz3Mz20fl5firWS4aAFvZSZIQyS3z8Oq2kr/xHBQjtNiu8YBFNQWs/71pNG0Fg2dc/oIyy4aUIZCPLb54CSA==" }, "@pixi/polyfill": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@pixi/polyfill/-/polyfill-6.1.0.tgz", - "integrity": "sha512-gLz7eyfz5PAKxL7y9qI47O91WQyzuPFvuWm9sTxyncsgY7nchJxi6vUuxjLtFDd9vzl+/PXFDHyRGFyDe8tSkg==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/@pixi/polyfill/-/polyfill-6.2.0.tgz", + "integrity": "sha512-UrcH9YtPV/ZquxQd7KY+ITT1Ccf4KY8xcbq5Aa839TpcYflk3suftzn4cBuOhW6ycnSjQB+LU7VEP1f4Kr1qpA==", "requires": { "object-assign": "^4.1.1", "promise-polyfill": "^8.2.0" } }, "@pixi/prepare": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@pixi/prepare/-/prepare-6.1.0.tgz", - "integrity": "sha512-IdQ0gefbDt4anT59MxZznaY3EZQwvGE9K2Jo3+6t+3ZOvRlsgOLHdMFbNy9N0/MzKp9TAvuvzEj5WW2NoHx5Yw==" + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/@pixi/prepare/-/prepare-6.2.0.tgz", + "integrity": "sha512-tiO4EGbvWpLQ+xOIVTW5QBMYMa/9hhP/nghLqGA67m2ZFzD/f8KEWBZQZeUIMWuQ7XRwpNziBlFmsSSlqKk+/Q==" }, "@pixi/runner": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@pixi/runner/-/runner-6.1.0.tgz", - "integrity": "sha512-Pf6WmyBZSQg9mf3wpB3UvnZNX9GeRDoC4gMcQEYxw0rZDe0Z0JwzrkV0EGGyGHCZSssdx4+K1+vUxUIyFWdymw==" + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/@pixi/runner/-/runner-6.2.0.tgz", + "integrity": "sha512-+tgO9IO+dMZhiok36AfzUWbEqhU6U+CxjF6n/iWCXElkAwj06gNXNyR7Ryib7V8NBd5opzP7XOxjZR/8A376DA==" }, "@pixi/settings": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@pixi/settings/-/settings-6.1.0.tgz", - "integrity": "sha512-dVVOGqnCwZIHNtuAyzhw9QXZPtaxq8daDXYyRfmxfKS5SWX86HMl65KJW7rmA9TIua53i/igSSQVWgAhzRkUeg==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/@pixi/settings/-/settings-6.2.0.tgz", + "integrity": "sha512-nOtaM/6P6uXVJm5b4UWH41rm31fL8gT12H1pbf2qOTxqorSG/WGfXyLkSC/y8MvEMlEKJoej1S2HZKPQ/SwhZA==", "requires": { "ismobilejs": "^1.1.0" } }, "@pixi/sprite": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@pixi/sprite/-/sprite-6.1.0.tgz", - "integrity": "sha512-BnaRNiXgiqNNTN2a9WaeMPZtLP+v/D8W/fymNkjg2wWrs4FwnpT0lPGAL0YHFoBO328LI8qTCy6BCBZg74V4aQ==" + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/@pixi/sprite/-/sprite-6.2.0.tgz", + "integrity": "sha512-yG4tBBuI008inlvlkn9IiglWddrSoL6ah2R6Jgd6jh2RaKPfrNdH0D8t/MzshnOh30JvGP6sVAXaLSX3mRBWaw==" }, "@pixi/sprite-animated": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@pixi/sprite-animated/-/sprite-animated-6.1.0.tgz", - "integrity": "sha512-yL6Fe+xyXb9m/NkofUcigE3+NYUA3VrKajacf/ONXND897A7JLCihqXS9cHJHJGTNL3X+wsba1iZc9Rax5H0Sg==" + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/@pixi/sprite-animated/-/sprite-animated-6.2.0.tgz", + "integrity": "sha512-AcmKVzB/TXp0nyFUIoIweXMsLzd/6o6mtiy9M1f9tTd7eaIUgVwpLnsWM5rOahNpJaYq4S9Gnsy3cbGlljnRSw==" }, "@pixi/sprite-tiling": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@pixi/sprite-tiling/-/sprite-tiling-6.1.0.tgz", - "integrity": "sha512-7a0NubCDrLG5pK7rrLAQJoju0EydL71kljm1TgqhcnoYV7n70Dbpoz+N4OuPyObOyEz9VvcnPMy5srp9FNllfw==" + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/@pixi/sprite-tiling/-/sprite-tiling-6.2.0.tgz", + "integrity": "sha512-GPcAjKZrEYt572+GNjhYjCdNuxSP6STu4+LvPqMq/AiQfXWvJvSRUfCZDf+u1pc33CUFMoYUr1TKXWMqGymDtg==" }, "@pixi/spritesheet": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@pixi/spritesheet/-/spritesheet-6.1.0.tgz", - "integrity": "sha512-7kh7OuYujRGOAw1Pe6EtwH2Yzov80Qss2MtDlHNplJ+loImd/SCthFhsmpRrOb/lSBtxVn3h+pUzV0bc7bxQXg==" + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/@pixi/spritesheet/-/spritesheet-6.2.0.tgz", + "integrity": "sha512-wGXmo54qJO15/pd28FE6lMvfoJMIhi9nJ44AEtSmhGXqexs7T7NNzaEBZYFxyWTMFoEVJ1qxHUckOAnq12IXKg==" }, "@pixi/text": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@pixi/text/-/text-6.1.0.tgz", - "integrity": "sha512-Yul5LqVYr/XW21uNAoMrkjn7p63RfD19c0S6EWCV18QOJaOjz6ZwzPMg6wpm6b+2i/Ob6F8ZFZdSwAM0hznRYg==" + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/@pixi/text/-/text-6.2.0.tgz", + "integrity": "sha512-iDrCWY0LuRtq8t0+PyH+xf74jW+lfVTRqqehOFFb0WJ9Ekdl7KpCeKXgPFVs8oer0bvxXKK2c00DPD8d1qq5uw==" }, "@pixi/text-bitmap": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@pixi/text-bitmap/-/text-bitmap-6.1.0.tgz", - "integrity": "sha512-xcpRzXueq/XPqVJyd0FeJhdnmXcap8clZMrzLjND8blIWS9sJDJKXrpTmNco/JdOrU+vuOkWRau2OSJJKd882A==" + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/@pixi/text-bitmap/-/text-bitmap-6.2.0.tgz", + "integrity": "sha512-H3GWWZ1WgwZ3JJn6RvtO4im5AQlfAN1zEHQyE66/adhte6HgzYrMvGgM5sug2f5ZFXl81O0vBddSakbg2myaXw==" }, "@pixi/ticker": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@pixi/ticker/-/ticker-6.1.0.tgz", - "integrity": "sha512-tCh1dhmriLKLMcxTJ9usm1UZEK2+M5nEwvyec9kouF4EMi/PiGup65+pwTHK4SvjXD+9vbtTDam39fWYXCpRxg==" + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/@pixi/ticker/-/ticker-6.2.0.tgz", + "integrity": "sha512-6X4hP2hciTdF776qhii9yiYQev/ZTPjFvuwZSHow7l33se81ORF33HFpcLdgZ7qgBQtT10+tOx8Fr6Ihu6yeUQ==" + }, + "@pixi/tilemap": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@pixi/tilemap/-/tilemap-3.2.2.tgz", + "integrity": "sha512-svdmMyJP63vdae3t66tCmE8IWeO/6lD1xXU+5gzfxqxJS5seTp2bm8mQok2c8PF0O6l/NYlLz6BRklOuEuHboQ==" }, "@pixi/utils": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@pixi/utils/-/utils-6.1.0.tgz", - "integrity": "sha512-N7LaVjo2NiP0/4DMX6Hj6SsSoFFEA1Pc3U/I/kQJHj9OyLrNSpcl9PZEiPusnuhpMr+zlQKa+MMU+RyTj+06Hw==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/@pixi/utils/-/utils-6.2.0.tgz", + "integrity": "sha512-2WXNaeiDn/q64jJ7ZZUufL/vRfRVYrBJQuTk64sv8Ak1OxyTqwbfQQSfzGoyYpNZJdnAG5k8H+7u0GqJj9ts5Q==", "requires": { "@types/earcut": "^2.1.0", "earcut": "^2.2.2", @@ -3077,45 +3135,45 @@ "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==" }, "pixi.js": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/pixi.js/-/pixi.js-6.1.0.tgz", - "integrity": "sha512-uBcM3wivcLq7CPwLGkcyGscsvRST4TcXSlgXaH46P6mxNnJoDgVJtEYwYP+5H9g7b96ZBo5We6lddO+mmz7cXw==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/pixi.js/-/pixi.js-6.2.0.tgz", + "integrity": "sha512-EJtbnN8N+w7MG89UICGrgC/+0KJojkNYSgVNwXG2UwP7k0k0AVOoy2b/0uRGllh6HI87ax5yDQe+NIjjhisFrA==", "requires": { - "@pixi/accessibility": "6.1.0", - "@pixi/app": "6.1.0", - "@pixi/compressed-textures": "6.1.0", - "@pixi/constants": "6.1.0", - "@pixi/core": "6.1.0", - "@pixi/display": "6.1.0", - "@pixi/extract": "6.1.0", - "@pixi/filter-alpha": "6.1.0", - "@pixi/filter-blur": "6.1.0", - "@pixi/filter-color-matrix": "6.1.0", - "@pixi/filter-displacement": "6.1.0", - "@pixi/filter-fxaa": "6.1.0", - "@pixi/filter-noise": "6.1.0", - "@pixi/graphics": "6.1.0", - "@pixi/interaction": "6.1.0", - "@pixi/loaders": "6.1.0", - "@pixi/math": "6.1.0", - "@pixi/mesh": "6.1.0", - "@pixi/mesh-extras": "6.1.0", - "@pixi/mixin-cache-as-bitmap": "6.1.0", - "@pixi/mixin-get-child-by-name": "6.1.0", - "@pixi/mixin-get-global-position": "6.1.0", - "@pixi/particle-container": "6.1.0", - "@pixi/polyfill": "6.1.0", - "@pixi/prepare": "6.1.0", - "@pixi/runner": "6.1.0", - "@pixi/settings": "6.1.0", - "@pixi/sprite": "6.1.0", - "@pixi/sprite-animated": "6.1.0", - "@pixi/sprite-tiling": "6.1.0", - "@pixi/spritesheet": "6.1.0", - "@pixi/text": "6.1.0", - "@pixi/text-bitmap": "6.1.0", - "@pixi/ticker": "6.1.0", - "@pixi/utils": "6.1.0" + "@pixi/accessibility": "6.2.0", + "@pixi/app": "6.2.0", + "@pixi/compressed-textures": "6.2.0", + "@pixi/constants": "6.2.0", + "@pixi/core": "6.2.0", + "@pixi/display": "6.2.0", + "@pixi/extract": "6.2.0", + "@pixi/filter-alpha": "6.2.0", + "@pixi/filter-blur": "6.2.0", + "@pixi/filter-color-matrix": "6.2.0", + "@pixi/filter-displacement": "6.2.0", + "@pixi/filter-fxaa": "6.2.0", + "@pixi/filter-noise": "6.2.0", + "@pixi/graphics": "6.2.0", + "@pixi/interaction": "6.2.0", + "@pixi/loaders": "6.2.0", + "@pixi/math": "6.2.0", + "@pixi/mesh": "6.2.0", + "@pixi/mesh-extras": "6.2.0", + "@pixi/mixin-cache-as-bitmap": "6.2.0", + "@pixi/mixin-get-child-by-name": "6.2.0", + "@pixi/mixin-get-global-position": "6.2.0", + "@pixi/particle-container": "6.2.0", + "@pixi/polyfill": "6.2.0", + "@pixi/prepare": "6.2.0", + "@pixi/runner": "6.2.0", + "@pixi/settings": "6.2.0", + "@pixi/sprite": "6.2.0", + "@pixi/sprite-animated": "6.2.0", + "@pixi/sprite-tiling": "6.2.0", + "@pixi/spritesheet": "6.2.0", + "@pixi/text": "6.2.0", + "@pixi/text-bitmap": "6.2.0", + "@pixi/ticker": "6.2.0", + "@pixi/utils": "6.2.0" } }, "prelude-ls": { @@ -3129,9 +3187,9 @@ "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==" }, "promise-polyfill": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-8.2.0.tgz", - "integrity": "sha512-k/TC0mIcPVF6yHhUvwAp7cvL6I2fFV7TzF1DuGPI8mBh4QQazf36xCKEHKTZKRysEoTQoQdKyP25J8MPJp7j5g==" + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-8.2.1.tgz", + "integrity": "sha512-3p9zj0cEHbp7NVUxEYUWjQlffXqnXaZIMPkAO7HhFh8u5636xLRDHOUo2vpWSK0T2mqm6fKLXYn1KP6PAZ2gKg==" }, "punycode": { "version": "2.1.1", @@ -3339,9 +3397,9 @@ } }, "tslib": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz", - "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==" + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" }, "tsutils": { "version": "3.21.0", @@ -4009,6 +4067,16 @@ "@types/node": "*" } }, + "@types/hoist-non-react-statics": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz", + "integrity": "sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==", + "dev": true, + "requires": { + "@types/react": "*", + "hoist-non-react-statics": "^3.3.0" + } + }, "@types/html-minifier-terser": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz", @@ -4164,6 +4232,17 @@ "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.0.tgz", "integrity": "sha512-RJJrrySY7A8havqpGObOB4W92QXKJo63/jFLLgpvOtsGUqbQZ9Sbgl35KMm1DjC6j7AvmmU2bIno+3IyEaemaw==" }, + "@types/styled-components": { + "version": "5.1.15", + "resolved": "https://registry.npmjs.org/@types/styled-components/-/styled-components-5.1.15.tgz", + "integrity": "sha512-4evch8BRI3AKgb0GAZ/sn+mSeB+Dq7meYtMi7J/0Mg98Dt1+r8fySOek7Sjw1W+Wskyjc93565o5xWAT/FdY0Q==", + "dev": true, + "requires": { + "@types/hoist-non-react-statics": "*", + "@types/react": "*", + "csstype": "^3.0.2" + } + }, "@types/tapable": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.7.tgz", @@ -5206,6 +5285,54 @@ "@babel/helper-define-polyfill-provider": "^0.2.0" } }, + "babel-plugin-styled-components": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/babel-plugin-styled-components/-/babel-plugin-styled-components-2.0.1.tgz", + "integrity": "sha512-U3wmORxerYBiqcRCo6thItIosEIga3F+ph0jJPkiOZJjyhpZyUZFQV9XvrZ2CbBIihJ3rDBC/itQ+Wx3VHMauw==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.0", + "@babel/helper-module-imports": "^7.16.0", + "babel-plugin-syntax-jsx": "^6.18.0", + "lodash": "^4.17.11" + }, + "dependencies": { + "@babel/helper-annotate-as-pure": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.0.tgz", + "integrity": "sha512-ItmYF9vR4zA8cByDocY05o0LGUkp1zhbTQOH1NFyl5xXEqlTJQCEJjieriw+aFpxo16swMxUnUiKS7a/r4vtHg==", + "requires": { + "@babel/types": "^7.16.0" + } + }, + "@babel/helper-module-imports": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.0.tgz", + "integrity": "sha512-kkH7sWzKPq0xt3H1n+ghb4xEMP8k0U7XV3kkB+ZGy69kDk2ySFW1qPi06sjKzFY3t1j6XbJSqr4mF9L7CYVyhg==", + "requires": { + "@babel/types": "^7.16.0" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.15.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", + "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==" + }, + "@babel/types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", + "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", + "requires": { + "@babel/helper-validator-identifier": "^7.15.7", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "babel-plugin-syntax-jsx": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz", + "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=" + }, "babel-plugin-syntax-object-rest-spread": { "version": "6.13.0", "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", @@ -5895,6 +6022,11 @@ } } }, + "camelize": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.0.tgz", + "integrity": "sha1-FkpUg+Yw+kMh5a8HAg5TGDGyYJs=" + }, "caniuse-api": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", @@ -6479,6 +6611,11 @@ "postcss": "^7.0.5" } }, + "css-color-keywords": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/css-color-keywords/-/css-color-keywords-1.0.0.tgz", + "integrity": "sha1-/qJhbcZ2spYmhrOvjb2+GAskTgU=" + }, "css-color-names": { "version": "0.0.4", "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", @@ -6562,6 +6699,16 @@ "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==" }, + "css-to-react-native": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.0.0.tgz", + "integrity": "sha512-Ro1yETZA813eoyUp2GDBhG2j+YggidUmzO1/v9eYBKR2EHVEniE2MI/NqpTQ954BMpTPZFsGNPm46qFB9dpaPQ==", + "requires": { + "camelize": "^1.0.0", + "css-color-keywords": "^1.0.0", + "postcss-value-parser": "^4.0.2" + } + }, "css-tree": { "version": "1.0.0-alpha.37", "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", @@ -9233,6 +9380,14 @@ "minimalistic-crypto-utils": "^1.0.1" } }, + "hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "requires": { + "react-is": "^16.7.0" + } + }, "hoopy": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz", @@ -11826,6 +11981,11 @@ } } }, + "load-script": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/load-script/-/load-script-1.0.0.tgz", + "integrity": "sha1-BJGTngvuVkPuSUp+PaPSuscMbKQ=" + }, "loader-runner": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", @@ -15025,6 +15185,16 @@ "react-lifecycles-compat": "^3.0.4" } }, + "react-youtube": { + "version": "7.13.1", + "resolved": "https://registry.npmjs.org/react-youtube/-/react-youtube-7.13.1.tgz", + "integrity": "sha512-b++TLHmHDpd0ZBS1wcbYabbuchU+W4jtx5A2MUQX0BINNKKsaIQX29sn/aLvZ9v5luwAoceia3VGtyz9blaB9w==", + "requires": { + "fast-deep-equal": "3.1.3", + "prop-types": "15.7.2", + "youtube-player": "5.5.2" + } + }, "read-pkg": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", @@ -16165,6 +16335,11 @@ "safe-buffer": "^5.0.1" } }, + "shallowequal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", + "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==" + }, "shebang-command": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", @@ -16219,6 +16394,11 @@ } } }, + "sister": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/sister/-/sister-3.0.2.tgz", + "integrity": "sha512-p19rtTs+NksBRKW9qn0UhZ8/TUI9BPw9lmtHny+Y3TinWlOa9jWh9xB0AtPSdmOy49NJJJSSe0Ey4C7h0TrcYA==" + }, "sisteransi": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", @@ -16875,6 +17055,23 @@ "schema-utils": "^2.7.0" } }, + "styled-components": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-5.3.3.tgz", + "integrity": "sha512-++4iHwBM7ZN+x6DtPPWkCI4vdtwumQ+inA/DdAsqYd4SVgUKJie5vXyzotA00ttcFdQkCng7zc6grwlfIfw+lw==", + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/traverse": "^7.4.5", + "@emotion/is-prop-valid": "^0.8.8", + "@emotion/stylis": "^0.8.4", + "@emotion/unitless": "^0.7.4", + "babel-plugin-styled-components": ">= 1.12.0", + "css-to-react-native": "^3.0.0", + "hoist-non-react-statics": "^3.0.0", + "shallowequal": "^1.1.0", + "supports-color": "^5.5.0" + } + }, "stylehacks": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz", @@ -19328,6 +19525,31 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==" + }, + "youtube-player": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/youtube-player/-/youtube-player-5.5.2.tgz", + "integrity": "sha512-ZGtsemSpXnDky2AUYWgxjaopgB+shFHgXVpiJFeNB5nWEugpW1KWYDaHKuLqh2b67r24GtP6HoSW5swvf0fFIQ==", + "requires": { + "debug": "^2.6.6", + "load-script": "^1.0.0", + "sister": "^3.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } } } } diff --git a/package.json b/package.json index 6a5eeca1..2d996ddd 100644 --- a/package.json +++ b/package.json @@ -11,6 +11,9 @@ }, "dependencies": { "@craco/craco": "^6.3.0", + "@fortawesome/fontawesome-svg-core": "^1.2.36", + "@fortawesome/free-solid-svg-icons": "^5.15.4", + "@fortawesome/react-fontawesome": "^0.1.16", "@nitrots/nitro-renderer": "file:../nitro-renderer", "animate.css": "^4.1.1", "classnames": "^2.3.1", @@ -23,6 +26,7 @@ "react-transition-group": "^4.4.2", "react-virtualized": "^9.22.3", "react-youtube": "^7.13.1", + "styled-components": "^5.3.3", "typescript": "^4.3.5", "web-vitals": "^1.1.2" }, @@ -37,6 +41,7 @@ "@types/react-slider": "^1.3.1", "@types/react-transition-group": "^4.4.2", "@types/react-virtualized": "^9.21.13", + "@types/styled-components": "^5.1.15", "@typescript-eslint/eslint-plugin": "^4.29.1" } } diff --git a/src/assets/styles/index.scss b/src/assets/styles/index.scss index ee7ae10f..c909faf1 100644 --- a/src/assets/styles/index.scss +++ b/src/assets/styles/index.scss @@ -1,9 +1,5 @@ @import './fonts'; @import './bootstrap/bootstrap'; -@import './fontawesome/fontawesome'; -@import './fontawesome/solid'; -@import './fontawesome/brands'; -@import './fontawesome/regular'; @import '../node_modules/animate.css/animate.min.css'; @import './scrollbars'; @import './slider'; diff --git a/src/common/Base.tsx b/src/common/Base.tsx new file mode 100644 index 00000000..6e1ff09b --- /dev/null +++ b/src/common/Base.tsx @@ -0,0 +1,59 @@ +import { CSSProperties, DetailedHTMLProps, FC, HTMLAttributes, LegacyRef, useMemo } from 'react'; +import { OverflowType } from './types/OverflowType'; +import { PositionType } from './types/PositionType'; + +export interface BaseProps extends DetailedHTMLProps, T> +{ + innerRef?: LegacyRef; + fit?: boolean; + fullWidth?: boolean; + fullHeight?: boolean; + overflow?: OverflowType; + position?: PositionType; + pointer?: boolean; + classNames?: string[]; +} + +export const Base: FC> = props => +{ + const { ref = null, innerRef = null, fit = false, fullWidth = false, fullHeight = false, overflow = null, position = null, pointer = false, classNames = [], className = '', style = {}, ...rest } = props; + + const getClassNames = useMemo(() => + { + const newClassNames: string[] = []; + + if(fit || fullWidth) newClassNames.push('w-100'); + + if(fit || fullHeight) newClassNames.push('h-100'); + + if(overflow) newClassNames.push('overflow-' + overflow); + + if(position) newClassNames.push('position-' + position); + + if(pointer) newClassNames.push('cursor-pointer'); + + if(classNames.length) newClassNames.push(...classNames); + + return newClassNames; + }, [ fit, fullWidth, fullHeight, overflow, position, pointer, classNames ]); + + const getClassName = useMemo(() => + { + let newClassName = getClassNames.join(' '); + + if(className.length) newClassName += (' ' + className); + + return newClassName; + }, [ getClassNames, className ]); + + const getStyle = useMemo(() => + { + let newStyle: CSSProperties = {}; + + if(Object.keys(style).length) newStyle = { ...newStyle, ...style }; + + return newStyle; + }, [ style ]); + + return
; +} diff --git a/src/common/Button.tsx b/src/common/Button.tsx new file mode 100644 index 00000000..4e9fa2d6 --- /dev/null +++ b/src/common/Button.tsx @@ -0,0 +1,30 @@ +import { FC, useMemo } from 'react'; +import { Flex, FlexProps } from './Flex'; +import { ButtonSizeType } from './types/ButtonSizeType'; +import { ColorVariantType } from './types/ColorVariantType'; + +export interface ButtonProps extends FlexProps +{ + variant?: ColorVariantType; + size?: ButtonSizeType; +} + +export const Button: FC = props => +{ + const { variant = 'primary', size = null, classNames = [], ...rest } = props; + + const getClassNames = useMemo(() => + { + const newClassNames: string[] = [ 'btn' ]; + + if(variant) newClassNames.push('btn-' + variant); + + if(size) newClassNames.push('btn-' + size); + + if(classNames.length) newClassNames.push(...classNames); + + return newClassNames; + }, [ variant, size, classNames ]); + + return ; +} diff --git a/src/common/Column.tsx b/src/common/Column.tsx new file mode 100644 index 00000000..fb32520b --- /dev/null +++ b/src/common/Column.tsx @@ -0,0 +1,26 @@ +import { FC, useMemo } from 'react'; +import { Flex, FlexProps } from './Flex'; +import { ColumnSizesType } from './types/ColumnSizesType'; + +export interface ColumnProps extends FlexProps +{ + size?: ColumnSizesType; +} + +export const Column: FC = props => +{ + const { size = 0, gap = 2, classNames = [], ...rest } = props; + + const getClassNames = useMemo(() => + { + const newClassNames: string[] = []; + + if(size) newClassNames.push('g-col-' + size); + + if(classNames.length) newClassNames.push(...classNames); + + return newClassNames; + }, [ size, classNames ]); + + return ; +} diff --git a/src/common/Flex.tsx b/src/common/Flex.tsx new file mode 100644 index 00000000..617ca4ff --- /dev/null +++ b/src/common/Flex.tsx @@ -0,0 +1,64 @@ +import { FC, useMemo } from 'react'; +import { Base, BaseProps } from './Base'; +import { AlignItemType } from './types/AlignItemType'; +import { JustifyContentType } from './types/JustifyContentType'; +import { SpacingType } from './types/SpacingType'; + +export interface FlexProps extends BaseProps +{ + inline?: boolean; + column?: boolean; + reverse?: boolean; + grow?: boolean; + shrink?: boolean; + gap?: SpacingType; + center?: boolean; + alignItems?: AlignItemType; + justifyContent?: JustifyContentType; +} + +export const Flex: FC = props => +{ + const { inline = false, column = undefined, reverse = false, grow = false, shrink = false, gap = null, center = false, alignItems = null, justifyContent = null, classNames = [], ...rest } = props; + + const getClassNames = useMemo(() => + { + const newClassNames: string[] = []; + + if(inline) newClassNames.push('d-inline-flex'); + else newClassNames.push('d-flex'); + + if(grow) newClassNames.push('flex-grow-1'); + + if(shrink) newClassNames.push('flex-shrink-0'); + + if(column) + { + if(reverse) newClassNames.push('flex-column-reverse'); + else newClassNames.push('flex-column'); + } + else + { + if(reverse) newClassNames.push('flex-row-reverse'); + } + + if(gap) newClassNames.push('gap-' + gap); + + if(center) + { + newClassNames.push('align-items-center', 'justify-content-center'); + } + else + { + if(alignItems) newClassNames.push('align-items-' + alignItems); + + if(justifyContent) newClassNames.push('justify-content-' + justifyContent); + } + + if(classNames.length) newClassNames.push(...classNames); + + return newClassNames; + }, [ inline, column, reverse, grow, shrink, gap, center, alignItems, justifyContent, classNames ]); + + return ; +} diff --git a/src/common/FormGroup.tsx b/src/common/FormGroup.tsx new file mode 100644 index 00000000..8eb183a2 --- /dev/null +++ b/src/common/FormGroup.tsx @@ -0,0 +1,22 @@ +import { FC, useMemo } from 'react'; +import { Flex, FlexProps } from './Flex'; + +export interface FormGroupProps extends FlexProps +{ +} + +export const FormGroup: FC = props => +{ + const { classNames = [], ...rest } = props; + + const getClassNames = useMemo(() => + { + const newClassNames: string[] = [ 'form-group' ]; + + if(classNames.length) newClassNames.push(...classNames); + + return newClassNames; + }, [ classNames ]); + + return ; +} diff --git a/src/common/Grid.tsx b/src/common/Grid.tsx new file mode 100644 index 00000000..a580912c --- /dev/null +++ b/src/common/Grid.tsx @@ -0,0 +1,53 @@ +import { CSSProperties, FC, useMemo } from 'react'; +import { Base, BaseProps } from './Base'; +import { SpacingType } from './types/SpacingType'; + +export interface GridProps extends BaseProps +{ + columnCount?: number; + columnMinWidth?: number; + grow?: boolean; + inline?: boolean; + gap?: SpacingType; +} + +export const Grid: FC = props => +{ + const { columnCount = 0, columnMinWidth = 45, grow = false, inline = false, gap = 2, classNames = [], style = {}, ...rest } = props; + + const getClassNames = useMemo(() => + { + const newClassNames: string[] = [ 'h-100' ]; + + if(inline) newClassNames.push('inline-grid'); + else newClassNames.push('grid'); + + if(gap) newClassNames.push('gap-' + gap); + + if(classNames.length) newClassNames.push(...classNames); + + return newClassNames; + }, [ inline, gap, classNames ]); + + const getStyle = useMemo(() => + { + let newStyle: CSSProperties = {}; + + if(columnCount) + { + newStyle['--bs-columns'] = columnCount.toString(); + } + + if(grow) + { + newStyle['--nitro-grid-column-min-width'] = (columnMinWidth + 'px'); + newStyle.gridTemplateColumns = 'repeat(auto-fill, minmax(var(--nitro-grid-column-min-width, 45px), 1fr)'; + } + + if(Object.keys(style).length) newStyle = { ...newStyle, ...style }; + + return newStyle; + }, [ columnCount, columnMinWidth, grow, style ]); + + return ; +} diff --git a/src/common/Text.tsx b/src/common/Text.tsx new file mode 100644 index 00000000..4f8dfc52 --- /dev/null +++ b/src/common/Text.tsx @@ -0,0 +1,34 @@ +import { FC, useMemo } from 'react'; +import { Base, BaseProps } from './Base'; +import { ColorVariantType } from './types/ColorVariantType'; +import { FontWeightType } from './types/FontWeightType'; + +export interface TextProps extends BaseProps +{ + variant?: ColorVariantType; + fontWeight?: FontWeightType; + underline?: boolean; + center?: boolean; +} + +export const Text: FC = props => +{ + const { variant = 'black', fontWeight = null, underline = false, center = false, ...rest } = props; + + const getClassNames = useMemo(() => + { + const newClassNames: string[] = [ 'd-inline' ]; + + if(variant) newClassNames.push('text-' + variant); + + if(fontWeight) newClassNames.push('fw-' + fontWeight); + + if(underline) newClassNames.push('text-decoration-underline'); + + if(center) newClassNames.push('text-center'); + + return newClassNames; + }, [ variant, fontWeight, underline, center ]); + + return ; +} diff --git a/src/common/types/AlignItemType.ts b/src/common/types/AlignItemType.ts new file mode 100644 index 00000000..5a61476d --- /dev/null +++ b/src/common/types/AlignItemType.ts @@ -0,0 +1 @@ +export type AlignItemType = 'start' | 'end' | 'center' | 'baseline' | 'stretch'; diff --git a/src/common/types/ButtonSizeType.ts b/src/common/types/ButtonSizeType.ts new file mode 100644 index 00000000..0f9dd4a0 --- /dev/null +++ b/src/common/types/ButtonSizeType.ts @@ -0,0 +1 @@ +export type ButtonSizeType = 'lg' | 'sm'; diff --git a/src/common/types/ColorVariantType.ts b/src/common/types/ColorVariantType.ts new file mode 100644 index 00000000..3207e0fd --- /dev/null +++ b/src/common/types/ColorVariantType.ts @@ -0,0 +1 @@ +export type ColorVariantType = 'primary' | 'success' | 'danger' | 'secondary' | 'link' | 'black' | 'white'; diff --git a/src/common/types/ColumnSizesType.ts b/src/common/types/ColumnSizesType.ts new file mode 100644 index 00000000..2b130d85 --- /dev/null +++ b/src/common/types/ColumnSizesType.ts @@ -0,0 +1 @@ +export type ColumnSizesType = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12; diff --git a/src/common/types/FontWeightType.ts b/src/common/types/FontWeightType.ts new file mode 100644 index 00000000..c7c92866 --- /dev/null +++ b/src/common/types/FontWeightType.ts @@ -0,0 +1 @@ +export type FontWeightType = 'bold' | 'bolder' | 'normal' | 'light' | 'lighter'; diff --git a/src/common/types/JustifyContentType.ts b/src/common/types/JustifyContentType.ts new file mode 100644 index 00000000..73a318d2 --- /dev/null +++ b/src/common/types/JustifyContentType.ts @@ -0,0 +1 @@ +export type JustifyContentType = 'start' | 'end' | 'center' | 'between' | 'around' | 'evenly'; diff --git a/src/common/types/OverflowType.ts b/src/common/types/OverflowType.ts new file mode 100644 index 00000000..78ca4b5c --- /dev/null +++ b/src/common/types/OverflowType.ts @@ -0,0 +1 @@ +export type OverflowType = 'hidden' | 'auto'; diff --git a/src/common/types/PositionType.ts b/src/common/types/PositionType.ts new file mode 100644 index 00000000..4e20b2fb --- /dev/null +++ b/src/common/types/PositionType.ts @@ -0,0 +1 @@ +export type PositionType = 'static' | 'relative' | 'fixed' | 'absolute' | 'sticky'; diff --git a/src/common/types/SpacingType.ts b/src/common/types/SpacingType.ts new file mode 100644 index 00000000..91c2bb57 --- /dev/null +++ b/src/common/types/SpacingType.ts @@ -0,0 +1 @@ +export type SpacingType = 0 | 1 | 2 | 3 | 4 | 5; diff --git a/src/index.tsx b/src/index.tsx index b94b79e2..325928e7 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -1,8 +1,12 @@ +import { library } from '@fortawesome/fontawesome-svg-core'; +import { fas } from '@fortawesome/free-solid-svg-icons'; import React from 'react'; import ReactDOM from 'react-dom'; import { App } from './App'; import './index.scss'; +library.add(fas); + ReactDOM.render( , document.getElementById('root')