Add new layout components

This commit is contained in:
Bill 2021-12-04 01:25:47 -05:00
parent 785b411889
commit d193575966
20 changed files with 684 additions and 160 deletions

534
package-lock.json generated
View File

@ -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="
}
}
}
}
}

View File

@ -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"
}
}

View File

@ -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';

59
src/common/Base.tsx Normal file
View File

@ -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<T = HTMLElement> extends DetailedHTMLProps<HTMLAttributes<T>, T>
{
innerRef?: LegacyRef<T>;
fit?: boolean;
fullWidth?: boolean;
fullHeight?: boolean;
overflow?: OverflowType;
position?: PositionType;
pointer?: boolean;
classNames?: string[];
}
export const Base: FC<BaseProps<HTMLDivElement>> = 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 <div ref={ innerRef } className={ getClassName } style={ getStyle } { ...rest } />;
}

30
src/common/Button.tsx Normal file
View File

@ -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<ButtonProps> = 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 <Flex center classNames={ getClassNames } { ...rest } />;
}

26
src/common/Column.tsx Normal file
View File

@ -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<ColumnProps> = 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 <Flex classNames={ getClassNames } column={ true } gap={ gap } { ...rest } />;
}

64
src/common/Flex.tsx Normal file
View File

@ -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<HTMLDivElement>
{
inline?: boolean;
column?: boolean;
reverse?: boolean;
grow?: boolean;
shrink?: boolean;
gap?: SpacingType;
center?: boolean;
alignItems?: AlignItemType;
justifyContent?: JustifyContentType;
}
export const Flex: FC<FlexProps> = 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 <Base classNames={ getClassNames } { ...rest } />;
}

22
src/common/FormGroup.tsx Normal file
View File

@ -0,0 +1,22 @@
import { FC, useMemo } from 'react';
import { Flex, FlexProps } from './Flex';
export interface FormGroupProps extends FlexProps
{
}
export const FormGroup: FC<FormGroupProps> = props =>
{
const { classNames = [], ...rest } = props;
const getClassNames = useMemo(() =>
{
const newClassNames: string[] = [ 'form-group' ];
if(classNames.length) newClassNames.push(...classNames);
return newClassNames;
}, [ classNames ]);
return <Flex classNames={ getClassNames } { ...rest } />;
}

53
src/common/Grid.tsx Normal file
View File

@ -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<HTMLDivElement>
{
columnCount?: number;
columnMinWidth?: number;
grow?: boolean;
inline?: boolean;
gap?: SpacingType;
}
export const Grid: FC<GridProps> = 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 <Base classNames={ getClassNames } style={ getStyle } { ...rest } />;
}

34
src/common/Text.tsx Normal file
View File

@ -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<HTMLDivElement>
{
variant?: ColorVariantType;
fontWeight?: FontWeightType;
underline?: boolean;
center?: boolean;
}
export const Text: FC<TextProps> = 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 <Base classNames={ getClassNames } { ...rest } />;
}

View File

@ -0,0 +1 @@
export type AlignItemType = 'start' | 'end' | 'center' | 'baseline' | 'stretch';

View File

@ -0,0 +1 @@
export type ButtonSizeType = 'lg' | 'sm';

View File

@ -0,0 +1 @@
export type ColorVariantType = 'primary' | 'success' | 'danger' | 'secondary' | 'link' | 'black' | 'white';

View File

@ -0,0 +1 @@
export type ColumnSizesType = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;

View File

@ -0,0 +1 @@
export type FontWeightType = 'bold' | 'bolder' | 'normal' | 'light' | 'lighter';

View File

@ -0,0 +1 @@
export type JustifyContentType = 'start' | 'end' | 'center' | 'between' | 'around' | 'evenly';

View File

@ -0,0 +1 @@
export type OverflowType = 'hidden' | 'auto';

View File

@ -0,0 +1 @@
export type PositionType = 'static' | 'relative' | 'fixed' | 'absolute' | 'sticky';

View File

@ -0,0 +1 @@
export type SpacingType = 0 | 1 | 2 | 3 | 4 | 5;

View File

@ -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(
<App />,
document.getElementById('root')