From 673aa49aedbcd54b8552216f5e2702dd6130e1d5 Mon Sep 17 00:00:00 2001 From: magiicloud Date: Tue, 17 Oct 2023 20:54:07 +0800 Subject: [PATCH 01/17] added computer card array and computer hand into app.js, referenced from current hand code --- src/App.js | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/App.js b/src/App.js index 899cefc..25d4d5c 100644 --- a/src/App.js +++ b/src/App.js @@ -11,14 +11,20 @@ class App extends React.Component { cardDeck: makeShuffledDeck(), // currCards holds the cards from the current round currCards: [], + currComputerCards: [], }; } dealCards = () => { // this.state.cardDeck.pop() modifies this.state.cardDeck array const newCurrCards = [this.state.cardDeck.pop(), this.state.cardDeck.pop()]; + const newComputerCurrCards = [ + this.state.cardDeck.pop(), + this.state.cardDeck.pop(), + ]; this.setState({ currCards: newCurrCards, + currComputerCards: newComputerCurrCards, }); }; @@ -32,12 +38,22 @@ class App extends React.Component { {name} of {suit} )); + const currComputerCardElems = this.state.currComputerCards.map( + ({ name, suit }) => ( + // Give each list element a unique key +
+ {name} of {suit} +
+ ) + ); return (

High Card 🚀

- {currCardElems} + Player Hand: {currCardElems} +
+ Computer Hand: {currComputerCardElems}
From ae562d095613d1f6a09108ccc45ca29e60dda964 Mon Sep 17 00:00:00 2001 From: magiicloud Date: Tue, 17 Oct 2023 20:57:20 +0800 Subject: [PATCH 02/17] removed 1 line of pop for both user and pc to have a single card hand --- src/App.js | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/App.js b/src/App.js index 25d4d5c..2750e60 100644 --- a/src/App.js +++ b/src/App.js @@ -17,11 +17,8 @@ class App extends React.Component { dealCards = () => { // this.state.cardDeck.pop() modifies this.state.cardDeck array - const newCurrCards = [this.state.cardDeck.pop(), this.state.cardDeck.pop()]; - const newComputerCurrCards = [ - this.state.cardDeck.pop(), - this.state.cardDeck.pop(), - ]; + const newCurrCards = [this.state.cardDeck.pop()]; + const newComputerCurrCards = [this.state.cardDeck.pop()]; this.setState({ currCards: newCurrCards, currComputerCards: newComputerCurrCards, From 054deaa0b906e9e58ed08f26f8ee885ed5c91add Mon Sep 17 00:00:00 2001 From: magiicloud Date: Tue, 17 Oct 2023 22:28:02 +0800 Subject: [PATCH 03/17] added winner state, determine winner function and added it to the dealcards function to be loaded into the return section of the code --- src/App.js | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/src/App.js b/src/App.js index 2750e60..c41f78a 100644 --- a/src/App.js +++ b/src/App.js @@ -12,6 +12,7 @@ class App extends React.Component { // currCards holds the cards from the current round currCards: [], currComputerCards: [], + winner: "", }; } @@ -19,10 +20,25 @@ class App extends React.Component { // this.state.cardDeck.pop() modifies this.state.cardDeck array const newCurrCards = [this.state.cardDeck.pop()]; const newComputerCurrCards = [this.state.cardDeck.pop()]; - this.setState({ - currCards: newCurrCards, - currComputerCards: newComputerCurrCards, - }); + this.setState( + { + currCards: newCurrCards, + currComputerCards: newComputerCurrCards, + }, + () => this.determineWinner() + ); + }; + + determineWinner = () => { + const playerRank = this.state.currCards[0].rank; + const computerRank = this.state.currComputerCards[0].rank; + if (playerRank > computerRank) { + this.setState({ winner: "Player" }); + } else if (playerRank === computerRank) { + this.setState({ winner: "Draw" }); + } else { + this.setState({ winner: "Computer" }); + } }; render() { @@ -43,6 +59,7 @@ class App extends React.Component {
) ); + const currWinner = this.state.winner; return (
@@ -52,6 +69,7 @@ class App extends React.Component {
Computer Hand: {currComputerCardElems}
+ {currWinner}
From 27807fe3fe172c4ec578320d2c78d858213d9a64 Mon Sep 17 00:00:00 2001 From: magiicloud Date: Tue, 17 Oct 2023 22:51:07 +0800 Subject: [PATCH 04/17] added the updateScre function but does not work --- src/App.js | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/App.js b/src/App.js index c41f78a..5b0679e 100644 --- a/src/App.js +++ b/src/App.js @@ -13,6 +13,7 @@ class App extends React.Component { currCards: [], currComputerCards: [], winner: "", + score: [0, 0], }; } @@ -25,7 +26,8 @@ class App extends React.Component { currCards: newCurrCards, currComputerCards: newComputerCurrCards, }, - () => this.determineWinner() + () => this.determineWinner(), + () => this.updateScore() ); }; @@ -41,6 +43,17 @@ class App extends React.Component { } }; + updateScore = () => { + let playerScore = this.state.score[0]; + let computerScore = this.state.score[1]; + const currWinner = this.state.winner; + if (currWinner === "Player") { + this.setState({ score: [(playerScore += 1), computerScore] }); + } else if (currWinner === "Computer") { + this.setState({ score: [playerScore, (computerScore += 1)] }); + } + }; + render() { // You can write JavaScript here, just don't try and set your state! @@ -60,6 +73,7 @@ class App extends React.Component { ) ); const currWinner = this.state.winner; + const currScore = `Player score: ${this.state.score[0]}, Computer Score: ${this.state.score[1]}`; return (
@@ -70,6 +84,8 @@ class App extends React.Component { Computer Hand: {currComputerCardElems}
{currWinner} +
+ {currScore}
From 9e16ae74f45171f286c2a69b09481f28fac205f1 Mon Sep 17 00:00:00 2001 From: magiicloud Date: Tue, 17 Oct 2023 22:55:42 +0800 Subject: [PATCH 05/17] integrated score into determineWinner, now able to update score --- src/App.js | 26 +++++++++++--------------- 1 file changed, 11 insertions(+), 15 deletions(-) diff --git a/src/App.js b/src/App.js index 5b0679e..a5772e2 100644 --- a/src/App.js +++ b/src/App.js @@ -26,31 +26,27 @@ class App extends React.Component { currCards: newCurrCards, currComputerCards: newComputerCurrCards, }, - () => this.determineWinner(), - () => this.updateScore() + () => this.determineWinner() ); }; determineWinner = () => { const playerRank = this.state.currCards[0].rank; const computerRank = this.state.currComputerCards[0].rank; + let playerScore = this.state.score[0]; + let computerScore = this.state.score[1]; if (playerRank > computerRank) { - this.setState({ winner: "Player" }); + this.setState({ + winner: "Player", + score: [(playerScore += 1), computerScore], + }); } else if (playerRank === computerRank) { this.setState({ winner: "Draw" }); } else { - this.setState({ winner: "Computer" }); - } - }; - - updateScore = () => { - let playerScore = this.state.score[0]; - let computerScore = this.state.score[1]; - const currWinner = this.state.winner; - if (currWinner === "Player") { - this.setState({ score: [(playerScore += 1), computerScore] }); - } else if (currWinner === "Computer") { - this.setState({ score: [playerScore, (computerScore += 1)] }); + this.setState({ + winner: "Computer", + score: [playerScore, (computerScore += 1)], + }); } }; From 2945faa92afd15430a8bbbd8c5266dc72041bfe2 Mon Sep 17 00:00:00 2001 From: magiicloud Date: Sat, 21 Oct 2023 10:35:54 +0800 Subject: [PATCH 06/17] changed all occurances of winner to roundWinner --- src/App.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/App.js b/src/App.js index a5772e2..301656a 100644 --- a/src/App.js +++ b/src/App.js @@ -12,7 +12,7 @@ class App extends React.Component { // currCards holds the cards from the current round currCards: [], currComputerCards: [], - winner: "", + roundWinner: "", score: [0, 0], }; } @@ -37,14 +37,14 @@ class App extends React.Component { let computerScore = this.state.score[1]; if (playerRank > computerRank) { this.setState({ - winner: "Player", + roundWinner: "Player", score: [(playerScore += 1), computerScore], }); } else if (playerRank === computerRank) { - this.setState({ winner: "Draw" }); + this.setState({ roundWinner: "Draw" }); } else { this.setState({ - winner: "Computer", + roundWinner: "Computer", score: [playerScore, (computerScore += 1)], }); } @@ -68,7 +68,7 @@ class App extends React.Component { ) ); - const currWinner = this.state.winner; + const currWinner = this.state.roundWinner; const currScore = `Player score: ${this.state.score[0]}, Computer Score: ${this.state.score[1]}`; return ( From 822a7b04581556828ce7f3808ccc84211a032e1d Mon Sep 17 00:00:00 2001 From: magiicloud Date: Sat, 21 Oct 2023 10:50:05 +0800 Subject: [PATCH 07/17] added overall winner function --- src/App.js | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/App.js b/src/App.js index 301656a..aa27262 100644 --- a/src/App.js +++ b/src/App.js @@ -14,6 +14,7 @@ class App extends React.Component { currComputerCards: [], roundWinner: "", score: [0, 0], + overallWinner: "", }; } @@ -50,6 +51,19 @@ class App extends React.Component { } }; + determineOverallWinner = () => { + const playerFinalScore = this.state.score[0]; + const computerFinalScore = this.state.score[1]; + + if (playerFinalScore > computerFinalScore) { + this.setState({ overallWinner: "Player wins" }); + } else if (playerFinalScore === computerFinalScore) { + this.setState({ overallWinner: "It's a draw" }); + } else { + this.setState({ overallWinner: "Computer wins" }); + } + }; + render() { // You can write JavaScript here, just don't try and set your state! From 57482ffd885d549a00085985c8a0bba970067aaf Mon Sep 17 00:00:00 2001 From: magiicloud Date: Sat, 21 Oct 2023 11:18:54 +0800 Subject: [PATCH 08/17] added overall winnner into deal cards --- src/App.js | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/src/App.js b/src/App.js index aa27262..78d4162 100644 --- a/src/App.js +++ b/src/App.js @@ -20,15 +20,19 @@ class App extends React.Component { dealCards = () => { // this.state.cardDeck.pop() modifies this.state.cardDeck array - const newCurrCards = [this.state.cardDeck.pop()]; - const newComputerCurrCards = [this.state.cardDeck.pop()]; - this.setState( - { - currCards: newCurrCards, - currComputerCards: newComputerCurrCards, - }, - () => this.determineWinner() - ); + if (this.state.cardDeck.length === 0) { + this.setState(() => this.determineOverallWinner()); + } else { + const newCurrCards = [this.state.cardDeck.pop()]; + const newComputerCurrCards = [this.state.cardDeck.pop()]; + this.setState( + { + currCards: newCurrCards, + currComputerCards: newComputerCurrCards, + }, + () => this.determineWinner() + ); + } }; determineWinner = () => { @@ -84,6 +88,7 @@ class App extends React.Component { ); const currWinner = this.state.roundWinner; const currScore = `Player score: ${this.state.score[0]}, Computer Score: ${this.state.score[1]}`; + const overallWinner = this.state.overallWinner; return (
@@ -96,6 +101,8 @@ class App extends React.Component { {currWinner}
{currScore} +
+ {overallWinner}
From d7efb9b03403f4597de959281d3ff80dbe7d5cfc Mon Sep 17 00:00:00 2001 From: magiicloud Date: Sat, 21 Oct 2023 11:24:37 +0800 Subject: [PATCH 09/17] if game ends, show restart button if not is deal button --- src/App.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/App.js b/src/App.js index 78d4162..11d9cc3 100644 --- a/src/App.js +++ b/src/App.js @@ -103,7 +103,11 @@ class App extends React.Component { {currScore}
{overallWinner} - + {overallWinner ? ( + + ) : ( + + )} ); From d3e008dba27d5c856ca5706aa2538b66d018d3f0 Mon Sep 17 00:00:00 2001 From: magiicloud Date: Sat, 21 Oct 2023 11:30:30 +0800 Subject: [PATCH 10/17] added restart game to setState to initial blank state --- src/App.js | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/App.js b/src/App.js index 11d9cc3..192f250 100644 --- a/src/App.js +++ b/src/App.js @@ -68,6 +68,17 @@ class App extends React.Component { } }; + restartGame = () => { + this.setState({ + cardDeck: makeShuffledDeck(), + currCards: [], + currComputerCards: [], + roundWinner: "", + score: [0, 0], + overallWinner: "", + }); + }; + render() { // You can write JavaScript here, just don't try and set your state! @@ -103,8 +114,9 @@ class App extends React.Component { {currScore}
{overallWinner} +
{overallWinner ? ( - + ) : ( )} From 50ed8d4c380a71a7c1f795324cb1c401ee6baebe Mon Sep 17 00:00:00 2001 From: magiicloud Date: Sat, 21 Oct 2023 11:49:51 +0800 Subject: [PATCH 11/17] refactored deal cards such that final round auto conclude winner rather than prev to press deal again to determine overall winner --- src/App.js | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/src/App.js b/src/App.js index 192f250..293f713 100644 --- a/src/App.js +++ b/src/App.js @@ -15,23 +15,24 @@ class App extends React.Component { roundWinner: "", score: [0, 0], overallWinner: "", + roundsLeft: 26, }; } dealCards = () => { // this.state.cardDeck.pop() modifies this.state.cardDeck array + const newCurrCards = [this.state.cardDeck.pop()]; + const newComputerCurrCards = [this.state.cardDeck.pop()]; + this.setState( + { + currCards: newCurrCards, + currComputerCards: newComputerCurrCards, + roundsLeft: this.state.roundsLeft - 1, + }, + () => this.determineWinner() + ); if (this.state.cardDeck.length === 0) { this.setState(() => this.determineOverallWinner()); - } else { - const newCurrCards = [this.state.cardDeck.pop()]; - const newComputerCurrCards = [this.state.cardDeck.pop()]; - this.setState( - { - currCards: newCurrCards, - currComputerCards: newComputerCurrCards, - }, - () => this.determineWinner() - ); } }; @@ -76,6 +77,7 @@ class App extends React.Component { roundWinner: "", score: [0, 0], overallWinner: "", + roundsLeft: 26, }); }; @@ -113,6 +115,8 @@ class App extends React.Component {
{currScore}
+ Rounds Left: {this.state.roundsLeft} +
{overallWinner}
{overallWinner ? ( From 2b9245c171e6b06e592e24daa6c429dde333dea4 Mon Sep 17 00:00:00 2001 From: magiicloud Date: Sat, 21 Oct 2023 17:57:28 +0800 Subject: [PATCH 12/17] added images with card image directory --- src/images/SVG-cards-1.3/10_of_clubs.svg | 281 ++++++++++++ src/images/SVG-cards-1.3/10_of_diamonds.svg | 401 +++++++++++++++++ src/images/SVG-cards-1.3/10_of_hearts.svg | 407 ++++++++++++++++++ src/images/SVG-cards-1.3/10_of_spades.svg | 230 ++++++++++ src/images/SVG-cards-1.3/2_of_clubs.svg | 216 ++++++++++ src/images/SVG-cards-1.3/2_of_diamonds.svg | 318 ++++++++++++++ src/images/SVG-cards-1.3/2_of_hearts.svg | 308 +++++++++++++ src/images/SVG-cards-1.3/2_of_spades.svg | 147 +++++++ src/images/SVG-cards-1.3/3_of_clubs.svg | 224 ++++++++++ src/images/SVG-cards-1.3/3_of_diamonds.svg | 319 ++++++++++++++ src/images/SVG-cards-1.3/3_of_hearts.svg | 318 ++++++++++++++ src/images/SVG-cards-1.3/3_of_spades.svg | 154 +++++++ src/images/SVG-cards-1.3/4_of_clubs.svg | 230 ++++++++++ src/images/SVG-cards-1.3/4_of_diamonds.svg | 324 ++++++++++++++ src/images/SVG-cards-1.3/4_of_hearts.svg | 335 ++++++++++++++ src/images/SVG-cards-1.3/4_of_spades.svg | 163 +++++++ src/images/SVG-cards-1.3/5_of_clubs.svg | 238 ++++++++++ src/images/SVG-cards-1.3/5_of_diamonds.svg | 333 ++++++++++++++ src/images/SVG-cards-1.3/5_of_hearts.svg | 336 +++++++++++++++ src/images/SVG-cards-1.3/5_of_spades.svg | 170 ++++++++ src/images/SVG-cards-1.3/6_of_clubs.svg | 244 +++++++++++ src/images/SVG-cards-1.3/6_of_diamonds.svg | 340 +++++++++++++++ src/images/SVG-cards-1.3/6_of_hearts.svg | 344 +++++++++++++++ src/images/SVG-cards-1.3/6_of_spades.svg | 177 ++++++++ src/images/SVG-cards-1.3/7_of_clubs.svg | 252 +++++++++++ src/images/SVG-cards-1.3/7_of_diamonds.svg | 349 +++++++++++++++ src/images/SVG-cards-1.3/7_of_hearts.svg | 356 +++++++++++++++ src/images/SVG-cards-1.3/7_of_spades.svg | 186 ++++++++ src/images/SVG-cards-1.3/8_of_clubs.svg | 260 +++++++++++ src/images/SVG-cards-1.3/8_of_diamonds.svg | 358 +++++++++++++++ src/images/SVG-cards-1.3/8_of_hearts.svg | 364 ++++++++++++++++ src/images/SVG-cards-1.3/8_of_spades.svg | 195 +++++++++ src/images/SVG-cards-1.3/9_of_clubs.svg | 254 +++++++++++ src/images/SVG-cards-1.3/9_of_diamonds.svg | 367 ++++++++++++++++ src/images/SVG-cards-1.3/9_of_hearts.svg | 378 ++++++++++++++++ src/images/SVG-cards-1.3/9_of_spades.svg | 198 +++++++++ src/images/SVG-cards-1.3/ace_of_clubs.svg | 258 +++++++++++ src/images/SVG-cards-1.3/ace_of_diamonds.svg | 311 +++++++++++++ src/images/SVG-cards-1.3/ace_of_hearts.svg | 324 ++++++++++++++ src/images/SVG-cards-1.3/ace_of_spades.svg | 131 ++++++ src/images/SVG-cards-1.3/ace_of_spades2.svg | 279 ++++++++++++ src/images/SVG-cards-1.3/black_joker.svg | 278 ++++++++++++ src/images/SVG-cards-1.3/jack_of_clubs.svg | 260 +++++++++++ src/images/SVG-cards-1.3/jack_of_clubs2.svg | 224 ++++++++++ src/images/SVG-cards-1.3/jack_of_diamonds.svg | 317 ++++++++++++++ .../SVG-cards-1.3/jack_of_diamonds2.svg | 338 +++++++++++++++ src/images/SVG-cards-1.3/jack_of_hearts.svg | 330 ++++++++++++++ src/images/SVG-cards-1.3/jack_of_hearts2.svg | 330 ++++++++++++++ src/images/SVG-cards-1.3/jack_of_spades.svg | 320 ++++++++++++++ src/images/SVG-cards-1.3/jack_of_spades2.svg | 336 +++++++++++++++ src/images/SVG-cards-1.3/king_of_clubs.svg | 260 +++++++++++ src/images/SVG-cards-1.3/king_of_clubs2.svg | 254 +++++++++++ src/images/SVG-cards-1.3/king_of_diamonds.svg | 313 ++++++++++++++ .../SVG-cards-1.3/king_of_diamonds2.svg | 351 +++++++++++++++ src/images/SVG-cards-1.3/king_of_hearts.svg | 326 ++++++++++++++ src/images/SVG-cards-1.3/king_of_hearts2.svg | 337 +++++++++++++++ src/images/SVG-cards-1.3/king_of_spades.svg | 316 ++++++++++++++ src/images/SVG-cards-1.3/king_of_spades2.svg | 329 ++++++++++++++ src/images/SVG-cards-1.3/queen_of_clubs.svg | 260 +++++++++++ src/images/SVG-cards-1.3/queen_of_clubs2.svg | 250 +++++++++++ .../SVG-cards-1.3/queen_of_diamonds.svg | 315 ++++++++++++++ .../SVG-cards-1.3/queen_of_diamonds2.svg | 339 +++++++++++++++ src/images/SVG-cards-1.3/queen_of_hearts.svg | 328 ++++++++++++++ src/images/SVG-cards-1.3/queen_of_hearts2.svg | 331 ++++++++++++++ src/images/SVG-cards-1.3/queen_of_spades.svg | 318 ++++++++++++++ src/images/SVG-cards-1.3/queen_of_spades2.svg | 324 ++++++++++++++ src/images/SVG-cards-1.3/red_joker.svg | 288 +++++++++++++ 67 files changed, 19349 insertions(+) create mode 100644 src/images/SVG-cards-1.3/10_of_clubs.svg create mode 100644 src/images/SVG-cards-1.3/10_of_diamonds.svg create mode 100644 src/images/SVG-cards-1.3/10_of_hearts.svg create mode 100644 src/images/SVG-cards-1.3/10_of_spades.svg create mode 100644 src/images/SVG-cards-1.3/2_of_clubs.svg create mode 100644 src/images/SVG-cards-1.3/2_of_diamonds.svg create mode 100644 src/images/SVG-cards-1.3/2_of_hearts.svg create mode 100644 src/images/SVG-cards-1.3/2_of_spades.svg create mode 100644 src/images/SVG-cards-1.3/3_of_clubs.svg create mode 100644 src/images/SVG-cards-1.3/3_of_diamonds.svg create mode 100644 src/images/SVG-cards-1.3/3_of_hearts.svg create mode 100644 src/images/SVG-cards-1.3/3_of_spades.svg create mode 100644 src/images/SVG-cards-1.3/4_of_clubs.svg create mode 100644 src/images/SVG-cards-1.3/4_of_diamonds.svg create mode 100644 src/images/SVG-cards-1.3/4_of_hearts.svg create mode 100644 src/images/SVG-cards-1.3/4_of_spades.svg create mode 100644 src/images/SVG-cards-1.3/5_of_clubs.svg create mode 100644 src/images/SVG-cards-1.3/5_of_diamonds.svg create mode 100644 src/images/SVG-cards-1.3/5_of_hearts.svg create mode 100644 src/images/SVG-cards-1.3/5_of_spades.svg create mode 100644 src/images/SVG-cards-1.3/6_of_clubs.svg create mode 100644 src/images/SVG-cards-1.3/6_of_diamonds.svg create mode 100644 src/images/SVG-cards-1.3/6_of_hearts.svg create mode 100644 src/images/SVG-cards-1.3/6_of_spades.svg create mode 100644 src/images/SVG-cards-1.3/7_of_clubs.svg create mode 100644 src/images/SVG-cards-1.3/7_of_diamonds.svg create mode 100644 src/images/SVG-cards-1.3/7_of_hearts.svg create mode 100644 src/images/SVG-cards-1.3/7_of_spades.svg create mode 100644 src/images/SVG-cards-1.3/8_of_clubs.svg create mode 100644 src/images/SVG-cards-1.3/8_of_diamonds.svg create mode 100644 src/images/SVG-cards-1.3/8_of_hearts.svg create mode 100644 src/images/SVG-cards-1.3/8_of_spades.svg create mode 100644 src/images/SVG-cards-1.3/9_of_clubs.svg create mode 100644 src/images/SVG-cards-1.3/9_of_diamonds.svg create mode 100644 src/images/SVG-cards-1.3/9_of_hearts.svg create mode 100644 src/images/SVG-cards-1.3/9_of_spades.svg create mode 100644 src/images/SVG-cards-1.3/ace_of_clubs.svg create mode 100644 src/images/SVG-cards-1.3/ace_of_diamonds.svg create mode 100644 src/images/SVG-cards-1.3/ace_of_hearts.svg create mode 100644 src/images/SVG-cards-1.3/ace_of_spades.svg create mode 100644 src/images/SVG-cards-1.3/ace_of_spades2.svg create mode 100644 src/images/SVG-cards-1.3/black_joker.svg create mode 100644 src/images/SVG-cards-1.3/jack_of_clubs.svg create mode 100644 src/images/SVG-cards-1.3/jack_of_clubs2.svg create mode 100644 src/images/SVG-cards-1.3/jack_of_diamonds.svg create mode 100644 src/images/SVG-cards-1.3/jack_of_diamonds2.svg create mode 100644 src/images/SVG-cards-1.3/jack_of_hearts.svg create mode 100644 src/images/SVG-cards-1.3/jack_of_hearts2.svg create mode 100644 src/images/SVG-cards-1.3/jack_of_spades.svg create mode 100644 src/images/SVG-cards-1.3/jack_of_spades2.svg create mode 100644 src/images/SVG-cards-1.3/king_of_clubs.svg create mode 100644 src/images/SVG-cards-1.3/king_of_clubs2.svg create mode 100644 src/images/SVG-cards-1.3/king_of_diamonds.svg create mode 100644 src/images/SVG-cards-1.3/king_of_diamonds2.svg create mode 100644 src/images/SVG-cards-1.3/king_of_hearts.svg create mode 100644 src/images/SVG-cards-1.3/king_of_hearts2.svg create mode 100644 src/images/SVG-cards-1.3/king_of_spades.svg create mode 100644 src/images/SVG-cards-1.3/king_of_spades2.svg create mode 100644 src/images/SVG-cards-1.3/queen_of_clubs.svg create mode 100644 src/images/SVG-cards-1.3/queen_of_clubs2.svg create mode 100644 src/images/SVG-cards-1.3/queen_of_diamonds.svg create mode 100644 src/images/SVG-cards-1.3/queen_of_diamonds2.svg create mode 100644 src/images/SVG-cards-1.3/queen_of_hearts.svg create mode 100644 src/images/SVG-cards-1.3/queen_of_hearts2.svg create mode 100644 src/images/SVG-cards-1.3/queen_of_spades.svg create mode 100644 src/images/SVG-cards-1.3/queen_of_spades2.svg create mode 100644 src/images/SVG-cards-1.3/red_joker.svg diff --git a/src/images/SVG-cards-1.3/10_of_clubs.svg b/src/images/SVG-cards-1.3/10_of_clubs.svg new file mode 100644 index 0000000..2e7788c --- /dev/null +++ b/src/images/SVG-cards-1.3/10_of_clubs.svg @@ -0,0 +1,281 @@ + + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1 +0 +1 +0 + diff --git a/src/images/SVG-cards-1.3/10_of_diamonds.svg b/src/images/SVG-cards-1.3/10_of_diamonds.svg new file mode 100644 index 0000000..3d0b1c0 --- /dev/null +++ b/src/images/SVG-cards-1.3/10_of_diamonds.svg @@ -0,0 +1,401 @@ + + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1 + + + + + + + + + + + + + + + + + + + + + + + +0 +1 +0 + diff --git a/src/images/SVG-cards-1.3/10_of_hearts.svg b/src/images/SVG-cards-1.3/10_of_hearts.svg new file mode 100644 index 0000000..c57575e --- /dev/null +++ b/src/images/SVG-cards-1.3/10_of_hearts.svg @@ -0,0 +1,407 @@ + + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1 + + + + + + + + + + + + + + + + + + + + + +0 +1 +0 + diff --git a/src/images/SVG-cards-1.3/10_of_spades.svg b/src/images/SVG-cards-1.3/10_of_spades.svg new file mode 100644 index 0000000..a14767c --- /dev/null +++ b/src/images/SVG-cards-1.3/10_of_spades.svg @@ -0,0 +1,230 @@ + + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + +1 + + + + + + + + +0 +1 +0 + diff --git a/src/images/SVG-cards-1.3/2_of_clubs.svg b/src/images/SVG-cards-1.3/2_of_clubs.svg new file mode 100644 index 0000000..0334dec --- /dev/null +++ b/src/images/SVG-cards-1.3/2_of_clubs.svg @@ -0,0 +1,216 @@ + + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + +2 + + + + + +2 + + + + diff --git a/src/images/SVG-cards-1.3/2_of_diamonds.svg b/src/images/SVG-cards-1.3/2_of_diamonds.svg new file mode 100644 index 0000000..4956234 --- /dev/null +++ b/src/images/SVG-cards-1.3/2_of_diamonds.svg @@ -0,0 +1,318 @@ + + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2 + + + + + + +2 + + + + + + diff --git a/src/images/SVG-cards-1.3/2_of_hearts.svg b/src/images/SVG-cards-1.3/2_of_hearts.svg new file mode 100644 index 0000000..f6c9540 --- /dev/null +++ b/src/images/SVG-cards-1.3/2_of_hearts.svg @@ -0,0 +1,308 @@ + + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2 + + + + + + +2 + + + + + + diff --git a/src/images/SVG-cards-1.3/2_of_spades.svg b/src/images/SVG-cards-1.3/2_of_spades.svg new file mode 100644 index 0000000..759abf6 --- /dev/null +++ b/src/images/SVG-cards-1.3/2_of_spades.svg @@ -0,0 +1,147 @@ + + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + +2 + + + +2 + + diff --git a/src/images/SVG-cards-1.3/3_of_clubs.svg b/src/images/SVG-cards-1.3/3_of_clubs.svg new file mode 100644 index 0000000..0fb95b3 --- /dev/null +++ b/src/images/SVG-cards-1.3/3_of_clubs.svg @@ -0,0 +1,224 @@ + + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + +3 + + + + + + +3 + + + + + diff --git a/src/images/SVG-cards-1.3/3_of_diamonds.svg b/src/images/SVG-cards-1.3/3_of_diamonds.svg new file mode 100644 index 0000000..a562f1f --- /dev/null +++ b/src/images/SVG-cards-1.3/3_of_diamonds.svg @@ -0,0 +1,319 @@ + + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3 + + + + + + + + +3 + + + + + + + + diff --git a/src/images/SVG-cards-1.3/3_of_hearts.svg b/src/images/SVG-cards-1.3/3_of_hearts.svg new file mode 100644 index 0000000..aecd1ff --- /dev/null +++ b/src/images/SVG-cards-1.3/3_of_hearts.svg @@ -0,0 +1,318 @@ + + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3 + + + + + + + +3 + + + + + + + diff --git a/src/images/SVG-cards-1.3/3_of_spades.svg b/src/images/SVG-cards-1.3/3_of_spades.svg new file mode 100644 index 0000000..8963195 --- /dev/null +++ b/src/images/SVG-cards-1.3/3_of_spades.svg @@ -0,0 +1,154 @@ + + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + +3 + + + +3 + + diff --git a/src/images/SVG-cards-1.3/4_of_clubs.svg b/src/images/SVG-cards-1.3/4_of_clubs.svg new file mode 100644 index 0000000..70f8904 --- /dev/null +++ b/src/images/SVG-cards-1.3/4_of_clubs.svg @@ -0,0 +1,230 @@ + + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + +4 + + + + + + +4 + + + + + diff --git a/src/images/SVG-cards-1.3/4_of_diamonds.svg b/src/images/SVG-cards-1.3/4_of_diamonds.svg new file mode 100644 index 0000000..8677737 --- /dev/null +++ b/src/images/SVG-cards-1.3/4_of_diamonds.svg @@ -0,0 +1,324 @@ + + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +4 + + + + + + + +4 + + + + + + + diff --git a/src/images/SVG-cards-1.3/4_of_hearts.svg b/src/images/SVG-cards-1.3/4_of_hearts.svg new file mode 100644 index 0000000..9b7f0a7 --- /dev/null +++ b/src/images/SVG-cards-1.3/4_of_hearts.svg @@ -0,0 +1,335 @@ + + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +4 + + + + + + + +4 + + + + + + + diff --git a/src/images/SVG-cards-1.3/4_of_spades.svg b/src/images/SVG-cards-1.3/4_of_spades.svg new file mode 100644 index 0000000..01e27e4 --- /dev/null +++ b/src/images/SVG-cards-1.3/4_of_spades.svg @@ -0,0 +1,163 @@ + + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + +4 + + + + +4 + + + diff --git a/src/images/SVG-cards-1.3/5_of_clubs.svg b/src/images/SVG-cards-1.3/5_of_clubs.svg new file mode 100644 index 0000000..864d2f2 --- /dev/null +++ b/src/images/SVG-cards-1.3/5_of_clubs.svg @@ -0,0 +1,238 @@ + + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + +5 + + + + + + + +5 + + + + + + diff --git a/src/images/SVG-cards-1.3/5_of_diamonds.svg b/src/images/SVG-cards-1.3/5_of_diamonds.svg new file mode 100644 index 0000000..a8cb2b5 --- /dev/null +++ b/src/images/SVG-cards-1.3/5_of_diamonds.svg @@ -0,0 +1,333 @@ + + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +5 + + + + + + + + +5 + + + + + + + + diff --git a/src/images/SVG-cards-1.3/5_of_hearts.svg b/src/images/SVG-cards-1.3/5_of_hearts.svg new file mode 100644 index 0000000..af7415a --- /dev/null +++ b/src/images/SVG-cards-1.3/5_of_hearts.svg @@ -0,0 +1,336 @@ + + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +5 + + + + + + + + +5 + + + + + + + + diff --git a/src/images/SVG-cards-1.3/5_of_spades.svg b/src/images/SVG-cards-1.3/5_of_spades.svg new file mode 100644 index 0000000..d9492ba --- /dev/null +++ b/src/images/SVG-cards-1.3/5_of_spades.svg @@ -0,0 +1,170 @@ + + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + +5 + + + + +5 + + + diff --git a/src/images/SVG-cards-1.3/6_of_clubs.svg b/src/images/SVG-cards-1.3/6_of_clubs.svg new file mode 100644 index 0000000..306754e --- /dev/null +++ b/src/images/SVG-cards-1.3/6_of_clubs.svg @@ -0,0 +1,244 @@ + + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + +6 + + + + + + + +6 + + + + + + diff --git a/src/images/SVG-cards-1.3/6_of_diamonds.svg b/src/images/SVG-cards-1.3/6_of_diamonds.svg new file mode 100644 index 0000000..6f12a53 --- /dev/null +++ b/src/images/SVG-cards-1.3/6_of_diamonds.svg @@ -0,0 +1,340 @@ + + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +6 + + + + + + + + +6 + + + + + + + + diff --git a/src/images/SVG-cards-1.3/6_of_hearts.svg b/src/images/SVG-cards-1.3/6_of_hearts.svg new file mode 100644 index 0000000..9c319ad --- /dev/null +++ b/src/images/SVG-cards-1.3/6_of_hearts.svg @@ -0,0 +1,344 @@ + + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +6 + + + + + + + + +6 + + + + + + + + diff --git a/src/images/SVG-cards-1.3/6_of_spades.svg b/src/images/SVG-cards-1.3/6_of_spades.svg new file mode 100644 index 0000000..83e8feb --- /dev/null +++ b/src/images/SVG-cards-1.3/6_of_spades.svg @@ -0,0 +1,177 @@ + + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + +6 + + + + +6 + + + diff --git a/src/images/SVG-cards-1.3/7_of_clubs.svg b/src/images/SVG-cards-1.3/7_of_clubs.svg new file mode 100644 index 0000000..11329b1 --- /dev/null +++ b/src/images/SVG-cards-1.3/7_of_clubs.svg @@ -0,0 +1,252 @@ + + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + +7 + + + + + + + + +7 + + + + + + + diff --git a/src/images/SVG-cards-1.3/7_of_diamonds.svg b/src/images/SVG-cards-1.3/7_of_diamonds.svg new file mode 100644 index 0000000..d8483a7 --- /dev/null +++ b/src/images/SVG-cards-1.3/7_of_diamonds.svg @@ -0,0 +1,349 @@ + + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +7 + + + + + + + + + +7 + + + + + + + + + diff --git a/src/images/SVG-cards-1.3/7_of_hearts.svg b/src/images/SVG-cards-1.3/7_of_hearts.svg new file mode 100644 index 0000000..8d5fd98 --- /dev/null +++ b/src/images/SVG-cards-1.3/7_of_hearts.svg @@ -0,0 +1,356 @@ + + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +7 + + + + + + + + + + +7 + + + + + + + + + + diff --git a/src/images/SVG-cards-1.3/7_of_spades.svg b/src/images/SVG-cards-1.3/7_of_spades.svg new file mode 100644 index 0000000..3146b44 --- /dev/null +++ b/src/images/SVG-cards-1.3/7_of_spades.svg @@ -0,0 +1,186 @@ + + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + +7 + + + + + +7 + + + + diff --git a/src/images/SVG-cards-1.3/8_of_clubs.svg b/src/images/SVG-cards-1.3/8_of_clubs.svg new file mode 100644 index 0000000..28ae6fb --- /dev/null +++ b/src/images/SVG-cards-1.3/8_of_clubs.svg @@ -0,0 +1,260 @@ + + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + +8 + + + + + + + + + +8 + + + + + + + + diff --git a/src/images/SVG-cards-1.3/8_of_diamonds.svg b/src/images/SVG-cards-1.3/8_of_diamonds.svg new file mode 100644 index 0000000..d6d1b0e --- /dev/null +++ b/src/images/SVG-cards-1.3/8_of_diamonds.svg @@ -0,0 +1,358 @@ + + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +8 + + + + + + + + + + +8 + + + + + + + + + + diff --git a/src/images/SVG-cards-1.3/8_of_hearts.svg b/src/images/SVG-cards-1.3/8_of_hearts.svg new file mode 100644 index 0000000..ac8d5ba --- /dev/null +++ b/src/images/SVG-cards-1.3/8_of_hearts.svg @@ -0,0 +1,364 @@ + + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +8 + + + + + + + + + + +8 + + + + + + + + + + diff --git a/src/images/SVG-cards-1.3/8_of_spades.svg b/src/images/SVG-cards-1.3/8_of_spades.svg new file mode 100644 index 0000000..0e5bd89 --- /dev/null +++ b/src/images/SVG-cards-1.3/8_of_spades.svg @@ -0,0 +1,195 @@ + + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + +8 + + + + + + +8 + + + + + diff --git a/src/images/SVG-cards-1.3/9_of_clubs.svg b/src/images/SVG-cards-1.3/9_of_clubs.svg new file mode 100644 index 0000000..85cde35 --- /dev/null +++ b/src/images/SVG-cards-1.3/9_of_clubs.svg @@ -0,0 +1,254 @@ + + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + +9 + + + + + + + + + + + + +9 + + + + + + + + + + + diff --git a/src/images/SVG-cards-1.3/9_of_diamonds.svg b/src/images/SVG-cards-1.3/9_of_diamonds.svg new file mode 100644 index 0000000..05292f2 --- /dev/null +++ b/src/images/SVG-cards-1.3/9_of_diamonds.svg @@ -0,0 +1,367 @@ + + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +9 + + + + + + + + + + + +9 + + + + + + + + + + + diff --git a/src/images/SVG-cards-1.3/9_of_hearts.svg b/src/images/SVG-cards-1.3/9_of_hearts.svg new file mode 100644 index 0000000..0f6a211 --- /dev/null +++ b/src/images/SVG-cards-1.3/9_of_hearts.svg @@ -0,0 +1,378 @@ + + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +9 + + + +9 + diff --git a/src/images/SVG-cards-1.3/9_of_spades.svg b/src/images/SVG-cards-1.3/9_of_spades.svg new file mode 100644 index 0000000..2359db5 --- /dev/null +++ b/src/images/SVG-cards-1.3/9_of_spades.svg @@ -0,0 +1,198 @@ + + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + +9 + + + + +9 + + + diff --git a/src/images/SVG-cards-1.3/ace_of_clubs.svg b/src/images/SVG-cards-1.3/ace_of_clubs.svg new file mode 100644 index 0000000..be74fe0 --- /dev/null +++ b/src/images/SVG-cards-1.3/ace_of_clubs.svg @@ -0,0 +1,258 @@ + + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + +A + + +A + diff --git a/src/images/SVG-cards-1.3/ace_of_diamonds.svg b/src/images/SVG-cards-1.3/ace_of_diamonds.svg new file mode 100644 index 0000000..e5636a4 --- /dev/null +++ b/src/images/SVG-cards-1.3/ace_of_diamonds.svg @@ -0,0 +1,311 @@ + + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +A + + +A + + diff --git a/src/images/SVG-cards-1.3/ace_of_hearts.svg b/src/images/SVG-cards-1.3/ace_of_hearts.svg new file mode 100644 index 0000000..24702e2 --- /dev/null +++ b/src/images/SVG-cards-1.3/ace_of_hearts.svg @@ -0,0 +1,324 @@ + + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +A + +A + diff --git a/src/images/SVG-cards-1.3/ace_of_spades.svg b/src/images/SVG-cards-1.3/ace_of_spades.svg new file mode 100644 index 0000000..db32c06 --- /dev/null +++ b/src/images/SVG-cards-1.3/ace_of_spades.svg @@ -0,0 +1,131 @@ + + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + +A +A + diff --git a/src/images/SVG-cards-1.3/ace_of_spades2.svg b/src/images/SVG-cards-1.3/ace_of_spades2.svg new file mode 100644 index 0000000..f95b248 --- /dev/null +++ b/src/images/SVG-cards-1.3/ace_of_spades2.svg @@ -0,0 +1,279 @@ + + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + +A + +A + + diff --git a/src/images/SVG-cards-1.3/black_joker.svg b/src/images/SVG-cards-1.3/black_joker.svg new file mode 100644 index 0000000..f4ebef4 --- /dev/null +++ b/src/images/SVG-cards-1.3/black_joker.svg @@ -0,0 +1,278 @@ + + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + +J + + + + + + + + + +o + + + +k + + + +e + + + +r + + + + + + + + + + + + + +J + +o + +k + +e + +r + + diff --git a/src/images/SVG-cards-1.3/jack_of_clubs.svg b/src/images/SVG-cards-1.3/jack_of_clubs.svg new file mode 100644 index 0000000..c209fa5 --- /dev/null +++ b/src/images/SVG-cards-1.3/jack_of_clubs.svg @@ -0,0 +1,260 @@ + + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + +J + + + +J + + diff --git a/src/images/SVG-cards-1.3/jack_of_clubs2.svg b/src/images/SVG-cards-1.3/jack_of_clubs2.svg new file mode 100644 index 0000000..a350305 --- /dev/null +++ b/src/images/SVG-cards-1.3/jack_of_clubs2.svg @@ -0,0 +1,224 @@ + + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +J + + + +J + + + + diff --git a/src/images/SVG-cards-1.3/jack_of_diamonds.svg b/src/images/SVG-cards-1.3/jack_of_diamonds.svg new file mode 100644 index 0000000..d339a4e --- /dev/null +++ b/src/images/SVG-cards-1.3/jack_of_diamonds.svg @@ -0,0 +1,317 @@ + + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +J + + + + + +J + + + + + diff --git a/src/images/SVG-cards-1.3/jack_of_diamonds2.svg b/src/images/SVG-cards-1.3/jack_of_diamonds2.svg new file mode 100644 index 0000000..d531541 --- /dev/null +++ b/src/images/SVG-cards-1.3/jack_of_diamonds2.svg @@ -0,0 +1,338 @@ + + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +J + + + + + + + + + + + + + + + + +J + + + + diff --git a/src/images/SVG-cards-1.3/jack_of_hearts.svg b/src/images/SVG-cards-1.3/jack_of_hearts.svg new file mode 100644 index 0000000..d556d2c --- /dev/null +++ b/src/images/SVG-cards-1.3/jack_of_hearts.svg @@ -0,0 +1,330 @@ + + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +J + + + + +J + + + + diff --git a/src/images/SVG-cards-1.3/jack_of_hearts2.svg b/src/images/SVG-cards-1.3/jack_of_hearts2.svg new file mode 100644 index 0000000..dc95ce1 --- /dev/null +++ b/src/images/SVG-cards-1.3/jack_of_hearts2.svg @@ -0,0 +1,330 @@ + + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +J + + + + + + + + + + + + +J + + + + diff --git a/src/images/SVG-cards-1.3/jack_of_spades.svg b/src/images/SVG-cards-1.3/jack_of_spades.svg new file mode 100644 index 0000000..cec94ac --- /dev/null +++ b/src/images/SVG-cards-1.3/jack_of_spades.svg @@ -0,0 +1,320 @@ + + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +J + + +J + + + diff --git a/src/images/SVG-cards-1.3/jack_of_spades2.svg b/src/images/SVG-cards-1.3/jack_of_spades2.svg new file mode 100644 index 0000000..281113f --- /dev/null +++ b/src/images/SVG-cards-1.3/jack_of_spades2.svg @@ -0,0 +1,336 @@ + + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +J + + + + + + +J + + + + diff --git a/src/images/SVG-cards-1.3/king_of_clubs.svg b/src/images/SVG-cards-1.3/king_of_clubs.svg new file mode 100644 index 0000000..613eec7 --- /dev/null +++ b/src/images/SVG-cards-1.3/king_of_clubs.svg @@ -0,0 +1,260 @@ + + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + +K + + + +K + + diff --git a/src/images/SVG-cards-1.3/king_of_clubs2.svg b/src/images/SVG-cards-1.3/king_of_clubs2.svg new file mode 100644 index 0000000..fe6e676 --- /dev/null +++ b/src/images/SVG-cards-1.3/king_of_clubs2.svg @@ -0,0 +1,254 @@ + + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +K + + + + + +K + + + + diff --git a/src/images/SVG-cards-1.3/king_of_diamonds.svg b/src/images/SVG-cards-1.3/king_of_diamonds.svg new file mode 100644 index 0000000..4966286 --- /dev/null +++ b/src/images/SVG-cards-1.3/king_of_diamonds.svg @@ -0,0 +1,313 @@ + + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +K + + + +K + + + diff --git a/src/images/SVG-cards-1.3/king_of_diamonds2.svg b/src/images/SVG-cards-1.3/king_of_diamonds2.svg new file mode 100644 index 0000000..f983c6a --- /dev/null +++ b/src/images/SVG-cards-1.3/king_of_diamonds2.svg @@ -0,0 +1,351 @@ + + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +K + + + + + + + + + + + + + + + + + + +K + + + + diff --git a/src/images/SVG-cards-1.3/king_of_hearts.svg b/src/images/SVG-cards-1.3/king_of_hearts.svg new file mode 100644 index 0000000..476e6d5 --- /dev/null +++ b/src/images/SVG-cards-1.3/king_of_hearts.svg @@ -0,0 +1,326 @@ + + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +K + + +K + + diff --git a/src/images/SVG-cards-1.3/king_of_hearts2.svg b/src/images/SVG-cards-1.3/king_of_hearts2.svg new file mode 100644 index 0000000..7250745 --- /dev/null +++ b/src/images/SVG-cards-1.3/king_of_hearts2.svg @@ -0,0 +1,337 @@ + + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +K + + + + + + + + + + + + + + +K + + + + diff --git a/src/images/SVG-cards-1.3/king_of_spades.svg b/src/images/SVG-cards-1.3/king_of_spades.svg new file mode 100644 index 0000000..4a4e90d --- /dev/null +++ b/src/images/SVG-cards-1.3/king_of_spades.svg @@ -0,0 +1,316 @@ + + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +K +K + diff --git a/src/images/SVG-cards-1.3/king_of_spades2.svg b/src/images/SVG-cards-1.3/king_of_spades2.svg new file mode 100644 index 0000000..ac4338d --- /dev/null +++ b/src/images/SVG-cards-1.3/king_of_spades2.svg @@ -0,0 +1,329 @@ + + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +K + + + + + + + + +K + + + + diff --git a/src/images/SVG-cards-1.3/queen_of_clubs.svg b/src/images/SVG-cards-1.3/queen_of_clubs.svg new file mode 100644 index 0000000..512383d --- /dev/null +++ b/src/images/SVG-cards-1.3/queen_of_clubs.svg @@ -0,0 +1,260 @@ + + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + +Q + + + +Q + + diff --git a/src/images/SVG-cards-1.3/queen_of_clubs2.svg b/src/images/SVG-cards-1.3/queen_of_clubs2.svg new file mode 100644 index 0000000..6a636f7 --- /dev/null +++ b/src/images/SVG-cards-1.3/queen_of_clubs2.svg @@ -0,0 +1,250 @@ + + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Q + + + + + +Q + + + + diff --git a/src/images/SVG-cards-1.3/queen_of_diamonds.svg b/src/images/SVG-cards-1.3/queen_of_diamonds.svg new file mode 100644 index 0000000..9f63d1b --- /dev/null +++ b/src/images/SVG-cards-1.3/queen_of_diamonds.svg @@ -0,0 +1,315 @@ + + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Q + + + + +Q + + + + diff --git a/src/images/SVG-cards-1.3/queen_of_diamonds2.svg b/src/images/SVG-cards-1.3/queen_of_diamonds2.svg new file mode 100644 index 0000000..76b62db --- /dev/null +++ b/src/images/SVG-cards-1.3/queen_of_diamonds2.svg @@ -0,0 +1,339 @@ + + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Q + + + + + + + + + + + + + + + + + + +Q + + + + diff --git a/src/images/SVG-cards-1.3/queen_of_hearts.svg b/src/images/SVG-cards-1.3/queen_of_hearts.svg new file mode 100644 index 0000000..1c8dd1b --- /dev/null +++ b/src/images/SVG-cards-1.3/queen_of_hearts.svg @@ -0,0 +1,328 @@ + + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Q + + + +Q + + + diff --git a/src/images/SVG-cards-1.3/queen_of_hearts2.svg b/src/images/SVG-cards-1.3/queen_of_hearts2.svg new file mode 100644 index 0000000..90ede78 --- /dev/null +++ b/src/images/SVG-cards-1.3/queen_of_hearts2.svg @@ -0,0 +1,331 @@ + + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Q + + + + + + + + + + + + + + + +Q + + + + + diff --git a/src/images/SVG-cards-1.3/queen_of_spades.svg b/src/images/SVG-cards-1.3/queen_of_spades.svg new file mode 100644 index 0000000..5d2fbe9 --- /dev/null +++ b/src/images/SVG-cards-1.3/queen_of_spades.svg @@ -0,0 +1,318 @@ + + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Q + +Q + + diff --git a/src/images/SVG-cards-1.3/queen_of_spades2.svg b/src/images/SVG-cards-1.3/queen_of_spades2.svg new file mode 100644 index 0000000..8dc5540 --- /dev/null +++ b/src/images/SVG-cards-1.3/queen_of_spades2.svg @@ -0,0 +1,324 @@ + + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Q + + + + + + + +Q + + + diff --git a/src/images/SVG-cards-1.3/red_joker.svg b/src/images/SVG-cards-1.3/red_joker.svg new file mode 100644 index 0000000..f949227 --- /dev/null +++ b/src/images/SVG-cards-1.3/red_joker.svg @@ -0,0 +1,288 @@ + + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + +J + + + + + + + + + + +o + + + + +k + + + + +e + + + + +r + + + + + + + + + + + + + + +J + + +o + + +k + + +e + + +r + + + From d23c5c929fb8022bbfce570aa7ecfb1cf0388e3f Mon Sep 17 00:00:00 2001 From: magiicloud Date: Sat, 21 Oct 2023 18:15:28 +0800 Subject: [PATCH 13/17] added playing card images folder and js --- src/App.js | 1 + src/cardimages.js | 12 ++++++++++++ 2 files changed, 13 insertions(+) create mode 100644 src/cardimages.js diff --git a/src/App.js b/src/App.js index 293f713..f93e8ef 100644 --- a/src/App.js +++ b/src/App.js @@ -1,6 +1,7 @@ import React from "react"; import "./App.css"; import { makeShuffledDeck } from "./utils.js"; +import playingCard from "./cardimages"; class App extends React.Component { constructor(props) { diff --git a/src/cardimages.js b/src/cardimages.js new file mode 100644 index 0000000..5f354a1 --- /dev/null +++ b/src/cardimages.js @@ -0,0 +1,12 @@ +import React from "react"; + +const playingCard = ({ value, suit }) => { + require(`./images/SVG-cards-1.3/${value}_of_${suit}.svg`); + + return ( +
+ {`${value}_of_${suit}`} +
+ ); +}; +export default playingCard; From ac69dffa5a39ebaa1793f804aac96e00d26d13fd Mon Sep 17 00:00:00 2001 From: magiicloud Date: Tue, 24 Oct 2023 20:23:38 +0900 Subject: [PATCH 14/17] added const cardImafge into PlayerCard component and added on App.js also added css for playing-card --- src/App.css | 7 +++++++ src/App.js | 15 ++++++++++----- src/cardimages.js | 9 ++++----- src/utils.js | 10 +++++----- 4 files changed, 26 insertions(+), 15 deletions(-) diff --git a/src/App.css b/src/App.css index 97b7c57..be43a74 100644 --- a/src/App.css +++ b/src/App.css @@ -17,3 +17,10 @@ font-size: calc(10px + 2vmin); color: white; } +.playing-card { + width: 100px; + height: 150px; + border: 1px solid black; + background-color: white; + object-fit: contain; +} diff --git a/src/App.js b/src/App.js index f93e8ef..c239473 100644 --- a/src/App.js +++ b/src/App.js @@ -1,7 +1,7 @@ import React from "react"; import "./App.css"; import { makeShuffledDeck } from "./utils.js"; -import playingCard from "./cardimages"; +import PlayingCard from "./cardimages"; class App extends React.Component { constructor(props) { @@ -88,22 +88,27 @@ class App extends React.Component { // You can access your current components state here, as indicated below const currCardElems = this.state.currCards.map(({ name, suit }) => ( // Give each list element a unique key -
- {name} of {suit} -
+ <> +
+ {name} of {suit} +
+
+ +
+ )); const currComputerCardElems = this.state.currComputerCards.map( ({ name, suit }) => ( // Give each list element a unique key
{name} of {suit} +
) ); const currWinner = this.state.roundWinner; const currScore = `Player score: ${this.state.score[0]}, Computer Score: ${this.state.score[1]}`; const overallWinner = this.state.overallWinner; - return (
diff --git a/src/cardimages.js b/src/cardimages.js index 5f354a1..da30971 100644 --- a/src/cardimages.js +++ b/src/cardimages.js @@ -1,12 +1,11 @@ import React from "react"; -const playingCard = ({ value, suit }) => { - require(`./images/SVG-cards-1.3/${value}_of_${suit}.svg`); - +const PlayingCard = ({ value, suit }) => { + const cardImage = require(`./images/SVG-cards-1.3/${value}_of_${suit}.svg`); return (
- {`${value}_of_${suit}`} + {`${value}_of_${suit}`}
); }; -export default playingCard; +export default PlayingCard; diff --git a/src/utils.js b/src/utils.js index e3102aa..4e2f251 100644 --- a/src/utils.js +++ b/src/utils.js @@ -23,7 +23,7 @@ const makeDeck = () => { // Initialise an empty deck array const newDeck = []; // Initialise an array of the 4 suits in our deck. We will loop over this array. - const suits = ["Hearts", "Diamonds", "Clubs", "Spades"]; + const suits = ["hearts", "diamonds", "clubs", "spades"]; // Loop over the suits array for (let suitIndex = 0; suitIndex < suits.length; suitIndex += 1) { @@ -40,15 +40,15 @@ const makeDeck = () => { // If rank is 1, 11, 12, or 13, set cardName to the ace or face card's name if (cardName === "1") { - cardName = "Ace"; + cardName = "ace"; // Ace has higher rank than all other cards cardRank = 14; } else if (cardName === "11") { - cardName = "Jack"; + cardName = "jack"; } else if (cardName === "12") { - cardName = "Queen"; + cardName = "queen"; } else if (cardName === "13") { - cardName = "King"; + cardName = "king"; } // Create a new card with the current name, suit, and rank From 09347b43bd63a0deeea2497d861c9a75739e7868 Mon Sep 17 00:00:00 2001 From: magiicloud Date: Tue, 24 Oct 2023 20:28:27 +0900 Subject: [PATCH 15/17] comment out card words, added div for computer card img --- src/App.js | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/App.js b/src/App.js index c239473..6c94121 100644 --- a/src/App.js +++ b/src/App.js @@ -89,9 +89,7 @@ class App extends React.Component { const currCardElems = this.state.currCards.map(({ name, suit }) => ( // Give each list element a unique key <> -
- {name} of {suit} -
+
{/*{name} of {suit}*/}
@@ -100,10 +98,12 @@ class App extends React.Component { const currComputerCardElems = this.state.currComputerCards.map( ({ name, suit }) => ( // Give each list element a unique key -
- {name} of {suit} - -
+ <> +
{/* {name} of {suit}*/}
+
+ +
+ ) ); const currWinner = this.state.roundWinner; From 63a506652c5807750a26e461e3ef6b16bd61c1c6 Mon Sep 17 00:00:00 2001 From: magiicloud Date: Tue, 24 Oct 2023 22:37:18 +0900 Subject: [PATCH 16/17] installed MUI and roboto and icon --- package-lock.json | 938 +++++++++++++++++++++++++++++++++++++++++++++- package.json | 5 + src/App.js | 4 + 3 files changed, 939 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index f8b2902..bef8605 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,6 +8,11 @@ "name": "high-card-bootcamp", "version": "0.1.0", "dependencies": { + "@emotion/react": "^11.11.1", + "@emotion/styled": "^11.11.0", + "@fontsource/roboto": "^5.0.8", + "@mui/icons-material": "^5.14.14", + "@mui/material": "^5.14.14", "gh-pages": "^3.2.3", "react": "^18.1.0", "react-dom": "^18.1.0", @@ -1765,11 +1770,11 @@ } }, "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.23.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.2.tgz", + "integrity": "sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==", "dependencies": { - "regenerator-runtime": "^0.13.4" + "regenerator-runtime": "^0.14.0" }, "engines": { "node": ">=6.9.0" @@ -1787,6 +1792,11 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/runtime/node_modules/regenerator-runtime": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", + "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==" + }, "node_modules/@babel/template": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", @@ -1998,6 +2008,158 @@ "postcss": "^8.3" } }, + "node_modules/@emotion/babel-plugin": { + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.11.0.tgz", + "integrity": "sha512-m4HEDZleaaCH+XgDDsPF15Ht6wTLsgDTeR3WYj9Q/k76JtWhrJjcP4+/XlG8LGT/Rol9qUfOIztXeA84ATpqPQ==", + "dependencies": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/runtime": "^7.18.3", + "@emotion/hash": "^0.9.1", + "@emotion/memoize": "^0.8.1", + "@emotion/serialize": "^1.1.2", + "babel-plugin-macros": "^3.1.0", + "convert-source-map": "^1.5.0", + "escape-string-regexp": "^4.0.0", + "find-root": "^1.1.0", + "source-map": "^0.5.7", + "stylis": "4.2.0" + } + }, + "node_modules/@emotion/babel-plugin/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@emotion/babel-plugin/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@emotion/cache": { + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.11.0.tgz", + "integrity": "sha512-P34z9ssTCBi3e9EI1ZsWpNHcfY1r09ZO0rZbRO2ob3ZQMnFI35jB536qoXbkdesr5EUhYi22anuEJuyxifaqAQ==", + "dependencies": { + "@emotion/memoize": "^0.8.1", + "@emotion/sheet": "^1.2.2", + "@emotion/utils": "^1.2.1", + "@emotion/weak-memoize": "^0.3.1", + "stylis": "4.2.0" + } + }, + "node_modules/@emotion/hash": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.1.tgz", + "integrity": "sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==" + }, + "node_modules/@emotion/is-prop-valid": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.1.tgz", + "integrity": "sha512-61Mf7Ufx4aDxx1xlDeOm8aFFigGHE4z+0sKCa+IHCeZKiyP9RLD0Mmx7m8b9/Cf37f7NAvQOOJAbQQGVr5uERw==", + "dependencies": { + "@emotion/memoize": "^0.8.1" + } + }, + "node_modules/@emotion/memoize": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.1.tgz", + "integrity": "sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==" + }, + "node_modules/@emotion/react": { + "version": "11.11.1", + "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.11.1.tgz", + "integrity": "sha512-5mlW1DquU5HaxjLkfkGN1GA/fvVGdyHURRiX/0FHl2cfIfRxSOfmxEH5YS43edp0OldZrZ+dkBKbngxcNCdZvA==", + "dependencies": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.11.0", + "@emotion/cache": "^11.11.0", + "@emotion/serialize": "^1.1.2", + "@emotion/use-insertion-effect-with-fallbacks": "^1.0.1", + "@emotion/utils": "^1.2.1", + "@emotion/weak-memoize": "^0.3.1", + "hoist-non-react-statics": "^3.3.1" + }, + "peerDependencies": { + "react": ">=16.8.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@emotion/serialize": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.1.2.tgz", + "integrity": "sha512-zR6a/fkFP4EAcCMQtLOhIgpprZOwNmCldtpaISpvz348+DP4Mz8ZoKaGGCQpbzepNIUWbq4w6hNZkwDyKoS+HA==", + "dependencies": { + "@emotion/hash": "^0.9.1", + "@emotion/memoize": "^0.8.1", + "@emotion/unitless": "^0.8.1", + "@emotion/utils": "^1.2.1", + "csstype": "^3.0.2" + } + }, + "node_modules/@emotion/sheet": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.2.2.tgz", + "integrity": "sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA==" + }, + "node_modules/@emotion/styled": { + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.11.0.tgz", + "integrity": "sha512-hM5Nnvu9P3midq5aaXj4I+lnSfNi7Pmd4EWk1fOZ3pxookaQTNew6bp4JaCBYM4HVFZF9g7UjJmsUmC2JlxOng==", + "dependencies": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.11.0", + "@emotion/is-prop-valid": "^1.2.1", + "@emotion/serialize": "^1.1.2", + "@emotion/use-insertion-effect-with-fallbacks": "^1.0.1", + "@emotion/utils": "^1.2.1" + }, + "peerDependencies": { + "@emotion/react": "^11.0.0-rc.0", + "react": ">=16.8.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@emotion/unitless": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.1.tgz", + "integrity": "sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==" + }, + "node_modules/@emotion/use-insertion-effect-with-fallbacks": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.1.tgz", + "integrity": "sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw==", + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "node_modules/@emotion/utils": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.2.1.tgz", + "integrity": "sha512-Y2tGf3I+XVnajdItskUCn6LX+VUDmP6lTL4fcqsXAv43dnlbZiuW4MWQW38rW/BVWSE7Q/7+XQocmpnRYILUmg==" + }, + "node_modules/@emotion/weak-memoize": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.3.1.tgz", + "integrity": "sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww==" + }, "node_modules/@eslint/eslintrc": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.2.tgz", @@ -2058,6 +2220,45 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/@floating-ui/core": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.5.0.tgz", + "integrity": "sha512-kK1h4m36DQ0UHGj5Ah4db7R0rHemTqqO0QLvUqi1/mUUp3LuAWbWxdxSIf/XsnH9VS6rRVPLJCncjRzUvyCLXg==", + "dependencies": { + "@floating-ui/utils": "^0.1.3" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.5.3.tgz", + "integrity": "sha512-ClAbQnEqJAKCJOEbbLo5IUlZHkNszqhuxS4fHAVxRPXPya6Ysf2G8KypnYcOTpx6I8xcgF9bbHb6g/2KpbV8qA==", + "dependencies": { + "@floating-ui/core": "^1.4.2", + "@floating-ui/utils": "^0.1.3" + } + }, + "node_modules/@floating-ui/react-dom": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.0.2.tgz", + "integrity": "sha512-5qhlDvjaLmAst/rKb3VdlCinwTF4EYMiVxuuc/HVUjs46W0zgtbMmAZ1UTsDrRTxRmUEzl92mOtWbeeXL26lSQ==", + "dependencies": { + "@floating-ui/dom": "^1.5.1" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.1.6.tgz", + "integrity": "sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A==" + }, + "node_modules/@fontsource/roboto": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/@fontsource/roboto/-/roboto-5.0.8.tgz", + "integrity": "sha512-XxPltXs5R31D6UZeLIV1td3wTXU3jzd3f2DLsXI8tytMGBkIsGcc9sIyiupRtA8y73HAhuSCeweOoBqf6DbWCA==" + }, "node_modules/@humanwhocodes/config-array": { "version": "0.9.5", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", @@ -2786,6 +2987,261 @@ "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.3.tgz", "integrity": "sha512-nkalE/f1RvRGChwBnEIoBfSEYOXnCRdleKuv6+lePbMDrMZXeDQnqak5XDOeBgrPPyPfAdcCu/B5z+v3VhplGg==" }, + "node_modules/@mui/base": { + "version": "5.0.0-beta.20", + "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-beta.20.tgz", + "integrity": "sha512-CS2pUuqxST7ch9VNDCklRYDbJ3rru20Tx7na92QvVVKfu3RL4z/QLuVIc8jYGsdCnauMaeUSlFNLAJNb0yXe6w==", + "dependencies": { + "@babel/runtime": "^7.23.1", + "@floating-ui/react-dom": "^2.0.2", + "@mui/types": "^7.2.6", + "@mui/utils": "^5.14.13", + "@popperjs/core": "^2.11.8", + "clsx": "^2.0.0", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui" + }, + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0", + "react-dom": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/core-downloads-tracker": { + "version": "5.14.14", + "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.14.14.tgz", + "integrity": "sha512-Rw/xKiTOUgXD8hdKqj60aC6QcGprMipG7ne2giK6Mz7b4PlhL/xog9xLeclY3BxsRLkZQ05egFnIEY1CSibTbw==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui" + } + }, + "node_modules/@mui/icons-material": { + "version": "5.14.14", + "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.14.14.tgz", + "integrity": "sha512-vwuaMsKvI7AWTeYqR8wYbpXijuU8PzMAJWRAq2DDIuOZPxjKyHlr8WQ25+azZYkIXtJ7AqnVb1ZmHdEyB4/kug==", + "dependencies": { + "@babel/runtime": "^7.23.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui" + }, + "peerDependencies": { + "@mui/material": "^5.0.0", + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/material": { + "version": "5.14.14", + "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.14.14.tgz", + "integrity": "sha512-cAmCwAHFQXxb44kWbVFkhKATN8tACgMsFwrXo8ro6WzYW73U/qsR5AcCiJIhCyYYg+gcftfkmNcpRaV3JjhHCg==", + "dependencies": { + "@babel/runtime": "^7.23.1", + "@mui/base": "5.0.0-beta.20", + "@mui/core-downloads-tracker": "^5.14.14", + "@mui/system": "^5.14.14", + "@mui/types": "^7.2.6", + "@mui/utils": "^5.14.13", + "@types/react-transition-group": "^4.4.7", + "clsx": "^2.0.0", + "csstype": "^3.1.2", + "prop-types": "^15.8.1", + "react-is": "^18.2.0", + "react-transition-group": "^4.4.5" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui" + }, + "peerDependencies": { + "@emotion/react": "^11.5.0", + "@emotion/styled": "^11.3.0", + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0", + "react-dom": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@emotion/react": { + "optional": true + }, + "@emotion/styled": { + "optional": true + }, + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/material/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + }, + "node_modules/@mui/private-theming": { + "version": "5.14.14", + "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.14.14.tgz", + "integrity": "sha512-n77au3CQj9uu16hak2Y+rvbGSBaJKxziG/gEbOLVGrAuqZ+ycVSkorCfN6Y/4XgYOpG/xvmuiY3JwhAEOzY3iA==", + "dependencies": { + "@babel/runtime": "^7.23.1", + "@mui/utils": "^5.14.13", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui" + }, + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/styled-engine": { + "version": "5.14.14", + "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.14.14.tgz", + "integrity": "sha512-sF3DS2PVG+cFWvkVHQQaGFpL1h6gSwOW3L91pdxPLQDHDZ5mZ/X0SlXU5XA+WjypoysG4urdAQC7CH/BRvUiqg==", + "dependencies": { + "@babel/runtime": "^7.23.1", + "@emotion/cache": "^11.11.0", + "csstype": "^3.1.2", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui" + }, + "peerDependencies": { + "@emotion/react": "^11.4.1", + "@emotion/styled": "^11.3.0", + "react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@emotion/react": { + "optional": true + }, + "@emotion/styled": { + "optional": true + } + } + }, + "node_modules/@mui/system": { + "version": "5.14.14", + "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.14.14.tgz", + "integrity": "sha512-y4InFmCgGGWXnz+iK4jRTWVikY0HgYnABjz4wgiUgEa2W1H8M4ow+27BegExUWPkj4TWthQ2qG9FOGSMtI+PKA==", + "dependencies": { + "@babel/runtime": "^7.23.1", + "@mui/private-theming": "^5.14.14", + "@mui/styled-engine": "^5.14.13", + "@mui/types": "^7.2.6", + "@mui/utils": "^5.14.13", + "clsx": "^2.0.0", + "csstype": "^3.1.2", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui" + }, + "peerDependencies": { + "@emotion/react": "^11.5.0", + "@emotion/styled": "^11.3.0", + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@emotion/react": { + "optional": true + }, + "@emotion/styled": { + "optional": true + }, + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/types": { + "version": "7.2.6", + "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.6.tgz", + "integrity": "sha512-7sjLQrUmBwufm/M7jw/quNiPK/oor2+pGUQP2CULRcFCArYTq78oJ3D5esTaL0UMkXKJvDqXn6Ike69yAOBQng==", + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/utils": { + "version": "5.14.14", + "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.14.14.tgz", + "integrity": "sha512-3AKp8uksje5sRfVrtgG9Q/2TBsHWVBUtA0NaXliZqGcXo8J+A+Agp0qUW2rJ+ivgPWTCCubz9FZVT2IQZ3bGsw==", + "dependencies": { + "@babel/runtime": "^7.23.1", + "@types/prop-types": "^15.7.7", + "prop-types": "^15.8.1", + "react-is": "^18.2.0" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui" + }, + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/utils/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -2867,6 +3323,15 @@ } } }, + "node_modules/@popperjs/core": { + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, "node_modules/@rollup/plugin-babel": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", @@ -3388,6 +3853,11 @@ "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.6.0.tgz", "integrity": "sha512-G/AdOadiZhnJp0jXCaBQU449W2h716OW/EoXeYkCytxKL06X1WCXB4DZpp8TpZ8eyIJVS1cw4lrlkkSYU21cDw==" }, + "node_modules/@types/prop-types": { + "version": "15.7.9", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.9.tgz", + "integrity": "sha512-n1yyPsugYNSmHgxDFjicaI2+gCNjsBck8UX9kuofAKlc0h1bL+20oSF72KeNaW2DUlesbEVCFgyV2dPGTiY42g==" + }, "node_modules/@types/q": { "version": "1.5.5", "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.5.tgz", @@ -3403,6 +3873,24 @@ "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==" }, + "node_modules/@types/react": { + "version": "18.2.31", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.31.tgz", + "integrity": "sha512-c2UnPv548q+5DFh03y8lEDeMfDwBn9G3dRwfkrxQMo/dOtRHUUO57k6pHvBIfH/VF4Nh+98mZ5aaSe+2echD5g==", + "dependencies": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-transition-group": { + "version": "4.4.8", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.8.tgz", + "integrity": "sha512-QmQ22q+Pb+HQSn04NL3HtrqHwYMf4h3QKArOy5F8U5nEVMaihBs3SR10WiOM1iwPz5jIo8x/u11al+iEGZZrvg==", + "dependencies": { + "@types/react": "*" + } + }, "node_modules/@types/resolve": { "version": "1.17.1", "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", @@ -3416,6 +3904,11 @@ "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==" }, + "node_modules/@types/scheduler": { + "version": "0.16.5", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.5.tgz", + "integrity": "sha512-s/FPdYRmZR8SjLWGMCuax7r3qCWQw9QKHzXVukAuuIJkXkDRwp+Pu5LMIVFi0Fxbav35WURicYr8u1QsoybnQw==" + }, "node_modules/@types/serve-index": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.1.tgz", @@ -4929,6 +5422,14 @@ "wrap-ansi": "^7.0.0" } }, + "node_modules/clsx": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.0.0.tgz", + "integrity": "sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==", + "engines": { + "node": ">=6" + } + }, "node_modules/co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", @@ -5595,6 +6096,11 @@ "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==" }, + "node_modules/csstype": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", + "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" + }, "node_modules/damerau-levenshtein": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", @@ -5838,6 +6344,15 @@ "utila": "~0.4" } }, + "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", @@ -7176,6 +7691,11 @@ "url": "https://github.com/avajs/find-cache-dir?sponsor=1" } }, + "node_modules/find-root": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", + "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==" + }, "node_modules/find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", @@ -7824,6 +8344,19 @@ "he": "bin/he" } }, + "node_modules/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==", + "dependencies": { + "react-is": "^16.7.0" + } + }, + "node_modules/hoist-non-react-statics/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, "node_modules/hoopy": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz", @@ -13330,6 +13863,21 @@ } } }, + "node_modules/react-transition-group": { + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", + "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", + "dependencies": { + "@babel/runtime": "^7.5.5", + "dom-helpers": "^5.0.1", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2" + }, + "peerDependencies": { + "react": ">=16.6.0", + "react-dom": ">=16.6.0" + } + }, "node_modules/readable-stream": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", @@ -14403,6 +14951,11 @@ "postcss": "^8.2.15" } }, + "node_modules/stylis": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz", + "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==" + }, "node_modules/supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -17212,11 +17765,18 @@ } }, "@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.23.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.2.tgz", + "integrity": "sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==", "requires": { - "regenerator-runtime": "^0.13.4" + "regenerator-runtime": "^0.14.0" + }, + "dependencies": { + "regenerator-runtime": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", + "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==" + } } }, "@babel/runtime-corejs3": { @@ -17355,6 +17915,132 @@ "integrity": "sha512-T5ZyNSw9G0x0UDFiXV40a7VjKw2b+l4G+S0sctKqxhx8cg9QtMUAGwJBVU9mHPDPoZEmwm0tEoukjl4zb9MU7Q==", "requires": {} }, + "@emotion/babel-plugin": { + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.11.0.tgz", + "integrity": "sha512-m4HEDZleaaCH+XgDDsPF15Ht6wTLsgDTeR3WYj9Q/k76JtWhrJjcP4+/XlG8LGT/Rol9qUfOIztXeA84ATpqPQ==", + "requires": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/runtime": "^7.18.3", + "@emotion/hash": "^0.9.1", + "@emotion/memoize": "^0.8.1", + "@emotion/serialize": "^1.1.2", + "babel-plugin-macros": "^3.1.0", + "convert-source-map": "^1.5.0", + "escape-string-regexp": "^4.0.0", + "find-root": "^1.1.0", + "source-map": "^0.5.7", + "stylis": "4.2.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==" + } + } + }, + "@emotion/cache": { + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.11.0.tgz", + "integrity": "sha512-P34z9ssTCBi3e9EI1ZsWpNHcfY1r09ZO0rZbRO2ob3ZQMnFI35jB536qoXbkdesr5EUhYi22anuEJuyxifaqAQ==", + "requires": { + "@emotion/memoize": "^0.8.1", + "@emotion/sheet": "^1.2.2", + "@emotion/utils": "^1.2.1", + "@emotion/weak-memoize": "^0.3.1", + "stylis": "4.2.0" + } + }, + "@emotion/hash": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.1.tgz", + "integrity": "sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==" + }, + "@emotion/is-prop-valid": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.1.tgz", + "integrity": "sha512-61Mf7Ufx4aDxx1xlDeOm8aFFigGHE4z+0sKCa+IHCeZKiyP9RLD0Mmx7m8b9/Cf37f7NAvQOOJAbQQGVr5uERw==", + "requires": { + "@emotion/memoize": "^0.8.1" + } + }, + "@emotion/memoize": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.1.tgz", + "integrity": "sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==" + }, + "@emotion/react": { + "version": "11.11.1", + "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.11.1.tgz", + "integrity": "sha512-5mlW1DquU5HaxjLkfkGN1GA/fvVGdyHURRiX/0FHl2cfIfRxSOfmxEH5YS43edp0OldZrZ+dkBKbngxcNCdZvA==", + "requires": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.11.0", + "@emotion/cache": "^11.11.0", + "@emotion/serialize": "^1.1.2", + "@emotion/use-insertion-effect-with-fallbacks": "^1.0.1", + "@emotion/utils": "^1.2.1", + "@emotion/weak-memoize": "^0.3.1", + "hoist-non-react-statics": "^3.3.1" + } + }, + "@emotion/serialize": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.1.2.tgz", + "integrity": "sha512-zR6a/fkFP4EAcCMQtLOhIgpprZOwNmCldtpaISpvz348+DP4Mz8ZoKaGGCQpbzepNIUWbq4w6hNZkwDyKoS+HA==", + "requires": { + "@emotion/hash": "^0.9.1", + "@emotion/memoize": "^0.8.1", + "@emotion/unitless": "^0.8.1", + "@emotion/utils": "^1.2.1", + "csstype": "^3.0.2" + } + }, + "@emotion/sheet": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.2.2.tgz", + "integrity": "sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA==" + }, + "@emotion/styled": { + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.11.0.tgz", + "integrity": "sha512-hM5Nnvu9P3midq5aaXj4I+lnSfNi7Pmd4EWk1fOZ3pxookaQTNew6bp4JaCBYM4HVFZF9g7UjJmsUmC2JlxOng==", + "requires": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.11.0", + "@emotion/is-prop-valid": "^1.2.1", + "@emotion/serialize": "^1.1.2", + "@emotion/use-insertion-effect-with-fallbacks": "^1.0.1", + "@emotion/utils": "^1.2.1" + } + }, + "@emotion/unitless": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.1.tgz", + "integrity": "sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==" + }, + "@emotion/use-insertion-effect-with-fallbacks": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.1.tgz", + "integrity": "sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw==", + "requires": {} + }, + "@emotion/utils": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.2.1.tgz", + "integrity": "sha512-Y2tGf3I+XVnajdItskUCn6LX+VUDmP6lTL4fcqsXAv43dnlbZiuW4MWQW38rW/BVWSE7Q/7+XQocmpnRYILUmg==" + }, + "@emotion/weak-memoize": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.3.1.tgz", + "integrity": "sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww==" + }, "@eslint/eslintrc": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.2.tgz", @@ -17399,6 +18085,41 @@ } } }, + "@floating-ui/core": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.5.0.tgz", + "integrity": "sha512-kK1h4m36DQ0UHGj5Ah4db7R0rHemTqqO0QLvUqi1/mUUp3LuAWbWxdxSIf/XsnH9VS6rRVPLJCncjRzUvyCLXg==", + "requires": { + "@floating-ui/utils": "^0.1.3" + } + }, + "@floating-ui/dom": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.5.3.tgz", + "integrity": "sha512-ClAbQnEqJAKCJOEbbLo5IUlZHkNszqhuxS4fHAVxRPXPya6Ysf2G8KypnYcOTpx6I8xcgF9bbHb6g/2KpbV8qA==", + "requires": { + "@floating-ui/core": "^1.4.2", + "@floating-ui/utils": "^0.1.3" + } + }, + "@floating-ui/react-dom": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.0.2.tgz", + "integrity": "sha512-5qhlDvjaLmAst/rKb3VdlCinwTF4EYMiVxuuc/HVUjs46W0zgtbMmAZ1UTsDrRTxRmUEzl92mOtWbeeXL26lSQ==", + "requires": { + "@floating-ui/dom": "^1.5.1" + } + }, + "@floating-ui/utils": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.1.6.tgz", + "integrity": "sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A==" + }, + "@fontsource/roboto": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/@fontsource/roboto/-/roboto-5.0.8.tgz", + "integrity": "sha512-XxPltXs5R31D6UZeLIV1td3wTXU3jzd3f2DLsXI8tytMGBkIsGcc9sIyiupRtA8y73HAhuSCeweOoBqf6DbWCA==" + }, "@humanwhocodes/config-array": { "version": "0.9.5", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", @@ -17939,6 +18660,119 @@ "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.3.tgz", "integrity": "sha512-nkalE/f1RvRGChwBnEIoBfSEYOXnCRdleKuv6+lePbMDrMZXeDQnqak5XDOeBgrPPyPfAdcCu/B5z+v3VhplGg==" }, + "@mui/base": { + "version": "5.0.0-beta.20", + "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-beta.20.tgz", + "integrity": "sha512-CS2pUuqxST7ch9VNDCklRYDbJ3rru20Tx7na92QvVVKfu3RL4z/QLuVIc8jYGsdCnauMaeUSlFNLAJNb0yXe6w==", + "requires": { + "@babel/runtime": "^7.23.1", + "@floating-ui/react-dom": "^2.0.2", + "@mui/types": "^7.2.6", + "@mui/utils": "^5.14.13", + "@popperjs/core": "^2.11.8", + "clsx": "^2.0.0", + "prop-types": "^15.8.1" + } + }, + "@mui/core-downloads-tracker": { + "version": "5.14.14", + "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.14.14.tgz", + "integrity": "sha512-Rw/xKiTOUgXD8hdKqj60aC6QcGprMipG7ne2giK6Mz7b4PlhL/xog9xLeclY3BxsRLkZQ05egFnIEY1CSibTbw==" + }, + "@mui/icons-material": { + "version": "5.14.14", + "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.14.14.tgz", + "integrity": "sha512-vwuaMsKvI7AWTeYqR8wYbpXijuU8PzMAJWRAq2DDIuOZPxjKyHlr8WQ25+azZYkIXtJ7AqnVb1ZmHdEyB4/kug==", + "requires": { + "@babel/runtime": "^7.23.1" + } + }, + "@mui/material": { + "version": "5.14.14", + "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.14.14.tgz", + "integrity": "sha512-cAmCwAHFQXxb44kWbVFkhKATN8tACgMsFwrXo8ro6WzYW73U/qsR5AcCiJIhCyYYg+gcftfkmNcpRaV3JjhHCg==", + "requires": { + "@babel/runtime": "^7.23.1", + "@mui/base": "5.0.0-beta.20", + "@mui/core-downloads-tracker": "^5.14.14", + "@mui/system": "^5.14.14", + "@mui/types": "^7.2.6", + "@mui/utils": "^5.14.13", + "@types/react-transition-group": "^4.4.7", + "clsx": "^2.0.0", + "csstype": "^3.1.2", + "prop-types": "^15.8.1", + "react-is": "^18.2.0", + "react-transition-group": "^4.4.5" + }, + "dependencies": { + "react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + } + } + }, + "@mui/private-theming": { + "version": "5.14.14", + "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.14.14.tgz", + "integrity": "sha512-n77au3CQj9uu16hak2Y+rvbGSBaJKxziG/gEbOLVGrAuqZ+ycVSkorCfN6Y/4XgYOpG/xvmuiY3JwhAEOzY3iA==", + "requires": { + "@babel/runtime": "^7.23.1", + "@mui/utils": "^5.14.13", + "prop-types": "^15.8.1" + } + }, + "@mui/styled-engine": { + "version": "5.14.14", + "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.14.14.tgz", + "integrity": "sha512-sF3DS2PVG+cFWvkVHQQaGFpL1h6gSwOW3L91pdxPLQDHDZ5mZ/X0SlXU5XA+WjypoysG4urdAQC7CH/BRvUiqg==", + "requires": { + "@babel/runtime": "^7.23.1", + "@emotion/cache": "^11.11.0", + "csstype": "^3.1.2", + "prop-types": "^15.8.1" + } + }, + "@mui/system": { + "version": "5.14.14", + "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.14.14.tgz", + "integrity": "sha512-y4InFmCgGGWXnz+iK4jRTWVikY0HgYnABjz4wgiUgEa2W1H8M4ow+27BegExUWPkj4TWthQ2qG9FOGSMtI+PKA==", + "requires": { + "@babel/runtime": "^7.23.1", + "@mui/private-theming": "^5.14.14", + "@mui/styled-engine": "^5.14.13", + "@mui/types": "^7.2.6", + "@mui/utils": "^5.14.13", + "clsx": "^2.0.0", + "csstype": "^3.1.2", + "prop-types": "^15.8.1" + } + }, + "@mui/types": { + "version": "7.2.6", + "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.6.tgz", + "integrity": "sha512-7sjLQrUmBwufm/M7jw/quNiPK/oor2+pGUQP2CULRcFCArYTq78oJ3D5esTaL0UMkXKJvDqXn6Ike69yAOBQng==", + "requires": {} + }, + "@mui/utils": { + "version": "5.14.14", + "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.14.14.tgz", + "integrity": "sha512-3AKp8uksje5sRfVrtgG9Q/2TBsHWVBUtA0NaXliZqGcXo8J+A+Agp0qUW2rJ+ivgPWTCCubz9FZVT2IQZ3bGsw==", + "requires": { + "@babel/runtime": "^7.23.1", + "@types/prop-types": "^15.7.7", + "prop-types": "^15.8.1", + "react-is": "^18.2.0" + }, + "dependencies": { + "react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + } + } + }, "@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -17978,6 +18812,11 @@ "source-map": "^0.7.3" } }, + "@popperjs/core": { + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==" + }, "@rollup/plugin-babel": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", @@ -18369,6 +19208,11 @@ "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.6.0.tgz", "integrity": "sha512-G/AdOadiZhnJp0jXCaBQU449W2h716OW/EoXeYkCytxKL06X1WCXB4DZpp8TpZ8eyIJVS1cw4lrlkkSYU21cDw==" }, + "@types/prop-types": { + "version": "15.7.9", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.9.tgz", + "integrity": "sha512-n1yyPsugYNSmHgxDFjicaI2+gCNjsBck8UX9kuofAKlc0h1bL+20oSF72KeNaW2DUlesbEVCFgyV2dPGTiY42g==" + }, "@types/q": { "version": "1.5.5", "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.5.tgz", @@ -18384,6 +19228,24 @@ "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==" }, + "@types/react": { + "version": "18.2.31", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.31.tgz", + "integrity": "sha512-c2UnPv548q+5DFh03y8lEDeMfDwBn9G3dRwfkrxQMo/dOtRHUUO57k6pHvBIfH/VF4Nh+98mZ5aaSe+2echD5g==", + "requires": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, + "@types/react-transition-group": { + "version": "4.4.8", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.8.tgz", + "integrity": "sha512-QmQ22q+Pb+HQSn04NL3HtrqHwYMf4h3QKArOy5F8U5nEVMaihBs3SR10WiOM1iwPz5jIo8x/u11al+iEGZZrvg==", + "requires": { + "@types/react": "*" + } + }, "@types/resolve": { "version": "1.17.1", "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", @@ -18397,6 +19259,11 @@ "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==" }, + "@types/scheduler": { + "version": "0.16.5", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.5.tgz", + "integrity": "sha512-s/FPdYRmZR8SjLWGMCuax7r3qCWQw9QKHzXVukAuuIJkXkDRwp+Pu5LMIVFi0Fxbav35WURicYr8u1QsoybnQw==" + }, "@types/serve-index": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.1.tgz", @@ -19516,6 +20383,11 @@ "wrap-ansi": "^7.0.0" } }, + "clsx": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.0.0.tgz", + "integrity": "sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==" + }, "co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", @@ -19982,6 +20854,11 @@ } } }, + "csstype": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", + "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" + }, "damerau-levenshtein": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", @@ -20163,6 +21040,15 @@ "utila": "~0.4" } }, + "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", @@ -21154,6 +22040,11 @@ "pkg-dir": "^4.1.0" } }, + "find-root": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", + "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==" + }, "find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", @@ -21598,6 +22489,21 @@ "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" }, + "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" + }, + "dependencies": { + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + } + } + }, "hoopy": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz", @@ -25449,6 +26355,17 @@ "workbox-webpack-plugin": "^6.4.1" } }, + "react-transition-group": { + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", + "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", + "requires": { + "@babel/runtime": "^7.5.5", + "dom-helpers": "^5.0.1", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2" + } + }, "readable-stream": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", @@ -26238,6 +27155,11 @@ "postcss-selector-parser": "^6.0.4" } }, + "stylis": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz", + "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==" + }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", diff --git a/package.json b/package.json index 9e1db91..f01482a 100644 --- a/package.json +++ b/package.json @@ -4,6 +4,11 @@ "private": true, "homepage": "https://rocketacademy.github.io/high-card-bootcamp", "dependencies": { + "@emotion/react": "^11.11.1", + "@emotion/styled": "^11.11.0", + "@fontsource/roboto": "^5.0.8", + "@mui/icons-material": "^5.14.14", + "@mui/material": "^5.14.14", "gh-pages": "^3.2.3", "react": "^18.1.0", "react-dom": "^18.1.0", diff --git a/src/App.js b/src/App.js index 6c94121..ad0cdf8 100644 --- a/src/App.js +++ b/src/App.js @@ -2,6 +2,10 @@ import React from "react"; import "./App.css"; import { makeShuffledDeck } from "./utils.js"; import PlayingCard from "./cardimages"; +import "@fontsource/roboto/300.css"; +import "@fontsource/roboto/400.css"; +import "@fontsource/roboto/500.css"; +import "@fontsource/roboto/700.css"; class App extends React.Component { constructor(props) { From 8fb2ff69bae73c745b1b8258946403eb5ed11944 Mon Sep 17 00:00:00 2001 From: magiicloud Date: Wed, 25 Oct 2023 10:18:31 +0900 Subject: [PATCH 17/17] amended default font for p to Roboto, changed icons to MUI icon rocket and dice, change display of card img to flex row space around --- src/App.css | 16 +++++++++------- src/App.js | 52 +++++++++++++++++++++++++++++++++------------------ src/index.css | 9 ++++++--- 3 files changed, 49 insertions(+), 28 deletions(-) diff --git a/src/App.css b/src/App.css index be43a74..217d855 100644 --- a/src/App.css +++ b/src/App.css @@ -1,3 +1,7 @@ +. { + font-family: "Roboto"; +} + .App { text-align: center; } @@ -12,15 +16,13 @@ min-height: 100vh; display: flex; flex-direction: column; - align-items: center; justify-content: center; font-size: calc(10px + 2vmin); color: white; } -.playing-card { - width: 100px; - height: 150px; - border: 1px solid black; - background-color: white; - object-fit: contain; + +.card-hand { + display: flex; + flex-direction: row; + justify-content: space-around; } diff --git a/src/App.js b/src/App.js index ad0cdf8..6055329 100644 --- a/src/App.js +++ b/src/App.js @@ -6,6 +6,9 @@ import "@fontsource/roboto/300.css"; import "@fontsource/roboto/400.css"; import "@fontsource/roboto/500.css"; import "@fontsource/roboto/700.css"; +import Button from "@mui/material/Button"; +import CasinoRoundedIcon from "@mui/icons-material/CasinoRounded"; +import RocketLaunchRoundedIcon from "@mui/icons-material/RocketLaunchRounded"; class App extends React.Component { constructor(props) { @@ -111,29 +114,42 @@ class App extends React.Component { ) ); const currWinner = this.state.roundWinner; - const currScore = `Player score: ${this.state.score[0]}, Computer Score: ${this.state.score[1]}`; const overallWinner = this.state.overallWinner; return (
-

High Card 🚀

- Player Hand: {currCardElems} -
- Computer Hand: {currComputerCardElems} -
- {currWinner} -
- {currScore} -
- Rounds Left: {this.state.roundsLeft} -
- {overallWinner} -
- {overallWinner ? ( - - ) : ( - +

+ High Card +

+ {this.state.roundsLeft !== 26 && ( +
+

Player Hand {currCardElems}

+

Computer Hand {currComputerCardElems}

+
)} + {this.state.roundsLeft !== 26 && ( +
+

Winner: {currWinner}

+

+ Player score: {this.state.score[0]} +
+ Computer score: {this.state.score[1]} +

+

Rounds Left: {this.state.roundsLeft}

+

{overallWinner}

+
+ )} +
+ {overallWinner ? ( + + ) : ( + + )} +
); diff --git a/src/index.css b/src/index.css index 4a1df4d..db18386 100644 --- a/src/index.css +++ b/src/index.css @@ -1,8 +1,6 @@ body { margin: 0; - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", - "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", - sans-serif; + font-family: "Roboto"; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } @@ -11,3 +9,8 @@ code { font-family: source-code-pro, Menlo, Monaco, Consolas, "Courier New", monospace; } + +p { + font-weight: 300; + font-size: smaller; +}