even more shop stuff, we're almost there!
This commit is contained in:
parent
4900679f01
commit
9cb693fb9c
|
|
@ -5,6 +5,7 @@
|
|||
"packages": {
|
||||
"": {
|
||||
"dependencies": {
|
||||
"@restart/ui": "^1.3.1",
|
||||
"classnames": "^2.3.1",
|
||||
"install": "^0.13.0",
|
||||
"laravel-mix-banner": "^0.1.4",
|
||||
|
|
@ -1553,9 +1554,9 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@babel/runtime": {
|
||||
"version": "7.17.9",
|
||||
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.9.tgz",
|
||||
"integrity": "sha512-lSiBBvodq29uShpWGNbgFdKYNiFDo5/HIYsaCEY9ff4sb10x9jizo2+pRrSyF4jKZCXqgzuqBOQKbUm90gQwJg==",
|
||||
"version": "7.18.9",
|
||||
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.9.tgz",
|
||||
"integrity": "sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw==",
|
||||
"dependencies": {
|
||||
"regenerator-runtime": "^0.13.4"
|
||||
},
|
||||
|
|
@ -1741,13 +1742,22 @@
|
|||
"version": "2.11.5",
|
||||
"resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.5.tgz",
|
||||
"integrity": "sha512-9X2obfABZuDVLCgPK9aX0a/x4jaOEweTTWE2+9sr0Qqqevj2Uv5XorvusThmc9XGYpS9yI+fhh8RTafBtGposw==",
|
||||
"dev": true,
|
||||
"peer": true,
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/popperjs"
|
||||
}
|
||||
},
|
||||
"node_modules/@react-aria/ssr": {
|
||||
"version": "3.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.2.0.tgz",
|
||||
"integrity": "sha512-wwJFdkl+Q8NU5yJ4NvdAOqx5LM3QtUVoSjuK7Ey8jZ4WS4bB0EqT3Kr3IInBs257HzZ5nXCiKXKE4NGXXuIRWA==",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.6.2"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@react-spring/animated": {
|
||||
"version": "9.4.5",
|
||||
"resolved": "https://registry.npmjs.org/@react-spring/animated/-/animated-9.4.5.tgz",
|
||||
|
|
@ -1902,6 +1912,37 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"node_modules/@restart/hooks": {
|
||||
"version": "0.4.7",
|
||||
"resolved": "https://registry.npmjs.org/@restart/hooks/-/hooks-0.4.7.tgz",
|
||||
"integrity": "sha512-ZbjlEHcG+FQtpDPHd7i4FzNNvJf2enAwZfJbpM8CW7BhmOAbsHpZe3tsHwfQUrBuyrxWqPYp2x5UMnilWcY22A==",
|
||||
"dependencies": {
|
||||
"dequal": "^2.0.2"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"react": ">=16.8.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@restart/ui": {
|
||||
"version": "1.3.1",
|
||||
"resolved": "https://registry.npmjs.org/@restart/ui/-/ui-1.3.1.tgz",
|
||||
"integrity": "sha512-MYvMs2eeZTHu2dBJHOXKx72vxzEZeWbZx2z1QjeXq62iYjpjIyukBC2ZEy8x+sb9Gl0AiOiHkPXrl1wn95aOGQ==",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.18.3",
|
||||
"@popperjs/core": "^2.11.5",
|
||||
"@react-aria/ssr": "^3.2.0",
|
||||
"@restart/hooks": "^0.4.7",
|
||||
"@types/warning": "^3.0.0",
|
||||
"dequal": "^2.0.2",
|
||||
"dom-helpers": "^5.2.0",
|
||||
"uncontrollable": "^7.2.1",
|
||||
"warning": "^4.0.3"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"react": ">=16.14.0",
|
||||
"react-dom": ">=16.14.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@tailwindcss/forms": {
|
||||
"version": "0.4.1",
|
||||
"resolved": "https://registry.npmjs.org/@tailwindcss/forms/-/forms-0.4.1.tgz",
|
||||
|
|
@ -2142,8 +2183,7 @@
|
|||
"node_modules/@types/prop-types": {
|
||||
"version": "15.7.5",
|
||||
"resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz",
|
||||
"integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==",
|
||||
"dev": true
|
||||
"integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w=="
|
||||
},
|
||||
"node_modules/@types/qs": {
|
||||
"version": "6.9.7",
|
||||
|
|
@ -2159,7 +2199,6 @@
|
|||
"version": "18.0.9",
|
||||
"resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.9.tgz",
|
||||
"integrity": "sha512-9bjbg1hJHUm4De19L1cHiW0Jvx3geel6Qczhjd0qY5VKVE2X5+x77YxAepuCwVh4vrgZJdgEJw48zrhRIeF4Nw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@types/prop-types": "*",
|
||||
"@types/scheduler": "*",
|
||||
|
|
@ -2183,8 +2222,7 @@
|
|||
"node_modules/@types/scheduler": {
|
||||
"version": "0.16.2",
|
||||
"resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz",
|
||||
"integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==",
|
||||
"dev": true
|
||||
"integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew=="
|
||||
},
|
||||
"node_modules/@types/serve-index": {
|
||||
"version": "1.9.1",
|
||||
|
|
@ -2216,6 +2254,11 @@
|
|||
"resolved": "https://registry.npmjs.org/@types/svgo/-/svgo-1.3.6.tgz",
|
||||
"integrity": "sha512-AZU7vQcy/4WFEuwnwsNsJnFwupIpbllH1++LXScN6uxT1Z4zPzdrWG97w4/I7eFKFTvfy/bHFStWjdBAg2Vjug=="
|
||||
},
|
||||
"node_modules/@types/warning": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@types/warning/-/warning-3.0.0.tgz",
|
||||
"integrity": "sha512-t/Tvs5qR47OLOr+4E9ckN8AmP2Tf16gWq+/qA4iUGS/OOyHVO8wv2vjJuX8SNOUTJyWb+2t7wJm6cXILFnOROA=="
|
||||
},
|
||||
"node_modules/@types/ws": {
|
||||
"version": "8.5.3",
|
||||
"resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz",
|
||||
|
|
@ -3805,8 +3848,7 @@
|
|||
"node_modules/csstype": {
|
||||
"version": "3.0.11",
|
||||
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.11.tgz",
|
||||
"integrity": "sha512-sa6P2wJ+CAbgyy4KFssIb/JNMLxFvKF1pCYCSXS8ZMuqZnMsrxqI2E5sPyoTpxoPU/gVZMzr2zjOfg8GIZOMsw==",
|
||||
"dev": true
|
||||
"integrity": "sha512-sa6P2wJ+CAbgyy4KFssIb/JNMLxFvKF1pCYCSXS8ZMuqZnMsrxqI2E5sPyoTpxoPU/gVZMzr2zjOfg8GIZOMsw=="
|
||||
},
|
||||
"node_modules/debounce": {
|
||||
"version": "1.2.1",
|
||||
|
|
@ -3878,6 +3920,14 @@
|
|||
"node": ">= 0.8"
|
||||
}
|
||||
},
|
||||
"node_modules/dequal": {
|
||||
"version": "2.0.3",
|
||||
"resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz",
|
||||
"integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==",
|
||||
"engines": {
|
||||
"node": ">=6"
|
||||
}
|
||||
},
|
||||
"node_modules/des.js": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz",
|
||||
|
|
@ -3981,6 +4031,15 @@
|
|||
"node": ">=6"
|
||||
}
|
||||
},
|
||||
"node_modules/dom-helpers": {
|
||||
"version": "5.2.1",
|
||||
"resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz",
|
||||
"integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.8.7",
|
||||
"csstype": "^3.0.2"
|
||||
}
|
||||
},
|
||||
"node_modules/dom-serializer": {
|
||||
"version": "1.4.1",
|
||||
"resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz",
|
||||
|
|
@ -5265,6 +5324,14 @@
|
|||
"node": ">= 0.10"
|
||||
}
|
||||
},
|
||||
"node_modules/invariant": {
|
||||
"version": "2.2.4",
|
||||
"resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz",
|
||||
"integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==",
|
||||
"dependencies": {
|
||||
"loose-envify": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/ipaddr.js": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz",
|
||||
|
|
@ -9647,6 +9714,11 @@
|
|||
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
|
||||
"integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
|
||||
},
|
||||
"node_modules/react-lifecycles-compat": {
|
||||
"version": "3.0.4",
|
||||
"resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz",
|
||||
"integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA=="
|
||||
},
|
||||
"node_modules/react-merge-refs": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/react-merge-refs/-/react-merge-refs-1.1.0.tgz",
|
||||
|
|
@ -11016,6 +11088,20 @@
|
|||
"node": ">= 0.6"
|
||||
}
|
||||
},
|
||||
"node_modules/uncontrollable": {
|
||||
"version": "7.2.1",
|
||||
"resolved": "https://registry.npmjs.org/uncontrollable/-/uncontrollable-7.2.1.tgz",
|
||||
"integrity": "sha512-svtcfoTADIB0nT9nltgjujTi7BzVmwjZClOmskKu/E8FW9BXzg9os8OLr4f8Dlnk0rYWJIWr4wv9eKUXiQvQwQ==",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.6.3",
|
||||
"@types/react": ">=16.9.11",
|
||||
"invariant": "^2.2.4",
|
||||
"react-lifecycles-compat": "^3.0.4"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"react": ">=15.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/unicode-canonical-property-names-ecmascript": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz",
|
||||
|
|
@ -11187,6 +11273,14 @@
|
|||
"node": ">=4.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/warning": {
|
||||
"version": "4.0.3",
|
||||
"resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz",
|
||||
"integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==",
|
||||
"dependencies": {
|
||||
"loose-envify": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/watchpack": {
|
||||
"version": "2.3.1",
|
||||
"resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.3.1.tgz",
|
||||
|
|
@ -12859,9 +12953,9 @@
|
|||
}
|
||||
},
|
||||
"@babel/runtime": {
|
||||
"version": "7.17.9",
|
||||
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.9.tgz",
|
||||
"integrity": "sha512-lSiBBvodq29uShpWGNbgFdKYNiFDo5/HIYsaCEY9ff4sb10x9jizo2+pRrSyF4jKZCXqgzuqBOQKbUm90gQwJg==",
|
||||
"version": "7.18.9",
|
||||
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.9.tgz",
|
||||
"integrity": "sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw==",
|
||||
"requires": {
|
||||
"regenerator-runtime": "^0.13.4"
|
||||
}
|
||||
|
|
@ -13010,9 +13104,15 @@
|
|||
"@popperjs/core": {
|
||||
"version": "2.11.5",
|
||||
"resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.5.tgz",
|
||||
"integrity": "sha512-9X2obfABZuDVLCgPK9aX0a/x4jaOEweTTWE2+9sr0Qqqevj2Uv5XorvusThmc9XGYpS9yI+fhh8RTafBtGposw==",
|
||||
"dev": true,
|
||||
"peer": true
|
||||
"integrity": "sha512-9X2obfABZuDVLCgPK9aX0a/x4jaOEweTTWE2+9sr0Qqqevj2Uv5XorvusThmc9XGYpS9yI+fhh8RTafBtGposw=="
|
||||
},
|
||||
"@react-aria/ssr": {
|
||||
"version": "3.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.2.0.tgz",
|
||||
"integrity": "sha512-wwJFdkl+Q8NU5yJ4NvdAOqx5LM3QtUVoSjuK7Ey8jZ4WS4bB0EqT3Kr3IInBs257HzZ5nXCiKXKE4NGXXuIRWA==",
|
||||
"requires": {
|
||||
"@babel/runtime": "^7.6.2"
|
||||
}
|
||||
},
|
||||
"@react-spring/animated": {
|
||||
"version": "9.4.5",
|
||||
|
|
@ -13113,6 +13213,30 @@
|
|||
"zustand": "^3.7.1"
|
||||
}
|
||||
},
|
||||
"@restart/hooks": {
|
||||
"version": "0.4.7",
|
||||
"resolved": "https://registry.npmjs.org/@restart/hooks/-/hooks-0.4.7.tgz",
|
||||
"integrity": "sha512-ZbjlEHcG+FQtpDPHd7i4FzNNvJf2enAwZfJbpM8CW7BhmOAbsHpZe3tsHwfQUrBuyrxWqPYp2x5UMnilWcY22A==",
|
||||
"requires": {
|
||||
"dequal": "^2.0.2"
|
||||
}
|
||||
},
|
||||
"@restart/ui": {
|
||||
"version": "1.3.1",
|
||||
"resolved": "https://registry.npmjs.org/@restart/ui/-/ui-1.3.1.tgz",
|
||||
"integrity": "sha512-MYvMs2eeZTHu2dBJHOXKx72vxzEZeWbZx2z1QjeXq62iYjpjIyukBC2ZEy8x+sb9Gl0AiOiHkPXrl1wn95aOGQ==",
|
||||
"requires": {
|
||||
"@babel/runtime": "^7.18.3",
|
||||
"@popperjs/core": "^2.11.5",
|
||||
"@react-aria/ssr": "^3.2.0",
|
||||
"@restart/hooks": "^0.4.7",
|
||||
"@types/warning": "^3.0.0",
|
||||
"dequal": "^2.0.2",
|
||||
"dom-helpers": "^5.2.0",
|
||||
"uncontrollable": "^7.2.1",
|
||||
"warning": "^4.0.3"
|
||||
}
|
||||
},
|
||||
"@tailwindcss/forms": {
|
||||
"version": "0.4.1",
|
||||
"resolved": "https://registry.npmjs.org/@tailwindcss/forms/-/forms-0.4.1.tgz",
|
||||
|
|
@ -13346,8 +13470,7 @@
|
|||
"@types/prop-types": {
|
||||
"version": "15.7.5",
|
||||
"resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz",
|
||||
"integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==",
|
||||
"dev": true
|
||||
"integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w=="
|
||||
},
|
||||
"@types/qs": {
|
||||
"version": "6.9.7",
|
||||
|
|
@ -13363,7 +13486,6 @@
|
|||
"version": "18.0.9",
|
||||
"resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.9.tgz",
|
||||
"integrity": "sha512-9bjbg1hJHUm4De19L1cHiW0Jvx3geel6Qczhjd0qY5VKVE2X5+x77YxAepuCwVh4vrgZJdgEJw48zrhRIeF4Nw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/prop-types": "*",
|
||||
"@types/scheduler": "*",
|
||||
|
|
@ -13387,8 +13509,7 @@
|
|||
"@types/scheduler": {
|
||||
"version": "0.16.2",
|
||||
"resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz",
|
||||
"integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==",
|
||||
"dev": true
|
||||
"integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew=="
|
||||
},
|
||||
"@types/serve-index": {
|
||||
"version": "1.9.1",
|
||||
|
|
@ -13420,6 +13541,11 @@
|
|||
"resolved": "https://registry.npmjs.org/@types/svgo/-/svgo-1.3.6.tgz",
|
||||
"integrity": "sha512-AZU7vQcy/4WFEuwnwsNsJnFwupIpbllH1++LXScN6uxT1Z4zPzdrWG97w4/I7eFKFTvfy/bHFStWjdBAg2Vjug=="
|
||||
},
|
||||
"@types/warning": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@types/warning/-/warning-3.0.0.tgz",
|
||||
"integrity": "sha512-t/Tvs5qR47OLOr+4E9ckN8AmP2Tf16gWq+/qA4iUGS/OOyHVO8wv2vjJuX8SNOUTJyWb+2t7wJm6cXILFnOROA=="
|
||||
},
|
||||
"@types/ws": {
|
||||
"version": "8.5.3",
|
||||
"resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz",
|
||||
|
|
@ -14673,8 +14799,7 @@
|
|||
"csstype": {
|
||||
"version": "3.0.11",
|
||||
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.11.tgz",
|
||||
"integrity": "sha512-sa6P2wJ+CAbgyy4KFssIb/JNMLxFvKF1pCYCSXS8ZMuqZnMsrxqI2E5sPyoTpxoPU/gVZMzr2zjOfg8GIZOMsw==",
|
||||
"dev": true
|
||||
"integrity": "sha512-sa6P2wJ+CAbgyy4KFssIb/JNMLxFvKF1pCYCSXS8ZMuqZnMsrxqI2E5sPyoTpxoPU/gVZMzr2zjOfg8GIZOMsw=="
|
||||
},
|
||||
"debounce": {
|
||||
"version": "1.2.1",
|
||||
|
|
@ -14723,6 +14848,11 @@
|
|||
"resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
|
||||
"integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=="
|
||||
},
|
||||
"dequal": {
|
||||
"version": "2.0.3",
|
||||
"resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz",
|
||||
"integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA=="
|
||||
},
|
||||
"des.js": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz",
|
||||
|
|
@ -14812,6 +14942,15 @@
|
|||
"@leichtgewicht/ip-codec": "^2.0.1"
|
||||
}
|
||||
},
|
||||
"dom-helpers": {
|
||||
"version": "5.2.1",
|
||||
"resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz",
|
||||
"integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==",
|
||||
"requires": {
|
||||
"@babel/runtime": "^7.8.7",
|
||||
"csstype": "^3.0.2"
|
||||
}
|
||||
},
|
||||
"dom-serializer": {
|
||||
"version": "1.4.1",
|
||||
"resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz",
|
||||
|
|
@ -15753,6 +15892,14 @@
|
|||
"resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz",
|
||||
"integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw=="
|
||||
},
|
||||
"invariant": {
|
||||
"version": "2.2.4",
|
||||
"resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz",
|
||||
"integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==",
|
||||
"requires": {
|
||||
"loose-envify": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"ipaddr.js": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz",
|
||||
|
|
@ -18748,6 +18895,11 @@
|
|||
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
|
||||
"integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
|
||||
},
|
||||
"react-lifecycles-compat": {
|
||||
"version": "3.0.4",
|
||||
"resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz",
|
||||
"integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA=="
|
||||
},
|
||||
"react-merge-refs": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/react-merge-refs/-/react-merge-refs-1.1.0.tgz",
|
||||
|
|
@ -19789,6 +19941,17 @@
|
|||
"mime-types": "~2.1.24"
|
||||
}
|
||||
},
|
||||
"uncontrollable": {
|
||||
"version": "7.2.1",
|
||||
"resolved": "https://registry.npmjs.org/uncontrollable/-/uncontrollable-7.2.1.tgz",
|
||||
"integrity": "sha512-svtcfoTADIB0nT9nltgjujTi7BzVmwjZClOmskKu/E8FW9BXzg9os8OLr4f8Dlnk0rYWJIWr4wv9eKUXiQvQwQ==",
|
||||
"requires": {
|
||||
"@babel/runtime": "^7.6.3",
|
||||
"@types/react": ">=16.9.11",
|
||||
"invariant": "^2.2.4",
|
||||
"react-lifecycles-compat": "^3.0.4"
|
||||
}
|
||||
},
|
||||
"unicode-canonical-property-names-ecmascript": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz",
|
||||
|
|
@ -19929,6 +20092,14 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"warning": {
|
||||
"version": "4.0.3",
|
||||
"resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz",
|
||||
"integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==",
|
||||
"requires": {
|
||||
"loose-envify": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"watchpack": {
|
||||
"version": "2.3.1",
|
||||
"resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.3.1.tgz",
|
||||
|
|
|
|||
|
|
@ -30,6 +30,7 @@
|
|||
"tailwindcss": "^3.0.24"
|
||||
},
|
||||
"dependencies": {
|
||||
"@restart/ui": "^1.3.1",
|
||||
"classnames": "^2.3.1",
|
||||
"install": "^0.13.0",
|
||||
"laravel-mix-banner": "^0.1.4",
|
||||
|
|
|
|||
|
|
@ -0,0 +1,31 @@
|
|||
// © XlXi 2022
|
||||
// Graphictoria 5
|
||||
|
||||
import { Component } from 'react';
|
||||
|
||||
import Loader from './Loader';
|
||||
|
||||
class Comments extends Component {
|
||||
constructor(props) {
|
||||
super(props);
|
||||
}
|
||||
|
||||
render() {
|
||||
return (
|
||||
<>
|
||||
<h4 className="pt-3">Comments</h4>
|
||||
<div className="card mb-2">
|
||||
<div className="input-group p-2">
|
||||
<input disabled="disabled" type="text" className="form-control" placeholder="Write a comment!" />
|
||||
<button disabled="disabled" type="submit" className="btn btn-secondary">Share</button>
|
||||
</div>
|
||||
</div>
|
||||
<div className="d-flex">
|
||||
<Loader />
|
||||
</div>
|
||||
</>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
export default Comments;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
// © XlXi 2021
|
||||
// © XlXi 2022
|
||||
// Graphictoria 5
|
||||
|
||||
import { Component, createRef } from 'react';
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
// © XlXi 2021
|
||||
// © XlXi 2022
|
||||
// Graphictoria 5
|
||||
|
||||
const Loader = () => {
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
// © XlXi 2021
|
||||
// © XlXi 2022
|
||||
// Graphictoria 5
|
||||
|
||||
import $ from 'jquery';
|
||||
|
|
|
|||
|
|
@ -0,0 +1,195 @@
|
|||
// © XlXi 2022
|
||||
// Graphictoria 5
|
||||
|
||||
import { createRef, Component } from 'react';
|
||||
import ReactDOM from 'react-dom';
|
||||
|
||||
import * as Bootstrap from 'bootstrap';
|
||||
import classNames from 'classnames/bind';
|
||||
|
||||
const itemId = 'gt-item';
|
||||
|
||||
class PurchaseConfirmationModal extends Component {
|
||||
constructor(props) {
|
||||
super(props);
|
||||
this.state = {
|
||||
|
||||
};
|
||||
|
||||
this.ModalRef = createRef();
|
||||
this.Modal = null;
|
||||
}
|
||||
|
||||
componentDidMount() {
|
||||
let itemElement = document.getElementById(itemId);
|
||||
if(itemElement) {
|
||||
this.setState({
|
||||
assetName: itemElement.getAttribute('data-asset-name'),
|
||||
assetCreator: itemElement.getAttribute('data-asset-creator'),
|
||||
assetType: itemElement.getAttribute('data-asset-type'),
|
||||
assetPrice: parseInt(itemElement.getAttribute('data-asset-price')),
|
||||
userTokens: parseInt(itemElement.getAttribute('data-user-currency'))
|
||||
});
|
||||
}
|
||||
|
||||
this.Modal = new Bootstrap.Modal(this.ModalRef.current);
|
||||
this.Modal.show();
|
||||
|
||||
this.ModalRef.current.addEventListener('hidden.bs.modal', (event) => {
|
||||
this.props.setModal(null);
|
||||
})
|
||||
}
|
||||
|
||||
componentWillUnmount() {
|
||||
this.Modal.dispose();
|
||||
}
|
||||
|
||||
render() {
|
||||
return (
|
||||
<div ref={this.ModalRef} className="modal fade">
|
||||
<div className="modal-dialog modal-dialog-centered">
|
||||
<div className="modal-content text-center">
|
||||
<div className="modal-header">
|
||||
<h5 className="modal-title">Purchase Item</h5>
|
||||
<button type="button" className="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<div className="modal-body d-flex flex-column">
|
||||
<p>Would you like to purchase the { this.state.assetType } "<strong>{ this.state.assetName }</strong>" from { this.state.assetCreator } for <strong style={{'color': '#e59800', 'fontWeight': 'bold'}}><img src="/images/symbols/token.svg" height="16" width="16" className="img-fluid" style={{'marginTop': '-1px'}} />{ this.state.assetPrice }</strong>?</p>
|
||||
<img src="/images/testing/hat.png" width="240" height="240" alt="{ this.state.assetName }" className="mx-auto my-2 img-fluid" />
|
||||
</div>
|
||||
<div className="modal-footer flex-column">
|
||||
<div className="mx-auto">
|
||||
<button className="btn btn-success">Purchase</button>
|
||||
|
||||
<button className="btn btn-secondary" data-bs-dismiss="modal">Cancel</button>
|
||||
</div>
|
||||
<p className="text-muted pt-1">You will have <strong style={{'color': '#e59800', 'fontWeight': 'bold'}}><img src="/images/symbols/token.svg" height="16" width="16" className="img-fluid" style={{'marginTop': '-1px'}} />{ Math.max(0, (this.state.userTokens - this.state.assetPrice)) }</strong> after this purchase.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
class NotEnoughTokensModal extends Component {
|
||||
constructor(props) {
|
||||
super(props);
|
||||
this.state = {
|
||||
|
||||
};
|
||||
|
||||
this.ModalRef = createRef();
|
||||
this.Modal = null;
|
||||
}
|
||||
|
||||
componentDidMount() {
|
||||
let itemElement = document.getElementById(itemId);
|
||||
if(itemElement) {
|
||||
this.setState({
|
||||
assetPrice: parseInt(itemElement.getAttribute('data-asset-price')),
|
||||
userTokens: parseInt(itemElement.getAttribute('data-user-currency'))
|
||||
});
|
||||
}
|
||||
|
||||
this.Modal = new Bootstrap.Modal(this.ModalRef.current);
|
||||
this.Modal.show();
|
||||
|
||||
this.ModalRef.current.addEventListener('hidden.bs.modal', (event) => {
|
||||
this.props.setModal(null);
|
||||
})
|
||||
}
|
||||
|
||||
componentWillUnmount() {
|
||||
this.Modal.dispose();
|
||||
}
|
||||
|
||||
render() {
|
||||
return (
|
||||
<div ref={this.ModalRef} className="modal fade">
|
||||
<div className="modal-dialog modal-dialog-centered">
|
||||
<div className="modal-content text-center">
|
||||
<div className="modal-header">
|
||||
<h5 className="modal-title">Insufficient Funds</h5>
|
||||
<button type="button" className="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<div className="modal-body">
|
||||
<p>You need <strong style={{'color': '#e59800', 'fontWeight': 'bold'}}><img src="/images/symbols/token.svg" height="16" width="16" className="img-fluid" style={{'marginTop': '-1px'}} />{ this.state.assetPrice - this.state.userTokens }</strong> more to purchase this item.</p>
|
||||
</div>
|
||||
<div className="modal-footer">
|
||||
<button className="btn btn-secondary" data-bs-dismiss="modal">Ok</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
class PurchaseButton extends Component {
|
||||
constructor(props) {
|
||||
super(props);
|
||||
this.state = {
|
||||
loaded: false,
|
||||
showModal: false
|
||||
};
|
||||
|
||||
this.visibleModal = null;
|
||||
|
||||
this.showPrompt = this.showPrompt.bind(this);
|
||||
this.setModal = this.setModal.bind(this);
|
||||
}
|
||||
|
||||
componentDidMount() {
|
||||
let itemElement = document.getElementById(itemId);
|
||||
if(itemElement) {
|
||||
this.setState({
|
||||
assetOnSale: (itemElement.getAttribute('data-asset-on-sale') === '1'),
|
||||
canAfford: (itemElement.getAttribute('data-can-afford') === '1')
|
||||
});
|
||||
}
|
||||
|
||||
this.setState({loaded: true});
|
||||
}
|
||||
|
||||
showPrompt() {
|
||||
if(this.state.canAfford)
|
||||
this.setModal(<PurchaseConfirmationModal setModal={ this.setModal } />);
|
||||
else
|
||||
this.setModal(<NotEnoughTokensModal setModal={ this.setModal } />);
|
||||
}
|
||||
|
||||
setModal(modal = null) {
|
||||
this.visibleModal = modal;
|
||||
|
||||
if(modal) {
|
||||
this.setState({'showModal': true});
|
||||
} else {
|
||||
this.setState({'showModal': false});
|
||||
}
|
||||
}
|
||||
|
||||
render() {
|
||||
return (
|
||||
<>
|
||||
<button
|
||||
className={classNames({
|
||||
'px-5': true,
|
||||
'btn': true,
|
||||
'btn-lg': true,
|
||||
'btn-success': this.state.assetOnSale,
|
||||
'btn-secondary': !this.state.assetOnSale
|
||||
})}
|
||||
disabled={ !(this.state.loaded && this.state.assetOnSale) ? true : null }
|
||||
onClick={ this.showPrompt }
|
||||
>
|
||||
{ (!this.state.loaded || this.state.assetOnSale) ? 'Buy' : 'Offsale' }
|
||||
</button>
|
||||
|
||||
{ this.state.showModal ? this.visibleModal : null }
|
||||
</>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
export default PurchaseButton;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
// © XlXi 2021
|
||||
// © XlXi 2022
|
||||
// Graphictoria 5
|
||||
|
||||
import { useState, useRef, useEffect } from 'react';
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
// © XlXi 2021
|
||||
// © XlXi 2022
|
||||
// Graphictoria 5
|
||||
|
||||
import { Component, createRef } from 'react';
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
// © XlXi 2021
|
||||
// © XlXi 2022
|
||||
// Graphictoria 5
|
||||
|
||||
import $ from 'jquery';
|
||||
|
|
|
|||
|
|
@ -0,0 +1,22 @@
|
|||
// © XlXi 2022
|
||||
// Graphictoria 5
|
||||
|
||||
import $ from 'jquery';
|
||||
|
||||
import React from 'react';
|
||||
import { render } from 'react-dom';
|
||||
|
||||
import Comments from '../components/Comments';
|
||||
import PurchaseButton from '../components/PurchaseButton';
|
||||
|
||||
const purchaseId = 'gt-purchase-button';
|
||||
const commentsId = 'gt-comments';
|
||||
|
||||
$(document).ready(function() {
|
||||
if (document.getElementById(commentsId)) {
|
||||
render(<Comments />, document.getElementById(commentsId));
|
||||
}
|
||||
if (document.getElementById(purchaseId)) {
|
||||
render(<PurchaseButton />, document.getElementById(purchaseId));
|
||||
}
|
||||
});
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
// © XlXi 2021
|
||||
// © XlXi 2022
|
||||
// Graphictoria 5
|
||||
|
||||
import axios from 'axios';
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
// © XlXi 2021
|
||||
// © XlXi 2022
|
||||
// Graphictoria 5
|
||||
|
||||
import $ from 'jquery';
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
// © XlXi 2021
|
||||
// © XlXi 2022
|
||||
// Graphictoria 5
|
||||
|
||||
const urlObject = new URL(document.location.href);
|
||||
|
|
|
|||
|
|
@ -3,12 +3,13 @@
|
|||
@section('title', $title)
|
||||
|
||||
@section('page-specific')
|
||||
<script src="{{ mix('js/Item.js') }}"></script>
|
||||
@endsection
|
||||
|
||||
@section('content')
|
||||
{{-- XlXi: MOVE THESE TO JS --}}
|
||||
@if(false)
|
||||
<div class="modal fade" id="purchase-modal" aria-hidden="true" tabindex="-1">
|
||||
<div class="modal fade show" id="purchase-modal" aria-hidden="true" tabindex="-1">
|
||||
<div class="modal-dialog modal-dialog-centered">
|
||||
<div class="modal-content text-center">
|
||||
<div class="modal-header">
|
||||
|
|
@ -29,7 +30,7 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal fade" id="purchase-modal" aria-hidden="true" tabindex="-1">
|
||||
<div class="modal fade show" id="purchase-modal" aria-hidden="true" tabindex="-1">
|
||||
<div class="modal-dialog modal-dialog-centered">
|
||||
<div class="modal-content text-center">
|
||||
<div class="modal-header">
|
||||
|
|
@ -51,7 +52,20 @@
|
|||
@if(!$asset->approved)
|
||||
<div class="alert alert-danger text-center"><strong>This asset is pending approval.</strong> It will not appear in-game and cannot be voted on or purchased at this time.</div>
|
||||
@endif
|
||||
<div class="graphictoria-item-page">
|
||||
<div id="gt-item" class="graphictoria-item-page"
|
||||
@auth
|
||||
data-asset-id="{{ $asset->id }}"
|
||||
data-asset-name="{{ $asset->name }}"
|
||||
data-asset-creator="{{ $asset->user->username }}"
|
||||
data-asset-type="{{ $asset->typeString() }}"
|
||||
data-asset-on-sale="{{ $asset->onSale }}"
|
||||
@if ($asset->onSale)
|
||||
data-asset-price="{{ $asset->priceInTokens }}"
|
||||
data-user-currency="{{ Auth::user()->tokens }}"
|
||||
data-can-afford="{{ $asset->priceInTokens <= Auth::user()->tokens }}"
|
||||
@endif
|
||||
@endauth
|
||||
>
|
||||
<div class="card shadow-sm">
|
||||
<div class="card-body">
|
||||
<div class="d-flex">
|
||||
|
|
@ -75,17 +89,9 @@
|
|||
</h4>
|
||||
@endif
|
||||
@auth
|
||||
@php
|
||||
$buttonText = 'Buy';
|
||||
$buttonClass = 'success';
|
||||
|
||||
// TODO: XlXi: Owned items
|
||||
if(!$asset->onSale) {
|
||||
$buttonText = 'Offsale';
|
||||
$buttonClass = 'secondary';
|
||||
}
|
||||
@endphp
|
||||
<button id="purchase-button" class="ms-auto px-5 btn btn-lg btn-{{ $buttonClass }}" disabled>{{ $buttonText }}</button>
|
||||
<div id="gt-purchase-button" class="ms-auto">
|
||||
<button class="px-5 btn btn-lg btn-success" disabled>Buy</button>
|
||||
</div>
|
||||
@endauth
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@ mix.js('resources/js/app.js', 'public/js')
|
|||
.js('resources/js/pages/Maintenance.js', 'public/js')
|
||||
.js('resources/js/pages/Dashboard.js', 'public/js')
|
||||
.js('resources/js/pages/Shop.js', 'public/js')
|
||||
.js('resources/js/pages/Item.js', 'public/js')
|
||||
.react()
|
||||
.sass('resources/sass/Graphictoria.scss', 'public/css')
|
||||
.banner({
|
||||
|
|
|
|||
Loading…
Reference in New Issue