Compare commits
331 Commits
Create-Con
...
master
Author | SHA1 | Date | |
---|---|---|---|
![]() |
e9e9611f80 | ||
0c054687ba | |||
3b147e50a1 | |||
![]() |
e94514ed02 | ||
![]() |
0032e51858 | ||
8d6a9ab74c | |||
07c4ae8cbd | |||
a782930d3d | |||
4c1877caa5 | |||
e9324f6c14 | |||
![]() |
9fcee44e0c | ||
![]() |
9939b1c824 | ||
00deb05850 | |||
b8849945b9 | |||
08f5ee272b | |||
35aa957b35 | |||
472e8c2ea5 | |||
f17d5f3079 | |||
![]() |
4f9b33e5b9 | ||
![]() |
753223c7a9 | ||
![]() |
28cc9b1a71 | ||
![]() |
47472868e1 | ||
![]() |
f965eaddbc | ||
![]() |
2075426ff7 | ||
![]() |
209507833e | ||
eff20ae459 | |||
dcfe260f0e | |||
1af206c360 | |||
![]() |
932d23befa | ||
![]() |
e52026cf86 | ||
033a1f31ad | |||
9c79f449c5 | |||
24652d0908 | |||
944baced6c | |||
![]() |
01a873477b | ||
![]() |
d1b17592c3 | ||
1475d2db27 | |||
1ba9dc28b5 | |||
1817946fe6 | |||
de5b6ad60c | |||
![]() |
31706ca4e8 | ||
![]() |
969749c0c0 | ||
![]() |
5667f30a92 | ||
![]() |
d77c1c6388 | ||
![]() |
bd6fbbebfd | ||
![]() |
2ffce71e74 | ||
35900bec5d | |||
![]() |
c63c19e1c7 | ||
![]() |
b5443aa033 | ||
![]() |
18d02945f3 | ||
558a1fd5a7 | |||
![]() |
bee5499816 | ||
8a2a7f0c53 | |||
15b9ed1f20 | |||
cad2174bc5 | |||
0c0a79d81d | |||
df4b4d5c32 | |||
92dddab82a | |||
93cefd9ce3 | |||
373d55a543 | |||
![]() |
8a075e926e | ||
![]() |
705ae6471f | ||
![]() |
64a6e6ab20 | ||
![]() |
3cac7c7d04 | ||
![]() |
9154b1fb96 | ||
![]() |
b390ae7a2e | ||
![]() |
3c739247d2 | ||
904730dfd9 | |||
dcda165488 | |||
49d15e538b | |||
![]() |
da389cc337 | ||
3f9a76815e | |||
c99e9217f1 | |||
4479300027 | |||
e97d3abe96 | |||
![]() |
eff1a2a04f | ||
81faa7121e | |||
bbe6bcca51 | |||
c161606e08 | |||
5550b7c241 | |||
![]() |
86073d5718 | ||
85f227f7d9 | |||
![]() |
779b091bd5 | ||
![]() |
a26faeeb02 | ||
50a42955d6 | |||
9a3e545cf0 | |||
87ad19fa1a | |||
1d5eb72826 | |||
011f1564a0 | |||
89146993c7 | |||
a9895cc6dd | |||
![]() |
5afd4ced4d | ||
![]() |
f09cddff75 | ||
![]() |
8db96d108f | ||
![]() |
a7534b589f | ||
![]() |
bd1771e234 | ||
![]() |
6cdd4ed730 | ||
![]() |
12043e9123 | ||
![]() |
5e46d6a098 | ||
![]() |
18cc0084af | ||
![]() |
43a73bc538 | ||
![]() |
4c90885d92 | ||
![]() |
f3c6b65b57 | ||
![]() |
ae0f36c21e | ||
![]() |
0e3f08dea9 | ||
![]() |
10b501869a | ||
![]() |
6e71403869 | ||
![]() |
ffb5a428a0 | ||
![]() |
0411fed55e | ||
![]() |
8aaff6ab7b | ||
![]() |
a047f1fd91 | ||
![]() |
449b05c1a0 | ||
![]() |
ccadb58979 | ||
![]() |
00ee5788a8 | ||
![]() |
f5251fd04b | ||
![]() |
0931fa8fe5 | ||
![]() |
2d2e9905d3 | ||
![]() |
956109f34a | ||
![]() |
d108e88c65 | ||
![]() |
f4e83e0cc8 | ||
![]() |
4a44157efb | ||
![]() |
57b5c229a0 | ||
![]() |
37bc27bbd6 | ||
![]() |
ea783017a7 | ||
![]() |
aaecefb462 | ||
![]() |
f49b9fee1a | ||
![]() |
b5b05cd7ae | ||
![]() |
83ff35ce4f | ||
![]() |
2581ca1d88 | ||
![]() |
94f7a3d851 | ||
![]() |
f7a5aaf90e | ||
![]() |
8a64b5f0f7 | ||
![]() |
f3ccb0523a | ||
![]() |
94d23d7b0b | ||
![]() |
4a5afdf01a | ||
![]() |
24f44b4352 | ||
![]() |
ada0f450f5 | ||
![]() |
a6d9b3e417 | ||
![]() |
96027bf91a | ||
![]() |
56747b66a9 | ||
![]() |
c34cac7cee | ||
![]() |
ace9e7498d | ||
![]() |
6d36b774b2 | ||
![]() |
21c858b519 | ||
![]() |
af62f49b27 | ||
![]() |
3511e6134b | ||
![]() |
a080bc4361 | ||
![]() |
a2f80ad94f | ||
![]() |
321bb6cc9b | ||
![]() |
d5e5fe995b | ||
![]() |
4c8cb61f77 | ||
![]() |
e151986782 | ||
![]() |
d5d5ca196a | ||
![]() |
6a255a2730 | ||
![]() |
bd3015dcf0 | ||
![]() |
28854c35b1 | ||
![]() |
040fecbcbf | ||
![]() |
3b2c3c5e9c | ||
![]() |
0c34803cfb | ||
![]() |
c319c8298b | ||
![]() |
5e3b000bd6 | ||
![]() |
b076b8ef69 | ||
![]() |
d448ac0110 | ||
![]() |
bc9fc9495d | ||
![]() |
faed5dd8dc | ||
![]() |
30f0e02a4d | ||
![]() |
cd4f5f55ca | ||
![]() |
159913fe97 | ||
![]() |
27a769277e | ||
![]() |
e0ff8095d0 | ||
![]() |
ebbb66e48a | ||
![]() |
84564a5158 | ||
![]() |
e87a920d99 | ||
![]() |
0fa8033830 | ||
![]() |
4caaa13752 | ||
![]() |
fa308f11d1 | ||
![]() |
47c4f2c113 | ||
![]() |
9376f9db09 | ||
![]() |
d53d32c5fa | ||
![]() |
1aa8f104bd | ||
![]() |
896ea45d23 | ||
![]() |
f42b505136 | ||
![]() |
118b2a8fb1 | ||
![]() |
cc36def1b5 | ||
![]() |
f8c1141e8c | ||
![]() |
87cb915f4a | ||
![]() |
b557d05718 | ||
![]() |
4247766746 | ||
![]() |
dd231a1903 | ||
![]() |
29c5ec0f3e | ||
![]() |
3421670619 | ||
![]() |
f7ce6f0a07 | ||
![]() |
d2976eb824 | ||
![]() |
8d2036207e | ||
![]() |
adf23f3b8f | ||
![]() |
c7af2deb9c | ||
![]() |
b6ba21be7d | ||
![]() |
4c44a1ba2d | ||
![]() |
fba6faecd2 | ||
![]() |
4b9ce789f7 | ||
![]() |
4cd741bbf2 | ||
![]() |
fdbc5bff53 | ||
![]() |
79f89fac3f | ||
![]() |
44de4f1195 | ||
![]() |
dec8bce3e3 | ||
![]() |
a314782acb | ||
![]() |
79f015c5b0 | ||
![]() |
d38f76c38f | ||
![]() |
2dcdfda4bf | ||
![]() |
f3b757937b | ||
![]() |
9abdabf66b | ||
![]() |
246aa98a73 | ||
![]() |
037fa4e92b | ||
![]() |
965892818e | ||
![]() |
4dd580c53f | ||
![]() |
41726d47ac | ||
![]() |
dafbb444be | ||
![]() |
977da92786 | ||
![]() |
3671d3d5bc | ||
![]() |
eb7205025c | ||
![]() |
13cbdfd46d | ||
![]() |
68cfb61a1d | ||
![]() |
e8f8777fa8 | ||
![]() |
f1cbc0bae7 | ||
![]() |
f56ae41235 | ||
![]() |
b82eb8290b | ||
![]() |
d21ed03508 | ||
![]() |
f39f7ab4cd | ||
![]() |
414e7e62d8 | ||
![]() |
fd3ef3fb9c | ||
![]() |
f082b4ce47 | ||
![]() |
02d7781ca7 | ||
![]() |
2e5e57550c | ||
![]() |
43163a19b2 | ||
![]() |
5c793cd813 | ||
![]() |
044739fd31 | ||
![]() |
218220d672 | ||
![]() |
a4a554fa69 | ||
![]() |
bf76f9b7e0 | ||
![]() |
bdb87d715a | ||
![]() |
ca39dc42bf | ||
![]() |
211b7230ab | ||
![]() |
976387fa5c | ||
![]() |
04b466d7ba | ||
![]() |
15b640a3f2 | ||
![]() |
2ee7705d5c | ||
![]() |
cbc7766962 | ||
![]() |
2913a3368a | ||
![]() |
a17af4002f | ||
![]() |
4083efda62 | ||
![]() |
3c035c1c11 | ||
![]() |
985efd9b14 | ||
![]() |
a0605f1567 | ||
![]() |
dcd8ded4ab | ||
![]() |
4d07a4f1cc | ||
![]() |
6e4de7255a | ||
![]() |
895e054e7e | ||
![]() |
245bd8e2ba | ||
![]() |
658b957b20 | ||
![]() |
60512bfae7 | ||
![]() |
0f9a33612d | ||
![]() |
a16736730f | ||
![]() |
9428ee7d06 | ||
![]() |
ac29f0c0f2 | ||
![]() |
c18cea8c89 | ||
![]() |
ab2004d7e1 | ||
![]() |
38145e0780 | ||
![]() |
e4b38c7118 | ||
![]() |
a6510e0e28 | ||
![]() |
9cdd859e76 | ||
![]() |
1bac9f26ed | ||
![]() |
f89be00751 | ||
![]() |
00c29d39d0 | ||
![]() |
c778def905 | ||
![]() |
01d5d946e8 | ||
![]() |
d6d805e3dd | ||
![]() |
b2e0a74a5f | ||
![]() |
a5ae4238ef | ||
![]() |
1c2d86cc63 | ||
![]() |
213f5bbd3d | ||
![]() |
e337cbadd6 | ||
![]() |
389ed0511d | ||
![]() |
7c1e021f1c | ||
![]() |
0ae7965809 | ||
![]() |
30b4e9f441 | ||
![]() |
f008d80b60 | ||
![]() |
124216dc49 | ||
![]() |
b3183562d1 | ||
![]() |
3d6d6ce634 | ||
![]() |
8b3779399b | ||
![]() |
2cb9acf6af | ||
![]() |
96ad8b2c8a | ||
![]() |
06bdc87056 | ||
![]() |
fefe2e990a | ||
![]() |
e82c7116bc | ||
![]() |
b42c3a44bb | ||
![]() |
c5c65d84dc | ||
![]() |
14d034211a | ||
![]() |
8f1b1d8c33 | ||
![]() |
1a42b0321d | ||
![]() |
a0518a50c5 | ||
![]() |
14d78e63d3 | ||
![]() |
c434367a4c | ||
![]() |
e6c1944832 | ||
![]() |
61746f522f | ||
![]() |
d9ffbf1567 | ||
![]() |
34696f13f9 | ||
![]() |
caee3568c8 | ||
![]() |
03b58983e1 | ||
![]() |
40a8a3ab44 | ||
![]() |
641c6d60e5 | ||
![]() |
6f9a740a78 | ||
![]() |
80eb32119a | ||
![]() |
78f4e3c196 | ||
![]() |
e3300045e6 | ||
![]() |
2b05293c93 | ||
![]() |
af841bb24c | ||
![]() |
3d22c69c7a | ||
![]() |
faeb9330a4 | ||
![]() |
cdd842a734 | ||
![]() |
a729078328 | ||
![]() |
6677695b78 | ||
![]() |
5777ee550d | ||
![]() |
596fdd9d71 | ||
![]() |
2395b1e2d8 | ||
![]() |
5fe9f484d3 | ||
![]() |
a2a47d7f14 | ||
![]() |
d281f96a40 | ||
![]() |
f799a33b17 | ||
![]() |
a98651a08e | ||
![]() |
4f9d08d064 |
0
.dockerignore
Normal file → Executable file
8
.env.development
Normal file → Executable file
@ -1,6 +1,6 @@
|
|||||||
REACT_APP_CMS_BASE_URL=https://cms.techpal.ru/api
|
REACT_APP_CMS_BASE_URL=http://scipaper.ru
|
||||||
REACT_APP_CMS_APP_NAME=techpal
|
REACT_APP_CMS_APP_NAME=scipaper
|
||||||
REACT_APP_OPENID_PROVIDER_URL=http://auth.techpal.ru/auth/realms/master/protocol/openid-connect/auth?client_id=techpal&response_type=code
|
REACT_APP_OPENID_PROVIDER_URL=http://auth.techpal.ru/auth/realms/master/protocol/openid-connect/auth?client_id=techpal&response_type=code
|
||||||
REACT_APP_INTEGRATOR_URL=http://integrator.techpal.ru
|
REACT_APP_INTEGRATOR_URL=http://scipaper.ru
|
||||||
REACT_APP_INTEGRATOR_API_VERSION=/api/1
|
REACT_APP_INTEGRATOR_API_VERSION=/v1
|
||||||
REACT_APP_GRAPHQL_URL=/graphql
|
REACT_APP_GRAPHQL_URL=/graphql
|
||||||
|
12
.env.production
Normal file → Executable file
@ -1,6 +1,6 @@
|
|||||||
REACT_APP_CMS_BASE_URL=EXT_CMS_BASE_URL
|
REACT_APP_CMS_BASE_URL=http://scipaper.ru
|
||||||
REACT_APP_CMS_APP_NAME=EXT_CMS_APP_NAME
|
REACT_APP_CMS_APP_NAME=scipaper
|
||||||
REACT_APP_OPENID_PROVIDER_URL=EXT_OPENID_PROVIDER_URL
|
REACT_APP_OPENID_PROVIDER_URL=http://auth.techpal.ru/auth/realms/master/protocol/openid-connect/auth?client_id=techpal&response_type=code
|
||||||
REACT_APP_INTEGRATOR_URL=EXT_INTEGRATOR_URL
|
REACT_APP_INTEGRATOR_URL=http://scipaper.ru
|
||||||
REACT_APP_INTEGRATOR_API_VERSION=EXT_INTEGRATOR_API_VERSION
|
REACT_APP_INTEGRATOR_API_VERSION=/v1
|
||||||
REACT_APP_GRAPHQL_URL=EXT_GRAPHQL_URL
|
REACT_APP_GRAPHQL_URL=/graphql
|
||||||
|
0
.gitignore
vendored
Normal file → Executable file
134
.storybook/index.css
Executable file
@ -0,0 +1,134 @@
|
|||||||
|
@tailwind base;
|
||||||
|
@tailwind components;
|
||||||
|
@tailwind utilities;
|
||||||
|
|
||||||
|
@layer base {
|
||||||
|
@font-face {
|
||||||
|
font-family: "Poppins";
|
||||||
|
src: url("assets/fonts/Poppins-Bold.eot");
|
||||||
|
src: url("assets/fonts/Poppins-Bold.eot?#iefix") format("embedded-opentype"),
|
||||||
|
url("assets/fonts/Poppins-Bold.woff2") format("woff2"),
|
||||||
|
url("assets/fonts/Poppins-Bold.ttf") format("truetype");
|
||||||
|
font-weight: 700;
|
||||||
|
font-style: normal;
|
||||||
|
font-display: swap;
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: "Poppins";
|
||||||
|
src: url("assets/fonts/Poppins-Medium.eot");
|
||||||
|
src: url("assets/fonts/Poppins-Medium.eot?#iefix") format("embedded-opentype"),
|
||||||
|
url("assets/fonts/Poppins-Medium.woff2") format("woff2"),
|
||||||
|
url("assets/fonts/Poppins-Medium.ttf") format("truetype");
|
||||||
|
font-weight: 500;
|
||||||
|
font-style: normal;
|
||||||
|
font-display: swap;
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: "Poppins";
|
||||||
|
src: url("assets/fonts/Poppins-Regular.eot");
|
||||||
|
src: url("assets/fonts/Poppins-Regular.eot?#iefix") format("embedded-opentype"),
|
||||||
|
url("assets/fonts/Poppins-Regular.woff2") format("woff2"),
|
||||||
|
url("assets/fonts/Poppins-Regular.ttf") format("truetype");
|
||||||
|
font-weight: normal;
|
||||||
|
font-style: normal;
|
||||||
|
font-display: swap;
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: "Poppins";
|
||||||
|
src: url("assets/fonts/Poppins-Thin.eot");
|
||||||
|
src: url("assets/fonts/Poppins-Thin.eot?#iefix") format("embedded-opentype"),
|
||||||
|
url("assets/fonts/Poppins-Thin.woff2") format("woff2"),
|
||||||
|
url("assets/fonts/Poppins-Thin.ttf") format("truetype");
|
||||||
|
font-weight: 300;
|
||||||
|
font-style: normal;
|
||||||
|
font-display: swap;
|
||||||
|
}
|
||||||
|
|
||||||
|
html {
|
||||||
|
font-family: "Poppins", -apple-system, "Segoe UI", system-ui, "Roboto",
|
||||||
|
"Helvetica Neue", "Arial";
|
||||||
|
color: var(--color-text);
|
||||||
|
}
|
||||||
|
|
||||||
|
*,
|
||||||
|
::before,
|
||||||
|
::after,
|
||||||
|
.theme-dark *,
|
||||||
|
.theme-dark::before,
|
||||||
|
.theme-dark::after {
|
||||||
|
/* ------------------------------- Body color ------------------------------- */
|
||||||
|
--color-aside: #0a0e1a;
|
||||||
|
--color-footer: 10 10 10;
|
||||||
|
--color-text: rgb(38, 38, 38);
|
||||||
|
/* -------------------------------------------------------------------------- */
|
||||||
|
--color-serv: 25 29 43;
|
||||||
|
--color-serv-50: 227 230 237;
|
||||||
|
--color-serv-100: 200 205 223;
|
||||||
|
--color-serv-200: 142 152 189;
|
||||||
|
--color-serv-300: 90 104 155;
|
||||||
|
--color-serv-400: 58 67 100;
|
||||||
|
--color-serv-500: 25 29 43;
|
||||||
|
--color-serv-600: 21 24 35;
|
||||||
|
--color-serv-700: 15 17 26;
|
||||||
|
--color-serv-800: 9 11 16;
|
||||||
|
--color-serv-900: 6 7 10;
|
||||||
|
/* ---------------------------------- Blue ---------------------------------- */
|
||||||
|
--color-blue-50: 240 247 254;
|
||||||
|
--color-blue-100: 221 237 254;
|
||||||
|
--color-blue-200: 182 216 252;
|
||||||
|
--color-blue-300: 137 192 250;
|
||||||
|
--color-blue-400: 74 158 247;
|
||||||
|
--color-blue-500: 9 109 217;
|
||||||
|
--color-blue-600: 8 99 196;
|
||||||
|
--color-blue-700: 7 87 171;
|
||||||
|
--color-blue-800: 6 69 137;
|
||||||
|
--color-blue-900: 4 49 98;
|
||||||
|
/* ---------------------------------- Gray ---------------------------------- */
|
||||||
|
--color-gray-50: 250 250 250;
|
||||||
|
--color-gray-75: 240 240 240;
|
||||||
|
--color-gray-100: 235 235 235;
|
||||||
|
;
|
||||||
|
--color-gray-200: 214 214 214;
|
||||||
|
--color-gray-300: 191 191 191;
|
||||||
|
--color-gray-400: 166 166 166;
|
||||||
|
--color-gray-500: 140 140 140;
|
||||||
|
--color-gray-600: 115 115 115;
|
||||||
|
--color-gray-700: 89 89 89;
|
||||||
|
--color-gray-800: 64 64 64;
|
||||||
|
--color-gray-900: 38 38 38;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Dark theme */
|
||||||
|
@media (prefers-color-scheme: dark) {
|
||||||
|
:root {
|
||||||
|
--bg: hsl(var(--hue), 10%, 10%);
|
||||||
|
--fg: hsl(var(--hue), 10%, 90%);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@layer components {
|
||||||
|
/* Separate
|
||||||
|
======================================================================== */
|
||||||
|
|
||||||
|
.separate {
|
||||||
|
@apply flex items-center text-center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.separate::after,
|
||||||
|
.separate::before {
|
||||||
|
content: '';
|
||||||
|
@apply border-b border-gray-300 flex-1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.separate:not(:empty)::after {
|
||||||
|
@apply ml-2;
|
||||||
|
}
|
||||||
|
|
||||||
|
.separate:not(:empty)::before {
|
||||||
|
@apply mr-2;
|
||||||
|
}
|
||||||
|
}
|
0
.storybook/main.js
Normal file → Executable file
31
.storybook/main.ts
Executable file
@ -0,0 +1,31 @@
|
|||||||
|
const TsconfigPathsPlugin = require('tsconfig-paths-webpack-plugin');
|
||||||
|
const Path = require('path');
|
||||||
|
|
||||||
|
const AppSourceDir = Path.join(__dirname, '..', 'src');
|
||||||
|
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
stories: ["../src/**/*.stories.mdx", "../src/**/*.stories.@(js|jsx|ts|tsx)"],
|
||||||
|
addons: [
|
||||||
|
"@storybook/addon-links",
|
||||||
|
"@storybook/addon-essentials",
|
||||||
|
"@storybook/addon-interactions",
|
||||||
|
"@storybook/preset-create-react-app",
|
||||||
|
"storybook-addon-pseudo-states",
|
||||||
|
],
|
||||||
|
framework: "@storybook/react",
|
||||||
|
core: {
|
||||||
|
builder: "@storybook/builder-webpack5",
|
||||||
|
},
|
||||||
|
webpackFinal: async (config, { configType }) => {
|
||||||
|
config.resolve.plugins = [
|
||||||
|
...(config.resolve.plugins || []),
|
||||||
|
new TsconfigPathsPlugin({
|
||||||
|
extensions: config.resolve.extensions,
|
||||||
|
}),
|
||||||
|
];
|
||||||
|
config.resolve.alias["@assets"] = Path.resolve(__dirname, '..', 'src', 'assets')
|
||||||
|
console.log(config);
|
||||||
|
return config;
|
||||||
|
},
|
||||||
|
};
|
0
.storybook/preview.js
Normal file → Executable file
68
.storybook/preview.ts
Executable file
@ -0,0 +1,68 @@
|
|||||||
|
import "./index.css";
|
||||||
|
/**
|
||||||
|
* Read https://storybook.js.org/docs/react/configure/overview#configure-story-rendering
|
||||||
|
* for more information about the purpose of this file.
|
||||||
|
*
|
||||||
|
* Use preview.js for global code (such as CSS imports or JavaScript mocks)
|
||||||
|
* that applies to all stories. For example, `import thirdPartyCss.css`.
|
||||||
|
*
|
||||||
|
* This file can have three exports:
|
||||||
|
* - decorators - an array of global decorators
|
||||||
|
* - parameters - an object of global parameters
|
||||||
|
* - globalTypes - definition of globalTypes
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Decorators
|
||||||
|
*
|
||||||
|
* A decorator is a way to wrap a story in extra “rendering” functionality.
|
||||||
|
*
|
||||||
|
* Example:
|
||||||
|
*
|
||||||
|
* import React from 'react';
|
||||||
|
* export const decorators = [(Story) => <div style={{ margin: '3em' }}><Story/></div>];
|
||||||
|
*
|
||||||
|
* Each story throughout the library will be wrapped in a div with a margin of 3
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Parameters
|
||||||
|
*
|
||||||
|
* Most Storybook addons are configured via a parameter-based API.
|
||||||
|
* You can set global parameters in this file
|
||||||
|
*
|
||||||
|
* export const parameters = {
|
||||||
|
* backgrounds: {
|
||||||
|
* values: [
|
||||||
|
* { name: 'red', value: '#f00' },
|
||||||
|
* { name: 'green', value: '#0f0' },
|
||||||
|
* ],
|
||||||
|
* },
|
||||||
|
* };
|
||||||
|
*
|
||||||
|
* With backgrounds, you configure the list of backgrounds that every story can render in.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Global Types
|
||||||
|
*
|
||||||
|
* Global Types allow you to add your own toolbars by creating
|
||||||
|
* globalTypes with a toolbar annotation:
|
||||||
|
*
|
||||||
|
* For example:
|
||||||
|
*
|
||||||
|
* export const globalTypes = {
|
||||||
|
* theme: {
|
||||||
|
* name: 'Theme',
|
||||||
|
* description: 'Global theme for components',
|
||||||
|
* defaultValue: 'light',
|
||||||
|
* toolbar: {
|
||||||
|
* icon: 'circlehollow',
|
||||||
|
* // array of plain string values or MenuItem shape
|
||||||
|
* items: ['light', 'dark'],
|
||||||
|
* },
|
||||||
|
* },
|
||||||
|
* };
|
||||||
|
*
|
||||||
|
* Will add a new dropdown in your toolbar with options light and dark.
|
||||||
|
**/
|
27
Dockerfile
Normal file → Executable file
@ -17,22 +17,25 @@ COPY . .
|
|||||||
RUN npm run build
|
RUN npm run build
|
||||||
|
|
||||||
# Bundle static assets with nginx
|
# Bundle static assets with nginx
|
||||||
FROM nginx:1.21.6 as production
|
FROM node:16-alpine as production
|
||||||
# Copy built assets from builder
|
# Copy built assets from builder
|
||||||
COPY --from=builder /app/build /usr/share/nginx/html
|
WORKDIR /app
|
||||||
# Add nginx.config
|
COPY --from=builder /app/build .
|
||||||
COPY nginx.conf /etc/nginx/conf.d/default.conf
|
|
||||||
# Expose ports
|
# Expose ports
|
||||||
EXPOSE 80
|
EXPOSE 3000
|
||||||
|
|
||||||
COPY entrypoint.sh .
|
|
||||||
COPY .env.production .
|
COPY .env.production .
|
||||||
|
|
||||||
ENV NODE_ENV production
|
ENV NODE_ENV production
|
||||||
|
ENV USER_NAME=node_user USER_UID=2000 GROUP_NAME=node_group GROUP_UID=2000
|
||||||
|
|
||||||
# Execute script
|
RUN npm i -g serve \
|
||||||
RUN ["chmod", "+x", "./entrypoint.sh"]
|
&& deluser --remove-home node \
|
||||||
ENTRYPOINT ["./entrypoint.sh"]
|
&& addgroup --g ${GROUP_UID} -S ${GROUP_NAME} \
|
||||||
|
&& adduser -D -S -s /sbin/nologin -u ${USER_UID} -G ${GROUP_NAME} ${USER_NAME}\
|
||||||
|
&& chown -R ${USER_NAME}:${GROUP_NAME} "/app/"
|
||||||
|
|
||||||
# Start serving
|
|
||||||
CMD ["nginx", "-g", "daemon off;"]
|
USER "${USER_NAME}"
|
||||||
|
CMD serve -s .
|
2
Makefile
Normal file → Executable file
@ -1,4 +1,4 @@
|
|||||||
PROJECT_NAME=freeland-frontend
|
PROJECT_NAME=scipaper-frontend
|
||||||
|
|
||||||
setup:
|
setup:
|
||||||
npm i
|
npm i
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#!/bin/bash
|
#! /bin/bash
|
||||||
# no verbose
|
# no verbose
|
||||||
set +x
|
set +x
|
||||||
# config
|
# config
|
||||||
|
2
src/types/global.d.ts → global.d.ts
vendored
Normal file → Executable file
@ -11,3 +11,5 @@ export declare global {
|
|||||||
state: any & {idx: number}
|
state: any & {idx: number}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
declare module "svg-inline-react"
|
0
nginx.conf
Normal file → Executable file
28991
package-lock.json
generated
80
package.json
Normal file → Executable file
@ -1,32 +1,49 @@
|
|||||||
{
|
{
|
||||||
"name": "test",
|
"name": "freeland",
|
||||||
"version": "0.1.0",
|
"version": "0.1.0",
|
||||||
"private": true,
|
"private": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@headlessui/react": "^1.5.0",
|
"@fortawesome/fontawesome-svg-core": "^6.2.0",
|
||||||
"@react-keycloak/web": "^3.4.0",
|
"@fortawesome/free-brands-svg-icons": "^6.2.0",
|
||||||
"@reduxjs/toolkit": "^1.8.1",
|
"@fortawesome/free-solid-svg-icons": "^6.2.0",
|
||||||
"axios": "^0.26.1",
|
"@fortawesome/react-fontawesome": "^0.2.0",
|
||||||
|
"@headlessui/react": "^1.6.6",
|
||||||
|
"@reduxjs/toolkit": "^1.8.3",
|
||||||
|
"@types/node": "^16.11.47",
|
||||||
|
"@types/react": "^18.0.15",
|
||||||
|
"@types/react-copy-to-clipboard": "^5.0.4",
|
||||||
|
"@types/react-dom": "^18.0.6",
|
||||||
|
"@uiw/react-md-editor": "^3.18.1",
|
||||||
|
"axios": "^0.27.2",
|
||||||
"classnames": "^2.3.1",
|
"classnames": "^2.3.1",
|
||||||
"cross-env": "^7.0.3",
|
|
||||||
"formik": "^2.2.9",
|
"formik": "^2.2.9",
|
||||||
"graphql": "^16.4.0",
|
"graphql": "^16.5.0",
|
||||||
"graphql-tag": "^2.12.6",
|
"graphql-tag": "^2.12.6",
|
||||||
"i18next": "^21.6.16",
|
"i18next": "^21.8.16",
|
||||||
"i18next-browser-languagedetector": "^6.1.4",
|
"i18next-browser-languagedetector": "^6.1.4",
|
||||||
"i18next-http-backend": "^1.4.0",
|
"i18next-http-backend": "^1.4.1",
|
||||||
"jwt-decode": "^3.1.2",
|
"jwt-decode": "^3.1.2",
|
||||||
"keycloak-js": "^18.0.0",
|
|
||||||
"lodash": "^4.17.21",
|
"lodash": "^4.17.21",
|
||||||
"lodash.debounce": "^4.0.8",
|
"react": "^18.2.0",
|
||||||
"react": "^18.0.0",
|
"react-copy-to-clipboard": "^5.1.0",
|
||||||
"react-dom": "^18.0.0",
|
"react-dom": "^18.2.0",
|
||||||
"react-hotkeys": "^2.0.0",
|
"react-hotkeys": "^2.0.0",
|
||||||
"react-i18next": "^11.16.7",
|
"react-i18next": "^11.18.3",
|
||||||
"react-redux": "^7.2.8",
|
"react-loading-skeleton": "^3.1.0",
|
||||||
|
"react-lottie": "^1.2.3",
|
||||||
|
"react-markdown": "^8.0.3",
|
||||||
|
"react-redux": "^8.0.2",
|
||||||
"react-router-dom": "^6.3.0",
|
"react-router-dom": "^6.3.0",
|
||||||
"react-scripts": "5.0.0",
|
"react-scripts": "5.0.1",
|
||||||
"react-scrollbars-custom": "^4.0.27",
|
"react-scrollbars-custom": "^4.1.0",
|
||||||
|
"react-syntax-highlighter": "^15.5.0",
|
||||||
|
"remark-code-blocks": "^2.0.1",
|
||||||
|
"remark-gfm": "^3.0.1",
|
||||||
|
"storybook-addon-pseudo-states": "^1.15.1",
|
||||||
|
"swiper": "^8.3.2",
|
||||||
|
"tailwindcss": "^3.1.7",
|
||||||
|
"tsconfig-paths-webpack-plugin": "^4.0.0",
|
||||||
|
"typescript": "^4.7.4",
|
||||||
"web-vitals": "^2.1.4",
|
"web-vitals": "^2.1.4",
|
||||||
"yup": "^0.32.11"
|
"yup": "^0.32.11"
|
||||||
},
|
},
|
||||||
@ -45,6 +62,14 @@
|
|||||||
"react-app/jest"
|
"react-app/jest"
|
||||||
],
|
],
|
||||||
"overrides": [
|
"overrides": [
|
||||||
|
{
|
||||||
|
"files": [
|
||||||
|
"**/*.stories.*"
|
||||||
|
],
|
||||||
|
"rules": {
|
||||||
|
"import/no-anonymous-default-export": "off"
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"files": [
|
"files": [
|
||||||
"**/*.stories.*"
|
"**/*.stories.*"
|
||||||
@ -68,6 +93,7 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
"@babel/preset-typescript": "^7.18.6",
|
||||||
"@storybook/addon-actions": "^6.5.9",
|
"@storybook/addon-actions": "^6.5.9",
|
||||||
"@storybook/addon-essentials": "^6.5.9",
|
"@storybook/addon-essentials": "^6.5.9",
|
||||||
"@storybook/addon-interactions": "^6.5.9",
|
"@storybook/addon-interactions": "^6.5.9",
|
||||||
@ -78,23 +104,21 @@
|
|||||||
"@storybook/preset-create-react-app": "^4.1.2",
|
"@storybook/preset-create-react-app": "^4.1.2",
|
||||||
"@storybook/react": "^6.5.9",
|
"@storybook/react": "^6.5.9",
|
||||||
"@storybook/testing-library": "^0.0.13",
|
"@storybook/testing-library": "^0.0.13",
|
||||||
|
"@svgr/webpack": "^6.3.1",
|
||||||
|
"@tailwindcss/line-clamp": "^0.4.0",
|
||||||
"@testing-library/jest-dom": "^5.16.4",
|
"@testing-library/jest-dom": "^5.16.4",
|
||||||
"@testing-library/react": "^12.1.4",
|
"@testing-library/react": "^13.3.0",
|
||||||
"@testing-library/user-event": "^13.5.0",
|
"@testing-library/user-event": "^13.5.0",
|
||||||
"@types/jest": "^27.4.1",
|
"@types/jest": "^27.5.2",
|
||||||
"@types/lodash.debounce": "^4.0.6",
|
"@types/react-lottie": "^1.2.6",
|
||||||
"@types/node": "^16.11.26",
|
"@types/react-syntax-highlighter": "^15.5.5",
|
||||||
"@types/react": "^17.0.44",
|
"autoprefixer": "^10.4.8",
|
||||||
"@types/react-dom": "^17.0.15",
|
|
||||||
"@types/react-redux": "^7.1.23",
|
|
||||||
"autoprefixer": "^10.4.4",
|
|
||||||
"babel-plugin-named-exports-order": "^0.0.2",
|
"babel-plugin-named-exports-order": "^0.0.2",
|
||||||
"jest": "^28.1.3",
|
"jest": "^28.1.3",
|
||||||
"postcss": "^8.4.12",
|
"postcss": "^8.4.14",
|
||||||
"prop-types": "^15.8.1",
|
"prop-types": "^15.8.1",
|
||||||
"react-test-renderer": "^18.2.0",
|
"react-test-renderer": "^18.2.0",
|
||||||
"tailwindcss": "^3.0.23",
|
"tailwind-scrollbar": "^2.0.1",
|
||||||
"typescript": "^4.6.3",
|
|
||||||
"webpack": "^5.74.0"
|
"webpack": "^5.74.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
0
postcss.config.js
Normal file → Executable file
10
public/favicon.svg
Normal file → Executable file
@ -1,5 +1,7 @@
|
|||||||
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
|
<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
<circle cx="11" cy="16" r="8" fill="#FF0000" />
|
<path d="M14.4144 23.7511C8.27781 15.6345 1.97719 21.8024 3.62218 27.4753C7.75871 36.521 18.4462 40.5011 27.4937 36.364C30.6123 34.9384 33.2592 32.6525 35.1232 29.7747C30.3791 34.2166 21.7659 33.4741 14.4144 23.7497V23.7511Z" fill="#003A8C"/>
|
||||||
<circle cx="25" cy="21" r="3" fill="#0075FF" />
|
<path d="M19.9003 18.1624C11.4604 5.36349 1.99988 12.1819 1.99988 20.0029C1.99656 22.5922 2.55489 25.1515 3.63638 27.5043C2.51332 22.2054 8.60318 18.1213 14.273 25.7253C22.5092 36.7685 30.5857 34.8254 35.1069 29.8009C36.5583 27.5725 37.4959 25.0493 37.8517 22.414V22.4487C35.9103 28.4695 27.3438 29.4488 19.9003 18.1624Z" fill="#0050B3"/>
|
||||||
|
<path d="M25.6847 12.4357C19.4173 2.09743 11.4696 3.03149 6.09469 8.56864C3.44128 11.7879 1.99328 15.8313 1.99989 20.0028C2.56566 12.4371 11.7164 7.16932 20.0007 20.0028C27.3643 31.4243 36.5384 28.4489 37.8432 22.4812V22.4239C37.9578 21.6113 38.0065 20.7908 37.9889 19.9703V19.1522C34.8 21.434 30.6062 20.5529 25.6832 12.435L25.6847 12.4357Z" fill="#096DD9"/>
|
||||||
|
<path d="M25.7278 14.2762C31.4676 23.5022 36.416 21.142 38.0009 19.1685C37.9371 17.7894 37.714 16.4222 37.3361 15.0943C34.6607 15.1516 34.0369 14.704 31.404 10.697C27.3806 4.53122 22.3119 0.369342 13.4568 3.23302C10.5865 4.35754 8.05111 6.19659 6.09116 8.57572C12.1761 2.97705 19.6422 4.49657 25.7278 14.2762Z" fill="#40A9FF"/>
|
||||||
|
<path d="M31.0114 11.4889C33.6359 15.5037 35.2335 15.708 37.336 15.095C34.6097 5.51969 24.6358 -0.0323048 15.0593 2.69349C14.5162 2.84763 13.982 3.02747 13.4568 3.23299C21.367 0.737706 26.9774 5.32312 31.0114 11.4889Z" fill="#91D5FF"/>
|
||||||
</svg>
|
</svg>
|
||||||
|
|
Before Width: | Height: | Size: 205 B After Width: | Height: | Size: 1.6 KiB |
2
public/index.html
Normal file → Executable file
@ -24,7 +24,7 @@
|
|||||||
work correctly both with client-side routing and a non-root public URL.
|
work correctly both with client-side routing and a non-root public URL.
|
||||||
Learn how to configure a non-root public URL by running `npm run build`.
|
Learn how to configure a non-root public URL by running `npm run build`.
|
||||||
-->
|
-->
|
||||||
<title>Dashboard | Techpal</title>
|
<title>Scipaper</title>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<noscript>You need to enable JavaScript to run this app.</noscript>
|
<noscript>You need to enable JavaScript to run this app.</noscript>
|
||||||
|
121
public/locales/en/translation.json
Normal file → Executable file
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"serv": {
|
"serv": {
|
||||||
"goHome": "Home",
|
"goHome": "Home page",
|
||||||
"noSuchPath": "We don't have this page"
|
"noSuchPath": "We don't have such a page"
|
||||||
},
|
},
|
||||||
"sidemenu": {
|
"sidemenu": {
|
||||||
"dashboard": "Dashboard",
|
"dashboard": "Dashboard",
|
||||||
@ -19,45 +19,130 @@
|
|||||||
"hellousr": "Hello, {{username}}",
|
"hellousr": "Hello, {{username}}",
|
||||||
"edit": "Edit",
|
"edit": "Edit",
|
||||||
"language": "Language",
|
"language": "Language",
|
||||||
"selectLanguage": "Select language",
|
"selectLanguage": "Select a language",
|
||||||
"save": "Save",
|
"save": "Save",
|
||||||
"cancel": "Cancel",
|
"cancel": "Cancel",
|
||||||
"account": {
|
"account": {
|
||||||
"info": "Personal information",
|
"info": "Personal Information",
|
||||||
"mail": "Mail",
|
"mail": "Mail",
|
||||||
"connect": "Add account",
|
"connect": "Add Account",
|
||||||
"connectedAccounts_one": "Connected account",
|
"connectedAccounts_one": "Linked Account",
|
||||||
"connectedAccounts_other": "Connected accounts",
|
"connectedAccounts_other": "Linked Accounts",
|
||||||
"settings": "Account settings"
|
"settings": "Account Settings"
|
||||||
},
|
},
|
||||||
"security": {
|
"security": {
|
||||||
"password": {
|
"password": {
|
||||||
"caption": "Password",
|
"caption": "Password",
|
||||||
"twoFactor": "Two factor authentication (2FA)",
|
"twoFactor": "Two-factor authentication (2FA)",
|
||||||
"description": "Keep your account secure by enabling 2FA via SMS or using a temporary one-time passcode (TOTP) from an authenticator app."
|
"description": "Protect your account by enabling 2FA via SMS or using a temporary one-time password (OTP) from the authentication app."
|
||||||
},
|
},
|
||||||
"activity": {
|
"activity": {
|
||||||
"caption": "Device activity"
|
"caption": "Device activity"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"search": {
|
"search": {
|
||||||
"label": "Search for something.."
|
"label": "We will find something.."
|
||||||
},
|
},
|
||||||
"subscriptions": {
|
"subscriptions": {
|
||||||
"subscribed": "Service have been connected"
|
"subscribed": "The service is attached to the account"
|
||||||
},
|
},
|
||||||
"viewHistory": "View history",
|
"viewHistory": "View history",
|
||||||
"logOutEverywhere": "log out from all devices",
|
"logOutEverywhere": "Log out from all devices",
|
||||||
"back": "Back",
|
"back": "Back",
|
||||||
"logOut": "Log out",
|
"logOut": "Exit",
|
||||||
"failures": {
|
"failures": {
|
||||||
"subscriptions": {
|
"subscriptions": {
|
||||||
"failure": "Failed to connect service",
|
"failure": "Failed to attach the service to your account",
|
||||||
"exists": "Service have already been connected",
|
"exists": "The service was already attached to your account earlier",
|
||||||
"confirmation": "Invalid confirmation information provided"
|
"confirmation": "Invalid password"
|
||||||
},
|
},
|
||||||
"services": {
|
"services": {
|
||||||
"fork": "Failed to authenticate in service"
|
"fork": "Failed to perform authorization in the service"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"articlePage": {
|
||||||
|
"abstract": "Abstract",
|
||||||
|
"keywords": "Keywords",
|
||||||
|
"interactionButtons":{
|
||||||
|
"abstract": "Abstract",
|
||||||
|
"readFile": "Read File",
|
||||||
|
"download" : "Download",
|
||||||
|
"share" : "Share",
|
||||||
|
"cite" : "Cite",
|
||||||
|
"copied": "Copied"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
"navbar": {
|
||||||
|
"createNew": "Create New",
|
||||||
|
"about": {
|
||||||
|
"navTitle": "About",
|
||||||
|
"aboutProject": "About Scipaper",
|
||||||
|
"contacts": "Contacts",
|
||||||
|
"help": "Help"
|
||||||
|
},
|
||||||
|
"library": {
|
||||||
|
"navTitle": "My library",
|
||||||
|
"publications": "Publications",
|
||||||
|
"favorites": "Favorites",
|
||||||
|
"collections": "Collections",
|
||||||
|
"recentViewed": "History"
|
||||||
|
},
|
||||||
|
"auth": {
|
||||||
|
"signIn": "Sign In",
|
||||||
|
"signUp": "Sign Up"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"footer": {
|
||||||
|
"accountSettings": "Account Settings",
|
||||||
|
"about": "About Scipaper",
|
||||||
|
"help": "Help",
|
||||||
|
"contactUs": "Contacts",
|
||||||
|
"allRightsReserved": "All rights reserved",
|
||||||
|
"termsOfUse": "Terms of Use",
|
||||||
|
"privacyPolicy": "Privacy Policy",
|
||||||
|
"coockiesPolicy": "coockies Usage Policy",
|
||||||
|
"supportedBy": "Created"
|
||||||
|
},
|
||||||
|
"mainPage": {
|
||||||
|
"title": "Scientific Library with Free Access",
|
||||||
|
"search": "Search",
|
||||||
|
"article_one": "Articles",
|
||||||
|
"article_few": "Articles",
|
||||||
|
"article_many": "Articles",
|
||||||
|
"advancedSearch": "Advanced search",
|
||||||
|
"featuredArticles": {
|
||||||
|
"title": "Featured articles",
|
||||||
|
"descriptionPart1": "Select the category of science you are interested in",
|
||||||
|
"descriptionPart2": "Scientific category",
|
||||||
|
"categories": {
|
||||||
|
"Medical": "Medical",
|
||||||
|
"TechnicsAndTechlonogies": "Technics and Technology",
|
||||||
|
"Fundamental": "Fundamental",
|
||||||
|
"Humanitarian": "Humanitarian",
|
||||||
|
"Agricultural": "Agricultural",
|
||||||
|
"Social": "Social"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"featuredAuthors": "Featured authors",
|
||||||
|
"more": "See More ",
|
||||||
|
"showAll": "Show all"
|
||||||
|
},
|
||||||
|
"searchResults": {
|
||||||
|
"title": "Search results",
|
||||||
|
"totalResults":"Total results",
|
||||||
|
"nothingFound": "Nothing found"
|
||||||
|
},
|
||||||
|
"filters": {
|
||||||
|
"authors":"Authors",
|
||||||
|
"publicationsType": "Publications Type",
|
||||||
|
"content":"Content",
|
||||||
|
"publisher":"Publisher",
|
||||||
|
"publicationTopic":"Publication Topic",
|
||||||
|
"appliedFitlers":"Applied Fitlers",
|
||||||
|
"clearAll":"Clear All",
|
||||||
|
"enterAuthorsName":"Enter Author Name",
|
||||||
|
"showAll":"Show All"
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
82
public/locales/ru/translation.json
Normal file → Executable file
@ -59,5 +59,87 @@
|
|||||||
"services": {
|
"services": {
|
||||||
"fork": "Не удалось выполнить авторизацию в сервисе"
|
"fork": "Не удалось выполнить авторизацию в сервисе"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"articlePage": {
|
||||||
|
"abstract": "Введение",
|
||||||
|
"keywords": "Ключевые слова",
|
||||||
|
"interactionButtons":{
|
||||||
|
"abstract": "Развернуть",
|
||||||
|
"readFile": "Читать",
|
||||||
|
"download" : "Скачать",
|
||||||
|
"share" : "Поделиться",
|
||||||
|
"cite" : "Цитировать",
|
||||||
|
"copied": "Скопировано"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"navbar": {
|
||||||
|
"createNew": "Создать статью",
|
||||||
|
"about": {
|
||||||
|
"navTitle": "О проекте",
|
||||||
|
"aboutProject": "О Scipaper",
|
||||||
|
"contacts": "Контакты",
|
||||||
|
"help": "Помощь"
|
||||||
|
},
|
||||||
|
"library": {
|
||||||
|
"navTitle": "Моя библиотека",
|
||||||
|
"publications": "Публикации",
|
||||||
|
"favorites": "Избранное",
|
||||||
|
"collections": "Коллекции",
|
||||||
|
"recentViewed": "История"
|
||||||
|
},
|
||||||
|
"auth": {
|
||||||
|
"signIn": "Вход",
|
||||||
|
"signUp": "Регистрация"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"footer": {
|
||||||
|
"accountSettings": "Настройки аккаунта",
|
||||||
|
"about": "О scipaper",
|
||||||
|
"help": "Помощь",
|
||||||
|
"contactUs": "Контакты",
|
||||||
|
"allRightsReserved": "Все права защищены",
|
||||||
|
"termsOfUse": "Правила использования",
|
||||||
|
"privacyPolicy": "Политика конфиденциальности",
|
||||||
|
"coockiesPolicy": "Политика использования coockies",
|
||||||
|
"supportedBy": "Создано"
|
||||||
|
},
|
||||||
|
"mainPage": {
|
||||||
|
"title": "Библиотека научных статей с бесплатным доступом",
|
||||||
|
"search": "Поиск",
|
||||||
|
"article_one": "статьи",
|
||||||
|
"article_few": "статей",
|
||||||
|
"article_many": "статей",
|
||||||
|
"advancedSearch": "Расширенный поиск",
|
||||||
|
"featuredArticles": {
|
||||||
|
"title": "Популярные статьи",
|
||||||
|
"descriptionPart1": "Выберете интересующую вас ",
|
||||||
|
"descriptionPart2": "научную категорию",
|
||||||
|
"categories": {
|
||||||
|
"Medical": "Медицина",
|
||||||
|
"TechnicsAndTechlonogies": "Техника и технологии",
|
||||||
|
"Fundamental": "Естественые",
|
||||||
|
"Humanitarian": "Гуманитарные",
|
||||||
|
"Agricultural": "Аuрокультурa",
|
||||||
|
"Social": "Социальные"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"featuredAuthors": "Популярные авторы",
|
||||||
|
"more": "Больше",
|
||||||
|
"showAll": "Показать все"
|
||||||
|
},
|
||||||
|
"searchResults": {
|
||||||
|
"title": "Результаты поиска",
|
||||||
|
"totalResults":"Всего найдено",
|
||||||
|
"nothingFound": "Ничего не найдено"
|
||||||
|
},
|
||||||
|
"filters": {
|
||||||
|
"authors":"Авторы",
|
||||||
|
"publicationsType": "Публикации",
|
||||||
|
"publisher":"Издатель",
|
||||||
|
"publicationTopic":"Тема публикации",
|
||||||
|
"appliedFitlers":"Фильтры",
|
||||||
|
"clearAll":"Очистить всё",
|
||||||
|
"enterAuthorsName":"Введите имя автора",
|
||||||
|
"showAll":"Показать все"
|
||||||
}
|
}
|
||||||
}
|
}
|
0
public/logo192.png
Normal file → Executable file
Before Width: | Height: | Size: 5.2 KiB After Width: | Height: | Size: 5.2 KiB |
0
public/logo512.png
Normal file → Executable file
Before Width: | Height: | Size: 9.4 KiB After Width: | Height: | Size: 9.4 KiB |
0
public/manifest.json
Normal file → Executable file
0
public/robots.txt
Normal file → Executable file
23
src/.storybook/main.js
Executable file
@ -0,0 +1,23 @@
|
|||||||
|
module.exports = {
|
||||||
|
stories: ['../**/*.stories.mdx', '../**/*.stories.@(js|jsx|ts|tsx)'],
|
||||||
|
/** Expose public folder to storybook as static */
|
||||||
|
staticDirs: ['../public'],
|
||||||
|
addons: [
|
||||||
|
'@storybook/addon-links',
|
||||||
|
'@storybook/addon-essentials',
|
||||||
|
'@storybook/addon-interactions',
|
||||||
|
'storybook-css-modules-preset',
|
||||||
|
{
|
||||||
|
name: '@storybook/addon-postcss',
|
||||||
|
options: {
|
||||||
|
postcssLoaderOptions: {
|
||||||
|
implementation: require('postcss'),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
framework: '@storybook/react',
|
||||||
|
core: {
|
||||||
|
builder: '@storybook/builder-webpack5',
|
||||||
|
},
|
||||||
|
};
|
3
src/.storybook/preview.js
Executable file
@ -0,0 +1,3 @@
|
|||||||
|
export const parameters = {
|
||||||
|
actions: { argTypesRegex: "^on[A-Z].*" },
|
||||||
|
}
|
0
src/App.css
Normal file → Executable file
0
src/App.test.tsx
Normal file → Executable file
6
src/App.tsx
Normal file → Executable file
@ -2,6 +2,8 @@
|
|||||||
/* Libraries */
|
/* Libraries */
|
||||||
/* -------------------------------------------------------------------------- */
|
/* -------------------------------------------------------------------------- */
|
||||||
import React from "react";
|
import React from "react";
|
||||||
|
import MainPage from "pages/MainPage";
|
||||||
|
|
||||||
/* -------------------------------------------------------------------------- */
|
/* -------------------------------------------------------------------------- */
|
||||||
/* Application root component */
|
/* Application root component */
|
||||||
/* -------------------------------------------------------------------------- */
|
/* -------------------------------------------------------------------------- */
|
||||||
@ -10,9 +12,7 @@ import React from "react";
|
|||||||
* @return {JSX.Element}
|
* @return {JSX.Element}
|
||||||
*/
|
*/
|
||||||
function App() {
|
function App() {
|
||||||
return (
|
return <MainPage />;
|
||||||
<div>Hello world!</div>
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export default App;
|
export default App;
|
||||||
|
24
src/article/controller/articleViewModel.ts
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
import type { ArticleStore } from "../domain/articleStore";
|
||||||
|
import { getArticleUseCase } from "../useCases/getArticleUseCase";
|
||||||
|
import { useCallback, useEffect } from "react";
|
||||||
|
|
||||||
|
function useArticleViewModel(store: ArticleStore) {
|
||||||
|
const _getArticle = useCallback(
|
||||||
|
(id: string) => getArticleUseCase(store.getArticle, store.setArticle, id),
|
||||||
|
[store.getArticle, store.setArticle]
|
||||||
|
);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
if (store.article != undefined) {
|
||||||
|
_getArticle(store.article.id);
|
||||||
|
}
|
||||||
|
}, [store.article?.id]);
|
||||||
|
|
||||||
|
return {
|
||||||
|
article: store.article,
|
||||||
|
shouldShowLoading: typeof store.article === "undefined" || store.isLoading,
|
||||||
|
hasError: store.hasError,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
export { useArticleViewModel };
|
36
src/article/data/articleAPIService.ts
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
import axios from "axios";
|
||||||
|
import { Article } from "../domain/articleEntity";
|
||||||
|
import { create } from "../domain/articleModel";
|
||||||
|
import { FetchArticleByIdDTO } from "./dto/fetch_article_by_id_dto";
|
||||||
|
import Failure from "core/failure";
|
||||||
|
import { integratorApiClient } from "core/httpClient";
|
||||||
|
|
||||||
|
const articleEndpoint = "/papers/"
|
||||||
|
|
||||||
|
async function getArticle(id: string): Promise<Article> {
|
||||||
|
try {
|
||||||
|
const response = await integratorApiClient.get<FetchArticleByIdDTO>(
|
||||||
|
// `https://run.mocky.io/v3/62cd4581-d864-4d46-b1d6-02b45b5d1994/${id}`
|
||||||
|
// `https://jsonplaceholder.typicode.com/posts/${id}`
|
||||||
|
// `https://run.mocky.io/v3/066be3d8-0568-439a-8b20-062deed49a97`
|
||||||
|
articleEndpoint + id
|
||||||
|
);
|
||||||
|
const dto = response.data;
|
||||||
|
return create({
|
||||||
|
id: dto.id,
|
||||||
|
topic: [dto.topic],
|
||||||
|
title: dto.title,
|
||||||
|
authors: dto.authors,
|
||||||
|
tags: dto.tags,
|
||||||
|
summary: dto.summary,
|
||||||
|
content: dto.content,
|
||||||
|
});
|
||||||
|
} catch (reason) {
|
||||||
|
if (axios.isAxiosError(reason)) {
|
||||||
|
throw Failure.fromReason(reason, "failures.services.load");
|
||||||
|
}
|
||||||
|
throw reason;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export { getArticle };
|
4
src/article/data/articleActionTypes.ts
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
export const SET_ARTICLE = "SET_ARTICLE";
|
||||||
|
export const GET_ARTICLE = "GET_ARTICLE";
|
||||||
|
export const GET_ARTICLE_SUCCESS = "GET_ARTICLE.success";
|
||||||
|
export const GET_ARTICLE_FAILURE = "GET_ARTICLE.failure";
|
23
src/article/data/articleActions.ts
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
import type { Article } from "../domain/articleEntity";
|
||||||
|
import { getArticle as getArticleAPI } from "./articleAPIService";
|
||||||
|
import * as actionTypes from "./articleActionTypes";
|
||||||
|
import { dispatchStatus } from "../../store/index";
|
||||||
|
|
||||||
|
const setArticleAction = (article: Article) => (dispatch: any) =>
|
||||||
|
dispatch({ type: actionTypes.SET_ARTICLE, article });
|
||||||
|
|
||||||
|
const getArticleAction = (id: string) => (dispatch: any) => {
|
||||||
|
dispatch({ type: actionTypes.GET_ARTICLE });
|
||||||
|
|
||||||
|
return getArticleAPI(id)
|
||||||
|
.then((article) => {
|
||||||
|
dispatchStatus(actionTypes.GET_ARTICLE, ".success", article)(dispatch);
|
||||||
|
return article;
|
||||||
|
})
|
||||||
|
.catch((reason) => {
|
||||||
|
dispatchStatus(actionTypes.GET_ARTICLE, ".failure", reason)(dispatch);
|
||||||
|
return reason;
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
export { setArticleAction, getArticleAction };
|
39
src/article/data/articleCommonStateStore.ts
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
import React, { useCallback, useState } from "react";
|
||||||
|
import { useDispatch } from "react-redux";
|
||||||
|
import { ArticleStore } from "../domain/articleStore";
|
||||||
|
import type { Article } from "../domain/articleEntity";
|
||||||
|
import { getArticle as getArticleAPI } from "./articleAPIService";
|
||||||
|
|
||||||
|
const useArticleCommonStore = (): ArticleStore => {
|
||||||
|
const [isLoading, setLoading] = useState<boolean>(false);
|
||||||
|
const [hasError, setError] = useState<boolean>(false);
|
||||||
|
const [article, setArticleState] = useState<Article | undefined>();
|
||||||
|
|
||||||
|
const dispatch = useDispatch();
|
||||||
|
|
||||||
|
const getArticle = useCallback(
|
||||||
|
async (id: string) => {
|
||||||
|
setLoading(true);
|
||||||
|
try {
|
||||||
|
const article = await getArticleAPI(id);
|
||||||
|
setArticleState(article);
|
||||||
|
setLoading(false);
|
||||||
|
return article;
|
||||||
|
} catch (error) {
|
||||||
|
setError(true);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
[dispatch]
|
||||||
|
);
|
||||||
|
|
||||||
|
return {
|
||||||
|
article: article,
|
||||||
|
isLoading,
|
||||||
|
hasError,
|
||||||
|
setArticle: setArticleState,
|
||||||
|
getArticle,
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
export { useArticleCommonStore };
|
32
src/article/data/articleReducer.ts
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
import { AnyAction } from "@reduxjs/toolkit";
|
||||||
|
import type { ArticleStore } from "../domain/articleStore";
|
||||||
|
import * as actionTypes from "./articleActionTypes";
|
||||||
|
|
||||||
|
type ArticleStoreState = Omit<ArticleStore, "getArticle" | "setArticle">;
|
||||||
|
|
||||||
|
const INITIAL_STATE: ArticleStoreState = {
|
||||||
|
article: undefined,
|
||||||
|
isLoading: false,
|
||||||
|
hasError: false,
|
||||||
|
};
|
||||||
|
|
||||||
|
const articleReducer = (
|
||||||
|
state: ArticleStoreState = INITIAL_STATE,
|
||||||
|
action: AnyAction
|
||||||
|
): ArticleStoreState => {
|
||||||
|
switch (action.type) {
|
||||||
|
case actionTypes.SET_ARTICLE:
|
||||||
|
return { ...state, article: action.article };
|
||||||
|
case actionTypes.GET_ARTICLE:
|
||||||
|
return { ...state, isLoading: true };
|
||||||
|
case actionTypes.GET_ARTICLE_SUCCESS:
|
||||||
|
return { ...state, isLoading: false, article: action.payload };
|
||||||
|
case actionTypes.GET_ARTICLE_FAILURE:
|
||||||
|
return { ...state, hasError: true, isLoading: false };
|
||||||
|
default:
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
export { articleReducer };
|
||||||
|
export type { ArticleStoreState };
|
35
src/article/data/articleStoreImplementation.ts
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
import React, { useCallback, useState } from "react";
|
||||||
|
import { useDispatch, useSelector } from "react-redux";
|
||||||
|
import { ArticleStore } from "../domain/articleStore";
|
||||||
|
import type { Article } from "../domain/articleEntity";
|
||||||
|
import type { ArticleStoreState } from "../data/articleReducer";
|
||||||
|
import { getArticleAction, setArticleAction } from "./articleActions";
|
||||||
|
import { RootState, useAppSelector } from "store";
|
||||||
|
|
||||||
|
const articleSelector = (state: RootState): ArticleStoreState => state.article;
|
||||||
|
|
||||||
|
const useArticleStore = (): ArticleStore => {
|
||||||
|
const { isLoading, article, hasError } = useAppSelector(articleSelector);
|
||||||
|
|
||||||
|
const dispatch = useDispatch();
|
||||||
|
|
||||||
|
const setArticle = useCallback(
|
||||||
|
(article: Article) => setArticleAction(article)(dispatch),
|
||||||
|
[dispatch]
|
||||||
|
);
|
||||||
|
|
||||||
|
const getArticle = useCallback(
|
||||||
|
(id: string) => getArticleAction(id)(dispatch),
|
||||||
|
[dispatch]
|
||||||
|
);
|
||||||
|
|
||||||
|
return {
|
||||||
|
article: article,
|
||||||
|
isLoading,
|
||||||
|
hasError,
|
||||||
|
setArticle,
|
||||||
|
getArticle,
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
export { useArticleStore };
|
9
src/article/data/dto/fetch_article_by_id_dto.ts
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
export interface FetchArticleByIdDTO {
|
||||||
|
id: string;
|
||||||
|
topic: string;
|
||||||
|
title: string;
|
||||||
|
authors: string[];
|
||||||
|
tags: string[];
|
||||||
|
summary: string;
|
||||||
|
content: string;
|
||||||
|
}
|
9
src/article/domain/articleEntity.ts
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
export interface Article {
|
||||||
|
id: string;
|
||||||
|
title: string;
|
||||||
|
content: string;
|
||||||
|
topic?: string[];
|
||||||
|
authors?: string[];
|
||||||
|
tags?: string[];
|
||||||
|
summary?: string;
|
||||||
|
}
|
14
src/article/domain/articleModel.ts
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
import { CreateArticleParams } from "article/useCases/params/create_article_params";
|
||||||
|
import { Article } from "./articleEntity";
|
||||||
|
|
||||||
|
const create = (props: CreateArticleParams): Article => ({
|
||||||
|
id: props.id,
|
||||||
|
topic: props.topic,
|
||||||
|
title: props.title,
|
||||||
|
authors: props.authors,
|
||||||
|
tags: props.tags,
|
||||||
|
summary: props.summary,
|
||||||
|
content: props.content,
|
||||||
|
});
|
||||||
|
|
||||||
|
export { create };
|
13
src/article/domain/articleStore.ts
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
import { Article } from './articleEntity';
|
||||||
|
interface ArticleStore {
|
||||||
|
// State
|
||||||
|
article: Article | undefined;
|
||||||
|
isLoading: boolean;
|
||||||
|
hasError: boolean;
|
||||||
|
|
||||||
|
// Actions
|
||||||
|
setArticle(article?: Article): void;
|
||||||
|
getArticle(identifier: string): Promise<Article | null>;
|
||||||
|
}
|
||||||
|
|
||||||
|
export type { ArticleStore };
|
16
src/article/useCases/getArticleUseCase.ts
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
import { Article } from "article/domain/articleEntity";
|
||||||
|
import type { ArticleStore } from "../domain/articleStore";
|
||||||
|
|
||||||
|
const getArticleUseCase = async (
|
||||||
|
getArticle: ArticleStore["getArticle"],
|
||||||
|
setArticle: ArticleStore["setArticle"],
|
||||||
|
id: Article["id"]
|
||||||
|
): Promise<Article | null> => {
|
||||||
|
const article = await getArticle(id);
|
||||||
|
if (article) {
|
||||||
|
await setArticle(article);
|
||||||
|
}
|
||||||
|
return article;
|
||||||
|
};
|
||||||
|
|
||||||
|
export { getArticleUseCase };
|
9
src/article/useCases/params/create_article_params.ts
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
export interface CreateArticleParams {
|
||||||
|
id: string;
|
||||||
|
topic: string[];
|
||||||
|
title: string;
|
||||||
|
authors: string[];
|
||||||
|
tags: string[];
|
||||||
|
summary: string;
|
||||||
|
content: string;
|
||||||
|
}
|
BIN
src/assets/fonts/Inter-Black.ttf
Executable file
BIN
src/assets/fonts/Inter-Bold.ttf
Executable file
BIN
src/assets/fonts/Inter-ExtraBold.ttf
Executable file
BIN
src/assets/fonts/Inter-ExtraLight.ttf
Executable file
BIN
src/assets/fonts/Inter-Light.ttf
Executable file
BIN
src/assets/fonts/Inter-Medium.ttf
Executable file
BIN
src/assets/fonts/Inter-Regular.ttf
Executable file
BIN
src/assets/fonts/Inter-SemiBold.ttf
Executable file
BIN
src/assets/fonts/Inter-Thin.ttf
Executable file
0
src/assets/fonts/Poppins-Bold.eot
Normal file → Executable file
0
src/assets/fonts/Poppins-Bold.ttf
Normal file → Executable file
0
src/assets/fonts/Poppins-Bold.woff2
Normal file → Executable file
0
src/assets/fonts/Poppins-Medium.eot
Normal file → Executable file
0
src/assets/fonts/Poppins-Medium.ttf
Normal file → Executable file
0
src/assets/fonts/Poppins-Medium.woff2
Normal file → Executable file
0
src/assets/fonts/Poppins-Regular.eot
Normal file → Executable file
0
src/assets/fonts/Poppins-Regular.ttf
Normal file → Executable file
0
src/assets/fonts/Poppins-Regular.woff2
Normal file → Executable file
0
src/assets/fonts/Poppins-Thin.eot
Normal file → Executable file
0
src/assets/fonts/Poppins-Thin.ttf
Normal file → Executable file
0
src/assets/fonts/Poppins-Thin.woff2
Normal file → Executable file
1
src/assets/lotties/notFoundAnimation.json
Normal file
3
src/assets/svg/agricultural.svg
Executable file
@ -0,0 +1,3 @@
|
|||||||
|
<svg viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path fill-rule="evenodd" clip-rule="evenodd" d="M16.5495 18.1523C20.0358 21.1083 21.1165 25.66 19.7396 29.9152H30.4102C31.4258 26.9366 34.4857 25.2281 37.9199 26.6722L39.1536 19.4836C39.362 18.2715 38.138 17.2497 36.8978 17.2497H30.0098V11.8372C30.0098 11.415 29.668 11.0636 29.2448 11.0442V8.24616H28.1901V11.0442C27.7767 11.0733 27.4479 11.4182 27.4479 11.834V17.2497H22.0703C23.099 12.4304 21.8978 10.7831 21.2044 5.88004C20.931 5.1773 20.3939 5.01934 19.7884 5H7.25586C6.6276 5.00645 6.19141 5.31591 5.96354 5.96063L5.11393 14.068L3.42122 16.0473C2.68229 16.8951 2.89714 16.6984 3.57747 17.7106C3.69466 17.6268 3.81185 17.543 3.93229 17.4656C7.49349 15.1576 13.1966 15.5734 16.5495 18.1523ZM29.0951 6.74397C29.1439 6.69561 29.222 6.69239 29.2741 6.74074C29.3229 6.7891 29.3262 6.86646 29.2773 6.91804C29.1829 7.01475 29.2188 7.15336 29.2513 7.28231C29.3099 7.50151 29.362 7.70137 29.0951 7.85288C29.0332 7.88834 28.9583 7.86578 28.9225 7.80775C28.8867 7.74973 28.9128 7.67236 28.9714 7.6369C29.069 7.5821 29.0397 7.46928 29.0072 7.34678C28.9583 7.15336 28.903 6.94383 29.0951 6.74397ZM28.3333 6.74397C28.3822 6.69561 28.4603 6.69239 28.5124 6.74074C28.5612 6.7891 28.5645 6.86646 28.5156 6.91804C28.4212 7.01475 28.457 7.15336 28.4896 7.28231C28.5482 7.50151 28.6003 7.70137 28.3333 7.85288C28.2715 7.88834 28.1966 7.86578 28.1608 7.80775C28.125 7.7465 28.1478 7.67236 28.2064 7.6369C28.304 7.5821 28.2747 7.46928 28.2422 7.34678C28.1934 7.15336 28.138 6.94383 28.3333 6.74397ZM14.4694 7.68203V13.6618C15.8659 13.9745 17.2461 14.4032 18.6035 14.9512C19.3132 15.2381 20.1497 14.313 20 13.5683L19.0885 9.06173C18.9388 8.31708 18.4603 7.67881 17.6921 7.67881H14.4694V7.68203ZM13.0827 13.3878V7.68203H9.63216C8.86393 7.68203 8.41146 8.32353 8.23568 9.06496L7.63021 11.6503C7.45768 12.3917 8.25846 13.0203 9.02669 13.0332C10.3939 13.0461 11.7448 13.1654 13.0827 13.3878ZM35.7585 27.2428C38.099 27.2428 40 29.1222 40 31.4432C40 33.7609 38.1022 35.6403 35.7585 35.6403C33.4147 35.6403 31.5202 33.7609 31.5202 31.4432C31.5202 29.1222 33.418 27.2428 35.7585 27.2428ZM9.05925 17.8267C14.0625 17.8267 18.1185 21.8433 18.1185 26.798C18.1185 31.7526 14.0625 35.7692 9.05925 35.7692C4.05599 35.7692 0 31.7526 0 26.798C0 21.8433 4.05599 17.8267 9.05925 17.8267ZM9.05925 21.9755C11.748 21.9755 13.929 24.1353 13.929 26.798C13.929 29.4607 11.748 31.6205 9.05925 31.6205C6.37044 31.6205 4.18945 29.4607 4.18945 26.798C4.18945 24.1353 6.37044 21.9755 9.05925 21.9755ZM35.7585 29.3124C36.9466 29.3124 37.9069 30.2666 37.9069 31.4399C37.9069 32.6166 36.9434 33.5675 35.7585 33.5675C34.5703 33.5675 33.61 32.6133 33.61 31.4399C33.61 30.2666 34.5736 29.3124 35.7585 29.3124ZM29.4564 19.8737H34.8112L34.6908 20.4862H29.3522L29.4564 19.8737ZM27.5781 23.1746H34.8112L34.6908 23.7871H27.4707L27.5781 23.1746ZM28.2454 21.5242H34.8145L34.694 22.1366H28.138L28.2454 21.5242Z" fill="#8C8C8C"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 2.9 KiB |
3
src/assets/svg/arrow-big-right.svg
Executable file
@ -0,0 +1,3 @@
|
|||||||
|
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M3 10.5C2.44772 10.5 2 10.9477 2 11.5C2 12.0523 2.44772 12.5 3 12.5V10.5ZM20.7071 12.2071C21.0976 11.8166 21.0976 11.1834 20.7071 10.7929L14.3431 4.42893C13.9526 4.03841 13.3195 4.03841 12.9289 4.42893C12.5384 4.81946 12.5384 5.45262 12.9289 5.84315L18.5858 11.5L12.9289 17.1569C12.5384 17.5474 12.5384 18.1805 12.9289 18.5711C13.3195 18.9616 13.9526 18.9616 14.3431 18.5711L20.7071 12.2071ZM3 12.5H20V10.5H3V12.5Z" stroke="none" />
|
||||||
|
</svg>
|
After Width: | Height: | Size: 513 B |
4
src/assets/svg/arrow-down.svg
Executable file
@ -0,0 +1,4 @@
|
|||||||
|
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<rect width="2.54558" height="12.7279" rx="1.27279" transform="matrix(0.707107 0.707107 0.707107 -0.707107 10.2001 16)" stroke="none" />
|
||||||
|
<rect width="2.54558" height="12.7279" rx="1.27279" transform="matrix(0.707107 -0.707107 -0.707107 -0.707107 12 17.8)" stroke="none" />
|
||||||
|
</svg>
|
After Width: | Height: | Size: 345 B |
4
src/assets/svg/arrow-left.svg
Executable file
@ -0,0 +1,4 @@
|
|||||||
|
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<rect width="2.54558" height="12.7279" rx="1.27279" transform="matrix(-0.707107 0.707107 0.707107 0.707107 8.80005 10.2001)" stroke="none" />
|
||||||
|
<rect width="2.54558" height="12.7279" rx="1.27279" transform="matrix(0.707107 0.707107 0.707107 -0.707107 7 12)" stroke="none" />
|
||||||
|
</svg>
|
After Width: | Height: | Size: 345 B |
@ -1,4 +0,0 @@
|
|||||||
<svg viewBox="0 0 8 8" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<path d="M7.35355 4.35355C7.54882 4.15829 7.54882 3.84171 7.35355 3.64645L4.17157 0.464466C3.97631 0.269204 3.65973 0.269204 3.46447 0.464466C3.2692 0.659728 3.2692 0.976311 3.46447 1.17157L6.29289 4L3.46447 6.82843C3.2692 7.02369 3.2692 7.34027 3.46447 7.53553C3.65973 7.7308 3.97631 7.7308 4.17157 7.53553L7.35355 4.35355ZM0 4.5H7V3.5H0V4.5Z" fill="white" />
|
|
||||||
</svg>
|
|
||||||
|
|
Before Width: | Height: | Size: 443 B |
6
src/assets/svg/arrow-right.svg
Normal file → Executable file
@ -1,4 +1,4 @@
|
|||||||
<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
||||||
<path d="M5 12H19" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"/>
|
<rect x="16" y="10.2001" width="2.54558" height="12.7279" rx="1.27279" transform="rotate(45 16 10.2001)" stroke="none" />
|
||||||
<path d="M12 5L19 12L12 19" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"/>
|
<rect x="17.8" y="12" width="2.54558" height="12.7279" rx="1.27279" transform="rotate(135 17.8 12)" stroke="none" />
|
||||||
</svg>
|
</svg>
|
||||||
|
Before Width: | Height: | Size: 257 B After Width: | Height: | Size: 311 B |
4
src/assets/svg/arrow-up.svg
Executable file
@ -0,0 +1,4 @@
|
|||||||
|
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<rect x="10.2001" y="8.79999" width="2.54558" height="12.7279" rx="1.27279" transform="rotate(-45 10.2001 8.79999)" stroke="none" />
|
||||||
|
<rect x="12" y="7" width="2.54558" height="12.7279" rx="1.27279" transform="rotate(45 12 7)" stroke="none" />
|
||||||
|
</svg>
|
After Width: | Height: | Size: 315 B |
@ -1,3 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" className="h-6 w-6" fill="none" viewBox="0 0 24 24" stroke="currentColor" strokeWidth="2">
|
|
||||||
<path strokeLinecap="round" strokeLinejoin="round" d="M16 12a4 4 0 10-8 0 4 4 0 008 0zm0 0v1.5a2.5 2.5 0 005 0V12a9 9 0 10-9 9m4.5-1.206a8.959 8.959 0 01-4.5 1.207" />
|
|
||||||
</svg>;
|
|
Before Width: | Height: | Size: 309 B |
7
src/assets/svg/background.svg
Executable file
@ -0,0 +1,7 @@
|
|||||||
|
<svg width="1187" height="1234" viewBox="0 0 1187 1234" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M408.998 745.256C206.829 467.159 -0.745132 678.488 53.4493 872.858C189.728 1182.79 541.828 1319.16 839.898 1177.41C942.643 1128.57 1029.84 1050.24 1091.25 951.643C934.96 1103.83 651.196 1078.4 408.998 745.208V745.256Z" fill="#F0F0F0"/>
|
||||||
|
<path d="M589.732 553.768C311.677 115.242 0.000483082 348.859 0.000483082 616.83C-0.108684 705.549 18.2856 793.237 53.9153 873.85C16.9159 692.296 217.547 552.363 404.339 812.896C675.684 1191.27 941.763 1124.69 1090.72 952.538C1138.53 876.188 1169.42 789.736 1181.14 699.443V700.63C1117.18 906.92 834.959 940.474 589.732 553.768Z" fill="#F5F5F5"/>
|
||||||
|
<path d="M780.298 357.556C573.819 3.33809 311.98 35.3415 134.904 225.06C47.4877 335.363 -0.21692 473.901 0.000741558 616.829C18.6403 357.604 320.112 177.116 593.041 616.829C835.635 1008.16 1137.87 906.216 1180.86 701.744V699.781C1184.64 671.939 1186.24 643.826 1185.66 615.715V587.685C1080.6 665.864 942.439 635.678 780.252 357.532L780.298 357.556Z" fill="#FAFAFA"/>
|
||||||
|
<path d="M781.72 420.618C970.818 736.727 1133.84 655.859 1186.06 588.242C1183.96 540.989 1176.61 494.146 1164.16 448.648C1076.01 450.611 1055.46 435.275 968.721 297.983C836.17 86.7264 669.183 -55.8716 377.451 42.2463C282.888 80.7758 199.359 143.787 134.788 225.303C335.256 33.4762 581.228 85.5393 781.72 420.618Z" fill="white"/>
|
||||||
|
<path d="M955.787 325.116C1042.25 462.675 1094.88 469.676 1164.15 448.672C1074.33 120.595 745.743 -69.6327 430.245 23.761C412.352 29.0424 394.753 35.204 377.449 42.2459C638.053 -43.2499 822.887 113.86 955.787 325.116Z" fill="white"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 1.6 KiB |
@ -1,7 +0,0 @@
|
|||||||
<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<g opacity="0.6">
|
|
||||||
<path d="M19 12H5" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" />
|
|
||||||
<path d="M12 19L5 12L12 5" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" />
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
|
Before Width: | Height: | Size: 297 B |
5
src/assets/svg/bell-notification.svg
Executable file
@ -0,0 +1,5 @@
|
|||||||
|
<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M18 8C18 6.4087 17.3679 4.88258 16.2426 3.75736C15.1174 2.63214 13.5913 2 12 2C10.4087 2 8.88258 2.63214 7.75736 3.75736C6.63214 4.88258 6 6.4087 6 8C6 15 3 17 3 17H21C21 17 18 15 18 8Z" fill="none" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||||
|
<path d="M13.73 21C13.5542 21.3031 13.3018 21.5547 12.9982 21.7295C12.6946 21.9044 12.3504 21.9965 12 21.9965C11.6496 21.9965 11.3054 21.9044 11.0018 21.7295C10.6981 21.5547 10.4458 21.3031 10.27 21" fill="none" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||||
|
<rect x="13" y="1" width="10" height="10" rx="5" stroke="white" fill="#FF4D4F" stroke-width="2"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 735 B |
7
src/assets/svg/bell.svg
Normal file → Executable file
@ -1,7 +1,4 @@
|
|||||||
<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
<g opacity="0.6">
|
<path d="M18 8C18 6.4087 17.3679 4.88258 16.2426 3.75736C15.1174 2.63214 13.5913 2 12 2C10.4087 2 8.88258 2.63214 7.75736 3.75736C6.63214 4.88258 6 6.4087 6 8C6 15 3 17 3 17H21C21 17 18 15 18 8Z" fill="none" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||||
<path d="M18 8C18 6.4087 17.3679 4.88258 16.2426 3.75736C15.1174 2.63214 13.5913 2 12 2C10.4087 2 8.88258 2.63214 7.75736 3.75736C6.63214 4.88258 6 6.4087 6 8C6 15 3 17 3 17H21C21 17 18 15 18 8Z" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" />
|
<path d="M13.73 21C13.5542 21.3031 13.3018 21.5547 12.9982 21.7295C12.6946 21.9044 12.3504 21.9965 12 21.9965C11.6496 21.9965 11.3054 21.9044 11.0018 21.7295C10.6981 21.5547 10.4458 21.3031 10.27 21" fill="none" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||||
<path d="M13.73 21C13.5542 21.3031 13.3019 21.5547 12.9982 21.7295C12.6946 21.9044 12.3504 21.9965 12 21.9965C11.6496 21.9965 11.3054 21.9044 11.0018 21.7295C10.6982 21.5547 10.4458 21.3031 10.27 21" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" />
|
|
||||||
</g>
|
|
||||||
</svg>
|
</svg>
|
||||||
|
|
Before Width: | Height: | Size: 647 B After Width: | Height: | Size: 637 B |
3
src/assets/svg/bookmark-filled.svg
Executable file
@ -0,0 +1,3 @@
|
|||||||
|
<svg fill="none" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M6 21.3242V4C6 3.44772 6.44772 3 7 3H17C17.5523 3 18 3.44771 18 4V21.3242C18 21.5563 17.7112 21.6631 17.5602 21.4869L12.7593 15.8858C12.3602 15.4202 11.6398 15.4202 11.2407 15.8858L6.43981 21.4869C6.28876 21.6631 6 21.5563 6 21.3242Z" stroke-width="2" />
|
||||||
|
</svg>
|
After Width: | Height: | Size: 347 B |
3
src/assets/svg/bookmark-outlined.svg
Executable file
@ -0,0 +1,3 @@
|
|||||||
|
<svg fill="none" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M6 21.3242V4C6 3.44772 6.44772 3 7 3H17C17.5523 3 18 3.44771 18 4V21.3242C18 21.5563 17.7112 21.6631 17.5602 21.4869L12.7593 15.8858C12.3602 15.4202 11.6398 15.4202 11.2407 15.8858L6.43981 21.4869C6.28876 21.6631 6 21.5563 6 21.3242Z" stroke-width="2" fill="none" />
|
||||||
|
</svg>
|
After Width: | Height: | Size: 359 B |
3
src/assets/svg/caret-down.svg
Executable file
@ -0,0 +1,3 @@
|
|||||||
|
<svg viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M13.1315 4.6875H2.86897C2.56116 4.6875 2.38929 5.0125 2.57991 5.23438L7.71116 11.1844C7.85804 11.3547 8.14085 11.3547 8.28929 11.1844L13.4205 5.23438C13.6112 5.0125 13.4393 4.6875 13.1315 4.6875Z" stroke="none" />
|
||||||
|
</svg>
|
After Width: | Height: | Size: 306 B |
3
src/assets/svg/caret-left.svg
Executable file
@ -0,0 +1,3 @@
|
|||||||
|
<svg viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M11.3125 13.131L11.3125 2.86855C11.3125 2.56073 10.9875 2.38886 10.7657 2.57948L4.81566 7.71073C4.64534 7.85761 4.64534 8.14042 4.81566 8.28886L10.7657 13.4201C10.9875 13.6107 11.3125 13.4389 11.3125 13.131Z" stroke="none" />
|
||||||
|
</svg>
|
After Width: | Height: | Size: 318 B |
3
src/assets/svg/caret-right.svg
Executable file
@ -0,0 +1,3 @@
|
|||||||
|
<svg viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M4.68793 2.86853L4.68793 13.131C4.68793 13.4388 5.01293 13.6107 5.2348 13.4201L11.1848 8.28884C11.3551 8.14196 11.3551 7.85915 11.1848 7.71071L5.2348 2.57946C5.01293 2.38884 4.68793 2.56071 4.68793 2.86853Z" stroke="none" />
|
||||||
|
</svg>
|
After Width: | Height: | Size: 317 B |
3
src/assets/svg/caret-up.svg
Executable file
@ -0,0 +1,3 @@
|
|||||||
|
<svg viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M13.1315 11.3121H2.86897C2.56116 11.3121 2.38929 10.9871 2.57991 10.7653L7.71116 4.81526C7.85804 4.64495 8.14085 4.64495 8.28929 4.81526L13.4205 10.7653C13.6112 10.9871 13.4393 11.3121 13.1315 11.3121Z" stroke="none" />
|
||||||
|
</svg>
|
After Width: | Height: | Size: 312 B |
6
src/assets/svg/chart.svg
Executable file
@ -0,0 +1,6 @@
|
|||||||
|
<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<rect x="5" y="12" width="2" height="8" rx="1" stroke="none" />
|
||||||
|
<rect x="9" y="6" width="2" height="14" rx="1" stroke="none" />
|
||||||
|
<rect x="13" y="8" width="2" height="12" rx="1" stroke="none" />
|
||||||
|
<rect x="17" y="4" width="2" height="16" rx="1" stroke="none" />
|
||||||
|
</svg>
|
After Width: | Height: | Size: 345 B |
@ -1,5 +0,0 @@
|
|||||||
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 405.272 405.272" style="enable-background:new 0 0 405.272 405.272;" xml:space="preserve">
|
|
||||||
<path d="M393.401,124.425L179.603,338.208c-15.832,15.835-41.514,15.835-57.361,0L11.878,227.836
|
|
||||||
c-15.838-15.835-15.838-41.52,0-57.358c15.841-15.841,41.521-15.841,57.355-0.006l81.698,81.699L336.037,67.064
|
|
||||||
c15.841-15.841,41.523-15.829,57.358,0C409.23,82.902,409.23,108.578,393.401,124.425z" />
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 523 B |
6
src/assets/svg/chevrones-left.svg
Executable file
@ -0,0 +1,6 @@
|
|||||||
|
<svg fill="none" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<rect width="2.54558" height="12.7279" rx="1.27279" transform="matrix(-0.707107 0.707107 0.707107 0.707107 12.8 10.2001)" stroke="none" />
|
||||||
|
<rect width="2.54558" height="12.7279" rx="1.27279" transform="matrix(0.707107 0.707107 0.707107 -0.707107 11 12)" stroke="none" />
|
||||||
|
<rect width="2.54558" height="12.7279" rx="1.27279" transform="matrix(-0.707107 0.707107 0.707107 0.707107 3.79999 10.2001)" stroke="none"/>
|
||||||
|
<rect width="2.54558" height="12.7279" rx="1.27279" transform="matrix(0.707107 0.707107 0.707107 -0.707107 2 12)" stroke="none" />
|
||||||
|
</svg>
|
After Width: | Height: | Size: 645 B |
6
src/assets/svg/chevrones-right.svg
Executable file
@ -0,0 +1,6 @@
|
|||||||
|
<svg viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<rect width="2" height="10" rx="1" transform="matrix(0.707107 -0.707107 -0.707107 -0.707107 13.8284 9.41425)" stroke="none" />
|
||||||
|
<rect width="2" height="10" rx="1" transform="matrix(-0.707107 -0.707107 -0.707107 0.707107 15.2426 8.00006)" stroke="none" />
|
||||||
|
<rect width="2" height="10" rx="1" transform="matrix(0.707107 -0.707107 -0.707107 -0.707107 7.82843 9.41425)" stroke="none" />
|
||||||
|
<rect width="2" height="10" rx="1" transform="matrix(-0.707107 -0.707107 -0.707107 0.707107 9.24265 8.00006)" stroke="none" />
|
||||||
|
</svg>
|
After Width: | Height: | Size: 594 B |
@ -1,3 +0,0 @@
|
|||||||
<svg width="26" height="26" viewBox="0 0 26 26" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<path d="M13.0002 8.19995C11.7272 8.19995 10.5063 8.70566 9.60608 9.60584C8.70591 10.506 8.20019 11.7269 8.20019 13C8.20019 14.273 8.70591 15.4939 9.60608 16.3941C10.5063 17.2942 11.7272 17.7999 13.0002 17.7999C14.2732 17.7999 15.4941 17.2942 16.3943 16.3941C17.2945 15.4939 17.8002 14.273 17.8002 13C17.8002 11.7269 17.2945 10.506 16.3943 9.60584C15.4941 8.70566 14.2732 8.19995 13.0002 8.19995ZM9.80019 13C9.80019 12.1513 10.1373 11.3373 10.7375 10.7372C11.3376 10.1371 12.1515 9.79995 13.0002 9.79995C13.8489 9.79995 14.6628 10.1371 15.2629 10.7372C15.8631 11.3373 16.2002 12.1513 16.2002 13C16.2002 13.8486 15.8631 14.6626 15.2629 15.2627C14.6628 15.8628 13.8489 16.2 13.0002 16.2C12.1515 16.2 11.3376 15.8628 10.7375 15.2627C10.1373 14.6626 9.80019 13.8486 9.80019 13ZM9.00019 0.199951C9.21237 0.199951 9.41585 0.284237 9.56588 0.434266C9.71591 0.584295 9.80019 0.787778 9.80019 0.999951V3.39995H12.2002V0.999951C12.2002 0.787778 12.2845 0.584295 12.4345 0.434266C12.5845 0.284237 12.788 0.199951 13.0002 0.199951C13.2124 0.199951 13.4159 0.284237 13.5659 0.434266C13.7159 0.584295 13.8002 0.787778 13.8002 0.999951V3.39995H16.2002V0.999951C16.2002 0.787778 16.2845 0.584295 16.4345 0.434266C16.5845 0.284237 16.788 0.199951 17.0002 0.199951C17.2124 0.199951 17.4159 0.284237 17.5659 0.434266C17.7159 0.584295 17.8002 0.787778 17.8002 0.999951V3.39995H18.6002C19.6611 3.39995 20.6785 3.82138 21.4286 4.57152C22.1788 5.32167 22.6002 6.33908 22.6002 7.39995V8.19995H25.0002C25.2124 8.19995 25.4159 8.28424 25.5659 8.43427C25.7159 8.58429 25.8002 8.78778 25.8002 8.99995C25.8002 9.21212 25.7159 9.41561 25.5659 9.56564C25.4159 9.71566 25.2124 9.79995 25.0002 9.79995H22.6002V12.2H25.0002C25.2124 12.2 25.4159 12.2842 25.5659 12.4343C25.7159 12.5843 25.8002 12.7878 25.8002 13C25.8002 13.2121 25.7159 13.4156 25.5659 13.5656C25.4159 13.7157 25.2124 13.8 25.0002 13.8H22.6002V16.2H25.0002C25.2124 16.2 25.4159 16.2842 25.5659 16.4343C25.7159 16.5843 25.8002 16.7878 25.8002 17C25.8002 17.2121 25.7159 17.4156 25.5659 17.5656C25.4159 17.7157 25.2124 17.7999 25.0002 17.7999H22.6002V18.6C22.6002 19.6608 22.1788 20.6782 21.4286 21.4284C20.6785 22.1785 19.6611 22.5999 18.6002 22.5999H17.8002V25C17.8002 25.2121 17.7159 25.4156 17.5659 25.5656C17.4159 25.7157 17.2124 25.7999 17.0002 25.7999C16.788 25.7999 16.5845 25.7157 16.4345 25.5656C16.2845 25.4156 16.2002 25.2121 16.2002 25V22.5999H13.8002V25C13.8002 25.2121 13.7159 25.4156 13.5659 25.5656C13.4159 25.7157 13.2124 25.7999 13.0002 25.7999C12.788 25.7999 12.5845 25.7157 12.4345 25.5656C12.2845 25.4156 12.2002 25.2121 12.2002 25V22.5999H9.80019V25C9.80019 25.2121 9.71591 25.4156 9.56588 25.5656C9.41585 25.7157 9.21237 25.7999 9.00019 25.7999C8.78802 25.7999 8.58454 25.7157 8.43451 25.5656C8.28448 25.4156 8.20019 25.2121 8.20019 25V22.5999H7.4002C6.33933 22.5999 5.32191 22.1785 4.57177 21.4284C3.82162 20.6782 3.4002 19.6608 3.4002 18.6V17.7999H1.0002C0.788022 17.7999 0.584539 17.7157 0.43451 17.5656C0.284481 17.4156 0.200195 17.2121 0.200195 17C0.200195 16.7878 0.284481 16.5843 0.43451 16.4343C0.584539 16.2842 0.788022 16.2 1.0002 16.2H3.4002V13.8H1.0002C0.788022 13.8 0.584539 13.7157 0.43451 13.5656C0.284481 13.4156 0.200195 13.2121 0.200195 13C0.200195 12.7878 0.284481 12.5843 0.43451 12.4343C0.584539 12.2842 0.788022 12.2 1.0002 12.2H3.4002V9.79995H1.0002C0.788022 9.79995 0.584539 9.71566 0.43451 9.56564C0.284481 9.41561 0.200195 9.21212 0.200195 8.99995C0.200195 8.78778 0.284481 8.58429 0.43451 8.43427C0.584539 8.28424 0.788022 8.19995 1.0002 8.19995H3.4002V7.39995C3.4002 6.33908 3.82162 5.32167 4.57177 4.57152C5.32191 3.82138 6.33933 3.39995 7.4002 3.39995H8.20019V0.999951C8.20019 0.787778 8.28448 0.584295 8.43451 0.434266C8.58454 0.284237 8.78802 0.199951 9.00019 0.199951ZM21.0002 7.39995C21.0002 6.76343 20.7473 6.15298 20.2973 5.70289C19.8472 5.25281 19.2367 4.99995 18.6002 4.99995H7.4002C6.76368 4.99995 6.15323 5.25281 5.70314 5.70289C5.25305 6.15298 5.0002 6.76343 5.0002 7.39995V18.6C5.0002 19.2365 5.25305 19.8469 5.70314 20.297C6.15323 20.7471 6.76368 21 7.4002 21H18.6002C19.2367 21 19.8472 20.7471 20.2973 20.297C20.7473 19.8469 21.0002 19.2365 21.0002 18.6V7.39995Z" fill="white"/>
|
|
||||||
</svg>;
|
|
Before Width: | Height: | Size: 4.2 KiB |
@ -1,17 +0,0 @@
|
|||||||
<svg viewBox="0 0 45 45" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<g fill="none" fill-rule="evenodd" transform="translate(1 1)" stroke-width="2">
|
|
||||||
<circle cx="22" cy="22" r="6" stroke-opacity="0">
|
|
||||||
<animate attributeName="r" begin="1.5s" dur="3s" values="6;22" calcMode="linear" repeatCount="indefinite" />
|
|
||||||
<animate attributeName="stroke-opacity" begin="1.5s" dur="3s" values="1;0" calcMode="linear" repeatCount="indefinite" />
|
|
||||||
<animate attributeName="stroke-width" begin="1.5s" dur="3s" values="2;0" calcMode="linear" repeatCount="indefinite" />
|
|
||||||
</circle>
|
|
||||||
<circle cx="22" cy="22" r="6" stroke-opacity="0">
|
|
||||||
<animate attributeName="r" begin="3s" dur="3s" values="6;22" calcMode="linear" repeatCount="indefinite" />
|
|
||||||
<animate attributeName="stroke-opacity" begin="3s" dur="3s" values="1;0" calcMode="linear" repeatCount="indefinite" />
|
|
||||||
<animate attributeName="stroke-width" begin="3s" dur="3s" values="2;0" calcMode="linear" repeatCount="indefinite" />
|
|
||||||
</circle>
|
|
||||||
<circle cx="22" cy="22" r="8">
|
|
||||||
<animate attributeName="r" begin="0s" dur="1.5s" values="6;1;2;3;4;5;6" calcMode="linear" repeatCount="indefinite" />
|
|
||||||
</circle>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 1.2 KiB |
3
src/assets/svg/circle.svg
Executable file
@ -0,0 +1,3 @@
|
|||||||
|
<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<rect x="3" y="3" width="18" height="18" rx="9" stroke="none" />
|
||||||
|
</svg>
|
After Width: | Height: | Size: 148 B |
9
src/assets/svg/cite.svg
Executable file
@ -0,0 +1,9 @@
|
|||||||
|
<svg fill="none" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path fill="none" d="M19 12V4C19 2.89543 18.1046 2 17 2H5C3.89543 2 3 2.89543 3 4V20C3 21.1046 3.89543 22 5 22H8" stroke-width="2" stroke-linecap="round"/>
|
||||||
|
<path fill="none" d="M7 6H15" stroke-width="2" stroke-linecap="round"/>
|
||||||
|
<path fill="none" d="M7 10H11" stroke-width="2" stroke-linecap="round"/>
|
||||||
|
<path d="M11.5 19.5H15C15.2761 19.5 15.5 19.7239 15.5 20V22C15.5 22.2761 15.2761 22.5 15 22.5H12C11.7239 22.5 11.5 22.2761 11.5 22V19.5Z"/>
|
||||||
|
<path fill="none" d="M12 20V18C12 16.8954 12.8954 16 14 16L15 16" stroke-width="2" stroke-linecap="round"/>
|
||||||
|
<path d="M17.5 19.5H21C21.2761 19.5 21.5 19.7239 21.5 20V22C21.5 22.2761 21.2761 22.5 21 22.5H18C17.7239 22.5 17.5 22.2761 17.5 22V19.5Z"/>
|
||||||
|
<path fill="none" d="M18 20V18C18 16.8954 18.8954 16 20 16L21 16" stroke-width="2" stroke-linecap="round"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 915 B |
@ -1,7 +0,0 @@
|
|||||||
<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<g opacity="0.6">
|
|
||||||
<path d="M12 15C13.6569 15 15 13.6569 15 12C15 10.3431 13.6569 9 12 9C10.3431 9 9 10.3431 9 12C9 13.6569 10.3431 15 12 15Z" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" />
|
|
||||||
<path d="M19.4 15C19.2669 15.3016 19.2272 15.6362 19.286 15.9606C19.3448 16.285 19.4995 16.5843 19.73 16.82L19.79 16.88C19.976 17.0657 20.1235 17.2863 20.2241 17.5291C20.3248 17.7719 20.3766 18.0322 20.3766 18.295C20.3766 18.5578 20.3248 18.8181 20.2241 19.0609C20.1235 19.3037 19.976 19.5243 19.79 19.71C19.6043 19.896 19.3837 20.0435 19.1409 20.1441C18.8981 20.2448 18.6378 20.2966 18.375 20.2966C18.1122 20.2966 17.8519 20.2448 17.6091 20.1441C17.3663 20.0435 17.1457 19.896 16.96 19.71L16.9 19.65C16.6643 19.4195 16.365 19.2648 16.0406 19.206C15.7162 19.1472 15.3816 19.1869 15.08 19.32C14.7842 19.4468 14.532 19.6572 14.3543 19.9255C14.1766 20.1938 14.0813 20.5082 14.08 20.83V21C14.08 21.5304 13.8693 22.0391 13.4942 22.4142C13.1191 22.7893 12.6104 23 12.08 23C11.5496 23 11.0409 22.7893 10.6658 22.4142C10.2907 22.0391 10.08 21.5304 10.08 21V20.91C10.0723 20.579 9.96512 20.258 9.77251 19.9887C9.5799 19.7194 9.31074 19.5143 9 19.4C8.69838 19.2669 8.36381 19.2272 8.03941 19.286C7.71502 19.3448 7.41568 19.4995 7.18 19.73L7.12 19.79C6.93425 19.976 6.71368 20.1235 6.47088 20.2241C6.22808 20.3248 5.96783 20.3766 5.705 20.3766C5.44217 20.3766 5.18192 20.3248 4.93912 20.2241C4.69632 20.1235 4.47575 19.976 4.29 19.79C4.10405 19.6043 3.95653 19.3837 3.85588 19.1409C3.75523 18.8981 3.70343 18.6378 3.70343 18.375C3.70343 18.1122 3.75523 17.8519 3.85588 17.6091C3.95653 17.3663 4.10405 17.1457 4.29 16.96L4.35 16.9C4.58054 16.6643 4.73519 16.365 4.794 16.0406C4.85282 15.7162 4.81312 15.3816 4.68 15.08C4.55324 14.7842 4.34276 14.532 4.07447 14.3543C3.80618 14.1766 3.49179 14.0813 3.17 14.08H3C2.46957 14.08 1.96086 13.8693 1.58579 13.4942C1.21071 13.1191 1 12.6104 1 12.08C1 11.5496 1.21071 11.0409 1.58579 10.6658C1.96086 10.2907 2.46957 10.08 3 10.08H3.09C3.42099 10.0723 3.742 9.96512 4.0113 9.77251C4.28059 9.5799 4.48572 9.31074 4.6 9C4.73312 8.69838 4.77282 8.36381 4.714 8.03941C4.65519 7.71502 4.50054 7.41568 4.27 7.18L4.21 7.12C4.02405 6.93425 3.87653 6.71368 3.77588 6.47088C3.67523 6.22808 3.62343 5.96783 3.62343 5.705C3.62343 5.44217 3.67523 5.18192 3.77588 4.93912C3.87653 4.69632 4.02405 4.47575 4.21 4.29C4.39575 4.10405 4.61632 3.95653 4.85912 3.85588C5.10192 3.75523 5.36217 3.70343 5.625 3.70343C5.88783 3.70343 6.14808 3.75523 6.39088 3.85588C6.63368 3.95653 6.85425 4.10405 7.04 4.29L7.1 4.35C7.33568 4.58054 7.63502 4.73519 7.95941 4.794C8.28381 4.85282 8.61838 4.81312 8.92 4.68H9C9.29577 4.55324 9.54802 4.34276 9.72569 4.07447C9.90337 3.80618 9.99872 3.49179 10 3.17V3C10 2.46957 10.2107 1.96086 10.5858 1.58579C10.9609 1.21071 11.4696 1 12 1C12.5304 1 13.0391 1.21071 13.4142 1.58579C13.7893 1.96086 14 2.46957 14 3V3.09C14.0013 3.41179 14.0966 3.72618 14.2743 3.99447C14.452 4.26276 14.7042 4.47324 15 4.6C15.3016 4.73312 15.6362 4.77282 15.9606 4.714C16.285 4.65519 16.5843 4.50054 16.82 4.27L16.88 4.21C17.0657 4.02405 17.2863 3.87653 17.5291 3.77588C17.7719 3.67523 18.0322 3.62343 18.295 3.62343C18.5578 3.62343 18.8181 3.67523 19.0609 3.77588C19.3037 3.87653 19.5243 4.02405 19.71 4.21C19.896 4.39575 20.0435 4.61632 20.1441 4.85912C20.2448 5.10192 20.2966 5.36217 20.2966 5.625C20.2966 5.88783 20.2448 6.14808 20.1441 6.39088C20.0435 6.63368 19.896 6.85425 19.71 7.04L19.65 7.1C19.4195 7.33568 19.2648 7.63502 19.206 7.95941C19.1472 8.28381 19.1869 8.61838 19.32 8.92V9C19.4468 9.29577 19.6572 9.54802 19.9255 9.72569C20.1938 9.90337 20.5082 9.99872 20.83 10H21C21.5304 10 22.0391 10.2107 22.4142 10.5858C22.7893 10.9609 23 11.4696 23 12C23 12.5304 22.7893 13.0391 22.4142 13.4142C22.0391 13.7893 21.5304 14 21 14H20.91C20.5882 14.0013 20.2738 14.0966 20.0055 14.2743C19.7372 14.452 19.5268 14.7042 19.4 15V15Z" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" />
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
|
Before Width: | Height: | Size: 3.9 KiB |
4
src/assets/svg/copy.svg
Executable file
@ -0,0 +1,4 @@
|
|||||||
|
<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M17 8V20C17 21.1046 16.1046 22 15 22H10H5C3.89543 22 3 21.1046 3 20V8C3 6.89543 3.89543 6 5 6H15C16.1046 6 17 6.89543 17 8Z" fill="none" stroke-width="2" stroke-linecap="round"/>
|
||||||
|
<path d="M7 6V4C7 2.89543 7.89543 2 9 2H19C20.1046 2 21 2.89543 21 4V17C21 18.1046 20.1046 19 19 19H17" fill="none" stroke-width="2" stroke-linecap="round"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 430 B |
5
src/assets/svg/delete.svg
Executable file
@ -0,0 +1,5 @@
|
|||||||
|
<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path fill="none" d="M17.0689 21H6.93112C6.40648 21 5.97104 20.5946 5.93366 20.0712L5.07652 8.07125C5.03517 7.49238 5.49363 7 6.07398 7H17.926C18.5064 7 18.9648 7.49238 18.9235 8.07125L18.0663 20.0712C18.029 20.5946 17.5935 21 17.0689 21Z" stroke-width="2"/>
|
||||||
|
<path fill="none" d="M3 7H21" stroke-width="2" stroke-linecap="round"/>
|
||||||
|
<path fill="none" d="M7 7V4C7 3.44772 7.44772 3 8 3H16C16.5523 3 17 3.44772 17 4V7" stroke-width="2" stroke-linecap="round"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 542 B |
@ -1,4 +0,0 @@
|
|||||||
<svg width="16" height="28" viewBox="0 0 16 28" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<path d="M8 1.16663V26.8333" stroke="white" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"/>
|
|
||||||
<path d="M13.8333 5.83337H5.08333C4.00037 5.83337 2.96175 6.26358 2.19598 7.02936C1.43021 7.79513 1 8.83374 1 9.91671C1 10.9997 1.43021 12.0383 2.19598 12.8041C2.96175 13.5698 4.00037 14 5.08333 14H10.9167C11.9996 14 13.0382 14.4302 13.804 15.196C14.5698 15.9618 15 17.0004 15 18.0834C15 19.1663 14.5698 20.205 13.804 20.9707C13.0382 21.7365 11.9996 22.1667 10.9167 22.1667H1" stroke="white" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"/>
|
|
||||||
</svg>;
|
|
Before Width: | Height: | Size: 670 B |
5
src/assets/svg/download.svg
Executable file
@ -0,0 +1,5 @@
|
|||||||
|
<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path fill="none" d="M4 12V18C4 19.1046 4.89543 20 6 20H18C19.1046 20 20 19.1046 20 18V12" stroke-width="2" stroke-linecap="round"/>
|
||||||
|
<path fill="none" d="M12 4L12 13" stroke-width="2" stroke-linecap="round"/>
|
||||||
|
<path d="M8.36682 12.6402C7.82405 11.9889 8.2872 11 9.13504 11H14.865C15.7128 11 16.176 11.9889 15.6332 12.6402L12.7682 16.0781C12.3684 16.5579 11.6316 16.5579 11.2318 16.0781L8.36682 12.6402Z"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 490 B |
@ -1,6 +0,0 @@
|
|||||||
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<rect x="0" fill="none" width="24" height="24" />
|
|
||||||
<g>
|
|
||||||
<path d="M7 10l5 5 5-5" />
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 163 B |