amenpunk 3 年之前
父節點
當前提交
fec0bdd63a

+ 644 - 7
psicoadmin/package-lock.json

@@ -8,6 +8,10 @@
8 8
       "name": "psicoadmin",
9 9
       "version": "0.1.0",
10 10
       "dependencies": {
11
+        "@emotion/react": "^11.5.0",
12
+        "@emotion/styled": "^11.3.0",
13
+        "@mui/icons-material": "^5.1.0",
14
+        "@mui/material": "^5.1.0",
11 15
         "@testing-library/jest-dom": "^5.11.4",
12 16
         "@testing-library/react": "^11.1.0",
13 17
         "@testing-library/user-event": "^12.1.10",
@@ -1481,6 +1485,160 @@
1481 1485
       "integrity": "sha512-ij4wRiunFfaJxjB0BdrYHIH8FxBJpOwNPhhAcunlmPdXudL1WQV1qoP9un6JsEBAgQH+7UXyyjh0g7jTxXK6tg==",
1482 1486
       "license": "CC0-1.0"
1483 1487
     },
1488
+    "node_modules/@emotion/babel-plugin": {
1489
+      "version": "11.3.0",
1490
+      "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.3.0.tgz",
1491
+      "integrity": "sha512-UZKwBV2rADuhRp+ZOGgNWg2eYgbzKzQXfQPtJbu/PLy8onurxlNCLvxMQEvlr1/GudguPI5IU9qIY1+2z1M5bA==",
1492
+      "dependencies": {
1493
+        "@babel/helper-module-imports": "^7.12.13",
1494
+        "@babel/plugin-syntax-jsx": "^7.12.13",
1495
+        "@babel/runtime": "^7.13.10",
1496
+        "@emotion/hash": "^0.8.0",
1497
+        "@emotion/memoize": "^0.7.5",
1498
+        "@emotion/serialize": "^1.0.2",
1499
+        "babel-plugin-macros": "^2.6.1",
1500
+        "convert-source-map": "^1.5.0",
1501
+        "escape-string-regexp": "^4.0.0",
1502
+        "find-root": "^1.1.0",
1503
+        "source-map": "^0.5.7",
1504
+        "stylis": "^4.0.3"
1505
+      },
1506
+      "peerDependencies": {
1507
+        "@babel/core": "^7.0.0"
1508
+      }
1509
+    },
1510
+    "node_modules/@emotion/babel-plugin/node_modules/escape-string-regexp": {
1511
+      "version": "4.0.0",
1512
+      "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
1513
+      "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
1514
+      "engines": {
1515
+        "node": ">=10"
1516
+      },
1517
+      "funding": {
1518
+        "url": "https://github.com/sponsors/sindresorhus"
1519
+      }
1520
+    },
1521
+    "node_modules/@emotion/babel-plugin/node_modules/source-map": {
1522
+      "version": "0.5.7",
1523
+      "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
1524
+      "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
1525
+      "engines": {
1526
+        "node": ">=0.10.0"
1527
+      }
1528
+    },
1529
+    "node_modules/@emotion/cache": {
1530
+      "version": "11.5.0",
1531
+      "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.5.0.tgz",
1532
+      "integrity": "sha512-mAZ5QRpLriBtaj/k2qyrXwck6yeoz1V5lMt/jfj6igWU35yYlNKs2LziXVgvH81gnJZ+9QQNGelSsnuoAy6uIw==",
1533
+      "dependencies": {
1534
+        "@emotion/memoize": "^0.7.4",
1535
+        "@emotion/sheet": "^1.0.3",
1536
+        "@emotion/utils": "^1.0.0",
1537
+        "@emotion/weak-memoize": "^0.2.5",
1538
+        "stylis": "^4.0.10"
1539
+      }
1540
+    },
1541
+    "node_modules/@emotion/hash": {
1542
+      "version": "0.8.0",
1543
+      "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz",
1544
+      "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow=="
1545
+    },
1546
+    "node_modules/@emotion/is-prop-valid": {
1547
+      "version": "1.1.0",
1548
+      "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.1.0.tgz",
1549
+      "integrity": "sha512-9RkilvXAufQHsSsjQ3PIzSns+pxuX4EW8EbGeSPjZMHuMx6z/MOzb9LpqNieQX4F3mre3NWS2+X3JNRHTQztUQ==",
1550
+      "dependencies": {
1551
+        "@emotion/memoize": "^0.7.4"
1552
+      }
1553
+    },
1554
+    "node_modules/@emotion/memoize": {
1555
+      "version": "0.7.5",
1556
+      "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.5.tgz",
1557
+      "integrity": "sha512-igX9a37DR2ZPGYtV6suZ6whr8pTFtyHL3K/oLUotxpSVO2ASaprmAe2Dkq7tBo7CRY7MMDrAa9nuQP9/YG8FxQ=="
1558
+    },
1559
+    "node_modules/@emotion/react": {
1560
+      "version": "11.5.0",
1561
+      "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.5.0.tgz",
1562
+      "integrity": "sha512-MYq/bzp3rYbee4EMBORCn4duPQfgpiEB5XzrZEBnUZAL80Qdfr7CEv/T80jwaTl/dnZmt9SnTa8NkTrwFNpLlw==",
1563
+      "dependencies": {
1564
+        "@babel/runtime": "^7.13.10",
1565
+        "@emotion/cache": "^11.5.0",
1566
+        "@emotion/serialize": "^1.0.2",
1567
+        "@emotion/sheet": "^1.0.3",
1568
+        "@emotion/utils": "^1.0.0",
1569
+        "@emotion/weak-memoize": "^0.2.5",
1570
+        "hoist-non-react-statics": "^3.3.1"
1571
+      },
1572
+      "peerDependencies": {
1573
+        "@babel/core": "^7.0.0",
1574
+        "react": ">=16.8.0"
1575
+      },
1576
+      "peerDependenciesMeta": {
1577
+        "@babel/core": {
1578
+          "optional": true
1579
+        },
1580
+        "@types/react": {
1581
+          "optional": true
1582
+        }
1583
+      }
1584
+    },
1585
+    "node_modules/@emotion/serialize": {
1586
+      "version": "1.0.2",
1587
+      "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.0.2.tgz",
1588
+      "integrity": "sha512-95MgNJ9+/ajxU7QIAruiOAdYNjxZX7G2mhgrtDWswA21VviYIRP1R5QilZ/bDY42xiKsaktP4egJb3QdYQZi1A==",
1589
+      "dependencies": {
1590
+        "@emotion/hash": "^0.8.0",
1591
+        "@emotion/memoize": "^0.7.4",
1592
+        "@emotion/unitless": "^0.7.5",
1593
+        "@emotion/utils": "^1.0.0",
1594
+        "csstype": "^3.0.2"
1595
+      }
1596
+    },
1597
+    "node_modules/@emotion/sheet": {
1598
+      "version": "1.0.3",
1599
+      "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.0.3.tgz",
1600
+      "integrity": "sha512-YoX5GyQ4db7LpbmXHMuc8kebtBGP6nZfRC5Z13OKJMixBEwdZrJ914D6yJv/P+ZH/YY3F5s89NYX2hlZAf3SRQ=="
1601
+    },
1602
+    "node_modules/@emotion/styled": {
1603
+      "version": "11.3.0",
1604
+      "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.3.0.tgz",
1605
+      "integrity": "sha512-fUoLcN3BfMiLlRhJ8CuPUMEyKkLEoM+n+UyAbnqGEsCd5IzKQ7VQFLtzpJOaCD2/VR2+1hXQTnSZXVJeiTNltA==",
1606
+      "dependencies": {
1607
+        "@babel/runtime": "^7.13.10",
1608
+        "@emotion/babel-plugin": "^11.3.0",
1609
+        "@emotion/is-prop-valid": "^1.1.0",
1610
+        "@emotion/serialize": "^1.0.2",
1611
+        "@emotion/utils": "^1.0.0"
1612
+      },
1613
+      "peerDependencies": {
1614
+        "@babel/core": "^7.0.0",
1615
+        "@emotion/react": "^11.0.0-rc.0",
1616
+        "react": ">=16.8.0"
1617
+      },
1618
+      "peerDependenciesMeta": {
1619
+        "@babel/core": {
1620
+          "optional": true
1621
+        },
1622
+        "@types/react": {
1623
+          "optional": true
1624
+        }
1625
+      }
1626
+    },
1627
+    "node_modules/@emotion/unitless": {
1628
+      "version": "0.7.5",
1629
+      "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz",
1630
+      "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg=="
1631
+    },
1632
+    "node_modules/@emotion/utils": {
1633
+      "version": "1.0.0",
1634
+      "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.0.0.tgz",
1635
+      "integrity": "sha512-mQC2b3XLDs6QCW+pDQDiyO/EdGZYOygE8s5N5rrzjSI4M3IejPE/JPndCBwRT9z982aqQNi6beWs1UeayrQxxA=="
1636
+    },
1637
+    "node_modules/@emotion/weak-memoize": {
1638
+      "version": "0.2.5",
1639
+      "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz",
1640
+      "integrity": "sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA=="
1641
+    },
1484 1642
     "node_modules/@eslint/eslintrc": {
1485 1643
       "version": "0.3.0",
1486 1644
       "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.3.0.tgz",
@@ -1832,6 +1990,224 @@
1832 1990
         "node": ">= 10.14.2"
1833 1991
       }
1834 1992
     },
1993
+    "node_modules/@mui/core": {
1994
+      "version": "5.0.0-alpha.54",
1995
+      "resolved": "https://registry.npmjs.org/@mui/core/-/core-5.0.0-alpha.54.tgz",
1996
+      "integrity": "sha512-8TxdHqDdSb6wjhsnpE5n7qtkFKDG3PUSlVY0gR3VcdsHXscUY13l3VbMQW1brI4D/R9zx5VYmxIHWaHFgw4RtA==",
1997
+      "dependencies": {
1998
+        "@babel/runtime": "^7.16.0",
1999
+        "@emotion/is-prop-valid": "^1.1.0",
2000
+        "@mui/utils": "^5.1.0",
2001
+        "@popperjs/core": "^2.4.4",
2002
+        "clsx": "^1.1.1",
2003
+        "prop-types": "^15.7.2",
2004
+        "react-is": "^17.0.2"
2005
+      },
2006
+      "engines": {
2007
+        "node": ">=12.0.0"
2008
+      },
2009
+      "peerDependencies": {
2010
+        "@types/react": "^16.8.6 || ^17.0.0",
2011
+        "react": "^17.0.2",
2012
+        "react-dom": "^17.0.2"
2013
+      },
2014
+      "peerDependenciesMeta": {
2015
+        "@types/react": {
2016
+          "optional": true
2017
+        }
2018
+      }
2019
+    },
2020
+    "node_modules/@mui/icons-material": {
2021
+      "version": "5.1.0",
2022
+      "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.1.0.tgz",
2023
+      "integrity": "sha512-GD2cNZ2XTqoxX6DMUg+tos1fDUVg6kXWxwo9UuBiRIhK8N+B7CG7vjRDf28LLmewcqIjxqy+T2SEVqDLy1FOYQ==",
2024
+      "dependencies": {
2025
+        "@babel/runtime": "^7.16.0"
2026
+      },
2027
+      "engines": {
2028
+        "node": ">=12.0.0"
2029
+      },
2030
+      "peerDependencies": {
2031
+        "@mui/material": "^5.0.0",
2032
+        "@types/react": "^16.8.6 || ^17.0.0",
2033
+        "react": "^17.0.2"
2034
+      },
2035
+      "peerDependenciesMeta": {
2036
+        "@types/react": {
2037
+          "optional": true
2038
+        }
2039
+      }
2040
+    },
2041
+    "node_modules/@mui/material": {
2042
+      "version": "5.1.0",
2043
+      "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.1.0.tgz",
2044
+      "integrity": "sha512-K76v7zRhpJToInSI8sRcEmTwpVFBZ223VIusjZRKXN8JzX+PuErG7skfa1yUuhc3f4VEqcYYUw0LvI+DJJ05eg==",
2045
+      "dependencies": {
2046
+        "@babel/runtime": "^7.16.0",
2047
+        "@mui/core": "5.0.0-alpha.54",
2048
+        "@mui/system": "^5.1.0",
2049
+        "@mui/types": "^7.1.0",
2050
+        "@mui/utils": "^5.1.0",
2051
+        "@types/react-transition-group": "^4.4.4",
2052
+        "clsx": "^1.1.1",
2053
+        "csstype": "^3.0.9",
2054
+        "hoist-non-react-statics": "^3.3.2",
2055
+        "prop-types": "^15.7.2",
2056
+        "react-is": "^17.0.2",
2057
+        "react-transition-group": "^4.4.2"
2058
+      },
2059
+      "engines": {
2060
+        "node": ">=12.0.0"
2061
+      },
2062
+      "funding": {
2063
+        "type": "opencollective",
2064
+        "url": "https://opencollective.com/material-ui"
2065
+      },
2066
+      "peerDependencies": {
2067
+        "@emotion/react": "^11.5.0",
2068
+        "@emotion/styled": "^11.3.0",
2069
+        "@types/react": "^16.8.6 || ^17.0.0",
2070
+        "react": "^17.0.2",
2071
+        "react-dom": "^17.0.2"
2072
+      },
2073
+      "peerDependenciesMeta": {
2074
+        "@emotion/react": {
2075
+          "optional": true
2076
+        },
2077
+        "@emotion/styled": {
2078
+          "optional": true
2079
+        },
2080
+        "@types/react": {
2081
+          "optional": true
2082
+        }
2083
+      }
2084
+    },
2085
+    "node_modules/@mui/private-theming": {
2086
+      "version": "5.1.0",
2087
+      "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.1.0.tgz",
2088
+      "integrity": "sha512-RWzpvwZTNoCUlWFtf7uMDY4QkNL6pI3V2Ac4MZeVzJr3DLluQrt0JjUdsy8CVS7HCTp1YGiyZsJ7H8PfR9jIOw==",
2089
+      "dependencies": {
2090
+        "@babel/runtime": "^7.16.0",
2091
+        "@mui/utils": "^5.1.0",
2092
+        "prop-types": "^15.7.2"
2093
+      },
2094
+      "engines": {
2095
+        "node": ">=12.0.0"
2096
+      },
2097
+      "funding": {
2098
+        "type": "opencollective",
2099
+        "url": "https://opencollective.com/material-ui"
2100
+      },
2101
+      "peerDependencies": {
2102
+        "@types/react": "^16.8.6 || ^17.0.0",
2103
+        "react": "^17.0.2"
2104
+      },
2105
+      "peerDependenciesMeta": {
2106
+        "@types/react": {
2107
+          "optional": true
2108
+        }
2109
+      }
2110
+    },
2111
+    "node_modules/@mui/styled-engine": {
2112
+      "version": "5.1.0",
2113
+      "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.1.0.tgz",
2114
+      "integrity": "sha512-Z27hexqYL21z+iVat47n1E/Tj4r83JK6hXaOFj2rYMYz0lJQ6YGLF+c2B3NNJoglL76Vo0w4yKC63FsO+015kw==",
2115
+      "dependencies": {
2116
+        "@babel/runtime": "^7.16.0",
2117
+        "@emotion/cache": "^11.5.0",
2118
+        "prop-types": "^15.7.2"
2119
+      },
2120
+      "engines": {
2121
+        "node": ">=12.0.0"
2122
+      },
2123
+      "funding": {
2124
+        "type": "opencollective",
2125
+        "url": "https://opencollective.com/material-ui"
2126
+      },
2127
+      "peerDependencies": {
2128
+        "@emotion/react": "^11.4.1",
2129
+        "@emotion/styled": "^11.3.0",
2130
+        "react": "^17.0.2"
2131
+      },
2132
+      "peerDependenciesMeta": {
2133
+        "@emotion/react": {
2134
+          "optional": true
2135
+        },
2136
+        "@emotion/styled": {
2137
+          "optional": true
2138
+        }
2139
+      }
2140
+    },
2141
+    "node_modules/@mui/system": {
2142
+      "version": "5.1.0",
2143
+      "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.1.0.tgz",
2144
+      "integrity": "sha512-1h+YDnPGfTWZkf7lgeNV+vw6altxXGLclXLdxs9GPzEMNYXX7xveUjmndYpO1p/yx7GNG2gLWWkFZ1TYCeo4+Q==",
2145
+      "dependencies": {
2146
+        "@babel/runtime": "^7.16.0",
2147
+        "@mui/private-theming": "^5.1.0",
2148
+        "@mui/styled-engine": "^5.1.0",
2149
+        "@mui/types": "^7.1.0",
2150
+        "@mui/utils": "^5.1.0",
2151
+        "clsx": "^1.1.1",
2152
+        "csstype": "^3.0.9",
2153
+        "prop-types": "^15.7.2"
2154
+      },
2155
+      "engines": {
2156
+        "node": ">=12.0.0"
2157
+      },
2158
+      "funding": {
2159
+        "type": "opencollective",
2160
+        "url": "https://opencollective.com/material-ui"
2161
+      },
2162
+      "peerDependencies": {
2163
+        "@emotion/react": "^11.5.0",
2164
+        "@emotion/styled": "^11.3.0",
2165
+        "@types/react": "^16.8.6 || ^17.0.0",
2166
+        "react": "^17.0.2"
2167
+      },
2168
+      "peerDependenciesMeta": {
2169
+        "@emotion/react": {
2170
+          "optional": true
2171
+        },
2172
+        "@emotion/styled": {
2173
+          "optional": true
2174
+        },
2175
+        "@types/react": {
2176
+          "optional": true
2177
+        }
2178
+      }
2179
+    },
2180
+    "node_modules/@mui/types": {
2181
+      "version": "7.1.0",
2182
+      "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.1.0.tgz",
2183
+      "integrity": "sha512-Hh7ALdq/GjfIwLvqH3XftuY3bcKhupktTm+S6qRIDGOtPtRuq2L21VWzOK4p7kblirK0XgGVH5BLwa6u8z/6QQ==",
2184
+      "peerDependencies": {
2185
+        "@types/react": "*"
2186
+      },
2187
+      "peerDependenciesMeta": {
2188
+        "@types/react": {
2189
+          "optional": true
2190
+        }
2191
+      }
2192
+    },
2193
+    "node_modules/@mui/utils": {
2194
+      "version": "5.1.0",
2195
+      "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.1.0.tgz",
2196
+      "integrity": "sha512-TbAa3DZBGE6xjrVsQ6e0Iw0jwgGZqPg/48aZJJWXJJjU8NU5OhBRutYhrk/kbdDRmsIArHNdpJayBSi7yETYvg==",
2197
+      "dependencies": {
2198
+        "@babel/runtime": "^7.16.0",
2199
+        "@types/prop-types": "^15.7.4",
2200
+        "@types/react-is": "^16.7.1 || ^17.0.0",
2201
+        "prop-types": "^15.7.2",
2202
+        "react-is": "^17.0.2"
2203
+      },
2204
+      "engines": {
2205
+        "node": ">=12.0.0"
2206
+      },
2207
+      "peerDependencies": {
2208
+        "react": "^17.0.2"
2209
+      }
2210
+    },
1835 2211
     "node_modules/@nodelib/fs.scandir": {
1836 2212
       "version": "2.1.4",
1837 2213
       "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz",
@@ -2799,6 +3175,14 @@
2799 3175
         "csstype": "^3.0.2"
2800 3176
       }
2801 3177
     },
3178
+    "node_modules/@types/react-is": {
3179
+      "version": "17.0.3",
3180
+      "resolved": "https://registry.npmjs.org/@types/react-is/-/react-is-17.0.3.tgz",
3181
+      "integrity": "sha512-aBTIWg1emtu95bLTLx0cpkxwGW3ueZv71nE2YFBpL8k/z5czEW8yYpOo8Dp+UUAFAtKwNaOsh/ioSeQnWlZcfw==",
3182
+      "dependencies": {
3183
+        "@types/react": "*"
3184
+      }
3185
+    },
2802 3186
     "node_modules/@types/react-transition-group": {
2803 3187
       "version": "4.4.4",
2804 3188
       "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.4.tgz",
@@ -5780,6 +6164,14 @@
5780 6164
         "wrap-ansi": "^6.2.0"
5781 6165
       }
5782 6166
     },
6167
+    "node_modules/clsx": {
6168
+      "version": "1.1.1",
6169
+      "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.1.1.tgz",
6170
+      "integrity": "sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA==",
6171
+      "engines": {
6172
+        "node": ">=6"
6173
+      }
6174
+    },
5783 6175
     "node_modules/co": {
5784 6176
       "version": "4.6.0",
5785 6177
       "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
@@ -9019,6 +9411,11 @@
9019 9411
         "node": ">=6"
9020 9412
       }
9021 9413
     },
9414
+    "node_modules/find-root": {
9415
+      "version": "1.1.0",
9416
+      "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz",
9417
+      "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng=="
9418
+    },
9022 9419
     "node_modules/find-up": {
9023 9420
       "version": "4.1.0",
9024 9421
       "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
@@ -15598,10 +15995,9 @@
15598 15995
       "license": "MIT"
15599 15996
     },
15600 15997
     "node_modules/react-is": {
15601
-      "version": "17.0.1",
15602
-      "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.1.tgz",
15603
-      "integrity": "sha512-NAnt2iGDXohE5LI7uBnLnqvLQMtzhkiAOLXTmv+qnF9Ky7xAPcX8Up/xWIhxvLVGJvuLiNc4xQLtuqDRzb4fSA==",
15604
-      "license": "MIT"
15998
+      "version": "17.0.2",
15999
+      "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz",
16000
+      "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w=="
15605 16001
     },
15606 16002
     "node_modules/react-lifecycles-compat": {
15607 16003
       "version": "3.0.4",
@@ -18217,6 +18613,11 @@
18217 18613
         "node": ">=8"
18218 18614
       }
18219 18615
     },
18616
+    "node_modules/stylis": {
18617
+      "version": "4.0.10",
18618
+      "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.0.10.tgz",
18619
+      "integrity": "sha512-m3k+dk7QeJw660eIKRRn3xPF6uuvHs/FFzjX3HQ5ove0qYsiygoAhwn5a3IYKaZPo5LrYD0rfVmtv1gNY1uYwg=="
18620
+    },
18220 18621
     "node_modules/supports-color": {
18221 18622
       "version": "7.2.0",
18222 18623
       "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
@@ -21801,6 +22202,125 @@
21801 22202
       "resolved": "https://registry.npmjs.org/@csstools/normalize.css/-/normalize.css-10.1.0.tgz",
21802 22203
       "integrity": "sha512-ij4wRiunFfaJxjB0BdrYHIH8FxBJpOwNPhhAcunlmPdXudL1WQV1qoP9un6JsEBAgQH+7UXyyjh0g7jTxXK6tg=="
21803 22204
     },
22205
+    "@emotion/babel-plugin": {
22206
+      "version": "11.3.0",
22207
+      "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.3.0.tgz",
22208
+      "integrity": "sha512-UZKwBV2rADuhRp+ZOGgNWg2eYgbzKzQXfQPtJbu/PLy8onurxlNCLvxMQEvlr1/GudguPI5IU9qIY1+2z1M5bA==",
22209
+      "requires": {
22210
+        "@babel/helper-module-imports": "^7.12.13",
22211
+        "@babel/plugin-syntax-jsx": "^7.12.13",
22212
+        "@babel/runtime": "^7.13.10",
22213
+        "@emotion/hash": "^0.8.0",
22214
+        "@emotion/memoize": "^0.7.5",
22215
+        "@emotion/serialize": "^1.0.2",
22216
+        "babel-plugin-macros": "^2.6.1",
22217
+        "convert-source-map": "^1.5.0",
22218
+        "escape-string-regexp": "^4.0.0",
22219
+        "find-root": "^1.1.0",
22220
+        "source-map": "^0.5.7",
22221
+        "stylis": "^4.0.3"
22222
+      },
22223
+      "dependencies": {
22224
+        "escape-string-regexp": {
22225
+          "version": "4.0.0",
22226
+          "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
22227
+          "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA=="
22228
+        },
22229
+        "source-map": {
22230
+          "version": "0.5.7",
22231
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
22232
+          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="
22233
+        }
22234
+      }
22235
+    },
22236
+    "@emotion/cache": {
22237
+      "version": "11.5.0",
22238
+      "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.5.0.tgz",
22239
+      "integrity": "sha512-mAZ5QRpLriBtaj/k2qyrXwck6yeoz1V5lMt/jfj6igWU35yYlNKs2LziXVgvH81gnJZ+9QQNGelSsnuoAy6uIw==",
22240
+      "requires": {
22241
+        "@emotion/memoize": "^0.7.4",
22242
+        "@emotion/sheet": "^1.0.3",
22243
+        "@emotion/utils": "^1.0.0",
22244
+        "@emotion/weak-memoize": "^0.2.5",
22245
+        "stylis": "^4.0.10"
22246
+      }
22247
+    },
22248
+    "@emotion/hash": {
22249
+      "version": "0.8.0",
22250
+      "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz",
22251
+      "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow=="
22252
+    },
22253
+    "@emotion/is-prop-valid": {
22254
+      "version": "1.1.0",
22255
+      "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.1.0.tgz",
22256
+      "integrity": "sha512-9RkilvXAufQHsSsjQ3PIzSns+pxuX4EW8EbGeSPjZMHuMx6z/MOzb9LpqNieQX4F3mre3NWS2+X3JNRHTQztUQ==",
22257
+      "requires": {
22258
+        "@emotion/memoize": "^0.7.4"
22259
+      }
22260
+    },
22261
+    "@emotion/memoize": {
22262
+      "version": "0.7.5",
22263
+      "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.5.tgz",
22264
+      "integrity": "sha512-igX9a37DR2ZPGYtV6suZ6whr8pTFtyHL3K/oLUotxpSVO2ASaprmAe2Dkq7tBo7CRY7MMDrAa9nuQP9/YG8FxQ=="
22265
+    },
22266
+    "@emotion/react": {
22267
+      "version": "11.5.0",
22268
+      "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.5.0.tgz",
22269
+      "integrity": "sha512-MYq/bzp3rYbee4EMBORCn4duPQfgpiEB5XzrZEBnUZAL80Qdfr7CEv/T80jwaTl/dnZmt9SnTa8NkTrwFNpLlw==",
22270
+      "requires": {
22271
+        "@babel/runtime": "^7.13.10",
22272
+        "@emotion/cache": "^11.5.0",
22273
+        "@emotion/serialize": "^1.0.2",
22274
+        "@emotion/sheet": "^1.0.3",
22275
+        "@emotion/utils": "^1.0.0",
22276
+        "@emotion/weak-memoize": "^0.2.5",
22277
+        "hoist-non-react-statics": "^3.3.1"
22278
+      }
22279
+    },
22280
+    "@emotion/serialize": {
22281
+      "version": "1.0.2",
22282
+      "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.0.2.tgz",
22283
+      "integrity": "sha512-95MgNJ9+/ajxU7QIAruiOAdYNjxZX7G2mhgrtDWswA21VviYIRP1R5QilZ/bDY42xiKsaktP4egJb3QdYQZi1A==",
22284
+      "requires": {
22285
+        "@emotion/hash": "^0.8.0",
22286
+        "@emotion/memoize": "^0.7.4",
22287
+        "@emotion/unitless": "^0.7.5",
22288
+        "@emotion/utils": "^1.0.0",
22289
+        "csstype": "^3.0.2"
22290
+      }
22291
+    },
22292
+    "@emotion/sheet": {
22293
+      "version": "1.0.3",
22294
+      "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.0.3.tgz",
22295
+      "integrity": "sha512-YoX5GyQ4db7LpbmXHMuc8kebtBGP6nZfRC5Z13OKJMixBEwdZrJ914D6yJv/P+ZH/YY3F5s89NYX2hlZAf3SRQ=="
22296
+    },
22297
+    "@emotion/styled": {
22298
+      "version": "11.3.0",
22299
+      "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.3.0.tgz",
22300
+      "integrity": "sha512-fUoLcN3BfMiLlRhJ8CuPUMEyKkLEoM+n+UyAbnqGEsCd5IzKQ7VQFLtzpJOaCD2/VR2+1hXQTnSZXVJeiTNltA==",
22301
+      "requires": {
22302
+        "@babel/runtime": "^7.13.10",
22303
+        "@emotion/babel-plugin": "^11.3.0",
22304
+        "@emotion/is-prop-valid": "^1.1.0",
22305
+        "@emotion/serialize": "^1.0.2",
22306
+        "@emotion/utils": "^1.0.0"
22307
+      }
22308
+    },
22309
+    "@emotion/unitless": {
22310
+      "version": "0.7.5",
22311
+      "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz",
22312
+      "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg=="
22313
+    },
22314
+    "@emotion/utils": {
22315
+      "version": "1.0.0",
22316
+      "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.0.0.tgz",
22317
+      "integrity": "sha512-mQC2b3XLDs6QCW+pDQDiyO/EdGZYOygE8s5N5rrzjSI4M3IejPE/JPndCBwRT9z982aqQNi6beWs1UeayrQxxA=="
22318
+    },
22319
+    "@emotion/weak-memoize": {
22320
+      "version": "0.2.5",
22321
+      "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz",
22322
+      "integrity": "sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA=="
22323
+    },
21804 22324
     "@eslint/eslintrc": {
21805 22325
       "version": "0.3.0",
21806 22326
       "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.3.0.tgz",
@@ -22077,6 +22597,100 @@
22077 22597
         "chalk": "^4.0.0"
22078 22598
       }
22079 22599
     },
22600
+    "@mui/core": {
22601
+      "version": "5.0.0-alpha.54",
22602
+      "resolved": "https://registry.npmjs.org/@mui/core/-/core-5.0.0-alpha.54.tgz",
22603
+      "integrity": "sha512-8TxdHqDdSb6wjhsnpE5n7qtkFKDG3PUSlVY0gR3VcdsHXscUY13l3VbMQW1brI4D/R9zx5VYmxIHWaHFgw4RtA==",
22604
+      "requires": {
22605
+        "@babel/runtime": "^7.16.0",
22606
+        "@emotion/is-prop-valid": "^1.1.0",
22607
+        "@mui/utils": "^5.1.0",
22608
+        "@popperjs/core": "^2.4.4",
22609
+        "clsx": "^1.1.1",
22610
+        "prop-types": "^15.7.2",
22611
+        "react-is": "^17.0.2"
22612
+      }
22613
+    },
22614
+    "@mui/icons-material": {
22615
+      "version": "5.1.0",
22616
+      "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.1.0.tgz",
22617
+      "integrity": "sha512-GD2cNZ2XTqoxX6DMUg+tos1fDUVg6kXWxwo9UuBiRIhK8N+B7CG7vjRDf28LLmewcqIjxqy+T2SEVqDLy1FOYQ==",
22618
+      "requires": {
22619
+        "@babel/runtime": "^7.16.0"
22620
+      }
22621
+    },
22622
+    "@mui/material": {
22623
+      "version": "5.1.0",
22624
+      "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.1.0.tgz",
22625
+      "integrity": "sha512-K76v7zRhpJToInSI8sRcEmTwpVFBZ223VIusjZRKXN8JzX+PuErG7skfa1yUuhc3f4VEqcYYUw0LvI+DJJ05eg==",
22626
+      "requires": {
22627
+        "@babel/runtime": "^7.16.0",
22628
+        "@mui/core": "5.0.0-alpha.54",
22629
+        "@mui/system": "^5.1.0",
22630
+        "@mui/types": "^7.1.0",
22631
+        "@mui/utils": "^5.1.0",
22632
+        "@types/react-transition-group": "^4.4.4",
22633
+        "clsx": "^1.1.1",
22634
+        "csstype": "^3.0.9",
22635
+        "hoist-non-react-statics": "^3.3.2",
22636
+        "prop-types": "^15.7.2",
22637
+        "react-is": "^17.0.2",
22638
+        "react-transition-group": "^4.4.2"
22639
+      }
22640
+    },
22641
+    "@mui/private-theming": {
22642
+      "version": "5.1.0",
22643
+      "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.1.0.tgz",
22644
+      "integrity": "sha512-RWzpvwZTNoCUlWFtf7uMDY4QkNL6pI3V2Ac4MZeVzJr3DLluQrt0JjUdsy8CVS7HCTp1YGiyZsJ7H8PfR9jIOw==",
22645
+      "requires": {
22646
+        "@babel/runtime": "^7.16.0",
22647
+        "@mui/utils": "^5.1.0",
22648
+        "prop-types": "^15.7.2"
22649
+      }
22650
+    },
22651
+    "@mui/styled-engine": {
22652
+      "version": "5.1.0",
22653
+      "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.1.0.tgz",
22654
+      "integrity": "sha512-Z27hexqYL21z+iVat47n1E/Tj4r83JK6hXaOFj2rYMYz0lJQ6YGLF+c2B3NNJoglL76Vo0w4yKC63FsO+015kw==",
22655
+      "requires": {
22656
+        "@babel/runtime": "^7.16.0",
22657
+        "@emotion/cache": "^11.5.0",
22658
+        "prop-types": "^15.7.2"
22659
+      }
22660
+    },
22661
+    "@mui/system": {
22662
+      "version": "5.1.0",
22663
+      "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.1.0.tgz",
22664
+      "integrity": "sha512-1h+YDnPGfTWZkf7lgeNV+vw6altxXGLclXLdxs9GPzEMNYXX7xveUjmndYpO1p/yx7GNG2gLWWkFZ1TYCeo4+Q==",
22665
+      "requires": {
22666
+        "@babel/runtime": "^7.16.0",
22667
+        "@mui/private-theming": "^5.1.0",
22668
+        "@mui/styled-engine": "^5.1.0",
22669
+        "@mui/types": "^7.1.0",
22670
+        "@mui/utils": "^5.1.0",
22671
+        "clsx": "^1.1.1",
22672
+        "csstype": "^3.0.9",
22673
+        "prop-types": "^15.7.2"
22674
+      }
22675
+    },
22676
+    "@mui/types": {
22677
+      "version": "7.1.0",
22678
+      "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.1.0.tgz",
22679
+      "integrity": "sha512-Hh7ALdq/GjfIwLvqH3XftuY3bcKhupktTm+S6qRIDGOtPtRuq2L21VWzOK4p7kblirK0XgGVH5BLwa6u8z/6QQ==",
22680
+      "requires": {}
22681
+    },
22682
+    "@mui/utils": {
22683
+      "version": "5.1.0",
22684
+      "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.1.0.tgz",
22685
+      "integrity": "sha512-TbAa3DZBGE6xjrVsQ6e0Iw0jwgGZqPg/48aZJJWXJJjU8NU5OhBRutYhrk/kbdDRmsIArHNdpJayBSi7yETYvg==",
22686
+      "requires": {
22687
+        "@babel/runtime": "^7.16.0",
22688
+        "@types/prop-types": "^15.7.4",
22689
+        "@types/react-is": "^16.7.1 || ^17.0.0",
22690
+        "prop-types": "^15.7.2",
22691
+        "react-is": "^17.0.2"
22692
+      }
22693
+    },
22080 22694
     "@nodelib/fs.scandir": {
22081 22695
       "version": "2.1.4",
22082 22696
       "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz",
@@ -22725,6 +23339,14 @@
22725 23339
         "csstype": "^3.0.2"
22726 23340
       }
22727 23341
     },
23342
+    "@types/react-is": {
23343
+      "version": "17.0.3",
23344
+      "resolved": "https://registry.npmjs.org/@types/react-is/-/react-is-17.0.3.tgz",
23345
+      "integrity": "sha512-aBTIWg1emtu95bLTLx0cpkxwGW3ueZv71nE2YFBpL8k/z5czEW8yYpOo8Dp+UUAFAtKwNaOsh/ioSeQnWlZcfw==",
23346
+      "requires": {
23347
+        "@types/react": "*"
23348
+      }
23349
+    },
22728 23350
     "@types/react-transition-group": {
22729 23351
       "version": "4.4.4",
22730 23352
       "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.4.tgz",
@@ -24938,6 +25560,11 @@
24938 25560
         "wrap-ansi": "^6.2.0"
24939 25561
       }
24940 25562
     },
25563
+    "clsx": {
25564
+      "version": "1.1.1",
25565
+      "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.1.1.tgz",
25566
+      "integrity": "sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA=="
25567
+    },
24941 25568
     "co": {
24942 25569
       "version": "4.6.0",
24943 25570
       "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
@@ -27273,6 +27900,11 @@
27273 27900
         }
27274 27901
       }
27275 27902
     },
27903
+    "find-root": {
27904
+      "version": "1.1.0",
27905
+      "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz",
27906
+      "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng=="
27907
+    },
27276 27908
     "find-up": {
27277 27909
       "version": "4.1.0",
27278 27910
       "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
@@ -31955,9 +32587,9 @@
31955 32587
       "integrity": "sha512-nQTTcUu+ATDbrSD1BZHr5kgSD4oF8OFjxun8uAaL8RwPBacGBNPf/yAuVVdx17N8XNzRDMrZ9XcKZHCjPW+9ew=="
31956 32588
     },
31957 32589
     "react-is": {
31958
-      "version": "17.0.1",
31959
-      "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.1.tgz",
31960
-      "integrity": "sha512-NAnt2iGDXohE5LI7uBnLnqvLQMtzhkiAOLXTmv+qnF9Ky7xAPcX8Up/xWIhxvLVGJvuLiNc4xQLtuqDRzb4fSA=="
32590
+      "version": "17.0.2",
32591
+      "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz",
32592
+      "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w=="
31961 32593
     },
31962 32594
     "react-lifecycles-compat": {
31963 32595
       "version": "3.0.4",
@@ -33863,6 +34495,11 @@
33863 34495
         }
33864 34496
       }
33865 34497
     },
34498
+    "stylis": {
34499
+      "version": "4.0.10",
34500
+      "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.0.10.tgz",
34501
+      "integrity": "sha512-m3k+dk7QeJw660eIKRRn3xPF6uuvHs/FFzjX3HQ5ove0qYsiygoAhwn5a3IYKaZPo5LrYD0rfVmtv1gNY1uYwg=="
34502
+    },
33866 34503
     "supports-color": {
33867 34504
       "version": "7.2.0",
33868 34505
       "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",

+ 4 - 0
psicoadmin/package.json

@@ -3,6 +3,10 @@
3 3
   "version": "0.1.0",
4 4
   "private": true,
5 5
   "dependencies": {
6
+    "@emotion/react": "^11.5.0",
7
+    "@emotion/styled": "^11.3.0",
8
+    "@mui/icons-material": "^5.1.0",
9
+    "@mui/material": "^5.1.0",
6 10
     "@testing-library/jest-dom": "^5.11.4",
7 11
     "@testing-library/react": "^11.1.0",
8 12
     "@testing-library/user-event": "^12.1.10",

+ 2 - 0
psicoadmin/public/index.html

@@ -18,6 +18,8 @@
18 18
     <script src="https://cdn.datatables.net/1.10.19/js/jquery.dataTables.min.js"></script>
19 19
 
20 20
 
21
+    <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700&display=swap" />
22
+    <link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons" />
21 23
     <!--
22 24
       manifest.json provides metadata used when your web app is installed on a
23 25
       user's mobile device or desktop. See https://developers.google.com/web/fundamentals/web-app-manifest/

+ 2 - 2
psicoadmin/src/App.js

@@ -4,6 +4,7 @@ import './Css/all.css'
4 4
 import { createContext } from 'react'
5 5
 import { BrowserRouter as Router } from "react-router-dom";
6 6
 import { Container } from 'react-bootstrap'
7
+import Dashboard from './Components/Dashboard';
7 8
 
8 9
 
9 10
 import { Header } from './Components/Header';
@@ -27,8 +28,7 @@ function App() {
27 28
         <Router>
28 29
             <API_GATEWAY.Provider value={GATEWAY.dev}>
29 30
                 <Container fluid>
30
-                    <SideBar/>
31
-                    <Header/>
31
+                    <Dashboard/>
32 32
                 </Container>
33 33
             </API_GATEWAY.Provider>
34 34
         </Router>

+ 71 - 0
psicoadmin/src/Components/Chart.js

@@ -0,0 +1,71 @@
1
+import * as React from 'react';
2
+import { useTheme } from '@mui/material/styles';
3
+import { LineChart, Line, XAxis, YAxis, Label, ResponsiveContainer } from 'recharts';
4
+import Title from './Title';
5
+
6
+// Generate Sales Data
7
+function createData(time, amount) {
8
+  return { time, amount };
9
+}
10
+
11
+const data = [
12
+  createData('00:00', 0),
13
+  createData('03:00', 300),
14
+  createData('06:00', 600),
15
+  createData('09:00', 800),
16
+  createData('12:00', 1500),
17
+  createData('15:00', 2000),
18
+  createData('18:00', 2400),
19
+  createData('21:00', 2400),
20
+  createData('24:00', undefined),
21
+];
22
+
23
+export default function Chart() {
24
+  const theme = useTheme();
25
+
26
+  return (
27
+    <React.Fragment>
28
+      <Title>Today</Title>
29
+      <ResponsiveContainer>
30
+        <LineChart
31
+          data={data}
32
+          margin={{
33
+            top: 16,
34
+            right: 16,
35
+            bottom: 0,
36
+            left: 24,
37
+          }}
38
+        >
39
+          <XAxis
40
+            dataKey="time"
41
+            stroke={theme.palette.text.secondary}
42
+            style={theme.typography.body2}
43
+          />
44
+          <YAxis
45
+            stroke={theme.palette.text.secondary}
46
+            style={theme.typography.body2}
47
+          >
48
+            <Label
49
+              angle={270}
50
+              position="left"
51
+              style={{
52
+                textAnchor: 'middle',
53
+                fill: theme.palette.text.primary,
54
+                ...theme.typography.body1,
55
+              }}
56
+            >
57
+              Sales ($)
58
+            </Label>
59
+          </YAxis>
60
+          <Line
61
+            isAnimationActive={false}
62
+            type="monotone"
63
+            dataKey="amount"
64
+            stroke={theme.palette.primary.main}
65
+            dot={false}
66
+          />
67
+        </LineChart>
68
+      </ResponsiveContainer>
69
+    </React.Fragment>
70
+  );
71
+}

+ 207 - 0
psicoadmin/src/Components/Dashboard.js

@@ -0,0 +1,207 @@
1
+import * as React from 'react';
2
+import { styled, createTheme, ThemeProvider } from '@mui/material/styles';
3
+import CssBaseline from '@mui/material/CssBaseline';
4
+import MuiDrawer from '@mui/material/Drawer';
5
+import Box from '@mui/material/Box';
6
+import MuiAppBar from '@mui/material/AppBar';
7
+import Toolbar from '@mui/material/Toolbar';
8
+import List from '@mui/material/List';
9
+import Typography from '@mui/material/Typography';
10
+import Divider from '@mui/material/Divider';
11
+import IconButton from '@mui/material/IconButton';
12
+import Badge from '@mui/material/Badge';
13
+import Container from '@mui/material/Container';
14
+import Grid from '@mui/material/Grid';
15
+import Paper from '@mui/material/Paper';
16
+import Link from '@mui/material/Link';
17
+import MenuIcon from '@mui/icons-material/Menu';
18
+import ChevronLeftIcon from '@mui/icons-material/ChevronLeft';
19
+import NotificationsIcon from '@mui/icons-material/Notifications';
20
+import { mainListItems, secondaryListItems } from './listItems';
21
+// import Chart from './Chart';
22
+import Deposits from './Deposits';
23
+import Orders from './Orders';
24
+
25
+function Copyright(props) {
26
+  return (
27
+    <Typography variant="body2" color="text.secondary" align="center" {...props}>
28
+      {'Copyright © '}
29
+      <Link color="inherit" href="https://mui.com/">
30
+        Your Website
31
+      </Link>{' '}
32
+      {new Date().getFullYear()}
33
+      {'.'}
34
+    </Typography>
35
+  );
36
+}
37
+
38
+const drawerWidth = 240;
39
+
40
+const AppBar = styled(MuiAppBar, {
41
+  shouldForwardProp: (prop) => prop !== 'open',
42
+})(({ theme, open }) => ({
43
+  zIndex: theme.zIndex.drawer + 1,
44
+  transition: theme.transitions.create(['width', 'margin'], {
45
+    easing: theme.transitions.easing.sharp,
46
+    duration: theme.transitions.duration.leavingScreen,
47
+  }),
48
+  ...(open && {
49
+    marginLeft: drawerWidth,
50
+    width: `calc(100% - ${drawerWidth}px)`,
51
+    transition: theme.transitions.create(['width', 'margin'], {
52
+      easing: theme.transitions.easing.sharp,
53
+      duration: theme.transitions.duration.enteringScreen,
54
+    }),
55
+  }),
56
+}));
57
+
58
+const Drawer = styled(MuiDrawer, { shouldForwardProp: (prop) => prop !== 'open' })(
59
+  ({ theme, open }) => ({
60
+    '& .MuiDrawer-paper': {
61
+      position: 'relative',
62
+      whiteSpace: 'nowrap',
63
+      width: drawerWidth,
64
+      transition: theme.transitions.create('width', {
65
+        easing: theme.transitions.easing.sharp,
66
+        duration: theme.transitions.duration.enteringScreen,
67
+      }),
68
+      boxSizing: 'border-box',
69
+      ...(!open && {
70
+        overflowX: 'hidden',
71
+        transition: theme.transitions.create('width', {
72
+          easing: theme.transitions.easing.sharp,
73
+          duration: theme.transitions.duration.leavingScreen,
74
+        }),
75
+        width: theme.spacing(7),
76
+        [theme.breakpoints.up('sm')]: {
77
+          width: theme.spacing(9),
78
+        },
79
+      }),
80
+    },
81
+  }),
82
+);
83
+
84
+const mdTheme = createTheme();
85
+
86
+function DashboardContent() {
87
+  const [open, setOpen] = React.useState(true);
88
+  const toggleDrawer = () => {
89
+    setOpen(!open);
90
+  };
91
+
92
+  return (
93
+    <ThemeProvider theme={mdTheme}>
94
+      <Box sx={{ display: 'flex' }}>
95
+        <CssBaseline />
96
+        <AppBar position="absolute" open={open}>
97
+          <Toolbar
98
+            sx={{
99
+              pr: '24px', // keep right padding when drawer closed
100
+            }}
101
+          >
102
+            <IconButton
103
+              edge="start"
104
+              color="inherit"
105
+              aria-label="open drawer"
106
+              onClick={toggleDrawer}
107
+              sx={{
108
+                marginRight: '36px',
109
+                ...(open && { display: 'none' }),
110
+              }}
111
+            >
112
+              <MenuIcon />
113
+            </IconButton>
114
+            <Typography
115
+              component="h1"
116
+              variant="h6"
117
+              color="inherit"
118
+              noWrap
119
+              sx={{ flexGrow: 1 }}
120
+            >
121
+              Dashboard
122
+            </Typography>
123
+            <IconButton color="inherit">
124
+              <Badge badgeContent={4} color="secondary">
125
+                <NotificationsIcon />
126
+              </Badge>
127
+            </IconButton>
128
+          </Toolbar>
129
+        </AppBar>
130
+        <Drawer variant="permanent" open={open}>
131
+          <Toolbar
132
+            sx={{
133
+              display: 'flex',
134
+              alignItems: 'center',
135
+              justifyContent: 'flex-end',
136
+              px: [1],
137
+            }}
138
+          >
139
+            <IconButton onClick={toggleDrawer}>
140
+              <ChevronLeftIcon />
141
+            </IconButton>
142
+          </Toolbar>
143
+          <Divider />
144
+          <List>{mainListItems}</List>
145
+          <Divider />
146
+          <List>{secondaryListItems}</List>
147
+        </Drawer>
148
+        <Box
149
+          component="main"
150
+          sx={{
151
+            backgroundColor: (theme) =>
152
+              theme.palette.mode === 'light'
153
+                ? theme.palette.grey[100]
154
+                : theme.palette.grey[900],
155
+            flexGrow: 1,
156
+            height: '100vh',
157
+            overflow: 'auto',
158
+          }}
159
+        >
160
+          <Toolbar />
161
+          <Container maxWidth="lg" sx={{ mt: 4, mb: 4 }}>
162
+            <Grid container spacing={3}>
163
+              {/* Chart */}
164
+              <Grid item xs={12} md={8} lg={9}>
165
+                <Paper
166
+                  sx={{
167
+                    p: 2,
168
+                    display: 'flex',
169
+                    flexDirection: 'column',
170
+                    height: 240,
171
+                  }}
172
+                >
173
+                  {/* <Chart /> */}
174
+                </Paper>
175
+              </Grid>
176
+              {/* Recent Deposits */}
177
+              <Grid item xs={12} md={4} lg={3}>
178
+                <Paper
179
+                  sx={{
180
+                    p: 2,
181
+                    display: 'flex',
182
+                    flexDirection: 'column',
183
+                    height: 240,
184
+                  }}
185
+                >
186
+                  <Deposits />
187
+                </Paper>
188
+              </Grid>
189
+              {/* Recent Orders */}
190
+              <Grid item xs={12}>
191
+                <Paper sx={{ p: 2, display: 'flex', flexDirection: 'column' }}>
192
+                  <Orders />
193
+                </Paper>
194
+              </Grid>
195
+            </Grid>
196
+            <Copyright sx={{ pt: 4 }} />
197
+          </Container>
198
+        </Box>
199
+      </Box>
200
+    </ThemeProvider>
201
+  );
202
+}
203
+
204
+export default function Dashboard() {
205
+  return <DashboardContent />;
206
+}
207
+

+ 27 - 0
psicoadmin/src/Components/Deposits.js

@@ -0,0 +1,27 @@
1
+import * as React from 'react';
2
+import Link from '@mui/material/Link';
3
+import Typography from '@mui/material/Typography';
4
+import Title from './Title';
5
+
6
+function preventDefault(event) {
7
+  event.preventDefault();
8
+}
9
+
10
+export default function Deposits() {
11
+  return (
12
+    <React.Fragment>
13
+      <Title>Recent Deposits</Title>
14
+      <Typography component="p" variant="h4">
15
+        $3,024.00
16
+      </Typography>
17
+      <Typography color="text.secondary" sx={{ flex: 1 }}>
18
+        on 15 March, 2019
19
+      </Typography>
20
+      <div>
21
+        <Link color="primary" href="#" onClick={preventDefault}>
22
+          View balance
23
+        </Link>
24
+      </div>
25
+    </React.Fragment>
26
+  );
27
+}

+ 86 - 0
psicoadmin/src/Components/Orders.js

@@ -0,0 +1,86 @@
1
+import * as React from 'react';
2
+import Link from '@mui/material/Link';
3
+import Table from '@mui/material/Table';
4
+import TableBody from '@mui/material/TableBody';
5
+import TableCell from '@mui/material/TableCell';
6
+import TableHead from '@mui/material/TableHead';
7
+import TableRow from '@mui/material/TableRow';
8
+import Title from './Title';
9
+
10
+// Generate Order Data
11
+function createData(id, date, name, shipTo, paymentMethod, amount) {
12
+  return { id, date, name, shipTo, paymentMethod, amount };
13
+}
14
+
15
+const rows = [
16
+  createData(
17
+    0,
18
+    '16 Mar, 2019',
19
+    'Elvis Presley',
20
+    'Tupelo, MS',
21
+    'VISA ⠀•••• 3719',
22
+    312.44,
23
+  ),
24
+  createData(
25
+    1,
26
+    '16 Mar, 2019',
27
+    'Paul McCartney',
28
+    'London, UK',
29
+    'VISA ⠀•••• 2574',
30
+    866.99,
31
+  ),
32
+  createData(2, '16 Mar, 2019', 'Tom Scholz', 'Boston, MA', 'MC ⠀•••• 1253', 100.81),
33
+  createData(
34
+    3,
35
+    '16 Mar, 2019',
36
+    'Michael Jackson',
37
+    'Gary, IN',
38
+    'AMEX ⠀•••• 2000',
39
+    654.39,
40
+  ),
41
+  createData(
42
+    4,
43
+    '15 Mar, 2019',
44
+    'Bruce Springsteen',
45
+    'Long Branch, NJ',
46
+    'VISA ⠀•••• 5919',
47
+    212.79,
48
+  ),
49
+];
50
+
51
+function preventDefault(event) {
52
+  event.preventDefault();
53
+}
54
+
55
+export default function Orders() {
56
+  return (
57
+    <React.Fragment>
58
+      <Title>Recent Orders</Title>
59
+      <Table size="small">
60
+        <TableHead>
61
+          <TableRow>
62
+            <TableCell>Date</TableCell>
63
+            <TableCell>Name</TableCell>
64
+            <TableCell>Ship To</TableCell>
65
+            <TableCell>Payment Method</TableCell>
66
+            <TableCell align="right">Sale Amount</TableCell>
67
+          </TableRow>
68
+        </TableHead>
69
+        <TableBody>
70
+          {rows.map((row) => (
71
+            <TableRow key={row.id}>
72
+              <TableCell>{row.date}</TableCell>
73
+              <TableCell>{row.name}</TableCell>
74
+              <TableCell>{row.shipTo}</TableCell>
75
+              <TableCell>{row.paymentMethod}</TableCell>
76
+              <TableCell align="right">{`$${row.amount}`}</TableCell>
77
+            </TableRow>
78
+          ))}
79
+        </TableBody>
80
+      </Table>
81
+      <Link color="primary" href="#" onClick={preventDefault} sx={{ mt: 3 }}>
82
+        See more orders
83
+      </Link>
84
+    </React.Fragment>
85
+  );
86
+}

+ 17 - 0
psicoadmin/src/Components/Title.js

@@ -0,0 +1,17 @@
1
+import * as React from 'react';
2
+import PropTypes from 'prop-types';
3
+import Typography from '@mui/material/Typography';
4
+
5
+function Title(props) {
6
+  return (
7
+    <Typography component="h2" variant="h6" color="primary" gutterBottom>
8
+      {props.children}
9
+    </Typography>
10
+  );
11
+}
12
+
13
+Title.propTypes = {
14
+  children: PropTypes.node,
15
+};
16
+
17
+export default Title;

+ 70 - 0
psicoadmin/src/Components/listItems.js

@@ -0,0 +1,70 @@
1
+import * as React from 'react';
2
+import ListItem from '@mui/material/ListItem';
3
+import ListItemIcon from '@mui/material/ListItemIcon';
4
+import ListItemText from '@mui/material/ListItemText';
5
+import ListSubheader from '@mui/material/ListSubheader';
6
+import DashboardIcon from '@mui/icons-material/Dashboard';
7
+import ShoppingCartIcon from '@mui/icons-material/ShoppingCart';
8
+import PeopleIcon from '@mui/icons-material/People';
9
+import BarChartIcon from '@mui/icons-material/BarChart';
10
+import LayersIcon from '@mui/icons-material/Layers';
11
+import AssignmentIcon from '@mui/icons-material/Assignment';
12
+
13
+export const mainListItems = (
14
+    <div>
15
+        <ListItem button>
16
+            <ListItemIcon>
17
+                <DashboardIcon />
18
+            </ListItemIcon>
19
+            <ListItemText primary="Dashboard" />
20
+        </ListItem>
21
+        <ListItem button>
22
+            <ListItemIcon>
23
+                <ShoppingCartIcon />
24
+            </ListItemIcon>
25
+            <ListItemText primary="Orders" />
26
+        </ListItem>
27
+        <ListItem button>
28
+            <ListItemIcon>
29
+                <PeopleIcon />
30
+            </ListItemIcon>
31
+            <ListItemText primary="Customers" />
32
+        </ListItem>
33
+        <ListItem button>
34
+            <ListItemIcon>
35
+                <BarChartIcon />
36
+            </ListItemIcon>
37
+            <ListItemText primary="Reports" />
38
+        </ListItem>
39
+        <ListItem button>
40
+            <ListItemIcon>
41
+                <LayersIcon />
42
+            </ListItemIcon>
43
+            <ListItemText primary="Integrations" />
44
+        </ListItem>
45
+    </div>
46
+);
47
+
48
+export const secondaryListItems = (
49
+    <div>
50
+        <ListSubheader inset>Saved reports</ListSubheader>
51
+        <ListItem button>
52
+            <ListItemIcon>
53
+                <AssignmentIcon />
54
+            </ListItemIcon>
55
+            <ListItemText primary="Current month" />
56
+        </ListItem>
57
+        <ListItem button>
58
+            <ListItemIcon>
59
+                <AssignmentIcon />
60
+            </ListItemIcon>
61
+            <ListItemText primary="Last quarter" />
62
+        </ListItem>
63
+        <ListItem button>
64
+            <ListItemIcon>
65
+                <AssignmentIcon />
66
+            </ListItemIcon>
67
+            <ListItemText primary="Year-end sale" />
68
+        </ListItem>
69
+    </div>
70
+);

+ 233 - 14
psicoadmin/yarn.lock

@@ -1131,7 +1131,7 @@
1131 1131
     "core-js-pure" "^3.0.0"
1132 1132
     "regenerator-runtime" "^0.13.4"
1133 1133
 
1134
-"@babel/runtime@^7.1.2", "@babel/runtime@^7.10.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.13", "@babel/runtime@^7.12.5", "@babel/runtime@^7.13.16", "@babel/runtime@^7.14.0", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.2", "@babel/runtime@^7.6.3", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2":
1134
+"@babel/runtime@^7.1.2", "@babel/runtime@^7.10.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.13", "@babel/runtime@^7.12.5", "@babel/runtime@^7.13.10", "@babel/runtime@^7.13.16", "@babel/runtime@^7.14.0", "@babel/runtime@^7.16.0", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.2", "@babel/runtime@^7.6.3", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2":
1135 1135
   "integrity" "sha512-WBwekcqacdY2e9AF/Q7WLFUWmdJGJTkbjqTjoMDgXkVZ3ZRUvOPsLb5KdwISoQVsbP+DQzVZW4Zhci0DvpbNTQ=="
1136 1136
   "resolved" "https://registry.npmjs.org/@babel/runtime/-/runtime-7.16.3.tgz"
1137 1137
   "version" "7.16.3"
@@ -1201,6 +1201,107 @@
1201 1201
   "resolved" "https://registry.npmjs.org/@csstools/normalize.css/-/normalize.css-10.1.0.tgz"
1202 1202
   "version" "10.1.0"
1203 1203
 
1204
+"@emotion/babel-plugin@^11.3.0":
1205
+  "integrity" "sha512-UZKwBV2rADuhRp+ZOGgNWg2eYgbzKzQXfQPtJbu/PLy8onurxlNCLvxMQEvlr1/GudguPI5IU9qIY1+2z1M5bA=="
1206
+  "resolved" "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.3.0.tgz"
1207
+  "version" "11.3.0"
1208
+  dependencies:
1209
+    "@babel/helper-module-imports" "^7.12.13"
1210
+    "@babel/plugin-syntax-jsx" "^7.12.13"
1211
+    "@babel/runtime" "^7.13.10"
1212
+    "@emotion/hash" "^0.8.0"
1213
+    "@emotion/memoize" "^0.7.5"
1214
+    "@emotion/serialize" "^1.0.2"
1215
+    "babel-plugin-macros" "^2.6.1"
1216
+    "convert-source-map" "^1.5.0"
1217
+    "escape-string-regexp" "^4.0.0"
1218
+    "find-root" "^1.1.0"
1219
+    "source-map" "^0.5.7"
1220
+    "stylis" "^4.0.3"
1221
+
1222
+"@emotion/cache@^11.5.0":
1223
+  "integrity" "sha512-mAZ5QRpLriBtaj/k2qyrXwck6yeoz1V5lMt/jfj6igWU35yYlNKs2LziXVgvH81gnJZ+9QQNGelSsnuoAy6uIw=="
1224
+  "resolved" "https://registry.npmjs.org/@emotion/cache/-/cache-11.5.0.tgz"
1225
+  "version" "11.5.0"
1226
+  dependencies:
1227
+    "@emotion/memoize" "^0.7.4"
1228
+    "@emotion/sheet" "^1.0.3"
1229
+    "@emotion/utils" "^1.0.0"
1230
+    "@emotion/weak-memoize" "^0.2.5"
1231
+    "stylis" "^4.0.10"
1232
+
1233
+"@emotion/hash@^0.8.0":
1234
+  "integrity" "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow=="
1235
+  "resolved" "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz"
1236
+  "version" "0.8.0"
1237
+
1238
+"@emotion/is-prop-valid@^1.1.0":
1239
+  "integrity" "sha512-9RkilvXAufQHsSsjQ3PIzSns+pxuX4EW8EbGeSPjZMHuMx6z/MOzb9LpqNieQX4F3mre3NWS2+X3JNRHTQztUQ=="
1240
+  "resolved" "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.1.0.tgz"
1241
+  "version" "1.1.0"
1242
+  dependencies:
1243
+    "@emotion/memoize" "^0.7.4"
1244
+
1245
+"@emotion/memoize@^0.7.4", "@emotion/memoize@^0.7.5":
1246
+  "integrity" "sha512-igX9a37DR2ZPGYtV6suZ6whr8pTFtyHL3K/oLUotxpSVO2ASaprmAe2Dkq7tBo7CRY7MMDrAa9nuQP9/YG8FxQ=="
1247
+  "resolved" "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.5.tgz"
1248
+  "version" "0.7.5"
1249
+
1250
+"@emotion/react@^11.0.0-rc.0", "@emotion/react@^11.4.1", "@emotion/react@^11.5.0":
1251
+  "integrity" "sha512-MYq/bzp3rYbee4EMBORCn4duPQfgpiEB5XzrZEBnUZAL80Qdfr7CEv/T80jwaTl/dnZmt9SnTa8NkTrwFNpLlw=="
1252
+  "resolved" "https://registry.npmjs.org/@emotion/react/-/react-11.5.0.tgz"
1253
+  "version" "11.5.0"
1254
+  dependencies:
1255
+    "@babel/runtime" "^7.13.10"
1256
+    "@emotion/cache" "^11.5.0"
1257
+    "@emotion/serialize" "^1.0.2"
1258
+    "@emotion/sheet" "^1.0.3"
1259
+    "@emotion/utils" "^1.0.0"
1260
+    "@emotion/weak-memoize" "^0.2.5"
1261
+    "hoist-non-react-statics" "^3.3.1"
1262
+
1263
+"@emotion/serialize@^1.0.2":
1264
+  "integrity" "sha512-95MgNJ9+/ajxU7QIAruiOAdYNjxZX7G2mhgrtDWswA21VviYIRP1R5QilZ/bDY42xiKsaktP4egJb3QdYQZi1A=="
1265
+  "resolved" "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.0.2.tgz"
1266
+  "version" "1.0.2"
1267
+  dependencies:
1268
+    "@emotion/hash" "^0.8.0"
1269
+    "@emotion/memoize" "^0.7.4"
1270
+    "@emotion/unitless" "^0.7.5"
1271
+    "@emotion/utils" "^1.0.0"
1272
+    "csstype" "^3.0.2"
1273
+
1274
+"@emotion/sheet@^1.0.3":
1275
+  "integrity" "sha512-YoX5GyQ4db7LpbmXHMuc8kebtBGP6nZfRC5Z13OKJMixBEwdZrJ914D6yJv/P+ZH/YY3F5s89NYX2hlZAf3SRQ=="
1276
+  "resolved" "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.0.3.tgz"
1277
+  "version" "1.0.3"
1278
+
1279
+"@emotion/styled@^11.3.0":
1280
+  "integrity" "sha512-fUoLcN3BfMiLlRhJ8CuPUMEyKkLEoM+n+UyAbnqGEsCd5IzKQ7VQFLtzpJOaCD2/VR2+1hXQTnSZXVJeiTNltA=="
1281
+  "resolved" "https://registry.npmjs.org/@emotion/styled/-/styled-11.3.0.tgz"
1282
+  "version" "11.3.0"
1283
+  dependencies:
1284
+    "@babel/runtime" "^7.13.10"
1285
+    "@emotion/babel-plugin" "^11.3.0"
1286
+    "@emotion/is-prop-valid" "^1.1.0"
1287
+    "@emotion/serialize" "^1.0.2"
1288
+    "@emotion/utils" "^1.0.0"
1289
+
1290
+"@emotion/unitless@^0.7.5":
1291
+  "integrity" "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg=="
1292
+  "resolved" "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz"
1293
+  "version" "0.7.5"
1294
+
1295
+"@emotion/utils@^1.0.0":
1296
+  "integrity" "sha512-mQC2b3XLDs6QCW+pDQDiyO/EdGZYOygE8s5N5rrzjSI4M3IejPE/JPndCBwRT9z982aqQNi6beWs1UeayrQxxA=="
1297
+  "resolved" "https://registry.npmjs.org/@emotion/utils/-/utils-1.0.0.tgz"
1298
+  "version" "1.0.0"
1299
+
1300
+"@emotion/weak-memoize@^0.2.5":
1301
+  "integrity" "sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA=="
1302
+  "resolved" "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz"
1303
+  "version" "0.2.5"
1304
+
1204 1305
 "@eslint/eslintrc@^0.3.0":
1205 1306
   "integrity" "sha512-1JTKgrOKAHVivSvOYw+sJOunkBjUOvjqWk1DPja7ZFhIS2mX/4EgTT8M7eTK9jrKhL/FvXXEbQwIs3pg1xp3dg=="
1206 1307
   "resolved" "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.3.0.tgz"
@@ -1447,6 +1548,92 @@
1447 1548
     "@types/yargs" "^16.0.0"
1448 1549
     "chalk" "^4.0.0"
1449 1550
 
1551
+"@mui/core@5.0.0-alpha.54":
1552
+  "integrity" "sha512-8TxdHqDdSb6wjhsnpE5n7qtkFKDG3PUSlVY0gR3VcdsHXscUY13l3VbMQW1brI4D/R9zx5VYmxIHWaHFgw4RtA=="
1553
+  "resolved" "https://registry.npmjs.org/@mui/core/-/core-5.0.0-alpha.54.tgz"
1554
+  "version" "5.0.0-alpha.54"
1555
+  dependencies:
1556
+    "@babel/runtime" "^7.16.0"
1557
+    "@emotion/is-prop-valid" "^1.1.0"
1558
+    "@mui/utils" "^5.1.0"
1559
+    "@popperjs/core" "^2.4.4"
1560
+    "clsx" "^1.1.1"
1561
+    "prop-types" "^15.7.2"
1562
+    "react-is" "^17.0.2"
1563
+
1564
+"@mui/icons-material@^5.1.0":
1565
+  "integrity" "sha512-GD2cNZ2XTqoxX6DMUg+tos1fDUVg6kXWxwo9UuBiRIhK8N+B7CG7vjRDf28LLmewcqIjxqy+T2SEVqDLy1FOYQ=="
1566
+  "resolved" "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.1.0.tgz"
1567
+  "version" "5.1.0"
1568
+  dependencies:
1569
+    "@babel/runtime" "^7.16.0"
1570
+
1571
+"@mui/material@^5.0.0", "@mui/material@^5.1.0":
1572
+  "integrity" "sha512-K76v7zRhpJToInSI8sRcEmTwpVFBZ223VIusjZRKXN8JzX+PuErG7skfa1yUuhc3f4VEqcYYUw0LvI+DJJ05eg=="
1573
+  "resolved" "https://registry.npmjs.org/@mui/material/-/material-5.1.0.tgz"
1574
+  "version" "5.1.0"
1575
+  dependencies:
1576
+    "@babel/runtime" "^7.16.0"
1577
+    "@mui/core" "5.0.0-alpha.54"
1578
+    "@mui/system" "^5.1.0"
1579
+    "@mui/types" "^7.1.0"
1580
+    "@mui/utils" "^5.1.0"
1581
+    "@types/react-transition-group" "^4.4.4"
1582
+    "clsx" "^1.1.1"
1583
+    "csstype" "^3.0.9"
1584
+    "hoist-non-react-statics" "^3.3.2"
1585
+    "prop-types" "^15.7.2"
1586
+    "react-is" "^17.0.2"
1587
+    "react-transition-group" "^4.4.2"
1588
+
1589
+"@mui/private-theming@^5.1.0":
1590
+  "integrity" "sha512-RWzpvwZTNoCUlWFtf7uMDY4QkNL6pI3V2Ac4MZeVzJr3DLluQrt0JjUdsy8CVS7HCTp1YGiyZsJ7H8PfR9jIOw=="
1591
+  "resolved" "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.1.0.tgz"
1592
+  "version" "5.1.0"
1593
+  dependencies:
1594
+    "@babel/runtime" "^7.16.0"
1595
+    "@mui/utils" "^5.1.0"
1596
+    "prop-types" "^15.7.2"
1597
+
1598
+"@mui/styled-engine@^5.1.0":
1599
+  "integrity" "sha512-Z27hexqYL21z+iVat47n1E/Tj4r83JK6hXaOFj2rYMYz0lJQ6YGLF+c2B3NNJoglL76Vo0w4yKC63FsO+015kw=="
1600
+  "resolved" "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.1.0.tgz"
1601
+  "version" "5.1.0"
1602
+  dependencies:
1603
+    "@babel/runtime" "^7.16.0"
1604
+    "@emotion/cache" "^11.5.0"
1605
+    "prop-types" "^15.7.2"
1606
+
1607
+"@mui/system@^5.1.0":
1608
+  "integrity" "sha512-1h+YDnPGfTWZkf7lgeNV+vw6altxXGLclXLdxs9GPzEMNYXX7xveUjmndYpO1p/yx7GNG2gLWWkFZ1TYCeo4+Q=="
1609
+  "resolved" "https://registry.npmjs.org/@mui/system/-/system-5.1.0.tgz"
1610
+  "version" "5.1.0"
1611
+  dependencies:
1612
+    "@babel/runtime" "^7.16.0"
1613
+    "@mui/private-theming" "^5.1.0"
1614
+    "@mui/styled-engine" "^5.1.0"
1615
+    "@mui/types" "^7.1.0"
1616
+    "@mui/utils" "^5.1.0"
1617
+    "clsx" "^1.1.1"
1618
+    "csstype" "^3.0.9"
1619
+    "prop-types" "^15.7.2"
1620
+
1621
+"@mui/types@^7.1.0":
1622
+  "integrity" "sha512-Hh7ALdq/GjfIwLvqH3XftuY3bcKhupktTm+S6qRIDGOtPtRuq2L21VWzOK4p7kblirK0XgGVH5BLwa6u8z/6QQ=="
1623
+  "resolved" "https://registry.npmjs.org/@mui/types/-/types-7.1.0.tgz"
1624
+  "version" "7.1.0"
1625
+
1626
+"@mui/utils@^5.1.0":
1627
+  "integrity" "sha512-TbAa3DZBGE6xjrVsQ6e0Iw0jwgGZqPg/48aZJJWXJJjU8NU5OhBRutYhrk/kbdDRmsIArHNdpJayBSi7yETYvg=="
1628
+  "resolved" "https://registry.npmjs.org/@mui/utils/-/utils-5.1.0.tgz"
1629
+  "version" "5.1.0"
1630
+  dependencies:
1631
+    "@babel/runtime" "^7.16.0"
1632
+    "@types/prop-types" "^15.7.4"
1633
+    "@types/react-is" "^16.7.1 || ^17.0.0"
1634
+    "prop-types" "^15.7.2"
1635
+    "react-is" "^17.0.2"
1636
+
1450 1637
 "@nodelib/fs.scandir@2.1.4":
1451 1638
   "integrity" "sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA=="
1452 1639
   "resolved" "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz"
@@ -1488,7 +1675,7 @@
1488 1675
     "schema-utils" "^2.6.5"
1489 1676
     "source-map" "^0.7.3"
1490 1677
 
1491
-"@popperjs/core@^2.10.1", "@popperjs/core@^2.10.2":
1678
+"@popperjs/core@^2.10.1", "@popperjs/core@^2.10.2", "@popperjs/core@^2.4.4":
1492 1679
   "integrity" "sha512-IXf3XA7+XyN7CP9gGh/XB0UxVMlvARGEgGXLubFICsUMGz6Q+DU+i4gGlpOxTjKvXjkJDJC8YdqdKkDj9qZHEQ=="
1493 1680
   "resolved" "https://registry.npmjs.org/@popperjs/core/-/core-2.10.2.tgz"
1494 1681
   "version" "2.10.2"
@@ -1880,7 +2067,7 @@
1880 2067
   "resolved" "https://registry.npmjs.org/@types/prettier/-/prettier-2.2.1.tgz"
1881 2068
   "version" "2.2.1"
1882 2069
 
1883
-"@types/prop-types@*", "@types/prop-types@^15.7.3":
2070
+"@types/prop-types@*", "@types/prop-types@^15.7.3", "@types/prop-types@^15.7.4":
1884 2071
   "integrity" "sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ=="
1885 2072
   "resolved" "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.4.tgz"
1886 2073
   "version" "15.7.4"
@@ -1890,14 +2077,21 @@
1890 2077
   "resolved" "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz"
1891 2078
   "version" "1.5.4"
1892 2079
 
1893
-"@types/react-transition-group@^4.4.1":
2080
+"@types/react-is@^16.7.1 || ^17.0.0":
2081
+  "integrity" "sha512-aBTIWg1emtu95bLTLx0cpkxwGW3ueZv71nE2YFBpL8k/z5czEW8yYpOo8Dp+UUAFAtKwNaOsh/ioSeQnWlZcfw=="
2082
+  "resolved" "https://registry.npmjs.org/@types/react-is/-/react-is-17.0.3.tgz"
2083
+  "version" "17.0.3"
2084
+  dependencies:
2085
+    "@types/react" "*"
2086
+
2087
+"@types/react-transition-group@^4.4.1", "@types/react-transition-group@^4.4.4":
1894 2088
   "integrity" "sha512-7gAPz7anVK5xzbeQW9wFBDg7G++aPLAFY0QaSMOou9rJZpbuI58WAuJrgu+qR92l61grlnCUe7AFX8KGahAgug=="
1895 2089
   "resolved" "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.4.tgz"
1896 2090
   "version" "4.4.4"
1897 2091
   dependencies:
1898 2092
     "@types/react" "*"
1899 2093
 
1900
-"@types/react@*", "@types/react@>=16.14.8", "@types/react@>=16.9.11":
2094
+"@types/react@*", "@types/react@^16.8.6 || ^17.0.0", "@types/react@>=16.14.8", "@types/react@>=16.9.11":
1901 2095
   "integrity" "sha512-46FEGrMjc2+8XhHXILr+3+/sTe3OfzSPU9YGKILLrUYbQ1CLQC9Daqo1KzENGXAWwrFwiY0l4ZbF20gRvgpWTg=="
1902 2096
   "resolved" "https://registry.npmjs.org/@types/react/-/react-17.0.34.tgz"
1903 2097
   "version" "17.0.34"
@@ -2751,7 +2945,7 @@
2751 2945
     "@types/babel__core" "^7.0.0"
2752 2946
     "@types/babel__traverse" "^7.0.6"
2753 2947
 
2754
-"babel-plugin-macros@2.8.0":
2948
+"babel-plugin-macros@^2.6.1", "babel-plugin-macros@2.8.0":
2755 2949
   "integrity" "sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg=="
2756 2950
   "resolved" "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz"
2757 2951
   "version" "2.8.0"
@@ -3477,6 +3671,11 @@
3477 3671
     "strip-ansi" "^6.0.0"
3478 3672
     "wrap-ansi" "^6.2.0"
3479 3673
 
3674
+"clsx@^1.1.1":
3675
+  "integrity" "sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA=="
3676
+  "resolved" "https://registry.npmjs.org/clsx/-/clsx-1.1.1.tgz"
3677
+  "version" "1.1.1"
3678
+
3480 3679
 "co@^4.6.0":
3481 3680
   "integrity" "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ="
3482 3681
   "resolved" "https://registry.npmjs.org/co/-/co-4.6.0.tgz"
@@ -3665,7 +3864,7 @@
3665 3864
   "resolved" "https://registry.npmjs.org/convert-source-map/-/convert-source-map-0.3.5.tgz"
3666 3865
   "version" "0.3.5"
3667 3866
 
3668
-"convert-source-map@^1.4.0", "convert-source-map@^1.6.0", "convert-source-map@^1.7.0", "convert-source-map@1.7.0":
3867
+"convert-source-map@^1.4.0", "convert-source-map@^1.5.0", "convert-source-map@^1.6.0", "convert-source-map@^1.7.0", "convert-source-map@1.7.0":
3669 3868
   "integrity" "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA=="
3670 3869
   "resolved" "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz"
3671 3870
   "version" "1.7.0"
@@ -4052,7 +4251,7 @@
4052 4251
   dependencies:
4053 4252
     "cssom" "~0.3.6"
4054 4253
 
4055
-"csstype@^3.0.2":
4254
+"csstype@^3.0.2", "csstype@^3.0.9":
4056 4255
   "integrity" "sha512-rpw6JPxK6Rfg1zLOYCSwle2GFOOsnjmDYDaBwEcwoOg4qlsIVCN789VkBZDJAGi4T07gI4YSutR43t9Zz4Lzuw=="
4057 4256
   "resolved" "https://registry.npmjs.org/csstype/-/csstype-3.0.9.tgz"
4058 4257
   "version" "3.0.9"
@@ -4675,6 +4874,11 @@
4675 4874
   "resolved" "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz"
4676 4875
   "version" "2.0.0"
4677 4876
 
4877
+"escape-string-regexp@^4.0.0":
4878
+  "integrity" "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA=="
4879
+  "resolved" "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz"
4880
+  "version" "4.0.0"
4881
+
4678 4882
 "escodegen@^1.14.1":
4679 4883
   "integrity" "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw=="
4680 4884
   "resolved" "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz"
@@ -5244,6 +5448,11 @@
5244 5448
     "make-dir" "^3.0.2"
5245 5449
     "pkg-dir" "^4.1.0"
5246 5450
 
5451
+"find-root@^1.1.0":
5452
+  "integrity" "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng=="
5453
+  "resolved" "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz"
5454
+  "version" "1.1.0"
5455
+
5247 5456
 "find-up@^2.0.0":
5248 5457
   "integrity" "sha1-RdG35QbHF93UgndaK3eSCjwMV6c="
5249 5458
   "resolved" "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz"
@@ -5708,7 +5917,7 @@
5708 5917
     "minimalistic-assert" "^1.0.0"
5709 5918
     "minimalistic-crypto-utils" "^1.0.1"
5710 5919
 
5711
-"hoist-non-react-statics@^3.1.0":
5920
+"hoist-non-react-statics@^3.1.0", "hoist-non-react-statics@^3.3.1", "hoist-non-react-statics@^3.3.2":
5712 5921
   "integrity" "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw=="
5713 5922
   "resolved" "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz"
5714 5923
   "version" "3.3.2"
@@ -9462,10 +9671,10 @@
9462 9671
   "resolved" "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz"
9463 9672
   "version" "16.13.1"
9464 9673
 
9465
-"react-is@^17.0.1":
9466
-  "integrity" "sha512-NAnt2iGDXohE5LI7uBnLnqvLQMtzhkiAOLXTmv+qnF9Ky7xAPcX8Up/xWIhxvLVGJvuLiNc4xQLtuqDRzb4fSA=="
9467
-  "resolved" "https://registry.npmjs.org/react-is/-/react-is-17.0.1.tgz"
9468
-  "version" "17.0.1"
9674
+"react-is@^17.0.1", "react-is@^17.0.2":
9675
+  "integrity" "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w=="
9676
+  "resolved" "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz"
9677
+  "version" "17.0.2"
9469 9678
 
9470 9679
 "react-lifecycles-compat@^3.0.4":
9471 9680
   "integrity" "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA=="
@@ -9572,7 +9781,7 @@
9572 9781
   optionalDependencies:
9573 9782
     "fsevents" "^2.1.3"
9574 9783
 
9575
-"react-transition-group@^4.4.1":
9784
+"react-transition-group@^4.4.1", "react-transition-group@^4.4.2":
9576 9785
   "integrity" "sha512-/RNYfRAMlZwDSr6z4zNKV6xu53/e2BuaBbGhbyYIXTrmgu/bGHzmqOs7mJSJBHy9Ud+ApHx3QjrkKSp1pxvlFg=="
9577 9786
   "resolved" "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.2.tgz"
9578 9787
   "version" "4.4.2"
@@ -10508,6 +10717,11 @@
10508 10717
   "resolved" "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz"
10509 10718
   "version" "0.5.7"
10510 10719
 
10720
+"source-map@^0.5.7":
10721
+  "integrity" "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="
10722
+  "resolved" "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz"
10723
+  "version" "0.5.7"
10724
+
10511 10725
 "source-map@^0.6.0", "source-map@^0.6.1", "source-map@~0.6.0", "source-map@~0.6.1", "source-map@0.6.1":
10512 10726
   "integrity" "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
10513 10727
   "resolved" "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz"
@@ -10872,6 +11086,11 @@
10872 11086
     "postcss" "^7.0.0"
10873 11087
     "postcss-selector-parser" "^3.0.0"
10874 11088
 
11089
+"stylis@^4.0.10", "stylis@^4.0.3":
11090
+  "integrity" "sha512-m3k+dk7QeJw660eIKRRn3xPF6uuvHs/FFzjX3HQ5ove0qYsiygoAhwn5a3IYKaZPo5LrYD0rfVmtv1gNY1uYwg=="
11091
+  "resolved" "https://registry.npmjs.org/stylis/-/stylis-4.0.10.tgz"
11092
+  "version" "4.0.10"
11093
+
10875 11094
 "supports-color@^5.3.0":
10876 11095
   "integrity" "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow=="
10877 11096
   "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz"