Compare commits

...

2514 Commits
v1 ... v4.0.0

Author SHA1 Message Date
aebfd92e09 - remove stale bot
- pin node version in dockerfile
2023-11-22 23:55:40 +01:00
fa7e2dad5f add concurrency to lint-test-build 2023-11-22 23:28:46 +01:00
64d64958f6 add engines.node to package.json 2023-11-22 23:27:53 +01:00
c0869fdb3e add packageManager key to package.json 2023-11-22 23:26:56 +01:00
04a9c988e6 implement ci action with nx cloud 2023-11-22 23:24:19 +01:00
37c17ce8f3 fix ts error on parser 2023-11-22 23:04:44 +01:00
6c7ca9472f Merge branch 'v4' of github.com:AmruthPillai/Reactive-Resume into v4 2023-11-22 22:57:37 +01:00
4dfaafc929 bump version to 4.0.0 2023-11-22 22:57:36 +01:00
afdd3d7736 Merge pull request #1557 from AmruthPillai/l10n
New Translations from Crowdin
2023-11-22 22:55:33 +01:00
c19b759237 update github actions to modify triggers 2023-11-22 22:54:36 +01:00
12505151c1 New Crowdin translations by GitHub Action 2023-11-22 21:51:35 +00:00
4687091ebd fix an assorted set of issues, more info on linear 2023-11-22 22:50:21 +01:00
4baecb22e9 fix: add logger for errors, return correct error when resume is locked 2023-11-22 22:25:54 +01:00
27758c72e3 feat: add tooltip to url-input label icon, closes RX-14 2023-11-22 22:25:30 +01:00
1580455b3f - update translations
- add mail_from env var
- update docs for swarm deployment
2023-11-22 22:05:54 +01:00
da2f4dba60 feat: implement back navigation on some of the auth flows, closes RX-13 2023-11-22 16:01:08 +01:00
bc5b4cb9ad Merge pull request #1556 from AmruthPillai/l10n
New Translations from Crowdin
2023-11-22 15:50:52 +01:00
4c66f5c503 New Crowdin translations by GitHub Action 2023-11-22 14:48:56 +00:00
cf2c8e3fe4 Merge pull request #1555 from AmruthPillai/l10n
New Translations from Crowdin
2023-11-22 15:48:25 +01:00
78c435681b fix: merge similar translation strings, closes RX-12 2023-11-22 15:47:27 +01:00
db83dabe86 New Crowdin translations by GitHub Action 2023-11-22 14:46:15 +00:00
436efe0f59 fix: RX-11 merge similar strings 2023-11-22 15:44:49 +01:00
69b99b9127 Set version of libraries to 0.0.1 2023-11-22 15:43:50 +01:00
df5a6e9151 Merge pull request #1554 from AmruthPillai/l10n
New Translations from Crowdin
2023-11-22 11:00:13 +01:00
bd04dc9b1e New Crowdin translations by GitHub Action 2023-11-22 08:09:42 +00:00
dfb3ef60dd - add docker-swarm deployment example
- update dependencies
2023-11-22 09:08:23 +01:00
55e94ca792 Merge pull request #1553 from AmruthPillai/l10n
New Translations from Crowdin
2023-11-21 15:20:33 +01:00
1b0e9f4b0c New Crowdin translations by GitHub Action 2023-11-21 14:11:50 +00:00
23766ee007 Merge pull request #1552 from AmruthPillai/l10n
New Translations from Crowdin
2023-11-21 15:10:22 +01:00
7258259cfd New Crowdin translations by GitHub Action 2023-11-21 13:41:38 +00:00
8c621f0028 Merge pull request #1551 from AmruthPillai/l10n
New Translations from Crowdin
2023-11-21 14:40:19 +01:00
d109dcca87 New Crowdin translations by GitHub Action 2023-11-21 12:51:24 +00:00
0846e04ea4 Merge pull request #1550 from AmruthPillai/l10n
New Translations from Crowdin
2023-11-21 13:49:56 +01:00
d9abcbadac New Crowdin translations by GitHub Action 2023-11-21 12:47:30 +00:00
2a3ae68948 implement button to download PDF from a public resume page 2023-11-21 13:45:39 +01:00
422865b3ad - update bug-report template
- update dependencies
2023-11-21 12:42:58 +01:00
32a1a685cc add another "\n" to pull request template of sync crowdin action 2023-11-21 10:18:45 +01:00
cfd161f080 Merge pull request #1549 from AmruthPillai/l10n
New Translations from Crowdin
2023-11-21 09:50:11 +01:00
0dcf229e19 New Crowdin translations by GitHub Action 2023-11-21 08:45:58 +00:00
1825fc3283 - implement disable_email_auth env var
- add sync crowdin translations github action
2023-11-21 09:44:37 +01:00
635f743e56 Merge pull request #1548 from otterDeveloper/v4-oauth-env-docs
[v4]docs: Add example of oauth callback url
2023-11-20 08:32:10 +01:00
16cb8c02ed docs: show example of oauth callback url 2023-11-19 15:24:24 -06:00
f9d965787d - fix pikachu template alignment
- update sample resume
2023-11-19 10:45:00 +01:00
55d81f4771 revert lingui changes 2023-11-19 10:35:12 +01:00
545dffa351 fix dockerfile 2023-11-19 10:22:19 +01:00
7c507052fd replace lingui.config.ts with .linguirc 2023-11-19 10:15:14 +01:00
bb28de7571 fix sidebar padding on chikorita 2023-11-19 10:10:14 +01:00
8b217dfcfa - upgrade react-resizable-panels to latest version
- update translations
- remove cypress
- add await to all return blocks
2023-11-19 09:52:55 +01:00
9c4db2956b update README.md 2023-11-17 14:14:14 +01:00
626c131f7d - Add templatesCount variable to FeaturesSection
component
2023-11-17 14:01:28 +01:00
fe9c19fc4e add "notranslate" tag, handle default locale fallback, fix certifications id in metadata 2023-11-17 13:28:58 +01:00
33bcadd457 sort package.json 2023-11-17 09:02:38 +01:00
9bf125e024 update i18n messages, remove pseudo locale 2023-11-17 08:58:27 +01:00
78c06abbd4 update default layout 2023-11-17 08:44:53 +01:00
34247f13b6 design nosepass template, add tests, add template previews 2023-11-17 08:31:12 +01:00
0b4cb71320 export port 3000 on dockerfile 2023-11-15 16:44:27 +01:00
8171e90a6c switch from sessionStorage to localStorage 2023-11-15 06:34:17 +01:00
f7a21df042 bump version 2023-11-14 21:55:47 +01:00
72852f90e2 pin browserless/chrome version as latest it too unstable 2023-11-14 21:53:10 +01:00
044ef8bdb5 use npm run start instead of node as CMD 2023-11-14 20:15:12 +01:00
07421a5064 empty commit 2023-11-14 19:15:29 +01:00
1a32f1bc26 switch from pnpm to npm 2023-11-14 19:11:17 +01:00
02fdb8c85b switch from pnpm to npm 2023-11-14 19:07:56 +01:00
8ae9215309 switch from pnpm to npm 2023-11-14 19:05:24 +01:00
277bb2a70b fix(ci): modify prisma location 2023-11-14 16:37:23 +01:00
457aed5f46 fix(printer): increase timeout to 15s 2023-11-14 16:06:16 +01:00
36b1930c0d fix: remove crowdin_distribution_hash env 2023-11-14 14:00:27 +01:00
f24bbe7631 refactor: 🔊 crowdin cli test run, add/remove translations 2023-11-14 13:58:39 +01:00
3fb8e06f15 fix(i18n): t macro usage 2023-11-14 13:27:35 +01:00
f49439f80c Merge pull request #1541 from AmruthPillai/l10n
New Crowdin updates
2023-11-14 13:25:14 +01:00
3fbb473ecb New translations messages.po (Chinese Traditional) 2023-11-14 13:23:20 +01:00
f863c7d28d New translations messages.po (Chinese Simplified) 2023-11-14 13:23:19 +01:00
d7c5cf51e6 New translations messages.po (Ukrainian) 2023-11-14 13:23:17 +01:00
a11e1fe339 New translations messages.po (Turkish) 2023-11-14 13:23:16 +01:00
c9d469d973 New translations messages.po (Swedish) 2023-11-14 13:23:14 +01:00
9f36b19e20 New translations messages.po (Serbian (Cyrillic)) 2023-11-14 13:23:13 +01:00
b6d77bae17 New translations messages.po (Russian) 2023-11-14 13:23:12 +01:00
ec4cf23c52 New translations messages.po (Portuguese) 2023-11-14 13:23:10 +01:00
46c585f325 New translations messages.po (Polish) 2023-11-14 13:23:09 +01:00
cd63244289 New translations messages.po (Norwegian) 2023-11-14 13:23:08 +01:00
204e7d0015 New translations messages.po (Dutch) 2023-11-14 13:23:07 +01:00
6b136608f7 New translations messages.po (Lithuanian) 2023-11-14 13:23:06 +01:00
f73277b315 New translations messages.po (Korean) 2023-11-14 13:23:04 +01:00
a703baf054 New translations messages.po (Japanese) 2023-11-14 13:23:03 +01:00
30479c20ee New translations messages.po (Italian) 2023-11-14 13:23:01 +01:00
cd2d0dcb8e New translations messages.po (Hungarian) 2023-11-14 13:23:00 +01:00
60d3eff764 New translations messages.po (Hebrew) 2023-11-14 13:22:59 +01:00
a3e6409171 New translations messages.po (Finnish) 2023-11-14 13:22:58 +01:00
aa38217cb6 New translations messages.po (Greek) 2023-11-14 13:22:57 +01:00
b8f96a837a New translations messages.po (German) 2023-11-14 13:22:56 +01:00
bd33ae7798 New translations messages.po (Danish) 2023-11-14 13:22:55 +01:00
1bd709f484 New translations messages.po (Czech) 2023-11-14 13:22:53 +01:00
59378f162f New translations messages.po (Catalan) 2023-11-14 13:22:52 +01:00
cdf36cb49d New translations messages.po (Bulgarian) 2023-11-14 13:22:51 +01:00
0c069b1e92 New translations messages.po (Arabic) 2023-11-14 13:22:50 +01:00
774720bae0 New translations messages.po (Afrikaans) 2023-11-14 13:22:49 +01:00
d4f36eecf5 New translations messages.po (Spanish) 2023-11-14 13:22:47 +01:00
0870bfaa02 New translations messages.po (French) 2023-11-14 13:22:46 +01:00
350823e081 New translations messages.po (Romanian) 2023-11-14 13:22:45 +01:00
2db52b7ef2 feat(i18n): translate error messages 2023-11-14 13:02:38 +01:00
888b4db0bb fix(mobile): check for responsiveness, add scrollarea support 2023-11-14 11:43:28 +01:00
6303071410 fix(i18n): load translations from fs 2023-11-14 09:14:21 +01:00
d1f54010c7 Update Crowdin configuration file 2023-11-14 09:13:08 +01:00
49d0882d7c Merge pull request #1537 from AmruthPillai/l10n
New Crowdin updates
2023-11-14 07:53:49 +01:00
5358951557 New translations messages.po (Zulu) 2023-11-14 07:51:50 +01:00
0b6331c28d New translations messages.po (Nepali) 2023-11-14 07:51:49 +01:00
befc4f1cb0 New translations messages.po (Amharic) 2023-11-14 07:51:48 +01:00
b965839091 New translations messages.po (Odia) 2023-11-14 07:51:47 +01:00
507621e3a8 New translations messages.po (Kannada) 2023-11-14 07:51:45 +01:00
7e4c4f798a New translations messages.po (Malayalam) 2023-11-14 07:51:44 +01:00
9b09b47b78 New translations messages.po (Telugu) 2023-11-14 07:51:43 +01:00
3a64eefef7 New translations messages.po (Hindi) 2023-11-14 07:51:42 +01:00
7b820503ae New translations messages.po (Thai) 2023-11-14 07:51:41 +01:00
0c386671e1 New translations messages.po (Marathi) 2023-11-14 07:51:40 +01:00
56f780e0eb New translations messages.po (Bengali) 2023-11-14 07:51:39 +01:00
3b2698ca19 New translations messages.po (Tamil) 2023-11-14 07:51:38 +01:00
8432fc5f10 New translations messages.po (Khmer) 2023-11-14 07:51:37 +01:00
3996e49ae7 New translations messages.po (Persian) 2023-11-14 07:51:36 +01:00
a30504e6a5 New translations messages.po (Indonesian) 2023-11-14 07:51:35 +01:00
77f704ac9b New translations messages.po (Portuguese, Brazilian) 2023-11-14 07:51:34 +01:00
604a89051d New translations messages.po (Vietnamese) 2023-11-14 07:51:33 +01:00
e0b1d7ed67 New translations messages.po (English) 2023-11-14 07:51:32 +01:00
caa1b56fd3 New translations messages.po (Chinese Traditional) 2023-11-14 07:51:31 +01:00
5955f5214d New translations messages.po (Chinese Simplified) 2023-11-14 07:51:30 +01:00
2acb34fa90 New translations messages.po (Ukrainian) 2023-11-14 07:51:29 +01:00
57a28e1462 New translations messages.po (Turkish) 2023-11-14 07:51:28 +01:00
dce63e926e New translations messages.po (Swedish) 2023-11-14 07:51:26 +01:00
90eb4c770f New translations messages.po (Serbian (Cyrillic)) 2023-11-14 07:51:25 +01:00
820d8720c0 New translations messages.po (Russian) 2023-11-14 07:51:24 +01:00
3691f726e7 New translations messages.po (Portuguese) 2023-11-14 07:51:23 +01:00
7339b7436c New translations messages.po (Polish) 2023-11-14 07:51:22 +01:00
3364c9fbaa New translations messages.po (Norwegian) 2023-11-14 07:51:21 +01:00
db21cbc4ff New translations messages.po (Dutch) 2023-11-14 07:51:20 +01:00
e49c89cc39 New translations messages.po (Lithuanian) 2023-11-14 07:51:19 +01:00
ba25d92680 New translations messages.po (Korean) 2023-11-14 07:51:18 +01:00
ccb3513dbd New translations messages.po (Japanese) 2023-11-14 07:51:17 +01:00
e191c3ba67 New translations messages.po (Italian) 2023-11-14 07:51:16 +01:00
267ae79724 New translations messages.po (Hungarian) 2023-11-14 07:51:15 +01:00
08115fa521 New translations messages.po (Hebrew) 2023-11-14 07:51:14 +01:00
d4612d6e28 New translations messages.po (Finnish) 2023-11-14 07:51:13 +01:00
0a95ce5a9c New translations messages.po (Greek) 2023-11-14 07:51:11 +01:00
505f2f473e New translations messages.po (German) 2023-11-14 07:51:10 +01:00
a99198b9b7 New translations messages.po (Danish) 2023-11-14 07:51:09 +01:00
f2bc6f214d New translations messages.po (Czech) 2023-11-14 07:51:08 +01:00
323cd07830 New translations messages.po (Catalan) 2023-11-14 07:51:07 +01:00
adc2adc6f4 New translations messages.po (Bulgarian) 2023-11-14 07:51:06 +01:00
58f2291774 New translations messages.po (Arabic) 2023-11-14 07:51:05 +01:00
1ed89053fe New translations messages.po (Afrikaans) 2023-11-14 07:51:04 +01:00
b4f72992ef New translations messages.po (Spanish) 2023-11-14 07:51:03 +01:00
f09acfbcaa New translations messages.po (French) 2023-11-14 07:51:01 +01:00
a6652b738f New translations messages.po (Romanian) 2023-11-14 07:51:00 +01:00
041d04cd84 Merge pull request #1536 from AmruthPillai/l10n
New Crowdin updates
2023-11-14 07:49:02 +01:00
faf3ea47f9 Update .gitignore 2023-11-14 07:48:51 +01:00
61f55bfb70 New translations messages.po (Zulu) 2023-11-14 07:30:25 +01:00
73dc01e2df New translations messages.po (Nepali) 2023-11-14 07:30:24 +01:00
800177e76e New translations messages.po (Amharic) 2023-11-14 07:30:23 +01:00
6dbc0a3999 New translations messages.po (Odia) 2023-11-14 07:30:22 +01:00
148de17b81 New translations messages.po (Kannada) 2023-11-14 07:30:20 +01:00
db3389d6a8 New translations messages.po (Malayalam) 2023-11-14 07:30:19 +01:00
7390f38837 New translations messages.po (Telugu) 2023-11-14 07:30:18 +01:00
133e5942cd New translations messages.po (Hindi) 2023-11-14 07:30:17 +01:00
2de0b8792b New translations messages.po (Thai) 2023-11-14 07:30:16 +01:00
36f1a2bdb3 New translations messages.po (Marathi) 2023-11-14 07:30:14 +01:00
899d0b0d9c New translations messages.po (Bengali) 2023-11-14 07:30:14 +01:00
8c4e21c503 New translations messages.po (Tamil) 2023-11-14 07:30:12 +01:00
a36f202d0a New translations messages.po (Khmer) 2023-11-14 07:30:11 +01:00
fe2f844e60 New translations messages.po (Persian) 2023-11-14 07:30:10 +01:00
cd80785f29 New translations messages.po (Indonesian) 2023-11-14 07:30:09 +01:00
bd065347cb New translations messages.po (Portuguese, Brazilian) 2023-11-14 07:30:08 +01:00
e0db70684a New translations messages.po (Vietnamese) 2023-11-14 07:30:07 +01:00
0298e7836c New translations messages.po (English) 2023-11-14 07:30:06 +01:00
1b9f1db8f8 New translations messages.po (Chinese Traditional) 2023-11-14 07:30:05 +01:00
06a7a5192c New translations messages.po (Chinese Simplified) 2023-11-14 07:30:03 +01:00
12958cec16 New translations messages.po (Ukrainian) 2023-11-14 07:30:02 +01:00
e7ca3aefec New translations messages.po (Turkish) 2023-11-14 07:30:01 +01:00
45a626576f New translations messages.po (Swedish) 2023-11-14 07:30:00 +01:00
cf2caccedf New translations messages.po (Serbian (Cyrillic)) 2023-11-14 07:29:59 +01:00
1d052a7856 New translations messages.po (Russian) 2023-11-14 07:29:58 +01:00
47dce2c066 New translations messages.po (Portuguese) 2023-11-14 07:29:57 +01:00
501f9b366e New translations messages.po (Polish) 2023-11-14 07:29:56 +01:00
3dfa06308f New translations messages.po (Norwegian) 2023-11-14 07:29:55 +01:00
0cb256d930 New translations messages.po (Dutch) 2023-11-14 07:29:54 +01:00
5682f042af New translations messages.po (Lithuanian) 2023-11-14 07:29:53 +01:00
0a6aa2e672 New translations messages.po (Korean) 2023-11-14 07:29:52 +01:00
af840e36f9 New translations messages.po (Japanese) 2023-11-14 07:29:51 +01:00
7fc03550e1 New translations messages.po (Italian) 2023-11-14 07:29:50 +01:00
4a24802637 New translations messages.po (Hungarian) 2023-11-14 07:29:49 +01:00
0602ffc646 New translations messages.po (Hebrew) 2023-11-14 07:29:48 +01:00
17ead86135 New translations messages.po (Finnish) 2023-11-14 07:29:47 +01:00
8f24cb6769 New translations messages.po (Greek) 2023-11-14 07:29:46 +01:00
b451f6f8b8 New translations messages.po (German) 2023-11-14 07:29:45 +01:00
bdbb4534ee New translations messages.po (Danish) 2023-11-14 07:29:44 +01:00
29d732bd68 New translations messages.po (Czech) 2023-11-14 07:29:43 +01:00
620172709c New translations messages.po (Catalan) 2023-11-14 07:29:42 +01:00
52a4b2831a New translations messages.po (Bulgarian) 2023-11-14 07:29:41 +01:00
7f0f419a4b New translations messages.po (Arabic) 2023-11-14 07:29:40 +01:00
7eae44c032 New translations messages.po (Afrikaans) 2023-11-14 07:29:39 +01:00
f50fe242e8 New translations messages.po (Spanish) 2023-11-14 07:29:38 +01:00
de5cf161bf New translations messages.po (French) 2023-11-14 07:29:37 +01:00
8e5182cb26 New translations messages.po (Romanian) 2023-11-14 07:29:36 +01:00
90ce0ad1bc Update Crowdin configuration file 2023-11-14 07:27:31 +01:00
2f46acd707 Update crowdin.yml 2023-11-14 07:27:09 +01:00
a2f0a88e02 fix(ci): update actions 2023-11-13 18:47:21 +01:00
bdc8353196 fix(ci): update-translations 2023-11-13 17:08:05 +01:00
6c9602e629 fix(ci): update-translations 2023-11-13 17:06:14 +01:00
d18b258761 feat(homepage): add new sections to homepage 2023-11-13 17:03:41 +01:00
4b1e33db80 Update Crowdin configuration file 2023-11-10 13:19:01 +01:00
48727be809 fix(i18n): delete local translations 2023-11-10 13:14:44 +01:00
d8c605d047 Merge pull request #1531 from AmruthPillai/l10n
New Translations
2023-11-10 11:23:43 +01:00
d5a0237975 New Crowdin translations by GitHub Action 2023-11-10 10:22:56 +00:00
f3ad994753 chore(i18n): update zu-ZA translations 2023-11-10 11:22:19 +01:00
1057d390da feat(ci): add update translations ci workflow 2023-11-10 09:49:55 +01:00
6f83937dbb feat(i18n): update crowdin configuration file 2023-11-10 09:36:20 +01:00
6f6e53bc95 Update Crowdin configuration file 2023-11-10 09:35:14 +01:00
ca6724c4da fix(i18n): fix crowdin.yml 2023-11-10 09:32:35 +01:00
0c7e551bf6 fix(github-action): update trigger for workflow 2023-11-10 09:31:29 +01:00
69d3cd899c feat(i18n): change location of translation files 2023-11-10 09:29:52 +01:00
c52a0d4da7 Merge branch 'v4' of github.com:AmruthPillai/Reactive-Resume into v4 2023-11-10 09:29:38 +01:00
c10e5eb291 chore(deps): update dependencies 2023-11-10 09:29:35 +01:00
f41dbb3515 Update Crowdin configuration file 2023-11-10 09:21:03 +01:00
a07e4ee0b2 Merge branch 'v4' of github.com:AmruthPillai/Reactive-Resume into v4 2023-11-10 09:19:36 +01:00
6573b7b8c0 fix(i18n): remove type in crowdin.yml 2023-11-10 09:19:18 +01:00
a72f6d2350 Update Crowdin configuration file 2023-11-10 09:16:23 +01:00
210c215beb fix(i18n): remove type in crowdin.yml 2023-11-10 09:16:00 +01:00
45c8b19081 Merge branch 'v4' of github.com:AmruthPillai/Reactive-Resume into v4 2023-11-10 09:15:25 +01:00
af1739892c fix(i18n): remove type in crowdin.yml 2023-11-10 09:15:23 +01:00
5221b6f092 Update Crowdin configuration file 2023-11-10 09:13:37 +01:00
dec8bbc09e Merge pull request #1530 from AmruthPillai/feat(i18n)--implement-localization-using-linguijs
feat(i18n): implement localization using LinguiJS
2023-11-10 09:08:14 +01:00
6ad4358d70 feat(i18n): implement localization using LinguiJS 2023-11-10 09:07:47 +01:00
13d91411e3 chore(artboard): remove sample resume loaded on artboard for testing 2023-11-09 21:05:12 +01:00
92bb9f96a0 feat(artboard): implement 8 new templates 2023-11-09 21:01:01 +01:00
9acf7e8d22 Merge pull request #1524 from AmruthPillai/feat/v4/replace-templates-library-with-microfrontend-app
feat(templates): replace library with microfrontend app for templates
2023-11-07 16:43:26 +01:00
1aa8aa6900 feat(templates): replace library with microfrontend app for templates 2023-11-07 16:37:16 +01:00
fca61543c5 perf: 🎨 remove fragment imports, optimize templates 2023-11-06 22:37:32 +01:00
2d35057e57 Merge pull request #1519 from AmruthPillai/feat/v4/implement-resume-locking
feat(resume):  implement resume locking feature
2023-11-06 13:57:44 +01:00
015e284318 feat(resume): implement resume locking feature 2023-11-06 13:57:12 +01:00
9a0402d525 Merge pull request #1518 from AmruthPillai/feat/v4/implement-create-sample-resume-action
feat(resume-dialog):  implement create sample resume sub-action in create resume dialog
2023-11-06 12:11:36 +01:00
685dc3aa6e feat(resume-dialog): implement create sample resume sub-action in create resume dialog 2023-11-06 12:11:07 +01:00
9b833076db ci(registry): add quay.io to docker container registries 2023-11-06 10:17:29 +01:00
37e94eb7f0 ci(dockerfile): 🚀 fix copy paths in dockerfile 2023-11-06 10:05:50 +01:00
d6620e0816 ci: 🐛 log error to console 2023-11-06 09:52:38 +01:00
a88a794f29 fix(server): 👷 pass errors down to controller 2023-11-06 09:41:06 +01:00
4f5ccb9ab8 chore(server): update dependencies and add API tags to
controllers
2023-11-05 19:15:21 +01:00
e964965d59 docs(readme): 🎨 update formatting, change license header 2023-11-05 14:26:06 +01:00
fa248c47ad ci(dockerfile): copy prisma client correctly 2023-11-05 14:23:01 +01:00
d113f84c7e ci(compose): update docker compose deployment examples 2023-11-05 13:38:56 +01:00
eef91cf905 ci(v4.0.0-alpha): 🚀 running the first ci worflow 2023-11-05 13:17:14 +01:00
2f4fc71ecb ci(actions): 📝 implement close-stale-issues github actions workflow 2023-11-05 12:42:14 +01:00
22933bd412 refactor(v4.0.0-alpha): beginning of a new era 2023-11-05 12:31:42 +01:00
0ba6a444e2 project reset: clearing all files and folders 2023-08-31 13:22:03 +02:00
0941ba398a Merge pull request #1441 from AmruthPillai/dependabot/gradle/app/org.jetbrains.kotlin.android-1.9.10
Bump org.jetbrains.kotlin.android from 1.9.0 to 1.9.10 in /app
2023-08-29 10:01:37 +02:00
e7b32890c6 Merge pull request #1440 from AmruthPillai/dependabot/github_actions/digitalocean/action-doctl-2.4.0
Bump digitalocean/action-doctl from 2.3.0 to 2.4.0
2023-08-29 10:01:29 +02:00
d4823c7b5e Merge pull request #1439 from AmruthPillai/dependabot/github_actions/actions/checkout-3.6.0
Bump actions/checkout from 3.5.3 to 3.6.0
2023-08-29 10:01:22 +02:00
593b1909ab Merge pull request #1434 from AmruthPillai/dependabot/docker/server/playwright-v1.37.1-focal
Bump playwright from v1.36.2-focal to v1.37.1-focal in /server
2023-08-29 10:01:14 +02:00
20cd4815f6 Merge pull request #1414 from Jubair70/fix_disable_click_outside_modal
fix: disable click outside all modals and check unsaved changes for education modal
2023-08-29 10:00:50 +02:00
e6b6b99e0f Bump org.jetbrains.kotlin.android from 1.9.0 to 1.9.10 in /app
Bumps [org.jetbrains.kotlin.android](https://github.com/JetBrains/kotlin) from 1.9.0 to 1.9.10.
- [Release notes](https://github.com/JetBrains/kotlin/releases)
- [Changelog](https://github.com/JetBrains/kotlin/blob/v1.9.10/ChangeLog.md)
- [Commits](https://github.com/JetBrains/kotlin/compare/v1.9.0...v1.9.10)

---
updated-dependencies:
- dependency-name: org.jetbrains.kotlin.android
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-28 02:08:50 +00:00
a61e38b865 Bump digitalocean/action-doctl from 2.3.0 to 2.4.0
Bumps [digitalocean/action-doctl](https://github.com/digitalocean/action-doctl) from 2.3.0 to 2.4.0.
- [Release notes](https://github.com/digitalocean/action-doctl/releases)
- [Commits](https://github.com/digitalocean/action-doctl/compare/v2.3.0...v2.4.0)

---
updated-dependencies:
- dependency-name: digitalocean/action-doctl
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-28 02:03:00 +00:00
e31ef6877b Bump actions/checkout from 3.5.3 to 3.6.0
Bumps [actions/checkout](https://github.com/actions/checkout) from 3.5.3 to 3.6.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3.5.3...v3.6.0)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-28 02:02:57 +00:00
67cc7ef258 Bump playwright from v1.36.2-focal to v1.37.1-focal in /server
Bumps playwright from v1.36.2-focal to v1.37.1-focal.

---
updated-dependencies:
- dependency-name: playwright
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-21 03:00:43 +00:00
ca6b10bdba fix formatting 2023-08-07 17:32:16 +06:00
cf7faa0e28 Merge branch 'main' into fix_disable_click_outside_modal 2023-08-07 16:31:24 +06:00
a293d209de update dependencies, bump up version to 3.8.4 2023-08-07 11:48:56 +02:00
5b9ea43090 Merge pull request #1418 from AmruthPillai/dependabot/npm_and_yarn/semver-5.7.2
Bump semver from 5.7.1 to 5.7.2
2023-08-07 09:48:05 +02:00
01b36ee8d8 Merge pull request #1420 from AmruthPillai/add-date-format-options
Add 'YYYY.MM' & 'YYYY.M' date format options
2023-08-07 09:30:07 +02:00
af1c314c36 Add 'YYYY.MM' & 'YYYY.M' date format options
closes #1419
2023-08-07 09:29:47 +02:00
9a607a590a Merge branch 'main' into fix_disable_click_outside_modal 2023-08-07 12:04:29 +06:00
d836e3d992 Bump semver from 5.7.1 to 5.7.2
Bumps [semver](https://github.com/npm/node-semver) from 5.7.1 to 5.7.2.
- [Release notes](https://github.com/npm/node-semver/releases)
- [Changelog](https://github.com/npm/node-semver/blob/v5.7.2/CHANGELOG.md)
- [Commits](https://github.com/npm/node-semver/compare/v5.7.1...v5.7.2)

---
updated-dependencies:
- dependency-name: semver
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-03 06:19:13 +00:00
fb2db6839f Update README.md 2023-08-01 20:41:48 +02:00
787d0af9d1 Update README.md 2023-08-01 20:40:02 +02:00
c455cbb5ca Merge branch 'main' into fix_disable_click_outside_modal 2023-08-01 15:38:30 +06:00
dae142e5ce fix: disable click outside all modals and check unsaved changes for education modal 2023-08-01 15:29:31 +06:00
95de63f387 Merge pull request #1411 from Jubair70/fix/work_modal_datepicker
fix: Work Modal Datepicker popup
2023-07-31 16:12:19 +02:00
456b896310 Merge branch 'main' into fix/work_modal_datepicker 2023-07-31 15:09:40 +06:00
974bf7e032 fix: Work Modal Datepicker 2023-07-31 15:02:17 +06:00
8fa5324a39 Merge pull request #1410 from AmruthPillai/dependabot/docker/server/playwright-v1.36.2-focal
Bump playwright from v1.36.1-focal to v1.36.2-focal in /server
2023-07-31 10:31:58 +02:00
4ac9289344 Bump playwright from v1.36.1-focal to v1.36.2-focal in /server
Bumps playwright from v1.36.1-focal to v1.36.2-focal.

---
updated-dependencies:
- dependency-name: playwright
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-31 02:45:02 +00:00
d67272cf9e bump up version to 3.8.3 2023-07-27 20:09:26 +02:00
f937a88b9d attempt to fix leafish template issues 2023-07-27 20:08:47 +02:00
7465a7ec78 Merge pull request #1407 from AmruthPillai/fix/id-null-when-section-duplicated-cloned
Fix issue when a section is duplicated/cloned, ID is null
2023-07-27 19:51:01 +02:00
b53d8854df bump up version to 3.8.2 2023-07-27 19:43:19 +02:00
bffa0be909 fix dev dotenv script 2023-07-27 19:42:48 +02:00
06fee1696e update dependencies, fix birthDate error outline 2023-07-27 19:42:25 +02:00
f9a11092a6 Fix issue when a section is duplicated/cloned, ID is null 2023-07-27 18:35:19 +02:00
9c76999945 add start pipeline command to turbo 2023-07-25 15:37:10 +02:00
d23d1a615e Merge pull request #1403 from Jubair70/fix_education_modal_datepicker
fix: Education Date picker modal UI component
2023-07-25 14:50:46 +02:00
a5701a37a6 Merge pull request #1400 from rcwell/main
Fixed Date entered on any <Date> field is one day earlier
2023-07-25 14:50:39 +02:00
a739b25f42 update all dependencies 2023-07-25 14:50:10 +02:00
145aa14ba0 fix: Education Date picker modal 2023-07-24 18:27:39 +06:00
94358bf61c don't convert date to local date 2023-07-23 07:46:19 +14:00
ce50df61a5 Merge pull request #1395 from AmruthPillai/i18n_main
New Crowdin updates
2023-07-21 22:14:17 +02:00
f18da54dfa Merge branch 'main' into i18n_main 2023-07-21 22:14:11 +02:00
14c5e36fae Merge pull request #1396 from Jubair70/Jubair70/fixes-date-selection
Fixed date selection by selecting month after year
2023-07-21 22:13:06 +02:00
1483f9b4f2 Merge branch 'main' into Jubair70/fixes-date-selection 2023-07-21 15:04:53 +06:00
f7d8e4ebb4 slots removed 2023-07-21 15:03:58 +06:00
7c42d6e607 New translations modals.json (Portuguese, Brazilian) 2023-07-20 23:34:56 +02:00
08dea8ad8b New translations landing.json (Portuguese, Brazilian) 2023-07-20 23:34:41 +02:00
950d7ea4e7 New translations common.json (Portuguese, Brazilian) 2023-07-20 23:34:15 +02:00
ebc12042a9 New translations builder.json (Nepali) 2023-07-20 23:34:05 +02:00
d8168d2a9d New translations builder.json (Amharic) 2023-07-20 23:34:04 +02:00
7cfda3c83d New translations builder.json (Odia) 2023-07-20 23:34:03 +02:00
8fcfbdd69d New translations builder.json (Kannada) 2023-07-20 23:34:03 +02:00
1eb52261f2 New translations builder.json (Malayalam) 2023-07-20 23:34:02 +02:00
88400b769d New translations builder.json (Hindi) 2023-07-20 23:34:01 +02:00
b6831fc532 New translations builder.json (Marathi) 2023-07-20 23:34:00 +02:00
b231b60b5a New translations builder.json (Tamil) 2023-07-20 23:33:59 +02:00
2679c9ebc2 New translations builder.json (Khmer) 2023-07-20 23:33:58 +02:00
278253b809 New translations builder.json (Persian) 2023-07-20 23:33:57 +02:00
8a933de0bd New translations builder.json (Indonesian) 2023-07-20 23:33:57 +02:00
704cba06f4 New translations builder.json (Portuguese, Brazilian) 2023-07-20 23:33:56 +02:00
b946098bd0 New translations builder.json (Vietnamese) 2023-07-20 23:33:55 +02:00
f7b95f7679 New translations builder.json (Ukrainian) 2023-07-20 23:33:54 +02:00
e38967874e New translations builder.json (Turkish) 2023-07-20 23:33:53 +02:00
8368c4e183 New translations builder.json (Serbian (Cyrillic)) 2023-07-20 23:33:52 +02:00
951f14ef69 New translations builder.json (Russian) 2023-07-20 23:33:51 +02:00
4a75be95ef New translations builder.json (Portuguese) 2023-07-20 23:33:51 +02:00
1125557fbc New translations builder.json (Polish) 2023-07-20 23:33:50 +02:00
db63138307 New translations builder.json (Korean) 2023-07-20 23:33:48 +02:00
a52feac93b New translations builder.json (Italian) 2023-07-20 23:33:47 +02:00
ad7b6ad2c6 New translations builder.json (Hungarian) 2023-07-20 23:33:46 +02:00
33e3850bb7 New translations builder.json (Hebrew) 2023-07-20 23:33:45 +02:00
c29605dbd0 New translations builder.json (Finnish) 2023-07-20 23:33:44 +02:00
14b2ba4f73 New translations builder.json (Greek) 2023-07-20 23:33:43 +02:00
8868684125 New translations builder.json (Danish) 2023-07-20 23:33:39 +02:00
c1ceb0cd50 New translations builder.json (Czech) 2023-07-20 23:33:38 +02:00
1105f672a5 New translations builder.json (Catalan) 2023-07-20 23:33:37 +02:00
67cc49c068 New translations builder.json (Bulgarian) 2023-07-20 23:33:36 +02:00
505406508b New translations builder.json (Arabic) 2023-07-20 23:33:35 +02:00
bfd37951df New translations builder.json (Spanish) 2023-07-20 23:33:34 +02:00
339cae05f1 New translations builder.json (French) 2023-07-20 23:33:34 +02:00
48069c10a4 New translations builder.json (Romanian) 2023-07-20 23:33:33 +02:00
51317b2901 New translations builder.json (Japanese) 2023-07-20 22:32:27 +02:00
e5ce53b2aa Merge pull request #1399 from thomasmazon/thomas-improve-pt-br-translation
Thomas: fixing some Portuguese Brazilian labels
2023-07-20 22:32:00 +02:00
2bc7c93174 Thomas: fixing some Portuguese Brazilian labels 2023-07-20 11:56:54 -03:00
1d97f01942 Jubair70:fix/date-selection 2023-07-19 17:58:13 +06:00
5ad517f1d3 Jubair70:fix/date-selection 2023-07-19 17:53:23 +06:00
8088c70038 New translations builder.json (Chinese Simplified) 2023-07-19 13:52:09 +02:00
e36df82ba9 Merge pull request #1393 from AmruthPillai/dependabot/docker/server/playwright-v1.36.1-focal
Bump playwright from v1.35.1-focal to v1.36.1-focal in /server
2023-07-19 08:45:18 +02:00
de513a12da Merge pull request #1392 from AmruthPillai/dependabot/github_actions/docker/setup-buildx-action-2.9.1
Bump docker/setup-buildx-action from 2.9.0 to 2.9.1
2023-07-19 08:45:11 +02:00
06f1a813ce Merge pull request #1387 from AmruthPillai/i18n_main
New Crowdin updates
2023-07-19 08:45:01 +02:00
1de9195f20 Merge branch 'main' into i18n_main 2023-07-19 08:44:54 +02:00
eaa21ead3e Update build-deploy.yml 2023-07-19 08:44:47 +02:00
3ea4a9b000 Bump playwright from v1.35.1-focal to v1.36.1-focal in /server
Bumps playwright from v1.35.1-focal to v1.36.1-focal.

---
updated-dependencies:
- dependency-name: playwright
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-17 02:36:05 +00:00
f0484c1c28 Bump docker/setup-buildx-action from 2.9.0 to 2.9.1
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 2.9.0 to 2.9.1.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](https://github.com/docker/setup-buildx-action/compare/v2.9.0...v2.9.1)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-17 02:11:08 +00:00
7ebda09a5f New translations builder.json (German) 2023-07-14 22:35:05 +02:00
161ca0ee28 run prettier formatting on all files 2023-07-13 08:54:37 +02:00
984078db76 parallelize ci workflow 2023-07-12 16:26:07 +02:00
fbc0ae8918 fix use of dev dependency 2023-07-12 16:21:46 +02:00
3e93656f1f update issue templates 2023-07-12 16:02:16 +02:00
01bf17d7c8 Update README.md 2023-07-12 16:01:09 +02:00
651013fcf2 Merge pull request #1381 from AmruthPillai/fix/issue-with-private-resumes
fix(client): 🐛 do not allow private resumes to be viewable or downloadable through the link
2023-07-12 15:59:57 +02:00
1c2d796c50 fix(client): 🐛 do not allow private resumes to be viewable or downloadable through the link 2023-07-12 15:59:22 +02:00
5ef4bfcb6b Merge pull request #1379 from AmruthPillai/dependabot/github_actions/docker/setup-buildx-action-2.9.0
Bump docker/setup-buildx-action from 2.8.0 to 2.9.0
2023-07-12 14:47:30 +02:00
a305b6419e Merge pull request #1378 from AmruthPillai/dependabot/gradle/app/org.jetbrains.kotlin.android-1.9.0
Bump org.jetbrains.kotlin.android from 1.8.22 to 1.9.0 in /app
2023-07-12 14:47:22 +02:00
dcfdff2abe Bump docker/setup-buildx-action from 2.8.0 to 2.9.0
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 2.8.0 to 2.9.0.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](https://github.com/docker/setup-buildx-action/compare/v2.8.0...v2.9.0)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-10 03:00:37 +00:00
de77a6039a Bump org.jetbrains.kotlin.android from 1.8.22 to 1.9.0 in /app
Bumps [org.jetbrains.kotlin.android](https://github.com/JetBrains/kotlin) from 1.8.22 to 1.9.0.
- [Release notes](https://github.com/JetBrains/kotlin/releases)
- [Changelog](https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md)
- [Commits](https://github.com/JetBrains/kotlin/compare/v1.8.22...v1.9.0)

---
updated-dependencies:
- dependency-name: org.jetbrains.kotlin.android
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-10 02:23:11 +00:00
e44eab55c3 Merge pull request #1376 from AmruthPillai/dependabot/github_actions/docker/setup-buildx-action-2.8.0
Bump docker/setup-buildx-action from 2.7.0 to 2.8.0
2023-07-04 13:49:24 +02:00
c73ad9a627 Bump docker/setup-buildx-action from 2.7.0 to 2.8.0
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 2.7.0 to 2.8.0.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](https://github.com/docker/setup-buildx-action/compare/v2.7.0...v2.8.0)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-03 02:45:58 +00:00
be3d4a4f7c Merge pull request #1374 from AmruthPillai/i18n_main
New Crowdin updates
2023-07-02 08:01:43 +02:00
c86792901b New translations builder.json (Swedish) 2023-06-29 15:56:08 +02:00
a2645a10f0 Merge pull request #1369 from AmruthPillai/dependabot/github_actions/docker/setup-buildx-action-2.7.0
Bump docker/setup-buildx-action from 2.6.0 to 2.7.0
2023-06-22 16:13:22 +02:00
772d8a0d41 Merge pull request #1368 from AmruthPillai/dependabot/github_actions/docker/build-push-action-4.1.1
Bump docker/build-push-action from 4.1.0 to 4.1.1
2023-06-22 16:13:14 +02:00
57348c13b2 Merge pull request #1367 from AmruthPillai/dependabot/github_actions/docker/metadata-action-4.6.0
Bump docker/metadata-action from 4.5.0 to 4.6.0
2023-06-22 16:13:03 +02:00
ffb92a967e Merge pull request #1366 from AmruthPillai/dependabot/docker/server/playwright-v1.35.1-focal
Bump playwright from v1.35.0-focal to v1.35.1-focal in /server
2023-06-22 16:10:59 +02:00
ed933f0452 Bump docker/setup-buildx-action from 2.6.0 to 2.7.0
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 2.6.0 to 2.7.0.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](https://github.com/docker/setup-buildx-action/compare/v2.6.0...v2.7.0)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-19 02:58:00 +00:00
26e67fe457 Bump docker/build-push-action from 4.1.0 to 4.1.1
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 4.1.0 to 4.1.1.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v4.1.0...v4.1.1)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-19 02:57:55 +00:00
4507d2d032 Bump docker/metadata-action from 4.5.0 to 4.6.0
Bumps [docker/metadata-action](https://github.com/docker/metadata-action) from 4.5.0 to 4.6.0.
- [Release notes](https://github.com/docker/metadata-action/releases)
- [Commits](https://github.com/docker/metadata-action/compare/v4.5.0...v4.6.0)

---
updated-dependencies:
- dependency-name: docker/metadata-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-19 02:57:50 +00:00
97b43d2fc9 Bump playwright from v1.35.0-focal to v1.35.1-focal in /server
Bumps playwright from v1.35.0-focal to v1.35.1-focal.

---
updated-dependencies:
- dependency-name: playwright
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-19 02:57:47 +00:00
88916a54d3 Merge pull request #1362 from AmruthPillai/i18n_main
New Crowdin updates
2023-06-15 10:04:54 +02:00
3aa57ebce8 Merge pull request #1358 from AmruthPillai/dependabot/gradle/app/org.jetbrains.kotlin.android-1.8.22
Bump org.jetbrains.kotlin.android from 1.8.21 to 1.8.22 in /app
2023-06-15 10:04:48 +02:00
623d300da3 Merge pull request #1357 from AmruthPillai/dependabot/github_actions/actions/checkout-3.5.3
Bump actions/checkout from 3.5.2 to 3.5.3
2023-06-15 10:04:40 +02:00
10d7562e7a Merge pull request #1356 from AmruthPillai/dependabot/docker/client/node-20-alpine
Bump node from 18-alpine to 20-alpine in /client
2023-06-15 10:04:33 +02:00
807e747018 Merge pull request #1355 from AmruthPillai/dependabot/github_actions/docker/build-push-action-4.1.0
Bump docker/build-push-action from 4.0.0 to 4.1.0
2023-06-15 10:04:26 +02:00
1301cdce12 Merge pull request #1354 from AmruthPillai/dependabot/docker/server/playwright-v1.35.0-focal
Bump playwright from v1.34.3-focal to v1.35.0-focal in /server
2023-06-15 10:04:17 +02:00
c5fcbf5982 New translations common.json (Dutch) 2023-06-14 17:29:51 +02:00
a9daaeba55 New translations builder.json (Dutch) 2023-06-14 17:29:49 +02:00
dc33c35433 Bump org.jetbrains.kotlin.android from 1.8.21 to 1.8.22 in /app
Bumps [org.jetbrains.kotlin.android](https://github.com/JetBrains/kotlin) from 1.8.21 to 1.8.22.
- [Release notes](https://github.com/JetBrains/kotlin/releases)
- [Changelog](https://github.com/JetBrains/kotlin/blob/v1.8.22/ChangeLog.md)
- [Commits](https://github.com/JetBrains/kotlin/compare/v1.8.21...v1.8.22)

---
updated-dependencies:
- dependency-name: org.jetbrains.kotlin.android
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-12 03:00:24 +00:00
189605484a Bump actions/checkout from 3.5.2 to 3.5.3
Bumps [actions/checkout](https://github.com/actions/checkout) from 3.5.2 to 3.5.3.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3.5.2...v3.5.3)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-12 02:58:29 +00:00
bb3e93d976 Bump node from 18-alpine to 20-alpine in /client
Bumps node from 18-alpine to 20-alpine.

---
updated-dependencies:
- dependency-name: node
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-12 02:58:18 +00:00
44d692aad1 Bump docker/build-push-action from 4.0.0 to 4.1.0
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 4.0.0 to 4.1.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v4.0.0...v4.1.0)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-12 02:58:18 +00:00
bb0ca824b8 Bump playwright from v1.34.3-focal to v1.35.0-focal in /server
Bumps playwright from v1.34.3-focal to v1.35.0-focal.

---
updated-dependencies:
- dependency-name: playwright
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-12 02:57:59 +00:00
a0b8de4ab4 Merge pull request #1347 from AlexTu2/main
add Discord icon
2023-06-09 09:06:47 +02:00
f73a80c684 add Discord icon 2023-06-08 22:52:38 -04:00
0eddb7d5a3 remove old ci action workflows 2023-06-08 16:28:08 +02:00
6ff36cb1e4 fix build-deploy script 2023-06-08 16:27:14 +02:00
c513d68813 Add push: true to Build and Deploy Script 2023-06-08 15:25:16 +02:00
8d3f4e031c update dependencies, rework on github actions ci script 2023-06-08 15:05:15 +02:00
3aa8778a67 Update README.md 2023-06-08 13:51:31 +02:00
d4a3cec3c2 create new github actions workflow "Build and Push Multi-Arch Docker Images using Manifest" 2023-06-08 13:48:35 +02:00
96eca65ed0 add back health module to server 2023-06-07 20:45:21 +02:00
30fd283898 use matrix to build amd64/arm64 images 2023-06-07 20:25:12 +02:00
726ea7312b add arm to qemu platform 2023-06-07 20:10:25 +02:00
f3a7180d4b change run script for docker file 2023-06-07 19:52:48 +02:00
0173ce32c3 Implement Turborepo to include Build Caching in CI/CD 2023-06-07 19:50:48 +02:00
d4b6c16bf9 updating dependencies, fixing server reloads 2023-06-07 18:39:14 +02:00
c571f201d3 update version 2023-06-07 17:18:33 +02:00
e4ecf50ed4 add missing backslash 2023-06-07 17:18:18 +02:00
5ee99cfdab attempt to fix internal server error 2023-06-07 12:06:04 +02:00
72e610b50d Merge pull request #1323 from AmruthPillai/i18n_main
New Crowdin updates
2023-05-30 16:53:03 +02:00
ba34787333 Merge pull request #1326 from AmruthPillai/dependabot/docker/server/playwright-v1.34.3-focal
Bump playwright from v1.34.0-focal to v1.34.3-focal in /server
2023-05-30 16:52:54 +02:00
e11b0e6224 Bump playwright from v1.34.0-focal to v1.34.3-focal in /server
Bumps playwright from v1.34.0-focal to v1.34.3-focal.

---
updated-dependencies:
- dependency-name: playwright
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-29 02:58:15 +00:00
c78ee18e05 New translations common.json (Norwegian) 2023-05-26 14:15:52 +02:00
5f5b484243 New translations builder.json (Norwegian) 2023-05-26 14:15:50 +02:00
bcc451a6a1 Merge pull request #1320 from AmruthPillai/dependabot/docker/server/playwright-v1.34.0-focal
Bump playwright from v1.32.3-focal to v1.34.0-focal in /server
2023-05-23 21:09:04 +02:00
55a7f6a556 Merge pull request #1315 from dev-abir/main
add icons
2023-05-23 21:08:55 +02:00
e9b6265c60 Merge pull request #1304 from AmruthPillai/dependabot/gradle/app/org.jetbrains.kotlin.android-1.8.21
Bump org.jetbrains.kotlin.android from 1.8.20 to 1.8.21 in /app
2023-05-23 21:08:40 +02:00
2e2f3271c9 Bump playwright from v1.32.3-focal to v1.34.0-focal in /server
Bumps playwright from v1.32.3-focal to v1.34.0-focal.

---
updated-dependencies:
- dependency-name: playwright
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-22 02:58:19 +00:00
fa3e92d643 Merge pull request #1314 from jobayer12/issue-1309
Rename the Work Experience label.
2023-05-17 10:33:51 +02:00
1f9b52eda6 Added the experience section on the leftSidebar. 2023-05-13 17:58:27 +06:00
7074b6fc76 add icon packs according to #834 2023-05-09 22:10:31 +05:30
b4c4fb94f7 Renamed the Work Experience label. 2023-05-08 10:44:57 +06:00
22bdb64fa9 Added the experience section on the leftSidebar. 2023-05-08 10:42:27 +06:00
af02158d05 Bump org.jetbrains.kotlin.android from 1.8.20 to 1.8.21 in /app
Bumps [org.jetbrains.kotlin.android](https://github.com/JetBrains/kotlin) from 1.8.20 to 1.8.21.
- [Release notes](https://github.com/JetBrains/kotlin/releases)
- [Changelog](https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md)
- [Commits](https://github.com/JetBrains/kotlin/compare/v1.8.20...v1.8.21)

---
updated-dependencies:
- dependency-name: org.jetbrains.kotlin.android
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-01 03:03:01 +00:00
6a8db92fc4 fix bugs 2023-04-21 01:13:32 +02:00
6f219ef17e bump up version to 3.7.2 2023-04-20 23:02:14 +02:00
667e51abdc implement larger pool size for db 2023-04-20 22:52:24 +02:00
7b98277c32 Merge pull request #1294 from AmruthPillai/dependabot/docker/server/playwright-v1.32.3-focal
Bump playwright from v1.32.1-focal to v1.32.3-focal in /server
2023-04-20 22:34:03 +02:00
77ed7ed8be Merge pull request #1293 from AmruthPillai/dependabot/github_actions/actions/checkout-3.5.2
Bump actions/checkout from 3.5.0 to 3.5.2
2023-04-20 22:33:56 +02:00
ce584d9326 Merge pull request #1289 from AmruthPillai/i18n_main
New Crowdin updates
2023-04-20 22:33:48 +02:00
5685352375 Merge pull request #1286 from AmruthPillai/dependabot/github_actions/martinbeentjes/npm-get-version-action-1.3.1
Bump martinbeentjes/npm-get-version-action from 1.2.3 to 1.3.1
2023-04-20 22:33:38 +02:00
036b2917a6 update dependencies, attempt to fix server restart issue 2023-04-20 22:33:11 +02:00
e972320722 Bump playwright from v1.32.1-focal to v1.32.3-focal in /server
Bumps playwright from v1.32.1-focal to v1.32.3-focal.

---
updated-dependencies:
- dependency-name: playwright
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-17 02:59:32 +00:00
4ac1e9db35 Bump actions/checkout from 3.5.0 to 3.5.2
Bumps [actions/checkout](https://github.com/actions/checkout) from 3.5.0 to 3.5.2.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3.5.0...v3.5.2)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-17 02:58:06 +00:00
9fe4403b40 New translations modals.json (Nepali) 2023-04-11 08:37:33 +02:00
4f4084ab45 New translations modals.json (Amharic) 2023-04-11 08:37:32 +02:00
72227dc9ab New translations modals.json (Odia) 2023-04-11 08:37:31 +02:00
d44795a421 New translations modals.json (Kannada) 2023-04-11 08:37:30 +02:00
e9584144e4 New translations modals.json (Malayalam) 2023-04-11 08:37:30 +02:00
bbedfa3b75 New translations modals.json (Hindi) 2023-04-11 08:37:29 +02:00
03f7d74096 New translations modals.json (Marathi) 2023-04-11 08:37:28 +02:00
a62693d611 New translations modals.json (Bengali) 2023-04-11 08:37:27 +02:00
421f195e1e New translations modals.json (Tamil) 2023-04-11 08:37:26 +02:00
b22dff523f New translations modals.json (Khmer) 2023-04-11 08:37:25 +02:00
58d0c6e315 New translations modals.json (Persian) 2023-04-11 08:37:24 +02:00
36178cac22 New translations landing.json (Nepali) 2023-04-11 08:37:24 +02:00
376786fa25 New translations landing.json (Amharic) 2023-04-11 08:37:23 +02:00
efceda1c55 New translations landing.json (Odia) 2023-04-11 08:37:22 +02:00
047e317c51 New translations landing.json (Kannada) 2023-04-11 08:37:21 +02:00
36ad63adb9 New translations landing.json (Malayalam) 2023-04-11 08:37:20 +02:00
45c88caf58 New translations landing.json (Hindi) 2023-04-11 08:37:20 +02:00
ca11a9217a New translations landing.json (Marathi) 2023-04-11 08:37:19 +02:00
fd6fbbba77 New translations landing.json (Bengali) 2023-04-11 08:37:18 +02:00
e2fb83bda9 New translations landing.json (Tamil) 2023-04-11 08:37:17 +02:00
40567e8f61 New translations landing.json (Khmer) 2023-04-11 08:37:16 +02:00
64c899b159 New translations modals.json (Indonesian) 2023-04-11 08:37:12 +02:00
b267cc4097 New translations modals.json (Vietnamese) 2023-04-11 08:37:11 +02:00
f4657b6592 New translations modals.json (Chinese Simplified) 2023-04-11 08:37:10 +02:00
6a2f512638 New translations modals.json (Ukrainian) 2023-04-11 08:37:10 +02:00
499005c21f New translations modals.json (Turkish) 2023-04-11 08:37:09 +02:00
0e18d3fc48 New translations modals.json (Serbian (Cyrillic)) 2023-04-11 08:37:08 +02:00
3b831c4eb4 New translations modals.json (Russian) 2023-04-11 08:37:07 +02:00
40564944ef New translations modals.json (Polish) 2023-04-11 08:37:06 +02:00
fdbb6d2e5b New translations modals.json (Norwegian) 2023-04-11 08:37:06 +02:00
398cd63082 New translations modals.json (Dutch) 2023-04-11 08:37:05 +02:00
efd4af14e5 New translations modals.json (Japanese) 2023-04-11 08:37:03 +02:00
889697fc31 New translations modals.json (Hungarian) 2023-04-11 08:37:02 +02:00
3aedf6618d New translations modals.json (Finnish) 2023-04-11 08:37:01 +02:00
abf42e13af New translations modals.json (Greek) 2023-04-11 08:37:00 +02:00
40bcbebadd New translations modals.json (Danish) 2023-04-11 08:36:59 +02:00
364f2e6d49 New translations modals.json (Czech) 2023-04-11 08:36:58 +02:00
7e5dfd75f9 New translations modals.json (Catalan) 2023-04-11 08:36:57 +02:00
b94d10c614 New translations modals.json (Bulgarian) 2023-04-11 08:36:57 +02:00
8c40b417ec New translations modals.json (Arabic) 2023-04-11 08:36:56 +02:00
1f17dfe6ea New translations landing.json (Indonesian) 2023-04-11 08:36:55 +02:00
be6ea1a224 New translations landing.json (Vietnamese) 2023-04-11 08:36:54 +02:00
583e9effae New translations builder.json (Nepali) 2023-04-11 08:36:53 +02:00
619b2757c8 New translations builder.json (Amharic) 2023-04-11 08:36:52 +02:00
9e27eee029 New translations builder.json (Odia) 2023-04-11 08:36:51 +02:00
c2d3c611e1 New translations builder.json (Kannada) 2023-04-11 08:36:50 +02:00
735f589e54 New translations builder.json (Malayalam) 2023-04-11 08:36:49 +02:00
1e3d6fbb77 New translations builder.json (Hindi) 2023-04-11 08:36:48 +02:00
3995e7159a New translations builder.json (Marathi) 2023-04-11 08:36:47 +02:00
6662acf0b0 New translations builder.json (Bengali) 2023-04-11 08:36:47 +02:00
feb8abca95 New translations builder.json (Tamil) 2023-04-11 08:36:46 +02:00
75c83bd91d New translations builder.json (Khmer) 2023-04-11 08:36:45 +02:00
f6d5897ed3 New translations landing.json (Chinese Simplified) 2023-04-11 08:36:44 +02:00
ed356763a1 New translations landing.json (Ukrainian) 2023-04-11 08:36:43 +02:00
4847246d84 New translations landing.json (Turkish) 2023-04-11 08:36:42 +02:00
a0ae6cb77e New translations landing.json (Serbian (Cyrillic)) 2023-04-11 08:36:42 +02:00
2aa2550be0 New translations landing.json (Russian) 2023-04-11 08:36:41 +02:00
df39913d49 New translations landing.json (Polish) 2023-04-11 08:36:40 +02:00
2225505d48 New translations landing.json (Norwegian) 2023-04-11 08:36:39 +02:00
afe20e61ee New translations landing.json (Dutch) 2023-04-11 08:36:38 +02:00
794e9c6511 New translations landing.json (Japanese) 2023-04-11 08:36:37 +02:00
e7e423bf29 New translations landing.json (Hungarian) 2023-04-11 08:36:35 +02:00
2173297207 New translations landing.json (Finnish) 2023-04-11 08:36:34 +02:00
b091cfa474 New translations landing.json (Greek) 2023-04-11 08:36:33 +02:00
057bb3a414 New translations landing.json (Czech) 2023-04-11 08:36:33 +02:00
c1442c9acc New translations landing.json (Catalan) 2023-04-11 08:36:32 +02:00
977f1beafd New translations landing.json (Bulgarian) 2023-04-11 08:36:31 +02:00
39ee710e97 New translations landing.json (Arabic) 2023-04-11 08:36:30 +02:00
1d1841c8db New translations builder.json (Indonesian) 2023-04-11 08:36:29 +02:00
3e44774ed4 New translations builder.json (Vietnamese) 2023-04-11 08:36:28 +02:00
9e2fa01896 New translations builder.json (Chinese Simplified) 2023-04-11 08:36:28 +02:00
7811f9840c New translations builder.json (Ukrainian) 2023-04-11 08:36:27 +02:00
34425c6200 New translations builder.json (Turkish) 2023-04-11 08:36:26 +02:00
46f9fc549a New translations builder.json (Serbian (Cyrillic)) 2023-04-11 08:36:25 +02:00
237abf359b New translations builder.json (Russian) 2023-04-11 08:36:24 +02:00
c5e8739009 New translations builder.json (Polish) 2023-04-11 08:36:23 +02:00
0ea8040977 New translations builder.json (Norwegian) 2023-04-11 08:36:22 +02:00
1f10e8efe3 New translations builder.json (Dutch) 2023-04-11 08:36:21 +02:00
8c2688670e New translations builder.json (Japanese) 2023-04-11 08:36:20 +02:00
bc5d49b568 New translations builder.json (Hungarian) 2023-04-11 08:36:19 +02:00
27ea84e720 New translations builder.json (Finnish) 2023-04-11 08:36:17 +02:00
0becb66bfd New translations builder.json (Greek) 2023-04-11 08:36:16 +02:00
11f88492e9 New translations builder.json (Czech) 2023-04-11 08:36:15 +02:00
ae3e01466f New translations builder.json (Catalan) 2023-04-11 08:36:14 +02:00
5d04dd8a83 New translations builder.json (Bulgarian) 2023-04-11 08:36:13 +02:00
52c15a8151 New translations builder.json (Arabic) 2023-04-11 08:36:12 +02:00
f6104e7051 Bump martinbeentjes/npm-get-version-action from 1.2.3 to 1.3.1
Bumps [martinbeentjes/npm-get-version-action](https://github.com/martinbeentjes/npm-get-version-action) from 1.2.3 to 1.3.1.
- [Release notes](https://github.com/martinbeentjes/npm-get-version-action/releases)
- [Commits](https://github.com/martinbeentjes/npm-get-version-action/compare/v1.2.3...v1.3.1)

---
updated-dependencies:
- dependency-name: martinbeentjes/npm-get-version-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-10 03:09:34 +00:00
ed710f6fe5 hotfix for docker CMD script 2023-04-06 15:41:00 +02:00
7e6e239d7f Merge pull request #1279 from AmruthPillai/i18n_main
New Crowdin updates
2023-04-06 15:04:42 +02:00
b4381a22f3 remove VERSION env dependency from server 2023-04-06 15:03:53 +02:00
ba6ca4d220 update build commands for pnpm on Dockerfile 2023-04-06 14:42:36 +02:00
5486906b05 use corepack to install pnpm, over regular method 2023-04-06 13:08:51 +02:00
7348b295cb upgrade gradle version from 7.4.0 to 7.4.2 2023-04-06 12:40:57 +02:00
025762fdf6 update Gradle distributions on Android App 2023-04-06 11:58:00 +02:00
96411cdb90 remove turbo from the workspace 2023-04-06 11:50:28 +02:00
835f453384 New translations dashboard.json (Italian) 2023-04-05 22:56:45 +02:00
cc475ae1e9 New translations common.json (Italian) 2023-04-05 22:56:44 +02:00
a5249ec646 New translations modals.json (Italian) 2023-04-05 22:56:42 +02:00
d0e3090421 New translations landing.json (Italian) 2023-04-05 22:56:39 +02:00
14f68c8937 New translations builder.json (Italian) 2023-04-05 22:56:37 +02:00
9c0c6076b3 update pnpm in dockerfile 2023-04-05 09:25:28 +02:00
36bf729161 update dependencies, fix typescript issues, optimize lodash imports 2023-04-05 09:06:49 +02:00
3a430ad98c bump up version to 3.6.19 2023-04-04 23:47:28 +02:00
90a8610dd7 update dependencies 2023-04-04 23:47:02 +02:00
d62ddab140 Merge pull request #1276 from AmruthPillai/dependabot/gradle/app/org.jetbrains.kotlin.android-1.8.20
Bump org.jetbrains.kotlin.android from 1.8.10 to 1.8.20 in /app
2023-04-04 12:53:30 +02:00
ca0186bb67 Merge pull request #1268 from AmruthPillai/dependabot/docker/server/playwright-v1.32.1-focal
Bump playwright from v1.30.0-focal to v1.32.1-focal in /server
2023-04-04 12:44:15 +02:00
88ac8389ea Merge pull request #1267 from AmruthPillai/dependabot/github_actions/actions/checkout-3.5.0
Bump actions/checkout from 3.3.0 to 3.5.0
2023-04-04 11:38:14 +02:00
2f3864fff2 Merge pull request #1254 from AmruthPillai/dependabot/github_actions/docker/setup-buildx-action-2.5.0
Bump docker/setup-buildx-action from 2.4.0 to 2.5.0
2023-04-04 11:38:03 +02:00
7878e52cc4 Merge pull request #1227 from AmruthPillai/i18n_main
New Crowdin updates
2023-04-04 11:37:51 +02:00
08b1967a4e Bump org.jetbrains.kotlin.android from 1.8.10 to 1.8.20 in /app
Bumps [org.jetbrains.kotlin.android](https://github.com/JetBrains/kotlin) from 1.8.10 to 1.8.20.
- [Release notes](https://github.com/JetBrains/kotlin/releases)
- [Changelog](https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md)
- [Commits](https://github.com/JetBrains/kotlin/commits)

---
updated-dependencies:
- dependency-name: org.jetbrains.kotlin.android
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-03 03:02:02 +00:00
b870ca8297 New translations dashboard.json (Korean) 2023-04-01 21:34:54 +02:00
1507c54671 New translations common.json (Korean) 2023-04-01 21:34:53 +02:00
0984ca4daf New translations modals.json (Korean) 2023-04-01 21:34:51 +02:00
438798f8de New translations landing.json (Korean) 2023-04-01 21:34:49 +02:00
27aadb8948 New translations builder.json (Korean) 2023-04-01 21:34:47 +02:00
244a4118cf New translations common.json (Korean) 2023-04-01 20:24:02 +02:00
cde320ce46 New translations dashboard.json (Hebrew) 2023-03-30 11:44:14 +02:00
4772df7618 New translations modals.json (Hebrew) 2023-03-30 11:44:11 +02:00
ecb95b35f3 New translations landing.json (Hebrew) 2023-03-30 11:44:07 +02:00
24b09af563 New translations builder.json (Hebrew) 2023-03-30 11:44:03 +02:00
9471fb4169 New translations dashboard.json (Hebrew) 2023-03-30 10:38:01 +02:00
2f296d6f08 New translations common.json (Hebrew) 2023-03-30 10:38:00 +02:00
cd3d3caa15 New translations modals.json (Hebrew) 2023-03-30 10:37:57 +02:00
440eefe46e Bump playwright from v1.30.0-focal to v1.32.1-focal in /server
Bumps playwright from v1.30.0-focal to v1.32.1-focal.

---
updated-dependencies:
- dependency-name: playwright
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-27 02:59:00 +00:00
5787e2badb Bump actions/checkout from 3.3.0 to 3.5.0
Bumps [actions/checkout](https://github.com/actions/checkout) from 3.3.0 to 3.5.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3.3.0...v3.5.0)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-27 02:58:28 +00:00
c235e5ab16 Bump docker/setup-buildx-action from 2.4.0 to 2.5.0
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 2.4.0 to 2.5.0.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](https://github.com/docker/setup-buildx-action/compare/v2.4.0...v2.5.0)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-13 02:59:14 +00:00
f584c70f27 New translations landing.json (Danish) 2023-02-17 04:15:04 +05:30
3aa0279519 New translations builder.json (Danish) 2023-02-17 04:15:00 +05:30
6830aec2f9 New translations landing.json (Danish) 2023-02-17 01:27:01 +05:30
9a3d7af325 New translations common.json (French) 2023-02-12 19:25:54 +05:30
52f7e8557f New translations modals.json (French) 2023-02-12 19:25:50 +05:30
12c17d1c7c New translations landing.json (French) 2023-02-12 19:25:47 +05:30
67918187a1 New translations builder.json (French) 2023-02-12 19:25:46 +05:30
dcbc0c2b45 New translations dashboard.json (French) 2023-02-12 16:57:35 +05:30
26b6a741c2 New translations builder.json (French) 2023-02-12 16:57:29 +05:30
d7064129e8 Merge pull request #1225 from raphaelcangucu/feature.pt-BR
Translation fixes on LeftSideBar
2023-02-10 08:33:56 +05:30
279dd36a13 Fix translations for other languages 2023-02-08 19:19:48 -03:00
49e47b28de fix date and start to translate to pt-br 2023-02-08 15:43:23 -03:00
a782343e0a Merge pull request #1218 from AmruthPillai/dependabot/gradle/app/org.jetbrains.kotlin.android-1.8.10
Bump org.jetbrains.kotlin.android from 1.8.0 to 1.8.10 in /app
2023-02-08 02:03:17 +05:30
1e7821a46d Merge pull request #1217 from AmruthPillai/dependabot/github_actions/docker/setup-buildx-action-2.4.0
Bump docker/setup-buildx-action from 2.3.0 to 2.4.0
2023-02-08 02:03:08 +05:30
f7bea5a218 Merge pull request #1216 from AmruthPillai/dependabot/github_actions/docker/build-push-action-4.0.0
Bump docker/build-push-action from 3.3.0 to 4.0.0
2023-02-08 02:02:57 +05:30
05fa4f3192 Merge pull request #1190 from AmruthPillai/i18n_main
New Crowdin updates
2023-02-08 02:02:46 +05:30
ed357f0ebc Merge pull request #1215 from C4illin/main
Add ISO 8601 option
2023-02-08 02:02:36 +05:30
1774832a58 Bump org.jetbrains.kotlin.android from 1.8.0 to 1.8.10 in /app
Bumps [org.jetbrains.kotlin.android](https://github.com/JetBrains/kotlin) from 1.8.0 to 1.8.10.
- [Release notes](https://github.com/JetBrains/kotlin/releases)
- [Changelog](https://github.com/JetBrains/kotlin/blob/v1.8.10/ChangeLog.md)
- [Commits](https://github.com/JetBrains/kotlin/compare/v1.8.0...v1.8.10)

---
updated-dependencies:
- dependency-name: org.jetbrains.kotlin.android
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-06 02:25:09 +00:00
2837befd52 Bump docker/setup-buildx-action from 2.3.0 to 2.4.0
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 2.3.0 to 2.4.0.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](https://github.com/docker/setup-buildx-action/compare/v2.3.0...v2.4.0)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-06 02:20:21 +00:00
38d866c0c2 Bump docker/build-push-action from 3.3.0 to 4.0.0
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 3.3.0 to 4.0.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v3.3.0...v4.0.0)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-06 02:20:16 +00:00
87c7acf4f1 New translations modals.json (Swedish) 2023-02-06 01:53:14 +01:00
1bd68118ce New translations landing.json (Swedish) 2023-02-06 01:53:11 +01:00
5c34b28c80 New translations builder.json (Swedish) 2023-02-06 01:53:08 +01:00
c550183720 Add ISO 8601 option 2023-02-05 23:28:21 +01:00
3605579b1b Merge pull request #1206 from AmruthPillai/dependabot/github_actions/docker/setup-buildx-action-2.3.0
Bump docker/setup-buildx-action from 2.2.1 to 2.3.0
2023-01-30 08:40:37 +01:00
fa2e28688f Merge pull request #1207 from AmruthPillai/dependabot/docker/server/playwright-v1.30.0-focal
Bump playwright from v1.29.2-focal to v1.30.0-focal in /server
2023-01-30 08:40:27 +01:00
20f1031e28 Bump playwright from v1.29.2-focal to v1.30.0-focal in /server
Bumps playwright from v1.29.2-focal to v1.30.0-focal.

---
updated-dependencies:
- dependency-name: playwright
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-30 02:17:52 +00:00
292cb6d0ed Bump docker/setup-buildx-action from 2.2.1 to 2.3.0
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 2.2.1 to 2.3.0.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](https://github.com/docker/setup-buildx-action/compare/v2.2.1...v2.3.0)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-30 02:16:52 +00:00
45f2dc1cfc Merge pull request #1195 from busches/castform-masthead-spacing
fix: extra whitespace in Castform header
2023-01-23 13:10:56 +01:00
e319dd3e3d fix: extra whitespace in Castform header
Using the Castform template without a summary, still has extra whitespace for the summary. This commit fixes the extra whitespace to not appear when no summary is present.
2023-01-22 17:48:27 -06:00
9678f7a6e5 New translations modals.json (Portuguese) 2023-01-22 22:58:07 +01:00
0cca4e21fb New translations landing.json (Portuguese) 2023-01-22 22:58:04 +01:00
f6758f191d New translations builder.json (Portuguese) 2023-01-22 22:58:01 +01:00
983662f877 New translations common.json (German) 2023-01-21 00:50:00 +01:00
c7fc28a5c5 New translations modals.json (German) 2023-01-21 00:49:57 +01:00
1f7c33e805 New translations common.json (German) 2023-01-20 23:41:22 +01:00
437cc331a8 New translations landing.json (German) 2023-01-20 23:41:15 +01:00
aef51375b8 New translations builder.json (German) 2023-01-20 23:41:14 +01:00
bdd65968e5 New translations dashboard.json (Spanish) 2023-01-20 19:04:27 +01:00
061a789c18 New translations modals.json (Spanish) 2023-01-20 19:04:23 +01:00
68507d0501 New translations builder.json (Spanish) 2023-01-20 19:04:19 +01:00
1e28c5adfa New translations modals.json (Romanian) 2023-01-20 10:41:28 +01:00
3b09550ebd New translations landing.json (Romanian) 2023-01-20 10:41:25 +01:00
16aef9cbec New translations builder.json (Romanian) 2023-01-20 10:41:22 +01:00
b24da90ba7 bump up version to 3.6.18 2023-01-19 07:55:12 +01:00
2aa7dbd3ad Merge pull request #1188 from AmruthPillai/feat/implement-self-serve-account-deletion
[Feature] Implement Self-Serve Account Deletion
2023-01-19 07:53:49 +01:00
9f8f2c4b8b remove console.log 2023-01-19 07:52:59 +01:00
5331ecccc1 i18n-ize the user profile modal 2023-01-19 07:51:43 +01:00
f2ec86940c Merge branch 'main' into feat/implement-self-serve-account-deletion 2023-01-19 07:34:11 +01:00
cd74e707ba update dependencies 2023-01-19 07:33:15 +01:00
ff101dbfac [Feature] Implement Self-Serve Account Deletion 2023-01-19 00:11:15 +01:00
5024c19f87 fix error messages not displaying toasts sometimes, add axios error interceptors 2023-01-18 21:36:05 +01:00
c9850b5815 Merge pull request #1183 from AmruthPillai/i18n_main
New Crowdin updates
2023-01-18 20:37:54 +01:00
6fe4e7d7e1 Merge pull request #1184 from AmruthPillai/dependabot/github_actions/docker/build-push-action-3.3.0
Bump docker/build-push-action from 3.2.0 to 3.3.0
2023-01-16 10:53:29 +01:00
a5b8b91e82 Bump docker/build-push-action from 3.2.0 to 3.3.0
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 3.2.0 to 3.3.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v3.2.0...v3.3.0)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-16 02:33:23 +00:00
cc7095adc3 New translations landing.json (Spanish) 2023-01-16 01:53:40 +01:00
e2703f55aa New translations builder.json (Spanish) 2023-01-16 01:53:37 +01:00
8c5849c988 Merge pull request #1172 from AmruthPillai/dependabot/github_actions/actions/checkout-3.3.0
Bump actions/checkout from 3.2.0 to 3.3.0
2023-01-09 10:02:35 +01:00
5322ab2420 Merge pull request #1173 from AmruthPillai/dependabot/docker/server/playwright-v1.29.2-focal
Bump playwright from v1.29.1-focal to v1.29.2-focal in /server
2023-01-09 10:02:27 +01:00
b84e6bcfb1 Bump playwright from v1.29.1-focal to v1.29.2-focal in /server
Bumps playwright from v1.29.1-focal to v1.29.2-focal.

---
updated-dependencies:
- dependency-name: playwright
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-09 02:06:20 +00:00
a4ab0174c7 Bump actions/checkout from 3.2.0 to 3.3.0
Bumps [actions/checkout](https://github.com/actions/checkout) from 3.2.0 to 3.3.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3.2.0...v3.3.0)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-09 02:05:40 +00:00
7e93b5a757 update dependencies 2023-01-04 22:15:13 +01:00
044820fa71 Update README.md 2023-01-04 16:05:30 +01:00
322178e8a4 Merge pull request #1165 from JadinHeaston/main
Fixing unconditional ```http://``` prefix.
2023-01-03 23:22:17 +01:00
6358fbad30 Adding check for ``addHttp()` to see if `mailto:` or `tel:`` is present.Signed-off-by: Jadin Heaston <jadin.heaston@como.gov> 2023-01-03 13:57:07 -06:00
d342c0a9af fix axios type issue 2023-01-03 17:17:35 +01:00
63084eebb4 feat(dependencies): ⬆️ update dependencies, fix date display issue, add more profile icons 2023-01-03 17:06:30 +01:00
3b4ea00db8 Merge pull request #1162 from AmruthPillai/dependabot/gradle/app/org.jetbrains.kotlin.android-1.8.0
Bump org.jetbrains.kotlin.android from 1.7.22 to 1.8.0 in /app
2023-01-03 16:51:17 +01:00
c8f7bffe7e Merge pull request #1160 from coolswood/main
fix: Gengar two cols bug
2023-01-03 16:51:09 +01:00
3ff56f89d9 Merge pull request #1158 from AmruthPillai/i18n_main
New Crowdin updates
2023-01-03 16:50:48 +01:00
7fb9f27837 Bump org.jetbrains.kotlin.android from 1.7.22 to 1.8.0 in /app
Bumps [org.jetbrains.kotlin.android](https://github.com/JetBrains/kotlin) from 1.7.22 to 1.8.0.
- [Release notes](https://github.com/JetBrains/kotlin/releases)
- [Changelog](https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md)
- [Commits](https://github.com/JetBrains/kotlin/compare/v1.7.22...v1.8.0)

---
updated-dependencies:
- dependency-name: org.jetbrains.kotlin.android
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-02 02:04:34 +00:00
c9685d4ce7 fix: Gengar two cols bug 2022-12-31 10:01:54 +02:00
4dc987e27d New translations landing.json (Persian) 2022-12-30 19:09:41 +01:00
f7af06ae9a New translations builder.json (Persian) 2022-12-30 18:12:15 +01:00
a5c337faa3 Merge pull request #1151 from AmruthPillai/dependabot/github_actions/digitalocean/action-doctl-2.3.0
Bump digitalocean/action-doctl from 2.2.0 to 2.3.0
2022-12-30 11:48:34 +01:00
fc4704f0a6 Merge pull request #1150 from AmruthPillai/dependabot/docker/server/playwright-v1.29.1-focal
Bump playwright from v1.29.0-focal to v1.29.1-focal in /server
2022-12-30 11:48:25 +01:00
d968334ada Merge pull request #1155 from coolswood/main
fix: overflow-y-auto
2022-12-29 21:37:29 +01:00
fea6d23178 fix: overflow-y-auto 2022-12-29 19:37:47 +02:00
3fefc95572 Bump digitalocean/action-doctl from 2.2.0 to 2.3.0
Bumps [digitalocean/action-doctl](https://github.com/digitalocean/action-doctl) from 2.2.0 to 2.3.0.
- [Release notes](https://github.com/digitalocean/action-doctl/releases)
- [Commits](https://github.com/digitalocean/action-doctl/compare/v2.2.0...v2.3.0)

---
updated-dependencies:
- dependency-name: digitalocean/action-doctl
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-26 02:04:49 +00:00
b07e7d1213 Bump playwright from v1.29.0-focal to v1.29.1-focal in /server
Bumps playwright from v1.29.0-focal to v1.29.1-focal.

---
updated-dependencies:
- dependency-name: playwright
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-26 02:04:31 +00:00
d47b8bfb03 Merge pull request #1139 from AmruthPillai/dependabot/github_actions/actions/checkout-3.2.0
Bump actions/checkout from 3.1.0 to 3.2.0
2022-12-19 10:22:44 +01:00
5bf7fbdae1 Merge pull request #1140 from AmruthPillai/dependabot/docker/server/playwright-v1.29.0-focal
Bump playwright from v1.28.1-focal to v1.29.0-focal in /server
2022-12-19 10:22:34 +01:00
fca766b382 Bump playwright from v1.28.1-focal to v1.29.0-focal in /server
Bumps playwright from v1.28.1-focal to v1.29.0-focal.

---
updated-dependencies:
- dependency-name: playwright
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-19 02:06:27 +00:00
feadfb1b67 Bump actions/checkout from 3.1.0 to 3.2.0
Bumps [actions/checkout](https://github.com/actions/checkout) from 3.1.0 to 3.2.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3.1.0...v3.2.0)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-19 02:06:19 +00:00
e69000f221 Merge pull request #1137 from AmruthPillai/feat/add-remark-gfm-math-plugins
feat(client):  add github flavored syntax and math equations to markdown support
2022-12-17 10:27:19 +01:00
6b4a54465a feat(client): add github flavored syntax and math equations to markdown support 2022-12-17 10:19:25 +01:00
878659999f Merge pull request #1135 from AmruthPillai/i18n_main
New Crowdin updates
2022-12-17 09:53:13 +01:00
1868c47e30 New translations common.json (Dutch) 2022-12-17 09:48:12 +01:00
51442efc23 New translations common.json (German) 2022-12-17 09:48:07 +01:00
556e962ec5 refactor(client): 📝 add link to subreddit 2022-12-16 22:56:23 +01:00
b5ce67f863 Update README.md 2022-12-16 18:06:46 +01:00
c3ce89dc3a Update README.md 2022-12-16 18:04:22 +01:00
e87930c758 bump version to 3.6.16 2022-12-16 17:59:58 +01:00
815a693e58 Merge pull request #1134 from AmruthPillai/feature/configure-gitpod
Configure Gitpod for easier development and self-hosting
2022-12-16 17:58:50 +01:00
8287fcae96 add gitpod to README.md 2022-12-16 17:58:38 +01:00
cd7fe6c404 Remove .env.gitpod 2022-12-16 15:58:22 +00:00
d47d5dd819 build and run project finally, in gitpod 2022-12-16 16:52:37 +01:00
1919d79e43 fix url host parsing 2022-12-16 15:50:43 +00:00
ab08cd9e34 add sync await/done 2022-12-16 16:46:26 +01:00
2522bdd0a2 add onOpen: ignore to postgres port 2022-12-16 16:42:02 +01:00
f9b6aefffe create .env generation script 2022-12-16 16:39:29 +01:00
2ba6658a0b add CORS to server, input appUrl 2022-12-16 15:04:08 +00:00
dbc46f27a3 add postgres port 2022-12-16 14:12:43 +00:00
f21e1caed1 trying this now 2022-12-16 15:09:43 +01:00
4ffe2a6330 add 2022-12-16 15:03:22 +01:00
1bc0438872 remove 2022-12-16 15:03:06 +01:00
57fb9fdaea add dockerfile support to gitpod.yml 2022-12-16 14:01:17 +00:00
58ce641f18 add postgres to gitpod 2022-12-16 13:56:08 +00:00
5f4e7802e4 Merge branch 'main' into feature/configure-gitpod 2022-12-16 13:44:46 +00:00
42d3109ae1 Merge pull request #1128 from AmruthPillai/dependabot/gradle/app/org.jetbrains.kotlin.android-1.7.22
Bump org.jetbrains.kotlin.android from 1.7.21 to 1.7.22 in /app
2022-12-16 14:43:57 +01:00
f7ca7b97fa Merge pull request #1127 from AmruthPillai/dependabot/docker/server/playwright-v1.28.1-focal
Bump playwright from v1.28.0-focal to v1.28.1-focal in /server
2022-12-16 14:43:51 +01:00
f5d8a54134 Merge pull request #1130 from Jack-Kingdom/main
Fix: wait for networkidle event to ensure image load
2022-12-16 14:43:43 +01:00
eaec14dc62 initial gitpod configuration 2022-12-16 13:42:03 +00:00
c93b3264cd Bump playwright from v1.28.0-focal to v1.28.1-focal in /server
Bumps playwright from v1.28.0-focal to v1.28.1-focal.

---
updated-dependencies:
- dependency-name: playwright
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-16 13:34:56 +00:00
bf41aa9c6c feat(sentry): remove sentry integration 2022-12-16 14:34:15 +01:00
8af6bfd5ae Fix: wait for networkidle event to ensure image load 2022-12-10 02:55:38 +08:00
ab08c10874 Bump org.jetbrains.kotlin.android from 1.7.21 to 1.7.22 in /app
Bumps [org.jetbrains.kotlin.android](https://github.com/JetBrains/kotlin) from 1.7.21 to 1.7.22.
- [Release notes](https://github.com/JetBrains/kotlin/releases)
- [Changelog](https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md)
- [Commits](https://github.com/JetBrains/kotlin/compare/v1.7.21...v1.7.22)

---
updated-dependencies:
- dependency-name: org.jetbrains.kotlin.android
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-05 02:08:23 +00:00
9af9a0284e set sentry user ID, if available and applicable 2022-12-03 00:15:08 +01:00
716a05032d one more attempt to fix sentry auth issue 2022-12-02 23:54:25 +01:00
43e43e7d76 one more attempt to fix sentry auth issue 2022-12-02 23:44:51 +01:00
c91af3668d attempt to fix sentry auth issue 2022-12-02 23:32:04 +01:00
52f41f0b3b bump version to v3.6.15 2022-12-02 23:22:54 +01:00
3b709d606b Merge pull request #1120 from AmruthPillai/feature/sentry-integration
[Feature] Sentry Integration (Optional for Self Hosted)
2022-12-02 23:21:59 +01:00
2e5fafac62 remove unnecessary envs 2022-12-02 23:21:00 +01:00
ea2aee2d25 add release version to sentry ci process 2022-12-02 23:16:48 +01:00
e36fbb5f64 Update .env.example 2022-12-02 22:13:07 +01:00
5221ef707b Merge branch 'main' into feature/sentry-integration 2022-12-02 22:10:58 +01:00
f0df806f01 remove link underline style 2022-12-02 22:10:08 +01:00
9d01d6a833 update version ot 3.6.14 2022-12-02 13:59:13 +01:00
1914ebb9ae fix links in PDF 2022-12-02 13:55:56 +01:00
686dba90c9 Merge pull request #1114 from tryallthethings/pdf-template-fix
Fix for links in PDFs, template fix
2022-12-02 13:41:37 +01:00
95dc3bf571 Merge pull request #1108 from tryallthethings/translation-fix
Translation fix
2022-12-02 13:37:35 +01:00
1c8fdbf848 Merge pull request #1107 from tryallthethings/main
fix: made some missing texts translatable
2022-12-02 13:37:25 +01:00
d8357c9959 Fix: Every other instance of invoked clsx hence adding it here as well. 2022-11-26 14:37:48 +01:00
90e994377b Fix: Adding quotation marks seems to fix #1112 2022-11-26 14:36:56 +01:00
82c6ee6d5d fix: Updated German translation. A lot of minor changes as well as rephrasing of whole sentences. This translation is now also 100% formal, instead of a mix of formal and informal. 2022-11-25 18:42:37 +01:00
7b615e73c3 fix: Changed German language description to formal 2022-11-25 18:42:00 +01:00
268e4a87fe Revert "fix: made some missing texts translatable"
This reverts commit deb4e0a0de.
2022-11-25 18:39:09 +01:00
73f8eb84c9 Revert "fix: Updated German translation. A lot of minor changes as well as rephrasing of whole sentences."
This reverts commit e0a42fd928.
2022-11-25 18:39:07 +01:00
a31ef89996 Revert "fix: Changed German language description to formal"
This reverts commit d6bca7ebab.
2022-11-25 18:38:55 +01:00
d6bca7ebab fix: Changed German language description to formal 2022-11-25 18:29:55 +01:00
e0a42fd928 fix: Updated German translation. A lot of minor changes as well as rephrasing of whole sentences. 2022-11-25 18:27:28 +01:00
deb4e0a0de fix: made some missing texts translatable
BREAKING CHANGE: locales without the new fields will display the field name
2022-11-25 18:22:29 +01:00
a687062866 Merge pull request #1105 from tryallthethings/patch-3
Update date.ts
2022-11-25 18:10:11 +01:00
700439c8a8 Update date.ts
Added a common date format for Germany.
2022-11-25 18:00:08 +01:00
fb09283e53 add some more properties for sentry 2022-11-25 13:07:40 +01:00
88ac365e03 use v1.28.0-focal instead of next-jammy 2022-11-25 11:52:14 +01:00
aec78cf875 lay the ground work for sentry integration 2022-11-25 11:32:57 +01:00
77c587681b using fetch instead of axios, should fix the issue 2022-11-24 22:25:23 +01:00
7ac8b906d9 add await 2022-11-24 22:16:00 +01:00
e9a5f86a6a using fetch instead of axios, server side 2022-11-24 22:14:01 +01:00
7238a3b50e some more logs 2022-11-24 22:01:00 +01:00
ebe13fa82e push a bunch of console.logs 2022-11-24 21:45:42 +01:00
6ee290a625 add logs to check what's wrong 2022-11-24 21:31:43 +01:00
69f2b7070f remove arm64 support for the time being, because of upstream support 2022-11-24 21:09:32 +01:00
11bea1c7c4 updating version to v3.6.13 2022-11-24 20:35:28 +01:00
68a1dc65c1 update pnpm-lock.yaml 2022-11-24 17:04:11 +01:00
4b1ce539d5 remove sentry integration 2022-11-24 16:58:36 +01:00
a6fbb8191d Update docker-build-push.yml 2022-11-24 16:32:22 +01:00
552ff281b8 I have no idea what I'm doing here. 2022-11-24 16:29:36 +01:00
54fad2f6d8 update docker-build-push.yml 2022-11-24 16:20:40 +01:00
78edcd7d0e fix typo in github workflow 2022-11-24 16:02:39 +01:00
a8034b21d5 attempting to fix github actions 2022-11-24 15:58:27 +01:00
f0e95905d2 trying out env instead of secrets 2022-11-24 15:44:28 +01:00
69a5276614 attempt to fix locale issue 2022-11-24 15:40:49 +01:00
2e62eea351 fix sentry issue: 28c5a41aea3c4435902046e56c435e56 2022-11-24 15:38:21 +01:00
13d972b8f3 update docker-build-push.yaml 2022-11-24 15:15:35 +01:00
03cb198e95 move from env to secrets 2022-11-24 15:11:55 +01:00
67ee55b502 fix env for sentry auth token 2022-11-24 15:01:33 +01:00
b5998d7f3a pass sentry token to docker build push step 2022-11-24 14:58:26 +01:00
f71cf99b77 remove .git from .dockerignore 2022-11-24 13:27:43 +01:00
a2092a6a39 revert version back to 3.6.12 2022-11-24 12:58:15 +01:00
43c09666a0 add sentry CLI to github actions 2022-11-24 11:42:03 +01:00
0da23f95fd Merge pull request #1101 from stonespheres/patch-1
Fix link typo
2022-11-24 11:25:17 +01:00
e8f44e2142 update pnpm-lock.yaml 2022-11-24 11:23:37 +01:00
fbb237e982 Fix link typo
Bad practice on my part for last commit - did not check before push.
Link under table of contents fixed and now directs to the documentation at https://docs.rxresu.me
2022-11-24 18:22:57 +08:00
7f7c1d7b87 update version to 3.6.13 2022-11-24 11:21:45 +01:00
be0b7f20f9 integrate sentry for error logging 2022-11-24 11:21:30 +01:00
0672988fff Merge pull request #1100 from stonespheres/patch-1
Fixed formatting and typos on README.md
2022-11-24 11:01:38 +01:00
75dad60cb5 Fixed formatting and typos on README.md
- Under Table of Contents: Fixed the formatting error for the link to the docs.
- Under Languages: fixed typo Ukranian -> Ukrainian
- Under Building from Source: ...head over to the doc's -> head over to the docs
2022-11-24 17:47:29 +08:00
0140e3fce0 update version to 3.6.12 2022-11-23 15:20:34 +01:00
42d0e14b98 fix styling issues and theme cascades across all templates 2022-11-23 15:20:04 +01:00
9a42d684fb add branching deploy condition 2022-11-23 14:15:36 +01:00
ab6ad65445 update github actions to a more streamlined workflow using gh matrix 2022-11-23 14:10:14 +01:00
b613764ccc fix matrix variable name 2022-11-23 13:59:25 +01:00
ac44d0489f change name of test action so as to not trigger further actions 2022-11-23 13:56:59 +01:00
c57e6fbbb8 fix versioning of github action package 2022-11-23 13:56:22 +01:00
6c6da215c8 add on: [workflow_dispatch] to test github action 2022-11-23 13:55:15 +01:00
be700c7629 Testing a new streamlined GitHub Actions workflow 2022-11-23 13:53:41 +01:00
b697f73492 fix #1096 2022-11-23 13:11:29 +01:00
3106f94989 - update version to v.3.6.11
- update dependencies to latest versions
2022-11-23 13:04:59 +01:00
50f41f73d5 Add detailed description to page title, to increase SEO 2022-11-23 12:57:07 +01:00
83e3f59e68 fix #1082 2022-11-23 12:47:29 +01:00
056c61e985 resolves #1061, resolves #1027, resolves #1007, resolves #1001, resolves #987, resolves #890, resolves #882, resolves #837 2022-11-23 12:24:17 +01:00
d1a1b68302 fix #1095: make PDF_DELETION_TIME optional, add default value 2022-11-23 11:51:28 +01:00
6bd7b9a50f Merge pull request #1092 from GETandSELECT/main
Update common.json - tiny translation error to German
2022-11-23 11:41:54 +01:00
e6967aab88 Update common.json 2022-11-22 10:03:14 +00:00
47e96803e3 fix password recovery link 2022-11-19 09:37:23 +01:00
f9ef4d0a64 fix max width of description 2022-11-18 09:42:59 +01:00
c4b4e6013f Merge pull request #1073 from AmruthPillai/dependabot/gradle/app/org.jetbrains.kotlin.android-1.7.21
Bump org.jetbrains.kotlin.android from 1.7.20 to 1.7.21 in /app
2022-11-15 11:36:04 +01:00
24bbc46c32 Merge pull request #1075 from RobbeVanslambrouck/main
fix typos in English and Dutch translation
2022-11-15 11:35:54 +01:00
85bc9ef124 fix typos in English and Dutch translation 2022-11-14 17:29:09 +01:00
33755a8573 remove console.log 2022-11-14 10:06:19 +01:00
ab45321889 fixes #1074 2022-11-14 10:05:51 +01:00
940b310f64 Bump org.jetbrains.kotlin.android from 1.7.20 to 1.7.21 in /app
Bumps [org.jetbrains.kotlin.android](https://github.com/JetBrains/kotlin) from 1.7.20 to 1.7.21.
- [Release notes](https://github.com/JetBrains/kotlin/releases)
- [Changelog](https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md)
- [Commits](https://github.com/JetBrains/kotlin/compare/v1.7.20...v1.7.21)

---
updated-dependencies:
- dependency-name: org.jetbrains.kotlin.android
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-14 02:06:07 +00:00
8026241b6c release: v3.6.9 2022-11-13 14:28:47 +01:00
89b35392bd Merge pull request #1060 from sashokbg/feat/multiple_work_sections
feat: additional work sections
2022-11-13 10:28:28 +01:00
62eb239ec4 Merge pull request #1023 from klejejs/main
Add PDF file caching
2022-11-13 10:28:19 +01:00
7fdf8c1f0c Merge pull request #1069 from arvaid/main
fixed grammatical and stylistic errors in Hungarian translation
2022-11-07 09:28:00 +01:00
538697238a fixed grammatical and stylistic errors in Hungarian translation 2022-11-06 14:46:55 +01:00
7bc4a998fe feat: additional work sections 2022-11-03 17:59:15 +01:00
e33df485ab Merge pull request #951 from Leopere/patch-3
Cleanup superfluous docker-compose.yml declarations
2022-11-02 23:36:21 +01:00
36ae54fe17 Merge branch 'main' into patch-3 2022-11-02 23:36:13 +01:00
50958fd6df Merge pull request #1058 from klejejs/fix/zip_file_upload_crash
Fix server crash when non-zip file is uploaded
2022-10-26 07:57:49 +02:00
e9e595f0d0 Fix server crash when non-zip file is uploaded 2022-10-25 22:03:18 +03:00
43ddfba777 Add scheduled deletion for cached PDF files 2022-10-25 21:10:40 +03:00
78a32961d7 Add PDF file caching 2022-10-25 20:16:39 +03:00
9b1f3eda05 Merge pull request #1053 from AmruthPillai/i18n_main
New Crowdin updates
2022-10-24 07:58:36 +02:00
1154621e5c Merge pull request #1057 from AmruthPillai/dependabot/github_actions/docker/setup-buildx-action-2.2.1
Bump docker/setup-buildx-action from 2.1.0 to 2.2.1
2022-10-24 07:58:25 +02:00
e7aeee77a7 Merge pull request #1056 from AmruthPillai/dependabot/github_actions/digitalocean/action-doctl-2.2.0
Bump digitalocean/action-doctl from 2.1.1 to 2.2.0
2022-10-24 07:58:16 +02:00
fab3988a36 Bump docker/setup-buildx-action from 2.1.0 to 2.2.1
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 2.1.0 to 2.2.1.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](https://github.com/docker/setup-buildx-action/compare/v2.1.0...v2.2.1)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-24 02:53:50 +00:00
354cad88d3 Bump digitalocean/action-doctl from 2.1.1 to 2.2.0
Bumps [digitalocean/action-doctl](https://github.com/digitalocean/action-doctl) from 2.1.1 to 2.2.0.
- [Release notes](https://github.com/digitalocean/action-doctl/releases)
- [Commits](https://github.com/digitalocean/action-doctl/compare/v2.1.1...v2.2.0)

---
updated-dependencies:
- dependency-name: digitalocean/action-doctl
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-24 02:53:45 +00:00
876f930f30 New translations builder.json (Indonesian) 2022-10-21 05:55:29 +02:00
5b3ea46f0f Merge pull request #1045 from AmruthPillai/dependabot/github_actions/docker/setup-buildx-action-2.1.0
Bump docker/setup-buildx-action from 2.0.0 to 2.1.0
2022-10-17 10:39:55 +02:00
37a2563c11 Merge pull request #1047 from AmruthPillai/dependabot/github_actions/docker/build-push-action-3.2.0
Bump docker/build-push-action from 3.1.1 to 3.2.0
2022-10-17 10:39:42 +02:00
cb977a146b Merge pull request #1046 from AmruthPillai/dependabot/github_actions/docker/login-action-2.1.0
Bump docker/login-action from 2.0.0 to 2.1.0
2022-10-17 10:39:31 +02:00
72b2551b6d Merge pull request #1044 from AmruthPillai/dependabot/github_actions/docker/setup-qemu-action-2.1.0
Bump docker/setup-qemu-action from 2.0.0 to 2.1.0
2022-10-17 10:39:22 +02:00
c94633e616 Bump docker/build-push-action from 3.1.1 to 3.2.0
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 3.1.1 to 3.2.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v3.1.1...v3.2.0)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-17 02:21:39 +00:00
7fee2d670f Bump docker/login-action from 2.0.0 to 2.1.0
Bumps [docker/login-action](https://github.com/docker/login-action) from 2.0.0 to 2.1.0.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/v2.0.0...v2.1.0)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-17 02:21:36 +00:00
837b06eb38 Bump docker/setup-buildx-action from 2.0.0 to 2.1.0
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 2.0.0 to 2.1.0.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](https://github.com/docker/setup-buildx-action/compare/v2.0.0...v2.1.0)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-17 02:21:33 +00:00
2b8860b21c Bump docker/setup-qemu-action from 2.0.0 to 2.1.0
Bumps [docker/setup-qemu-action](https://github.com/docker/setup-qemu-action) from 2.0.0 to 2.1.0.
- [Release notes](https://github.com/docker/setup-qemu-action/releases)
- [Commits](https://github.com/docker/setup-qemu-action/compare/v2.0.0...v2.1.0)

---
updated-dependencies:
- dependency-name: docker/setup-qemu-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-17 02:21:31 +00:00
3a7b98d30e Fix issue with variable accessor 2022-10-15 23:47:16 +02:00
284a39aa77 add libc6-compat to dockerfile 2022-10-15 01:27:06 +02:00
c14c9955dd modify docker-build-push action 2022-10-15 01:19:19 +02:00
4de787157a update dependencies 2022-10-15 01:10:10 +02:00
6bc6425a01 Merge pull request #1039 from AmruthPillai/i18n_main
New Crowdin updates
2022-10-15 01:03:08 +02:00
6051305908 New translations builder.json (Turkish) 2022-10-15 00:59:54 +02:00
5e13253454 New translations builder.json (Swedish) 2022-10-15 00:59:53 +02:00
c1fd2b40e3 New translations builder.json (Serbian (Cyrillic)) 2022-10-15 00:59:52 +02:00
fccf7a7b56 New translations builder.json (Russian) 2022-10-15 00:59:51 +02:00
5098b094db New translations builder.json (Portuguese) 2022-10-15 00:59:50 +02:00
7c1eb74aca New translations builder.json (Polish) 2022-10-15 00:59:49 +02:00
7f9ede8ff0 New translations builder.json (Norwegian) 2022-10-15 00:59:48 +02:00
172b23e429 New translations builder.json (Dutch) 2022-10-15 00:59:47 +02:00
f287ca6183 New translations builder.json (Korean) 2022-10-15 00:59:46 +02:00
7548e36aaf New translations builder.json (Japanese) 2022-10-15 00:59:45 +02:00
2f754616b4 New translations builder.json (Ukrainian) 2022-10-15 00:59:44 +02:00
dc51f6f9b2 New translations builder.json (Italian) 2022-10-15 00:59:43 +02:00
0cdac1d657 New translations builder.json (Hebrew) 2022-10-15 00:59:42 +02:00
c3cfe8ae7b New translations builder.json (Finnish) 2022-10-15 00:59:41 +02:00
08435c173b New translations builder.json (Greek) 2022-10-15 00:59:40 +02:00
62cc2d6eac New translations builder.json (German) 2022-10-15 00:59:39 +02:00
5a6f6e2b6c New translations builder.json (Danish) 2022-10-15 00:59:38 +02:00
2dfa8c04a1 New translations builder.json (Czech) 2022-10-15 00:59:37 +02:00
63e3f94d2d New translations builder.json (Catalan) 2022-10-15 00:59:36 +02:00
7f45a8cb7f New translations builder.json (Bulgarian) 2022-10-15 00:59:35 +02:00
4377ebb811 New translations builder.json (Arabic) 2022-10-15 00:59:35 +02:00
ed3af6975b New translations builder.json (Spanish) 2022-10-15 00:59:34 +02:00
7904905a8b New translations builder.json (Hungarian) 2022-10-15 00:59:33 +02:00
bd2e6d2bf2 New translations builder.json (French) 2022-10-15 00:59:32 +02:00
ae4e9e688e New translations builder.json (Chinese Simplified) 2022-10-15 00:59:31 +02:00
78c45b7019 New translations builder.json (Indonesian) 2022-10-15 00:59:30 +02:00
9a2fbbec4e New translations builder.json (Vietnamese) 2022-10-15 00:59:25 +02:00
93d751d9be New translations builder.json (Nepali) 2022-10-15 00:59:24 +02:00
9926ed2262 New translations builder.json (Odia) 2022-10-15 00:59:23 +02:00
62220d20e7 New translations builder.json (Kannada) 2022-10-15 00:59:22 +02:00
2f6108cd29 New translations builder.json (Malayalam) 2022-10-15 00:59:21 +02:00
7aeed37869 New translations builder.json (Hindi) 2022-10-15 00:59:20 +02:00
ed99659b7b New translations builder.json (Marathi) 2022-10-15 00:59:19 +02:00
5e33d00910 New translations builder.json (Bengali) 2022-10-15 00:59:18 +02:00
c00d0341e6 New translations builder.json (Tamil) 2022-10-15 00:59:17 +02:00
511ae036c2 New translations builder.json (Khmer) 2022-10-15 00:59:16 +02:00
1642ec9ba2 New translations builder.json (Persian) 2022-10-15 00:59:15 +02:00
1115bc2b69 New translations builder.json (Amharic) 2022-10-15 00:59:14 +02:00
27e5c7811c New translations builder.json (Romanian) 2022-10-15 00:59:13 +02:00
3b739f0bb7 New translations common.json (Marathi) 2022-10-15 00:56:28 +02:00
d937ba2056 New translations common.json (Khmer) 2022-10-15 00:56:25 +02:00
de110d7de1 New translations common.json (Vietnamese) 2022-10-15 00:56:23 +02:00
b03229b5e0 New translations common.json (Korean) 2022-10-15 00:56:16 +02:00
280fc73c7b New translations common.json (Hungarian) 2022-10-15 00:56:13 +02:00
677ad2a115 New translations common.json (Odia) 2022-10-15 00:56:12 +02:00
f394b26d18 New translations common.json (Nepali) 2022-10-15 00:56:11 +02:00
aab4e2e941 New translations common.json (Czech) 2022-10-15 00:55:50 +02:00
f0f552a635 Feature: Toggle Page Size between ISO A4 and US Letter 2022-10-15 00:54:59 +02:00
136e143e12 Merge pull request #1032 from kmkhant/main
FIX whole page reload when press enter
2022-10-13 19:16:16 +02:00
857e4b8670 Merge branch 'main' of https://github.com/kmkhant/Reactive-Resume 2022-10-13 20:45:28 +06:30
ff03d41d97 feat:add pressing return(enter) to submit modal 2022-10-13 20:40:51 +06:30
2bad37aaf3 Merge branch 'main' into main 2022-10-13 17:08:08 +06:30
3a40fbf78b Merge pull request #1036 from dnltsk/main
cleanup - removed temp thumbnail file
2022-10-13 09:43:41 +02:00
49c638fb18 Delete .DS_Store 2022-10-12 22:37:08 +02:00
50e8d60773 fix interest form reloads when press enter 2022-10-10 18:24:57 +06:30
bf157a8d1a Merge pull request #1030 from AmruthPillai/dependabot/github_actions/actions/checkout-3.1.0
Bump actions/checkout from 3.0.2 to 3.1.0
2022-10-10 08:31:58 +02:00
c4f5955fcd Merge pull request #1031 from SSHSRN/loginModal
Updated login modal
2022-10-10 08:31:48 +02:00
86d33b0f21 updated login modal
Signed-off-by: SRIHARI S <sshsrn@gmail.com>
2022-10-10 08:17:04 +05:30
56bca30639 Bump actions/checkout from 3.0.2 to 3.1.0
Bumps [actions/checkout](https://github.com/actions/checkout) from 3.0.2 to 3.1.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3.0.2...v3.1.0)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-10 02:15:49 +00:00
eed3b76959 ignore axios ts error 2022-10-07 11:04:13 +02:00
615eb3ad5d update dependencies, update version to 3.6.7 2022-10-07 10:44:29 +02:00
b505199319 add Amharic language 2022-10-07 10:31:03 +02:00
91e55e642c Merge pull request #1025 from AmruthPillai/i18n_main
New Crowdin updates
2022-10-07 10:18:53 +02:00
f549d8749a New translations landing.json (French) 2022-10-07 10:18:05 +02:00
f31123659e Merge pull request #1020 from arefathi/amharic-locale
Completed Amharic translations
2022-10-07 10:12:59 +02:00
93633c9415 Completed Amharic translations 2022-10-04 14:14:28 +03:00
19b9fa4857 Merge pull request #1021 from Rohanfizz/main
Fixed digitalOcean Sponsor logo
2022-10-04 10:25:09 +02:00
a5c84214f9 Fixed digitalOcean Sponsor logo 2022-10-03 23:35:26 +05:30
65bb8b5ceb Worked on Amharic translations 2022-10-03 16:15:52 +03:00
06a11a1f2a Merge pull request #1018 from AmruthPillai/dependabot/gradle/app/org.jetbrains.kotlin.android-1.7.20
Bump org.jetbrains.kotlin.android from 1.7.10 to 1.7.20 in /app
2022-10-03 07:20:15 +02:00
53eedc8500 Bump org.jetbrains.kotlin.android from 1.7.10 to 1.7.20 in /app
Bumps [org.jetbrains.kotlin.android](https://github.com/JetBrains/kotlin) from 1.7.10 to 1.7.20.
- [Release notes](https://github.com/JetBrains/kotlin/releases)
- [Changelog](https://github.com/JetBrains/kotlin/blob/v1.7.20/ChangeLog.md)
- [Commits](https://github.com/JetBrains/kotlin/compare/v1.7.10...v1.7.20)

---
updated-dependencies:
- dependency-name: org.jetbrains.kotlin.android
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-03 02:27:56 +00:00
4b2d9d7026 skip React.FC for App 2022-09-15 20:40:19 +02:00
045145ed67 upgrade version to v3.6.6 2022-09-15 19:57:46 +02:00
ec27e5e6ab fix language difference when printing resume 2022-09-15 19:49:57 +02:00
2faa15db5a Merge pull request #997 from AmruthPillai/i18n_main
New Crowdin updates
2022-09-13 07:00:22 +02:00
2c2893d5fc New translations common.json (Khmer) 2022-09-07 04:39:03 +02:00
19c7ebe8a4 Update README.md 2022-09-04 08:12:55 +02:00
c24847ac0b Update README.md 2022-09-04 08:10:54 +02:00
7137694832 update app version to 3.6.5 2022-08-29 20:44:24 +02:00
049de38da2 fix local storage upload of photo/avatar 2022-08-29 20:44:07 +02:00
17019e446b Update FUNDING.yml 2022-08-29 19:57:16 +02:00
d73ee7b7f8 reformat docker setup to remove traefik dependency 2022-08-29 09:03:23 +02:00
2c95dc2ac8 Merge pull request #990 from AymaneBoukrouh/main
update landing.json
2022-08-29 07:48:54 +02:00
e148dd3e82 Merge pull request #1 from AymaneBoukrouh/AymaneBoukrouh-fr-locale-fix
update landing.json
2022-08-28 21:42:43 +01:00
0aa2d61c55 update landing.json
Fix typo (mauvaiss -> mauvaise)
Fix innacuracy (pistage -> traçabilité), pistage (tracking) means car track, and not user tracking.
2022-08-28 21:40:07 +01:00
0b2c1ffd26 add ko, mr locales 2022-08-28 16:22:14 +02:00
a531e8cd89 Merge pull request #989 from AmruthPillai/i18n_main
New Crowdin updates
2022-08-28 15:50:51 +02:00
152e386141 New translations landing.json (Odia) 2022-08-28 15:50:22 +02:00
87189cd045 New translations landing.json (Kannada) 2022-08-28 15:50:21 +02:00
114b04a740 New translations landing.json (Malayalam) 2022-08-28 15:50:20 +02:00
383cde53df New translations landing.json (Bengali) 2022-08-28 15:50:19 +02:00
9bf98d3c49 New translations landing.json (Tamil) 2022-08-28 15:50:18 +02:00
e62f0a3f5e New translations landing.json (Persian) 2022-08-28 15:50:17 +02:00
10fb7b143a New translations landing.json (Indonesian) 2022-08-28 15:50:16 +02:00
67ba58e798 New translations landing.json (Vietnamese) 2022-08-28 15:50:15 +02:00
179cf99f83 New translations landing.json (Chinese Simplified) 2022-08-28 15:50:14 +02:00
81a51d487b New translations landing.json (Turkish) 2022-08-28 15:50:13 +02:00
b41b50565a New translations landing.json (Hindi) 2022-08-28 15:50:13 +02:00
8cd073eb62 New translations landing.json (Swedish) 2022-08-28 15:50:12 +02:00
f4f8502703 New translations landing.json (Russian) 2022-08-28 15:50:03 +02:00
0d079d7b24 New translations landing.json (Portuguese) 2022-08-28 15:50:02 +02:00
167f7c902f New translations landing.json (Polish) 2022-08-28 15:49:50 +02:00
7c630df927 New translations landing.json (Dutch) 2022-08-28 15:49:49 +02:00
b391c561e5 New translations landing.json (Italian) 2022-08-28 15:49:48 +02:00
4dbe015fbf New translations landing.json (Hungarian) 2022-08-28 15:49:47 +02:00
bae35b2614 New translations landing.json (Hebrew) 2022-08-28 15:49:46 +02:00
8b7719a198 New translations landing.json (Finnish) 2022-08-28 15:49:46 +02:00
39cf238de3 New translations landing.json (Greek) 2022-08-28 15:49:45 +02:00
98855ae230 New translations landing.json (German) 2022-08-28 15:49:44 +02:00
ab92cbf21e New translations landing.json (Danish) 2022-08-28 15:49:43 +02:00
388ab4e29a New translations landing.json (Czech) 2022-08-28 15:49:42 +02:00
bb18c59018 New translations landing.json (Arabic) 2022-08-28 15:49:41 +02:00
217ab6ab93 New translations landing.json (French) 2022-08-28 15:49:40 +02:00
12690b33d7 New translations landing.json (Spanish) 2022-08-28 15:49:36 +02:00
bff5173701 New translations builder.json (Indonesian) 2022-08-28 15:49:34 +02:00
821813d90d New translations builder.json (Vietnamese) 2022-08-28 15:49:33 +02:00
b1d3c4da5b New translations builder.json (Chinese Simplified) 2022-08-28 15:49:32 +02:00
39f962b440 New translations builder.json (Swedish) 2022-08-28 15:49:31 +02:00
b1cfd4b7c8 New translations builder.json (Serbian (Cyrillic)) 2022-08-28 15:49:31 +02:00
c98d4a6004 New translations builder.json (Russian) 2022-08-28 15:49:30 +02:00
a5ec1f8609 New translations builder.json (Portuguese) 2022-08-28 15:49:29 +02:00
b2c897660d New translations builder.json (Polish) 2022-08-28 15:49:28 +02:00
c1a7fe7354 New translations builder.json (Dutch) 2022-08-28 15:49:27 +02:00
b628c4a21b New translations builder.json (Italian) 2022-08-28 15:49:26 +02:00
5fb4935146 New translations builder.json (Persian) 2022-08-28 15:49:25 +02:00
ae5280435d New translations builder.json (Hungarian) 2022-08-28 15:49:24 +02:00
6451609d8f New translations builder.json (Finnish) 2022-08-28 15:49:24 +02:00
edfe79f580 New translations builder.json (Greek) 2022-08-28 15:49:23 +02:00
5d7318d46d New translations builder.json (German) 2022-08-28 15:49:22 +02:00
77428c1661 New translations builder.json (Danish) 2022-08-28 15:49:21 +02:00
a2e075df39 New translations builder.json (Czech) 2022-08-28 15:49:20 +02:00
63af1d2b69 New translations builder.json (Arabic) 2022-08-28 15:49:19 +02:00
99c5016762 New translations builder.json (Spanish) 2022-08-28 15:49:18 +02:00
44ff6caf27 New translations builder.json (French) 2022-08-28 15:49:17 +02:00
7d2981f7ce New translations landing.json (Bulgarian) 2022-08-28 15:49:16 +02:00
fcc5dd4bad New translations builder.json (Hebrew) 2022-08-28 15:49:15 +02:00
a9fb995d39 New translations builder.json (Tamil) 2022-08-28 15:49:14 +02:00
31a85bfaa6 New translations builder.json (Hindi) 2022-08-28 15:49:13 +02:00
51151a601e New translations builder.json (Bengali) 2022-08-28 15:49:08 +02:00
9931b22313 New translations builder.json (Odia) 2022-08-28 15:49:04 +02:00
fdf6b76c21 New translations builder.json (Kannada) 2022-08-28 15:49:03 +02:00
b4696301ed New translations builder.json (Malayalam) 2022-08-28 15:49:02 +02:00
294d7b5dab New translations builder.json (Bulgarian) 2022-08-28 15:49:00 +02:00
0430920f56 New translations landing.json (Catalan) 2022-08-28 15:48:59 +02:00
5444b4f5ab New translations landing.json (Romanian) 2022-08-28 15:48:58 +02:00
d649b7fc08 New translations dashboard.json (Marathi) 2022-08-28 15:48:58 +02:00
20b39c0b35 New translations dashboard.json (Korean) 2022-08-28 15:48:56 +02:00
8b87b054ee New translations common.json (Marathi) 2022-08-28 15:48:53 +02:00
5eb68e9e21 New translations landing.json (Japanese) 2022-08-28 15:48:53 +02:00
ec2606d625 New translations common.json (Korean) 2022-08-28 15:48:51 +02:00
9055010f61 New translations builder.json (Marathi) 2022-08-28 15:48:49 +02:00
9763b5c270 New translations builder.json (Ukrainian) 2022-08-28 15:48:48 +02:00
75c3bfe9e5 New translations builder.json (Norwegian) 2022-08-28 15:48:47 +02:00
7f39247655 New translations builder.json (Korean) 2022-08-28 15:48:46 +02:00
d6f11e7807 New translations builder.json (Japanese) 2022-08-28 15:48:45 +02:00
361a1e65d0 New translations builder.json (Catalan) 2022-08-28 15:48:44 +02:00
6fddbe0c59 New translations landing.json (Korean) 2022-08-28 15:48:43 +02:00
3412711f27 New translations landing.json (Serbian (Cyrillic)) 2022-08-28 15:48:42 +02:00
a4bfc17431 New translations landing.json (Khmer) 2022-08-28 15:48:41 +02:00
7c698ef9d2 New translations builder.json (Khmer) 2022-08-28 15:48:40 +02:00
e929faf9b0 New translations builder.json (Turkish) 2022-08-28 15:48:39 +02:00
e3ff18b6dd New translations landing.json (Nepali) 2022-08-28 15:48:37 +02:00
2734493ca4 New translations landing.json (Norwegian) 2022-08-28 15:48:36 +02:00
f0015143c6 New translations builder.json (Nepali) 2022-08-28 15:48:35 +02:00
8d97b195a0 New translations modals.json (Korean) 2022-08-28 15:48:33 +02:00
f30692196a New translations landing.json (Marathi) 2022-08-28 15:48:31 +02:00
242278edd1 New translations landing.json (Ukrainian) 2022-08-28 15:48:30 +02:00
162759c716 New translations modals.json (Marathi) 2022-08-28 15:48:29 +02:00
f0c6bd16f5 New translations builder.json (Romanian) 2022-08-28 15:48:28 +02:00
fac8a9d4ff fix ul > li styles, add docs link to pages 2022-08-28 15:38:52 +02:00
9ff1ffb0b9 Merge pull request #988 from AmruthPillai/feature/remove-docs
Feature Release: v3.6.3
2022-08-28 11:51:08 +02:00
79d3ef1306 docs(docs): 🗑️ remove docs app, include more i18n locales 2022-08-28 11:16:08 +02:00
f4a12285f5 Merge branch 'main' of github.com:AmruthPillai/Reactive-Resume 2022-08-28 10:57:49 +02:00
120ad827ad Merge pull request #986 from AmruthPillai/i18n_main
New Crowdin updates
2022-08-28 10:57:40 +02:00
a129b2033f New translations builder.json (Bengali) 2022-08-28 10:56:29 +02:00
372e508936 New translations builder.json (Hindi) 2022-08-28 10:56:28 +02:00
ce8ada2621 New translations builder.json (Malayalam) 2022-08-28 10:56:27 +02:00
d0563d2ec9 New translations builder.json (Kannada) 2022-08-28 10:56:26 +02:00
dacd4e311c New translations builder.json (Odia) 2022-08-28 10:56:25 +02:00
d6d016ba5d New translations builder.json (Finnish) 2022-08-28 10:56:12 +02:00
407ac990ac New translations builder.json (French) 2022-08-28 10:56:12 +02:00
895e9845fc New translations builder.json (Spanish) 2022-08-28 10:56:11 +02:00
859a44197d New translations builder.json (Arabic) 2022-08-28 10:56:10 +02:00
0b80f33d46 New translations builder.json (Czech) 2022-08-28 10:56:09 +02:00
f246a17038 New translations builder.json (Danish) 2022-08-28 10:56:08 +02:00
10c13d54be New translations builder.json (German) 2022-08-28 10:56:07 +02:00
66316b740b New translations builder.json (Greek) 2022-08-28 10:56:06 +02:00
ae94748abe New translations builder.json (Hebrew) 2022-08-28 10:56:05 +02:00
fe11be60d3 New translations builder.json (Portuguese) 2022-08-28 10:56:04 +02:00
1d3e47adb2 New translations builder.json (Italian) 2022-08-28 10:56:03 +02:00
fdd5f373c4 New translations builder.json (Dutch) 2022-08-28 10:56:02 +02:00
0f99d6cdfb New translations builder.json (Polish) 2022-08-28 10:56:01 +02:00
742865a66a New translations builder.json (Russian) 2022-08-28 10:56:00 +02:00
12dcf04981 New translations builder.json (Swedish) 2022-08-28 10:55:58 +02:00
c0d76eaf0e New translations builder.json (Chinese Simplified) 2022-08-28 10:55:57 +02:00
2f430a1d07 New translations builder.json (Vietnamese) 2022-08-28 10:55:57 +02:00
576b942027 New translations builder.json (Indonesian) 2022-08-28 10:55:56 +02:00
7df777ad0c New translations builder.json (Persian) 2022-08-28 10:55:55 +02:00
e5e30f290a New translations builder.json (Hungarian) 2022-08-28 10:55:54 +02:00
dcb476c28b New translations builder.json (Tamil) 2022-08-28 10:55:53 +02:00
e09f281461 New translations landing.json (Norwegian) 2022-08-28 10:55:52 +02:00
293f008f0a New translations landing.json (Japanese) 2022-08-28 10:55:51 +02:00
f9cd1c779f New translations landing.json (Catalan) 2022-08-28 10:55:51 +02:00
d931590374 New translations landing.json (Romanian) 2022-08-28 10:55:50 +02:00
907ffacca0 New translations dashboard.json (Ukrainian) 2022-08-28 10:55:49 +02:00
a263d54319 New translations dashboard.json (Serbian (Cyrillic)) 2022-08-28 10:55:48 +02:00
0d478e1286 New translations dashboard.json (Japanese) 2022-08-28 10:55:47 +02:00
08997a1728 New translations dashboard.json (Catalan) 2022-08-28 10:55:46 +02:00
688bb11844 New translations common.json (Ukrainian) 2022-08-28 10:55:45 +02:00
0bf4e0b2ae New translations common.json (Serbian (Cyrillic)) 2022-08-28 10:55:44 +02:00
60bbfb6703 New translations common.json (Norwegian) 2022-08-28 10:55:43 +02:00
706307b073 New translations common.json (Japanese) 2022-08-28 10:55:42 +02:00
3be18636ff New translations common.json (Catalan) 2022-08-28 10:55:42 +02:00
b2ee2f9d09 New translations common.json (Romanian) 2022-08-28 10:55:41 +02:00
fe54a2388e New translations dashboard.json (Romanian) 2022-08-28 10:55:40 +02:00
be170dd985 New translations landing.json (Ukrainian) 2022-08-28 10:55:39 +02:00
7fd26ad2c3 New translations landing.json (Serbian (Cyrillic)) 2022-08-28 10:55:38 +02:00
ec30aff4d1 New translations modals.json (Romanian) 2022-08-28 10:55:37 +02:00
0b3023989b New translations modals.json (Khmer) 2022-08-28 10:55:37 +02:00
3b96348183 New translations modals.json (Nepali) 2022-08-28 10:55:34 +02:00
30080b23cd New translations landing.json (Nepali) 2022-08-28 10:55:33 +02:00
b3ba1e5b56 New translations dashboard.json (Nepali) 2022-08-28 10:55:32 +02:00
bf72b557ca New translations builder.json (Nepali) 2022-08-28 10:55:31 +02:00
344fcb1078 New translations common.json (Nepali) 2022-08-28 10:55:30 +02:00
ddd71567c1 New translations modals.json (Ukrainian) 2022-08-28 10:55:29 +02:00
adc679a6e5 New translations modals.json (Serbian (Cyrillic)) 2022-08-28 10:55:29 +02:00
8f49536119 New translations modals.json (Norwegian) 2022-08-28 10:55:28 +02:00
750fedbd74 New translations modals.json (Japanese) 2022-08-28 10:55:27 +02:00
cd59ea7e9b New translations modals.json (Catalan) 2022-08-28 10:55:26 +02:00
5c1b44ddea New translations builder.json (Japanese) 2022-08-28 10:55:25 +02:00
eb6450a9de New translations builder.json (Norwegian) 2022-08-28 10:55:24 +02:00
0b620f41fc New translations builder.json (Ukrainian) 2022-08-28 10:55:24 +02:00
64e0e677d7 New translations builder.json (Bulgarian) 2022-08-28 10:55:23 +02:00
19ae1cf036 New translations builder.json (Turkish) 2022-08-28 10:55:22 +02:00
c221cef77f New translations builder.json (Khmer) 2022-08-28 10:55:21 +02:00
77e3dc2b16 New translations builder.json (Catalan) 2022-08-28 10:55:20 +02:00
9c9368acd5 New translations builder.json (Romanian) 2022-08-28 10:55:19 +02:00
22b91d3f94 feat(docker): add arm64 support 2022-08-28 09:57:15 +02:00
d844092d0f fix(client): 🎨 add style to make list item appear after bullet icon 2022-08-28 09:57:00 +02:00
b3e118fb8b New translations builder.json (Serbian (Cyrillic)) 2022-08-27 12:11:42 +02:00
fe37eb2791 fix(client): 💄 add overflow-y-scroll to left/right sidebar navigation 2022-08-26 08:06:47 +02:00
7902f67f4f feat: update app version to 3.6.2 2022-08-26 00:00:18 +02:00
57dd110187 Merge pull request #981 from AmruthPillai/i18n_main
New Crowdin updates
2022-08-25 10:06:11 +02:00
829375e87a New translations landing.json (Khmer) 2022-08-24 14:27:42 +02:00
0a15b4ebc9 New translations dashboard.json (Khmer) 2022-08-24 14:27:41 +02:00
2bff3fc20b New translations common.json (Khmer) 2022-08-24 14:27:40 +02:00
1e997fe67c bump up versions to v3.6.1 2022-08-23 08:04:25 +02:00
dbf06455e4 Merge pull request #980 from AmruthPillai/i18n_main
New Crowdin updates
2022-08-22 20:44:32 +02:00
42c7c9ade1 New translations modals.json (Odia) 2022-08-22 20:15:54 +02:00
36c19bac3f New translations modals.json (Kannada) 2022-08-22 20:15:53 +02:00
44a9300aff New translations modals.json (Malayalam) 2022-08-22 20:15:52 +02:00
610b5ba9d4 New translations modals.json (Hindi) 2022-08-22 20:15:51 +02:00
769e8811cd New translations modals.json (Bengali) 2022-08-22 20:15:50 +02:00
676fbcafe7 New translations modals.json (Tamil) 2022-08-22 20:15:49 +02:00
3935ae1e04 New translations modals.json (Indonesian) 2022-08-22 20:15:41 +02:00
ef6b765266 New translations modals.json (Persian) 2022-08-22 20:15:40 +02:00
647dd6e682 New translations modals.json (Vietnamese) 2022-08-22 20:15:39 +02:00
43841e9962 New translations modals.json (Chinese Simplified) 2022-08-22 20:15:38 +02:00
e2236c3207 New translations modals.json (German) 2022-08-22 20:15:37 +02:00
7389d33ee5 New translations modals.json (Greek) 2022-08-22 20:15:25 +02:00
4b21eabec9 New translations modals.json (Dutch) 2022-08-22 20:15:24 +02:00
1815b0fa21 New translations modals.json (Hebrew) 2022-08-22 20:15:23 +02:00
6c4d3cbd56 New translations modals.json (Finnish) 2022-08-22 20:15:22 +02:00
8c2f3c8504 New translations modals.json (Turkish) 2022-08-22 20:15:21 +02:00
3aa7a98d9d New translations modals.json (Swedish) 2022-08-22 20:15:20 +02:00
5519ec898d New translations modals.json (Russian) 2022-08-22 20:15:19 +02:00
1cd4c5d733 New translations modals.json (Portuguese) 2022-08-22 20:15:18 +02:00
73d11c323f New translations modals.json (Polish) 2022-08-22 20:15:17 +02:00
38812fcf25 New translations modals.json (French) 2022-08-22 20:15:16 +02:00
c22de12f12 New translations modals.json (Spanish) 2022-08-22 20:15:15 +02:00
c94c971599 New translations modals.json (Arabic) 2022-08-22 20:15:13 +02:00
c9a71a5917 New translations modals.json (Czech) 2022-08-22 20:15:12 +02:00
8a29387470 New translations modals.json (Danish) 2022-08-22 20:15:11 +02:00
592511b090 New translations modals.json (Hungarian) 2022-08-22 20:15:10 +02:00
af63fd38d4 New translations modals.json (Italian) 2022-08-22 20:15:09 +02:00
bf38b1b254 New translations modals.json (Bulgarian) 2022-08-22 20:14:23 +02:00
4a1c0079db Merge pull request #979 from AmruthPillai/feature/turbo
Implement Turbo Workspaces, add ARM64 support, fix Google OAuth etc.
2022-08-22 19:59:43 +02:00
5b6f6b7621 use nodemailer/smtp instead of sendgrid 2022-08-22 19:26:13 +02:00
02587255fe update version to 3.6.0 2022-08-22 15:24:30 +02:00
9ef2a84ac2 update examples for reaching client/server in .env 2022-08-22 12:44:50 +02:00
77b1c5b536 update Dockerfile 2022-08-22 12:17:41 +02:00
bf956fe18c use @react-oauth/google library for google auth 2022-08-22 11:26:30 +02:00
4114f1e1dd remove timeouts in CI 2022-08-22 09:34:35 +02:00
668d39fa87 change tagname of docker image 2022-08-22 09:17:32 +02:00
0d88a18757 remove husky, lint-staged 2022-08-21 22:18:27 +02:00
0630369087 Implement Turbo Workspaces, among other things 2022-08-21 22:18:12 +02:00
73af4a6859 chore(dependencies): updating dependencies to latest versions 2022-08-21 00:44:11 +02:00
99ddeb25a9 Merge pull request #972 from AmruthPillai/i18n_main
New Crowdin updates
2022-08-17 08:46:38 +02:00
685aa06778 Merge pull request #974 from kgotso/main
Removed Check on hard coded urls
2022-08-15 22:57:01 +02:00
460abc6f1d Removed Check on hard coded urls
This forces the backend to continuously call home and break if no response is received
2022-08-15 19:43:32 +02:00
04f02157ac New translations builder.json (Turkish) 2022-08-14 21:41:45 +02:00
828a4a8715 Merge pull request #970 from m-GDEV/patch-1
Fixed small formatting issue in README
2022-08-13 09:23:43 +02:00
5b3141cd49 Fixed small formatting issue in README 2022-08-12 17:06:55 -04:00
779d22101f chore(release): 3.5.3 2022-08-11 20:21:55 +02:00
ef240b2110 add Bulgarian language, update dependencies 2022-08-11 20:21:19 +02:00
32bb7354a4 Merge pull request #969 from AmruthPillai/i18n_main
New Crowdin updates
2022-08-11 20:12:06 +02:00
0dcbad1f8a New translations modals.json (Bulgarian) 2022-08-11 10:27:23 +02:00
a74921b27a New translations builder.json (Bulgarian) 2022-08-11 10:27:21 +02:00
d4f47423c9 New translations common.json (Bulgarian) 2022-08-11 10:27:20 +02:00
03f9a6543c New translations dashboard.json (Bulgarian) 2022-08-11 10:27:18 +02:00
eb89cfcf5d New translations landing.json (Bulgarian) 2022-08-11 10:27:17 +02:00
c52ef9ecb7 Merge pull request #965 from AmruthPillai/dependabot/github_actions/docker/build-push-action-3.1.1
chore(deps): bump docker/build-push-action from 3.1.0 to 3.1.1
2022-08-08 05:53:47 +02:00
c499abbb88 chore(deps): bump docker/build-push-action from 3.1.0 to 3.1.1
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 3.1.0 to 3.1.1.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v3.1.0...v3.1.1)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-08 02:15:50 +00:00
1a7ee88ecd chore(release): 3.5.2 2022-08-04 16:15:29 +02:00
16d19eb70f feat(client): 💫 add Finnish language support 2022-08-04 16:13:49 +02:00
331346b99c chore(dependencies): ⬆️ upgrading dependencies to latest versions 2022-08-04 16:10:33 +02:00
95d265f672 Merge pull request #956 from AmruthPillai/i18n_main
New Crowdin updates
2022-08-04 16:09:46 +02:00
315c7d6328 New translations modals.json (Finnish) 2022-07-31 22:22:32 +02:00
490e174564 New translations common.json (Finnish) 2022-07-31 22:22:30 +02:00
b5cde79f8b New translations builder.json (Finnish) 2022-07-31 22:22:29 +02:00
d50f14bb78 New translations dashboard.json (Finnish) 2022-07-31 22:22:28 +02:00
c13a751c1a New translations landing.json (Finnish) 2022-07-31 22:22:26 +02:00
5c37fc55d5 New translations builder.json (Indonesian) 2022-07-30 17:08:34 +02:00
48a0f90597 chore(release): 3.5.1 2022-07-30 13:01:00 +02:00
05d3f1f06f fix(server): don't initialize sendgrid if the apikey is empty 2022-07-30 12:57:35 +02:00
4d43f6a642 feat(client): ask for confirmation when resetting a resume 2022-07-30 12:56:40 +02:00
f7363ccdd7 Merge branch 'main' of github.com:AmruthPillai/Reactive-Resume 2022-07-30 12:56:13 +02:00
07c91e9ac2 feat(docker): remove ports from postgres docker instance 2022-07-30 12:56:04 +02:00
cbe08f1d2c Merge pull request #950 from AmruthPillai/dependabot/github_actions/docker/build-push-action-3.1.0
chore(deps): bump docker/build-push-action from 3.0.0 to 3.1.0
2022-07-30 12:43:46 +02:00
c2617a8277 Merge pull request #944 from AmruthPillai/i18n_main
New Crowdin updates
2022-07-30 12:43:36 +02:00
fe72d2de41 chore(release): 3.5.0 2022-07-30 12:42:31 +02:00
23667e218f chore(deps): updating project dependencies to their latest versions 2022-07-30 12:41:37 +02:00
977fa72dde fix(client): 🐛 fix mui rendering of utc dates 2022-07-30 12:21:05 +02:00
5197f954c0 fix(client): 🐛 attempt to fix the one-off date issue
use utc functions from dayjs to correspond to the same date on the server
2022-07-31 02:13:08 -08:00
58341e4cd2 New translations builder.json (Serbian (Cyrillic)) 2022-07-28 13:44:38 +02:00
fc0b69796f Cleanup superfluous docker-compose.yml declarations 2022-07-25 10:15:03 -04:00
1559703567 chore(deps): bump docker/build-push-action from 3.0.0 to 3.1.0
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 3.0.0 to 3.1.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v3.0.0...v3.1.0)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-25 02:24:03 +00:00
0a1fd50d07 New translations dashboard.json (Norwegian) 2022-07-17 03:00:38 +02:00
1c19062c63 chore(release): 3.4.8 2022-07-13 11:08:14 +02:00
25cf594eb9 feat(google): add toast to display error message from google 2022-07-13 11:05:27 +02:00
1c3beee6cd chore(deps): update dependencies 2022-07-13 09:40:29 +02:00
95c3d4c315 Merge pull request #937 from AmruthPillai/dependabot/gradle/app/org.jetbrains.kotlin.android-1.7.10
chore(deps): bump org.jetbrains.kotlin.android from 1.7.0 to 1.7.10 in /app
2022-07-12 15:33:31 +02:00
85df339e56 chore(deps): bump org.jetbrains.kotlin.android in /app
Bumps [org.jetbrains.kotlin.android](https://github.com/JetBrains/kotlin) from 1.7.0 to 1.7.10.
- [Release notes](https://github.com/JetBrains/kotlin/releases)
- [Changelog](https://github.com/JetBrains/kotlin/blob/v1.7.10/ChangeLog.md)
- [Commits](https://github.com/JetBrains/kotlin/compare/v1.7.0...v1.7.10)

---
updated-dependencies:
- dependency-name: org.jetbrains.kotlin.android
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-11 02:40:56 +00:00
d61ad44ebc chore(release): 3.4.7 2022-07-01 01:04:52 +02:00
ccb1eff749 chore(mui): migrate from mui/lab to mui/x-date-pickers 2022-07-01 01:04:03 +02:00
bfb48e3aa7 fix(mui): update mui datepickers to newer package 2022-07-01 01:01:27 +02:00
e2e08ad390 Merge branch 'main' of github.com:AmruthPillai/Reactive-Resume 2022-07-01 00:50:17 +02:00
f0dda06af3 Merge pull request #932 from AmruthPillai/i18n_main
New Crowdin updates
2022-07-01 00:50:10 +02:00
4c4e77e21d New translations common.json (Portuguese) 2022-07-01 00:48:52 +02:00
f364ae8929 New translations common.json (Indonesian) 2022-07-01 00:48:49 +02:00
b52f292d89 New translations dashboard.json (Indonesian) 2022-07-01 00:48:32 +02:00
8cac7f907c New translations modals.json (Hebrew) 2022-07-01 00:48:25 +02:00
a18a60679f New translations builder.json (Hebrew) 2022-07-01 00:48:04 +02:00
5cc6a81b8c New translations landing.json (Hebrew) 2022-07-01 00:48:02 +02:00
6ff212b698 New translations dashboard.json (Hebrew) 2022-07-01 00:48:00 +02:00
56bcec5196 chore(deps): update dependencies across all projects 2022-07-01 00:46:41 +02:00
12019f90e9 Merge pull request #928 from ravindra3003/main
UpdateTutorial
2022-07-01 00:27:29 +02:00
7e6e69ed49 Update create-resume.mdx 2022-06-23 13:14:16 +05:30
a09a945e17 Update create-account.mdx 2022-06-23 13:12:21 +05:30
df714dc8de Update create-account.mdx 2022-06-22 15:47:01 +05:30
28b63ef0c7 Update create-account.mdx 2022-06-22 15:16:45 +05:30
1b594dac61 Update create-resume.mdx 2022-06-22 15:00:18 +05:30
dd34a30ee0 Update create-account.mdx 2022-06-22 12:09:18 +05:30
0af398ceed Update create-account.mdx 2022-06-22 11:45:45 +05:30
04abd2cacc Update create-account.mdx 2022-06-22 11:37:15 +05:30
a037a091e7 chore(release): 3.4.6 2022-06-19 20:55:23 +02:00
f3a4c17cb4 correct versions 2022-06-19 20:55:14 +02:00
f06f7ad2e5 chore(release): 3.6.2 2022-06-19 20:52:34 +02:00
aab2e5c8a9 correct versions 2022-06-19 20:52:24 +02:00
4318dbe762 add languages 2022-06-19 20:51:10 +02:00
ae3ff274ee updates to app 2022-06-19 20:44:28 +02:00
164403c495 chore(release): 3.4.6 2022-06-19 20:44:04 +02:00
8595c92fb7 Merge pull request #906 from dvd741-a/main
Add File based Storage toggle for Photos
2022-06-18 16:53:05 +02:00
8f75f32f88 Merge pull request #903 from AmruthPillai/i18n_main
New Crowdin updates
2022-06-18 16:52:54 +02:00
0d44189a5f Merge branch 'main' into i18n_main 2022-06-18 16:51:51 +02:00
cd16a6d360 Merge pull request #902 from Mhnramin/main
New translation for Bahasa (Indonesia)
2022-06-18 16:49:25 +02:00
7b795bfaa4 Merge pull request #914 from AmruthPillai/dependabot/gradle/app/org.jetbrains.kotlin.android-1.7.0
chore(deps): bump org.jetbrains.kotlin.android from 1.6.21 to 1.7.0 in /app
2022-06-18 16:49:08 +02:00
8f78d47661 Change Dockerfile to include Volume 2022-06-18 14:21:10 +02:00
0b5e5a2ece New translations common.json (Hebrew) 2022-06-14 03:09:35 +05:30
9eade9514c chore(deps): bump org.jetbrains.kotlin.android in /app
Bumps [org.jetbrains.kotlin.android](https://github.com/JetBrains/kotlin) from 1.6.21 to 1.7.0.
- [Release notes](https://github.com/JetBrains/kotlin/releases)
- [Changelog](https://github.com/JetBrains/kotlin/blob/v1.7.0/ChangeLog.md)
- [Commits](https://github.com/JetBrains/kotlin/compare/v1.6.21...v1.7.0)

---
updated-dependencies:
- dependency-name: org.jetbrains.kotlin.android
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-13 02:22:25 +00:00
d744e06e96 New translations builder.json (Persian) 2022-06-07 23:23:40 +05:30
9657c199d2 New translations common.json (Persian) 2022-06-07 23:23:39 +05:30
2dbe737b73 New translations dashboard.json (Persian) 2022-06-07 23:23:38 +05:30
f624699efa New translations landing.json (Persian) 2022-06-07 23:23:37 +05:30
e46f473754 New translations modals.json (Persian) 2022-06-07 23:23:36 +05:30
767f4bf4bc Correction 2022-06-06 15:41:08 +02:00
1c5d025c15 Version 2022-06-06 15:26:37 +02:00
8de8d89290 File Storage toggle 2022-06-06 15:15:39 +02:00
83662122a5 Changes 2022-06-06 02:31:44 +02:00
126482a760 chore(release): 3.6.1 2022-06-06 01:36:29 +02:00
b04c22a27b Changes 2022-06-06 01:35:46 +02:00
63f88a3d1c Changes 2022-06-06 01:34:58 +02:00
bd519db14f chore(release): 3.6.0 2022-06-06 01:32:56 +02:00
a49aa42176 New translations modals.json (Indonesian) 2022-06-05 12:49:38 +05:30
1a382db4d9 New translations builder.json (Indonesian) 2022-06-05 12:49:36 +05:30
c68f75dc8c New translations common.json (Indonesian) 2022-06-05 12:49:35 +05:30
c12de0c013 New translations dashboard.json (Indonesian) 2022-06-05 12:49:34 +05:30
4cafaf306a New translations landing.json (Indonesian) 2022-06-05 12:49:33 +05:30
0238cf18a5 New translation for Bahasa (Indonesia) 2022-06-05 08:16:49 +08:00
2f6072a7ba Merge pull request #889 from AmruthPillai/i18n_main
New Crowdin updates
2022-05-24 08:25:16 +05:30
55dd2c5925 Merge pull request #879 from AmruthPillai/dependabot/github_actions/docker/build-push-action-3.0.0
chore(deps): bump docker/build-push-action from 2.10.0 to 3.0.0
2022-05-24 08:25:05 +05:30
a3e25f87fa Merge pull request #878 from AmruthPillai/dependabot/github_actions/docker/login-action-2.0.0
chore(deps): bump docker/login-action from 1.14.1 to 2.0.0
2022-05-24 08:24:56 +05:30
9e82ea11c3 chore(release): 3.4.5 2022-05-24 08:23:03 +05:30
62fd63e41f fix(i18n): fix language mismatch in exported pdf 2022-05-24 08:21:03 +05:30
b91c175352 New translations builder.json (Arabic) 2022-05-18 19:51:52 +05:30
898e2314fc New translations builder.json (Arabic) 2022-05-18 18:39:53 +05:30
bca2aa2fe5 chore(deps): bump docker/build-push-action from 2.10.0 to 3.0.0
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 2.10.0 to 3.0.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v2.10.0...v3.0.0)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-09 02:51:05 +00:00
427fdb717a chore(deps): bump docker/login-action from 1.14.1 to 2.0.0
Bumps [docker/login-action](https://github.com/docker/login-action) from 1.14.1 to 2.0.0.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/v1.14.1...v2.0.0)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-09 02:51:02 +00:00
ee5b0187e2 docs(i18n): add Hungarian language to docs readme 2022-05-02 09:01:50 +02:00
94d05f33b4 chore(release): v3.4.4 2022-05-02 08:59:36 +02:00
35fe4e2774 feat(i18n): add Hungrarian (Magyar) language 2022-05-02 08:58:25 +02:00
317901a4d2 Merge pull request #870 from AmruthPillai/i18n_main
New Crowdin updates
2022-05-02 08:50:01 +02:00
350ffcbc43 New translations builder.json (Odia) 2022-05-02 08:47:55 +02:00
2c074a96c8 New translations builder.json (Kannada) 2022-05-02 08:47:54 +02:00
79f140b2d0 New translations builder.json (Malayalam) 2022-05-02 08:47:53 +02:00
649c655ad5 New translations builder.json (Hindi) 2022-05-02 08:47:52 +02:00
d5284a90d1 New translations builder.json (Bengali) 2022-05-02 08:47:51 +02:00
bd18c53ab8 New translations builder.json (Tamil) 2022-05-02 08:47:50 +02:00
704c1ab7d4 New translations builder.json (Vietnamese) 2022-05-02 08:47:35 +02:00
1dbd7f221e New translations builder.json (Chinese Simplified) 2022-05-02 08:47:34 +02:00
e1a47ffbe2 New translations modals.json (Hungarian) 2022-05-02 08:47:33 +02:00
2add629970 New translations modals.json (Czech) 2022-05-02 08:47:31 +02:00
a48fcd9c97 New translations landing.json (Hungarian) 2022-05-02 08:47:29 +02:00
df7b00cb2c New translations builder.json (Turkish) 2022-05-02 08:47:28 +02:00
27fc939101 New translations builder.json (Portuguese) 2022-05-02 08:47:26 +02:00
7c574d17e4 New translations builder.json (Polish) 2022-05-02 08:47:25 +02:00
86a105f5a5 New translations builder.json (Dutch) 2022-05-02 08:47:25 +02:00
327bcc2b32 New translations builder.json (Italian) 2022-05-02 08:47:24 +02:00
a6cbd85010 New translations builder.json (Greek) 2022-05-02 08:47:23 +02:00
371b820923 New translations builder.json (German) 2022-05-02 08:47:22 +02:00
1d47fd0267 New translations builder.json (Danish) 2022-05-02 08:47:21 +02:00
276fc95bb0 New translations builder.json (Czech) 2022-05-02 08:47:20 +02:00
34c8861321 New translations builder.json (Arabic) 2022-05-02 08:47:19 +02:00
780b782579 New translations builder.json (French) 2022-05-02 08:47:18 +02:00
9daa99fd5b New translations builder.json (Spanish) 2022-05-02 08:47:16 +02:00
76b3aa29cf New translations landing.json (Czech) 2022-05-02 08:47:16 +02:00
25d4913fab New translations common.json (Hungarian) 2022-05-02 08:47:15 +02:00
0efeff3a4f New translations common.json (Czech) 2022-05-02 08:47:13 +02:00
f56089925e New translations builder.json (Swedish) 2022-05-02 08:47:12 +02:00
5afae08f20 New translations builder.json (Hungarian) 2022-05-02 08:47:11 +02:00
4bf114dfd6 New translations dashboard.json (Hungarian) 2022-05-02 08:47:09 +02:00
23a3c2e624 New translations dashboard.json (Czech) 2022-05-02 08:47:07 +02:00
71862f4354 New translations builder.json (Russian) 2022-05-01 15:42:24 +02:00
6861c0f0fa chore(release): 3.4.3 2022-05-01 08:03:37 +02:00
9a18e74b90 revert(react): downgrade back to 17.0.2 due to lack of support 2022-05-01 08:03:22 +02:00
4dd1b70079 remove linux/arm64 builds, failing temporarily 2022-04-30 13:39:23 +02:00
f9580fe716 chore(release): 3.4.2 2022-04-30 13:19:34 +02:00
3545f7939f remove linux/arm64 for server, as playwright does not support it 2022-04-30 13:19:08 +02:00
9caad3bc0b chore(release): 3.4.1 2022-04-30 13:01:59 +02:00
5bdb92b1cf fix(typeorm): update typeorm to latest 0.2.x for secpatch 2022-04-30 13:01:45 +02:00
87d381fe8e feat(all): upgrade to v3.4.0 2022-04-30 12:58:17 +02:00
ccfb4d3cb0 Merge pull request #867 from Tomiiwa/Table-of-Contents
[DOC] Added Table of Contents to ReadMe
2022-04-30 09:11:08 +02:00
763074a86c Added Table of Contents to ReadMe 2022-04-29 16:41:52 +01:00
0f46895711 Merge pull request #861 from AmruthPillai/dependabot/github_actions/actions/checkout-3.0.2
chore(deps): bump actions/checkout from 3.0.1 to 3.0.2
2022-04-25 09:34:20 +02:00
aa736af0f5 Merge pull request #858 from AmruthPillai/dependabot/gradle/app/org.jetbrains.kotlin.android-1.6.21
chore(deps): bump org.jetbrains.kotlin.android from 1.6.20 to 1.6.21 in /app
2022-04-25 09:33:53 +02:00
1d9056f935 chore(deps): bump actions/checkout from 3.0.1 to 3.0.2
Bumps [actions/checkout](https://github.com/actions/checkout) from 3.0.1 to 3.0.2.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3.0.1...v3.0.2)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-25 03:11:03 +00:00
9cadd603f3 chore(deps): bump org.jetbrains.kotlin.android in /app
Bumps org.jetbrains.kotlin.android from 1.6.20 to 1.6.21.

---
updated-dependencies:
- dependency-name: org.jetbrains.kotlin.android
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-25 03:08:55 +00:00
b7b62d7bd0 Merge pull request #853 from AmruthPillai/i18n_main
New Crowdin updates
2022-04-24 08:06:24 +02:00
820e6c90d3 New translations modals.json (Greek) 2022-04-22 15:06:52 +02:00
ea642d1b60 New translations landing.json (Greek) 2022-04-22 15:06:51 +02:00
ec006779a8 New translations common.json (Greek) 2022-04-22 15:06:47 +02:00
515be23c44 New translations dashboard.json (Greek) 2022-04-22 15:06:46 +02:00
c11aec8b44 Merge pull request #851 from AmruthPillai/i18n_main
New Crowdin updates
2022-04-22 07:14:41 +02:00
3c2147e72c New translations landing.json (Swedish) 2022-04-21 21:01:56 +02:00
15a35e6243 New translations modals.json (Swedish) 2022-04-21 21:01:53 +02:00
d53a5a492c New translations landing.json (Swedish) 2022-04-21 20:00:31 +02:00
0810e5ae6a Merge pull request #842 from AmruthPillai/i18n_main
New Crowdin updates
2022-04-20 09:21:40 +02:00
881b183db5 Merge pull request #844 from AmruthPillai/dependabot/github_actions/actions/checkout-3.0.1
chore(deps): bump actions/checkout from 3.0.0 to 3.0.1
2022-04-20 09:21:32 +02:00
15cea02872 Delete close-stale.yml 2022-04-19 06:45:45 +02:00
c195561df0 Merge pull request #843 from augustocardoso07/fix/page-counter
Fix page counter in the center section
2022-04-18 18:15:24 +02:00
fc725cfc0c chore(deps): bump actions/checkout from 3.0.0 to 3.0.1
Bumps [actions/checkout](https://github.com/actions/checkout) from 3.0.0 to 3.0.1.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3.0.0...v3.0.1)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-18 02:30:45 +00:00
9f54516e8c Fix page counter in the center section 2022-04-17 21:09:55 -03:00
68a4cd9635 New translations builder.json (Swedish) 2022-04-17 19:42:51 +02:00
ff01802f2f New translations common.json (Swedish) 2022-04-17 19:42:49 +02:00
bb900bc2e1 New translations dashboard.json (Swedish) 2022-04-17 19:42:48 +02:00
459f82b66b Merge pull request #828 from AmruthPillai/i18n_main
New Crowdin updates
2022-04-11 07:48:37 +02:00
4b382243e4 New translations modals.json (Odia) 2022-04-10 12:17:28 +02:00
af074085d1 New translations landing.json (Odia) 2022-04-10 12:17:25 +02:00
0c8c872668 New translations dashboard.json (Odia) 2022-04-10 12:17:25 +02:00
ddb29bb40d New translations common.json (Odia) 2022-04-10 12:17:23 +02:00
aecb627ab7 New translations builder.json (Odia) 2022-04-10 12:17:22 +02:00
b8cd53cb59 chore(release): 3.3.4 2022-04-09 22:02:26 +02:00
e61f6153c3 Merge pull request #823 from AmruthPillai/i18n_main
New Crowdin updates
2022-04-09 22:01:54 +02:00
386e8ab902 Merge pull request #827 from AmruthPillai/compose-envs
Remove YAML anchors and prefer Docker Compose Environment Arrays
2022-04-09 22:01:41 +02:00
5e8f02e3ca add local build context comment in docker-compose 2022-04-09 21:47:41 +02:00
f219562e72 style(eslint): client/next: add specific rule for no-html-link-for-pages 2022-04-09 21:25:19 +02:00
29d94dfc14 ci(docker): remove yaml anchors in favor of environment array in docker-compose
fix #825, fix #824, fix #820
2022-04-09 21:21:45 +02:00
622f5fc28c ci(github-actions): update key tags for GitHub action to build docker image 2022-04-09 09:33:44 +02:00
647f01e25c Merge branch 'main' of github.com:AmruthPillai/Reactive-Resume 2022-04-09 09:32:20 +02:00
5a79c0e5c2 chore(release): 3.3.3 2022-04-09 09:32:04 +02:00
2a4c298572 Merge pull request #819 from martadinata666/combine-tags
combine-tags
2022-04-09 09:30:46 +02:00
1e59f73f79 feat(profile): add XING profile icon
fix #821
2022-04-09 09:29:51 +02:00
feb911aea0 feat(s3): implement non-ephemeral storage through S3/DO Spaces 2022-04-09 09:28:08 +02:00
d0863d68c6 chore(release): 3.3.3 2022-04-09 09:26:34 +02:00
447d9b3ca1 New translations builder.json (Greek) 2022-04-08 19:35:17 +02:00
86e66eb6a0 combine-tags 2022-04-08 19:08:01 +07:00
b2c9515a63 Create SECURITY.md 2022-04-08 10:37:24 +02:00
db04c5caee update CHANGELOG.md 2022-04-08 10:34:27 +02:00
33526d5d13 chore(release): 3.3.2 2022-04-08 10:33:44 +02:00
fc77b548d8 fix(types/react): downgrade to <18 2022-04-08 10:33:06 +02:00
bf7a168f2e chore(release): 3.3.1 2022-04-08 09:50:34 +02:00
17b1551bab ci(buildx): buildx docker, remove arm/v7 for non-support 2022-04-08 09:50:23 +02:00
8864243558 update 2022-04-08 09:41:50 +02:00
37aab7a16f chore(release): 3.3.1 2022-04-08 09:40:46 +02:00
86e1bdf7ea chore(typescript): downgrade to "<4.6.0" 2022-04-08 09:40:34 +02:00
4547fd213d chore(release): 3.3.0 2022-04-08 09:39:01 +02:00
5aacec40cc chore(typescript): downgrade to "<4.6.0" 2022-04-08 09:38:41 +02:00
1df78100ca feat(upgrade): changes to code to support new template 2022-04-08 09:37:26 +02:00
9cd36fcb9b Merge pull request #817 from schklom/patch-2
Automatic multi-platform Docker image build
2022-04-08 08:24:17 +02:00
24b32eb917 Merge pull request #811 from klejejs/main
A new template - Leafish
2022-04-08 08:24:10 +02:00
dec0e41fec Merge pull request #806 from AmruthPillai/i18n_main
New Crowdin updates
2022-04-08 08:21:05 +02:00
42700ad2b2 Update docker-build-push.yml
QEMU + Docker Buildx + multi-platform
2022-04-07 18:32:39 +02:00
df51d79f6b Merge pull request #812 from AmruthPillai/dependabot/gradle/app/org.jetbrains.kotlin.android-1.6.20
Bump org.jetbrains.kotlin.android from 1.6.10 to 1.6.20 in /app
2022-04-04 09:57:39 +02:00
be1673a6a7 Bump org.jetbrains.kotlin.android from 1.6.10 to 1.6.20 in /app
Bumps org.jetbrains.kotlin.android from 1.6.10 to 1.6.20.

---
updated-dependencies:
- dependency-name: org.jetbrains.kotlin.android
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-04 02:21:29 +00:00
648f182e76 Added new template - Leafish 2022-04-03 20:23:06 +03:00
3aa56f0886 New translations landing.json (Portuguese) 2022-03-31 22:19:33 +02:00
b795534da7 New translations landing.json (Portuguese) 2022-03-31 21:13:27 +02:00
c67e2ac9f8 Merge pull request #791 from AmruthPillai/i18n_main
New Crowdin updates
2022-03-28 16:44:24 +02:00
beb418bd5d chore(release): 3.2.11 2022-03-28 16:43:35 +02:00
2b3d9533b0 Merge pull request #797 from chandiwalaaadhar/fix/#795-No-Scrollbar-on-overflow
Fix-#795 No Scoll Behaviour on Overflow
2022-03-28 16:42:52 +02:00
b061f139bd Fix-#795 No Scoll Behaviour on Overflow 2022-03-28 19:56:54 +05:30
ac569324cf New translations common.json (Portuguese) 2022-03-25 15:24:14 +01:00
357d197bb3 New translations common.json (Portuguese) 2022-03-25 14:13:12 +01:00
5eed1186ff chore(release): 3.2.10 2022-03-24 11:59:03 +01:00
a87a9b3247 revert changes made to unreleased v3.2.10 2022-03-24 11:58:44 +01:00
7f1c82cd91 feat(i18n): add portuguese (pt) language to i18n locales 2022-03-24 11:57:16 +01:00
048c1ed3ed Merge pull request #764 from AmruthPillai/i18n_main
New Crowdin updates
2022-03-24 11:54:48 +01:00
9a2570d7e7 New translations builder.json (Portuguese) 2022-03-24 11:46:44 +01:00
00b9c2156d chore(release): 3.2.10 2022-03-24 11:33:14 +01:00
ff8b22274f ci(docker): use docker compose yaml anchor values and extension fields 2022-03-24 11:32:57 +01:00
786937f847 ci(gh): add .devcontainer for GitHub Codespaces 2022-03-24 09:16:54 +00:00
c95efee8ec perf(security): generate random salt rounds integer 2022-03-24 08:45:22 +01:00
776d2f79a6 ci(dependabot): upgrade npm dependencies manually, using local chore 2022-03-24 08:38:54 +01:00
25a6b8cce6 chore(deps): update dependencies to latest 2022-03-24 08:37:57 +01:00
f6d7cae17b Merge pull request #789 from AmruthPillai/dependabot/npm_and_yarn/typeorm-0.3.3
Bump typeorm from 0.2.45 to 0.3.3
2022-03-24 08:16:39 +01:00
944a0b5fb1 Bump typeorm from 0.2.45 to 0.3.3
Bumps [typeorm](https://github.com/typeorm/typeorm) from 0.2.45 to 0.3.3.
- [Release notes](https://github.com/typeorm/typeorm/releases)
- [Changelog](https://github.com/typeorm/typeorm/blob/master/CHANGELOG.md)
- [Commits](https://github.com/typeorm/typeorm/compare/0.2.45...0.3.3)

---
updated-dependencies:
- dependency-name: typeorm
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-24 07:15:35 +00:00
7769653224 Merge pull request #782 from AmruthPillai/dependabot/npm_and_yarn/server/nestjs/config-2.0.0
Bump @nestjs/config from 1.2.1 to 2.0.0 in /server
2022-03-24 08:15:25 +01:00
ccdc5b5fae Merge pull request #781 from AmruthPillai/dependabot/npm_and_yarn/docs/types/react-17.0.42
Bump @types/react from 17.0.40 to 17.0.42 in /docs
2022-03-24 08:15:20 +01:00
20158f573e Merge pull request #779 from AmruthPillai/dependabot/npm_and_yarn/client/types/node-17.0.23
Bump @types/node from 17.0.21 to 17.0.23 in /client
2022-03-24 08:15:10 +01:00
87c60729b5 Merge branch 'main' into dependabot/npm_and_yarn/client/types/node-17.0.23 2022-03-24 08:14:59 +01:00
a03a50b7c6 Merge pull request #777 from AmruthPillai/dependabot/npm_and_yarn/server/googleapis-98.0.0
Bump googleapis from 97.0.0 to 98.0.0 in /server
2022-03-24 08:14:35 +01:00
fb85ccf501 Merge pull request #776 from AmruthPillai/dependabot/npm_and_yarn/client/types/react-17.0.42
Bump @types/react from 17.0.40 to 17.0.42 in /client
2022-03-24 08:14:31 +01:00
3179442d8f Merge pull request #773 from AmruthPillai/dependabot/github_actions/docker/build-push-action-2.10.0
Bump docker/build-push-action from 2.9.0 to 2.10.0
2022-03-24 08:14:27 +01:00
33d3c52cd9 Merge pull request #772 from AmruthPillai/dependabot/github_actions/digitalocean/action-doctl-2.1.1
Bump digitalocean/action-doctl from 2.1.0 to 2.1.1
2022-03-24 08:14:22 +01:00
1d33e01a43 Merge pull request #771 from AmruthPillai/dependabot/docker/client/node-17-alpine
Bump node from 16-alpine to 17-alpine in /client
2022-03-24 08:14:17 +01:00
52ff221dd1 Merge pull request #770 from AmruthPillai/dependabot/docker/server/node-17-alpine
Bump node from 16-alpine to 17-alpine in /server
2022-03-24 08:13:57 +01:00
5afe178e23 Update dependabot.yml 2022-03-24 08:13:38 +01:00
9118b76084 Bump @nestjs/config from 1.2.1 to 2.0.0 in /server
Bumps [@nestjs/config](https://github.com/nestjs/config) from 1.2.1 to 2.0.0.
- [Release notes](https://github.com/nestjs/config/releases)
- [Changelog](https://github.com/nestjs/config/blob/master/.release-it.json)
- [Commits](https://github.com/nestjs/config/compare/1.2.1...2.0.0)

---
updated-dependencies:
- dependency-name: "@nestjs/config"
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-24 07:04:09 +00:00
5a62b527b9 Bump @types/react from 17.0.40 to 17.0.42 in /docs
Bumps [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) from 17.0.40 to 17.0.42.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)

---
updated-dependencies:
- dependency-name: "@types/react"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-24 07:04:08 +00:00
2e9e14dc72 Bump @types/node from 17.0.21 to 17.0.23 in /client
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 17.0.21 to 17.0.23.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-24 07:03:51 +00:00
0a0b4893aa Bump googleapis from 97.0.0 to 98.0.0 in /server
Bumps [googleapis](https://github.com/googleapis/google-api-nodejs-client) from 97.0.0 to 98.0.0.
- [Release notes](https://github.com/googleapis/google-api-nodejs-client/releases)
- [Changelog](https://github.com/googleapis/google-api-nodejs-client/blob/main/CHANGELOG.md)
- [Commits](https://github.com/googleapis/google-api-nodejs-client/compare/googleapis-v97.0.0...googleapis-v98.0.0)

---
updated-dependencies:
- dependency-name: googleapis
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-24 07:03:37 +00:00
6277f81e26 Bump @types/react from 17.0.40 to 17.0.42 in /client
Bumps [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) from 17.0.40 to 17.0.42.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)

---
updated-dependencies:
- dependency-name: "@types/react"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-24 07:03:35 +00:00
d550150787 Bump docker/build-push-action from 2.9.0 to 2.10.0
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 2.9.0 to 2.10.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v2.9.0...v2.10.0)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-24 07:02:41 +00:00
7626b2153f Bump digitalocean/action-doctl from 2.1.0 to 2.1.1
Bumps [digitalocean/action-doctl](https://github.com/digitalocean/action-doctl) from 2.1.0 to 2.1.1.
- [Release notes](https://github.com/digitalocean/action-doctl/releases)
- [Commits](https://github.com/digitalocean/action-doctl/compare/v2.1.0...v2.1.1)

---
updated-dependencies:
- dependency-name: digitalocean/action-doctl
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-24 07:02:38 +00:00
6d17d1001d Bump node from 16-alpine to 17-alpine in /client
Bumps node from 16-alpine to 17-alpine.

---
updated-dependencies:
- dependency-name: node
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-24 07:02:34 +00:00
0273738d7a Bump node from 16-alpine to 17-alpine in /server
Bumps node from 16-alpine to 17-alpine.

---
updated-dependencies:
- dependency-name: node
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-24 07:02:34 +00:00
322df25ecc Merge pull request #769 from modem7/dependabot-changes
Dependabot
2022-03-24 08:02:15 +01:00
ab3867d9a8 Merge pull request #768 from modem7/DockerChanges
Docker changes
2022-03-24 08:01:07 +01:00
9bf8ec88f4 Merge pull request #767 from modem7/readme-update
Update README
2022-03-24 07:58:58 +01:00
685f4d37a6 Merge pull request #766 from modem7/image-size
Reduced image sizes
2022-03-24 07:58:19 +01:00
f3b3fe8ac9 Update dependabot.yml
added gradle
2022-03-24 00:47:21 +00:00
d5fa49172a Create dependabot.yml
This will assist with version updates and vulnerability scans.

Dependabot scans will need to be enabled in the repo itself under https://github.com/AmruthPillai/Reactive-Resume/settings/security_analysis

It would also be worthwhile pairing this with Snyk (https://app.snyk.io/) for vulnerability monitoring.
2022-03-23 23:04:47 +00:00
b8303b9977 Update .env.example
Updated env variables to be clearer about which service requires it.
2022-03-23 23:03:29 +00:00
16d06c6356 Update README.md
As the logo is already in the repo, might as well utilise it.

Added Docker build status
2022-03-23 22:54:33 +00:00
79ddd887d9 Docker changes
Added:
Healthchecks
Changed Postgres to Alpine + pinned
Pinned Traefik Version
Made Env Vars easier to see + change/reference for those using their own env file.
2022-03-23 22:52:30 +00:00
c394bc6725 Reduced image sizes
This reduces images size from a total of 9.22mb to 6.11mb.
2022-03-23 22:41:24 +00:00
9e6d7630f4 New translations landing.json (Portuguese) 2022-03-23 23:06:12 +01:00
e2fbdd3c2f New translations modals.json (Portuguese) 2022-03-23 21:57:14 +01:00
849171af8f New translations dashboard.json (Portuguese) 2022-03-23 21:01:36 +01:00
884975dda6 chore(release): 3.2.9 2022-03-21 08:58:19 +01:00
03cbf22c9b feat(i18n): add nl and ru i18n locales to app 2022-03-21 08:57:47 +01:00
a10cee2efa Merge pull request #740 from AmruthPillai/i18n_main
New Crowdin updates
2022-03-21 08:32:28 +01:00
479c94a11d Merge pull request #746 from GovindKrishnan/main
Cleaned Issue Templates Using Comments
2022-03-21 08:32:18 +01:00
c057f31e97 Merge pull request #750 from chandiwalaaadhar/fix/work-experience-website-link-redirects-404
Fixed URL 404 issue in Profile Section URL
2022-03-21 08:32:08 +01:00
d0bc9db6e5 Fixed issue in Profile Section URL 2022-03-21 06:14:22 +05:30
e2dd8dd1d7 Commenting Out Help Lines [FR Template]
To avoid clutter & increase readability of issues, I suggest commenting out the extra help tips so that they don't appear in the actual report.
2022-03-20 05:48:54 +05:30
f2ff12faa6 Commenting Out Help Lines [Bug Template]
To avoid clutter & increase readability of issues, I suggest commenting out the extra help tips so that they don't appear in the actual report.
2022-03-20 05:45:58 +05:30
50cc3d7da8 New translations modals.json (Russian) 2022-03-19 11:32:35 +01:00
60b1f7a816 New translations dashboard.json (Russian) 2022-03-19 11:32:31 +01:00
33d2bf043b New translations landing.json (Russian) 2022-03-19 10:16:47 +01:00
86b20dcae6 New translations builder.json (Russian) 2022-03-19 10:16:42 +01:00
caf4936c9b New translations dashboard.json (Russian) 2022-03-19 10:16:40 +01:00
7e864d2447 New translations common.json (Russian) 2022-03-19 10:16:38 +01:00
ff324688f6 Merge pull request #742 from GovindKrishnan/main
Linking Badges to Releases & License
2022-03-19 09:29:45 +01:00
efaeb1b341 Linking Badges to Releases & License (DOCS)
Linked the Version badge to Releases and License badge to MIT License.
2022-03-19 09:03:23 +05:30
488cb7f8a2 Linking Badges to Releases & License (README)
Linked the Version badge to Releases and License badge to MIT License.
2022-03-19 08:59:56 +05:30
974fa08651 New translations builder.json (Dutch) 2022-03-18 21:46:54 +01:00
8f3312e8a8 New translations landing.json (Dutch) 2022-03-18 20:46:24 +01:00
57d5da0490 New translations modals.json (Dutch) 2022-03-18 20:46:21 +01:00
daeb67319e New translations dashboard.json (Dutch) 2022-03-18 20:46:18 +01:00
213665bd1d New translations common.json (Dutch) 2022-03-18 20:46:16 +01:00
dfc48d6aa9 Merge pull request #738 from martadinata666/docusaurus-port-server
Update docusaurus to prevent crash with client
2022-03-18 19:38:40 +01:00
d71d40453f Update package.json 2022-03-18 23:23:30 +07:00
635afbc892 Merge pull request #737 from GovindKrishnan/main
Removed Self Referring Link in Docs
2022-03-18 16:47:30 +01:00
e90037e363 Removed Self Referring Link in Docs
Instead, linked to the GitHub Repo so that they can check out this repo.

If you got some other important link, feel free to change.
2022-03-18 20:07:57 +05:30
a730359736 chore(release): 3.2.8 2022-03-18 11:18:10 +01:00
80acfe97c7 fix(disable_user_signups): hide create account link under flag 2022-03-18 11:17:30 +01:00
b6267d07ba feat(flags): introduce flags, disable_user_signups
fix #698
2022-03-18 11:12:26 +01:00
910f764823 Merge pull request #735 from AmruthPillai/i18n_main
New Crowdin updates
2022-03-18 10:56:08 +01:00
7a8f302c21 New translations common.json (Malayalam) 2022-03-18 10:55:35 +01:00
fb0c3b55c1 New translations common.json (Hindi) 2022-03-18 10:55:15 +01:00
f9579855a9 New translations common.json (Bengali) 2022-03-18 10:55:14 +01:00
0dd1e2720a New translations common.json (Vietnamese) 2022-03-18 10:55:14 +01:00
331d2d3d26 New translations common.json (Chinese Simplified) 2022-03-18 10:55:13 +01:00
f56554c2d4 New translations common.json (Turkish) 2022-03-18 10:55:11 +01:00
98131b389c New translations common.json (Portuguese) 2022-03-18 10:55:10 +01:00
7cfe6288e1 New translations common.json (Polish) 2022-03-18 10:55:09 +01:00
84041ef2ff New translations common.json (Italian) 2022-03-18 10:55:07 +01:00
9a2af8079e New translations common.json (German) 2022-03-18 10:54:55 +01:00
633162d9af New translations common.json (Danish) 2022-03-18 10:54:54 +01:00
50baa0227d New translations common.json (Kannada) 2022-03-18 10:54:44 +01:00
18da00f2e2 New translations common.json (Tamil) 2022-03-18 10:54:41 +01:00
f4f0b2c4b5 New translations common.json (Arabic) 2022-03-18 10:54:38 +01:00
b7d3007d31 New translations common.json (Spanish) 2022-03-18 10:54:37 +01:00
67384981c1 New translations common.json (French) 2022-03-18 10:54:36 +01:00
4390bccfb9 feat(i18n): add Vietnamese language to i18n locales 2022-03-18 10:52:06 +01:00
8f5632c5ad feat(client/theme): add theme switcher to landing page 2022-03-18 10:20:39 +01:00
1facd2ad11 fix(client/create-rename-slug): fix slug accepting apostrophes and other special characters
fix #706
2022-03-18 09:37:09 +01:00
0e1e2bbe4e chore(release): 3.2.7 2022-03-18 09:29:54 +01:00
3a2e62be4c feat(i18n): add Malayalam (മലയാളം) language to i18n locales 2022-03-18 09:27:04 +01:00
697ceef8f2 Merge branch 'main' of github.com:AmruthPillai/Reactive-Resume 2022-03-18 09:25:13 +01:00
c8e81a456d Merge pull request #731 from AmruthPillai/i18n_main
New Crowdin updates
2022-03-18 09:25:09 +01:00
2b334e5c5a Merge pull request #727 from chandiwalaaadhar/fix/crash-on-pasting-hex-without-#-prefix
Fix-Crash on Entering Primary Color Hex Code without # Prefix
2022-03-18 09:24:54 +01:00
90321e1284 fix(printer/i18n): fix dates not showing up in resume language when printing
fix #729
2022-03-18 09:24:33 +01:00
9bcddb4b5c New translations modals.json (Malayalam) 2022-03-18 02:48:34 +01:00
72fdc05f69 New translations landing.json (Malayalam) 2022-03-18 02:48:33 +01:00
e1d6540500 New translations dashboard.json (Malayalam) 2022-03-18 02:48:32 +01:00
4b17719c69 New translations common.json (Malayalam) 2022-03-18 02:48:31 +01:00
da056307dd New translations builder.json (Malayalam) 2022-03-18 02:48:29 +01:00
e4950728d8 Refactored- Avoiding modifying the prop 2022-03-18 06:18:17 +05:30
dac4e862b8 Fix-Crash on Entering Primary Color Hex Code without # Prefix 2022-03-17 19:42:26 +05:30
5fa45ef5bd chore(release): 3.2.6 2022-03-17 14:05:31 +01:00
9e6dafc8ca fix(i18n): add missing languages to dayjs date wrapper locales
fix #719
2022-03-17 14:05:13 +01:00
a02b85b4bb fix(linkedin): fix skill modal crashing when importing from linkedin
fix #718
2022-03-17 13:58:49 +01:00
b3ff7805cd fix(json-export): add mimeType and charset to JSON export
fix #726
2022-03-17 13:11:18 +01:00
7f0ee40af4 feat(client/auth/google): disable google login/registration if GOOGLE_CLIENT_ID is not in ENV
fix #724
2022-03-17 12:17:41 +01:00
39fa6da5dd feat(i18n): add arabic language to i18n locale 2022-03-17 12:16:25 +01:00
7fd96a4540 Merge pull request #723 from GovindKrishnan/main
Adding Contributors Wall to README
2022-03-17 07:07:03 +01:00
8f5832b2ca Merge branch 'main' into main 2022-03-17 11:34:46 +05:30
58ce09ee06 Contributors Wall to index.mdx 2022-03-17 11:32:40 +05:30
3f5323d5a3 Update bug-report.md 2022-03-17 07:02:09 +01:00
d62482b280 Merge pull request #722 from AmruthPillai/i18n_main
New Crowdin updates
2022-03-17 06:53:14 +01:00
a609ea551a Merge pull request #720 from chandiwalaaadhar/fix/shared-resume-not-scrollable-on-phone-screen
Fix- Resume Shared is not Scrollable on Phone Screen
2022-03-17 06:52:55 +01:00
1f8e3647d3 Styling 2022-03-16 22:20:58 +05:30
76975ddc6c Adding Contributors Wall to README
Using an open-source web tool called contrib.rocks that sync daily with Contributors Club.

Sort of experimental as I came across this today. But yea, it does no harm to production to say the least. 😅
2022-03-16 22:11:33 +05:30
6ed0bb62b4 New translations modals.json (Arabic) 2022-03-16 17:34:58 +01:00
11d15d8dbb New translations builder.json (Arabic) 2022-03-16 17:34:55 +01:00
7cf92ddb81 New translations dashboard.json (Arabic) 2022-03-16 17:34:53 +01:00
d907b36d59 New translations landing.json (Arabic) 2022-03-16 16:22:21 +01:00
307b626189 Fix- Shared Resume not Scrollable on Phone Screen 2022-03-16 18:45:10 +05:30
f573e60079 Merge pull request #717 from chandiwalaaadhar/fix/integrations-empty-date-sections-not-loading
Fix-Json with Empty Date Strings in Sections doesn't get loaded in the Resume
2022-03-16 11:48:34 +01:00
d3c52476f7 Merge pull request #716 from AmruthPillai/i18n_main
New Crowdin updates
2022-03-16 11:47:00 +01:00
4f9d2ea846 New translations modals.json (Vietnamese) 2022-03-16 09:10:28 +01:00
ec617d682e Revert "Fix- Language Modal Slider Component Label Text Overlapping"
This reverts commit 5a60c99df9.
2022-03-16 13:39:27 +05:30
72d3d46e88 Fix- Integration LinkedIn Empty Date 2022-03-16 13:36:21 +05:30
110797da9d Fix - Integration JSON Resume Empty Date 2022-03-16 13:32:59 +05:30
ab90a2e1dd Fix- Reactive Resume v2 Integration Empty Date 2022-03-16 13:29:37 +05:30
1a3c950847 New translations dashboard.json (Vietnamese) 2022-03-16 08:11:13 +01:00
7fcc792255 New translations landing.json (Vietnamese) 2022-03-16 08:11:10 +01:00
97a13f9f41 New translations builder.json (Vietnamese) 2022-03-16 08:11:08 +01:00
29f1afac9a New translations common.json (Vietnamese) 2022-03-16 08:11:03 +01:00
c5d0abdc79 Merge pull request #714 from chandiwalaaadhar/fix/publication-modal-label-text
Fix- Publication Modal Label text
2022-03-16 07:24:31 +01:00
5a60c99df9 Fix- Language Modal Slider Component Label Text Overlapping 2022-03-16 11:25:48 +05:30
7d188622a8 chore(release): 3.2.5 2022-03-16 06:50:18 +01:00
97e9432d6b feat(i18n): add danish, polish and turkish locales to i18n 2022-03-16 06:48:33 +01:00
c46b8fc162 Fix- Publication Modal Label text 2022-03-16 11:17:33 +05:30
b2f1fb3a55 fix(client/templates): fix text veering off of artboard in most templates
fix #702
2022-03-16 06:41:48 +01:00
4743828e6b chore(deps): update dependencies to match latest patch fixes 2022-03-16 06:40:49 +01:00
519fbbd1b2 Merge pull request #689 from AmruthPillai/i18n_main
New Crowdin updates
2022-03-16 06:21:54 +01:00
ebc084ad52 Create FUNDING.yml 2022-03-16 06:09:50 +01:00
26fdd72610 New translations modals.json (Italian) 2022-03-15 16:28:53 +01:00
ea704c6d99 New translations modals.json (Chinese Simplified) 2022-03-15 16:28:52 +01:00
ea88044d25 New translations modals.json (Bengali) 2022-03-15 16:28:51 +01:00
a461cc147b New translations modals.json (Hindi) 2022-03-15 16:28:50 +01:00
5aefcae2ac New translations modals.json (German) 2022-03-15 16:28:40 +01:00
ba1e968510 New translations modals.json (Spanish) 2022-03-15 16:28:38 +01:00
ba12abe506 New translations modals.json (French) 2022-03-15 16:28:37 +01:00
29fb1dcca3 New translations modals.json (Kannada) 2022-03-15 16:28:14 +01:00
4be6c48aab New translations modals.json (Tamil) 2022-03-15 16:28:13 +01:00
ee1017aa25 Merge pull request #699 from chandiwalaaadhar/fix/pikachu-profile-image-uncontrolled-size
Fix - Pikachu User Image upload, uncontrolled Image Size
2022-03-15 16:25:19 +01:00
bf806c5ecf New translations dashboard.json (Italian) 2022-03-15 15:52:23 +01:00
bf9709ed8e New translations landing.json (Italian) 2022-03-15 15:52:21 +01:00
6c74ecfef7 New translations builder.json (Italian) 2022-03-15 15:52:17 +01:00
fb8c925037 New translations common.json (Italian) 2022-03-15 15:52:13 +01:00
c8c154c2f4 Merge pull request #701 from GovindKrishnan/main
Fixed a Typo in README
2022-03-15 15:15:39 +01:00
92b2c4b757 New translations modals.json (Polish) 2022-03-15 14:41:14 +01:00
260a354c22 New translations dashboard.json (Polish) 2022-03-15 14:41:11 +01:00
c67a969353 New translations landing.json (Polish) 2022-03-15 14:41:09 +01:00
8d61703250 New translations builder.json (Polish) 2022-03-15 14:41:04 +01:00
28df783bba New translations common.json (Polish) 2022-03-15 14:41:03 +01:00
51575a340b New translations modals.json (Danish) 2022-03-15 13:44:39 +01:00
8068d34bf3 New translations dashboard.json (Danish) 2022-03-15 13:44:35 +01:00
b154fae0fa New translations landing.json (Danish) 2022-03-15 13:44:34 +01:00
c5ba1730c3 New translations builder.json (Danish) 2022-03-15 13:44:29 +01:00
a7d90da30e New translations common.json (Danish) 2022-03-15 13:44:26 +01:00
0bbc54a97f Merge pull request #1 from GovindKrishnan/patch-1
Fixed Same Typos in index.mdx
2022-03-15 17:07:47 +05:30
2081f1344f Fixed Same Typos in index.mdx 2022-03-15 17:05:46 +05:30
d029607e16 Fixing Typos in README 2022-03-15 16:46:58 +05:30
5fe0c02cec Fixed a Typo in README
Very trivial. But still, here's my contribution! 😄 

After all, grammar is very important in resumes. 😉
2022-03-15 16:41:10 +05:30
70b45b3686 New translations modals.json (Turkish) 2022-03-15 11:49:35 +01:00
ff098d5df1 New translations landing.json (Turkish) 2022-03-15 11:49:30 +01:00
95d7d70caa New translations builder.json (Turkish) 2022-03-15 10:34:48 +01:00
107ba6e525 New translations common.json (Turkish) 2022-03-15 10:34:45 +01:00
f72e0556e5 Fix - Pikachu User Image after upload covers the center content 2022-03-15 05:57:50 +05:30
0ef975a177 chore(release): 3.2.4 2022-03-14 22:08:16 +01:00
eb9f5450df chore(donation): replace buymeacoffee links with paypal.me links 2022-03-14 22:08:04 +01:00
c7fffff495 chore(release): 3.2.3 2022-03-14 21:50:20 +01:00
42408ce8c5 feat(client/import): implement import json from reactive resume v2 2022-03-14 21:50:04 +01:00
7c49b50979 New translations builder.json (Czech) 2022-03-14 21:27:52 +01:00
59b2fc9fd6 New translations common.json (Portuguese) 2022-03-14 18:58:46 +01:00
f93ac987ac New translations dashboard.json (Turkish) 2022-03-14 16:52:59 +01:00
fb32f9b523 New translations common.json (Arabic) 2022-03-14 16:52:52 +01:00
ed78f8fc4e Merge pull request #687 from chandiwalaaadhar/fix/pikachu-masthead-asymmetric-basic-details
Fix-Pikachu Masthead Basic Details looks asymmetric Due to Centred Alignment
2022-03-14 15:51:16 +01:00
318145f007 Create CODE_OF_CONDUCT.md 2022-03-14 15:09:47 +01:00
c2a35a1066 Merge pull request #685 from chandiwalaaadhar/fix/work-experience-website-link-redirects-404
Fix - Work Experience Website Link Redirects to 404 if manually entered without http/https
2022-03-14 15:08:54 +01:00
541cfa784d Fix-Pikachu Masthead Asymmetric Basic Details 2022-03-14 19:38:49 +05:30
de53d8dfe7 Removed url && in the link prop 2022-03-14 19:32:12 +05:30
c28afbc75d Fix Work Experience Website Link redirects to 404 if entered without http or https 2022-03-14 19:12:36 +05:30
40e6227aa9 chore(release): 3.2.2 2022-03-14 10:28:29 +01:00
02e396bfdb fix(client/skills): make skill level optional 2022-03-14 10:26:57 +01:00
4dc83c1d7f docs(docker): update docs to add docker deployment example to droplet 2022-03-14 10:18:04 +01:00
143a123212 Create docker.mdx 2022-03-14 10:11:52 +01:00
c64b96619f docs(source-code): fix links to docker, local-build on source-code index page 2022-03-14 09:26:15 +01:00
ff35a2a95c chore(release): 3.2.1 2022-03-14 09:23:16 +01:00
549363bbe5 feat(i18n): add Chinese (Simplified) language to locales 2022-03-14 09:23:01 +01:00
e6bda688ac fix(client/basics): fix issue with overlapping photo filters on safari/webkit/iOS 2022-03-14 09:19:22 +01:00
64b0c5e7cf Merge pull request #681 from AmruthPillai/i18n_main
New Crowdin updates
2022-03-14 09:09:26 +01:00
57f7edc134 fix(docker): fix docker-compose for production grade deployments 2022-03-14 09:03:47 +01:00
c62a3c2dfd New translations modals.json (Chinese Simplified) 2022-03-14 07:38:30 +01:00
b7f024913c New translations dashboard.json (Chinese Simplified) 2022-03-14 07:38:28 +01:00
488631e6b0 New translations landing.json (Chinese Simplified) 2022-03-14 07:38:25 +01:00
ca5a866249 New translations builder.json (Chinese Simplified) 2022-03-14 07:38:23 +01:00
3a0cd4e150 New translations common.json (Chinese Simplified) 2022-03-14 07:38:19 +01:00
e82e714e41 chore(release): 3.2.0 2022-03-14 06:40:41 +01:00
21931bc324 feat(i18n): add Bengali, Italian and other languages 2022-03-14 06:40:16 +01:00
ed75a85827 fix(client): fix issue with react-query cache 2022-03-14 06:33:14 +01:00
fbb0285d0d Merge pull request #678 from AmruthPillai/i18n_main
New Crowdin updates
2022-03-14 06:10:51 +01:00
b056b002b7 New translations builder.json (Italian) 2022-03-14 02:04:09 +01:00
8b32bfb9f4 New translations modals.json (Italian) 2022-03-13 22:03:59 +01:00
cf3696c976 New translations dashboard.json (Italian) 2022-03-13 22:03:56 +01:00
aa0dc1d7fb New translations landing.json (Italian) 2022-03-13 22:03:54 +01:00
f5bf77cfd0 New translations builder.json (Italian) 2022-03-13 22:03:51 +01:00
9ddbc7cab2 New translations common.json (Italian) 2022-03-13 22:03:49 +01:00
f7d11c5fd2 New translations landing.json (Bengali) 2022-03-13 21:03:51 +01:00
bede07656b New translations dashboard.json (Bengali) 2022-03-13 21:03:48 +01:00
49b56f7a76 New translations modals.json (Bengali) 2022-03-13 20:08:25 +01:00
1421fc5183 New translations common.json (Bengali) 2022-03-13 20:08:20 +01:00
b3da226d24 New translations builder.json (Bengali) 2022-03-13 20:08:19 +01:00
3d7a5b9313 Merge pull request #675 from AmruthPillai/i18n_main
New Crowdin updates
2022-03-13 19:02:01 +01:00
86ca4602fd Merge pull request #667 from chandiwalaaadhar/fix/skillModal-disable-and-beginner-text-clashing
Fixed Near Overlapping of "Disable" & "Beginner" Label Text in Skills Modal for Desktop Screen
2022-03-13 19:01:52 +01:00
3dde7e5772 Merge pull request #669 from chandiwalaaadhar/fix/gengar-theme-masthead-icons-disapper
Fix-Gengar Theme MastHead Icons Disappear on Theme/Primary Color Change
2022-03-13 19:01:45 +01:00
0782c616ea Merge branch 'main' into fix/gengar-theme-masthead-icons-disapper 2022-03-13 18:56:14 +01:00
d1d3f240b4 Merge branch 'main' of github.com:AmruthPillai/Reactive-Resume 2022-03-13 18:54:03 +01:00
b18120b3f7 fix(app): fix issue with external link redirection in android app 2022-03-13 18:53:48 +01:00
b5809ea449 New translations common.json (Vietnamese) 2022-03-13 17:52:24 +01:00
01acec4a51 New translations common.json (Spanish) 2022-03-13 17:52:21 +01:00
9d076d384c Merge branch 'main' into fix/gengar-theme-masthead-icons-disapper 2022-03-13 21:35:16 +05:30
e7a8596456 Fix-Gengar Theme MastHead Icons Disappear on Theme Change 2022-03-13 12:47:57 +05:30
ab4df6193c Fixed Near Overlapping of Disable & Beginner Text in Skills Modal for Desktop 2022-03-13 12:00:25 +05:30
e4a9f269d2 Merge pull request #662 from AmruthPillai/i18n_main
New Crowdin updates
2022-03-13 07:24:36 +01:00
189cc702c2 New translations modals.json (Italian) 2022-03-13 07:13:32 +01:00
c348b6449b New translations landing.json (Italian) 2022-03-13 07:13:29 +01:00
708920df44 New translations landing.json (German) 2022-03-13 07:13:28 +01:00
81733e5855 New translations landing.json (Spanish) 2022-03-13 07:13:27 +01:00
794c7df374 New translations modals.json (German) 2022-03-13 07:13:24 +01:00
267f593ec2 New translations modals.json (Spanish) 2022-03-13 07:13:23 +01:00
048927a163 New translations dashboard.json (Spanish) 2022-03-13 07:13:16 +01:00
f4a65122c6 New translations dashboard.json (German) 2022-03-13 07:13:15 +01:00
6587c76397 New translations dashboard.json (Italian) 2022-03-13 07:13:14 +01:00
80223a240c New translations builder.json (Italian) 2022-03-13 07:13:12 +01:00
50faa5dff3 New translations modals.json (French) 2022-03-12 20:25:37 +01:00
6a4521b057 New translations landing.json (French) 2022-03-12 20:25:33 +01:00
81a4d7291a New translations dashboard.json (French) 2022-03-12 20:25:32 +01:00
381cfcc220 New translations builder.json (French) 2022-03-12 20:25:28 +01:00
0f555e4f88 New translations common.json (French) 2022-03-12 20:25:27 +01:00
ebd9253038 chore(release): 3.1.4 2022-03-12 19:46:45 +01:00
cf670af403 fix(client): exported pdf did not contain "Present" keyword with translations 2022-03-12 19:46:30 +01:00
dfccb3130f fix(client): fix issues raised through lgtm alerts 2022-03-12 18:56:00 +01:00
ef06240935 docs(readme): add localization percentage badge 2022-03-12 18:47:34 +01:00
55e57353a4 New translations modals.json (Italian) 2022-03-12 18:23:47 +01:00
f0144cc6e7 New translations landing.json (Italian) 2022-03-12 18:23:44 +01:00
e5150ab128 New translations common.json (Italian) 2022-03-12 18:23:40 +01:00
d61905db10 chore(release): 3.1.3 2022-03-12 17:41:29 +01:00
6d55f917ea fix(server): reform url for pdf generation and download
fix #661
2022-03-12 17:41:16 +01:00
4371f3b693 New translations dashboard.json (Italian) 2022-03-12 17:28:42 +01:00
c8c5916d02 Update local-build.mdx 2022-03-12 16:09:08 +01:00
3ca27f2326 docs(style): update CHANGELOG.md 2022-03-12 15:59:34 +01:00
f78f24c972 chore(release): 3.1.2 2022-03-12 15:57:28 +01:00
11cb066573 ci(docker): include traefik routing and proxy to ensure server connections pass in local 2022-03-12 15:55:04 +01:00
528ac84d3b chore(release): 3.1.1 2022-03-12 15:20:01 +01:00
b515fc36e7 feat(client): add product hunt announcement banner 2022-03-12 15:19:19 +01:00
d7268423df chore(release): 3.1.0 2022-03-12 13:01:40 +01:00
bf167f81a3 feat(client): add "spanish (es)" language to i18n locales 2022-03-12 13:01:16 +01:00
9e2f22d878 Merge pull request #654 from AmruthPillai/i18n_main
New Crowdin updates
2022-03-12 12:58:17 +01:00
084b909152 New translations common.json (Hindi) 2022-03-12 12:57:47 +01:00
3955afee8d New translations common.json (German) 2022-03-12 12:57:42 +01:00
f2dd2b5fcf New translations common.json (Kannada) 2022-03-12 12:57:37 +01:00
305561955a New translations common.json (Tamil) 2022-03-12 12:57:36 +01:00
cadbd3dfe8 New translations common.json (Spanish) 2022-03-12 12:57:34 +01:00
b5cd6c412b fix(client): show "present" string if end date is not entered, also add to i18n locales
fix #653
2022-03-12 12:49:11 +01:00
799f20823e fix(server): photo uploads not working, fix save location and returned url
fix #658
2022-03-12 12:37:04 +01:00
dda42b4c6b fix(client): remove hard-coded "keywords:" in certain templates
fix #650
2022-03-12 12:32:35 +01:00
f1c260736a New translations builder.json (Spanish) 2022-03-12 12:16:43 +01:00
b5a9b26f34 New translations builder.json (German) 2022-03-12 12:06:43 +01:00
918bd555c1 New translations builder.json (Spanish) 2022-03-12 12:06:42 +01:00
9ea2775790 New translations builder.json (Kannada) 2022-03-12 12:06:38 +01:00
9d83b997f5 New translations builder.json (Hindi) 2022-03-12 12:06:36 +01:00
228fb42ba5 New translations builder.json (Tamil) 2022-03-12 12:06:35 +01:00
01da1a06b8 feat(client): disable "Toggle Page Orientation" when there's only one page on the artboard
fix #655
2022-03-12 11:59:14 +01:00
82bf44daa2 feat(client): add mm/yyyy date option to date format options
fixes #656
2022-03-12 11:48:07 +01:00
2cbc582a12 feat(client): add sitemap generation to next app 2022-03-12 11:44:51 +01:00
2b9f016b95 New translations modals.json (Spanish) 2022-03-12 09:55:25 +01:00
358c97eb71 New translations dashboard.json (Spanish) 2022-03-12 09:55:19 +01:00
76ef513b46 New translations landing.json (Spanish) 2022-03-12 09:55:18 +01:00
497c6e01f1 New translations builder.json (Spanish) 2022-03-12 09:55:14 +01:00
e78c4a9adb New translations common.json (Spanish) 2022-03-12 09:55:12 +01:00
30d0151bdb Merge pull request #646 from AmruthPillai/i18n_main
New Crowdin updates
2022-03-11 20:28:50 +01:00
4dd94c3363 Update CHANGELOG.md 2022-03-11 20:27:25 +01:00
f711b089bc New translations landing.json (German) 2022-03-11 20:25:38 +01:00
01c1125153 New translations modals.json (German) 2022-03-11 20:25:37 +01:00
fa42d82416 New translations dashboard.json (German) 2022-03-11 20:25:32 +01:00
6322d4d105 New translations builder.json (German) 2022-03-11 20:25:28 +01:00
77467929c7 New translations common.json (German) 2022-03-11 20:25:27 +01:00
3a524f9c9c fix(lang): add hi, de to next-i18next 2022-03-11 20:21:35 +01:00
63f900870b chore(release): 3.0.0 2022-03-11 20:03:50 +01:00
32f78e85f7 Merge pull request #645 from AmruthPillai/feat/add-docs-workspace
Add docs powered by Docusaurus v2
2022-03-11 20:03:29 +01:00
1cc2232730 docs(docusaurus): update docs, add languages, ready to build 2022-03-11 20:02:16 +01:00
2ff6761630 Merge branch 'main' into feat/add-docs-workspace 2022-03-11 19:48:35 +01:00
5836e55a36 docs(readme): update readme with languages section, add license badge 2022-03-11 19:42:07 +01:00
ec98c14fbd Create LICENSE 2022-03-11 19:40:38 +01:00
78c1f5a380 Delete feature_request.md 2022-03-11 19:29:10 +01:00
808fa45124 Delete bug_report.md 2022-03-11 19:29:04 +01:00
2625ed4f3d Merge pull request #644 from AmruthPillai/i18n_main
New Crowdin updates
2022-03-11 19:27:42 +01:00
40085f8d78 New translations modals.json (Hindi) 2022-03-11 19:26:50 +01:00
f4e3be178c New translations landing.json (German) 2022-03-11 19:26:48 +01:00
601f61c59a New translations dashboard.json (Hindi) 2022-03-11 19:26:47 +01:00
59049e8f77 New translations modals.json (German) 2022-03-11 19:26:45 +01:00
798e77f693 New translations landing.json (Hindi) 2022-03-11 19:26:44 +01:00
78565079e7 New translations common.json (Hindi) 2022-03-11 19:26:42 +01:00
0bec4cff05 New translations dashboard.json (German) 2022-03-11 19:26:38 +01:00
26dc0069f9 New translations common.json (German) 2022-03-11 19:26:36 +01:00
90bb80b1e2 New translations builder.json (German) 2022-03-11 19:26:35 +01:00
61ed3ff018 New translations modals.json (Kannada) 2022-03-11 19:26:34 +01:00
36a12e82a2 New translations builder.json (Hindi) 2022-03-11 19:26:26 +01:00
a3cf1752cc Merge pull request #643 from AmruthPillai/i18n_main
New Crowdin updates
2022-03-11 19:06:12 +01:00
5b79e23564 Merge branch 'main' into i18n_main 2022-03-11 19:06:05 +01:00
300e4a790d New translations modals.json (Kannada) 2022-03-11 19:04:32 +01:00
ba4666b767 New translations modals.json (Tamil) 2022-03-11 19:04:31 +01:00
b283c6ee8f New translations landing.json (Tamil) 2022-03-11 19:04:29 +01:00
316eca35ef New translations common.json (Kannada) 2022-03-11 19:04:27 +01:00
16c18de964 New translations common.json (Tamil) 2022-03-11 19:04:26 +01:00
0c23af4be8 New translations builder.json (Kannada) 2022-03-11 19:04:25 +01:00
fe1b325fdf New translations builder.json (Tamil) 2022-03-11 19:04:24 +01:00
9395a4d578 docs(style): update CHANGELOG.md 2022-03-11 15:46:49 +01:00
c11f92841b chore(release): 3.0.0-beta.6 2022-03-11 15:44:42 +01:00
2654cba039 fix(webkit): fix issue with webkit not supporting .at() 2022-03-11 15:40:25 +01:00
7d8828a358 fix(i18n): add missing translation keys, update lang/locale logic 2022-03-11 08:43:20 +01:00
8bc7d2599e feat(lang): add language switcher on the landing page, in the footer 2022-03-10 21:59:16 +01:00
036adbfc96 Delete .DS_Store 2022-03-10 15:34:02 +01:00
4b7e43424c style(changelog): add standard-version to automate releases and tags 2022-03-10 15:32:46 +01:00
0f1c3a8142 chore(release): 3.0.0 2022-03-10 15:29:49 +01:00
8dc27ecf07 Merge pull request #641 from AmruthPillai/i18n_main
New Crowdin updates
2022-03-10 14:58:45 +01:00
a05917b00d New translations modals.json (Kannada) 2022-03-10 14:58:17 +01:00
d5f2eea34c New translations landing.json (Kannada) 2022-03-10 14:58:16 +01:00
29bc3f33a6 New translations dashboard.json (Kannada) 2022-03-10 14:58:15 +01:00
b332b77eff New translations dashboard.json (Tamil) 2022-03-10 14:58:14 +01:00
8e09db276e New translations builder.json (Kannada) 2022-03-10 14:58:12 +01:00
2f7cfd2add New translations builder.json (Tamil) 2022-03-10 14:58:11 +01:00
6a4464b239 New translations common.json (Kannada) 2022-03-10 14:29:16 +01:00
972e8b1bcf fix(app): fix issue with using swipelayout 2022-03-10 14:13:54 +01:00
ad916c5b07 Create close-stale.yml 2022-03-10 09:37:47 +01:00
eca80a1663 feat(health): add health checks to server api 2022-03-10 09:25:15 +01:00
8f48f5fcd6 remove codemagic.yaml 2022-03-10 00:18:50 +01:00
40f5111eba update local.properties path 2022-03-10 00:12:33 +01:00
55a09c0c05 remove other group from codemagic.yml 2022-03-09 23:58:25 +01:00
1e72efa7ac ci(codemagic): add android app ci to build and publish automatically 2022-03-09 23:49:22 +01:00
fd752bfd70 Merge pull request #640 from AmruthPillai/feat/android-app
Adding Android App Source Code to the Monorepo
2022-03-09 23:40:56 +01:00
ee328186c8 fix(client): add safety check on path.id split 2022-03-09 23:39:04 +01:00
ecab1e0bfa style(eslint): do not log all files when linting, just errors 2022-03-09 22:43:45 +01:00
cbbdc92c66 style(prettier): add android app to ignore files for eslint, prettier and docker 2022-03-09 22:41:57 +01:00
5d54f8101b feat(app): add an android app that loads beta.rxresu.me through a webview 2022-03-09 22:40:59 +01:00
4fe5788b23 docs(landing): add links to privacy policy and terms of service 2022-03-09 20:19:05 +01:00
612335696c ci(docker): use version instead of commit sha 2022-03-09 19:30:30 +01:00
781dc4d231 ci(release): remove release-it 2022-03-09 19:18:31 +01:00
5d37dcb0ed ci(release-it): add release-it to auto-generate changelogs and release to github 2022-03-09 19:15:20 +01:00
6255849822 fix(printer): fix issue with printer service, locating the right URL of the server 2022-03-09 18:55:17 +01:00
ef3b2c5638 docs(source-code): add docs to build project from source, docker + local build 2022-03-09 14:05:40 +01:00
6c671f2dba Merge branch 'main' into feat/add-docs-workspace 2022-03-09 11:08:17 +01:00
4447b58b8f Merge pull request #635 from AmruthPillai/i18n_main
New Crowdin updates
2022-03-09 09:45:28 +01:00
b210b19b03 Merge branch 'main' into i18n_main 2022-03-09 09:45:06 +01:00
1e909f3257 docs(changelog): add CHANGELOG.md 2022-03-09 09:44:11 +01:00
c3f037ee1d chore(version): bump version to v3.0.0.beta.1 2022-03-09 09:40:16 +01:00
6f02048ebd feat(client/landing): add testimonials section to landing page 2022-03-09 09:37:38 +01:00
78cd1c036e Update source file landing.json 2022-03-09 00:02:00 +01:00
7e1448bbf9 docs(readme): add fossa license check badge 2022-03-08 23:56:11 +01:00
dc4aa0b496 feat(docs): add docusaurus workspace, initial setup of docs 2022-03-08 23:54:00 +01:00
a131bb3652 feat(client): add language selector, language detector and privacy/tos pages 2022-03-08 22:57:47 +01:00
bf9da32465 Merge pull request #634 from AmruthPillai/i18n_main
New Crowdin updates
2022-03-08 16:33:25 +01:00
efba6ee7dd New translations landing.json (Tamil) 2022-03-08 16:30:34 +01:00
9c2ff5e14f New translations common.json (Tamil) 2022-03-08 16:30:31 +01:00
d167baa607 Merge pull request #633 from AmruthPillai/i18n_main
New Crowdin updates
2022-03-08 16:23:21 +01:00
e420ea6ce4 New translations modals.json (Kannada) 2022-03-08 16:22:51 +01:00
ec0a88675b New translations modals.json (Tamil) 2022-03-08 16:22:50 +01:00
11827dcc29 New translations landing.json (Kannada) 2022-03-08 16:22:49 +01:00
1f6f052129 New translations landing.json (Tamil) 2022-03-08 16:22:48 +01:00
66b98a21e8 New translations dashboard.json (Kannada) 2022-03-08 16:22:47 +01:00
b017d7aa41 New translations dashboard.json (Tamil) 2022-03-08 16:22:47 +01:00
62398fd96f New translations common.json (Kannada) 2022-03-08 16:22:46 +01:00
8167f51ce1 New translations common.json (Tamil) 2022-03-08 16:22:45 +01:00
f0a381a37c New translations builder.json (Kannada) 2022-03-08 16:22:44 +01:00
d923dfe3c0 New translations builder.json (Tamil) 2022-03-08 16:22:43 +01:00
d3f1cc746a Update Crowdin configuration file 2022-03-08 16:22:32 +01:00
8ee4993321 Update README.md 2022-03-08 15:49:04 +01:00
917850157e Update issue templates 2022-03-08 15:12:24 +01:00
b4856be5ab refactor(.env.example): update example to match current configuration 2022-03-08 14:07:28 +01:00
fc29fb8eb4 docs(readme): update description, add sections to README.md 2022-03-08 14:03:09 +01:00
2e288a5407 ci(github): add github action to redeploy latest version after docker image ci 2022-03-08 11:50:59 +01:00
43ce43ab5b refactor(server): remove api prefix for all routes 2022-03-08 10:52:13 +01:00
5a2594eb88 refactor(server): use proxy mechanisms to remove server_url config 2022-03-08 10:36:04 +01:00
e52edaa552 chore(husky): implement husky commit hooks to install, lint and format before commit 2022-03-08 08:11:47 +01:00
54fd97b5ec fix(pnpm): install deps to update pnpm-lock.yaml 2022-03-08 07:56:25 +01:00
9df12194bf fix(mail.service): use sendgrid api instead of nodemailer for better deliverability 2022-03-08 07:46:06 +01:00
e96b090904 fix(printer.service): add --disable-dev-shm-usage flag to chromium headless playwright browser 2022-03-08 00:06:07 +01:00
d79997d380 ci(docker): add env port to dockerfile, use port env instead of server_port 2022-03-07 23:52:39 +01:00
2696a54d17 fix(playwright): use playwright docker image due to runtime error 2022-03-07 23:09:14 +01:00
28ba2b1b8f ci(docker): fix short sha generation, seperate jobs for parallel execution 2022-03-07 22:42:09 +01:00
deb51f0e29 ci(docker): publish multiple docker images, to multiple registries 2022-03-07 22:26:33 +01:00
aa5e748cca ci(docker): use docker hub instead of digitalocean container registry 2022-03-07 21:55:37 +01:00
b0a295d8bb build(docker): minimize production docker image size by using ubuntu:focal 2022-03-07 21:43:38 +01:00
c738f311da fix(databasemodule): make ssl optional, pass ca cert as base64 env 2022-03-07 15:06:16 +01:00
cff51a8be9 Update docker-build-push.yml 2022-03-07 14:05:27 +01:00
1a0ab6fb22 ci(docker): add github action to build docker images automatically 2022-03-07 14:02:40 +01:00
938e2e8e25 build(v3): use pnpm, docker, docker-compose to orchestrate two services (client, server) 2022-03-07 13:43:34 +01:00
9c1380f401 🚀 release v3.0.0 2022-03-06 22:48:29 +01:00
00505a9e5d ci(docker): changes to dockerfile to make builds faster 2022-03-05 23:18:47 +01:00
37f0ab3bca ci(docker): attempt to fix production deploy, with env management 2022-03-05 14:36:38 +01:00
a4983ac6bc fix(i18n): load locales from file system, instead of http-backend 2022-03-05 10:08:28 +01:00
7c73685759 1646397537 2022-03-04 13:38:58 +01:00
269d5206e6 1646393163 2022-03-04 12:26:03 +01:00
e1529e03f9 add option to pass CA certificate for database deploys 2022-03-04 11:50:10 +01:00
5104ea6438 perf(app): working docker build stage, with github actions ci to push image 2022-03-04 10:54:31 +01:00
36f41c2f9d add commit script in npm 2022-03-03 21:14:46 +01:00
7e50c8e85b ci(docker): build production Docker image, also push to Docker Hub 2022-03-03 21:14:07 +01:00
993fd82f4c testing github actions 2022-03-03 20:15:19 +01:00
ed6578b052 attempting to make docker package smaller, and take less memory 2022-03-03 20:05:22 +01:00
5fc7a32c67 attempt docker build with pnpm 2022-03-03 15:33:11 +01:00
58160b2b6e experiments with docker packaging, figuring out deploy plan 2022-03-03 12:24:32 +01:00
2aa3786f5f experiments with docker packaging, figuring out deploy plan 2022-03-03 09:35:13 +01:00
a30011e841 switch from pnpm to npm as package manager 2022-03-02 20:46:14 +01:00
295172687b 🚀 release: v3.0.0 2022-03-02 17:44:11 +01:00
2175256310 clear everything 2022-02-28 20:23:10 +01:00
ff892e3ea5 Merge pull request #624 from AmruthPillai/dependabot/npm_and_yarn/url-parse-1.5.10
Bump url-parse from 1.5.7 to 1.5.10
2022-02-28 06:53:30 +01:00
0e2e50d658 Bump url-parse from 1.5.7 to 1.5.10
Bumps [url-parse](https://github.com/unshiftio/url-parse) from 1.5.7 to 1.5.10.
- [Release notes](https://github.com/unshiftio/url-parse/releases)
- [Commits](https://github.com/unshiftio/url-parse/compare/1.5.7...1.5.10)

---
updated-dependencies:
- dependency-name: url-parse
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-28 04:36:42 +00:00
4657f1f5f5 Merge pull request #622 from AmruthPillai/dependabot/npm_and_yarn/follow-redirects-1.14.8
Bump follow-redirects from 1.14.1 to 1.14.8
2022-02-20 07:07:59 +01:00
81fc3b981c Merge pull request #618 from AmruthPillai/dependabot/npm_and_yarn/ws-5.2.3
Bump ws from 5.2.2 to 5.2.3
2022-02-20 07:07:53 +01:00
e961d043da Merge pull request #617 from AmruthPillai/dependabot/npm_and_yarn/simple-get-3.1.1
Bump simple-get from 3.1.0 to 3.1.1
2022-02-20 07:07:48 +01:00
4d4c24b79d Merge pull request #616 from AmruthPillai/dependabot/npm_and_yarn/functions/lodash-4.17.21
Bump lodash from 4.17.20 to 4.17.21 in /functions
2022-02-20 07:07:43 +01:00
d40539680a Merge pull request #623 from AmruthPillai/dependabot/npm_and_yarn/url-parse-1.5.7
Bump url-parse from 1.5.1 to 1.5.7
2022-02-20 07:07:29 +01:00
ea0a5ec989 Bump url-parse from 1.5.1 to 1.5.7
Bumps [url-parse](https://github.com/unshiftio/url-parse) from 1.5.1 to 1.5.7.
- [Release notes](https://github.com/unshiftio/url-parse/releases)
- [Commits](https://github.com/unshiftio/url-parse/compare/1.5.1...1.5.7)

---
updated-dependencies:
- dependency-name: url-parse
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-19 08:10:21 +00:00
9e855be82c Bump follow-redirects from 1.14.1 to 1.14.8
Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.14.1 to 1.14.8.
- [Release notes](https://github.com/follow-redirects/follow-redirects/releases)
- [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.14.1...v1.14.8)

---
updated-dependencies:
- dependency-name: follow-redirects
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-14 16:37:08 +00:00
a9be89a754 Bump ws from 5.2.2 to 5.2.3
Bumps [ws](https://github.com/websockets/ws) from 5.2.2 to 5.2.3.
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/compare/5.2.2...5.2.3)

---
updated-dependencies:
- dependency-name: ws
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-09 12:18:40 +00:00
789c49e47e Bump simple-get from 3.1.0 to 3.1.1
Bumps [simple-get](https://github.com/feross/simple-get) from 3.1.0 to 3.1.1.
- [Release notes](https://github.com/feross/simple-get/releases)
- [Commits](https://github.com/feross/simple-get/compare/v3.1.0...v3.1.1)

---
updated-dependencies:
- dependency-name: simple-get
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-09 12:18:30 +00:00
56f46a185c Bump lodash from 4.17.20 to 4.17.21 in /functions
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.20 to 4.17.21.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.20...4.17.21)

---
updated-dependencies:
- dependency-name: lodash
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-09 12:17:25 +00:00
3a8f4f00d0 Merge pull request #614 from martadinata666/gatsby-host
use -H 0.0.0.0 on Gatsby
2022-02-09 13:16:54 +01:00
e9c7f33d30 Merge pull request #609 from apat183/fix-image-stretching
add 'object cover' class to templates that have issues with profile image stretching.
2022-02-08 09:16:21 +01:00
7e1483b2a2 Merge pull request #613 from zzarc/fix-readme-translation
fix translation error for language Japanese
2022-02-05 19:50:47 +01:00
d3359cfa58 fix translation error 2022-02-05 01:20:09 -08:00
04afc009ef use -H 0.0.0.0 on Gatsby 2022-02-05 10:33:15 +07:00
46090b0793 fix translation error in readme 2022-02-04 01:49:01 -08:00
b617ec6bfa add 'object cover' class to templates that have issues with profile images streatching 2022-01-25 20:30:35 +13:00
fd15989346 Merge pull request #599 from adamantike/allow-links-for-awards-and-certs
Allow links for certifications
2022-01-10 08:42:35 +01:00
fd00a4b4e1 Merge pull request #601 from mupsys/remove_dup_address_onyx
Added new ContactE without the address block and added it to the Onyx…
2022-01-10 07:50:12 +01:00
30d567d853 Added new ContactE without the address block and added it to the Onyx template (removes the duplicate address in that template.)
Signed-off-by: mupsys <1337sword@protonmail.com>
2022-01-09 23:03:35 -07:00
a9d1f0fa7b Revert changes to awards 2022-01-09 17:15:24 -03:00
3be316e9dd Allow links for awards and certifications
Add option to set a URL for each award or certification. This is useful,
for example, when sharing verified certificates as proofs provided by
issuers.

Fixes #575
2022-01-09 14:31:58 -03:00
2426144d1b Merge pull request #580 from AmruthPillai/l10n_develop
New Crowdin updates
2021-11-01 10:25:36 +01:00
c04367b7b5 New translations en.json (Croatian) 2021-10-30 13:49:08 +02:00
59828140ee Merge pull request #579 from AmruthPillai/l10n_develop
New Crowdin updates
2021-10-26 16:58:35 +02:00
8b12d366f9 New translations en.json (Croatian) 2021-10-26 01:04:26 +02:00
0117e5735e bump version 2021-10-25 12:46:03 +02:00
7a3626df1c fixing unsplash cors issue 2021-10-25 12:45:13 +02:00
ba11af887c bump to v2.7.9 2021-10-24 13:36:40 +02:00
41a9ce2b06 Merge pull request #577 from AmruthPillai/l10n_develop
New Crowdin updates
2021-10-24 13:36:16 +02:00
becb4993b2 New translations en.json (Danish) 2021-10-24 13:35:37 +02:00
bcc3ab44eb New translations en.json (German) 2021-10-24 13:35:33 +02:00
5d2961945c Merge pull request #570 from HristovCodes/develop
Translated to Bulgarian
2021-10-24 13:08:57 +02:00
bb1e68fcc5 Translated to Bulgarian 2021-10-03 15:48:05 +03:00
4d9c41f52b Merge pull request #543 from kescherCode/develop
German locale corrections and improvements
2021-09-30 09:43:11 +02:00
13abbd21e2 Merge pull request #547 from preetamm/develop
1] sidebar toggle feature 2] ask for confirmation before delete operation
2021-09-30 09:42:39 +02:00
a9f4fb863f Merge pull request #551 from hpierre74/gfm
feat(markdown): add gfm support
2021-09-30 09:42:03 +02:00
97f2b0c6f8 Merge pull request #561 from AmruthPillai/l10n_develop
New Crowdin updates
2021-09-30 09:41:26 +02:00
7cf57a999d New translations en.json (Indonesian) 2021-09-02 23:55:53 +05:30
1e927838d0 Update src/pages/app/dashboard.js 2021-08-10 13:09:12 +02:00
cfad352903 feat(markdown): add gfm support
revert firebase changes
2021-08-10 12:50:04 +02:00
2cbdf77c51 added sidebar toggle feature and confirmation prompt before deleting any list-item 2021-08-08 18:36:07 +05:30
3b127a81fd German locale corrections and improvements 2021-07-28 15:10:20 +02:00
99d7d3aad2 v2.7.8: update dependencies 2021-07-13 10:57:20 +05:30
1640ffb177 Merge pull request #530 from AmruthPillai/l10n_develop
New Crowdin updates
2021-07-13 10:42:38 +05:30
9f31a890ef New translations en.json (Italian) 2021-07-13 10:42:09 +05:30
8b79a88809 New translations en.json (Portuguese, Brazilian) 2021-07-13 10:42:08 +05:30
3801b54ced Merge pull request #528 from lpmi-13/set_present_as_end_date
update Project data model to use "Present" if no end date selected
2021-07-13 10:40:26 +05:30
d6d8f240bd Merge branch 'develop' into set_present_as_end_date 2021-07-13 10:40:20 +05:30
ec7b33c008 Merge pull request #527 from lpmi-13/add_info_to_readme
add information on setting up firebase to the readme
2021-07-13 10:39:36 +05:30
d11784161a Merge pull request #526 from lpmi-13/fix_date_placholder
fix typo in placeholder dates
2021-07-13 10:39:26 +05:30
b869291589 set more recent date as placeholder 2021-07-12 23:20:28 +01:00
be4334f6a2 update Project data model to use "Present" if no end date selected
Sometimes, projects are ongoing, and it would be helpful to be able to show that, similar to how it's done in the Work section.

This is what's expected in the `formatDateRange` function, and it's more consistent with the way things are done in other parts of the application.
2021-07-06 13:36:47 +01:00
ed950ddcdc add information on setting up firebase to the readme
I had to think a bit about what values to put in the .env file, and once I figured it out, I thought it would be helpful to add that information explicitly in the readme so other developers could speed up local development.
2021-07-06 13:34:08 +01:00
5771f28018 fix typo in placeholder dates 2021-07-06 13:01:19 +01:00
5fbf48cc3b Merge pull request #523 from faturachmanyusup/develop
Change button text "Add New" in List.js from STATIC to DYNAMIC using …
2021-06-28 20:39:08 +05:30
36a9b1302b Change button text "Add New" in List.js from STATIC to DYNAMIC using translation shared.buttons.add and improve Indonesian translation 2021-06-28 15:22:43 +07:00
6754cb1e45 bump verison to v2.7.7, translations added 2021-06-26 21:21:28 +05:30
4f40e8421f Merge pull request #522 from AmruthPillai/l10n_develop
New Crowdin updates
2021-06-26 21:19:45 +05:30
d6470620eb Update run-tests.yml 2021-06-26 21:19:14 +05:30
795f14713d New translations en.json (Hebrew) 2021-06-26 21:17:54 +05:30
6b7b71dc7b New translations en.json (Romanian) 2021-06-26 21:17:53 +05:30
75f76b267f New translations en.json (French) 2021-06-26 21:17:52 +05:30
cdf8a133e3 New translations en.json (Spanish) 2021-06-26 21:17:51 +05:30
91ffcba7da New translations en.json (German) 2021-06-26 21:17:49 +05:30
04e3cd4b8d New translations en.json (Italian) 2021-06-26 21:17:48 +05:30
a256bb8ce7 New translations en.json (Norwegian) 2021-06-26 21:17:45 +05:30
d33dc23ad1 New translations en.json (Polish) 2021-06-26 21:17:45 +05:30
4dde9fbcc1 New translations en.json (Russian) 2021-06-26 21:17:44 +05:30
b9c5aac485 New translations en.json (Swedish) 2021-06-26 21:17:43 +05:30
19906ea18b New translations en.json (Turkish) 2021-06-26 21:17:42 +05:30
eebb6890ab New translations en.json (Ukrainian) 2021-06-26 21:17:41 +05:30
6ecf8dd404 New translations en.json (Portuguese, Brazilian) 2021-06-26 21:17:40 +05:30
affbc26e22 New translations en.json (Persian) 2021-06-26 21:17:39 +05:30
cfff2bf562 New translations en.json (Hindi) 2021-06-26 21:17:38 +05:30
9db04bfaba New translations en.json (Greek) 2021-06-26 21:17:37 +05:30
21b4e02dee New translations en.json (Kannada) 2021-06-26 21:10:05 +05:30
8804a3a18d New translations en.json (Arabic) 2021-06-26 21:10:03 +05:30
ff2131141c New translations en.json (Czech) 2021-06-26 21:10:02 +05:30
62b3144ef9 New translations en.json (Japanese) 2021-06-26 21:10:01 +05:30
75dd08188e New translations en.json (Chinese Simplified) 2021-06-26 21:09:59 +05:30
ef59464bcd New translations en.json (Japanese) 2021-06-26 16:23:39 +05:30
08325b3bdd - fix: Indonesian language display
- update dependencies
2021-06-24 12:52:19 +05:30
56e0852d23 Create SECURITY.md 2021-06-24 12:47:01 +05:30
c4ddba2933 Merge pull request #519 from mberlinger3/pikachu_address
Pikachu address
2021-06-24 12:44:45 +05:30
2eaeb11c93 Merge pull request #518 from mberlinger3/bugfix
Removed duplicate locale
2021-06-24 12:44:20 +05:30
60b84b8e14 Added address to pikachu template with icon 2021-06-23 22:31:13 -07:00
97d5bf73c4 Removed duplicate locale 2021-06-23 22:27:20 -07:00
db9dc36e6d Merge pull request #517 from faturachmanyusup/develop
Fix Error when select Bahasa Indonesia
2021-06-23 17:23:13 +05:30
9dab038a9a Update README.md
- change bahasa Indonesi to Bahasa Indonesia
2021-06-22 21:42:38 +07:00
08b5ac588c Merge branch 'develop' of https://github.com/faturachmanyusup/Reactive-Resume into develop 2021-06-22 21:41:26 +07:00
cddb238994 FIX error when select Indonesian Language
- import 'id.json' in src/i18n/locales/index.js
- import 'dayjs/locale/id' in src/utils/dayjs.js
2021-06-22 21:32:29 +07:00
b2583724fd fix lint 2021-06-22 16:56:53 +05:30
c908f450f9 update dependencies 2021-06-22 16:56:29 +05:30
c6986b5048 v2.7.5 - add Indonesian language 2021-06-22 16:53:37 +05:30
6f12251aef Merge pull request #516 from faturachmanyusup/develop
add new translation 'Indonesian (Bahasa Indonesia)' with code 'id'
2021-06-22 16:49:02 +05:30
6539430980 add new translation 'Indonesian (Bahasa Indonesia)' with code 'id' 2021-06-19 17:55:13 +07:00
a13842d014 Merge pull request #513 from AmruthPillai/l10n_develop
New Crowdin updates
2021-06-19 10:57:00 +05:30
8d72ec2460 New translations en.json (Dutch) 2021-06-18 13:23:03 +05:30
47f1beec48 Merge pull request #512 from AmruthPillai/l10n_develop
New Crowdin updates
2021-06-17 15:16:57 +05:30
b3ca6be1c4 New translations en.json (Dutch) 2021-06-17 14:36:14 +05:30
36c54a0af2 New translations en.json (Danish) 2021-06-17 12:59:37 +05:30
da4c74917d New translations en.json (Finnish) 2021-06-17 12:59:36 +05:30
c4495d2912 New translations en.json (Dutch) 2021-06-17 11:46:23 +05:30
f9183384e9 Merge pull request #503 from AmruthPillai/imgbot
[ImgBot] Optimize images
2021-06-17 09:24:15 +05:30
7a4f50cb92 Merge pull request #504 from m4rcs/translate-contact
Add translation for "Contact" in Gengar theme.
2021-06-17 09:23:46 +05:30
9084a2803e v2.7.4 - Added Hebrew (עִברִית) Language 2021-06-17 09:22:59 +05:30
45042050ee Merge pull request #510 from AmruthPillai/l10n_develop
New Crowdin updates
2021-06-17 09:20:16 +05:30
d4f9926e94 New translations en.json (Hebrew) 2021-06-13 17:31:53 +05:30
79c903f02d - v2.7.3: update dependencies 2021-06-09 11:30:59 +05:30
d23040a374 Add translation for "Contact" in Gengar theme.
Reworked german translation.
2021-06-03 11:50:23 +02:00
882fde899b [ImgBot] Optimize images
/static/images/picture.jpg -- 188.32kb -> 170.83kb (9.29%)

Signed-off-by: ImgBotApp <ImgBotHelp@gmail.com>
2021-06-03 03:33:42 +00:00
fc96a6fc92 - change demoState picture URL 2021-06-03 09:01:01 +05:30
847c2c0f9b - update to v2.7.2
- update dependencies
2021-06-03 08:52:19 +05:30
2a1a6498e2 - update to 2.7.1
- add webpack cache
2021-06-03 08:45:50 +05:30
7a721f40b6 - update to 2.7.1 2021-06-03 08:42:26 +05:30
23690d7bc1 Merge pull request #501 from m4rcs/patch-1
Improvement of German Translation
2021-06-03 08:41:15 +05:30
4fb6763328 Merge pull request #496 from NatProView/patch-2
Improvement of polish translations
2021-06-03 08:41:04 +05:30
85939e59c6 Merge pull request #495 from NatProView/patch-1
Correcting typos in pl.json
2021-06-03 08:40:45 +05:30
bb7a41cd62 Merge pull request #494 from theoctober19th/develop
Add appropriate icon for YouTube channel in profile information.
2021-06-03 08:39:55 +05:30
d0c18afed1 Merge branch 'develop' into develop 2021-06-03 08:39:45 +05:30
6bd545df55 Merge pull request #498 from gianantoniopini/develop
Addition of unit tests related to Delete Account
2021-06-03 08:37:25 +05:30
d71d378aa1 Fixed Jest warnings occurring after latest merge from upstream 2021-06-02 15:02:36 +02:00
99f87ebb3e Fixed Jest errors occurring after latest merge from upstream 2021-06-01 12:14:12 +02:00
fbe2c1f91c Merge remote-tracking branch 'upstream/develop' into develop 2021-06-01 09:28:35 +02:00
4af318dc61 - update to 2.7.0 2021-05-29 12:02:57 +05:30
2c22c13f3e - update dependencies
- upgrade gatsby v2 to v3
- update functions
2021-05-29 11:47:34 +05:30
6daf6e8b11 Update de.json
Changed translation of present to a more CV suitable
2021-05-28 10:43:29 +02:00
fb18b5c94c FirebaseStub: added more unit tests related to functions 2021-05-25 12:48:38 +02:00
a4d474b8ec FirebaseStub: added more unit tests related to auth 2021-05-25 12:16:49 +02:00
23ebb25a89 Improvement of polish translations 2021-05-21 14:56:47 +02:00
ab95160b04 Correcting typos in pl.json
Corrected a few minor mistakes such as too many whitespaces or typos, e.g.
**Projects** - Ptojekty (should be Projekty)
**Education** - Wyksztłacenie (should be Wykształcenie)
"CV" should be written in capital letters, it was inconsistent
2021-05-21 14:29:43 +02:00
9e63d0b2c7 Delete Account unit tests: added tests related to Google reauthentication 2021-05-20 15:57:01 +02:00
e1186591f9 Add appropriate icon for YouTube channel in profile information. 2021-05-19 17:53:09 +05:45
7cb469657d Firebase.auth Jest mock: minor fix in signOut() method 2021-05-18 13:57:34 +02:00
53d0e17865 Delete Account unit tests: fixed warnings, added test for error notifications 2021-05-18 13:41:38 +02:00
a8cf553217 Delete Account: added more unit tests 2021-05-14 18:21:47 +02:00
d11d414504 Jest mocks: added @reach/router and stub for Firebase auth signOut method 2021-05-13 16:53:04 +02:00
ffb8ae45e0 Delete Account unit tests: first attempt to spy on Firebase auth User delete 2021-05-11 17:25:30 +02:00
e794325787 FirebaseStub: added auth User class 2021-05-11 16:42:36 +02:00
eb54a7f69d Delete Account: started adding unit tests 2021-05-11 15:19:05 +02:00
b0bd8c94f3 Merge pull request #489 from gianantoniopini/develop
"Download PDF" action: basic retry mechanism - "Delete Account" action: deletion of uploaded photographs
2021-05-10 14:13:39 +05:30
9f38ebd044 "deleteUser" Firebase cloud function: added deletion of user folder from Storage, added extra checks on IDs not being empty string 2021-05-06 12:37:10 +02:00
14ea8de709 Modified 'printResume' Firebase cloud function: implemented basic retry mechanism with waitUntil 'networkidle0' and 'networkidle2', enhanced error handling to return more detailed information 2021-05-04 11:35:40 +02:00
1ac828b532 Update package-lock.json in functions 2021-05-03 11:11:53 +05:30
13508d3c16 Fix fontSize in initialState.json 2021-05-03 11:02:30 +05:30
8c849e4018 Update demoState.json to fix font size 2021-05-03 10:24:00 +05:30
4b007749cb Merge branch 'master' into develop 2021-05-03 10:01:42 +05:30
8aaee4cd9e Added .nvmrc with 14 2021-05-03 09:46:01 +05:30
aa8d9228b9 Merge pull request #485 from gianantoniopini/develop
Delete Account: fix for Firebase cloud function and error handling improvements
2021-05-01 21:44:29 +05:30
34627e2acb Settings, deleteAccount: prevent execution of deleteAccount if it is already in progress 2021-04-28 09:56:13 +02:00
b5d4d54ad3 UserContext, deleteAccount: if provider is google, use reauthenticateWithPopup to reauthenticate user 2021-04-26 15:26:02 +02:00
f53e34c37d UserContext, deleteAccount: if provider is google, always reauthenticate the user before performing any delete 2021-04-23 17:30:25 +02:00
54ddfe30d7 Updated "deleteUser" Firebase cloud function to perform updates in an atomic way, tweaked UI call and error handling 2021-04-23 15:16:37 +02:00
d4e7914a27 Updated "deleteUser" Firebase cloud function implementation, UI call and error handling 2021-04-22 18:38:02 +02:00
43c8729c5b bump version 2021-04-14 14:41:17 +05:30
8bfed6a342 update package-lock.json 2021-04-14 14:29:07 +05:30
71471020b6 Merge pull request #481 from ntotao/patch-1
Update it.json
2021-04-14 14:22:49 +05:30
1e02f5b27a Update it.json
Edited some showed-in-the-resume words, such as "present" which was translated to regalo (it's literally like a birthday present). "Attuale" is the right translation.
Also edited some wording around to enhance the experience in an Italian fluent translation.
2021-04-13 13:26:07 +02:00
abd18236ed Merge pull request #477 from ceoshikhar/develop
Fixed bug where multiple resumes are created if "Create Resume" button is spammed
2021-04-03 17:18:54 +05:30
6ffcf2a1c4 fix: multiple resumes are created if "Create Resume" button is spammed 2021-04-03 14:49:37 +05:30
8628ca5475 Merge pull request #474 from indranil32/bengali-locale
Adding Bengali translation for this amazing app
2021-03-31 12:50:28 +05:30
cf95dd6a28 Merge pull request #475 from p-8-z/local_sk
Added sk.json to i18n locales. Slovak translation
2021-03-31 12:35:02 +05:30
p8z
b392bada3b added sk.json to i18n locales 2021-03-30 20:52:00 +02:00
978207a700 Adding Bengali translation for this amazing app 2021-03-30 22:20:38 +05:30
a7fa5f5fe9 - npm audit fix 2021-03-20 12:15:01 +05:30
f73d9ad7d0 Fixed type in StorageContext.js
Thank you kind stranger.
2021-03-16 08:44:02 +05:30
ee93c47403 Create DEPLOYMENT.md 2021-03-13 11:37:17 +05:30
a0dd63edb2 Merge pull request #468 from AmruthPillai/l10n_develop
New Crowdin updates
2021-03-11 21:10:13 +05:30
0f1778a11c New translations en.json (Dutch) 2021-03-11 21:09:08 +05:30
bf03e40895 update dependencies for functions 2021-03-07 10:00:40 +05:30
9ed97c8b6c [2.6.6] Added Romanian Language 2021-03-07 09:41:39 +05:30
b06e9b3ef0 Merge branch 'develop' of github.com:AmruthPillai/Reactive-Resume into develop 2021-03-07 09:38:33 +05:30
b81c167a10 Merge pull request #464 from AmruthPillai/l10n_develop
New Crowdin updates
2021-03-07 09:38:16 +05:30
33ac260683 [2.6.5] Addition of Show/Hide Selectors for all blocks
- Updating dependencies
2021-03-07 09:38:02 +05:30
e28bd17d3b New translations en.json (Persian) 2021-03-07 09:37:03 +05:30
9134375ad8 New translations en.json (Italian) 2021-03-07 09:37:02 +05:30
e6c8a73e72 New translations en.json (Japanese) 2021-03-07 09:37:01 +05:30
1e87b1a7f4 New translations en.json (Norwegian) 2021-03-07 09:36:59 +05:30
70be890e37 New translations en.json (Polish) 2021-03-07 09:36:58 +05:30
d6db251a8f New translations en.json (Russian) 2021-03-07 09:36:57 +05:30
fa5fa3e891 New translations en.json (Ukrainian) 2021-03-07 09:36:56 +05:30
a92a56449c New translations en.json (Chinese Simplified) 2021-03-07 09:36:55 +05:30
7b422bfccd New translations en.json (Portuguese, Brazilian) 2021-03-07 09:36:54 +05:30
d1feab6701 New translations en.json (Hindi) 2021-03-07 09:36:53 +05:30
b2a511736e New translations en.json (Kannada) 2021-03-07 09:36:52 +05:30
e405b3b641 New translations en.json (French) 2021-03-07 09:36:51 +05:30
4609fb583e New translations en.json (German) 2021-03-07 09:36:46 +05:30
a12a8a2f83 New translations en.json (Finnish) 2021-03-07 09:36:45 +05:30
34d07bc863 New translations en.json (Dutch) 2021-03-07 09:36:43 +05:30
e4c9833c8d New translations en.json (Swedish) 2021-03-07 09:36:42 +05:30
5070a11854 New translations en.json (Romanian) 2021-03-07 09:36:41 +05:30
1365972676 Merge pull request #462 from anu1097/feature/toggle-switch-left-panel
feat: adding a toggle switch for left panel items
2021-03-07 08:51:16 +05:30
b0e0a53794 Merge pull request #460 from lordkyuusei/develop
Updating FR.json translations
2021-02-27 20:04:14 +05:30
cf47447102 feat: adding a toggle switch for left panel items 2021-02-26 02:14:40 +05:30
7af837165d Mise à jour de certaines erreurs de traduction 2021-02-22 17:47:37 +01:00
d98e591fee [2.6.3] update dockerfile to add other required packages 2021-02-16 09:59:34 +05:30
a219b1d979 [2.6.3] updating dependencies 2021-02-16 09:17:11 +05:30
797e30022e Merge pull request #459 from mlow/develop
Dockerfile improvements
2021-02-15 00:28:57 +05:30
d6ae8309b4 Dockerfile improvements
- Add missing build dependencies for `sharp` node module (dependency of
  `gatsby-plugin-sharp`).
- Add ARG instructions for firebase variables, allowing them to be set
  via --build-arg flags when building the image.
- Use `npm ci` instead of `npm install`, and execute it after copying
  only package*.json. This prevents having to fetch all dependencies if
  package*.json hasn't changed between builds.
- Use `node:alpine` instead of `node` - not an improvement per-se,
  but I happen to be more familiar with adding build dependecies in the
  alpine based node image.
2021-02-14 00:41:29 -07:00
f1a911560d [2.6.2] add eslint-webpack-plugin 2021-02-12 11:27:56 +05:30
5e5ee5fffa [2.6.2] update dependencies, bump up version 2021-02-12 11:23:28 +05:30
0639cef426 Merge pull request #448 from agirdzius/lithuanian-locale
Added Lithuanian translations.
2021-02-12 11:18:23 +05:30
d1a392c2f0 Merge pull request #449 from AmruthPillai/l10n_develop
New Crowdin updates
2021-02-12 11:18:15 +05:30
b781731e5c Merge pull request #453 from agirdzius/missing-dayjs-locales
Added missing Hindi, Swedish and Russian dayjs locales.
2021-02-12 11:18:04 +05:30
90b968f152 Merge pull request #456 from ConorSheehan1/develop
fix link to product hunt
2021-02-12 11:17:56 +05:30
b6d5f0ce12 Merge pull request #450 from gianantoniopini/develop
Add support for drag & drop to the List component
2021-02-12 11:17:43 +05:30
eb01954b9b fix link to product hunt 2021-02-10 22:34:55 +00:00
39278b7803 Added missing Hindi, Swedish and Russian dayjs locales. 2021-02-10 12:51:26 +00:00
bd1bd2fc97 List component, drag handler: added check for source and destination id being the same 2021-02-09 12:31:54 +01:00
8ce73a38ea Builder unit tests helper: comments correction 2021-02-09 11:52:48 +01:00
2fa4ff8d9d Builder page: added unit test for drag & drop of skill 2021-02-09 09:36:36 +01:00
db460c9b55 New translations en.json (Arabic) 2021-02-09 12:27:17 +05:30
23bf495a5a List component: added support for drag & drop 2021-02-09 05:59:32 +01:00
3ff4b5c90f Version bump to 2.6.1 2021-02-08 15:12:29 +00:00
341f36870b Added Lithuanian translations. 2021-02-08 11:41:47 +00:00
89936b651a [2.6.0] update dependencies + verify firebase engine 2021-02-07 12:34:15 +05:30
04f8fe2db7 [2.6.0] update dependencies 2021-02-07 12:21:21 +05:30
91329969be Merge pull request #437 from AmruthPillai/l10n_develop
New Crowdin updates
2021-02-06 09:50:28 +05:30
142f8e0b31 Merge pull request #443 from gianantoniopini/develop
Addition of some unit tests to the Dashboard page
2021-02-06 09:50:14 +05:30
811e158fbc Merge remote-tracking branch 'upstream/develop' into develop 2021-02-02 14:20:47 +01:00
f2bc5e36b3 Dashboard: removed unit tests related to rename resume 2021-02-02 14:03:35 +01:00
a2b637fa71 Dashboard: unit tests related to rename resume 2021-02-02 14:02:56 +01:00
fd79891a1a Dashboard: unit tests related to rename resume 2021-02-02 14:01:17 +01:00
23386839a6 Firebase Stub: unit tests separated in different files 2021-02-02 12:39:16 +01:00
a589b3530a Merge pull request #442 from AmruthPillai/issue-441
Fix #441: Make Skill Level Optional
2021-02-02 15:56:02 +05:30
26022ae73e Update SkillModal.js 2021-02-02 15:46:48 +05:30
4634b4f0a0 Castform: unit tests refactoring to reduce nesting 2021-02-02 10:40:26 +01:00
f72d2639e5 Builder page: unit tests separated in different files 2021-02-02 10:27:30 +01:00
e39026c8b4 Dashboard page: unit tests separated in different files 2021-02-01 18:00:52 +01:00
5ee077dac5 Dashboard page: added unit tests related to duplicate resume interaction 2021-02-01 12:10:15 +01:00
c748e6a0b4 Dashboard page: removed unit tests related to rename resume interaction (they are generating warnings) 2021-02-01 10:49:02 +01:00
97f065f51c Merge remote-tracking branch 'upstream/develop' into develop 2021-02-01 07:23:19 +01:00
5b0124bedc New translations en.json (Spanish) 2021-02-01 07:24:24 +05:30
51673a9e6d - bump up version to 2.5.5 2021-01-31 11:03:45 +05:30
9ddba69ff0 - Added Greek Language 2021-01-31 10:59:41 +05:30
2a2ceea448 Merge pull request #434 from AmruthPillai/l10n_develop
New Crowdin updates
2021-01-31 10:57:29 +05:30
bff0bec759 New translations en.json (German) 2021-01-31 00:31:13 +05:30
7bdddb8dc7 New translations en.json (Greek) 2021-01-30 15:40:51 +05:30
da8bf8bc36 Dashboard page: added more unit tests for rename resume interaction 2021-01-27 11:33:11 +01:00
5d9527e46e Dashboard page: unit tests refactoring 2021-01-27 10:35:58 +01:00
a20fe10c06 Dashboard page: added unit test for delete resume interaction 2021-01-26 17:38:05 +01:00
8018d7f527 Dashboard page: refactored setup of fetch mock, added more assertions to unit test 2021-01-26 14:22:27 +01:00
e27bedcf88 Dashboard page: unit tests refactoring 2021-01-26 13:19:49 +01:00
b196ca1bf5 Dashboard page: added unit test related to create resume interaction 2021-01-25 17:54:36 +01:00
87fee23480 Dashboard page: added unit test related to create resume interaction 2021-01-25 17:30:05 +01:00
9d486c11cc Dashboard page: added unit test related to create resume interaction 2021-01-25 16:44:08 +01:00
ef3f2a802f Dashboard page: added first unit test for create resume interaction 2021-01-25 15:15:02 +01:00
8b39dcc239 Merge pull request #431 from AmruthPillai/l10n_develop
New Crowdin updates
2021-01-25 12:35:26 +05:30
b73e3b7c4d New translations en.json (Turkish) 2021-01-24 23:14:18 +05:30
4820a8bea3 add deploy script to package.json 2021-01-23 20:07:14 +05:30
22a171c25c [2.5.4] Add Tests, Add GitHub Action, Update Dependencies 2021-01-23 19:44:20 +05:30
30109ecb1d set up for first use on IntelliJ WebStorm 2021-01-23 19:41:11 +05:30
b76fa1dcc5 add GitHub Action to run unit tests on every PR/push 2021-01-23 19:28:01 +05:30
6c31d3dff3 Merge pull request #429 from gianantoniopini/develop
Addition of some unit tests to Builder and Dashboard pages
2021-01-23 19:19:06 +05:30
c01be98cfc Builder: added unit test for resume in initial state 2021-01-23 14:05:37 +01:00
74335a1771 Builder and Dashboard unit tests: fine tuning of assertions related to toast/notification 2021-01-23 12:21:02 +01:00
5317f5e525 Builder and Dashboard unit tests refactoring/cleanup 2021-01-23 11:45:06 +01:00
9a7bdb188b Builder: updated unit test handling non-existent resume 2021-01-22 17:25:04 +01:00
dc18e84bc2 Dashboard: updated unit tests for Delete resume 2021-01-22 16:42:21 +01:00
cb2aeec70a Dashboard: added unit tests for Delete resume 2021-01-22 10:43:06 +01:00
16ed433705 Exported LoadingScreen testId and language Storage item key in order to be used in unit tests 2021-01-22 06:36:11 +01:00
0bab0d01d1 Removed testId from LoadingScreen 2021-01-22 06:05:00 +01:00
306db64ff1 Firebase Stub: minor tweak in reference .on function 2021-01-21 16:56:05 +01:00
af966bdf7b Firebase Stub: introduced a delay in all async functions to better mimic real Firebase 2021-01-21 16:45:33 +01:00
562a07619c Merge remote-tracking branch 'upstream/develop' into develop 2021-01-20 15:53:29 +01:00
4c63f68215 Builder tests: added test for loading screen 2021-01-20 15:52:35 +01:00
1215071ab9 Dashboard tests: added test for loading screen 2021-01-20 14:27:27 +01:00
3d39576a90 Builder test: changed some queries to use *ByRole 2021-01-20 13:40:58 +01:00
155cd499fb Builder test: added test for handling non-existent resume, added resetting of language Storage item 2021-01-20 12:57:31 +01:00
aca1d13116 Merge pull request #423 from gianantoniopini/develop
Unit testing environment set up and addition of some unit tests
2021-01-20 16:19:16 +05:30
fbc5f0de72 Merge pull request #426 from 4O4/i18n-pl-improvements
Improvement of polish translations
2021-01-20 16:19:03 +05:30
536bdb7bae Merge pull request #427 from 4O4/latin-ext-webfonts
Add latin-ext subset to fix special characters missing in webfonts
2021-01-20 16:18:49 +05:30
d507b9d54d Add latin-ext subset to fix special characters missing in webfonts 2021-01-19 15:12:38 +01:00
efe1762b33 Improvement of polish translations 2021-01-19 13:52:01 +01:00
5ba978dae5 Firebase Stub: refactoring 2021-01-15 10:25:44 +01:00
aac1e12cfc Firebase Stub: leading slash in reference path is ignored 2021-01-15 09:19:35 +01:00
978aafae75 Firebase Stub: added more unit tests 2021-01-15 08:31:35 +01:00
72176e2500 Firebase Stub: .off function implementation 2021-01-14 17:49:52 +01:00
6ac0f37ada Firebase Stub: added support for data remove 2021-01-14 17:16:01 +01:00
46781bba60 Firebase Stub: simple implementation of data changes listener 2021-01-14 14:48:07 +01:00
6d36c27889 Firebase Stub: simple implementation of data changes listener 2021-01-14 14:00:07 +01:00
36036cc411 Firebase Stub: query parameters not kept between ref calls 2021-01-14 09:38:46 +01:00
b6a0527fbe Firebase Stub refactoring: private class field naming convention 2021-01-11 17:18:37 +01:00
253f778a63 Dashboard test working 2021-01-11 16:58:24 +01:00
6c1fc543ad Firebase Stub: debounce callback called by "on" function 2021-01-11 16:18:38 +01:00
dce5d2c591 Firebase Stub: resolving ESLint errors 2021-01-08 14:15:46 +01:00
cb45629032 Firebase Stub: resolving ESLint errors 2021-01-08 13:29:21 +01:00
9c5b8398a3 Firebase Stub: resolving ESLint errors 2021-01-08 12:11:02 +01:00
e78d3dbaa4 Updates after latest merge from upstream branch 2021-01-08 10:15:38 +01:00
70cd92f29e Merge remote-tracking branch 'upstream/develop' into develop 2021-01-08 09:38:13 +01:00
4a0995eeb6 [2.5.3] Added "Czech" Language 2021-01-08 08:46:19 +05:30
ba31e18ffd Merge pull request #418 from AmruthPillai/l10n_develop
New Crowdin updates
2021-01-08 08:21:11 +05:30
3c6e45abf4 Firebase Stub refactoring 2021-01-07 18:04:59 +01:00
c2ac9594ef Firebase Stub refactoring 2021-01-07 17:28:43 +01:00
69f0338b19 Firebase Stub refactoring 2021-01-07 17:17:53 +01:00
da8849c854 Firebase Stub refactoring, added eslint-plugin-jest dev dependency 2021-01-07 16:43:24 +01:00
294dbf195f FirebaseStub refactoring 2021-01-07 13:23:22 +01:00
98aef7eb77 [2.5.2] Fix fontSize not reflecting in exported PDF 2021-01-07 09:35:31 +05:30
176ba0de7a Firebase stub: added support for filtering of resumes by user 2021-01-06 17:03:46 +01:00
c667c31737 Firebase stub: added additional resume and user to test data, added more tests 2021-01-06 16:00:23 +01:00
7733d827e2 New translations en.json (Czech) 2021-01-06 19:48:32 +05:30
35c663ebe8 Dashboard test: draft version 2021-01-06 14:42:50 +01:00
854020481c Builder: 'allow to change the language' test 2021-01-06 10:10:15 +01:00
e99c73a5b1 Builder test: draft version of test changing the language 2021-01-04 16:17:51 +01:00
5197878b79 Jest configuration: updated settings for code coverage 2021-01-04 12:35:02 +01:00
57d234ae02 Jest configuration: added settings for code coverage 2021-01-04 12:09:04 +01:00
8202ca5461 FirebaseStub refactoring 2021-01-04 10:42:41 +01:00
2e346c93eb Updates after latest merge from upstream branch 2021-01-04 10:22:09 +01:00
5470fb8d6f Merge remote-tracking branch 'upstream/develop' into develop 2021-01-04 09:46:35 +01:00
4cd4af6ee1 New translations en.json (French) 2021-01-03 18:46:23 +05:30
c065c844ee New translations en.json (Danish) 2021-01-03 17:46:00 +05:30
4768135963 New translations en.json (Finnish) 2021-01-03 16:26:08 +05:30
a63496ca86 New translations en.json (Dutch) 2021-01-03 15:25:29 +05:30
c40d89e98e [2.5.1] update dependencies 2021-01-03 11:58:17 +05:30
eb4023e3b2 Merge branch 'rpolley-add-font-size-setting' into develop 2021-01-03 11:45:00 +05:30
e2218030cf Merge pull request #413 from rpolley/add-font-size-setting
Add ability to customize font size
2021-01-03 11:44:43 +05:30
fdd35492a0 [2.5] Implement Font Size Adjustments 2021-01-03 11:44:14 +05:30
297a258e4a Merge branch 'add-font-size-setting' of https://github.com/rpolley/Reactive-Resume into rpolley-add-font-size-setting 2021-01-03 11:29:31 +05:30
c0808af7f4 Merge pull request #415 from StijnSimons/develop
Fixed Dutch translation
2021-01-03 11:23:40 +05:30
5887babd15 Fixed Dutch translation 2020-12-27 23:02:07 +01:00
abd24e7eb7 Add ability to customize font size
Added an ability to customize font sizes. This is set at a new section in the settings.
The controler for this sets a number of css variables which are used in css rules that
override tailwind's text-<size> to use the font size and line spacing contained in the
variable. The control itself is a simple logarithmic slider that controls a "scale
factor" by which all the text sizes in a resume are scaled by.
2020-12-26 13:24:29 -06:00
988a903acc Merge pull request #412 from AmruthPillai/dependabot/npm_and_yarn/functions/date-and-time-0.14.2
Bump date-and-time from 0.14.1 to 0.14.2 in /functions
2020-12-25 09:12:58 +05:30
f76609c2fc Bump date-and-time from 0.14.1 to 0.14.2 in /functions
Bumps [date-and-time](https://github.com/knowledgecode/date-and-time) from 0.14.1 to 0.14.2.
- [Release notes](https://github.com/knowledgecode/date-and-time/releases)
- [Commits](https://github.com/knowledgecode/date-and-time/compare/v0.14.1...v0.14.2)

Signed-off-by: dependabot[bot] <support@github.com>
2020-12-24 21:56:54 +00:00
53333bb6fb Merge remote-tracking branch 'upstream/develop' into develop 2020-12-24 10:18:29 +01:00
d951a3f52d Castform tests refactoring 2020-12-24 10:08:17 +01:00
458aab4e8d FirebaseStub: refactoring 2020-12-24 09:53:55 +01:00
445d1e37d9 FirebaseStub: refactoring 2020-12-24 09:24:46 +01:00
85a489cefa [2.4.3] Add Docker Support, Make Address Optional 2020-12-24 11:08:59 +05:30
53b36a1aad FirebaseStub: cleanup 2020-12-23 16:23:13 +01:00
25d3661599 Minor change in FirebaseStub test file 2020-12-23 16:01:13 +01:00
2158c8b245 builder.test: cleanup 2020-12-23 15:49:56 +01:00
18e3e47ee4 Updated builder.test 2020-12-23 15:48:06 +01:00
c6a400a2f1 Updated builder.test to use DebounceWaitTime 2020-12-23 15:46:48 +01:00
30d94fd2a8 Updated builder.test to use new FirebaseStub 2020-12-23 14:46:10 +01:00
fb8dd6d986 Firebase stub: new implementation in place 2020-12-23 14:25:38 +01:00
356ae08643 Firebase stub: refactoring 2020-12-23 14:15:57 +01:00
f73359f83a Firebase mock: added auth to new implementation 2020-12-23 13:56:34 +01:00
45bf7146e5 Firebase mock: updated new implementation 2020-12-23 13:07:15 +01:00
5bec64d723 Firebase mock: started new implementation 2020-12-23 09:12:46 +01:00
a9c6ed4cdb Firebase mock: fix for property ServerValue.TIMESTAMP 2020-12-22 17:08:37 +01:00
b9014eb6cb Firebase mock: fixed issue with database namespace 2020-12-22 15:40:36 +01:00
9dc1f1b89b Builder.test: modified draft version of test for data update 2020-12-21 15:16:35 +01:00
7450b1c683 Updates after latest merge from upstream branch 2020-12-21 11:53:24 +01:00
9d713d7449 Merge remote-tracking branch 'upstream/develop' into develop 2020-12-21 11:20:41 +01:00
c1cc9d0a69 rename workflow 2020-12-20 22:11:26 +05:30
45edbded87 Builder.test: modified draft version of test for data update 2020-12-20 17:36:24 +01:00
d6ca39817d fix build and deploy script 2020-12-20 21:51:25 +05:30
534736a3a4 fix build and deploy workflow script 2020-12-20 21:38:28 +05:30
8bac6c79a8 Merge branch 'develop' 2020-12-20 21:29:23 +05:30
7fb8d0d59d remove unnecessary alias 2020-12-20 21:28:46 +05:30
c9c62b1f3c Merge pull request #407 from AmruthPillai/develop
Adding GitHub Actions to make my life easier
2020-12-20 21:19:23 +05:30
53676ad997 version bump 2020-12-20 21:16:36 +05:30
fa1d8d50a0 Create build-and-deploy.yml 2020-12-20 21:14:23 +05:30
a13404aaf2 Merge pull request #406 from AmruthPillai/codeql-analysis
Create codeql-analysis.yml
2020-12-20 21:06:45 +05:30
a558a97cba Create codeql-analysis.yml 2020-12-20 21:02:56 +05:30
72b68e060c [2.4.1] Add Persian (Farsi) Language 2020-12-20 20:04:58 +05:30
7a0403f9d6 Merge pull request #403 from pmsoltani/pmsoltani-patch-1
Farsi (Persian) translation
2020-12-20 19:55:24 +05:30
916579c874 [v2.4] Fix JSON Resume Imports 2020-12-20 19:47:31 +05:30
b3be9e5f50 Builder.test: added draft version of test for data update 2020-12-17 17:40:54 +01:00
918100c949 Firebase mock: refactoring to mock functions with specific arguments 2020-12-17 12:32:42 +01:00
7c1076e08d Farsi (Persian) translation 2020-12-16 21:55:40 +03:30
a79de37ac9 Deleted obsolete Context mocks; added more Asserts to builder.test 2020-12-16 17:03:28 +01:00
a16f19a26f Gatsby mock: expanded useStaticQuery to support Templates, refactoring 2020-12-16 15:12:21 +01:00
0459a77e4d Firebase mock: set resume 'name' and 'user' properties 2020-12-16 11:13:49 +01:00
3a68c4b5af Firebase mock refactoring 2020-12-16 10:37:23 +01:00
d33f707cea Firebase mock: mock auth() signIn, in order to trigger onAuthStateChanged 2020-12-15 15:32:08 +01:00
942d8a0120 Updated Gatsby mock: fluid images returned by useStaticQuery 2020-12-14 15:05:03 +01:00
d51201d6f2 Firebase mock: added onAuthStateChanged observer 2020-12-14 13:26:11 +01:00
d3d51eabf5 Firebase mock: refactoring, fixed issue with call to __getResume 2020-12-14 12:03:36 +01:00
287336e166 Merge remote-tracking branch 'upstream/develop' into develop 2020-12-14 09:00:56 +01:00
96ab340b1c set min-height for pages when printing 2020-12-13 10:37:02 +05:30
b105b08c8f Updated Firebase mock 2020-12-12 16:42:34 +01:00
d7123e511e Updated mock DatabaseContext to allow setting of resumes array 2020-12-12 14:06:00 +01:00
6e666b1435 Updated Firebase mock to allow use of demo resume 2020-12-12 13:17:57 +01:00
8ffe61a94a Updated package-lock.json after latest merge from upstream branch 2020-12-12 11:54:39 +01:00
c9ce3f6716 Merge remote-tracking branch 'upstream/develop' into develop 2020-12-12 11:04:51 +01:00
a84cdf33cd added .env.example 2020-12-11 10:15:15 +05:30
d51363663b Stopped tracking .env files, but keep remote 2020-12-11 10:12:41 +05:30
b992bc4b73 Attempt to test Builder, using Firebase mock 2020-12-10 17:03:56 +01:00
e3d1f0305a Changes in DatabaseContext mock 2020-12-10 12:16:55 +01:00
9736b2c6d4 Attempt to test Builder, using DatabaseContext mock. 2020-12-10 11:13:03 +01:00
435400b1e3 Reinstated dependencies for Unit Testing, after latest merge from upstream branch 2020-12-09 11:05:34 +01:00
422066dd62 Merge remote-tracking branch 'upstream/develop' into develop 2020-12-09 10:35:39 +01:00
5cd95b54f5 Create .env 2020-12-09 10:42:01 +05:30
df71b86028 - bumped version to 2.3.3
- fixed text alignment issues
- updated dependencies
- added ukranian language
2020-12-09 10:40:27 +05:30
88a3fe5148 Merge pull request #389 from AmruthPillai/l10n_develop
New Crowdin updates
2020-12-09 10:37:03 +05:30
d56ce24064 New translations en.json (Italian) 2020-12-09 10:36:41 +05:30
5f0bab8dd0 New translations en.json (Polish) 2020-12-09 10:36:37 +05:30
4be55a4133 New translations en.json (Arabic) 2020-12-09 10:27:41 +05:30
5b4f495fc9 Reinstated dependencies for Unit Testing, after latest merge from upstream branch 2020-12-07 16:02:50 +01:00
7af9b1469d Merge remote-tracking branch 'upstream/develop' into develop 2020-12-07 15:06:43 +01:00
c1c0f5a43d New translations en.json (Ukrainian) 2020-12-06 18:02:28 +05:30
bce80a9101 bump up version to 2.3 2020-12-05 16:19:52 +05:30
cd0c847606 updates to dependencies, merging to production 2020-12-05 15:22:45 +05:30
cc8729e889 Merge pull request #386 from AmruthPillai/l10n_develop
New Crowdin updates
2020-12-05 15:21:58 +05:30
faf67dd7a8 New translations en.json (French) 2020-12-05 15:21:43 +05:30
990336017e Merge pull request #384 from HristovCodes/develop
Added address info to Gengar template.
2020-12-05 11:13:15 +05:30
fe2e56bda0 Added newline at end of package.json 2020-12-02 16:56:53 +01:00
fcf578a6d9 Defined the 'prebuild' script in package.json to run the unit tests 2020-12-02 16:50:29 +01:00
4198136ce4 Merge remote-tracking branch 'upstream/develop' into develop 2020-12-01 14:43:39 +01:00
354b517200 Set up Unit Testing environment with Gatsby, Jest and @testing-library/react; added some basic unit tests for Castform template 2020-12-01 14:40:53 +01:00
902a6eb0c5 Merge branch 'develop' of https://github.com/HristovCodes/Reactive-Resume into develop 2020-11-28 18:03:08 +02:00
285cc80592 Added adress info to Gengar template. 2020-11-28 18:00:20 +02:00
8b8541227d Merge pull request #382 from AmruthPillai/l10n_develop
New Crowdin updates
2020-11-27 01:34:11 +05:30
b8701f9fc6 New translations en.json (Danish) 2020-11-22 15:42:59 +05:30
a5550d5e64 New translations en.json (Finnish) 2020-11-22 14:02:37 +05:30
d9af8286b9 New translations en.json (Dutch) 2020-11-22 14:02:35 +05:30
71914d8edb New translations en.json (French) 2020-11-22 13:01:26 +05:30
ab1b52fb77 Merge pull request #375 from rpolley/add-end-date-field-to-projects
Add end date field to projects
2020-11-22 12:00:39 +05:30
97affd54fc Merge pull request #374 from gianantoniopini/develop
Add a Birthdate field to the profile information
2020-11-22 12:00:26 +05:30
aea3950d73 Merge pull request #380 from enzo-g/develop
Update fr.json
2020-11-22 11:59:49 +05:30
06f84cd9cf Merge branch 'develop' into develop 2020-11-22 11:59:38 +05:30
0f390ab493 Issue #314: Updated Celebi, Gengar, Glalie and Pikachu templates to include new birthDate field; deleted ContactE block as it is no longer used in the Celebi template. 2020-11-10 14:01:16 +01:00
e2b242d40d use date attribute for start date 2020-11-09 16:04:03 -06:00
81ad16ae8a update project to use date range 2020-11-09 15:59:24 -06:00
df4f4e2ccd Issue #314: Updated Onyx template to incorporate birthDate field through new component BirthDateB 2020-11-09 17:07:48 +01:00
21e499502f Issue #314: Created separate component BirthDateA, with language retrieved from data.metadata.language 2020-11-09 12:42:15 +01:00
b365826f0a Merge remote-tracking branch 'upstream/develop' into develop 2020-11-09 11:54:37 +01:00
d4816291b4 Update fr.json 2020-11-09 09:19:37 +05:30
b7c242a32f Merge pull request #373 from mrjelveh/develop
Adding stackoverflow & behance icon: Fixes #372
2020-11-09 09:05:58 +05:30
74b16824fa Merge branch 'develop' into develop 2020-11-09 09:05:17 +05:30
f779ca4cbf Issue #314: Modified Castform template to handle data profile having no birthDate field (backward compatibility) 2020-11-08 14:56:52 +01:00
f0660b4266 Adding stackoverflow & behance icon 2020-11-08 16:00:54 +03:30
2e6e4ad2c7 Update fr.json
"present": "cadeau" -> cadeau means 'gift' in French.
'Aujourd'hui' is more appropriate, it's the term use by LinkedIn in French.
French is my native language.
2020-11-07 19:27:27 +09:00
ea9931a147 Issue #314: Added new BirthDate field to the i18n language files 2020-11-04 14:56:28 +01:00
59f0ff9228 Issue #314: Added BirthDate field to Profile builder and Castform template 2020-11-04 13:38:43 +01:00
5bf9d5ae9e remove annoying confirmation dialog box 2020-10-10 12:59:55 +05:30
eed71286f2 bump up version to 2.2.1 2020-10-10 12:45:19 +05:30
36aad98485 bringing back the service worker 2020-10-10 12:45:04 +05:30
6bc0451ed9 MMerge branch 'develop' of github.com:AmruthPillai/Reactive-Resume into develop 2020-10-10 12:32:38 +05:30
52e43638e7 fix firebase deploy settings 2020-10-10 12:32:19 +05:30
8f17f18b2b Merge pull request #358 from AmruthPillai/l10n_develop
New Crowdin updates
2020-10-10 12:09:16 +05:30
c704f8029b [ADD] new languages [FIX] PDF export 2020-10-10 12:07:29 +05:30
32a6cb5d30 New translations en.json (Norwegian) 2020-10-10 12:01:40 +05:30
54b3b649b8 Merge pull request #357 from AmruthPillai/l10n_develop
New Crowdin updates
2020-10-10 11:53:50 +05:30
3a48d6a7c2 New translations en.json (Norwegian) 2020-10-10 11:53:41 +05:30
1ab07a2f4b New translations en.json (Russian) 2020-10-10 11:53:40 +05:30
1a275d4585 New translations en.json (Swedish) 2020-10-10 11:53:38 +05:30
8297551e7c New translations en.json (Chinese Simplified) 2020-10-10 11:53:37 +05:30
93d04f3300 New translations en.json (Hindi) 2020-10-10 11:53:29 +05:30
f2b74caa7c Merge pull request #356 from AmruthPillai/l10n_develop
New Crowdin updates
2020-10-10 11:36:42 +05:30
b451276d68 New translations en.json (Kannada) 2020-10-10 11:36:21 +05:30
aec5238456 New translations en.json (French) 2020-10-10 11:36:19 +05:30
5de45ff155 New translations en.json (Spanish) 2020-10-10 11:36:17 +05:30
4ba401cd31 New translations en.json (Arabic) 2020-10-10 11:36:16 +05:30
2c452ebd6a New translations en.json (German) 2020-10-10 11:36:13 +05:30
b43733c811 New translations en.json (Italian) 2020-10-10 11:36:11 +05:30
7118de4198 New translations en.json (Japanese) 2020-10-10 11:36:09 +05:30
7e0222402d New translations en.json (Polish) 2020-10-10 11:36:07 +05:30
1071caa062 New translations en.json (Turkish) 2020-10-10 11:36:05 +05:30
fa82978ead New translations en.json (Portuguese, Brazilian) 2020-10-10 11:36:04 +05:30
aa5be1e0a0 [FIX] exporting resume 2020-10-10 11:22:08 +05:30
2020ecfacb Merge pull request #344 from AmruthPillai/l10n_develop
New Crowdin updates
2020-10-09 08:24:36 +05:30
ab1e2a9678 Merge pull request #348 from PostIt59/develop
🐛 Fix translate mistake
2020-10-09 08:24:25 +05:30
6af4ec193e 🐛 Fix translate mistake 2020-10-05 22:23:15 +02:00
2630891cd1 New translations en.json (Finnish) 2020-10-04 20:01:35 +05:30
054a97055b New translations en.json (Danish) 2020-10-04 17:48:44 +05:30
ac7f16f829 New translations en.json (French) 2020-10-04 13:48:18 +05:30
f7a2bb5af8 New translations en.json (Dutch) 2020-10-04 12:28:34 +05:30
49d0a5607e add back purge paths 2020-10-04 09:05:55 +05:30
a11db1db10 adding stylelint to repo 2020-10-04 08:58:01 +05:30
469f53bf6e fix with firebase deploy 2020-10-03 09:10:19 +05:30
2aaed1a575 fixing crashes, upgrading dependencies, patching security vulnerabilities 2020-10-03 08:57:37 +05:30
2410ce024a Merge pull request #341 from robert-w-gries/utils_hook_fix
Fix app crashes after setting date range
2020-10-03 08:14:05 +05:30
77f3837fc8 Merge pull request #340 from thjiang/develop
- add translation for Simplified Chinese
2020-10-03 08:13:46 +05:30
c4d63da884 Merge pull request #339 from kbravh/develop
Set contact icons for phone, website, and email
2020-10-03 08:13:21 +05:30
c7b03bde79 Merge pull request #330 from AmruthPillai/dependabot/npm_and_yarn/functions/node-fetch-2.6.1
Bump node-fetch from 2.6.0 to 2.6.1 in /functions
2020-10-03 08:12:56 +05:30
0f6c4b3b45 Merge pull request #328 from AmruthPillai/l10n_develop
New Crowdin updates
2020-10-03 08:12:34 +05:30
52912aff0a Merge pull request #322 from AmruthPillai/dependabot/npm_and_yarn/functions/bl-4.0.3
Bump bl from 4.0.2 to 4.0.3 in /functions
2020-10-03 08:12:27 +05:30
0104e888e7 Merge pull request #318 from marciojpflorindo/develop
Translation to pt-PT
2020-10-03 08:12:04 +05:30
370de9ec47 Remove useTranslation hook from util functions 2020-10-02 18:17:48 +00:00
d712dbf5e2 - add translate for Simplified Chinese 2020-10-02 17:22:35 +08:00
054dec5b68 Set contact icons for phone, website, and email 2020-09-18 10:25:51 -05:00
838b63ca42 New translations en.json (Polish) 2020-09-17 01:28:43 +05:30
50da90af89 Bump node-fetch from 2.6.0 to 2.6.1 in /functions
Bumps [node-fetch](https://github.com/bitinn/node-fetch) from 2.6.0 to 2.6.1.
- [Release notes](https://github.com/bitinn/node-fetch/releases)
- [Changelog](https://github.com/node-fetch/node-fetch/blob/master/docs/CHANGELOG.md)
- [Commits](https://github.com/bitinn/node-fetch/compare/v2.6.0...v2.6.1)

Signed-off-by: dependabot[bot] <support@github.com>
2020-09-13 02:32:34 +00:00
656ff69af3 New translations en.json (Italian) 2020-09-09 18:01:42 +05:30
3d8b9f8ba3 Bump bl from 4.0.2 to 4.0.3 in /functions
Bumps [bl](https://github.com/rvagg/bl) from 4.0.2 to 4.0.3.
- [Release notes](https://github.com/rvagg/bl/releases)
- [Commits](https://github.com/rvagg/bl/compare/v4.0.2...v4.0.3)

Signed-off-by: dependabot[bot] <support@github.com>
2020-09-02 18:50:19 +00:00
f622ccda1d translation to pt-PT 2020-08-31 12:31:22 +01:00
1c25ffe037 Merge pull request #308 from grijul/develop
Added GitLab icon
2020-08-22 21:27:36 +05:30
895f18181a Added GitLab icon 2020-08-19 18:40:16 +05:30
e2ef7874a6 Update README.md 2020-08-13 11:06:12 +05:30
4fecbaf8d8 Merge pull request #297 from AmruthPillai/l10n_develop
New Crowdin updates
2020-08-13 11:05:41 +05:30
0d65e9d0c0 New translations en.json (Kannada) 2020-08-13 11:03:26 +05:30
3695a25428 New translations en.json (Arabic) 2020-08-13 11:03:24 +05:30
9f30f0dafb New translations en.json (Danish) 2020-08-13 11:03:23 +05:30
1dce5f248a New translations en.json (German) 2020-08-13 11:03:22 +05:30
e0e08f7071 New translations en.json (Finnish) 2020-08-13 11:03:20 +05:30
73a6ab096f New translations en.json (Japanese) 2020-08-13 11:03:19 +05:30
64c1ec4cc2 New translations en.json (French) 2020-08-13 11:03:17 +05:30
5d1f378397 New translations en.json (Dutch) 2020-08-13 11:03:16 +05:30
d00cb00a7c New translations en.json (Turkish) 2020-08-13 11:03:14 +05:30
1c123e922d New translations en.json (Spanish) 2020-08-13 11:03:12 +05:30
9fcc3c1ae6 New translations en.json (Portuguese, Brazilian) 2020-08-13 11:03:11 +05:30
dc6c5b848b New translations en.json (Finnish) 2020-08-09 12:50:19 +05:30
929f7c7147 Merge pull request #296 from AmruthPillai/l10n_develop
New Crowdin updates
2020-08-08 09:04:23 +05:30
33ce66eab1 New translations en.json (Kannada) 2020-08-08 09:04:13 +05:30
3aa968248d New translations en.json (Arabic) 2020-08-08 09:04:12 +05:30
2d0a524f86 New translations en.json (Danish) 2020-08-08 09:04:10 +05:30
6d4bfc196b New translations en.json (German) 2020-08-08 09:04:09 +05:30
906f9434f4 New translations en.json (Finnish) 2020-08-08 09:04:07 +05:30
033b6df89b New translations en.json (Japanese) 2020-08-08 09:04:05 +05:30
5c8530f53e New translations en.json (French) 2020-08-08 09:04:04 +05:30
74c6fd7b4e New translations en.json (Dutch) 2020-08-08 09:04:02 +05:30
f45c9d3ef8 New translations en.json (Turkish) 2020-08-08 09:04:01 +05:30
f7245936c7 New translations en.json (Spanish) 2020-08-08 09:03:59 +05:30
91dc642dbd New translations en.json (Portuguese, Brazilian) 2020-08-08 09:03:57 +05:30
5955567b5e - add "Present" key string in i18n 2020-08-08 08:52:30 +05:30
1e5dc00da8 fix list style indent 2020-08-08 08:47:09 +05:30
0374f572e6 Merge pull request #295 from AmruthPillai/l10n_develop
New Crowdin updates
2020-08-08 08:39:39 +05:30
28855bcc48 New translations en.json (Portuguese, Brazilian) 2020-08-07 23:22:55 +05:30
2b0a127904 Merge pull request #292 from crazyuploader/patch-1
Update README.md
2020-08-06 19:46:05 +05:30
c148a677e9 Update README.md 2020-08-06 18:34:32 +05:30
94abd5ce4f Merge pull request #285 from AmruthPillai/l10n_develop
New Crowdin updates
2020-08-03 22:24:47 +05:30
c77448a932 Merge pull request #284 from a-thug/develop
Fix scaling for large monitor
2020-08-03 22:24:23 +05:30
dc95fb4f60 Merge pull request #283 from MeisterLLD/develop
Update fr.json
2020-08-03 22:23:55 +05:30
b52118d1b2 New translations en.json (Japanese) 2020-08-03 20:17:11 +05:30
2107a1af45 Fix scaling for large monitor 2020-08-03 23:25:33 +09:00
465ee689d3 Update fr.json 2020-08-03 12:21:51 +02:00
87e3ebfaa8 - update dependencies 2020-08-01 10:31:04 +05:30
dc6f825f2e Merge pull request #276 from AmruthPillai/l10n_develop
New Crowdin updates
2020-08-01 10:09:11 +05:30
bc622083c7 - fix black screen issue when in certain templates 2020-08-01 10:08:25 +05:30
7db22e3b42 New translations en.json (Danish) 2020-07-31 20:19:21 +05:30
ac9650e397 New translations en.json (Dutch) 2020-07-31 20:19:19 +05:30
1f80fc481d - add norwegian language 2020-07-31 19:15:20 +05:30
9f81101084 - fix typo in import text 2020-07-31 19:11:10 +05:30
3634e3cf35 Merge pull request #275 from rubjo/develop
Add Norwegian translation
2020-07-31 19:06:37 +05:30
a991546e79 - fix photo not being uploaded 2020-07-31 19:01:16 +05:30
7a2f86a5c3 Fix English typo 2020-07-31 14:19:53 +02:00
48e7149540 Add Norwegian translation 2020-07-31 14:19:39 +02:00
09ea3b95ab - fix label in contact
- fix importing from json
- fix reset everything
- update dependencies
2020-07-31 13:33:11 +05:30
714d37deca - add arabic language 2020-07-31 12:36:43 +05:30
0b6345ff16 Merge pull request #274 from AmruthPillai/l10n_develop
New Crowdin updates
2020-07-31 12:31:55 +05:30
4fbe758165 Merge branch 'develop' into l10n_develop 2020-07-31 12:31:08 +05:30
729570c8b7 New translations en.json (Arabic) 2020-07-31 12:27:06 +05:30
b8215a9081 Merge pull request #271 from A7madXatab/develop
adding support for arabic language
2020-07-31 12:14:52 +05:30
63b3c4d1dd adding support for arabic language 2020-07-30 04:28:32 -07:00
509a59b943 Merge pull request #270 from RiderExMachina/patch-1
Fix typo on the index page
2020-07-30 09:37:50 +05:30
56616183f1 Fix typo on the index page
Change "convinient" => "convenient"
2020-07-29 17:37:50 -07:00
3eb69151a6 - fix language issue when printing 2020-07-28 10:09:05 +05:30
a1d345dfb2 fix website link 2020-07-28 09:24:44 +05:30
ba0ee5fdf9 upddate dependencies, cache buster 2020-07-28 09:18:41 +05:30
e8b735e1cb - adding Japanese language 2020-07-25 20:23:10 +05:30
e4f0373661 Merge pull request #260 from AmruthPillai/l10n_develop
New Crowdin updates
2020-07-25 20:16:59 +05:30
78753dff08 New translations en.json (Kannada) 2020-07-25 20:16:43 +05:30
be8e506747 New translations en.json (Portuguese, Brazilian) 2020-07-25 20:16:36 +05:30
9d65b02554 New translations en.json (Japanese) 2020-07-25 15:47:42 +05:30
79f4d68383 Merge pull request #258 from AmruthPillai/l10n_develop
New Crowdin updates
2020-07-25 07:39:41 +05:30
0b71193526 New translations en.json (Spanish) 2020-07-25 01:38:43 +05:30
4c39d7fd74 New translations en.json (Dutch) 2020-07-24 23:33:43 +05:30
f1fe45e9c9 removed experimental code 2020-07-24 21:56:02 +05:30
f2a0b612d0 solving bugs reported in GH issues 2020-07-24 21:54:48 +05:30
586f2b1eca Merge pull request #251 from SophieMdl/customize-skills-level-input
Customize skills level input
2020-07-24 10:37:15 +05:30
59fcfbf78d replace select by single input 2020-07-22 09:53:53 +02:00
7aab7c74f6 - add multiple languages
- switch from moment to dayjs
2020-07-21 11:07:19 +05:30
e4f40f04ff Merge pull request #247 from AmruthPillai/l10n_develop
New Crowdin updates
2020-07-21 09:24:16 +05:30
068b955f6e Merge pull request #246 from 2imad/dutch-translation
add dutch translation
2020-07-21 09:17:27 +05:30
cad10b73de New translations en.json (Danish) 2020-07-21 04:26:39 +05:30
316d4c8a2a New translations en.json (German) 2020-07-21 00:26:58 +05:30
8f3ccdeabc New translations en.json (Dutch) 2020-07-21 00:26:56 +05:30
4071d7e0a3 add dutch translation 2020-07-20 20:06:26 +02:00
f13984cbf3 Update README.md 2020-07-20 18:03:49 +05:30
b696c71152 - add Turkish language
- update dependencies
- increment version
2020-07-20 07:57:40 +05:30
cee9c7f35b Merge pull request #236 from AmruthPillai/l10n_develop
New Crowdin updates
2020-07-20 07:53:05 +05:30
f54c7ec51f Merge branch 'develop' into l10n_develop 2020-07-20 07:52:26 +05:30
5aecfb47bd New translations en.json (Turkish) 2020-07-20 07:52:00 +05:30
0068b2f085 Merge pull request #234 from AtlasFontaine/develop
Added Turkish language support
2020-07-20 07:48:22 +05:30
fe645e7d4c - make dates follow internationalization standard 2020-07-20 07:43:56 +05:30
5e4dc8c4bd Added Turkish language support 2020-07-19 19:04:50 +03:00
9930cee309 - update layout to work for responsive screen sizes 2020-07-19 20:33:11 +05:30
6a8775e31b update dependencies 2020-07-19 19:02:53 +05:30
0265eea7bf - added French translations 2020-07-19 18:58:05 +05:30
84dfdbca8a Merge pull request #231 from AmruthPillai/l10n_develop
New Crowdin updates
2020-07-19 18:55:31 +05:30
d7fbbc3217 Merge branch 'develop' into l10n_develop 2020-07-19 18:55:18 +05:30
1d51353849 New translations en.json (French) 2020-07-19 18:51:59 +05:30
6d4f5b2e3f Merge pull request #230 from MeisterLLD/develop
fr translation
2020-07-19 18:41:58 +05:30
aa1ac369cc Merge pull request #229 from prateek-parashar/develop
Fixed a typo
2020-07-19 18:40:23 +05:30
68bd420211 some more things translated (donations, github link) 2020-07-19 14:14:37 +02:00
8137ac1c9b some missing ones 2020-07-19 13:59:40 +02:00
c20787f93e awarder-> décerné 2020-07-19 13:45:54 +02:00
cc730cf82a a few changes in fr translations 2020-07-19 13:44:57 +02:00
0a46c1ed52 Merge pull request #1 from prateek-parashar/prateek-parashar-patch-1
Updated the readme : Fixed a typo
2020-07-19 17:10:55 +05:30
7b850027fc some more fr translations 2020-07-19 13:40:24 +02:00
6c87d3c1c6 Updated the readme : Fixed a typo
Hi!
I followed the project from the Internet and notices this quick fix!
2020-07-19 17:10:13 +05:30
1a81940085 first attempt at fr translation 2020-07-19 13:20:29 +02:00
44bf41e60a added Finnish language 2020-07-19 15:20:46 +05:30
c0ae8f3e4f Merge pull request #227 from AmruthPillai/l10n_develop
New Crowdin updates
2020-07-19 15:09:41 +05:30
1aab5f70a9 New translations en.json (Finnish) 2020-07-19 14:57:27 +05:30
84440f09ed Merge branch 'develop' of github.com:AmruthPillai/Reactive-Resume into develop 2020-07-19 09:12:59 +05:30
51b579ed3a - add Portuguese Brazillian language 2020-07-19 09:12:53 +05:30
50badbf7fe Update README.md 2020-07-19 09:10:08 +05:30
4c91d3f341 Merge pull request #226 from AmruthPillai/l10n_develop
New Crowdin updates
2020-07-19 09:03:41 +05:30
dce6e3aed2 New translations en.json (Portuguese, Brazilian) 2020-07-19 09:03:10 +05:30
7ec18693b4 Merge pull request #225 from AmruthPillai/l10n_develop
New Crowdin updates
2020-07-19 09:01:44 +05:30
4a53e4b1bb New translations en.json (Portuguese, Brazilian) 2020-07-19 09:00:39 +05:30
f9f84378d6 New translations en.json (Spanish) 2020-07-19 09:00:37 +05:30
e56876b56f New translations en.json (Kannada) 2020-07-19 09:00:34 +05:30
3fa849e3bc Merge pull request #224 from felcg/develop
add brazilian portuguese language
2020-07-19 08:57:06 +05:30
3c0251ca1f Create pt-br.json 2020-07-18 19:38:34 -03:00
13c5b92e53 - add spanish language 2020-07-18 23:05:25 +05:30
8e8c5f4e04 Merge branch 'develop' of github.com:AmruthPillai/Reactive-Resume into develop 2020-07-18 22:58:09 +05:30
d8f35f30df Merge branch 'l10n_develop' into develop 2020-07-18 22:57:53 +05:30
626009c2b8 Merge branch 'develop' into l10n_develop 2020-07-18 22:57:46 +05:30
d15b1b4067 New translations en.json (Spanish) 2020-07-18 22:27:04 +05:30
e26a0df1bd New translations en.json (Kannada) 2020-07-18 22:27:01 +05:30
dbe6469e9d Merge pull request #219 from AmruthPillai/imgbot
[ImgBot] Optimize images
2020-07-18 22:18:14 +05:30
a33437abea [ImgBot] Optimize images
*Total -- 6,147.74kb -> 4,536.52kb (26.21%)

/static/images/screenshots/screen-3.png -- 688.75kb -> 405.73kb (41.09%)
/static/images/screenshots/screen-1.png -- 1,060.97kb -> 756.51kb (28.7%)
/static/images/screenshots/screen-4.png -- 1,223.75kb -> 896.00kb (26.78%)
/static/images/screenshots/screen-2.png -- 1,533.91kb -> 1,168.82kb (23.8%)
/static/images/screenshots/screen-5.png -- 1,640.35kb -> 1,309.47kb (20.17%)

Signed-off-by: ImgBotApp <ImgBotHelp@gmail.com>
2020-07-18 16:45:08 +00:00
688a77ddb5 - update screenshots 2020-07-18 22:14:05 +05:30
b811d73f26 Update README.md 2020-07-18 21:55:08 +05:30
ec6ddd1fff fix issue with celebi printing 2020-07-18 21:51:01 +05:30
5bb4bc5941 Update README.md 2020-07-18 21:24:46 +05:30
f972d64eea fix markdown not displaying bullet lists 2020-07-18 19:30:59 +05:30
2f44f90364 update translations, fix form loading bug 2020-07-18 19:15:15 +05:30
89261f27d8 fix test being repeated in share your resume 2020-07-18 18:40:51 +05:30
eaf2f38940 Update README.md 2020-07-18 18:32:54 +05:30
ef9fc9c071 Merge pull request #214 from AmruthPillai/l10n_develop
New Crowdin updates
2020-07-17 11:17:10 +05:30
f051eb2286 New translations en.json (Kannada) 2020-07-17 11:07:09 +05:30
3a2f9c1542 - update version 2020-07-17 10:54:10 +05:30
d6ac14eb93 Merge branch 'master' of github.com:AmruthPillai/Reactive-Resume into develop 2020-07-17 10:53:58 +05:30
60acdce555 Create FUNDING.yml 2020-07-17 10:51:56 +05:30
0eab454d5d Merge pull request #213 from AmruthPillai/develop
Some more bugfixes, updates to artboard styles
2020-07-17 10:34:38 +05:30
b52f3dee07 - add app version
- fix bugs with artboard
2020-07-17 10:32:28 +05:30
da5158f757 Merge pull request #212 from AmruthPillai/l10n_develop
New Crowdin updates
2020-07-17 10:00:57 +05:30
9a9590299d New translations en.json (Hindi) 2020-07-17 10:00:37 +05:30
ab029a759f New translations en.json (French) 2020-07-17 10:00:35 +05:30
cc291b1fb5 New translations en.json (Spanish) 2020-07-17 10:00:33 +05:30
38ace117ea New translations en.json (Afrikaans) 2020-07-17 10:00:32 +05:30
aacd516cf3 New translations en.json (Arabic) 2020-07-17 10:00:30 +05:30
ceddfa6cdc New translations en.json (Bulgarian) 2020-07-17 10:00:28 +05:30
0dc6166b59 New translations en.json (Catalan) 2020-07-17 10:00:27 +05:30
568e4e72d8 New translations en.json (Czech) 2020-07-17 10:00:26 +05:30
a92941e568 New translations en.json (Danish) 2020-07-17 10:00:24 +05:30
78e97abb3b New translations en.json (German) 2020-07-17 10:00:23 +05:30
0b8145d5ff New translations en.json (Greek) 2020-07-17 10:00:21 +05:30
3eac9ef6ac New translations en.json (Finnish) 2020-07-17 10:00:20 +05:30
7bcac45214 New translations en.json (Hebrew) 2020-07-17 10:00:18 +05:30
a3d6a50489 New translations en.json (Hungarian) 2020-07-17 10:00:17 +05:30
3bab21d1e8 New translations en.json (Romanian) 2020-07-17 10:00:15 +05:30
5fc46bf634 New translations en.json (Italian) 2020-07-17 10:00:13 +05:30
4b2ce15fc9 New translations en.json (Korean) 2020-07-17 10:00:11 +05:30
bdc987e878 New translations en.json (Dutch) 2020-07-17 10:00:10 +05:30
2f9dd15c0d New translations en.json (Norwegian) 2020-07-17 10:00:09 +05:30
5becf826d2 New translations en.json (Polish) 2020-07-17 10:00:07 +05:30
33fef62417 New translations en.json (Portuguese) 2020-07-17 10:00:06 +05:30
c7aae10231 New translations en.json (Russian) 2020-07-17 10:00:05 +05:30
5dad0c7995 New translations en.json (Serbian (Cyrillic)) 2020-07-17 10:00:03 +05:30
a46550204b New translations en.json (Swedish) 2020-07-17 10:00:01 +05:30
de21432d07 New translations en.json (Turkish) 2020-07-17 10:00:00 +05:30
fc4cee3767 New translations en.json (Ukrainian) 2020-07-17 09:59:58 +05:30
6635e6556d New translations en.json (Chinese Simplified) 2020-07-17 09:59:57 +05:30
705fd4bbc6 New translations en.json (Vietnamese) 2020-07-17 09:59:56 +05:30
6f24317c94 New translations en.json (Tamil) 2020-07-17 09:59:54 +05:30
2e698a54e8 New translations en.json (Japanese) 2020-07-17 09:59:53 +05:30
2c0f58bb07 New translations en.json (Kannada) 2020-07-17 09:59:51 +05:30
6ba81683ff Merge branch 'develop' of github.com:AmruthPillai/Reactive-Resume into develop 2020-07-17 09:59:17 +05:30
31506af8fc - fix empty space at start of line 2020-07-17 09:59:13 +05:30
32dcc7ee84 New translations en.json (Hindi) 2020-07-17 09:48:31 +05:30
11e5e392c3 New translations en.json (French) 2020-07-17 09:48:30 +05:30
abee586e5a New translations en.json (Spanish) 2020-07-17 09:48:29 +05:30
0a50fc3488 New translations en.json (Afrikaans) 2020-07-17 09:48:28 +05:30
3413150177 New translations en.json (Arabic) 2020-07-17 09:48:27 +05:30
c06e3a9081 New translations en.json (Bulgarian) 2020-07-17 09:48:25 +05:30
9127bda6b3 New translations en.json (Catalan) 2020-07-17 09:48:24 +05:30
7aef4156c4 New translations en.json (Czech) 2020-07-17 09:48:23 +05:30
98501762a9 New translations en.json (Danish) 2020-07-17 09:48:21 +05:30
1e6471910b New translations en.json (German) 2020-07-17 09:48:20 +05:30
61d258d939 New translations en.json (Greek) 2020-07-17 09:48:19 +05:30
b85e5680cf New translations en.json (Finnish) 2020-07-17 09:48:18 +05:30
ef8ca86f30 New translations en.json (Hebrew) 2020-07-17 09:48:17 +05:30
a00297131b New translations en.json (Hungarian) 2020-07-17 09:48:15 +05:30
b6d853759c New translations en.json (Romanian) 2020-07-17 09:48:14 +05:30
100a7880d4 New translations en.json (Italian) 2020-07-17 09:48:13 +05:30
552287ddf8 New translations en.json (Korean) 2020-07-17 09:48:12 +05:30
b9fa284644 New translations en.json (Dutch) 2020-07-17 09:48:11 +05:30
82d512b602 New translations en.json (Norwegian) 2020-07-17 09:48:09 +05:30
9e6ff789a7 New translations en.json (Polish) 2020-07-17 09:48:08 +05:30
6a6e20ad57 New translations en.json (Portuguese) 2020-07-17 09:48:07 +05:30
d047e1e5ea New translations en.json (Russian) 2020-07-17 09:48:06 +05:30
7713d92610 New translations en.json (Serbian (Cyrillic)) 2020-07-17 09:48:05 +05:30
dfba7103ff New translations en.json (Swedish) 2020-07-17 09:48:04 +05:30
ce8f0dd497 New translations en.json (Turkish) 2020-07-17 09:48:02 +05:30
fa354bf041 New translations en.json (Ukrainian) 2020-07-17 09:48:01 +05:30
4a688a284d New translations en.json (Chinese Simplified) 2020-07-17 09:48:00 +05:30
6dda5fb226 New translations en.json (Vietnamese) 2020-07-17 09:47:59 +05:30
c5eaf43a3d New translations en.json (Tamil) 2020-07-17 09:47:58 +05:30
4a0241eded New translations en.json (Japanese) 2020-07-17 09:47:57 +05:30
678d022bb6 New translations en.json (Kannada) 2020-07-17 09:47:11 +05:30
42ee915aaf Update Crowdin configuration file 2020-07-17 09:46:24 +05:30
0a1ad4d091 Update Crowdin configuration file 2020-07-17 09:34:33 +05:30
2d76396040 Update Crowdin configuration file 2020-07-17 09:32:41 +05:30
9d0d7bd96e Merge pull request #210 from AmruthPillai/develop
Production Release of Reactive Resume v2
2020-07-17 09:26:43 +05:30
689d35a4af - add LICENSE
- update README.md
2020-07-17 09:22:10 +05:30
210d5c7f4d Merge pull request #209 from AmruthPillai/imgbot
[ImgBot] Optimize images
2020-07-17 09:12:47 +05:30
ea26241a15 [ImgBot] Optimize images
*Total -- 281.74kb -> 204.39kb (27.45%)

/static/icons/maskable.png -- 29.65kb -> 7.40kb (75.06%)
/static/images/screenshots/screen-5.png -- 34.09kb -> 16.76kb (50.84%)
/static/icons/icon-384x384.png -- 11.94kb -> 6.83kb (42.81%)
/static/icons/icon-512x512.png -- 8.42kb -> 4.83kb (42.69%)
/static/images/logo.png -- 8.30kb -> 4.85kb (41.63%)
/static/icons/icon-192x192.png -- 5.65kb -> 3.38kb (40.2%)
/static/icons/icon-96x96.png -- 2.78kb -> 1.70kb (38.67%)
/static/icons/icon-128x128.png -- 3.79kb -> 2.33kb (38.51%)
/static/icons/icon-152x152.png -- 4.44kb -> 2.73kb (38.49%)
/static/icons/icon-144x144.png -- 4.27kb -> 2.63kb (38.45%)
/static/icons/icon-72x72.png -- 1.98kb -> 1.24kb (37.53%)
/static/images/screenshots/screen-4.png -- 93.94kb -> 83.78kb (10.81%)
/static/images/screenshots/screen-2.png -- 72.49kb -> 65.94kb (9.03%)

Signed-off-by: ImgBotApp <ImgBotHelp@gmail.com>
2020-07-17 03:40:36 +00:00
5627a2e941 Merge branch 'v2' into develop 2020-07-17 09:10:04 +05:30
96259c6c5d - final sanity checks before release 2020-07-17 09:06:47 +05:30
816e400b31 - implement ability to rename sections
- clean up kannada translations
2020-07-17 08:36:46 +05:30
c57eb2e9aa Update README.md 2020-07-16 21:33:14 +05:30
f8d679993a - make the app faster, better accesibility 2020-07-16 20:30:53 +05:30
0b70d7ebec - attempt at responsiveness fix
- bring back scrollbars
- update dependencies
2020-07-16 19:53:14 +05:30
0019fee34e - switch to using downloadjs for downloading files
- increase timeout for cloud function
2020-07-16 17:34:21 +05:30
406a3dba56 - gear up for staging release 2020-07-16 15:59:35 +05:30
f41018c60b - implement "Import from JSON Resume" feature 2020-07-16 11:58:31 +05:30
8e9bd99e91 - add sitemap.xml
- reduce screenshot sizes
2020-07-16 10:31:56 +05:30
be40644497 - implement screenshots
- implement OG tags
2020-07-16 10:04:49 +05:30
a7657b4a5c - implement i18n
- translation dynamic for sections
- added articles for SEO
2020-07-16 08:42:19 +05:30
b7c565de79 - implement about section 2020-07-14 22:59:59 +05:30
af955bbf55 - implement donation link, in about section 2020-07-14 17:24:59 +05:30
851d6ef020 - fix firebase functions execution 2020-07-13 23:23:21 +05:30
e9bc40afb5 - update to use onCall from firebase functions 2020-07-13 22:13:00 +05:30
f17471b94d - fix issues with function calls 2020-07-13 17:01:56 +05:30
48b11de774 update firebase hosting link to functions 2020-07-13 16:52:26 +05:30
cf5d0b9571 - update for statging release, pre-checks 2020-07-13 16:38:08 +05:30
591c9a6ccf - remove eslint from functions project 2020-07-13 16:03:15 +05:30
c7b39c9ed3 - updated packages across projects, deployed to staging 2020-07-13 15:58:59 +05:30
55fd1d4bdc - implement celebi template 2020-07-13 09:46:55 +05:30
7b2094a543 - implement glalie template 2020-07-12 21:51:38 +05:30
41e708e302 - implement gengar template 2020-07-12 19:31:22 +05:30
5ccc360345 - implement cloud functions for printing
- implement AMOLED mode
- implement reset layout
2020-07-12 15:04:07 +05:30
f468ca73c3 - implement actions section
- implement settings section
2020-07-12 12:55:08 +05:30
8972a96afd - implement duplicate resume functionality 2020-07-11 21:45:34 +05:30
5ec1f21bd3 - complete onyx design template
- implement public sharable urls
- implement more actions
2020-07-11 20:42:16 +05:30
0b5653fab5 - completed design of Onyx template 2020-07-11 10:49:55 +05:30
a8c5d29858 - implement actions section 2020-07-10 13:40:48 +05:30
89fa8236e8 - creating a dynamic color palette
- implementing actions section
2020-07-10 01:09:33 +05:30
da197be2f5 - implement fonts section 2020-07-09 20:43:38 +05:30
3eaab3b427 - implement colors section 2020-07-09 20:06:49 +05:30
3b252476c4 - refactor sections
- combine resume and metadata contexts
2020-07-09 19:18:04 +05:30
c00d7a9eef - fixing conflicting order warning and firebase warning
- added more web manifest rules
2020-07-09 15:45:20 +05:30
370b0c4020 - implementing react-scroll 2020-07-09 14:30:06 +05:30
3aaef5f730 - memoize all components
- implement metadata context
2020-07-09 14:00:18 +05:30
9e98da038c - implementing hobby, language and reference sections
- dynamic template selection
2020-07-09 10:41:16 +05:30
9045e2983d - run eslint --fix across project 2020-07-09 00:14:13 +05:30
a1931f5e36 - switched to useSelector
- implemented skills section
2020-07-08 22:26:27 +05:30
70866420e5 - implement certifications section 2020-07-08 20:20:44 +05:30
c38788aa3b - implement awards section 2020-07-08 20:07:28 +05:30
922db70107 - implement work experience
- implement education
- show dynamic names in layout
2020-07-08 16:49:26 +05:30
bee6a40e9f - implement lists
- implement generic sections
- implement list actions
- implement error handlers
2020-07-08 05:01:50 +05:30
d7e86ddf29 - fix conflicting order warning by mini-css-extract-plugin 2020-07-07 10:01:20 +05:30
4e064dba96 - fix issue with firebase-hooks
- implement custom useAuthState
2020-07-06 19:53:47 +05:30
862ff7cdc1 - fix eslint warning 2020-07-06 16:08:01 +05:30
d02fad1164 - fix bug with multiple modal appearances 2020-07-06 16:07:32 +05:30
dbb005d26c - using nanoevents as event emitter
- bug: createResumeModal opens twice
2020-07-06 14:47:05 +05:30
6d3e5823fc - implement tips on loading screen
- implement centralized sections
- removed react-spinner package
2020-07-06 10:02:17 +05:30
65fc779d58 - switching from firestore to realtime DB
- implement debouncing tactic to sync data
- display sync indicator
2020-07-06 00:25:31 +05:30
49a867dd37 - recreating onyx template
- profile section complete
2020-07-05 16:45:29 +05:30
03e1de1d14 implement reorder/moving of sections between blocks 2020-07-05 13:34:04 +05:30
202c7f5ad4 - creating the right sidebar
- designing the artboard
- optimizing dark mode performance
- optimizing input onChange handler
2020-07-05 11:34:32 +05:30
6f66181c17 - designing the builder
- designing the left navbar and sidebar
2020-07-04 22:41:28 +05:30
f806b3f96d Update README.md 2020-07-04 15:15:18 +05:30
b42deb737c - deleting a resume 2020-07-04 15:13:50 +05:30
e247cb102c - creating and updating resumes 2020-07-04 14:31:25 +05:30
e1f1d84201 - designing the dashboard
- resume preview
- create resume modal
2020-07-04 10:26:29 +05:30
dd5e594dc9 - code cleanup and security checks 2020-07-03 21:04:43 +05:30
c53cd84722 - add icons and favicon 2020-07-03 20:55:52 +05:30
84ceae05c3 Merge pull request #204 from AmruthPillai/l10n_develop
New Crowdin updates
2020-07-03 20:45:11 +05:30
6dc2747a9b - storing user information in firestore 2020-07-03 20:44:12 +05:30
24fed8ff3f - adding icons to buttons
- styling modals for dark mode
2020-07-03 19:37:23 +05:30
3a1d42025f - integrating sign in with google
- set up dark mode context and other services
2020-07-03 18:59:25 +05:30
5f01287685 New translations objective.json (Finnish) 2020-07-03 16:15:09 +05:30
954aeef366 New translations about.json (Finnish) 2020-07-03 15:58:25 +05:30
e379533e81 New translations work.json (Finnish) 2020-07-03 15:58:23 +05:30
4caab8f7ea New translations references.json (Finnish) 2020-07-03 15:58:22 +05:30
37a31f0ecb New translations profile.json (Finnish) 2020-07-03 15:58:20 +05:30
cd2c284ca7 New translations objective.json (Finnish) 2020-07-03 15:58:19 +05:30
205c365ee2 New translations languages.json (Finnish) 2020-07-03 15:58:18 +05:30
ec44bc93f2 New translations extras.json (Finnish) 2020-07-03 15:58:17 +05:30
f0aa9a3bc9 New translations education.json (Finnish) 2020-07-03 15:58:15 +05:30
c45886dc18 New translations certifications.json (Finnish) 2020-07-03 15:58:14 +05:30
336fd22150 - building the base modal trigger architecture 2020-07-03 15:48:55 +05:30
52d9f92b62 New translations actions.json (Finnish) 2020-07-03 15:44:24 +05:30
0fa9cb5d47 New translations about.json (Finnish) 2020-07-03 15:44:23 +05:30
f145064b14 New translations actions.json (Finnish) 2020-07-03 15:20:35 +05:30
cb06f2d731 New translations settings.json (Finnish) 2020-07-03 15:04:54 +05:30
cbdd332de0 New translations fonts.json (Finnish) 2020-07-03 15:04:53 +05:30
ffbc8e560d New translations colors.json (Finnish) 2020-07-03 15:04:51 +05:30
57cdfcf7bd New translations actions.json (Finnish) 2020-07-03 15:04:50 +05:30
7bcdcf5987 New translations templates.json (Finnish) 2020-07-03 14:50:31 +05:30
48729306f1 New translations app.json (Finnish) 2020-07-03 14:50:29 +05:30
48e324b768 New translations actions.json (Finnish) 2020-07-03 14:44:41 +05:30
7d6221327d New translations app.json (Finnish) 2020-07-03 14:44:40 +05:30
17fd577a22 New translations work.json (Finnish) 2020-07-03 14:31:38 +05:30
273c81242c New translations profile.json (Finnish) 2020-07-03 14:31:36 +05:30
97e05e01e4 New translations languages.json (Finnish) 2020-07-03 14:31:35 +05:30
908d933ab8 New translations awards.json (Finnish) 2020-07-03 14:31:33 +05:30
70ef926b70 - intial gatsbyJS setup
- setting up tailwindcss and other plugins
- designing the landing page
- creating a reusable button component
2020-07-03 13:00:46 +05:30
d2e3227d01 clearing the slate 2020-07-02 21:23:03 +05:30
1499 changed files with 141033 additions and 38877 deletions

View File

@ -1,8 +1,22 @@
node_modules
git
.gitignore
!README.md
.dockerignore
Dockerfile*
docker-compose*
README.md
LICENSE
.DS_Store
.editorconfig
.eslint*
.git
.github
.gitignore
.husky
.nx
.prettier*
.vscode
*.env*
*.md
compose*.yml
dist
Dockerfile
node_modules
Thumbs.db
tmp
tools/compose/*
tools/scripts/*

12
.editorconfig Normal file
View File

@ -0,0 +1,12 @@
root = true
[*]
charset = utf-8
indent_style = space
indent_size = 2
insert_final_newline = true
trim_trailing_whitespace = true
[*.md]
max_line_length = off
trim_trailing_whitespace = false

1
.env
View File

@ -1 +0,0 @@
SKIP_PREFLIGHT_CHECK=true

76
.env.example Normal file
View File

@ -0,0 +1,76 @@
# Environment
NODE_ENV=development
# Ports
PORT=3000
# Client Port & URL (for development)
__DEV__CLIENT_PORT=5173 # Only used in development
__DEV__CLIENT_URL=http://localhost:5173 # Only used in development
# Artboard Port & URL (for development)
__DEV__ARTBOARD_PORT=6173 # Only used in development
__DEV__ARTBOARD_URL=http://localhost:6173 # Only used in development
# URLs
# These URLs must reference a publicly accessible domain or IP address, not a docker container ID (depending on your compose setup)
PUBLIC_URL=http://localhost:3000
STORAGE_URL=http://localhost:9000
# Database (Prisma/PostgreSQL)
# This can be swapped out to use any other database, like MySQL
# Note: This is used only in the compose.yml file
POSTGRES_PORT=5432
POSTGRES_DB=postgres
POSTGRES_USER=postgres
POSTGRES_PASSWORD=postgres
# Database (Prisma/PostgreSQL)
DATABASE_URL=postgresql://postgres:postgres@localhost:5432/postgres?schema=public
# Authentication Secrets
# generated with `openssl rand -base64 64`
ACCESS_TOKEN_SECRET=access_token_secret
REFRESH_TOKEN_SECRET=refresh_token_secret
# Chrome Browser (for printing)
# generated with `openssl rand -hex 32`
CHROME_PORT=8080
CHROME_TOKEN=chrome_token
CHROME_URL=ws://localhost:8080
# Mail Server (for e-mails)
# For testing, you can use https://ethereal.email/create
MAIL_FROM=noreply@localhost
# SMTP_URL=smtp://username:password@smtp.ethereal.email:587
# Storage
STORAGE_ENDPOINT=localhost
STORAGE_PORT=9000
STORAGE_REGION=us-east-1
STORAGE_BUCKET=default
STORAGE_ACCESS_KEY=minioadmin
STORAGE_SECRET_KEY=minioadmin
# Redis (for cache & server session management)
REDIS_URL=redis://default:password@localhost:6379
# Sentry (for error reporting, Optional)
# VITE_SENTRY_DSN=
# Crowdin (Optional)
CROWDIN_PROJECT_ID=
CROWDIN_PERSONAL_TOKEN=
# Email (Optional)
# DISABLE_EMAIL_AUTH=false
# GitHub (OAuth, Optional)
# GITHUB_CLIENT_ID=
# GITHUB_CLIENT_SECRET=
# GITHUB_CALLBACK_URL=http://localhost:5173/api/auth/github/callback
# Google (OAuth, Optional)
# GOOGLE_CLIENT_ID=
# GOOGLE_CLIENT_SECRET=
# GOOGLE_CALLBACK_URL=http://localhost:5173/api/auth/google/callback

1
.eslintignore Normal file
View File

@ -0,0 +1 @@
node_modules

View File

@ -1,29 +0,0 @@
{
"parser": "babel-eslint",
"parserOptions": {
"sourceType": "module",
"allowImportExportEverywhere": false,
"codeFrame": false
},
"extends": [
"airbnb",
"plugin:react/recommended",
"prettier",
"prettier/react"
],
"env": {
"browser": true,
"jest": true
},
"rules": {
"jsx-a11y/no-static-element-interactions": 0,
"jsx-a11y/click-events-have-key-events": 0,
"jsx-a11y/label-has-associated-control": 0,
"react/jsx-filename-extension": 0,
"react/no-array-index-key": 0,
"no-restricted-syntax": 0,
"no-param-reassign": 0,
"react/prop-types": 0,
"no-plusplus": 0
}
}

62
.eslintrc.json Normal file
View File

@ -0,0 +1,62 @@
{
"root": true,
"ignorePatterns": ["**/*"],
"plugins": ["@nx"],
"overrides": [
{
"files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
"extends": ["plugin:prettier/recommended"],
"plugins": ["simple-import-sort", "unused-imports"],
"rules": {
// simple-import-sort
"simple-import-sort/imports": "error",
"simple-import-sort/exports": "error",
// unused-imports
"unused-imports/no-unused-imports": "error",
"unused-imports/no-unused-vars": [
"warn",
{
"vars": "all",
"varsIgnorePattern": "^_",
"args": "after-used",
"argsIgnorePattern": "^_"
}
],
// nx
"@nx/enforce-module-boundaries": [
"error",
{
"allowCircularSelfDependency": true,
"enforceBuildableLibDependency": true,
"allow": [],
"depConstraints": [
{
"sourceTag": "*",
"onlyDependOnLibsWithTags": ["*"]
}
]
}
]
}
},
{
"files": ["*.ts", "*.tsx"],
"extends": ["plugin:@nx/typescript"],
"rules": {
// typescript-eslint
"@typescript-eslint/no-unused-vars": "off"
}
},
{
"files": ["*.js", "*.jsx"],
"extends": ["plugin:@nx/javascript"],
"rules": {
// eslint
"no-console": "warn",
"no-unused-vars": "off"
}
}
]
}

View File

@ -1,17 +0,0 @@
{
"projects": {
"default": "rx-resume"
},
"targets": {
"rx-resume": {
"hosting": {
"app": [
"rx-resume"
],
"docs": [
"docs-rx-resume"
]
}
}
}
}

2
.github/FUNDING.yml vendored
View File

@ -1 +1,3 @@
github: AmruthPillai
open_collective: reactive-resume
custom: https://paypal.me/amruthde

View File

@ -1,31 +0,0 @@
---
name: Bug Report
about: Create a report to help us improve
title: "[Bug] "
labels: bug
assignees: ''
---
**Describe the Bug**
A clear and concise description of what the bug is.
**Reproduction**
Steps to reproduce the behaviour:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
**Expected Behaviour**
A clear and concise description of what you expected to happen.
**Screenshots**
If applicable, add screenshots to help explain your problem.
**Desktop (please complete the following information):**
- OS: [e.g. iOS/macOS/Windows 10]
- Browser [e.g. Chrome/Safari/Firefox]
**Additional Context**
Add any other context about the problem here.

95
.github/ISSUE_TEMPLATE/bug-report.yml vendored Normal file
View File

@ -0,0 +1,95 @@
name: 🐞 Bug Report
description: Create a bug report to help improve Reactive Resume
title: "[Bug] <title>"
labels: [Bug, Needs Triage]
assignees: "AmruthPillai"
body:
- type: checkboxes
attributes:
label: Is there an existing issue for this?
description: Please search to see if an issue already exists for the bug you encountered.
options:
- label: Yes, I have searched the existing issues and none of them match my problem.
required: true
- type: dropdown
id: variant
attributes:
label: Product Variant
description: What variant of Reactive Resume are you using?
options:
- Cloud (http://rxresu.me)
- Self-Hosted
validations:
required: true
- type: textarea
attributes:
label: Current Behavior
description: A concise description of what you're experiencing.
validations:
required: true
- type: textarea
attributes:
label: Expected Behavior
description: A concise description of what you expected to happen.
validations:
required: false
- type: textarea
attributes:
label: Steps To Reproduce
description: Detailed steps to reproduce the behavior, so that it can be easily diagnosed.
placeholder: |
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
validations:
required: false
- type: dropdown
id: browsers
attributes:
label: What browsers are you seeing the problem on?
multiple: true
options:
- Firefox
- Chrome
- Safari
- Microsoft Edge
validations:
required: false
- type: dropdown
id: template
attributes:
label: What template are you using?
description: Leave blank if the issue applies to all templates, or is not template-specific.
multiple: false
options:
- Azurill
- Bronzor
- Chikorita
- Ditto
- Kakuna
- Nosepass
- Onyx
- Pikachu
- Rhyhorn
validations:
required: false
- type: textarea
attributes:
label: Anything else?
description: |
Links? References? Anything that will give us more context about the issue you are encountering!
Tip: You can attach images or log files by clicking this area to highlight it and then dragging files in.
validations:
required: false

View File

@ -1,21 +0,0 @@
---
name: Feature Request
about: Suggest an idea for this project
title: "[Feature] "
labels: enhancement
assignees: ''
---
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is.
Ex. I'm always frustrated when [...]
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
Add any other context or screenshots about the feature request here.

View File

@ -0,0 +1,23 @@
name: ✨ Feature Request
description: Suggest an feature or idea that you would like to see in Reactive Resume
title: "[Feature] <title>"
labels: [Feature, Needs Triage]
assignees: "AmruthPillai"
body:
- type: checkboxes
attributes:
label: Is there an existing issue for this feature?
description: Please search to see if an issue already exists for the feature you requested.
options:
- label: Yes, I have searched the existing issues and it doesn't exist.
required: true
- type: textarea
attributes:
label: Feature Description
description: A concise description of what feature you would like to see in Reactive Resume.
validations:
required: true

39
.github/workflows/lint-test-build.yml vendored Normal file
View File

@ -0,0 +1,39 @@
name: Lint, Test and Build
on:
push:
pull_request:
permissions:
actions: read
contents: read
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
env:
NX_BRANCH: ${{ github.event.number || github.ref_name }}
NX_CLOUD_ACCESS_TOKEN: ${{ secrets.NX_CLOUD_ACCESS_TOKEN }}
jobs:
main:
name: Nx Cloud - Main Job
uses: nrwl/ci/.github/workflows/nx-cloud-main.yml@v0.14.0
with:
main-branch-name: main
number-of-agents: 3
init-commands: |
pnpm exec nx-cloud start-ci-run --stop-agents-after="build" --agent-count=3
parallel-commands: |
pnpm exec nx-cloud record -- pnpm exec nx format:check
parallel-commands-on-agents: |
pnpm exec nx affected --target=lint --parallel=3
pnpm exec nx affected --target=test --parallel=3 --ci --code-coverage
pnpm exec nx affected --target=build --parallel=3
agents:
name: Nx Cloud - Agents
uses: nrwl/ci/.github/workflows/nx-cloud-agents.yml@v0.14.0
with:
number-of-agents: 3

View File

@ -1,25 +0,0 @@
name: Build & Deploy
on:
push:
branches: [master]
jobs:
build:
name: Build & Deploy
runs-on: ubuntu-latest
steps:
- name: Checkout GitHub Repository
uses: actions/checkout@v2.0.0
- name: Install Project Dependencies
run: npm install
- name: Build App
run: npm run build
- name: Build Documentation
run: npm run docs:build
- name: Deploy to Firebase Hosting
uses: w9jds/firebase-action@v1.3.0
with:
args: deploy --only hosting
env:
FIREBASE_TOKEN: ${{ secrets.FIREBASE_TOKEN }}

View File

@ -0,0 +1,149 @@
name: Publish Docker Image
on:
workflow_dispatch:
push:
tags:
- "*"
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
env:
IMAGE: amruthpillai/reactive-resume
jobs:
build:
runs-on: ubuntu-latest
outputs:
version: ${{ steps.version.outputs.version }}
strategy:
fail-fast: false
matrix:
platform:
- linux/amd64
# - linux/arm64 # Skipping linux/arm64 for now as it is extremely slow to build on GitHub Actions
steps:
- name: Checkout Repository
uses: actions/checkout@v4.1.1
- name: Extract version from package.json
id: version
run: echo "version=$(jq -r '.version' package.json)" >> "$GITHUB_OUTPUT"
- name: Set up QEMU
uses: docker/setup-qemu-action@v3.0.0
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3.0.0
- name: Login to Docker Hub
uses: docker/login-action@v3.0.0
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_TOKEN }}
- name: Login to GitHub Container Registery
uses: docker/login-action@v3.0.0
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ github.token }}
- name: Extract Docker Metadata
id: meta
uses: docker/metadata-action@v5.0.0
with:
tags: type=semver,pattern={{version}},prefix=v,value=${{ steps.version.outputs.version }}
images: |
${{ env.IMAGE }}
ghcr.io/${{ env.IMAGE }}
- name: Build and Push by Digest
uses: docker/build-push-action@v5.0.0
id: build
with:
context: .
cache-from: type=gha
cache-to: type=gha,mode=max
platforms: ${{ matrix.platform }}
labels: ${{ steps.meta.outputs.labels }}
outputs: type=image,name=${{ env.IMAGE }},push-by-digest=true,name-canonical=true,push=true
build-args: |
NX_CLOUD_ACCESS_TOKEN=${{ secrets.NX_CLOUD_ACCESS_TOKEN }}
- name: Export Digest
run: |
mkdir -p /tmp/digests
digest="${{ steps.build.outputs.digest }}"
touch "/tmp/digests/${digest#sha256:}"
- name: Upload Digest
uses: actions/upload-artifact@v3
with:
name: digests
path: /tmp/digests/*
if-no-files-found: error
retention-days: 1
merge:
runs-on: ubuntu-latest
needs:
- build
steps:
- name: Checkout Repository
uses: actions/checkout@v4.1.1
- name: Download Digest
uses: actions/download-artifact@v3.0.0
with:
name: digests
path: /tmp/digests
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3.0.0
- name: Login to Docker Hub
uses: docker/login-action@v3.0.0
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_TOKEN }}
- name: Login to GitHub Container Registery
uses: docker/login-action@v3.0.0
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ github.token }}
- name: Extract Docker Metadata
id: meta
uses: docker/metadata-action@v5.0.0
with:
tags: type=semver,pattern={{version}},prefix=v,value=${{ needs.build.outputs.version }}
images: |
${{ env.IMAGE }}
ghcr.io/${{ env.IMAGE }}
- name: Create Docker Manifest List and Push
working-directory: /tmp/digests
run: |
docker buildx imagetools create $(jq -cr '.tags | map("-t " + .) | join(" ")' <<< "$DOCKER_METADATA_OUTPUT_JSON") \
$(printf '${{ env.IMAGE }}@sha256:%s ' *)
- name: Inspect Image
run: |
docker buildx imagetools inspect ${{ env.IMAGE }}:${{ steps.meta.outputs.version }}
- name: Update Repository Description
uses: peter-evans/dockerhub-description@v3
with:
repository: ${{ github.repository }}
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_TOKEN }}

View File

@ -0,0 +1,30 @@
name: Sync Crowdin Translations
on:
workflow_dispatch:
schedule:
- cron: 0 0 * * * # everyday at midnight (UTC)
jobs:
sync:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v4.1.1
- name: Sync Translations
uses: crowdin/github-action@v1.15.2
with:
upload_sources: true
upload_translations: true
download_translations: true
create_pull_request: true
localization_branch_name: "l10n"
pull_request_base_branch_name: "main"
pull_request_title: "New Translations from Crowdin"
pull_request_body: "You've got new translations to be merged into the app from contributors on Crowdin.\n\n_This pull request was automatically created by the [Crowdin Action](https://github.com/marketplace/actions/crowdin-action)._"
env:
GITHUB_TOKEN: ${{ github.token }}
CROWDIN_PROJECT_ID: ${{ secrets.CROWDIN_PROJECT_ID }}
CROWDIN_PERSONAL_TOKEN: ${{ secrets.CROWDIN_PERSONAL_TOKEN }}

72
.gitignore vendored
View File

@ -1,30 +1,52 @@
# dependencies
/node_modules
/.pnp
.pnp.js
# Compiled Output
dist
tmp
/out-tsc
# testing
# Project Dependencies
node_modules
# IDEs and Editors
/.idea
.project
.classpath
.c9/
*.launch
.settings/
*.sublime-workspace
# IDE - VSCode
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
# Miscellaneous
/.sass-cache
/connect.lock
/coverage
/libpeerconnection.log
npm-debug.log
yarn-error.log
testem.log
/typings
# production
/build
# firebase
.firebase
# tailwind
tailwind.css
# vuepress
docs/.vuepress/dist
# misc
# System Files
.DS_Store
.env.local
.env.development.local
.env.test.local
.env.production.local
Thumbs.db
npm-debug.log*
yarn-debug.log*
yarn-error.log*
# Generated Files
.nx
.swc
fly.toml
stats.html
libs/prisma
# Environment Variables
*.env*
!.env.example
# Lingui Compiled Messages
apps/client/src/locales/_build/
apps/client/src/locales/*/messages.mjs

3
.npmrc Normal file
View File

@ -0,0 +1,3 @@
auto-install-peers=true
enable-pre-post-scripts=true
strict-peer-dependencies=false

5
.prettierignore Normal file
View File

@ -0,0 +1,5 @@
/dist
/coverage
/.nx/cache
stats.html
pnpm-lock.yaml

View File

@ -1,7 +1,3 @@
{
"printWidth": 100,
"trailingComma": "all",
"tabWidth": 2,
"semi": true,
"singleQuote": true
}
"printWidth": 100
}

8
.vscode/extensions.json vendored Normal file
View File

@ -0,0 +1,8 @@
{
"recommendations": [
"nrwl.angular-console",
"esbenp.prettier-vscode",
"dbaeumer.vscode-eslint",
"firsttris.vscode-jest-runner"
]
}

16
.vscode/settings.json vendored
View File

@ -1,4 +1,14 @@
{
"i18n-ally.localesPaths": "src/i18n",
"i18n-ally.keystyle": "nested"
}
"typescript.tsdk": "node_modules/typescript/lib",
"tailwindCSS.experimental.classRegex": [
["cva\\(([^)]*)\\)", "[\"'`]([^\"'`]*).*?[\"'`]"],
["cn\\(([^)]*)\\)", "(?:'|\"|`)([^']*)(?:'|\"|`)"]
],
"yaml.schemas": {
"https://json.schemastore.org/github-workflow.json": ".github/workflows/*.yml",
"https://raw.githubusercontent.com/compose-spec/compose-spec/master/schema/compose-spec.json": [
"tools/compose/*"
]
},
"i18n-ally.localesPaths": ["apps/client/src/locales"]
}

19
CHANGELOG.md Normal file
View File

@ -0,0 +1,19 @@
# Changelog
### Whats changed from v3 to v4?
**The entire app has been rebuilt and reimagined from the ground up.**
The **user interface** has been greatly streamlined to prioritise your content and resume. The design of templates has also undergone a major overhaul. Previously, we utilised TailwindCSS for creating templates, but now you can rely on CSS (styled-components) to build any design you prefer. With this change, I hope to offer a **much wider variety of templates** compared to the previous version.
When it comes to features, there are many to mention, but some highlights include the **ability to use your own OpenAI API key** (stored on your browser) and leverage GPTs to enhance your resume writing skills. With this, you can improve your writing, correct spelling and grammar, and even adjust the tone of the text to be more confident or casual.
When you make your resume publicly available, you are provided with a link that you can share with potential recruiters and employers. This change allows you to **track the number of views or downloads your resume has received**, so you can stay informed about when someone has checked out your resume.
When it comes to **security**, you now have the option to protect your account with **two-factor authentication**. This means that whenever you log in to Reactive Resume, you will also need to enter a one-time code generated on your phone. This additional step ensures that only you have access to your account.
From a **design** perspective, the motivation behind this is to ensure that Reactive Resume is taken more seriously and not perceived as just another subpar side-project, which is often associated with free software. My goal is to demonstrate that this is not the case, and that **free and open source software can be just as good**, if not better, than paid alternatives.
From a **self-hosting perspective**, it has never been simpler. Instead of running two separate services on your Docker (one for the client and one for the server) and struggling to establish communication between them, now you only need to pull a single image. Additionally, there are a few dependent services available on Docker (such as Postgres, Redis, Minio etc.) that you can also pull and have them all working together seamlessly.
I'm excited for you to try out the app, as I've spent months building it to perfection. If you enjoy the experience of building your resume using the app, please consider supporting by [becoming a GitHub Sponsor](https://github.com/sponsors/AmruthPillai).

86
CONTRIBUTING.md Normal file
View File

@ -0,0 +1,86 @@
# Contributing to Reactive Resume
## Getting the project set up locally
There are a number of Docker Compose examples that are suitable for a wide variety of deployment strategies depending on your use-case. All of the examples can be found in the `tools/compose` folder.
To run the development environment of the application locally on your computer, please follow these steps:
#### Requirements
- Docker (with Docker Compose)
- Node.js 18 or higher (with pnpm)
### 1. Fork and Clone the Repository
```sh
git clone https://github.com/{your-github-username}/Reactive-Resume.git
cd Reactive-Resume
```
### 2. Install dependencies
```sh
pnpm install
```
### 3. Copy .env.example to .env
```sh
cp .env.example .env
```
Please have a brief look over the environment variables and change them if necessary, for example, change the ports if you have a conflicting service running on your machine already.
### 4. Fire up all the required services through Docker Compose
```sh
docker compose -f tools/compose/development.yml --env-file .env -p reactive-resume up -d
```
It should take just under half a minute for all the services to be booted up correctly. You can check the status of all services by running `docker compose -p reactive-resume ps`
### 5. Run the development server
```sh
pnpm dev
```
If everything went well, the frontend should be running on `http://localhost:5173` and the backend api should be accessible through `http://localhost:3000`. There is a proxy present to also route all requests to `http://localhost:5173/api` directly to the API. If you need to change the `PORT` environment variable for the server, please make sure to update the `apps/client/proxy.conf.json` file as well with the new endpoint.
You can also visit `http://localhost:3000/api/health`, the health check endpoint of the server to check if the server is running correctly, and it is able to connect to all it's dependent services. The output of the health check endpoint should look like this:
```json
{
"status": "ok",
"info": {
"database": { "status": "up" },
"storage": { "status": "up" },
"browser": { "status": "up", "version": "Chrome/119.0.6045.9" },
"redis": { "status": "up" }
},
"error": {},
"details": {
"database": { "status": "up" },
"storage": { "status": "up" },
"browser": { "status": "up", "version": "Chrome/119.0.6045.9" },
"redis": { "status": "up" }
}
}
```
---
## Pushing changes to the app
Firstly, ensure that there is a GitHub Issue created for the feature or bugfix you are working on. If it does not exist, create an issue and assign it to yourself.
Once you are happy with the changes you've made locally, commit it to your repository. Note that the project makes use of Conventional Commits, so commit messages would have to be in a specific format for it to be accepted. For example, a commit message to fix the translation on the homepage could look like:
```
git commit -m "fix(homepage): fix typo on homepage in the faq section"
```
It helps to be as decriptive as possible in commit messages so that users can be aware of the changes made by you.
Finally, create a pull request to merge the changes on your forked repository to the original repository hosted on AmruthPillai/Reactive-Resume. I can take a look at the changes you've made when I have the time and have it merged onto the app.

View File

@ -1,39 +1,41 @@
## build image
FROM node:13.12.0-alpine as build
# --- Base Image ---
FROM node:lts-bullseye-slim AS base
## set working directory
WORKDIR /usr/src/app
ENV PNPM_HOME="/pnpm"
ENV PATH="$PNPM_HOME:$PATH"
ARG NX_CLOUD_ACCESS_TOKEN
## add `/usr/src/app/node_modules/.bin` to $PATH
ENV PATH /usr/src/app/node_modules/.bin:$PATH
RUN corepack enable
## install and cache app dependencies
COPY package.json /usr/src/app/package.json
WORKDIR /app
## install git
RUN apk add --no-cache git
# --- Build Image ---
FROM base AS build
## install app dependencies
RUN npm install
ENV NX_CLOUD_ACCESS_TOKEN=$NX_CLOUD_ACCESS_TOKEN
## copy files
COPY . /usr/src/app
COPY .npmrc package.json pnpm-lock.yaml ./
RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --frozen-lockfile
## build production app
RUN npm run build
COPY . .
## production environment
FROM nginx:1.17.9-alpine
RUN pnpm run build
## copy build artifacts to nginx
COPY --from=build /usr/src/app/build /usr/share/nginx/html
# --- Release Image ---
FROM base AS release
## copy custom nginx config
RUN rm /etc/nginx/conf.d/default.conf
COPY nginx/nginx.conf /etc/nginx/conf.d
RUN apt update && apt install -y dumb-init --no-install-recommends
## export port 80
EXPOSE 80
COPY --chown=node:node --from=build /app/.npmrc /app/package.json /app/pnpm-lock.yaml ./
RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --prod --frozen-lockfile
## run nginx server
CMD ["nginx", "-g", "daemon off;"]
COPY --chown=node:node --from=build /app/dist ./dist
COPY --chown=node:node --from=build /app/tools/prisma ./tools/prisma
RUN pnpm run prisma:generate
ENV TZ=UTC
ENV NODE_ENV=production
EXPOSE 3000
CMD [ "dumb-init", "pnpm", "run", "start" ]

View File

@ -1,20 +0,0 @@
## base image
FROM node:13.12.0-alpine
## set working directory
WORKDIR /usr/src/app
## add `/usr/src/app/node_modules/.bin` to $PATH
ENV PATH /usr/src/app/node_modules/.bin:$PATH
## install and cache app dependencies
COPY package.json /usr/src/app/package.json
## install git
RUN apk add --no-cache git
## install app dependencies
RUN npm install
## start app
CMD ["npm", "start"]

View File

@ -1,6 +1,6 @@
MIT License
Copyright (c) 2020 Amruth Pillai
Copyright (c) 2023 Amruth Pillai
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

View File

@ -1 +0,0 @@
web: bin/boot

View File

@ -1,15 +1,95 @@
<img src="https://i.imgur.com/4eps4gP.png" alt="Reactive Resume" width="256px" height="256px"/>
![Reactive Resume](https://i.imgur.com/FFc4nyZ.jpg)
![App Version](https://img.shields.io/github/package-json/version/AmruthPillai/Reactive-Resume/v4?label=version)
[![Docker Pulls](https://img.shields.io/docker/pulls/amruthpillai/reactive-resume)](https://hub.docker.com/repository/docker/amruthpillai/reactive-resume)
[![GitHub Sponsors](https://img.shields.io/github/sponsors/AmruthPillai)](https://github.com/sponsors/AmruthPillai)
[![Crowdin](https://badges.crowdin.net/reactive-resume/localized.svg)](https://crowdin.com/project/reactive-resume)
[![Discord](https://img.shields.io/discord/1173518977851473940?label=discord&link=https%3A%2F%2Fdiscord.gg%2FhzwkZbyvUW)](https://discord.gg/hzwkZbyvUW)
# Reactive Resume
[![Build & Deploy](https://github.com/AmruthPillai/Reactive-Resume/workflows/Build%20&%20Deploy/badge.svg)](https://github.com/AmruthPillai/Reactive-Resume/actions)
![Code Style](https://badgen.net/badge/code%20style/airbnb/ff5a5f?icon=airbnb)
[![Docker Pulls](https://img.shields.io/docker/pulls/amruthpillai/reactive-resume)](https://hub.docker.com/r/amruthpillai/reactive-resume)
[![Localization](https://badges.crowdin.net/reactive-resume/localized.svg)](https://crowdin.com/project/reactive-resume)
[![GitHub](https://img.shields.io/github/license/AmruthPillai/Reactive-Resume)](https://github.com/AmruthPillai/Reactive-Resume/blob/develop/LICENSE)
A free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume.
#### A Free and Open-Source Resume Builder That Respects Your Privacy
### [Go to App](https://rxresu.me/) | [Docs](https://docs.rxresu.me/)
Welcome to the front page of **Reactive Resume**, a free and open-source Resume Builder web app that focuses on one thing, **Privacy**. And also few other important features such as minimalistic UI/UX, customizability, portability, regularly updated templates, etc. But the important thing is that, your personal data is yours alone.
## Description
### [Go to App](https://rxresu.me/) | [Documentation](https://docs.rxresu.me/)
Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume. With zero user tracking or advertising, your privacy is a top priority. The platform is extremely user-friendly and can be self-hosted in less than 30 seconds if you wish to own your data completely.
It's available in multiple languages and comes packed with features such as real-time editing, dozens of templates, drag-and-drop customisation, and integration with OpenAI for enhancing your writing.
You can share a personalised link of your resume to potential employers, track its views or downloads, and customise your page layout by dragging-and-dropping sections. The platform also supports various font options and provides dozens of templates to choose from. And yes, there's even a dark mode for a more comfortable viewing experience.
Start creating your standout resume with Reactive Resume today!
## Templates
| Azurill | Bronzor | Chikorita |
| ------------------------------------------------------------ | ----------------------------------------------------------- | ----------------------------------------------------------- |
| <img src="https://i.imgur.com/jKgo04C.jpeg" width="200px" /> | <img src="https://i.imgur.com/DFNQZP2.jpg" width="200px" /> | <img src="https://i.imgur.com/Dwv8Y7f.jpg" width="200px" /> |
| Ditto | Kakuna | Nosepass |
| ----------------------------------------------------------- | ----------------------------------------------------------- | ----------------------------------------------------------- |
| <img src="https://i.imgur.com/6c5lASL.jpg" width="200px" /> | <img src="https://i.imgur.com/268ML3t.jpg" width="200px" /> | <img src="https://i.imgur.com/npRLsPS.jpg" width="200px" /> |
| Onyx | Pikachu | Rhyhorn |
| ----------------------------------------------------------- | ----------------------------------------------------------- | ----------------------------------------------------------- |
| <img src="https://i.imgur.com/cxplXOW.jpg" width="200px" /> | <img src="https://i.imgur.com/Y9f7qsh.jpg" width="200px" /> | <img src="https://i.imgur.com/h4kQxy2.jpg" width="200px" /> |
## Features
- **Free, forever** and open-source
- No telemetry, user tracking or advertising
- You can self-host the application in less then 30 seconds
- **Available in multiple languages** ([help add/improve your language here](https://translate.rxresu.me/))
- Use your email address (or a throw-away address, no problem) to create an account
- You can also sign in with your GitHub or Google account, and even set up two-factor authentication for extra security
- Create as many resumes as you like under a single account, optimising each resume for every job application based on its description for a higher ATS score
- **Bring your own OpenAI API key** and unlock features such as improving your writing, fixing spelling and grammar or changing the tone of your text in one-click
- Translate your resume into any language using ChatGPT and import it back for easier editing
- Create single page resumes or a resume that spans multiple pages easily
- Customize the colours and layouts to add a personal touch to your resume.
- Customise your page layout as you like just by dragging-and-dropping sections
- Create custom sections that are specific to your industry if the existing ones don't fit
- Jot down personal notes specific to your resume that's only visible to you
- Lock a resume to prevent making any further edits (useful for master templates)
- **Dozens of templates** to choose from, ranging from professional to modern
- Design your resume using the standardised EuroPass design template
- Supports printing resumes in A4 or Letter page formats
- Design your resume with any font that's available on [Google Fonts](https://fonts.google.com/)
- **Share a personalised link of your resume** to companies or recruiters for them to get the latest updates
- You can track the number of views or downloads your public resume has received
- Built with state-of-the-art (at the moment) and dependable technologies that's battle tested and peer reviewed by the open-source community on GitHub
- **MIT License**, so do what you like with the code as long as you credit the original author
- And yes, theres a dark mode too 🌓
## Built With
- React (Vite), for the frontend
- NestJS, for the backend
- Postgres (primary database)
- Prisma ORM, which frees you to switch to any other relational database with a few minor changes in the code
- Redis (for caching, session storage and resume statistics)
- Minio (for object storage: to store avatars, resume PDFs and previews)
- Browserless (for headless chrome, to print PDFs and generate previews)
- SMTP Server (to send password recovery emails)
- Sentry (for error tracing and performance monitoring)
- GitHub/Google OAuth (for quickly authenticating users)
- LinguiJS and Crowdin (for translation management and localization)
## Star History
<a href="https://star-history.com/#AmruthPillai/Reactive-Resume&Date">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=AmruthPillai/Reactive-Resume&type=Date&theme=dark" />
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=AmruthPillai/Reactive-Resume&type=Date" />
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=AmruthPillai/Reactive-Resume&type=Date" />
</picture>
</a>
## License
Reactive Resume is packaged and distributed using the [MIT License](/LICENSE.md) which allows for commercial use, distribution, modification and private use provided that all copies of the software contain the same license and copyright.
_By the community, for the community._
A passion project by [Amruth Pillai](https://www.amruthpillai.com/)

14
SECURITY.md Normal file
View File

@ -0,0 +1,14 @@
# Security Policy
## Supported Versions
| Version | Supported |
| ------- | ------------------ |
| 4.x.x | :white_check_mark: |
| 3.x.x | :x: |
| 2.x.x | :x: |
| 1.x.x | :x: |
## Reporting a Vulnerability
Please raise an issue on GitHub to report any security vulnerabilities in the app. If the vulnerability is potentially lethal, send me an email about it on hello@amruthpillai.com.

View File

@ -1,13 +0,0 @@
{
"name": "Reactive Resume",
"description": "A one-of-a-kind resume builder that's not out to get your data. Completely secure, customizable, portable, open-source and free forever.",
"website": "https://rxresu.me/",
"repository": "https://github.com/AmruthPillai/Reactive-Resume",
"logo": "https://i.imgur.com/ugpElge.png",
"buildpacks": [
{
"url": "mars/create-react-app"
}
],
"keywords": ["react", "resume", "static"]
}

View File

@ -0,0 +1,31 @@
{
"extends": ["plugin:@nx/react", "../../.eslintrc.json"],
"ignorePatterns": ["!**/*"],
"overrides": [
{
"files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
"extends": ["plugin:tailwindcss/recommended"],
"settings": {
"tailwindcss": {
"callees": ["cn", "clsx", "cva"],
"config": "tailwind.config.js"
}
},
"rules": {
// react-hooks
"react-hooks/exhaustive-deps": "off",
// tailwindcss
"tailwindcss/no-custom-classname": "off"
}
},
{
"files": ["*.ts", "*.tsx"],
"rules": {}
},
{
"files": ["*.js", "*.jsx"],
"rules": {}
}
]
}

44
apps/artboard/index.html Normal file
View File

@ -0,0 +1,44 @@
<!doctype html>
<html lang="en-US" translate="no">
<head>
<base href="/" />
<!-- SEO -->
<title>Reactive Resume - A free and open-source resume builder</title>
<meta
name="description"
content="A free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
/>
<!-- Meta -->
<meta charset="utf-8" />
<meta name="googlebot" content="notranslate" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<!-- Favicon -->
<link
rel="icon"
type="image/svg+xml"
href="/icon/dark.svg"
media="(prefers-color-scheme: light)"
/>
<link
rel="icon"
type="image/svg+xml"
href="/icon/light.svg"
media="(prefers-color-scheme: dark)"
/>
<!-- Styles -->
<link rel="stylesheet" href="/src/styles/main.css" />
</head>
<body>
<div id="root"></div>
<!-- Scripts -->
<script type="module" src="/src/main.tsx"></script>
<!-- Phosphor Icons -->
<script src="https://unpkg.com/@phosphor-icons/web"></script>
</body>
</html>

View File

@ -0,0 +1,10 @@
const { join } = require("path");
module.exports = {
plugins: {
tailwindcss: {
config: join(__dirname, "tailwind.config.js"),
},
autoprefixer: {},
},
};

View File

@ -0,0 +1,64 @@
{
"name": "artboard",
"$schema": "../../node_modules/nx/schemas/project-schema.json",
"sourceRoot": "apps/artboard/src",
"projectType": "application",
"targets": {
"build": {
"executor": "@nx/vite:build",
"outputs": ["{options.outputPath}"],
"defaultConfiguration": "production",
"options": {
"outputPath": "dist/apps/artboard"
},
"configurations": {
"development": {
"mode": "development"
},
"production": {
"mode": "production"
}
}
},
"serve": {
"executor": "@nx/vite:dev-server",
"defaultConfiguration": "development",
"options": {
"buildTarget": "artboard:build"
},
"configurations": {
"development": {
"buildTarget": "artboard:build:development",
"hmr": true
},
"production": {
"buildTarget": "artboard:build:production",
"hmr": false
}
}
},
"preview": {
"executor": "@nx/vite:preview-server",
"defaultConfiguration": "development",
"options": {
"buildTarget": "artboard:build"
},
"configurations": {
"development": {
"buildTarget": "artboard:build:development"
},
"production": {
"buildTarget": "artboard:build:production"
}
}
},
"lint": {
"executor": "@nx/eslint:lint",
"outputs": ["{options.outputFile}"],
"options": {
"lintFilePatterns": ["apps/artboard/**/*.{ts,tsx,js,jsx}"]
}
}
},
"tags": ["frontend"]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

View File

@ -0,0 +1,8 @@
<svg width="256" height="256" viewBox="0 0 256 256" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd"
d="M173.611 166.311L132.877 219.804H173.524L193.973 191.813L213.183 219.804H256L215.673 165.707L215.15 165.046L207.461 155.332L195.329 140.004L195.258 139.915L193.813 138.089L193.923 138.001L176.286 112.861H134.061L173.611 166.311ZM199.89 133.554L214.959 112.861H254.619L219.874 158.8L199.89 133.554Z"
fill="#09090B" />
<path fill-rule="evenodd" clip-rule="evenodd"
d="M0 36.1959V174.314H39.0678V137.614H60.3938L60.4323 137.671C60.8436 137.653 61.2518 137.634 61.6569 137.614C75.0665 136.968 85.1471 135.549 96.3849 131.385C96.7596 131.246 97.1355 131.104 97.5128 130.959L97.4591 130.881C105.816 126.86 112.331 121.344 117.006 114.331C122.005 106.702 124.504 97.6915 124.504 87.2997C124.504 76.7764 122.005 67.7 117.006 60.0706C112.007 52.3097 104.904 46.3903 95.6964 42.3125C86.62 38.2347 75.7678 36.1959 63.1399 36.1959H0ZM102.156 137.725L64.8705 144.175L85.4361 174.314H127.266L102.156 137.725ZM39.0678 107.426H60.7721C68.9277 107.426 74.9786 105.65 78.9248 102.098C83.0026 98.5465 85.0415 93.6137 85.0415 87.2997C85.0415 80.8542 83.0026 75.8556 78.9248 72.304C74.9786 68.7523 68.9277 66.9765 60.7721 66.9765H39.0678V107.426Z"
fill="#09090B" />
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -0,0 +1,8 @@
<svg width="256" height="256" viewBox="0 0 256 256" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd"
d="M173.611 166.311L132.877 219.804H173.524L193.973 191.813L213.183 219.804H256L215.673 165.707L215.15 165.046L207.461 155.332L195.329 140.004L195.258 139.915L193.813 138.089L193.923 138.001L176.286 112.861H134.061L173.611 166.311ZM199.89 133.554L214.959 112.861H254.619L219.874 158.8L199.89 133.554Z"
fill="#FAFAFA" />
<path fill-rule="evenodd" clip-rule="evenodd"
d="M0 36.1959V174.314H39.0678V137.614H60.3938L60.4323 137.671C60.8436 137.653 61.2517 137.634 61.6567 137.614C75.0665 136.968 85.1471 135.549 96.385 131.385C96.7596 131.246 97.1355 131.104 97.5128 130.959L97.4591 130.881C105.816 126.86 112.331 121.344 117.006 114.331C122.005 106.702 124.504 97.6915 124.504 87.2997C124.504 76.7764 122.005 67.7 117.006 60.0706C112.007 52.3097 104.904 46.3903 95.6964 42.3125C86.62 38.2347 75.7679 36.1959 63.1399 36.1959H0ZM102.156 137.725L64.8705 144.175L85.4361 174.314H127.266L102.156 137.725ZM39.0678 107.426H60.7721C68.9277 107.426 74.9786 105.65 78.9248 102.098C83.0026 98.5465 85.0415 93.6137 85.0415 87.2997C85.0415 80.8542 83.0026 75.8556 78.9248 72.304C74.9786 68.7523 68.9277 66.9765 60.7721 66.9765H39.0678V107.426Z"
fill="#FAFAFA" />
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

View File

@ -0,0 +1,49 @@
import { useTheme } from "@reactive-resume/hooks";
import { cn, pageSizeMap } from "@reactive-resume/utils";
import { useArtboardStore } from "../store/artboard";
type Props = {
mode?: "preview" | "builder";
pageNumber: number;
children: React.ReactNode;
};
export const MM_TO_PX = 3.78;
export const Page = ({ mode = "preview", pageNumber, children }: Props) => {
const { isDarkMode } = useTheme();
const page = useArtboardStore((state) => state.resume.metadata.page);
const fontFamily = useArtboardStore((state) => state.resume.metadata.typography.font.family);
return (
<div
data-page={pageNumber}
className={cn("relative bg-white", mode === "builder" && "shadow-2xl")}
style={{
fontFamily,
padding: page.margin,
width: `${pageSizeMap[page.format].width * MM_TO_PX}px`,
minHeight: `${pageSizeMap[page.format].height * MM_TO_PX}px`,
}}
>
{mode === "builder" && page.options.pageNumbers && (
<div className={cn("absolute -top-7 left-0 font-bold", isDarkMode && "text-white")}>
Page {pageNumber}
</div>
)}
{children}
{mode === "builder" && page.options.breakLine && (
<div
className="absolute inset-x-0 border-b border-dashed"
style={{
top: `${pageSizeMap[page.format].height * MM_TO_PX}px`,
}}
/>
)}
</div>
);
};

View File

@ -0,0 +1,33 @@
import { cn, isUrl } from "@reactive-resume/utils";
import { useArtboardStore } from "../store/artboard";
type PictureProps = {
className?: string;
};
export const Picture = ({ className }: PictureProps) => {
const picture = useArtboardStore((state) => state.resume.basics.picture);
const fontSize = useArtboardStore((state) => state.resume.metadata.typography.font.size);
if (!isUrl(picture.url) || picture.effects.hidden) return null;
return (
<img
src={picture.url}
alt="Profile"
className={cn(
"relative z-20 object-cover",
picture.effects.border && "border-primary",
picture.effects.grayscale && "grayscale",
className,
)}
style={{
maxWidth: `${picture.size}px`,
aspectRatio: `${picture.aspectRatio}`,
borderRadius: `${picture.borderRadius}px`,
borderWidth: `${picture.effects.border ? fontSize / 3 : 0}px`,
}}
/>
);
};

View File

@ -0,0 +1,13 @@
import { StrictMode } from "react";
import * as ReactDOM from "react-dom/client";
import { RouterProvider } from "react-router-dom";
import { router } from "./router";
const root = ReactDOM.createRoot(document.getElementById("root") as HTMLElement);
root.render(
<StrictMode>
<RouterProvider router={router} />
</StrictMode>,
);

View File

@ -0,0 +1,65 @@
import { useEffect, useMemo } from "react";
import { Outlet } from "react-router-dom";
import webfontloader from "webfontloader";
import { useArtboardStore } from "../store/artboard";
export const ArtboardPage = () => {
const metadata = useArtboardStore((state) => state.resume.metadata);
const fontString = useMemo(() => {
const family = metadata.typography.font.family;
const variants = metadata.typography.font.variants.join(",");
const subset = metadata.typography.font.subset;
return `${family}:${variants}:${subset}`;
}, [metadata.typography.font]);
useEffect(() => {
webfontloader.load({
google: { families: [fontString] },
active: () => {
const width = window.document.body.offsetWidth;
const height = window.document.body.offsetHeight;
const message = { type: "PAGE_LOADED", payload: { width, height } };
window.postMessage(message, "*");
},
});
}, [fontString]);
// Font Size & Line Height
useEffect(() => {
document.documentElement.style.setProperty("font-size", `${metadata.typography.font.size}px`);
document.documentElement.style.setProperty("line-height", `${metadata.typography.lineHeight}`);
document.documentElement.style.setProperty("--font-size", `${metadata.typography.font.size}px`);
document.documentElement.style.setProperty(
"--line-height",
`${metadata.typography.lineHeight}`,
);
document.documentElement.style.setProperty("--color-text", `${metadata.theme.text}`);
document.documentElement.style.setProperty("--color-primary", `${metadata.theme.primary}`);
document.documentElement.style.setProperty(
"--color-background",
`${metadata.theme.background}`,
);
}, [metadata]);
// Typography Options
useEffect(() => {
if (metadata.typography.hideIcons) {
document.querySelector("#root")!.classList.add("hide-icons");
} else {
document.querySelector("#root")!.classList.remove("hide-icons");
}
if (metadata.typography.underlineLinks) {
document.querySelector("#root")!.classList.add("underline-links");
} else {
document.querySelector("#root")!.classList.remove("underline-links");
}
}, [metadata]);
return <Outlet />;
};

View File

@ -0,0 +1,74 @@
import { SectionKey } from "@reactive-resume/schema";
import { pageSizeMap, Template } from "@reactive-resume/utils";
import { AnimatePresence, motion } from "framer-motion";
import { useEffect, useMemo, useRef } from "react";
import { ReactZoomPanPinchRef, TransformComponent, TransformWrapper } from "react-zoom-pan-pinch";
import { MM_TO_PX, Page } from "../components/page";
import { useArtboardStore } from "../store/artboard";
import { getTemplate } from "../templates";
export const BuilderLayout = () => {
const transformRef = useRef<ReactZoomPanPinchRef>(null);
const format = useArtboardStore((state) => state.resume.metadata.page.format);
const layout = useArtboardStore((state) => state.resume.metadata.layout);
const template = useArtboardStore((state) => state.resume.metadata.template as Template);
const Template = useMemo(() => getTemplate(template), [template]);
useEffect(() => {
const handleMessage = (event: MessageEvent) => {
if (event.origin !== window.location.origin) return;
if (event.data.type === "ZOOM_IN") transformRef.current?.zoomIn(0.2);
if (event.data.type === "ZOOM_OUT") transformRef.current?.zoomOut(0.2);
if (event.data.type === "CENTER_VIEW") transformRef.current?.centerView();
if (event.data.type === "RESET_VIEW") {
transformRef.current?.resetTransform(0);
setTimeout(() => transformRef.current?.centerView(0.8, 0), 10);
}
};
window.addEventListener("message", handleMessage);
return () => {
window.removeEventListener("message", handleMessage);
};
}, [transformRef]);
return (
<TransformWrapper
centerOnInit
maxScale={2}
minScale={0.4}
initialScale={0.8}
ref={transformRef}
limitToBounds={false}
>
<TransformComponent
wrapperClass="!w-screen !h-screen"
contentClass="grid items-start justify-center space-x-12 pointer-events-none"
contentStyle={{
width: `${layout.length * (pageSizeMap[format].width * MM_TO_PX + 42)}px`,
gridTemplateColumns: `repeat(${layout.length}, 1fr)`,
}}
>
<AnimatePresence>
{layout.map((columns, pageIndex) => (
<motion.div
layout
key={pageIndex}
initial={{ opacity: 0, x: -200, y: 0 }}
animate={{ opacity: 1, x: 0, transition: { delay: pageIndex * 0.3 } }}
exit={{ opacity: 0, x: -200 }}
>
<Page mode="builder" pageNumber={pageIndex + 1}>
<Template isFirstPage={pageIndex === 0} columns={columns as SectionKey[][]} />
</Page>
</motion.div>
))}
</AnimatePresence>
</TransformComponent>
</TransformWrapper>
);
};

View File

@ -0,0 +1,24 @@
import { SectionKey } from "@reactive-resume/schema";
import { Template } from "@reactive-resume/utils";
import { useMemo } from "react";
import { Page } from "../components/page";
import { useArtboardStore } from "../store/artboard";
import { getTemplate } from "../templates";
export const PreviewLayout = () => {
const layout = useArtboardStore((state) => state.resume.metadata.layout);
const template = useArtboardStore((state) => state.resume.metadata.template as Template);
const Template = useMemo(() => getTemplate(template), [template]);
return (
<>
{layout.map((columns, pageIndex) => (
<Page key={pageIndex} mode="preview" pageNumber={pageIndex + 1}>
<Template isFirstPage={pageIndex === 0} columns={columns as SectionKey[][]} />
</Page>
))}
</>
);
};

View File

@ -0,0 +1,40 @@
import { useEffect } from "react";
import { Outlet } from "react-router-dom";
import { useArtboardStore } from "../store/artboard";
export const Providers = () => {
const resume = useArtboardStore((state) => state.resume);
const setResume = useArtboardStore((state) => state.setResume);
useEffect(() => {
const handleMessage = (event: MessageEvent) => {
if (event.origin !== window.location.origin) return;
if (event.data.type === "SET_RESUME") setResume(event.data.payload);
if (event.data.type === "SET_THEME") {
event.data.payload === "dark"
? document.documentElement.classList.add("dark")
: document.documentElement.classList.remove("dark");
}
};
const resumeData = window.localStorage.getItem("resume");
if (resumeData) return setResume(JSON.parse(resumeData));
window.addEventListener("message", handleMessage);
return () => {
window.removeEventListener("message", handleMessage);
};
}, [setResume]);
// Only for testing, in production this will be fetched from window.postMessage
// useEffect(() => {
// setResume(sampleResume);
// }, [setResume]);
if (!resume) return null;
return <Outlet />;
};

View File

@ -0,0 +1,17 @@
import { createBrowserRouter, createRoutesFromChildren, Route } from "react-router-dom";
import { ArtboardPage } from "../pages/artboard";
import { BuilderLayout } from "../pages/builder";
import { PreviewLayout } from "../pages/preview";
import { Providers } from "../providers";
export const routes = createRoutesFromChildren(
<Route element={<Providers />}>
<Route path="artboard" element={<ArtboardPage />}>
<Route path="builder" element={<BuilderLayout />} />
<Route path="preview" element={<PreviewLayout />} />
</Route>
</Route>,
);
export const router = createBrowserRouter(routes);

View File

@ -0,0 +1,12 @@
import { ResumeData } from "@reactive-resume/schema";
import { create } from "zustand";
export type ArtboardStore = {
resume: ResumeData;
setResume: (resume: ResumeData) => void;
};
export const useArtboardStore = create<ArtboardStore>()((set) => ({
resume: null as unknown as ResumeData,
setResume: (resume) => set({ resume }),
}));

View File

@ -0,0 +1,25 @@
@tailwind base;
@tailwind components;
@tailwind utilities;
* {
font-variant-ligatures: none;
@apply border-current;
}
#root {
@apply antialiased;
}
#root.hide-icons .ph {
@apply hidden;
}
#root.underline-links a {
@apply underline underline-offset-2;
}
.wysiwyg {
@apply prose max-w-none text-current prose-headings:mt-0 prose-headings:mb-2 prose-p:mt-0 prose-p:mb-2 prose-ul:mt-0 prose-ul:mb-2 prose-li:mt-0 prose-li:mb-2 prose-ol:mt-0 prose-ol:mb-2 prose-img:mt-0 prose-img:mb-2 prose-hr:mt-0 prose-hr:mb-2 prose-p:leading-normal prose-li:leading-normal;
}

View File

@ -0,0 +1,507 @@
import {
Award,
Certification,
CustomSection,
CustomSectionGroup,
Education,
Experience,
Interest,
Language,
Profile,
Project,
Publication,
Reference,
SectionKey,
SectionWithItem,
Skill,
URL,
Volunteer,
} from "@reactive-resume/schema";
import { cn, isEmptyString, isUrl, linearTransform } from "@reactive-resume/utils";
import get from "lodash.get";
import React, { Fragment } from "react";
import { Picture } from "../components/picture";
import { useArtboardStore } from "../store/artboard";
import { TemplateProps } from "../types/template";
const Header = () => {
const basics = useArtboardStore((state) => state.resume.basics);
return (
<div className="flex flex-col items-center justify-center space-y-2 pb-2 text-center">
<Picture />
<div>
<div className="text-2xl font-bold">{basics.name}</div>
<div className="text-base">{basics.headline}</div>
</div>
<div className="flex flex-wrap items-center gap-x-3 gap-y-0.5 text-sm">
{basics.location && (
<div className="flex items-center gap-x-1.5">
<i className="ph ph-bold ph-map-pin text-primary" />
<div>{basics.location}</div>
</div>
)}
{basics.phone && (
<div className="flex items-center gap-x-1.5">
<i className="ph ph-bold ph-phone text-primary" />
<a href={`tel:${basics.phone}`} target="_blank" rel="noreferrer">
{basics.phone}
</a>
</div>
)}
{basics.email && (
<div className="flex items-center gap-x-1.5">
<i className="ph ph-bold ph-at text-primary" />
<a href={`mailto:${basics.email}`} target="_blank" rel="noreferrer">
{basics.email}
</a>
</div>
)}
<Link url={basics.url} />
{basics.customFields.map((item) => (
<div key={item.id} className="flex items-center gap-x-1.5">
<i className={cn(`ph ph-bold ph-${item.icon}`, "text-primary")} />
<span>{[item.name, item.value].filter(Boolean).join(": ")}</span>
</div>
))}
</div>
</div>
);
};
const Summary = () => {
const section = useArtboardStore((state) => state.resume.sections.summary);
if (!section.visible || isEmptyString(section.content)) return null;
return (
<section id={section.id}>
<div className="mb-2 hidden font-bold text-primary group-[.main]:block">
<h4>{section.name}</h4>
</div>
<div className="mb-2 hidden items-center gap-x-2 text-center font-bold text-primary group-[.sidebar]:flex">
<div className="h-1.5 w-1.5 rounded-full border border-primary" />
<h4>{section.name}</h4>
<div className="h-1.5 w-1.5 rounded-full border border-primary" />
</div>
<main className={cn("relative space-y-2", "border-l border-primary pl-4")}>
<div className="absolute left-[-4.5px] top-[8px] hidden h-[8px] w-[8px] rounded-full bg-primary group-[.main]:block" />
<div
className="wysiwyg"
style={{ columns: section.columns }}
dangerouslySetInnerHTML={{ __html: section.content }}
/>
</main>
</section>
);
};
type RatingProps = { level: number };
const Rating = ({ level }: RatingProps) => (
<div className="relative h-1 w-[128px] group-[.sidebar]:mx-auto">
<div className="absolute inset-0 h-1 w-[128px] rounded bg-primary opacity-25" />
<div
className="absolute inset-0 h-1 rounded bg-primary"
style={{ width: linearTransform(level, 0, 5, 0, 128) }}
/>
</div>
);
type LinkProps = {
url: URL;
icon?: React.ReactNode;
label?: string;
className?: string;
};
const Link = ({ url, icon, label, className }: LinkProps) => {
if (!isUrl(url.href)) return null;
return (
<div className="flex items-center gap-x-1.5">
{icon ?? <i className="ph ph-bold ph-link text-primary" />}
<a
href={url.href}
target="_blank"
rel="noreferrer noopener nofollow"
className={cn("inline-block", className)}
>
{label || url.label || url.href}
</a>
</div>
);
};
type SectionProps<T> = {
section: SectionWithItem<T> | CustomSectionGroup;
children?: (item: T) => React.ReactNode;
className?: string;
urlKey?: keyof T;
levelKey?: keyof T;
summaryKey?: keyof T;
keywordsKey?: keyof T;
};
const Section = <T,>({
section,
children,
className,
urlKey,
levelKey,
summaryKey,
keywordsKey,
}: SectionProps<T>) => {
if (!section.visible || !section.items.length) return null;
return (
<section id={section.id} className="grid">
<div className="mb-2 hidden font-bold text-primary group-[.main]:block">
<h4>{section.name}</h4>
</div>
<div className="mx-auto mb-2 hidden items-center gap-x-2 text-center font-bold text-primary group-[.sidebar]:flex">
<div className="h-1.5 w-1.5 rounded-full border border-primary" />
<h4>{section.name}</h4>
<div className="h-1.5 w-1.5 rounded-full border border-primary" />
</div>
<div
className="grid gap-x-6 gap-y-3 group-[.sidebar]:mx-auto group-[.sidebar]:text-center"
style={{ gridTemplateColumns: `repeat(${section.columns}, 1fr)` }}
>
{section.items
.filter((item) => item.visible)
.map((item) => {
const url = (urlKey && get(item, urlKey)) as URL | undefined;
const level = (levelKey && get(item, levelKey, 0)) as number | undefined;
const summary = (summaryKey && get(item, summaryKey, "")) as string | undefined;
const keywords = (keywordsKey && get(item, keywordsKey, [])) as string[] | undefined;
return (
<div
key={item.id}
className={cn(
"relative space-y-2",
"border-primary group-[.main]:border-l group-[.main]:pl-4",
className,
)}
>
<div>{children?.(item as T)}</div>
{summary !== undefined && !isEmptyString(summary) && (
<div className="wysiwyg" dangerouslySetInnerHTML={{ __html: summary }} />
)}
{level !== undefined && level > 0 && <Rating level={level} />}
{keywords !== undefined && keywords.length > 0 && (
<p className="text-sm">{keywords.join(", ")}</p>
)}
{url !== undefined && <Link url={url} />}
<div className="absolute left-[-4.5px] top-px hidden h-[8px] w-[8px] rounded-full bg-primary group-[.main]:block" />
</div>
);
})}
</div>
</section>
);
};
const Profiles = () => {
const section = useArtboardStore((state) => state.resume.sections.profiles);
const fontSize = useArtboardStore((state) => state.resume.metadata.typography.font.size);
return (
<Section<Profile> section={section}>
{(item) => (
<div>
{isUrl(item.url.href) ? (
<Link
url={item.url}
label={item.username}
icon={
<img
className="ph"
width={fontSize}
height={fontSize}
alt={item.network}
src={`https://cdn.simpleicons.org/${item.icon}`}
/>
}
/>
) : (
<p>{item.username}</p>
)}
<p className="text-sm">{item.network}</p>
</div>
)}
</Section>
);
};
const Experience = () => {
const section = useArtboardStore((state) => state.resume.sections.experience);
return (
<Section<Experience> section={section} urlKey="url" summaryKey="summary">
{(item) => (
<div>
<div className="font-bold">{item.company}</div>
<div>{item.position}</div>
<div>{item.location}</div>
<div className="font-bold">{item.date}</div>
</div>
)}
</Section>
);
};
const Education = () => {
const section = useArtboardStore((state) => state.resume.sections.education);
return (
<Section<Education> section={section} urlKey="url" summaryKey="summary">
{(item) => (
<div>
<div className="font-bold">{item.institution}</div>
<div>{item.area}</div>
<div>{item.score}</div>
<div>{item.studyType}</div>
<div className="font-bold">{item.date}</div>
</div>
)}
</Section>
);
};
const Awards = () => {
const section = useArtboardStore((state) => state.resume.sections.awards);
return (
<Section<Award> section={section} urlKey="url" summaryKey="summary">
{(item) => (
<div>
<div className="font-bold">{item.title}</div>
<div>{item.awarder}</div>
<div className="font-bold">{item.date}</div>
</div>
)}
</Section>
);
};
const Certifications = () => {
const section = useArtboardStore((state) => state.resume.sections.certifications);
return (
<Section<Certification> section={section} urlKey="url" summaryKey="summary">
{(item) => (
<div>
<div className="font-bold">{item.name}</div>
<div>{item.issuer}</div>
<div className="font-bold">{item.date}</div>
</div>
)}
</Section>
);
};
const Skills = () => {
const section = useArtboardStore((state) => state.resume.sections.skills);
return (
<Section<Skill> section={section} levelKey="level" keywordsKey="keywords">
{(item) => (
<div>
<div className="font-bold">{item.name}</div>
<div>{item.description}</div>
</div>
)}
</Section>
);
};
const Interests = () => {
const section = useArtboardStore((state) => state.resume.sections.interests);
return (
<Section<Interest> section={section} keywordsKey="keywords" className="space-y-0.5">
{(item) => <div className="font-bold">{item.name}</div>}
</Section>
);
};
const Publications = () => {
const section = useArtboardStore((state) => state.resume.sections.publications);
return (
<Section<Publication> section={section} urlKey="url" summaryKey="summary">
{(item) => (
<div>
<div className="font-bold">{item.name}</div>
<div>{item.publisher}</div>
<div className="font-bold">{item.date}</div>
</div>
)}
</Section>
);
};
const Volunteer = () => {
const section = useArtboardStore((state) => state.resume.sections.volunteer);
return (
<Section<Volunteer> section={section} urlKey="url" summaryKey="summary">
{(item) => (
<div>
<div className="font-bold">{item.organization}</div>
<div>{item.position}</div>
<div>{item.location}</div>
<div className="font-bold">{item.date}</div>
</div>
)}
</Section>
);
};
const Languages = () => {
const section = useArtboardStore((state) => state.resume.sections.languages);
return (
<Section<Language> section={section} levelKey="level">
{(item) => (
<div>
<div className="font-bold">{item.name}</div>
<div>{item.description}</div>
</div>
)}
</Section>
);
};
const Projects = () => {
const section = useArtboardStore((state) => state.resume.sections.projects);
return (
<Section<Project> section={section} urlKey="url" summaryKey="summary" keywordsKey="keywords">
{(item) => (
<div>
<div>
<div className="font-bold">{item.name}</div>
<div>{item.description}</div>
<div className="font-bold">{item.date}</div>
</div>
</div>
)}
</Section>
);
};
const References = () => {
const section = useArtboardStore((state) => state.resume.sections.references);
return (
<Section<Reference> section={section} urlKey="url" summaryKey="summary">
{(item) => (
<div>
<div className="font-bold">{item.name}</div>
<div>{item.description}</div>
</div>
)}
</Section>
);
};
const Custom = ({ id }: { id: string }) => {
const section = useArtboardStore((state) => state.resume.sections.custom[id]);
return (
<Section<CustomSection>
section={section}
urlKey="url"
summaryKey="summary"
keywordsKey="keywords"
>
{(item) => (
<div>
<div>
<div className="font-bold">{item.name}</div>
<div>{item.description}</div>
<div className="font-bold">{item.date}</div>
<div>{item.location}</div>
</div>
</div>
)}
</Section>
);
};
const mapSectionToComponent = (section: SectionKey) => {
switch (section) {
case "profiles":
return <Profiles />;
case "summary":
return <Summary />;
case "experience":
return <Experience />;
case "education":
return <Education />;
case "awards":
return <Awards />;
case "certifications":
return <Certifications />;
case "skills":
return <Skills />;
case "interests":
return <Interests />;
case "publications":
return <Publications />;
case "volunteer":
return <Volunteer />;
case "languages":
return <Languages />;
case "projects":
return <Projects />;
case "references":
return <References />;
default:
if (section.startsWith("custom.")) return <Custom id={section.split(".")[1]} />;
return null;
}
};
export const Azurill = ({ columns, isFirstPage = false }: TemplateProps) => {
const [main, sidebar] = columns;
return (
<div className="space-y-3">
{isFirstPage && <Header />}
<div className="grid grid-cols-3 gap-x-4">
<div className="sidebar group space-y-4">
{sidebar.map((section) => (
<Fragment key={section}>{mapSectionToComponent(section)}</Fragment>
))}
</div>
<div className="main group col-span-2 space-y-4">
{main.map((section) => (
<Fragment key={section}>{mapSectionToComponent(section)}</Fragment>
))}
</div>
</div>
</div>
);
};

View File

@ -0,0 +1,514 @@
import {
Award,
Certification,
CustomSection,
CustomSectionGroup,
Education,
Experience,
Interest,
Language,
Profile,
Project,
Publication,
Reference,
SectionKey,
SectionWithItem,
Skill,
URL,
Volunteer,
} from "@reactive-resume/schema";
import { cn, isEmptyString, isUrl } from "@reactive-resume/utils";
import get from "lodash.get";
import { Fragment } from "react";
import { Picture } from "../components/picture";
import { useArtboardStore } from "../store/artboard";
import { TemplateProps } from "../types/template";
const Header = () => {
const basics = useArtboardStore((state) => state.resume.basics);
return (
<div className="flex flex-col items-center space-y-2 text-center">
<Picture />
<div>
<div className="text-2xl font-bold">{basics.name}</div>
<div className="text-base">{basics.headline}</div>
</div>
<div className="flex flex-wrap items-center gap-x-2 gap-y-0.5 text-sm">
{basics.location && (
<div className="flex items-center gap-x-1.5">
<i className="ph ph-bold ph-map-pin text-primary" />
<div>{basics.location}</div>
</div>
)}
{basics.phone && (
<div className="flex items-center gap-x-1.5">
<i className="ph ph-bold ph-phone text-primary" />
<a href={`tel:${basics.phone}`} target="_blank" rel="noreferrer">
{basics.phone}
</a>
</div>
)}
{basics.email && (
<div className="flex items-center gap-x-1.5">
<i className="ph ph-bold ph-at text-primary" />
<a href={`mailto:${basics.email}`} target="_blank" rel="noreferrer">
{basics.email}
</a>
</div>
)}
<Link url={basics.url} />
{basics.customFields.map((item) => (
<div key={item.id} className="flex items-center gap-x-1.5">
<i className={cn(`ph ph-bold ph-${item.icon}`, "text-primary")} />
<span>{[item.name, item.value].filter(Boolean).join(": ")}</span>
</div>
))}
</div>
</div>
);
};
const Summary = () => {
const section = useArtboardStore((state) => state.resume.sections.summary);
if (!section.visible || isEmptyString(section.content)) return null;
return (
<section id={section.id} className="grid grid-cols-5 border-t pt-2.5">
<div>
<h4 className="text-base font-bold">{section.name}</h4>
</div>
<div
className="wysiwyg col-span-4"
style={{ columns: section.columns }}
dangerouslySetInnerHTML={{ __html: section.content }}
/>
</section>
);
};
type RatingProps = { level: number };
const Rating = ({ level }: RatingProps) => (
<div className="flex items-center gap-x-1.5">
{Array.from({ length: 5 }).map((_, index) => (
<div
key={index}
className={cn("h-2 w-2 rounded-full border border-primary", level > index && "bg-primary")}
/>
))}
</div>
);
type LinkProps = {
url: URL;
icon?: React.ReactNode;
label?: string;
className?: string;
};
const Link = ({ url, icon, label, className }: LinkProps) => {
if (!isUrl(url.href)) return null;
return (
<div className="flex items-center gap-x-1.5">
{icon ?? <i className="ph ph-bold ph-link text-primary" />}
<a
href={url.href}
target="_blank"
rel="noreferrer noopener nofollow"
className={cn("inline-block", className)}
>
{label || url.label || url.href}
</a>
</div>
);
};
type SectionProps<T> = {
section: SectionWithItem<T> | CustomSectionGroup;
children?: (item: T) => React.ReactNode;
className?: string;
urlKey?: keyof T;
levelKey?: keyof T;
summaryKey?: keyof T;
keywordsKey?: keyof T;
};
const Section = <T,>({
section,
children,
className,
urlKey,
levelKey,
summaryKey,
keywordsKey,
}: SectionProps<T>) => {
if (!section.visible || !section.items.length) return null;
return (
<section id={section.id} className="grid grid-cols-5 border-t pt-2.5">
<div>
<h4 className="text-base font-bold">{section.name}</h4>
</div>
<div
className="col-span-4 grid gap-x-6 gap-y-3"
style={{ gridTemplateColumns: `repeat(${section.columns}, 1fr)` }}
>
{section.items
.filter((item) => item.visible)
.map((item) => {
const url = (urlKey && get(item, urlKey)) as URL | undefined;
const level = (levelKey && get(item, levelKey, 0)) as number | undefined;
const summary = (summaryKey && get(item, summaryKey, "")) as string | undefined;
const keywords = (keywordsKey && get(item, keywordsKey, [])) as string[] | undefined;
return (
<div key={item.id} className={cn("space-y-2", className)}>
<div>
{children?.(item as T)}
{url !== undefined && <Link url={url} />}
</div>
{summary !== undefined && !isEmptyString(summary) && (
<div className="wysiwyg" dangerouslySetInnerHTML={{ __html: summary }} />
)}
{level !== undefined && level > 0 && <Rating level={level} />}
{keywords !== undefined && keywords.length > 0 && (
<p className="text-sm">{keywords.join(", ")}</p>
)}
</div>
);
})}
</div>
</section>
);
};
const Profiles = () => {
const section = useArtboardStore((state) => state.resume.sections.profiles);
const fontSize = useArtboardStore((state) => state.resume.metadata.typography.font.size);
return (
<Section<Profile> section={section}>
{(item) => (
<div>
{isUrl(item.url.href) ? (
<Link
url={item.url}
label={item.username}
icon={
<img
className="ph"
width={fontSize}
height={fontSize}
alt={item.network}
src={`https://cdn.simpleicons.org/${item.icon}`}
/>
}
/>
) : (
<p>{item.username}</p>
)}
<p className="text-sm">{item.network}</p>
</div>
)}
</Section>
);
};
const Experience = () => {
const section = useArtboardStore((state) => state.resume.sections.experience);
return (
<Section<Experience> section={section} urlKey="url" summaryKey="summary">
{(item) => (
<div className="flex items-center justify-between">
<div className="text-left">
<div className="font-bold">{item.company}</div>
<div>{item.position}</div>
</div>
<div className="shrink-0 text-right">
<div className="font-bold">{item.date}</div>
<div>{item.location}</div>
</div>
</div>
)}
</Section>
);
};
const Education = () => {
const section = useArtboardStore((state) => state.resume.sections.education);
return (
<Section<Education> section={section} urlKey="url" summaryKey="summary">
{(item) => (
<div className="flex items-center justify-between">
<div className="text-left">
<div className="font-bold">{item.institution}</div>
<div>{item.area}</div>
<div>{item.score}</div>
</div>
<div className="shrink-0 text-right">
<div className="font-bold">{item.date}</div>
<div>{item.studyType}</div>
</div>
</div>
)}
</Section>
);
};
const Awards = () => {
const section = useArtboardStore((state) => state.resume.sections.awards);
return (
<Section<Award> section={section} urlKey="url" summaryKey="summary">
{(item) => (
<div className="flex items-center justify-between">
<div className="text-left">
<div className="font-bold">{item.title}</div>
<div>{item.awarder}</div>
</div>
<div className="shrink-0 text-right">
<div className="font-bold">{item.date}</div>
</div>
</div>
)}
</Section>
);
};
const Certifications = () => {
const section = useArtboardStore((state) => state.resume.sections.certifications);
return (
<Section<Certification> section={section} urlKey="url" summaryKey="summary">
{(item) => (
<div className="flex items-center justify-between">
<div className="text-left">
<div className="font-bold">{item.name}</div>
<div>{item.issuer}</div>
</div>
<div className="shrink-0 text-right">
<div className="font-bold">{item.date}</div>
</div>
</div>
)}
</Section>
);
};
const Skills = () => {
const section = useArtboardStore((state) => state.resume.sections.skills);
return (
<Section<Skill> section={section} levelKey="level" keywordsKey="keywords">
{(item) => (
<div className="space-y-0.5">
<div className="font-bold">{item.name}</div>
<div>{item.description}</div>
</div>
)}
</Section>
);
};
const Interests = () => {
const section = useArtboardStore((state) => state.resume.sections.interests);
return (
<Section<Interest> section={section} keywordsKey="keywords" className="space-y-0.5">
{(item) => <div className="font-bold">{item.name}</div>}
</Section>
);
};
const Publications = () => {
const section = useArtboardStore((state) => state.resume.sections.publications);
return (
<Section<Publication> section={section} urlKey="url" summaryKey="summary">
{(item) => (
<div className="flex items-center justify-between">
<div className="text-left">
<div className="font-bold">{item.name}</div>
<div>{item.publisher}</div>
</div>
<div className="shrink-0 text-right">
<div className="font-bold">{item.date}</div>
</div>
</div>
)}
</Section>
);
};
const Volunteer = () => {
const section = useArtboardStore((state) => state.resume.sections.volunteer);
return (
<Section<Volunteer> section={section} urlKey="url" summaryKey="summary">
{(item) => (
<div className="flex items-center justify-between">
<div className="text-left">
<div className="font-bold">{item.organization}</div>
<div>{item.position}</div>
</div>
<div className="shrink-0 text-right">
<div className="font-bold">{item.date}</div>
<div>{item.location}</div>
</div>
</div>
)}
</Section>
);
};
const Languages = () => {
const section = useArtboardStore((state) => state.resume.sections.languages);
return (
<Section<Language> section={section} levelKey="level">
{(item) => (
<div className="space-y-0.5">
<div className="font-bold">{item.name}</div>
<div>{item.description}</div>
</div>
)}
</Section>
);
};
const Projects = () => {
const section = useArtboardStore((state) => state.resume.sections.projects);
return (
<Section<Project> section={section} urlKey="url" summaryKey="summary" keywordsKey="keywords">
{(item) => (
<div className="flex items-center justify-between">
<div className="text-left">
<div className="font-bold">{item.name}</div>
<div>{item.description}</div>
</div>
<div className="shrink-0 text-right">
<div className="font-bold">{item.date}</div>
</div>
</div>
)}
</Section>
);
};
const References = () => {
const section = useArtboardStore((state) => state.resume.sections.references);
return (
<Section<Reference> section={section} urlKey="url" summaryKey="summary">
{(item) => (
<div>
<div className="font-bold">{item.name}</div>
<div>{item.description}</div>
</div>
)}
</Section>
);
};
const Custom = ({ id }: { id: string }) => {
const section = useArtboardStore((state) => state.resume.sections.custom[id]);
return (
<Section<CustomSection>
section={section}
urlKey="url"
summaryKey="summary"
keywordsKey="keywords"
>
{(item) => (
<div className="flex items-center justify-between">
<div className="text-left">
<div className="font-bold">{item.name}</div>
<div>{item.description}</div>
</div>
<div className="shrink-0 text-right">
<div className="font-bold">{item.date}</div>
<div>{item.location}</div>
</div>
</div>
)}
</Section>
);
};
const mapSectionToComponent = (section: SectionKey) => {
switch (section) {
case "profiles":
return <Profiles />;
case "summary":
return <Summary />;
case "experience":
return <Experience />;
case "education":
return <Education />;
case "awards":
return <Awards />;
case "certifications":
return <Certifications />;
case "skills":
return <Skills />;
case "interests":
return <Interests />;
case "publications":
return <Publications />;
case "volunteer":
return <Volunteer />;
case "languages":
return <Languages />;
case "projects":
return <Projects />;
case "references":
return <References />;
default:
if (section.startsWith("custom.")) return <Custom id={section.split(".")[1]} />;
return null;
}
};
export const Bronzor = ({ columns, isFirstPage = false }: TemplateProps) => {
const [main, sidebar] = columns;
return (
<div className="space-y-4">
{isFirstPage && <Header />}
<div className="space-y-4">
{main.map((section) => (
<Fragment key={section}>{mapSectionToComponent(section)}</Fragment>
))}
{sidebar.map((section) => (
<Fragment key={section}>{mapSectionToComponent(section)}</Fragment>
))}
</div>
</div>
);
};

View File

@ -0,0 +1,531 @@
import {
Award,
Certification,
CustomSection,
CustomSectionGroup,
Education,
Experience,
Interest,
Language,
Profile,
Project,
Publication,
Reference,
SectionKey,
SectionWithItem,
Skill,
URL,
Volunteer,
} from "@reactive-resume/schema";
import { cn, isEmptyString, isUrl } from "@reactive-resume/utils";
import get from "lodash.get";
import { Fragment } from "react";
import { Picture } from "../components/picture";
import { useArtboardStore } from "../store/artboard";
import { TemplateProps } from "../types/template";
const Header = () => {
const basics = useArtboardStore((state) => state.resume.basics);
return (
<div className="grid grid-cols-3">
<div className="col-span-2 flex items-center gap-x-4">
<Picture />
<div className="space-y-2">
<div>
<div className="text-2xl font-bold">{basics.name}</div>
<div className="text-base">{basics.headline}</div>
</div>
<div className="flex flex-wrap items-center gap-x-2 gap-y-0.5 text-sm">
{basics.location && (
<div className="flex items-center gap-x-1.5">
<i className="ph ph-bold ph-map-pin text-primary" />
<div>{basics.location}</div>
</div>
)}
{basics.phone && (
<div className="flex items-center gap-x-1.5">
<i className="ph ph-bold ph-phone text-primary" />
<a href={`tel:${basics.phone}`} target="_blank" rel="noreferrer">
{basics.phone}
</a>
</div>
)}
{basics.email && (
<div className="flex items-center gap-x-1.5">
<i className="ph ph-bold ph-at text-primary" />
<a href={`mailto:${basics.email}`} target="_blank" rel="noreferrer">
{basics.email}
</a>
</div>
)}
<Link url={basics.url} />
{basics.customFields.map((item) => (
<div key={item.id} className="flex items-center gap-x-1.5">
<i className={cn(`ph ph-bold ph-${item.icon}`, "text-primary")} />
<span>{[item.name, item.value].filter(Boolean).join(": ")}</span>
</div>
))}
</div>
</div>
</div>
</div>
);
};
const Summary = () => {
const section = useArtboardStore((state) => state.resume.sections.summary);
if (!section.visible || isEmptyString(section.content)) return null;
return (
<section id={section.id}>
<h4 className="mb-2 border-b pb-0.5 text-sm font-bold">{section.name}</h4>
<div
className="wysiwyg"
style={{ columns: section.columns }}
dangerouslySetInnerHTML={{ __html: section.content }}
/>
</section>
);
};
type RatingProps = { level: number };
const Rating = ({ level }: RatingProps) => (
<div className="flex items-center gap-x-1.5">
{Array.from({ length: 5 }).map((_, index) => (
<div
key={index}
className={cn(
"h-2 w-2 rounded-full border border-primary group-[.sidebar]:border-background",
level > index && "bg-primary group-[.sidebar]:bg-background",
)}
/>
))}
</div>
);
type LinkProps = {
url: URL;
icon?: React.ReactNode;
label?: string;
className?: string;
};
const Link = ({ url, icon, label, className }: LinkProps) => {
if (!isUrl(url.href)) return null;
return (
<div className="flex items-center gap-x-1.5">
{icon ?? <i className="ph ph-bold ph-link text-primary" />}
<a
href={url.href}
target="_blank"
rel="noreferrer noopener nofollow"
className={cn("inline-block", className)}
>
{label || url.label || url.href}
</a>
</div>
);
};
type SectionProps<T> = {
section: SectionWithItem<T> | CustomSectionGroup;
children?: (item: T) => React.ReactNode;
className?: string;
urlKey?: keyof T;
levelKey?: keyof T;
summaryKey?: keyof T;
keywordsKey?: keyof T;
};
const Section = <T,>({
section,
children,
className,
urlKey,
levelKey,
summaryKey,
keywordsKey,
}: SectionProps<T>) => {
if (!section.visible || !section.items.length) return null;
return (
<section id={section.id} className="grid">
<h4 className="mb-2 border-b pb-0.5 text-sm font-bold">{section.name}</h4>
<div
className="grid gap-x-6 gap-y-3"
style={{ gridTemplateColumns: `repeat(${section.columns}, 1fr)` }}
>
{section.items
.filter((item) => item.visible)
.map((item) => {
const url = (urlKey && get(item, urlKey)) as URL | undefined;
const level = (levelKey && get(item, levelKey, 0)) as number | undefined;
const summary = (summaryKey && get(item, summaryKey, "")) as string | undefined;
const keywords = (keywordsKey && get(item, keywordsKey, [])) as string[] | undefined;
return (
<div key={item.id} className={cn("space-y-2", className)}>
<div>
{children?.(item as T)}
{url !== undefined && <Link url={url} />}
</div>
{summary !== undefined && !isEmptyString(summary) && (
<div className="wysiwyg" dangerouslySetInnerHTML={{ __html: summary }} />
)}
{level !== undefined && level > 0 && <Rating level={level} />}
{keywords !== undefined && keywords.length > 0 && (
<p className="text-sm">{keywords.join(", ")}</p>
)}
</div>
);
})}
</div>
</section>
);
};
const Experience = () => {
const section = useArtboardStore((state) => state.resume.sections.experience);
return (
<Section<Experience> section={section} urlKey="url" summaryKey="summary">
{(item) => (
<div className="flex items-center justify-between group-[.sidebar]:flex-col group-[.sidebar]:items-start">
<div className="text-left">
<div className="font-bold">{item.company}</div>
<div>{item.position}</div>
</div>
<div className="shrink-0 text-right">
<div className="font-bold">{item.date}</div>
<div>{item.location}</div>
</div>
</div>
)}
</Section>
);
};
const Education = () => {
const section = useArtboardStore((state) => state.resume.sections.education);
return (
<Section<Education> section={section} urlKey="url" summaryKey="summary">
{(item) => (
<div className="flex items-center justify-between group-[.sidebar]:flex-col group-[.sidebar]:items-start">
<div className="text-left">
<div className="font-bold">{item.institution}</div>
<div>{item.area}</div>
<div>{item.score}</div>
</div>
<div className="shrink-0 text-right">
<div className="font-bold">{item.date}</div>
<div>{item.studyType}</div>
</div>
</div>
)}
</Section>
);
};
const Profiles = () => {
const section = useArtboardStore((state) => state.resume.sections.profiles);
const fontSize = useArtboardStore((state) => state.resume.metadata.typography.font.size);
return (
<Section<Profile> section={section}>
{(item) => (
<div>
{isUrl(item.url.href) ? (
<Link
url={item.url}
label={item.username}
icon={
<img
className="ph"
width={fontSize}
height={fontSize}
alt={item.network}
src={`https://cdn.simpleicons.org/${item.icon}`}
/>
}
/>
) : (
<p>{item.username}</p>
)}
<p className="text-sm">{item.network}</p>
</div>
)}
</Section>
);
};
const Awards = () => {
const section = useArtboardStore((state) => state.resume.sections.awards);
return (
<Section<Award> section={section} urlKey="url" summaryKey="summary">
{(item) => (
<div className="flex items-center justify-between group-[.sidebar]:flex-col group-[.sidebar]:items-start">
<div className="text-left">
<div className="font-bold">{item.title}</div>
<div>{item.awarder}</div>
</div>
<div className="shrink-0 text-right">
<div className="font-bold">{item.date}</div>
</div>
</div>
)}
</Section>
);
};
const Certifications = () => {
const section = useArtboardStore((state) => state.resume.sections.certifications);
return (
<Section<Certification> section={section} urlKey="url" summaryKey="summary">
{(item) => (
<div className="flex items-center justify-between group-[.sidebar]:flex-col group-[.sidebar]:items-start">
<div className="text-left">
<div className="font-bold">{item.name}</div>
<div>{item.issuer}</div>
</div>
<div className="shrink-0 text-right">
<div className="font-bold">{item.date}</div>
</div>
</div>
)}
</Section>
);
};
const Skills = () => {
const section = useArtboardStore((state) => state.resume.sections.skills);
return (
<Section<Skill> section={section} levelKey="level" keywordsKey="keywords">
{(item) => (
<div>
<div className="font-bold">{item.name}</div>
<div>{item.description}</div>
</div>
)}
</Section>
);
};
const Interests = () => {
const section = useArtboardStore((state) => state.resume.sections.interests);
return (
<Section<Interest> section={section} keywordsKey="keywords" className="space-y-0.5">
{(item) => <div className="font-bold">{item.name}</div>}
</Section>
);
};
const Publications = () => {
const section = useArtboardStore((state) => state.resume.sections.publications);
return (
<Section<Publication> section={section} urlKey="url" summaryKey="summary">
{(item) => (
<div className="flex items-center justify-between group-[.sidebar]:flex-col group-[.sidebar]:items-start">
<div className="text-left">
<div className="font-bold">{item.name}</div>
<div>{item.publisher}</div>
</div>
<div className="shrink-0 text-right">
<div className="font-bold">{item.date}</div>
</div>
</div>
)}
</Section>
);
};
const Volunteer = () => {
const section = useArtboardStore((state) => state.resume.sections.volunteer);
return (
<Section<Volunteer> section={section} urlKey="url" summaryKey="summary">
{(item) => (
<div className="flex items-center justify-between group-[.sidebar]:flex-col group-[.sidebar]:items-start">
<div className="text-left">
<div className="font-bold">{item.organization}</div>
<div>{item.position}</div>
</div>
<div className="shrink-0 text-right">
<div className="font-bold">{item.date}</div>
<div>{item.location}</div>
</div>
</div>
)}
</Section>
);
};
const Languages = () => {
const section = useArtboardStore((state) => state.resume.sections.languages);
return (
<Section<Language> section={section} levelKey="level">
{(item) => (
<div className="space-y-0.5">
<div className="font-bold">{item.name}</div>
<div>{item.description}</div>
</div>
)}
</Section>
);
};
const Projects = () => {
const section = useArtboardStore((state) => state.resume.sections.projects);
return (
<Section<Project> section={section} urlKey="url" summaryKey="summary" keywordsKey="keywords">
{(item) => (
<div className="flex items-center justify-between group-[.sidebar]:flex-col group-[.sidebar]:items-start">
<div className="text-left">
<div className="font-bold">{item.name}</div>
<div>{item.description}</div>
</div>
<div className="shrink-0 text-right">
<div className="font-bold">{item.date}</div>
</div>
</div>
)}
</Section>
);
};
const References = () => {
const section = useArtboardStore((state) => state.resume.sections.references);
return (
<Section<Reference> section={section} urlKey="url" summaryKey="summary">
{(item) => (
<div>
<div className="font-bold">{item.name}</div>
<div>{item.description}</div>
</div>
)}
</Section>
);
};
const Custom = ({ id }: { id: string }) => {
const section = useArtboardStore((state) => state.resume.sections.custom[id]);
return (
<Section<CustomSection>
section={section}
urlKey="url"
summaryKey="summary"
keywordsKey="keywords"
>
{(item) => (
<div className="flex items-center justify-between group-[.sidebar]:flex-col group-[.sidebar]:items-start">
<div className="text-left">
<div className="font-bold">{item.name}</div>
<div>{item.description}</div>
</div>
<div className="shrink-0 text-right">
<div className="font-bold">{item.date}</div>
<div>{item.location}</div>
</div>
</div>
)}
</Section>
);
};
const mapSectionToComponent = (section: SectionKey) => {
switch (section) {
case "profiles":
return <Profiles />;
case "summary":
return <Summary />;
case "experience":
return <Experience />;
case "education":
return <Education />;
case "awards":
return <Awards />;
case "certifications":
return <Certifications />;
case "skills":
return <Skills />;
case "interests":
return <Interests />;
case "publications":
return <Publications />;
case "volunteer":
return <Volunteer />;
case "languages":
return <Languages />;
case "projects":
return <Projects />;
case "references":
return <References />;
default:
if (section.startsWith("custom.")) return <Custom id={section.split(".")[1]} />;
return null;
}
};
export const Chikorita = ({ columns, isFirstPage = false }: TemplateProps) => {
const margin = useArtboardStore((state) => state.resume.metadata.page.margin);
const [main, sidebar] = columns;
return (
<>
<div className="space-y-4">
{isFirstPage && <Header />}
<div className="relative z-10 grid grid-cols-3 space-x-8">
<div className="main group col-span-2 space-y-4">
{main.map((section) => (
<Fragment key={section}>{mapSectionToComponent(section)}</Fragment>
))}
</div>
<div className="sidebar group space-y-4 text-background">
{sidebar.map((section) => (
<Fragment key={section}>{mapSectionToComponent(section)}</Fragment>
))}
</div>
</div>
</div>
<div
style={{ columnGap: margin }}
className="pointer-events-none absolute inset-0 grid grid-cols-3"
>
<div className="col-start-3 bg-primary" />
</div>
</>
);
};

View File

@ -0,0 +1,547 @@
import {
Award,
Certification,
CustomSection,
CustomSectionGroup,
Education,
Experience,
Interest,
Language,
Profile,
Project,
Publication,
Reference,
SectionKey,
SectionWithItem,
Skill,
URL,
Volunteer,
} from "@reactive-resume/schema";
import { cn, isEmptyString, isUrl } from "@reactive-resume/utils";
import get from "lodash.get";
import { Fragment } from "react";
import { Picture } from "../components/picture";
import { useArtboardStore } from "../store/artboard";
import { TemplateProps } from "../types/template";
const Header = () => {
const basics = useArtboardStore((state) => state.resume.basics);
return (
<div className="relative z-20 grid grid-cols-3 space-x-4">
<div className="mx-auto">
<Picture />
</div>
<div className="col-span-2 space-y-0.5 text-background">
<h2 className="min-h-[30px] text-4xl font-bold">{basics.name}</h2>
<p className="min-h-[24px]">{basics.headline}</p>
<div className="text-text !mt-10">
<div className="flex flex-wrap items-center gap-x-2 gap-y-0.5 text-sm">
{basics.location && (
<>
<div className="flex items-center gap-x-1.5">
<i className="ph ph-bold ph-map-pin text-primary" />
<div>{basics.location}</div>
</div>
<div className="bg-text h-1 w-1 rounded-full last:hidden" />
</>
)}
{basics.phone && (
<>
<div className="flex items-center gap-x-1.5">
<i className="ph ph-bold ph-phone text-primary" />
<a href={`tel:${basics.phone}`} target="_blank" rel="noreferrer">
{basics.phone}
</a>
</div>
<div className="bg-text h-1 w-1 rounded-full last:hidden" />
</>
)}
{basics.email && (
<>
<div className="flex items-center gap-x-1.5">
<i className="ph ph-bold ph-at text-primary" />
<a href={`mailto:${basics.email}`} target="_blank" rel="noreferrer">
{basics.email}
</a>
</div>
<div className="bg-text h-1 w-1 rounded-full last:hidden" />
</>
)}
{isUrl(basics.url.href) && (
<>
<Link url={basics.url} />
<div className="bg-text h-1 w-1 rounded-full last:hidden" />
</>
)}
{basics.customFields.map((item) => (
<Fragment key={item.id}>
<div className="flex items-center gap-x-1.5">
<i className={cn(`ph ph-bold ph-${item.icon}`, "text-primary")} />
<span>{[item.name, item.value].filter(Boolean).join(": ")}</span>
</div>
<div className="bg-text h-1 w-1 rounded-full last:hidden" />
</Fragment>
))}
</div>
</div>
</div>
</div>
);
};
const Summary = () => {
const section = useArtboardStore((state) => state.resume.sections.summary);
if (!section.visible || isEmptyString(section.content)) return null;
return (
<section id={section.id}>
<h4 className="mb-2 text-base font-bold">{section.name}</h4>
<div
className="wysiwyg"
style={{ columns: section.columns }}
dangerouslySetInnerHTML={{ __html: section.content }}
/>
</section>
);
};
type RatingProps = { level: number };
const Rating = ({ level }: RatingProps) => (
<div className="flex items-center gap-x-1.5">
{Array.from({ length: 5 }).map((_, index) => (
<div
key={index}
className={cn("h-2 w-4 border border-primary", level > index && "bg-primary")}
/>
))}
</div>
);
type LinkProps = {
url: URL;
icon?: React.ReactNode;
label?: string;
className?: string;
};
const Link = ({ url, icon, label, className }: LinkProps) => {
if (!isUrl(url.href)) return null;
return (
<div className="flex items-center gap-x-1.5">
{icon ?? <i className="ph ph-bold ph-link text-primary" />}
<a
href={url.href}
target="_blank"
rel="noreferrer noopener nofollow"
className={cn("inline-block", className)}
>
{label || url.label || url.href}
</a>
</div>
);
};
type SectionProps<T> = {
section: SectionWithItem<T> | CustomSectionGroup;
children?: (item: T) => React.ReactNode;
className?: string;
urlKey?: keyof T;
levelKey?: keyof T;
summaryKey?: keyof T;
keywordsKey?: keyof T;
};
const Section = <T,>({
section,
children,
className,
urlKey,
levelKey,
summaryKey,
keywordsKey,
}: SectionProps<T>) => {
if (!section.visible || !section.items.length) return null;
return (
<section id={section.id} className="grid">
<h4 className="mb-2 text-base font-bold">{section.name}</h4>
<div
className="grid gap-x-6 gap-y-3"
style={{ gridTemplateColumns: `repeat(${section.columns}, 1fr)` }}
>
{section.items
.filter((item) => item.visible)
.map((item) => {
const url = (urlKey && get(item, urlKey)) as URL | undefined;
const level = (levelKey && get(item, levelKey, 0)) as number | undefined;
const summary = (summaryKey && get(item, summaryKey, "")) as string | undefined;
const keywords = (keywordsKey && get(item, keywordsKey, [])) as string[] | undefined;
return (
<div
key={item.id}
className={cn("relative space-y-2 pl-4 group-[.sidebar]:pl-0", className)}
>
<div className="relative -ml-4 group-[.sidebar]:ml-0">
<div className="pl-4 group-[.sidebar]:pl-0">
{children?.(item as T)}
{url !== undefined && <Link url={url} />}
</div>
<div className="absolute inset-y-0 -left-px border-l-[4px] border-primary group-[.sidebar]:hidden" />
</div>
{summary !== undefined && !isEmptyString(summary) && (
<div className="wysiwyg" dangerouslySetInnerHTML={{ __html: summary }} />
)}
{level !== undefined && level > 0 && <Rating level={level} />}
{keywords !== undefined && keywords.length > 0 && (
<p className="text-sm">{keywords.join(", ")}</p>
)}
<div className="absolute inset-y-0 left-0 border-l border-primary group-[.sidebar]:hidden" />
</div>
);
})}
</div>
</section>
);
};
const Profiles = () => {
const section = useArtboardStore((state) => state.resume.sections.profiles);
const fontSize = useArtboardStore((state) => state.resume.metadata.typography.font.size);
return (
<Section<Profile> section={section}>
{(item) => (
<div>
{isUrl(item.url.href) ? (
<Link
url={item.url}
label={item.username}
icon={
<img
className="ph"
width={fontSize}
height={fontSize}
alt={item.network}
src={`https://cdn.simpleicons.org/${item.icon}`}
/>
}
/>
) : (
<p>{item.username}</p>
)}
<p className="text-sm">{item.network}</p>
</div>
)}
</Section>
);
};
const Experience = () => {
const section = useArtboardStore((state) => state.resume.sections.experience);
return (
<Section<Experience> section={section} urlKey="url" summaryKey="summary">
{(item) => (
<div className="flex items-center justify-between group-[.sidebar]:flex-col group-[.sidebar]:items-start">
<div className="text-left">
<div className="font-bold">{item.company}</div>
<div>{item.position}</div>
</div>
<div className="shrink-0 text-right">
<div className="font-bold">{item.date}</div>
<div>{item.location}</div>
</div>
</div>
)}
</Section>
);
};
const Education = () => {
const section = useArtboardStore((state) => state.resume.sections.education);
return (
<Section<Education> section={section} urlKey="url" summaryKey="summary">
{(item) => (
<div className="flex items-center justify-between group-[.sidebar]:flex-col group-[.sidebar]:items-start">
<div className="text-left">
<div className="font-bold">{item.institution}</div>
<div>{item.area}</div>
<div>{item.score}</div>
</div>
<div className="shrink-0 text-right">
<div className="font-bold">{item.date}</div>
<div>{item.studyType}</div>
</div>
</div>
)}
</Section>
);
};
const Awards = () => {
const section = useArtboardStore((state) => state.resume.sections.awards);
return (
<Section<Award> section={section} urlKey="url" summaryKey="summary">
{(item) => (
<div className="flex items-center justify-between group-[.sidebar]:flex-col group-[.sidebar]:items-start">
<div className="text-left">
<div className="font-bold">{item.title}</div>
<div>{item.awarder}</div>
</div>
<div className="shrink-0 text-right">
<div className="font-bold">{item.date}</div>
</div>
</div>
)}
</Section>
);
};
const Certifications = () => {
const section = useArtboardStore((state) => state.resume.sections.certifications);
return (
<Section<Certification> section={section} urlKey="url" summaryKey="summary">
{(item) => (
<div className="flex items-center justify-between group-[.sidebar]:flex-col group-[.sidebar]:items-start">
<div className="text-left">
<div className="font-bold">{item.name}</div>
<div>{item.issuer}</div>
</div>
<div className="shrink-0 text-right">
<div className="font-bold">{item.date}</div>
</div>
</div>
)}
</Section>
);
};
const Skills = () => {
const section = useArtboardStore((state) => state.resume.sections.skills);
return (
<Section<Skill> section={section} levelKey="level" keywordsKey="keywords">
{(item) => (
<div>
<div className="font-bold">{item.name}</div>
<div>{item.description}</div>
</div>
)}
</Section>
);
};
const Interests = () => {
const section = useArtboardStore((state) => state.resume.sections.interests);
return (
<Section<Interest> section={section} className="space-y-0" keywordsKey="keywords">
{(item) => <div className="font-bold">{item.name}</div>}
</Section>
);
};
const Publications = () => {
const section = useArtboardStore((state) => state.resume.sections.publications);
return (
<Section<Publication> section={section} urlKey="url" summaryKey="summary">
{(item) => (
<div className="flex items-center justify-between group-[.sidebar]:flex-col group-[.sidebar]:items-start">
<div className="text-left">
<div className="font-bold">{item.name}</div>
<div>{item.publisher}</div>
</div>
<div className="shrink-0 text-right">
<div className="font-bold">{item.date}</div>
</div>
</div>
)}
</Section>
);
};
const Volunteer = () => {
const section = useArtboardStore((state) => state.resume.sections.volunteer);
return (
<Section<Volunteer> section={section} urlKey="url" summaryKey="summary">
{(item) => (
<div className="flex items-center justify-between group-[.sidebar]:flex-col group-[.sidebar]:items-start">
<div className="text-left">
<div className="font-bold">{item.organization}</div>
<div>{item.position}</div>
</div>
<div className="shrink-0 text-right">
<div className="font-bold">{item.date}</div>
<div>{item.location}</div>
</div>
</div>
)}
</Section>
);
};
const Languages = () => {
const section = useArtboardStore((state) => state.resume.sections.languages);
return (
<Section<Language> section={section} levelKey="level">
{(item) => (
<div>
<div className="font-bold">{item.name}</div>
<div>{item.description}</div>
</div>
)}
</Section>
);
};
const Projects = () => {
const section = useArtboardStore((state) => state.resume.sections.projects);
return (
<Section<Project> section={section} urlKey="url" summaryKey="summary" keywordsKey="keywords">
{(item) => (
<div className="flex items-center justify-between group-[.sidebar]:flex-col group-[.sidebar]:items-start">
<div className="text-left">
<div className="font-bold">{item.name}</div>
<div>{item.description}</div>
</div>
<div className="shrink-0 text-right">
<div className="font-bold">{item.date}</div>
</div>
</div>
)}
</Section>
);
};
const References = () => {
const section = useArtboardStore((state) => state.resume.sections.references);
return (
<Section<Reference> section={section} urlKey="url" summaryKey="summary">
{(item) => (
<div>
<div className="font-bold">{item.name}</div>
<div>{item.description}</div>
</div>
)}
</Section>
);
};
const Custom = ({ id }: { id: string }) => {
const section = useArtboardStore((state) => state.resume.sections.custom[id]);
return (
<Section<CustomSection>
section={section}
urlKey="url"
summaryKey="summary"
keywordsKey="keywords"
>
{(item) => (
<div className="flex items-center justify-between group-[.sidebar]:flex-col group-[.sidebar]:items-start">
<div className="text-left">
<div className="font-bold">{item.name}</div>
<div>{item.description}</div>
</div>
<div className="shrink-0 text-right">
<div className="font-bold">{item.date}</div>
<div>{item.location}</div>
</div>
</div>
)}
</Section>
);
};
const mapSectionToComponent = (section: SectionKey) => {
switch (section) {
case "profiles":
return <Profiles />;
case "summary":
return <Summary />;
case "experience":
return <Experience />;
case "education":
return <Education />;
case "awards":
return <Awards />;
case "certifications":
return <Certifications />;
case "skills":
return <Skills />;
case "interests":
return <Interests />;
case "publications":
return <Publications />;
case "volunteer":
return <Volunteer />;
case "languages":
return <Languages />;
case "projects":
return <Projects />;
case "references":
return <References />;
default:
if (section.startsWith("custom.")) return <Custom id={section.split(".")[1]} />;
return null;
}
};
export const Ditto = ({ columns, isFirstPage = false }: TemplateProps) => {
const [main, sidebar] = columns;
return (
<div className="space-y-4">
{isFirstPage && <div className="absolute inset-x-0 top-0 z-10 h-32 bg-primary" />}
{isFirstPage && <Header />}
<div className="grid grid-cols-3 space-x-4">
<div className="sidebar group space-y-4">
{sidebar.map((section) => (
<Fragment key={section}>{mapSectionToComponent(section)}</Fragment>
))}
</div>
<div className="main group col-span-2 space-y-4">
{main.map((section) => (
<Fragment key={section}>{mapSectionToComponent(section)}</Fragment>
))}
</div>
</div>
</div>
);
};

View File

@ -0,0 +1,36 @@
import { Template } from "@reactive-resume/utils";
import { Azurill } from "./azurill";
import { Bronzor } from "./bronzor";
import { Chikorita } from "./chikorita";
import { Ditto } from "./ditto";
import { Kakuna } from "./kakuna";
import { Nosepass } from "./nosepass";
import { Onyx } from "./onyx";
import { Pikachu } from "./pikachu";
import { Rhyhorn } from "./rhyhorn";
export const getTemplate = (template: Template) => {
switch (template) {
case "onyx":
return Onyx;
case "kakuna":
return Kakuna;
case "rhyhorn":
return Rhyhorn;
case "azurill":
return Azurill;
case "ditto":
return Ditto;
case "chikorita":
return Chikorita;
case "bronzor":
return Bronzor;
case "pikachu":
return Pikachu;
case "nosepass":
return Nosepass;
default:
return Onyx;
}
};

View File

@ -0,0 +1,469 @@
import {
Award,
Certification,
CustomSection,
CustomSectionGroup,
Education,
Experience,
Interest,
Language,
Project,
Publication,
Reference,
SectionKey,
SectionWithItem,
Skill,
URL,
Volunteer,
} from "@reactive-resume/schema";
import { cn, isEmptyString, isUrl } from "@reactive-resume/utils";
import get from "lodash.get";
import React, { Fragment } from "react";
import { Picture } from "../components/picture";
import { useArtboardStore } from "../store/artboard";
import { TemplateProps } from "../types/template";
const Header = () => {
const basics = useArtboardStore((state) => state.resume.basics);
const profiles = useArtboardStore((state) => state.resume.sections.profiles);
const fontSize = useArtboardStore((state) => state.resume.metadata.typography.font.size);
return (
<div className="flex flex-col items-center justify-center space-y-2 pb-2 text-center">
<Picture />
<div>
<div className="text-2xl font-bold">{basics.name}</div>
<div className="text-base">{basics.headline}</div>
</div>
<div className="flex flex-wrap items-center gap-x-3 gap-y-0.5 text-sm">
{basics.location && (
<div className="flex items-center gap-x-1.5">
<i className="ph ph-bold ph-map-pin text-primary" />
<div>{basics.location}</div>
</div>
)}
{basics.phone && (
<div className="flex items-center gap-x-1.5">
<i className="ph ph-bold ph-phone text-primary" />
<a href={`tel:${basics.phone}`} target="_blank" rel="noreferrer">
{basics.phone}
</a>
</div>
)}
{basics.email && (
<div className="flex items-center gap-x-1.5">
<i className="ph ph-bold ph-at text-primary" />
<a href={`mailto:${basics.email}`} target="_blank" rel="noreferrer">
{basics.email}
</a>
</div>
)}
<Link url={basics.url} />
{basics.customFields.map((item) => (
<div key={item.id} className="flex items-center gap-x-1.5">
<i className={cn(`ph ph-bold ph-${item.icon}`, "text-primary")} />
<span>{[item.name, item.value].filter(Boolean).join(": ")}</span>
</div>
))}
</div>
{profiles.visible && profiles.items.length > 0 && (
<div className="flex items-center gap-x-3 gap-y-0.5">
{profiles.items
.filter((item) => item.visible)
.map((item) => (
<div key={item.id} className="flex items-center gap-x-2">
<Link
url={item.url}
label={item.username}
className="text-sm"
icon={
<img
className="ph"
width={fontSize}
height={fontSize}
alt={item.network}
src={`https://cdn.simpleicons.org/${item.icon}`}
/>
}
/>
</div>
))}
</div>
)}
</div>
);
};
const Summary = () => {
const section = useArtboardStore((state) => state.resume.sections.summary);
if (!section.visible || isEmptyString(section.content)) return null;
return (
<section id={section.id}>
<h4 className="mb-2 border-b border-primary text-center font-bold text-primary">
{section.name}
</h4>
<div
className="wysiwyg"
style={{ columns: section.columns }}
dangerouslySetInnerHTML={{ __html: section.content }}
/>
</section>
);
};
type RatingProps = { level: number };
const Rating = ({ level }: RatingProps) => (
<div className="flex items-center gap-x-1.5">
{Array.from({ length: 5 }).map((_, index) => (
<div
key={index}
className={cn("h-3 w-5 rounded border-2 border-primary", level > index && "bg-primary")}
/>
))}
</div>
);
type LinkProps = {
url: URL;
icon?: React.ReactNode;
label?: string;
className?: string;
};
const Link = ({ url, icon, label, className }: LinkProps) => {
if (!isUrl(url.href)) return null;
return (
<div className="flex items-center gap-x-1.5">
{icon ?? <i className="ph ph-bold ph-link text-primary" />}
<a
href={url.href}
target="_blank"
rel="noreferrer noopener nofollow"
className={cn("inline-block", className)}
>
{label || url.label || url.href}
</a>
</div>
);
};
type SectionProps<T> = {
section: SectionWithItem<T> | CustomSectionGroup;
children?: (item: T) => React.ReactNode;
className?: string;
urlKey?: keyof T;
levelKey?: keyof T;
summaryKey?: keyof T;
keywordsKey?: keyof T;
};
const Section = <T,>({
section,
children,
className,
urlKey,
levelKey,
summaryKey,
keywordsKey,
}: SectionProps<T>) => {
if (!section.visible || !section.items.length) return null;
return (
<section id={section.id} className="grid">
<h4 className="mb-2 border-b border-primary text-center font-bold text-primary">
{section.name}
</h4>
<div
className="grid gap-x-6 gap-y-3"
style={{ gridTemplateColumns: `repeat(${section.columns}, 1fr)` }}
>
{section.items
.filter((item) => item.visible)
.map((item) => {
const url = (urlKey && get(item, urlKey)) as URL | undefined;
const level = (levelKey && get(item, levelKey, 0)) as number | undefined;
const summary = (summaryKey && get(item, summaryKey, "")) as string | undefined;
const keywords = (keywordsKey && get(item, keywordsKey, [])) as string[] | undefined;
return (
<div key={item.id} className={cn("space-y-2", className)}>
<div>{children?.(item as T)}</div>
{summary !== undefined && !isEmptyString(summary) && (
<div className="wysiwyg" dangerouslySetInnerHTML={{ __html: summary }} />
)}
{level !== undefined && level > 0 && <Rating level={level} />}
{keywords !== undefined && keywords.length > 0 && (
<p className="text-sm">{keywords.join(", ")}</p>
)}
{url !== undefined && <Link url={url} />}
</div>
);
})}
</div>
</section>
);
};
const Experience = () => {
const section = useArtboardStore((state) => state.resume.sections.experience);
return (
<Section<Experience> section={section} urlKey="url" summaryKey="summary">
{(item) => (
<div>
<div className="font-bold">{item.company}</div>
<div>{item.position}</div>
<div>{item.location}</div>
<div className="font-bold">{item.date}</div>
</div>
)}
</Section>
);
};
const Education = () => {
const section = useArtboardStore((state) => state.resume.sections.education);
return (
<Section<Education> section={section} urlKey="url" summaryKey="summary">
{(item) => (
<div>
<div className="font-bold">{item.institution}</div>
<div>{item.area}</div>
<div>{item.score}</div>
<div>{item.studyType}</div>
<div className="font-bold">{item.date}</div>
</div>
)}
</Section>
);
};
const Awards = () => {
const section = useArtboardStore((state) => state.resume.sections.awards);
return (
<Section<Award> section={section} urlKey="url" summaryKey="summary">
{(item) => (
<div>
<div className="font-bold">{item.title}</div>
<div>{item.awarder}</div>
<div className="font-bold">{item.date}</div>
</div>
)}
</Section>
);
};
const Certifications = () => {
const section = useArtboardStore((state) => state.resume.sections.certifications);
return (
<Section<Certification> section={section} urlKey="url" summaryKey="summary">
{(item) => (
<div>
<div className="font-bold">{item.name}</div>
<div>{item.issuer}</div>
<div className="font-bold">{item.date}</div>
</div>
)}
</Section>
);
};
const Skills = () => {
const section = useArtboardStore((state) => state.resume.sections.skills);
return (
<Section<Skill> section={section} levelKey="level" keywordsKey="keywords">
{(item) => (
<div>
<div className="font-bold">{item.name}</div>
<div>{item.description}</div>
</div>
)}
</Section>
);
};
const Interests = () => {
const section = useArtboardStore((state) => state.resume.sections.interests);
return (
<Section<Interest> section={section} keywordsKey="keywords" className="space-y-0.5">
{(item) => <div className="font-bold">{item.name}</div>}
</Section>
);
};
const Publications = () => {
const section = useArtboardStore((state) => state.resume.sections.publications);
return (
<Section<Publication> section={section} urlKey="url" summaryKey="summary">
{(item) => (
<div>
<div className="font-bold">{item.name}</div>
<div>{item.publisher}</div>
<div className="font-bold">{item.date}</div>
</div>
)}
</Section>
);
};
const Volunteer = () => {
const section = useArtboardStore((state) => state.resume.sections.volunteer);
return (
<Section<Volunteer> section={section} urlKey="url" summaryKey="summary">
{(item) => (
<div>
<div className="font-bold">{item.organization}</div>
<div>{item.position}</div>
<div>{item.location}</div>
<div className="font-bold">{item.date}</div>
</div>
)}
</Section>
);
};
const Languages = () => {
const section = useArtboardStore((state) => state.resume.sections.languages);
return (
<Section<Language> section={section} levelKey="level">
{(item) => (
<div>
<div className="font-bold">{item.name}</div>
<div>{item.description}</div>
</div>
)}
</Section>
);
};
const Projects = () => {
const section = useArtboardStore((state) => state.resume.sections.projects);
return (
<Section<Project> section={section} urlKey="url" summaryKey="summary" keywordsKey="keywords">
{(item) => (
<div>
<div>
<div className="font-bold">{item.name}</div>
<div>{item.description}</div>
<div className="font-bold">{item.date}</div>
</div>
</div>
)}
</Section>
);
};
const References = () => {
const section = useArtboardStore((state) => state.resume.sections.references);
return (
<Section<Reference> section={section} urlKey="url" summaryKey="summary">
{(item) => (
<div>
<div className="font-bold">{item.name}</div>
<div>{item.description}</div>
</div>
)}
</Section>
);
};
const Custom = ({ id }: { id: string }) => {
const section = useArtboardStore((state) => state.resume.sections.custom[id]);
return (
<Section<CustomSection>
section={section}
urlKey="url"
summaryKey="summary"
keywordsKey="keywords"
>
{(item) => (
<div>
<div>
<div className="font-bold">{item.name}</div>
<div>{item.description}</div>
<div>{item.location}</div>
<div className="font-bold">{item.date}</div>
</div>
</div>
)}
</Section>
);
};
const mapSectionToComponent = (section: SectionKey) => {
switch (section) {
case "summary":
return <Summary />;
case "experience":
return <Experience />;
case "education":
return <Education />;
case "awards":
return <Awards />;
case "certifications":
return <Certifications />;
case "skills":
return <Skills />;
case "interests":
return <Interests />;
case "publications":
return <Publications />;
case "volunteer":
return <Volunteer />;
case "languages":
return <Languages />;
case "projects":
return <Projects />;
case "references":
return <References />;
default:
if (section.startsWith("custom.")) return <Custom id={section.split(".")[1]} />;
return null;
}
};
export const Kakuna = ({ columns, isFirstPage = false }: TemplateProps) => {
const [main, sidebar] = columns;
return (
<div className="space-y-4">
{isFirstPage && <Header />}
<div className="space-y-4">
{main.map((section) => (
<Fragment key={section}>{mapSectionToComponent(section)}</Fragment>
))}
{sidebar.map((section) => (
<Fragment key={section}>{mapSectionToComponent(section)}</Fragment>
))}
</div>
</div>
);
};

View File

@ -0,0 +1,529 @@
import {
Award,
Certification,
CustomSection,
CustomSectionGroup,
Education,
Experience,
Interest,
Language,
Profile,
Project,
Publication,
Reference,
SectionKey,
SectionWithItem,
Skill,
URL,
Volunteer,
} from "@reactive-resume/schema";
import { cn, isEmptyString, isUrl } from "@reactive-resume/utils";
import get from "lodash.get";
import { Fragment } from "react";
import { Picture } from "../components/picture";
import { useArtboardStore } from "../store/artboard";
import { TemplateProps } from "../types/template";
const Header = () => {
const basics = useArtboardStore((state) => state.resume.basics);
return (
<div className="grid grid-cols-4 gap-x-6">
<div className="mt-1 space-y-2 text-right">
<p className="font-medium text-primary">Personal Information</p>
<Picture className="ml-auto" />
</div>
<div className="col-span-3 space-y-2">
<div>
<div className="text-2xl font-bold">{basics.name}</div>
<div className="text-base">{basics.headline}</div>
</div>
<div className="space-y-1 text-sm">
{basics.location && (
<div className="flex items-center gap-x-1.5">
<i className="ph ph-bold ph-map-pin text-primary" />
<div>{basics.location}</div>
</div>
)}
{basics.phone && (
<div className="flex items-center gap-x-1.5">
<i className="ph ph-bold ph-phone text-primary" />
<a href={`tel:${basics.phone}`} target="_blank" rel="noreferrer">
{basics.phone}
</a>
</div>
)}
{basics.email && (
<div className="flex items-center gap-x-1.5">
<i className="ph ph-bold ph-at text-primary" />
<a href={`mailto:${basics.email}`} target="_blank" rel="noreferrer">
{basics.email}
</a>
</div>
)}
<Link url={basics.url} />
</div>
<div className="flex flex-wrap gap-x-3 text-sm">
{basics.customFields.map((item) => (
<div key={item.id} className="flex items-center gap-x-1.5">
<i className={cn(`ph ph-bold ph-${item.icon}`, "text-primary")} />
<span className="text-primary">{item.name}</span>
<span>{item.value}</span>
</div>
))}
</div>
</div>
</div>
);
};
const Summary = () => {
const section = useArtboardStore((state) => state.resume.sections.summary);
if (!section.visible || isEmptyString(section.content)) return null;
return (
<section id={section.id} className="grid grid-cols-4 gap-x-6">
<div className="text-right">
<h4 className="font-medium text-primary">{section.name}</h4>
</div>
<div className="col-span-3">
<div className="relative">
<hr className="mt-3 border-primary pb-3" />
<div className="absolute bottom-3 right-0 h-3 w-3 bg-primary" />
</div>
<div
className="wysiwyg"
style={{ columns: section.columns }}
dangerouslySetInnerHTML={{ __html: section.content }}
/>
</div>
</section>
);
};
type LinkProps = {
url: URL;
icon?: React.ReactNode;
label?: string;
className?: string;
};
const Link = ({ url, icon, label, className }: LinkProps) => {
if (!isUrl(url.href)) return null;
return (
<div className="flex items-center gap-x-1.5">
{icon ?? <i className="ph ph-bold ph-link text-primary" />}
<a
href={url.href}
target="_blank"
rel="noreferrer noopener nofollow"
className={cn("inline-block", className)}
>
{label || url.label || url.href}
</a>
</div>
);
};
type SectionProps<T> = {
section: SectionWithItem<T> | CustomSectionGroup;
children?: (item: T) => React.ReactNode;
urlKey?: keyof T;
dateKey?: keyof T;
levelKey?: keyof T;
summaryKey?: keyof T;
keywordsKey?: keyof T;
};
const Section = <T,>({
section,
children,
urlKey,
dateKey,
summaryKey,
keywordsKey,
}: SectionProps<T>) => {
if (!section.visible || !section.items.length) return null;
return (
<section id={section.id} className={cn("grid", dateKey !== undefined && "gap-y-4")}>
<div className="grid grid-cols-4 gap-x-6">
<div className="text-right">
<h4 className="font-medium text-primary">{section.name}</h4>
</div>
<div className="col-span-3">
<div className="relative">
<hr className="mt-3 border-primary" />
<div className="absolute bottom-0 right-0 h-3 w-3 bg-primary" />
</div>
</div>
</div>
{dateKey !== undefined && (
<div className="grid grid-cols-4 gap-x-6 gap-y-4">
{section.items
.filter((item) => item.visible)
.map((item) => {
const url = (urlKey && get(item, urlKey)) as URL | undefined;
const date = (dateKey && get(item, dateKey, "")) as string | undefined;
const summary = (summaryKey && get(item, summaryKey, "")) as string | undefined;
const keywords = (keywordsKey && get(item, keywordsKey, [])) as string[] | undefined;
return (
<Fragment key={item.id}>
<div className="text-right font-medium text-primary">{date}</div>
<div className="col-span-3 space-y-1">
{children?.(item as T)}
{url !== undefined && <Link url={url} />}
{summary !== undefined && !isEmptyString(summary) && (
<div className="wysiwyg" dangerouslySetInnerHTML={{ __html: summary }} />
)}
{keywords !== undefined && keywords.length > 0 && (
<p className="text-sm">{keywords.join(", ")}</p>
)}
</div>
</Fragment>
);
})}
</div>
)}
{dateKey === undefined && (
<div className="grid grid-cols-4 gap-x-6">
<div
className="col-span-3 col-start-2 grid gap-x-6 gap-y-3"
style={{ gridTemplateColumns: `repeat(${section.columns}, 1fr)` }}
>
{section.items
.filter((item) => item.visible)
.map((item) => {
const url = (urlKey && get(item, urlKey)) as URL | undefined;
const summary = (summaryKey && get(item, summaryKey, "")) as string | undefined;
const keywords = (keywordsKey && get(item, keywordsKey, [])) as
| string[]
| undefined;
return (
<div key={item.id}>
{children?.(item as T)}
{url !== undefined && <Link url={url} />}
{summary !== undefined && !isEmptyString(summary) && (
<div className="wysiwyg" dangerouslySetInnerHTML={{ __html: summary }} />
)}
{keywords !== undefined && keywords.length > 0 && (
<p className="text-sm">{keywords.join(", ")}</p>
)}
</div>
);
})}
</div>
</div>
)}
</section>
);
};
const Profiles = () => {
const section = useArtboardStore((state) => state.resume.sections.profiles);
const fontSize = useArtboardStore((state) => state.resume.metadata.typography.font.size);
return (
<Section<Profile> section={section}>
{(item) => (
<div>
{isUrl(item.url.href) ? (
<Link
url={item.url}
label={item.username}
icon={
<img
className="ph"
width={fontSize}
height={fontSize}
alt={item.network}
src={`https://cdn.simpleicons.org/${item.icon}`}
/>
}
/>
) : (
<p>{item.username}</p>
)}
<p className="text-sm">{item.network}</p>
</div>
)}
</Section>
);
};
const Experience = () => {
const section = useArtboardStore((state) => state.resume.sections.experience);
return (
<Section<Experience> section={section} urlKey="url" dateKey="date" summaryKey="summary">
{(item) => (
<div>
<div className="font-bold">{item.company}</div>
<div>{item.position}</div>
<div>{item.location}</div>
</div>
)}
</Section>
);
};
const Education = () => {
const section = useArtboardStore((state) => state.resume.sections.education);
return (
<Section<Education> section={section} urlKey="url" dateKey="date" summaryKey="summary">
{(item) => (
<div>
<div className="font-bold">{item.institution}</div>
<div>{item.area}</div>
<div>{item.studyType}</div>
<div>{item.score}</div>
</div>
)}
</Section>
);
};
const Awards = () => {
const section = useArtboardStore((state) => state.resume.sections.awards);
return (
<Section<Award> section={section} urlKey="url" dateKey="date" summaryKey="summary">
{(item) => (
<div>
<div className="font-bold">{item.title}</div>
<div>{item.awarder}</div>
</div>
)}
</Section>
);
};
const Certifications = () => {
const section = useArtboardStore((state) => state.resume.sections.certifications);
return (
<Section<Certification> section={section} urlKey="url" dateKey="date" summaryKey="summary">
{(item) => (
<div>
<div className="font-bold">{item.name}</div>
<div>{item.issuer}</div>
</div>
)}
</Section>
);
};
const Skills = () => {
const section = useArtboardStore((state) => state.resume.sections.skills);
return (
<Section<Skill> section={section} levelKey="level" keywordsKey="keywords">
{(item) => (
<div>
<div className="font-bold">{item.name}</div>
<div>{item.description}</div>
</div>
)}
</Section>
);
};
const Interests = () => {
const section = useArtboardStore((state) => state.resume.sections.interests);
return (
<Section<Interest> section={section} keywordsKey="keywords">
{(item) => <div className="font-bold">{item.name}</div>}
</Section>
);
};
const Publications = () => {
const section = useArtboardStore((state) => state.resume.sections.publications);
return (
<Section<Publication> section={section} urlKey="url" dateKey="date" summaryKey="summary">
{(item) => (
<div>
<div className="font-bold">{item.name}</div>
<div>{item.publisher}</div>
</div>
)}
</Section>
);
};
const Volunteer = () => {
const section = useArtboardStore((state) => state.resume.sections.volunteer);
return (
<Section<Volunteer> section={section} urlKey="url" dateKey="date" summaryKey="summary">
{(item) => (
<div>
<div className="font-bold">{item.organization}</div>
<div>{item.position}</div>
<div>{item.location}</div>
</div>
)}
</Section>
);
};
const Languages = () => {
const section = useArtboardStore((state) => state.resume.sections.languages);
return (
<Section<Language> section={section} levelKey="level">
{(item) => (
<div>
<div className="font-bold">{item.name}</div>
<div>{item.description}</div>
</div>
)}
</Section>
);
};
const Projects = () => {
const section = useArtboardStore((state) => state.resume.sections.projects);
return (
<Section<Project>
section={section}
urlKey="url"
dateKey="date"
summaryKey="summary"
keywordsKey="keywords"
>
{(item) => (
<div>
<div className="font-bold">{item.name}</div>
<div>{item.description}</div>
</div>
)}
</Section>
);
};
const References = () => {
const section = useArtboardStore((state) => state.resume.sections.references);
return (
<Section<Reference> section={section} urlKey="url" summaryKey="summary">
{(item) => (
<div>
<div className="font-bold">{item.name}</div>
<div>{item.description}</div>
</div>
)}
</Section>
);
};
const Custom = ({ id }: { id: string }) => {
const section = useArtboardStore((state) => state.resume.sections.custom[id]);
return (
<Section<CustomSection>
section={section}
urlKey="url"
dateKey="date"
summaryKey="summary"
keywordsKey="keywords"
>
{(item) => (
<div>
<div className="font-bold">{item.name}</div>
<div>{item.description}</div>
<div>{item.location}</div>
</div>
)}
</Section>
);
};
const mapSectionToComponent = (section: SectionKey) => {
switch (section) {
case "profiles":
return <Profiles />;
case "summary":
return <Summary />;
case "experience":
return <Experience />;
case "education":
return <Education />;
case "awards":
return <Awards />;
case "certifications":
return <Certifications />;
case "skills":
return <Skills />;
case "interests":
return <Interests />;
case "publications":
return <Publications />;
case "volunteer":
return <Volunteer />;
case "languages":
return <Languages />;
case "projects":
return <Projects />;
case "references":
return <References />;
default:
if (section.startsWith("custom.")) return <Custom id={section.split(".")[1]} />;
return null;
}
};
export const Nosepass = ({ columns, isFirstPage = false }: TemplateProps) => {
const name = useArtboardStore((state) => state.resume.basics.name);
const [main, sidebar] = columns;
return (
<div className="space-y-4">
<div className="flex items-center justify-between">
<img alt="Europass Logo" className="h-[48px]" src="https://i.imgur.com/eRK005p.png" />
<p className="font-medium text-primary">Curriculum Vitae</p>
<p className="font-medium text-primary">{name}</p>
</div>
{isFirstPage && <Header />}
<div className="space-y-4">
{main.map((section) => (
<Fragment key={section}>{mapSectionToComponent(section)}</Fragment>
))}
{sidebar.map((section) => (
<Fragment key={section}>{mapSectionToComponent(section)}</Fragment>
))}
</div>
</div>
);
};

View File

@ -0,0 +1,507 @@
import {
Award,
Certification,
CustomSection,
CustomSectionGroup,
Education,
Experience,
Interest,
Language,
Project,
Publication,
Reference,
SectionKey,
SectionWithItem,
Skill,
URL,
Volunteer,
} from "@reactive-resume/schema";
import { cn, isEmptyString, isUrl } from "@reactive-resume/utils";
import get from "lodash.get";
import React, { Fragment } from "react";
import { Picture } from "../components/picture";
import { useArtboardStore } from "../store/artboard";
import { TemplateProps } from "../types/template";
const Header = () => {
const basics = useArtboardStore((state) => state.resume.basics);
const profiles = useArtboardStore((state) => state.resume.sections.profiles);
const fontSize = useArtboardStore((state) => state.resume.metadata.typography.font.size);
return (
<div className="flex items-center justify-between space-x-4 border-b border-primary pb-5">
<Picture />
<div className="flex-1 space-y-2">
<div>
<div className="text-2xl font-bold">{basics.name}</div>
<div className="text-base">{basics.headline}</div>
</div>
<div className="flex flex-wrap items-center gap-x-2 gap-y-0.5 text-sm">
{basics.location && (
<div className="flex items-center gap-x-1.5">
<i className="ph ph-bold ph-map-pin text-primary" />
<div>{basics.location}</div>
</div>
)}
{basics.phone && (
<div className="flex items-center gap-x-1.5">
<i className="ph ph-bold ph-phone text-primary" />
<a href={`tel:${basics.phone}`} target="_blank" rel="noreferrer">
{basics.phone}
</a>
</div>
)}
{basics.email && (
<div className="flex items-center gap-x-1.5">
<i className="ph ph-bold ph-at text-primary" />
<a href={`mailto:${basics.email}`} target="_blank" rel="noreferrer">
{basics.email}
</a>
</div>
)}
<Link url={basics.url} />
{basics.customFields.map((item) => (
<div key={item.id} className="flex items-center gap-x-1.5">
<i className={cn(`ph ph-bold ph-${item.icon}`, "text-primary")} />
<span>{[item.name, item.value].filter(Boolean).join(": ")}</span>
</div>
))}
</div>
</div>
{profiles.visible && profiles.items.length > 0 && (
<div
className="grid gap-x-4 gap-y-1 text-right"
style={{ gridTemplateColumns: `repeat(${profiles.columns}, auto)` }}
>
{profiles.items
.filter((item) => item.visible)
.map((item) => (
<div key={item.id} className="flex items-center gap-x-2">
<Link
url={item.url}
label={item.username}
className="text-sm"
icon={
<img
className="ph"
width={fontSize}
height={fontSize}
alt={item.network}
src={`https://cdn.simpleicons.org/${item.icon}`}
/>
}
/>
</div>
))}
</div>
)}
</div>
);
};
const Summary = () => {
const section = useArtboardStore((state) => state.resume.sections.summary);
if (!section.visible || isEmptyString(section.content)) return null;
return (
<section id={section.id}>
<h4 className="font-bold text-primary">{section.name}</h4>
<div
className="wysiwyg"
style={{ columns: section.columns }}
dangerouslySetInnerHTML={{ __html: section.content }}
/>
</section>
);
};
type RatingProps = { level: number };
const Rating = ({ level }: RatingProps) => (
<div className="flex items-center gap-x-1.5">
{Array.from({ length: 5 }).map((_, index) => (
<div
key={index}
className={cn("h-3 w-3 rounded border-2 border-primary", level > index && "bg-primary")}
/>
))}
</div>
);
type LinkProps = {
url: URL;
icon?: React.ReactNode;
label?: string;
className?: string;
};
const Link = ({ url, icon, label, className }: LinkProps) => {
if (!isUrl(url.href)) return null;
return (
<div className="flex items-center gap-x-1.5">
{icon ?? <i className="ph ph-bold ph-link text-primary" />}
<a
href={url.href}
target="_blank"
rel="noreferrer noopener nofollow"
className={cn("inline-block", className)}
>
{label || url.label || url.href}
</a>
</div>
);
};
type SectionProps<T> = {
section: SectionWithItem<T> | CustomSectionGroup;
children?: (item: T) => React.ReactNode;
className?: string;
urlKey?: keyof T;
levelKey?: keyof T;
summaryKey?: keyof T;
keywordsKey?: keyof T;
};
const Section = <T,>({
section,
children,
className,
urlKey,
levelKey,
summaryKey,
keywordsKey,
}: SectionProps<T>) => {
if (!section.visible || !section.items.length) return null;
return (
<section id={section.id} className="grid">
<h4 className="font-bold text-primary">{section.name}</h4>
<div
className="grid gap-x-6 gap-y-3"
style={{ gridTemplateColumns: `repeat(${section.columns}, 1fr)` }}
>
{section.items
.filter((item) => item.visible)
.map((item) => {
const url = (urlKey && get(item, urlKey)) as URL | undefined;
const level = (levelKey && get(item, levelKey, 0)) as number | undefined;
const summary = (summaryKey && get(item, summaryKey, "")) as string | undefined;
const keywords = (keywordsKey && get(item, keywordsKey, [])) as string[] | undefined;
return (
<div key={item.id} className={cn("space-y-2", className)}>
<div>
{children?.(item as T)}
{url !== undefined && <Link url={url} />}
</div>
{summary !== undefined && !isEmptyString(summary) && (
<div className="wysiwyg" dangerouslySetInnerHTML={{ __html: summary }} />
)}
{level !== undefined && level > 0 && <Rating level={level} />}
{keywords !== undefined && keywords.length > 0 && (
<p className="text-sm">{keywords.join(", ")}</p>
)}
</div>
);
})}
</div>
</section>
);
};
const Experience = () => {
const section = useArtboardStore((state) => state.resume.sections.experience);
return (
<Section<Experience> section={section} urlKey="url" summaryKey="summary">
{(item) => (
<div className="flex items-center justify-between">
<div className="text-left">
<div className="font-bold">{item.company}</div>
<div>{item.position}</div>
</div>
<div className="shrink-0 text-right">
<div className="font-bold">{item.date}</div>
<div>{item.location}</div>
</div>
</div>
)}
</Section>
);
};
const Education = () => {
const section = useArtboardStore((state) => state.resume.sections.education);
return (
<Section<Education> section={section} urlKey="url" summaryKey="summary">
{(item) => (
<div className="flex items-center justify-between">
<div className="text-left">
<div className="font-bold">{item.institution}</div>
<div>{item.area}</div>
<div>{item.score}</div>
</div>
<div className="shrink-0 text-right">
<div className="font-bold">{item.date}</div>
<div>{item.studyType}</div>
</div>
</div>
)}
</Section>
);
};
const Awards = () => {
const section = useArtboardStore((state) => state.resume.sections.awards);
return (
<Section<Award> section={section} urlKey="url" summaryKey="summary">
{(item) => (
<div className="flex items-center justify-between">
<div className="text-left">
<div className="font-bold">{item.title}</div>
<div>{item.awarder}</div>
</div>
<div className="shrink-0 text-right">
<div className="font-bold">{item.date}</div>
</div>
</div>
)}
</Section>
);
};
const Certifications = () => {
const section = useArtboardStore((state) => state.resume.sections.certifications);
return (
<Section<Certification> section={section} urlKey="url" summaryKey="summary">
{(item) => (
<div className="flex items-center justify-between">
<div className="text-left">
<div className="font-bold">{item.name}</div>
<div>{item.issuer}</div>
</div>
<div className="shrink-0 text-right">
<div className="font-bold">{item.date}</div>
</div>
</div>
)}
</Section>
);
};
const Skills = () => {
const section = useArtboardStore((state) => state.resume.sections.skills);
return (
<Section<Skill> section={section} levelKey="level" keywordsKey="keywords">
{(item) => (
<div>
<div className="font-bold">{item.name}</div>
<div>{item.description}</div>
</div>
)}
</Section>
);
};
const Interests = () => {
const section = useArtboardStore((state) => state.resume.sections.interests);
return (
<Section<Interest> section={section} keywordsKey="keywords" className="space-y-0.5">
{(item) => <div className="font-bold">{item.name}</div>}
</Section>
);
};
const Publications = () => {
const section = useArtboardStore((state) => state.resume.sections.publications);
return (
<Section<Publication> section={section} urlKey="url" summaryKey="summary">
{(item) => (
<div className="flex items-center justify-between">
<div className="text-left">
<div className="font-bold">{item.name}</div>
<div>{item.publisher}</div>
</div>
<div className="shrink-0 text-right">
<div className="font-bold">{item.date}</div>
</div>
</div>
)}
</Section>
);
};
const Volunteer = () => {
const section = useArtboardStore((state) => state.resume.sections.volunteer);
return (
<Section<Volunteer> section={section} urlKey="url" summaryKey="summary">
{(item) => (
<div className="flex items-center justify-between">
<div className="text-left">
<div className="font-bold">{item.organization}</div>
<div>{item.position}</div>
</div>
<div className="shrink-0 text-right">
<div className="font-bold">{item.date}</div>
<div>{item.location}</div>
</div>
</div>
)}
</Section>
);
};
const Languages = () => {
const section = useArtboardStore((state) => state.resume.sections.languages);
return (
<Section<Language> section={section} levelKey="level">
{(item) => (
<div className="space-y-0.5">
<div className="font-bold">{item.name}</div>
<div>{item.description}</div>
</div>
)}
</Section>
);
};
const Projects = () => {
const section = useArtboardStore((state) => state.resume.sections.projects);
return (
<Section<Project> section={section} urlKey="url" summaryKey="summary" keywordsKey="keywords">
{(item) => (
<div className="flex items-center justify-between">
<div className="text-left">
<div className="font-bold">{item.name}</div>
<div>{item.description}</div>
</div>
<div className="shrink-0 text-right">
<div className="font-bold">{item.date}</div>
</div>
</div>
)}
</Section>
);
};
const References = () => {
const section = useArtboardStore((state) => state.resume.sections.references);
return (
<Section<Reference> section={section} urlKey="url" summaryKey="summary">
{(item) => (
<div>
<div className="font-bold">{item.name}</div>
<div>{item.description}</div>
</div>
)}
</Section>
);
};
const Custom = ({ id }: { id: string }) => {
const section = useArtboardStore((state) => state.resume.sections.custom[id]);
return (
<Section<CustomSection>
section={section}
urlKey="url"
summaryKey="summary"
keywordsKey="keywords"
>
{(item) => (
<div className="flex items-center justify-between">
<div className="text-left">
<div className="font-bold">{item.name}</div>
<div>{item.description}</div>
</div>
<div className="shrink-0 text-right">
<div className="font-bold">{item.date}</div>
<div>{item.location}</div>
</div>
</div>
)}
</Section>
);
};
const mapSectionToComponent = (section: SectionKey) => {
switch (section) {
case "summary":
return <Summary />;
case "experience":
return <Experience />;
case "education":
return <Education />;
case "awards":
return <Awards />;
case "certifications":
return <Certifications />;
case "skills":
return <Skills />;
case "interests":
return <Interests />;
case "publications":
return <Publications />;
case "volunteer":
return <Volunteer />;
case "languages":
return <Languages />;
case "projects":
return <Projects />;
case "references":
return <References />;
default:
if (section.startsWith("custom.")) return <Custom id={section.split(".")[1]} />;
return null;
}
};
export const Onyx = ({ columns, isFirstPage = false }: TemplateProps) => {
const [main, sidebar] = columns;
return (
<div className="space-y-4">
{isFirstPage && <Header />}
<div className="space-y-4">
{main.map((section) => (
<Fragment key={section}>{mapSectionToComponent(section)}</Fragment>
))}
{sidebar.map((section) => (
<Fragment key={section}>{mapSectionToComponent(section)}</Fragment>
))}
</div>
</div>
);
};

View File

@ -0,0 +1,547 @@
import {
Award,
Certification,
CustomSection,
CustomSectionGroup,
Education,
Experience,
Interest,
Language,
Profile,
Project,
Publication,
Reference,
SectionKey,
SectionWithItem,
Skill,
URL,
Volunteer,
} from "@reactive-resume/schema";
import { cn, isEmptyString, isUrl } from "@reactive-resume/utils";
import get from "lodash.get";
import { Fragment } from "react";
import { Picture } from "../components/picture";
import { useArtboardStore } from "../store/artboard";
import { TemplateProps } from "../types/template";
const Header = () => {
const basics = useArtboardStore((state) => state.resume.basics);
const borderRadius = useArtboardStore((state) => state.resume.basics.picture.borderRadius);
return (
<div
className="summary group bg-primary px-6 pb-7 pt-6 text-background"
style={{ borderRadius: `calc(${borderRadius}px - 2px)` }}
>
<div className="col-span-2 space-y-2.5">
<div>
<h2 className="text-2xl font-bold">{basics.name}</h2>
<p>{basics.headline}</p>
</div>
<hr className="border-background opacity-50" />
<div className="flex flex-wrap items-center gap-x-2 gap-y-0.5 text-sm">
{basics.location && (
<>
<div className="flex items-center gap-x-1.5">
<i className="ph ph-bold ph-map-pin" />
<div>{basics.location}</div>
</div>
<div className="h-1 w-1 rounded-full bg-background last:hidden" />
</>
)}
{basics.phone && (
<>
<div className="flex items-center gap-x-1.5">
<i className="ph ph-bold ph-phone" />
<a href={`tel:${basics.phone}`} target="_blank" rel="noreferrer">
{basics.phone}
</a>
</div>
<div className="h-1 w-1 rounded-full bg-background last:hidden" />
</>
)}
{basics.email && (
<>
<div className="flex items-center gap-x-1.5">
<i className="ph ph-bold ph-at" />
<a href={`mailto:${basics.email}`} target="_blank" rel="noreferrer">
{basics.email}
</a>
</div>
<div className="h-1 w-1 rounded-full bg-background last:hidden" />
</>
)}
{isUrl(basics.url.href) && (
<>
<Link url={basics.url} />
<div className="h-1 w-1 rounded-full bg-background last:hidden" />
</>
)}
{basics.customFields.map((item) => (
<Fragment key={item.id}>
<div className="flex items-center gap-x-1.5">
<i className={cn(`ph ph-bold ph-${item.icon}`)} />
<span>{[item.name, item.value].filter(Boolean).join(": ")}</span>
</div>
<div className="h-1 w-1 rounded-full bg-background last:hidden" />
</Fragment>
))}
</div>
</div>
</div>
);
};
const Summary = () => {
const section = useArtboardStore((state) => state.resume.sections.summary);
if (!section.visible || isEmptyString(section.content)) return null;
return (
<section id={section.id}>
<h4 className="mb-2 border-b border-primary text-base font-bold">{section.name}</h4>
<div
className="wysiwyg"
style={{ columns: section.columns }}
dangerouslySetInnerHTML={{ __html: section.content }}
/>
</section>
);
};
type RatingProps = { level: number };
const Rating = ({ level }: RatingProps) => (
<div className="flex items-center gap-x-1.5">
{Array.from({ length: 5 }).map((_, index) => (
<i
key={index}
className={cn(
"ph ph-diamond text-primary",
level > index && "ph-fill",
level <= index && "ph-bold",
)}
/>
// <div
// key={index}
// className={cn("h-2 w-4 border border-primary", level > index && "bg-primary")}
// />
))}
</div>
);
type LinkProps = {
url: URL;
icon?: React.ReactNode;
label?: string;
className?: string;
};
const Link = ({ url, icon, label, className }: LinkProps) => {
if (!isUrl(url.href)) return null;
return (
<div className="flex items-center gap-x-1.5">
{icon ?? <i className="ph ph-bold ph-link text-primary group-[.summary]:text-background" />}
<a
href={url.href}
target="_blank"
rel="noreferrer noopener nofollow"
className={cn("inline-block", className)}
>
{label || url.label || url.href}
</a>
</div>
);
};
type SectionProps<T> = {
section: SectionWithItem<T> | CustomSectionGroup;
children?: (item: T) => React.ReactNode;
className?: string;
urlKey?: keyof T;
levelKey?: keyof T;
summaryKey?: keyof T;
keywordsKey?: keyof T;
};
const Section = <T,>({
section,
children,
className,
urlKey,
levelKey,
summaryKey,
keywordsKey,
}: SectionProps<T>) => {
if (!section.visible || !section.items.length) return null;
return (
<section id={section.id} className="grid">
<h4 className="mb-2 border-b border-primary text-base font-bold">{section.name}</h4>
<div
className="grid gap-x-6 gap-y-3"
style={{ gridTemplateColumns: `repeat(${section.columns}, 1fr)` }}
>
{section.items
.filter((item) => item.visible)
.map((item) => {
const url = (urlKey && get(item, urlKey)) as URL | undefined;
const level = (levelKey && get(item, levelKey, 0)) as number | undefined;
const summary = (summaryKey && get(item, summaryKey, "")) as string | undefined;
const keywords = (keywordsKey && get(item, keywordsKey, [])) as string[] | undefined;
return (
<div key={item.id} className={cn("space-y-2", className)}>
<div>
{children?.(item as T)}
{url !== undefined && <Link url={url} />}
</div>
{summary !== undefined && !isEmptyString(summary) && (
<div className="wysiwyg" dangerouslySetInnerHTML={{ __html: summary }} />
)}
{level !== undefined && level > 0 && <Rating level={level} />}
{keywords !== undefined && keywords.length > 0 && (
<p className="text-sm">{keywords.join(", ")}</p>
)}
</div>
);
})}
</div>
</section>
);
};
const Profiles = () => {
const section = useArtboardStore((state) => state.resume.sections.profiles);
const fontSize = useArtboardStore((state) => state.resume.metadata.typography.font.size);
return (
<Section<Profile> section={section}>
{(item) => (
<div>
{isUrl(item.url.href) ? (
<Link
url={item.url}
label={item.username}
icon={
<img
className="ph"
width={fontSize}
height={fontSize}
alt={item.network}
src={`https://cdn.simpleicons.org/${item.icon}`}
/>
}
/>
) : (
<p>{item.username}</p>
)}
<p className="text-sm">{item.network}</p>
</div>
)}
</Section>
);
};
const Experience = () => {
const section = useArtboardStore((state) => state.resume.sections.experience);
return (
<Section<Experience> section={section} urlKey="url" summaryKey="summary">
{(item) => (
<div className="flex items-center justify-between group-[.sidebar]:flex-col group-[.sidebar]:items-start">
<div className="text-left">
<div className="font-bold">{item.company}</div>
<div>{item.position}</div>
</div>
<div className="shrink-0 text-right group-[.sidebar]:text-left">
<div className="font-bold">{item.date}</div>
<div>{item.location}</div>
</div>
</div>
)}
</Section>
);
};
const Education = () => {
const section = useArtboardStore((state) => state.resume.sections.education);
return (
<Section<Education> section={section} urlKey="url" summaryKey="summary">
{(item) => (
<div className="flex items-center justify-between group-[.sidebar]:flex-col group-[.sidebar]:items-start">
<div className="text-left">
<div className="font-bold">{item.institution}</div>
<div>{item.area}</div>
<div>{item.score}</div>
</div>
<div className="shrink-0 text-right group-[.sidebar]:text-left">
<div className="font-bold">{item.date}</div>
<div>{item.studyType}</div>
</div>
</div>
)}
</Section>
);
};
const Awards = () => {
const section = useArtboardStore((state) => state.resume.sections.awards);
return (
<Section<Award> section={section} urlKey="url" summaryKey="summary">
{(item) => (
<div className="flex items-center justify-between group-[.sidebar]:flex-col group-[.sidebar]:items-start">
<div className="text-left">
<div className="font-bold">{item.title}</div>
<div>{item.awarder}</div>
</div>
<div className="shrink-0 text-right group-[.sidebar]:text-left">
<div className="font-bold">{item.date}</div>
</div>
</div>
)}
</Section>
);
};
const Certifications = () => {
const section = useArtboardStore((state) => state.resume.sections.certifications);
return (
<Section<Certification> section={section} urlKey="url" summaryKey="summary">
{(item) => (
<div className="flex items-center justify-between group-[.sidebar]:flex-col group-[.sidebar]:items-start">
<div className="text-left">
<div className="font-bold">{item.name}</div>
<div>{item.issuer}</div>
</div>
<div className="shrink-0 text-right group-[.sidebar]:text-left">
<div className="font-bold">{item.date}</div>
</div>
</div>
)}
</Section>
);
};
const Skills = () => {
const section = useArtboardStore((state) => state.resume.sections.skills);
return (
<Section<Skill> section={section} levelKey="level" keywordsKey="keywords">
{(item) => (
<div>
<div className="font-bold">{item.name}</div>
<div>{item.description}</div>
</div>
)}
</Section>
);
};
const Interests = () => {
const section = useArtboardStore((state) => state.resume.sections.interests);
return (
<Section<Interest> section={section} className="space-y-1" keywordsKey="keywords">
{(item) => <div className="font-bold">{item.name}</div>}
</Section>
);
};
const Publications = () => {
const section = useArtboardStore((state) => state.resume.sections.publications);
return (
<Section<Publication> section={section} urlKey="url" summaryKey="summary">
{(item) => (
<div className="flex items-center justify-between group-[.sidebar]:flex-col group-[.sidebar]:items-start">
<div className="text-left">
<div className="font-bold">{item.name}</div>
<div>{item.publisher}</div>
</div>
<div className="shrink-0 text-right group-[.sidebar]:text-left">
<div className="font-bold">{item.date}</div>
</div>
</div>
)}
</Section>
);
};
const Volunteer = () => {
const section = useArtboardStore((state) => state.resume.sections.volunteer);
return (
<Section<Volunteer> section={section} urlKey="url" summaryKey="summary">
{(item) => (
<div className="flex items-center justify-between group-[.sidebar]:flex-col group-[.sidebar]:items-start">
<div className="text-left">
<div className="font-bold">{item.organization}</div>
<div>{item.position}</div>
</div>
<div className="shrink-0 text-right group-[.sidebar]:text-left">
<div className="font-bold">{item.date}</div>
<div>{item.location}</div>
</div>
</div>
)}
</Section>
);
};
const Languages = () => {
const section = useArtboardStore((state) => state.resume.sections.languages);
return (
<Section<Language> section={section} levelKey="level">
{(item) => (
<div>
<div className="font-bold">{item.name}</div>
<div>{item.description}</div>
</div>
)}
</Section>
);
};
const Projects = () => {
const section = useArtboardStore((state) => state.resume.sections.projects);
return (
<Section<Project> section={section} urlKey="url" summaryKey="summary" keywordsKey="keywords">
{(item) => (
<div className="flex items-center justify-between group-[.sidebar]:flex-col group-[.sidebar]:items-start">
<div className="text-left">
<div className="font-bold">{item.name}</div>
<div>{item.description}</div>
</div>
<div className="shrink-0 text-right group-[.sidebar]:text-left">
<div className="font-bold">{item.date}</div>
</div>
</div>
)}
</Section>
);
};
const References = () => {
const section = useArtboardStore((state) => state.resume.sections.references);
return (
<Section<Reference> section={section} urlKey="url" summaryKey="summary">
{(item) => (
<div>
<div className="font-bold">{item.name}</div>
<div>{item.description}</div>
</div>
)}
</Section>
);
};
const Custom = ({ id }: { id: string }) => {
const section = useArtboardStore((state) => state.resume.sections.custom[id]);
return (
<Section<CustomSection>
section={section}
urlKey="url"
summaryKey="summary"
keywordsKey="keywords"
>
{(item) => (
<div className="flex items-center justify-between group-[.sidebar]:flex-col group-[.sidebar]:items-start">
<div className="text-left">
<div className="font-bold">{item.name}</div>
<div>{item.description}</div>
</div>
<div className="shrink-0 text-right group-[.sidebar]:text-left">
<div className="font-bold">{item.date}</div>
<div>{item.location}</div>
</div>
</div>
)}
</Section>
);
};
const mapSectionToComponent = (section: SectionKey) => {
switch (section) {
case "profiles":
return <Profiles />;
case "summary":
return <Summary />;
case "experience":
return <Experience />;
case "education":
return <Education />;
case "awards":
return <Awards />;
case "certifications":
return <Certifications />;
case "skills":
return <Skills />;
case "interests":
return <Interests />;
case "publications":
return <Publications />;
case "volunteer":
return <Volunteer />;
case "languages":
return <Languages />;
case "projects":
return <Projects />;
case "references":
return <References />;
default:
if (section.startsWith("custom.")) return <Custom id={section.split(".")[1]} />;
return null;
}
};
export const Pikachu = ({ columns, isFirstPage = false }: TemplateProps) => {
const [main, sidebar] = columns;
return (
<div className="space-y-4">
<div className="grid grid-cols-3 space-x-6">
<div className="sidebar group space-y-4">
{isFirstPage && <Picture className="w-full !max-w-none" />}
{sidebar.map((section) => (
<Fragment key={section}>{mapSectionToComponent(section)}</Fragment>
))}
</div>
<div className="main group col-span-2 space-y-4">
{isFirstPage && <Header />}
{main.map((section) => (
<Fragment key={section}>{mapSectionToComponent(section)}</Fragment>
))}
</div>
</div>
</div>
);
};

View File

@ -0,0 +1,513 @@
import {
Award,
Certification,
CustomSection,
CustomSectionGroup,
Education,
Experience,
Interest,
Language,
Profile,
Project,
Publication,
Reference,
SectionKey,
SectionWithItem,
Skill,
URL,
Volunteer,
} from "@reactive-resume/schema";
import { cn, isEmptyString, isUrl } from "@reactive-resume/utils";
import get from "lodash.get";
import { Fragment } from "react";
import { Picture } from "../components/picture";
import { useArtboardStore } from "../store/artboard";
import { TemplateProps } from "../types/template";
const Header = () => {
const basics = useArtboardStore((state) => state.resume.basics);
return (
<div className="flex items-center space-x-4">
<Picture />
<div className="space-y-0.5">
<div className="text-2xl font-bold">{basics.name}</div>
<div className="text-base">{basics.headline}</div>
<div className="flex flex-wrap items-center gap-x-2 gap-y-0.5 text-sm">
{basics.location && (
<div className="flex items-center gap-x-1.5 border-r pr-2 last:border-r-0 last:pr-0">
<i className="ph ph-bold ph-map-pin text-primary" />
<div>{basics.location}</div>
</div>
)}
{basics.phone && (
<div className="flex items-center gap-x-1.5 border-r pr-2 last:border-r-0 last:pr-0">
<i className="ph ph-bold ph-phone text-primary" />
<a href={`tel:${basics.phone}`} target="_blank" rel="noreferrer">
{basics.phone}
</a>
</div>
)}
{basics.email && (
<div className="flex items-center gap-x-1.5 border-r pr-2 last:border-r-0 last:pr-0">
<i className="ph ph-bold ph-at text-primary" />
<a href={`mailto:${basics.email}`} target="_blank" rel="noreferrer">
{basics.email}
</a>
</div>
)}
<Link url={basics.url} />
{basics.customFields.map((item) => (
<div
key={item.id}
className="flex items-center gap-x-1.5 border-r pr-2 last:border-r-0 last:pr-0"
>
<i className={cn(`ph ph-bold ph-${item.icon}`, "text-primary")} />
<span>{[item.name, item.value].filter(Boolean).join(": ")}</span>
</div>
))}
</div>
</div>
</div>
);
};
const Summary = () => {
const section = useArtboardStore((state) => state.resume.sections.summary);
if (!section.visible || isEmptyString(section.content)) return null;
return (
<section id={section.id}>
<h4 className="mb-2 border-b pb-0.5 text-sm font-bold">{section.name}</h4>
<div
className="wysiwyg"
style={{ columns: section.columns }}
dangerouslySetInnerHTML={{ __html: section.content }}
/>
</section>
);
};
type RatingProps = { level: number };
const Rating = ({ level }: RatingProps) => (
<div className="flex items-center gap-x-1.5">
{Array.from({ length: 5 }).map((_, index) => (
<div
key={index}
className={cn("h-2 w-2 rounded-full border border-primary", level > index && "bg-primary")}
/>
))}
</div>
);
type LinkProps = {
url: URL;
icon?: React.ReactNode;
label?: string;
className?: string;
};
const Link = ({ url, icon, label, className }: LinkProps) => {
if (!isUrl(url.href)) return null;
return (
<div className="flex items-center gap-x-1.5">
{icon ?? <i className="ph ph-bold ph-link text-primary" />}
<a
href={url.href}
target="_blank"
rel="noreferrer noopener nofollow"
className={cn("inline-block", className)}
>
{label || url.label || url.href}
</a>
</div>
);
};
type SectionProps<T> = {
section: SectionWithItem<T> | CustomSectionGroup;
children?: (item: T) => React.ReactNode;
className?: string;
urlKey?: keyof T;
levelKey?: keyof T;
summaryKey?: keyof T;
keywordsKey?: keyof T;
};
const Section = <T,>({
section,
children,
className,
urlKey,
levelKey,
summaryKey,
keywordsKey,
}: SectionProps<T>) => {
if (!section.visible || !section.items.length) return null;
return (
<section id={section.id} className="grid">
<h4 className="mb-2 border-b pb-0.5 text-sm font-bold">{section.name}</h4>
<div
className="grid gap-x-6 gap-y-3"
style={{ gridTemplateColumns: `repeat(${section.columns}, 1fr)` }}
>
{section.items
.filter((item) => item.visible)
.map((item) => {
const url = (urlKey && get(item, urlKey)) as URL | undefined;
const level = (levelKey && get(item, levelKey, 0)) as number | undefined;
const summary = (summaryKey && get(item, summaryKey, "")) as string | undefined;
const keywords = (keywordsKey && get(item, keywordsKey, [])) as string[] | undefined;
return (
<div key={item.id} className={cn("space-y-2", className)}>
<div>
{children?.(item as T)}
{url !== undefined && <Link url={url} />}
</div>
{summary !== undefined && !isEmptyString(summary) && (
<div className="wysiwyg" dangerouslySetInnerHTML={{ __html: summary }} />
)}
{level !== undefined && level > 0 && <Rating level={level} />}
{keywords !== undefined && keywords.length > 0 && (
<p className="text-sm">{keywords.join(", ")}</p>
)}
</div>
);
})}
</div>
</section>
);
};
const Profiles = () => {
const section = useArtboardStore((state) => state.resume.sections.profiles);
const fontSize = useArtboardStore((state) => state.resume.metadata.typography.font.size);
return (
<Section<Profile> section={section}>
{(item) => (
<div>
{isUrl(item.url.href) ? (
<Link
url={item.url}
label={item.username}
icon={
<img
className="ph"
width={fontSize}
height={fontSize}
alt={item.network}
src={`https://cdn.simpleicons.org/${item.icon}`}
/>
}
/>
) : (
<p>{item.username}</p>
)}
<p className="text-sm">{item.network}</p>
</div>
)}
</Section>
);
};
const Experience = () => {
const section = useArtboardStore((state) => state.resume.sections.experience);
return (
<Section<Experience> section={section} urlKey="url" summaryKey="summary">
{(item) => (
<div className="flex items-center justify-between">
<div className="text-left">
<div className="font-bold">{item.company}</div>
<div>{item.position}</div>
</div>
<div className="shrink-0 text-right">
<div className="font-bold">{item.date}</div>
<div>{item.location}</div>
</div>
</div>
)}
</Section>
);
};
const Education = () => {
const section = useArtboardStore((state) => state.resume.sections.education);
return (
<Section<Education> section={section} urlKey="url" summaryKey="summary">
{(item) => (
<div className="flex items-center justify-between">
<div className="text-left">
<div className="font-bold">{item.institution}</div>
<div>{item.area}</div>
<div>{item.score}</div>
</div>
<div className="shrink-0 text-right">
<div className="font-bold">{item.date}</div>
<div>{item.studyType}</div>
</div>
</div>
)}
</Section>
);
};
const Awards = () => {
const section = useArtboardStore((state) => state.resume.sections.awards);
return (
<Section<Award> section={section} urlKey="url" summaryKey="summary">
{(item) => (
<div className="flex items-center justify-between">
<div className="text-left">
<div className="font-bold">{item.title}</div>
<div>{item.awarder}</div>
</div>
<div className="shrink-0 text-right">
<div className="font-bold">{item.date}</div>
</div>
</div>
)}
</Section>
);
};
const Certifications = () => {
const section = useArtboardStore((state) => state.resume.sections.certifications);
return (
<Section<Certification> section={section} urlKey="url" summaryKey="summary">
{(item) => (
<div className="flex items-center justify-between">
<div className="text-left">
<div className="font-bold">{item.name}</div>
<div>{item.issuer}</div>
</div>
<div className="shrink-0 text-right">
<div className="font-bold">{item.date}</div>
</div>
</div>
)}
</Section>
);
};
const Skills = () => {
const section = useArtboardStore((state) => state.resume.sections.skills);
return (
<Section<Skill> section={section} levelKey="level" keywordsKey="keywords">
{(item) => (
<div>
<div className="font-bold">{item.name}</div>
<div>{item.description}</div>
</div>
)}
</Section>
);
};
const Interests = () => {
const section = useArtboardStore((state) => state.resume.sections.interests);
return (
<Section<Interest> section={section} keywordsKey="keywords" className="space-y-0.5">
{(item) => <div className="font-bold">{item.name}</div>}
</Section>
);
};
const Publications = () => {
const section = useArtboardStore((state) => state.resume.sections.publications);
return (
<Section<Publication> section={section} urlKey="url" summaryKey="summary">
{(item) => (
<div className="flex items-center justify-between">
<div className="text-left">
<div className="font-bold">{item.name}</div>
<div>{item.publisher}</div>
</div>
<div className="shrink-0 text-right">
<div className="font-bold">{item.date}</div>
</div>
</div>
)}
</Section>
);
};
const Volunteer = () => {
const section = useArtboardStore((state) => state.resume.sections.volunteer);
return (
<Section<Volunteer> section={section} urlKey="url" summaryKey="summary">
{(item) => (
<div className="flex items-center justify-between">
<div className="text-left">
<div className="font-bold">{item.organization}</div>
<div>{item.position}</div>
</div>
<div className="shrink-0 text-right">
<div className="font-bold">{item.date}</div>
<div>{item.location}</div>
</div>
</div>
)}
</Section>
);
};
const Languages = () => {
const section = useArtboardStore((state) => state.resume.sections.languages);
return (
<Section<Language> section={section} levelKey="level">
{(item) => (
<div className="space-y-0.5">
<div className="font-bold">{item.name}</div>
<div>{item.description}</div>
</div>
)}
</Section>
);
};
const Projects = () => {
const section = useArtboardStore((state) => state.resume.sections.projects);
return (
<Section<Project> section={section} urlKey="url" summaryKey="summary" keywordsKey="keywords">
{(item) => (
<div className="flex items-center justify-between">
<div className="text-left">
<div className="font-bold">{item.name}</div>
<div>{item.description}</div>
</div>
<div className="shrink-0 text-right">
<div className="font-bold">{item.date}</div>
</div>
</div>
)}
</Section>
);
};
const References = () => {
const section = useArtboardStore((state) => state.resume.sections.references);
return (
<Section<Reference> section={section} urlKey="url" summaryKey="summary">
{(item) => (
<div>
<div className="font-bold">{item.name}</div>
<div>{item.description}</div>
</div>
)}
</Section>
);
};
const Custom = ({ id }: { id: string }) => {
const section = useArtboardStore((state) => state.resume.sections.custom[id]);
return (
<Section<CustomSection>
section={section}
urlKey="url"
summaryKey="summary"
keywordsKey="keywords"
>
{(item) => (
<div className="flex items-center justify-between">
<div className="text-left">
<div className="font-bold">{item.name}</div>
<div>{item.description}</div>
</div>
<div className="shrink-0 text-right">
<div className="font-bold">{item.date}</div>
<div>{item.location}</div>
</div>
</div>
)}
</Section>
);
};
const mapSectionToComponent = (section: SectionKey) => {
switch (section) {
case "profiles":
return <Profiles />;
case "summary":
return <Summary />;
case "experience":
return <Experience />;
case "education":
return <Education />;
case "awards":
return <Awards />;
case "certifications":
return <Certifications />;
case "skills":
return <Skills />;
case "interests":
return <Interests />;
case "publications":
return <Publications />;
case "volunteer":
return <Volunteer />;
case "languages":
return <Languages />;
case "projects":
return <Projects />;
case "references":
return <References />;
default:
if (section.startsWith("custom.")) return <Custom id={section.split(".")[1]} />;
return null;
}
};
export const Rhyhorn = ({ columns, isFirstPage = false }: TemplateProps) => {
const [main, sidebar] = columns;
return (
<div className="space-y-4">
{isFirstPage && <Header />}
<div className="space-y-4">
{main.map((section) => (
<Fragment key={section}>{mapSectionToComponent(section)}</Fragment>
))}
{sidebar.map((section) => (
<Fragment key={section}>{mapSectionToComponent(section)}</Fragment>
))}
</div>
</div>
);
};

View File

@ -0,0 +1,11 @@
import { SectionKey } from "@reactive-resume/schema";
export type TemplateProps = {
columns: SectionKey[][];
isFirstPage?: boolean;
};
export type BaseProps = {
children?: React.ReactNode;
className?: string;
};

View File

@ -0,0 +1,28 @@
const { createGlobPatternsForDependencies } = require("@nx/react/tailwind");
const { join } = require("path");
/** @type {import('tailwindcss').Config} */
module.exports = {
darkMode: "class",
content: [
join(__dirname, "{src,pages,components,app}/**/*!(*.stories|*.spec).{ts,tsx,html}"),
...createGlobPatternsForDependencies(__dirname),
],
theme: {
extend: {
colors: {
text: "var(--color-text)",
primary: "var(--color-primary)",
background: "var(--color-background)",
},
lineHeight: {
tight: "calc(var(--line-height) - 0.5)",
snug: "calc(var(--line-height) - 0.3)",
normal: "var(--line-height)",
relaxed: "calc(var(--line-height) + 0.3)",
loose: "calc(var(--line-height) + 0.5)",
},
},
},
plugins: [require("@tailwindcss/typography")],
};

View File

@ -0,0 +1,23 @@
{
"extends": "./tsconfig.json",
"compilerOptions": {
"outDir": "../../dist/out-tsc",
"types": [
"node",
"@nx/react/typings/cssmodule.d.ts",
"@nx/react/typings/image.d.ts",
"vite/client"
]
},
"exclude": [
"src/**/*.spec.ts",
"src/**/*.test.ts",
"src/**/*.spec.tsx",
"src/**/*.test.tsx",
"src/**/*.spec.js",
"src/**/*.test.js",
"src/**/*.spec.jsx",
"src/**/*.test.jsx"
],
"include": ["src/**/*.js", "src/**/*.jsx", "src/**/*.ts", "src/**/*.tsx"]
}

View File

@ -0,0 +1,18 @@
{
"compilerOptions": {
"jsx": "react-jsx",
"allowJs": false,
"esModuleInterop": false,
"allowSyntheticDefaultImports": true,
"strict": true,
"types": ["vite/client"]
},
"files": [],
"include": [],
"references": [
{
"path": "./tsconfig.app.json"
}
],
"extends": "../../tsconfig.base.json"
}

View File

@ -0,0 +1,29 @@
/// <reference types='vitest' />
import { nxViteTsPaths } from "@nx/vite/plugins/nx-tsconfig-paths.plugin";
import react from "@vitejs/plugin-react-swc";
import { defineConfig, searchForWorkspaceRoot, splitVendorChunkPlugin } from "vite";
export default defineConfig({
base: "/artboard/",
cacheDir: "../../node_modules/.vite/artboard",
build: {
sourcemap: true,
},
server: {
host: true,
port: +(process.env.__DEV__ARTBOARD_PORT ?? 6173),
fs: { allow: [searchForWorkspaceRoot(process.cwd())] },
},
plugins: [react(), nxViteTsPaths(), splitVendorChunkPlugin()],
resolve: {
alias: {
"@/artboard/": `${searchForWorkspaceRoot(process.cwd())}/apps/artboard/src/`,
},
},
});

View File

@ -0,0 +1,57 @@
{
"extends": ["plugin:@nx/react", "../../.eslintrc.json"],
"ignorePatterns": ["!**/*"],
"overrides": [
{
"files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
"extends": [
"plugin:tailwindcss/recommended",
"plugin:@tanstack/eslint-plugin-query/recommended"
],
"settings": {
"tailwindcss": {
"callees": ["cn", "clsx", "cva"],
"config": "tailwind.config.js"
}
},
"plugins": ["lingui"],
"rules": {
// react-hooks
"react-hooks/exhaustive-deps": "off",
// lingui
"lingui/no-unlocalized-strings": [
2,
{
"ignoreFunction": ["cn"],
"ignoreAttribute": ["alt"]
}
],
"lingui/t-call-in-function": 2,
"lingui/no-single-variables-to-translate": 2,
"lingui/no-expression-in-message": 2,
"lingui/no-single-tag-to-translate": 2,
"lingui/no-trans-inside-trans": 2,
"lingui/text-restrictions": [
2,
{
"rules": [
{
"patterns": ["''", "\"", "", "“"],
"message": "This string contains forbidden characters"
}
]
}
]
}
},
{
"files": ["*.ts", "*.tsx"],
"rules": {}
},
{
"files": ["*.js", "*.jsx"],
"rules": {}
}
]
}

44
apps/client/index.html Normal file
View File

@ -0,0 +1,44 @@
<!doctype html>
<html lang="en-US" translate="no">
<head>
<base href="/" />
<!-- SEO -->
<title>Reactive Resume - A free and open-source resume builder</title>
<meta
name="description"
content="A free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
/>
<!-- Meta -->
<meta charset="utf-8" />
<meta name="googlebot" content="notranslate" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<!-- White Flash Prevention Script -->
<script type="text/javascript" src="/scripts/initialize-theme.js"></script>
<!-- Favicon -->
<link
rel="icon"
type="image/svg+xml"
href="/icon/dark.svg"
media="(prefers-color-scheme: light)"
/>
<link
rel="icon"
type="image/svg+xml"
href="/icon/light.svg"
media="(prefers-color-scheme: dark)"
/>
<!-- Styles -->
<link rel="stylesheet" href="/src/styles/main.css" />
</head>
<body class="bg-background text-foreground text-sm antialiased print:bg-white print:m-0">
<div id="root"></div>
<!-- Scripts -->
<script type="module" src="/src/main.tsx"></script>
</body>
</html>

View File

@ -0,0 +1,10 @@
const { join } = require("path");
module.exports = {
plugins: {
"postcss-import": {},
"tailwindcss/nesting": {},
tailwindcss: { config: join(__dirname, "tailwind.config.js") },
autoprefixer: {},
},
};

80
apps/client/project.json Normal file
View File

@ -0,0 +1,80 @@
{
"name": "client",
"$schema": "../../node_modules/nx/schemas/project-schema.json",
"sourceRoot": "apps/client/src",
"projectType": "application",
"targets": {
"build": {
"executor": "@nx/vite:build",
"outputs": ["{options.outputPath}"],
"defaultConfiguration": "production",
"dependsOn": ["^build"],
"options": {
"outputPath": "dist/apps/client"
},
"configurations": {
"development": {
"mode": "development"
},
"production": {
"mode": "production"
}
}
},
"serve": {
"executor": "@nx/vite:dev-server",
"defaultConfiguration": "development",
"options": {
"buildTarget": "client:build",
"proxyConfig": "apps/client/proxy.conf.json"
},
"configurations": {
"development": {
"buildTarget": "client:build:development",
"hmr": true
},
"production": {
"buildTarget": "client:build:production",
"hmr": false
}
}
},
"preview": {
"executor": "@nx/vite:preview-server",
"defaultConfiguration": "development",
"options": {
"buildTarget": "client:build"
},
"configurations": {
"development": {
"buildTarget": "client:build:development"
},
"production": {
"buildTarget": "client:build:production"
}
}
},
"test": {
"executor": "@nx/vite:test",
"outputs": ["{options.reportsDirectory}"],
"options": {
"passWithNoTests": true,
"reportsDirectory": "../../coverage/apps/client"
}
},
"lint": {
"executor": "@nx/eslint:lint",
"outputs": ["{options.outputFile}"],
"options": {
"lintFilePatterns": ["apps/client/**/*.{ts,tsx,js,jsx}"]
}
},
"serve-static": {
"executor": "@nx/web:file-server",
"options": {
"buildTarget": "client:build"
}
}
},
"tags": ["frontend"]
}

View File

@ -0,0 +1,10 @@
{
"/api": {
"target": "http://localhost:3000",
"secure": false
},
"/artboard": {
"target": "http://localhost:6173",
"secure": false
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 363 KiB

View File

@ -0,0 +1,33 @@
<svg width="498" height="151" viewBox="0 0 498 151" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_177_125)">
<path
d="M309.08 117.21C280.235 138.472 238.425 149.816 202.427 149.816C151.952 149.816 106.512 131.147 72.1348 100.098C69.4339 97.6559 71.8539 94.3284 75.095 96.2298C112.195 117.815 158.067 130.801 205.452 130.801C237.409 130.801 272.564 124.19 304.889 110.469C309.772 108.395 313.856 113.667 309.08 117.21Z"
fill="#09090b" />
<path
d="M321.072 103.49C317.399 98.7795 296.699 101.264 287.408 102.366C284.578 102.712 284.146 100.249 286.695 98.477C303.182 86.8739 330.234 90.223 333.389 94.1123C336.543 98.0232 332.567 125.14 317.075 138.083C314.698 140.071 312.429 139.012 313.488 136.376C316.967 127.69 324.767 108.222 321.072 103.49Z"
fill="#09090b" />
<path
d="M288.057 16.5637V5.28474C288.057 3.57776 289.353 2.43258 290.909 2.43258H341.405C343.025 2.43258 344.322 3.59937 344.322 5.28474V14.9432C344.3 16.5637 342.939 18.6813 340.519 22.0304L314.353 59.3894C324.076 59.1517 334.339 60.5994 343.155 65.5691C345.143 66.6926 345.683 68.3348 345.834 69.9554V81.9906C345.834 83.6328 344.019 85.5558 342.118 84.5619C326.582 76.4159 305.947 75.53 288.77 84.6483C287.019 85.599 285.183 83.6976 285.183 82.0554V70.6252C285.183 68.7886 285.204 65.6555 287.041 62.8682L317.356 19.3943H290.974C289.353 19.3943 288.057 18.2491 288.057 16.5637Z"
fill="#09090b" />
<path
d="M103.854 86.9387H88.4916C87.0223 86.8307 85.8555 85.7287 85.7474 84.3242V5.47922C85.7474 3.90188 87.0655 2.64865 88.7076 2.64865H103.033C104.524 2.71343 105.713 3.85866 105.821 5.28474V15.5914H106.102C109.84 5.63045 116.862 0.984887 126.326 0.984887C135.941 0.984887 141.948 5.63045 146.269 15.5914C149.986 5.63045 158.434 0.984887 167.488 0.984887C173.927 0.984887 180.971 3.64258 185.271 9.60619C190.132 16.2396 189.138 25.8765 189.138 34.3249L189.117 84.0865C189.117 85.6639 187.799 86.9387 186.157 86.9387H170.815C169.281 86.8307 168.05 85.599 168.05 84.0865V42.298C168.05 38.9705 168.352 30.6733 167.617 27.5186C166.472 22.2249 163.037 20.7339 158.586 20.7339C154.869 20.7339 150.98 23.2188 149.403 27.1945C147.825 31.1703 147.976 37.8253 147.976 42.298V84.0865C147.976 85.6639 146.658 86.9387 145.016 86.9387H129.675C128.119 86.8307 126.909 85.599 126.909 84.0865L126.888 42.298C126.888 33.5039 128.335 20.5611 117.424 20.5611C106.382 20.5611 106.815 33.1797 106.815 42.298V84.0865C106.815 85.6639 105.496 86.9387 103.854 86.9387Z"
fill="#09090b" />
<path
d="M387.796 0.984887C410.591 0.984887 422.929 20.5611 422.929 45.4527C422.929 69.5016 409.295 88.5808 387.796 88.5808C365.411 88.5808 353.224 69.0046 353.224 44.61C353.224 20.0641 365.562 0.984887 387.796 0.984887ZM387.925 17.0823C376.603 17.0823 375.89 32.5099 375.89 42.1252C375.89 51.762 375.739 72.3322 387.796 72.3322C399.701 72.3322 400.263 55.7378 400.263 45.6255C400.263 38.9705 399.982 31.019 397.973 24.7097C396.244 19.2215 392.809 17.0823 387.925 17.0823Z"
fill="#09090b" />
<path
d="M452.488 86.9387H437.19C435.656 86.8307 434.424 85.599 434.424 84.0865L434.403 5.21991C434.532 3.77223 435.807 2.64865 437.363 2.64865H451.602C452.942 2.71343 454.044 3.62098 454.346 4.8526V16.9095H454.627C458.927 6.12742 464.955 0.984887 475.565 0.984887C482.457 0.984887 489.177 3.46973 493.499 10.276C497.518 16.5853 497.518 27.1945 497.518 34.8219V84.4539C497.345 85.8367 496.07 86.9387 494.557 86.9387H479.151C477.747 86.8307 476.58 85.7935 476.429 84.4539V41.6282C476.429 33.0069 477.423 20.3882 466.814 20.3882C463.076 20.3882 459.64 22.8947 457.933 26.6976C455.772 31.516 455.491 36.3128 455.491 41.6282V84.0865C455.47 85.6639 454.13 86.9387 452.488 86.9387Z"
fill="#09090b" />
<path
d="M247.802 49.2772V45.9497C236.696 45.9497 224.963 48.3265 224.963 61.4205C224.963 68.0539 228.399 72.5482 234.297 72.5482C238.619 72.5482 242.487 69.8905 244.928 65.5691C247.953 60.2537 247.802 55.2624 247.802 49.2772ZM263.294 86.7226C262.279 87.6301 260.81 87.6949 259.664 87.0899C254.565 82.8549 253.658 80.8887 250.849 76.8481C242.422 85.4478 236.458 88.019 225.525 88.019C212.604 88.019 202.535 80.046 202.535 64.0782C202.535 51.6108 209.298 43.1191 218.913 38.9705C227.254 35.2973 238.9 34.649 247.802 33.6335V31.6456C247.802 27.994 248.083 23.6725 245.944 20.5179C244.064 17.6873 240.477 16.5205 237.323 16.5205C231.467 16.5205 226.238 19.5239 224.963 25.7468C224.704 27.1297 223.688 28.491 222.305 28.5558L207.396 26.9568C206.143 26.676 204.76 25.6604 205.106 23.7374C208.542 5.67368 224.855 0.228627 239.462 0.228627C246.938 0.228627 256.704 2.2165 262.603 7.87761C270.079 14.8568 269.366 24.1695 269.366 34.3033V58.2442C269.366 65.4394 272.348 68.5941 275.157 72.4834C276.151 73.8663 276.367 75.53 275.114 76.5672C271.981 79.1817 266.406 84.0433 263.338 86.7658L263.294 86.7226Z"
fill="#09090b" />
<path
d="M46.4006 49.2772V45.9497C35.2944 45.9497 23.5617 48.3265 23.5617 61.4205C23.5617 68.0539 26.9972 72.5482 32.896 72.5482C37.2175 72.5482 41.0852 69.8905 43.5268 65.5691C46.5518 60.2537 46.4006 55.2624 46.4006 49.2772ZM61.893 86.7226C60.8775 87.6301 59.4081 87.6949 58.263 87.0899C53.1637 82.8549 52.2561 80.8887 49.4472 76.8481C41.0203 85.4478 35.0567 88.019 24.1234 88.019C11.2023 88.019 1.1333 80.046 1.1333 64.0782C1.1333 51.6108 7.89638 43.1191 17.5116 38.9705C25.852 35.2973 37.4984 34.649 46.4006 33.6335V31.6456C46.4006 27.994 46.6815 23.6725 44.5423 20.5179C42.6625 17.6873 39.0757 16.5205 35.921 16.5205C30.0655 16.5205 24.8365 19.5239 23.5617 25.7468C23.3024 27.1297 22.2868 28.491 20.904 28.5558L5.99494 26.9568C4.74172 26.676 3.35885 25.6604 3.70456 23.7374C7.14012 5.67368 23.4536 0.228627 38.0602 0.228627C45.5363 0.228627 55.3028 2.2165 61.2015 7.87761C68.6777 14.8568 67.9646 24.1695 67.9646 34.3033V58.2442C67.9646 65.4394 70.9464 68.5941 73.7554 72.4834C74.7493 73.8663 74.9654 75.53 73.7122 76.5672C70.5791 79.1817 65.0044 84.0433 61.9362 86.7658L61.893 86.7226Z"
fill="#09090b" />
</g>
<defs>
<clipPath id="clip0_177_125">
<rect width="496.978" height="150" fill="#09090b" transform="translate(0.833313 0.0258408)" />
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 6.0 KiB

View File

@ -0,0 +1,25 @@
<svg width="452" height="151" viewBox="0 0 452 151" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_177_106)">
<path
d="M193.468 78.927C193.468 100.308 176.742 116.063 156.215 116.063C135.689 116.063 118.962 100.308 118.962 78.927C118.962 57.3955 135.689 41.7911 156.215 41.7911C176.742 41.7911 193.468 57.3955 193.468 78.927ZM177.161 78.927C177.161 65.5661 167.467 56.4244 156.215 56.4244C144.964 56.4244 135.27 65.5661 135.27 78.927C135.27 92.1539 144.964 101.429 156.215 101.429C167.467 101.429 177.161 92.1371 177.161 78.927Z"
fill="#09090b" />
<path
d="M273.835 78.927C273.835 100.308 257.108 116.063 236.582 116.063C216.055 116.063 199.328 100.308 199.328 78.927C199.328 57.4123 216.055 41.7911 236.582 41.7911C257.108 41.7911 273.835 57.3955 273.835 78.927ZM257.527 78.927C257.527 65.5661 247.833 56.4244 236.582 56.4244C225.33 56.4244 215.636 65.5661 215.636 78.927C215.636 92.1539 225.33 101.429 236.582 101.429C247.833 101.429 257.527 92.1371 257.527 78.927Z"
fill="#09090b" />
<path
d="M350.852 44.0347V110.705C350.852 138.13 334.678 149.331 315.558 149.331C297.559 149.331 286.727 137.293 282.641 127.448L296.839 121.538C299.368 127.582 305.562 134.714 315.541 134.714C327.78 134.714 335.365 127.163 335.365 112.949V107.608H334.796C331.146 112.111 324.114 116.046 315.24 116.046C296.672 116.046 279.661 99.8723 279.661 79.0609C279.661 58.0987 296.672 41.7911 315.24 41.7911C324.097 41.7911 331.129 45.7257 334.796 50.0956H335.365V44.0514H350.852V44.0347ZM336.52 79.0609C336.52 65.9846 327.797 56.4244 316.696 56.4244C305.445 56.4244 296.019 65.9846 296.019 79.0609C296.019 92.0032 305.445 101.429 316.696 101.429C327.797 101.429 336.52 92.0032 336.52 79.0609Z"
fill="#09090b" />
<path d="M376.385 4.95665V113.786H360.479V4.95665H376.385Z" fill="#09090b" />
<path
d="M438.367 91.1493L451.025 99.5877C446.94 105.632 437.095 116.046 420.084 116.046C398.988 116.046 383.233 99.7384 383.233 78.9102C383.233 56.8263 399.122 41.7744 418.259 41.7744C437.53 41.7744 446.957 57.1109 450.037 65.3986L451.728 69.6179L402.085 90.1782C405.886 97.6288 411.796 101.429 420.084 101.429C428.389 101.429 434.148 97.3442 438.367 91.1493ZM399.407 77.7884L432.591 64.009C430.766 59.3712 425.274 56.1398 418.812 56.1398C410.524 56.1398 398.988 63.4565 399.407 77.7884Z"
fill="#09090b" />
<path
d="M58.7548 69.2663V53.5112H111.847C112.366 56.257 112.634 59.5051 112.634 63.0211C112.634 74.8417 109.402 89.4583 98.9881 99.8724C88.8586 110.42 75.9163 116.046 58.7715 116.046C26.9935 116.046 0.271729 90.1615 0.271729 58.3834C0.271729 26.6053 26.9935 0.72068 58.7715 0.72068C76.3516 0.72068 88.8753 7.61877 98.2849 16.6097L87.1676 27.7271C80.4202 21.3982 71.2785 16.4758 58.7548 16.4758C35.5491 16.4758 17.3997 35.1776 17.3997 58.3834C17.3997 81.5891 35.5491 100.291 58.7548 100.291C73.8067 100.291 82.3791 94.2467 87.8708 88.755C92.3244 84.3014 95.2544 77.9391 96.4097 69.2495L58.7548 69.2663Z"
fill="#09090b" />
</g>
<defs>
<clipPath id="clip0_177_106">
<rect width="451.667" height="150" fill="#09090b" transform="translate(0.166702 0.0258408)" />
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 3.1 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 7.6 KiB

View File

@ -0,0 +1,12 @@
<svg width="500" height="151" viewBox="0 0 500 151" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_177_123)">
<path
d="M72.4341 56.5258C72.4341 65.0258 65.4341 72.0258 56.9341 72.0258C48.4341 72.0258 41.4341 65.0258 41.4341 56.5258C41.4341 48.0258 48.4341 41.0258 56.9341 41.0258C65.4341 41.0258 72.4341 48.0258 72.4341 56.5258ZM56.9341 78.0258C48.4341 78.0258 41.4341 85.0258 41.4341 93.5258C41.4341 102.026 48.4341 109.026 56.9341 109.026C65.4341 109.026 72.4341 102.026 72.4341 93.5258C72.4341 85.0258 65.4341 78.0258 56.9341 78.0258ZM150.434 75.0258C150.434 116.526 116.934 150.026 75.4341 150.026C33.9341 150.026 0.434082 116.526 0.434082 75.0258C0.434082 33.5258 33.9341 0.0258408 75.4341 0.0258408C116.934 0.0258408 150.434 33.5258 150.434 75.0258ZM130.434 75.0258C130.434 44.5258 105.934 20.0258 75.4341 20.0258C44.9341 20.0258 20.4341 44.5258 20.4341 75.0258C20.4341 105.526 44.9341 130.026 75.4341 130.026C105.934 130.026 130.434 105.526 130.434 75.0258ZM93.9341 78.0258C85.4341 78.0258 78.4341 85.0258 78.4341 93.5258C78.4341 102.026 85.4341 109.026 93.9341 109.026C102.434 109.026 109.434 102.026 109.434 93.5258C109.434 85.0258 102.434 78.0258 93.9341 78.0258ZM93.9341 41.0258C85.4341 41.0258 78.4341 48.0258 78.4341 56.5258C78.4341 65.0258 85.4341 72.0258 93.9341 72.0258C102.434 72.0258 109.434 65.0258 109.434 56.5258C109.434 48.0258 102.434 41.0258 93.9341 41.0258ZM351.934 29.5258C352.434 29.5258 352.934 30.0258 353.434 30.5258V46.5258C353.434 47.5258 352.434 48.0258 351.934 48.0258H325.434C324.434 48.0258 323.934 47.0258 323.934 46.5258V31.0258C323.934 30.0258 324.934 29.5258 325.434 29.5258H351.934ZM351.434 52.0258H300.434C299.934 52.0258 298.934 52.5258 298.934 53.5258L292.434 78.5258L291.934 80.0258L283.934 53.5258C283.934 53.0258 282.934 52.0258 282.434 52.0258H262.434C261.934 52.0258 260.934 52.5258 260.934 53.5258L253.434 78.5258L252.934 80.0258L252.434 78.5258L249.434 66.0258L246.434 53.5258C246.434 53.0258 245.434 52.0258 244.934 52.0258H204.934V30.5258C204.934 30.0258 203.934 29.0258 202.934 29.5258L177.934 37.5258C176.934 37.5258 176.434 38.0258 176.434 39.0258V52.5258H169.934C169.434 52.5258 168.434 53.0258 168.434 54.0258V73.0258C168.434 73.5258 168.934 74.5258 169.934 74.5258H176.434V98.0258C176.434 114.526 185.434 122.026 201.934 122.026C208.934 122.026 215.434 120.526 219.934 118.026V98.0258C219.934 97.0258 218.934 96.5258 218.434 97.0258C215.934 98.0258 213.434 98.5258 211.434 98.5258C206.934 98.5258 204.434 96.5258 204.434 91.5258V74.5258H218.934C219.434 74.5258 220.434 74.0258 220.434 73.0258V57.0258L239.434 120.026C239.434 120.526 240.434 121.526 240.934 121.526H261.934C262.434 121.526 263.434 121.026 263.434 120.026L272.434 92.0258L276.934 106.526L280.934 120.026C280.934 120.526 281.934 121.526 282.434 121.526H303.434C303.934 121.526 304.934 121.026 304.934 120.026L323.934 57.0258V120.026C323.934 120.526 324.434 121.526 325.434 121.526H350.934C351.434 121.526 352.434 121.026 352.434 120.026V53.5258C352.434 53.0258 351.934 52.0258 351.434 52.0258ZM384.934 29.5258H359.434C358.934 29.5258 357.934 30.0258 357.934 31.0258V119.526C357.934 120.026 358.434 121.026 359.434 121.026H384.934C385.434 121.026 386.434 120.526 386.434 119.526V30.5258C386.434 30.0258 385.934 29.5258 384.934 29.5258ZM418.934 29.5258H392.434C391.934 29.5258 390.934 30.0258 390.934 31.0258V46.5258C390.934 47.0258 391.434 48.0258 392.434 48.0258H418.934C419.434 48.0258 420.434 47.5258 420.434 46.5258V30.5258C420.434 30.0258 419.934 29.5258 418.934 29.5258ZM418.434 52.0258H392.934C392.434 52.0258 391.434 52.5258 391.434 53.5258V119.026C391.434 119.526 391.934 120.526 392.934 120.526H418.434C418.934 120.526 419.934 120.026 419.934 119.026V53.5258C419.934 53.0258 419.434 52.0258 418.434 52.0258ZM498.934 86.0258C498.934 105.026 482.934 121.526 460.434 121.526C438.434 121.526 422.434 105.026 422.434 86.0258C422.434 67.0258 438.434 50.5258 460.934 50.5258C482.934 50.5258 498.934 67.0258 498.934 86.0258ZM471.934 86.5258C471.934 79.5258 466.934 74.0258 460.934 74.5258C454.434 74.5258 449.934 80.0258 449.934 86.5258C449.934 93.0258 454.934 98.5258 460.934 98.5258C467.434 98.5258 471.934 93.0258 471.934 86.5258Z"
fill="#09090b" />
</g>
<defs>
<clipPath id="clip0_177_123">
<rect width="499" height="150" fill="#09090b" transform="translate(0.434082 0.0258408)" />
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 4.3 KiB

View File

@ -0,0 +1,14 @@
<svg width="781" height="151" viewBox="0 0 781 151" fill="none" xmlns="http://www.w3.org/2000/svg">
<path
d="M324.116 41.9481C318.271 38.7333 309.581 37.1694 297.548 37.1651C281.083 37.1712 265.8 40.5866 260.015 42.7425C258.709 43.1615 257.312 44.289 257.289 46.2185L257.293 46.644L258.913 54.8322L258.953 54.9846C259.461 56.6518 260.849 57.3995 262.114 57.3995H262.12C262.527 57.3821 262.844 57.3037 263.138 57.2286L265.879 56.5887C273.051 54.793 283.891 52.0811 295.996 52.0811C303.339 52.0811 308.275 52.721 311.584 54.1183C316.953 56.1512 316.987 59.6218 317.041 65.3668V73.9599C316.426 73.949 315.388 73.9381 313.789 73.9381C307.86 73.9381 296.203 74.2134 284.738 76.0515C267.242 78.7385 252.766 82.9262 252.857 107.032C252.864 137.632 281.246 137.69 294.886 137.718H294.888C304.147 137.716 312.69 136.349 318.269 135.195C331.002 132.238 334.253 128.195 334.082 115.543V64.6594C334.101 56.8989 334.124 47.2404 324.116 41.9481ZM317.126 120.552C310.349 122.752 302.934 123.865 295.081 123.865V124.58L295.072 123.865C282.524 123.769 270.27 122.334 270.254 106.329C270.335 93.599 277.127 92.0841 285.724 90.1644L286.321 90.0316C293.969 88.397 313.167 88.0901 317.128 88.0444L317.126 120.552ZM475.964 64.6594V115.543C476.134 128.195 472.883 132.238 460.151 135.195C454.571 136.349 446.028 137.716 436.768 137.718C423.129 137.69 394.745 137.632 394.738 107.032C394.647 82.9262 409.124 78.7385 426.619 76.0515C438.084 74.2134 449.742 73.9381 455.669 73.9381C457.269 73.9381 458.306 73.949 458.922 73.9599V65.3668C458.868 59.6218 458.834 56.1512 453.466 54.1183C450.156 52.721 445.22 52.0811 437.877 52.0811C425.771 52.0811 414.932 54.793 407.76 56.5887L405.02 57.2286C404.725 57.3038 404.408 57.3821 404 57.3995H403.995C402.73 57.3995 401.342 56.6518 400.834 54.9846L400.794 54.8322L399.174 46.644L399.17 46.2185C399.193 44.289 400.59 43.1615 401.896 42.7425C407.679 40.5866 422.964 37.1716 439.429 37.1651C451.462 37.1694 460.152 38.7333 465.997 41.9481C476.004 47.2404 475.982 56.8989 475.964 64.6594ZM459.009 88.0444C455.048 88.0901 435.85 88.397 428.201 90.0316L427.606 90.1644C419.008 92.0841 412.216 93.599 412.136 106.329C412.151 122.334 424.405 123.769 436.953 123.865L436.963 124.58V123.865C444.816 123.865 452.23 122.752 459.007 120.552L459.009 88.0444ZM732.972 37.1651C693.446 37.2183 690.094 63.1891 690.057 87.5318C690.094 111.785 693.446 137.665 732.972 137.718H732.975C772.471 137.665 775.838 111.855 775.893 87.5286C775.852 62.0737 772.501 37.2184 732.972 37.1651ZM732.974 123.51C709 123.405 707.795 111.099 707.632 87.5362C707.795 63.8443 708.998 51.476 732.971 51.3715C756.951 51.476 758.152 63.8443 758.315 87.5253C758.152 111.099 756.947 123.405 732.974 123.51ZM662.037 134.136L661.004 134.398C655.477 135.799 647.904 137.718 634.631 137.718H634.602C598.02 137.665 590.841 119.212 590.801 87.3544C590.845 50.8154 602.428 37.214 633.536 37.1651C644.511 37.1651 652.072 38.5842 657.497 39.8945L657.464 10.4641C657.419 9.17337 658.003 7.48327 661.058 6.90104L670.774 4.42302H671.304C673.536 4.47857 674.326 6.4679 674.331 8.15365V118.735C674.481 125.717 673.659 131.708 662.037 134.136ZM657.473 54.0574C654.229 53.2325 645.173 51.1941 634.976 51.1941C616.247 51.366 608.392 56.4538 608.196 87.5351C608.416 121.664 618.578 123.508 635.144 123.688L635.154 124.403V123.688C645.464 123.688 654.31 121.538 657.465 120.669L657.473 54.0574ZM570.156 135.413H561.466C559.138 135.409 557.383 133.651 557.377 131.324V65.7216C557.22 54.6244 553.904 51.538 541.954 51.3715C528.435 51.3715 514.751 54.7637 510.237 55.9934V131.322C510.233 133.69 508.589 135.41 506.327 135.413H497.461C495.132 135.409 493.374 133.651 493.371 131.324V57.7434C493.242 50.9329 493.882 46.225 503.57 43.0897C512.844 39.8869 530.595 37.1716 542.319 37.1651C564.666 37.1934 574.211 45.2554 574.241 64.1251V131.322C574.238 133.651 572.481 135.41 570.156 135.413ZM373.331 137.186H373.338C378.332 137.088 382.026 136.101 383.472 134.477C383.986 133.901 384.223 133.236 384.159 132.58C384.125 132.04 384.125 132.04 382.755 125.623L382.723 125.469C382.426 123.791 381.228 123.028 380.241 123.028C380.149 123.028 380.059 123.034 380.107 123.04C380.107 123.04 378.853 122.979 377.614 122.979H377.602C374.043 122.866 371.092 122.348 371.031 117.139V8.15478C371.028 6.33731 369.932 4.47308 367.828 4.42302L367.208 4.42825L357.475 6.92259C355.817 7.09236 354.091 8.27097 354.165 10.4617V117.494C354.183 130.169 360.986 137.163 373.323 137.186L373.331 137.186ZM235.87 135.413H166.139C163.811 135.409 162.054 133.651 162.049 131.324V122.812C162.001 120.726 162.67 119.796 163.955 118.204L219.457 53.6776H165.076C162.747 53.6723 160.989 51.9145 160.986 49.5889V43.5598C160.99 41.2331 162.747 39.4755 165.075 39.4711H235.515C237.842 39.4755 239.599 41.2331 239.604 43.5587V52.2476C239.637 53.818 239.093 55.15 237.839 56.5474L182.197 121.204H235.869C238.196 121.211 239.954 122.967 239.958 125.294V131.322C239.954 133.651 238.196 135.41 235.87 135.413Z"
fill="#09090b" />
<path
d="M22.3275 28.7189C10.2759 28.7189 4.07923 61.6253 4.72458 92.5194C4.7073 92.5151 4.68744 92.5238 4.67017 92.5194C5.31443 119.636 11.3109 145.628 23.1982 145.628C68.8157 145.628 120.79 102.608 120.79 87.1868C120.79 83.3289 116.86 75.9057 111.594 70.0464C111.587 70.0504 111.573 70.0424 111.567 70.0464C111.209 69.6307 110.829 69.216 110.451 68.7949C94.2009 50.6641 60.4881 28.7189 22.3275 28.7189Z"
fill="#09090b" />
<path
d="M4.71592 92.5183C38.9903 100.567 75.5815 91.5062 111.031 70.3783C111.21 70.2717 111.388 70.165 111.567 70.0573C111.209 69.6416 110.842 69.2226 110.464 68.8014C94.214 50.6706 60.4806 28.7211 22.32 28.7211C10.2683 28.7211 4.07056 61.6242 4.71592 92.5183ZM111.567 70.0573C111.575 70.0538 111.581 70.0495 111.587 70.0454L111.567 70.0573Z"
fill="#09090b" />
<path
d="M4.68018 92.5107C5.32444 119.627 11.323 145.629 23.2103 145.629C68.8279 145.629 120.798 102.621 120.798 87.1999C120.798 83.3419 116.854 75.9046 111.588 70.0453C75.9539 91.4181 39.1461 100.616 4.68018 92.5107Z"
fill="#09090b" />
</svg>

After

Width:  |  Height:  |  Size: 5.9 KiB

View File

@ -0,0 +1,33 @@
<svg width="498" height="151" viewBox="0 0 498 151" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_177_125)">
<path
d="M309.08 117.21C280.235 138.472 238.425 149.816 202.427 149.816C151.952 149.816 106.512 131.147 72.1348 100.098C69.4339 97.6559 71.8539 94.3284 75.095 96.2298C112.195 117.815 158.067 130.801 205.452 130.801C237.409 130.801 272.564 124.19 304.889 110.469C309.772 108.395 313.856 113.667 309.08 117.21Z"
fill="#fafafa" />
<path
d="M321.072 103.49C317.399 98.7795 296.699 101.264 287.408 102.366C284.578 102.712 284.146 100.249 286.695 98.477C303.182 86.8739 330.234 90.223 333.389 94.1123C336.543 98.0232 332.567 125.14 317.075 138.083C314.698 140.071 312.429 139.012 313.488 136.376C316.967 127.69 324.767 108.222 321.072 103.49Z"
fill="#fafafa" />
<path
d="M288.057 16.5637V5.28474C288.057 3.57776 289.353 2.43258 290.909 2.43258H341.405C343.025 2.43258 344.322 3.59937 344.322 5.28474V14.9432C344.3 16.5637 342.939 18.6813 340.519 22.0304L314.353 59.3894C324.076 59.1517 334.339 60.5994 343.155 65.5691C345.143 66.6926 345.683 68.3348 345.834 69.9554V81.9906C345.834 83.6328 344.019 85.5558 342.118 84.5619C326.582 76.4159 305.947 75.53 288.77 84.6483C287.019 85.599 285.183 83.6976 285.183 82.0554V70.6252C285.183 68.7886 285.204 65.6555 287.041 62.8682L317.356 19.3943H290.974C289.353 19.3943 288.057 18.2491 288.057 16.5637Z"
fill="#fafafa" />
<path
d="M103.854 86.9387H88.4916C87.0223 86.8307 85.8555 85.7287 85.7474 84.3242V5.47922C85.7474 3.90188 87.0655 2.64865 88.7076 2.64865H103.033C104.524 2.71343 105.713 3.85866 105.821 5.28474V15.5914H106.102C109.84 5.63045 116.862 0.984887 126.326 0.984887C135.941 0.984887 141.948 5.63045 146.269 15.5914C149.986 5.63045 158.434 0.984887 167.488 0.984887C173.927 0.984887 180.971 3.64258 185.271 9.60619C190.132 16.2396 189.138 25.8765 189.138 34.3249L189.117 84.0865C189.117 85.6639 187.799 86.9387 186.157 86.9387H170.815C169.281 86.8307 168.05 85.599 168.05 84.0865V42.298C168.05 38.9705 168.352 30.6733 167.617 27.5186C166.472 22.2249 163.037 20.7339 158.586 20.7339C154.869 20.7339 150.98 23.2188 149.403 27.1945C147.825 31.1703 147.976 37.8253 147.976 42.298V84.0865C147.976 85.6639 146.658 86.9387 145.016 86.9387H129.675C128.119 86.8307 126.909 85.599 126.909 84.0865L126.888 42.298C126.888 33.5039 128.335 20.5611 117.424 20.5611C106.382 20.5611 106.815 33.1797 106.815 42.298V84.0865C106.815 85.6639 105.496 86.9387 103.854 86.9387Z"
fill="#fafafa" />
<path
d="M387.796 0.984887C410.591 0.984887 422.929 20.5611 422.929 45.4527C422.929 69.5016 409.295 88.5808 387.796 88.5808C365.411 88.5808 353.224 69.0046 353.224 44.61C353.224 20.0641 365.562 0.984887 387.796 0.984887ZM387.925 17.0823C376.603 17.0823 375.89 32.5099 375.89 42.1252C375.89 51.762 375.739 72.3322 387.796 72.3322C399.701 72.3322 400.263 55.7378 400.263 45.6255C400.263 38.9705 399.982 31.019 397.973 24.7097C396.244 19.2215 392.809 17.0823 387.925 17.0823Z"
fill="#fafafa" />
<path
d="M452.488 86.9387H437.19C435.656 86.8307 434.424 85.599 434.424 84.0865L434.403 5.21991C434.532 3.77223 435.807 2.64865 437.363 2.64865H451.602C452.942 2.71343 454.044 3.62098 454.346 4.8526V16.9095H454.627C458.927 6.12742 464.955 0.984887 475.565 0.984887C482.457 0.984887 489.177 3.46973 493.499 10.276C497.518 16.5853 497.518 27.1945 497.518 34.8219V84.4539C497.345 85.8367 496.07 86.9387 494.557 86.9387H479.151C477.747 86.8307 476.58 85.7935 476.429 84.4539V41.6282C476.429 33.0069 477.423 20.3882 466.814 20.3882C463.076 20.3882 459.64 22.8947 457.933 26.6976C455.772 31.516 455.491 36.3128 455.491 41.6282V84.0865C455.47 85.6639 454.13 86.9387 452.488 86.9387Z"
fill="#fafafa" />
<path
d="M247.802 49.2772V45.9497C236.696 45.9497 224.963 48.3265 224.963 61.4205C224.963 68.0539 228.399 72.5482 234.297 72.5482C238.619 72.5482 242.487 69.8905 244.928 65.5691C247.953 60.2537 247.802 55.2624 247.802 49.2772ZM263.294 86.7226C262.279 87.6301 260.81 87.6949 259.664 87.0899C254.565 82.8549 253.658 80.8887 250.849 76.8481C242.422 85.4478 236.458 88.019 225.525 88.019C212.604 88.019 202.535 80.046 202.535 64.0782C202.535 51.6108 209.298 43.1191 218.913 38.9705C227.254 35.2973 238.9 34.649 247.802 33.6335V31.6456C247.802 27.994 248.083 23.6725 245.944 20.5179C244.064 17.6873 240.477 16.5205 237.323 16.5205C231.467 16.5205 226.238 19.5239 224.963 25.7468C224.704 27.1297 223.688 28.491 222.305 28.5558L207.396 26.9568C206.143 26.676 204.76 25.6604 205.106 23.7374C208.542 5.67368 224.855 0.228627 239.462 0.228627C246.938 0.228627 256.704 2.2165 262.603 7.87761C270.079 14.8568 269.366 24.1695 269.366 34.3033V58.2442C269.366 65.4394 272.348 68.5941 275.157 72.4834C276.151 73.8663 276.367 75.53 275.114 76.5672C271.981 79.1817 266.406 84.0433 263.338 86.7658L263.294 86.7226Z"
fill="#fafafa" />
<path
d="M46.4006 49.2772V45.9497C35.2944 45.9497 23.5617 48.3265 23.5617 61.4205C23.5617 68.0539 26.9972 72.5482 32.896 72.5482C37.2175 72.5482 41.0852 69.8905 43.5268 65.5691C46.5518 60.2537 46.4006 55.2624 46.4006 49.2772ZM61.893 86.7226C60.8775 87.6301 59.4081 87.6949 58.263 87.0899C53.1637 82.8549 52.2561 80.8887 49.4472 76.8481C41.0203 85.4478 35.0567 88.019 24.1234 88.019C11.2023 88.019 1.1333 80.046 1.1333 64.0782C1.1333 51.6108 7.89638 43.1191 17.5116 38.9705C25.852 35.2973 37.4984 34.649 46.4006 33.6335V31.6456C46.4006 27.994 46.6815 23.6725 44.5423 20.5179C42.6625 17.6873 39.0757 16.5205 35.921 16.5205C30.0655 16.5205 24.8365 19.5239 23.5617 25.7468C23.3024 27.1297 22.2868 28.491 20.904 28.5558L5.99494 26.9568C4.74172 26.676 3.35885 25.6604 3.70456 23.7374C7.14012 5.67368 23.4536 0.228627 38.0602 0.228627C45.5363 0.228627 55.3028 2.2165 61.2015 7.87761C68.6777 14.8568 67.9646 24.1695 67.9646 34.3033V58.2442C67.9646 65.4394 70.9464 68.5941 73.7554 72.4834C74.7493 73.8663 74.9654 75.53 73.7122 76.5672C70.5791 79.1817 65.0044 84.0433 61.9362 86.7658L61.893 86.7226Z"
fill="#fafafa" />
</g>
<defs>
<clipPath id="clip0_177_125">
<rect width="496.978" height="150" fill="#fafafa" transform="translate(0.833313 0.0258408)" />
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 6.0 KiB

View File

@ -0,0 +1,25 @@
<svg width="452" height="151" viewBox="0 0 452 151" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_177_106)">
<path
d="M193.468 78.927C193.468 100.308 176.742 116.063 156.215 116.063C135.689 116.063 118.962 100.308 118.962 78.927C118.962 57.3955 135.689 41.7911 156.215 41.7911C176.742 41.7911 193.468 57.3955 193.468 78.927ZM177.161 78.927C177.161 65.5661 167.467 56.4244 156.215 56.4244C144.964 56.4244 135.27 65.5661 135.27 78.927C135.27 92.1539 144.964 101.429 156.215 101.429C167.467 101.429 177.161 92.1371 177.161 78.927Z"
fill="#fafafa" />
<path
d="M273.835 78.927C273.835 100.308 257.108 116.063 236.582 116.063C216.055 116.063 199.328 100.308 199.328 78.927C199.328 57.4123 216.055 41.7911 236.582 41.7911C257.108 41.7911 273.835 57.3955 273.835 78.927ZM257.527 78.927C257.527 65.5661 247.833 56.4244 236.582 56.4244C225.33 56.4244 215.636 65.5661 215.636 78.927C215.636 92.1539 225.33 101.429 236.582 101.429C247.833 101.429 257.527 92.1371 257.527 78.927Z"
fill="#fafafa" />
<path
d="M350.852 44.0347V110.705C350.852 138.13 334.678 149.331 315.558 149.331C297.559 149.331 286.727 137.293 282.641 127.448L296.839 121.538C299.368 127.582 305.562 134.714 315.541 134.714C327.78 134.714 335.365 127.163 335.365 112.949V107.608H334.796C331.146 112.111 324.114 116.046 315.24 116.046C296.672 116.046 279.661 99.8723 279.661 79.0609C279.661 58.0987 296.672 41.7911 315.24 41.7911C324.097 41.7911 331.129 45.7257 334.796 50.0956H335.365V44.0514H350.852V44.0347ZM336.52 79.0609C336.52 65.9846 327.797 56.4244 316.696 56.4244C305.445 56.4244 296.019 65.9846 296.019 79.0609C296.019 92.0032 305.445 101.429 316.696 101.429C327.797 101.429 336.52 92.0032 336.52 79.0609Z"
fill="#fafafa" />
<path d="M376.385 4.95665V113.786H360.479V4.95665H376.385Z" fill="#fafafa" />
<path
d="M438.367 91.1493L451.025 99.5877C446.94 105.632 437.095 116.046 420.084 116.046C398.988 116.046 383.233 99.7384 383.233 78.9102C383.233 56.8263 399.122 41.7744 418.259 41.7744C437.53 41.7744 446.957 57.1109 450.037 65.3986L451.728 69.6179L402.085 90.1782C405.886 97.6288 411.796 101.429 420.084 101.429C428.389 101.429 434.148 97.3442 438.367 91.1493ZM399.407 77.7884L432.591 64.009C430.766 59.3712 425.274 56.1398 418.812 56.1398C410.524 56.1398 398.988 63.4565 399.407 77.7884Z"
fill="#fafafa" />
<path
d="M58.7548 69.2663V53.5112H111.847C112.366 56.257 112.634 59.5051 112.634 63.0211C112.634 74.8417 109.402 89.4583 98.9881 99.8724C88.8586 110.42 75.9163 116.046 58.7715 116.046C26.9935 116.046 0.271729 90.1615 0.271729 58.3834C0.271729 26.6053 26.9935 0.72068 58.7715 0.72068C76.3516 0.72068 88.8753 7.61877 98.2849 16.6097L87.1676 27.7271C80.4202 21.3982 71.2785 16.4758 58.7548 16.4758C35.5491 16.4758 17.3997 35.1776 17.3997 58.3834C17.3997 81.5891 35.5491 100.291 58.7548 100.291C73.8067 100.291 82.3791 94.2467 87.8708 88.755C92.3244 84.3014 95.2544 77.9391 96.4097 69.2495L58.7548 69.2663Z"
fill="#fafafa" />
</g>
<defs>
<clipPath id="clip0_177_106">
<rect width="451.667" height="150" fill="#fafafa" transform="translate(0.166702 0.0258408)" />
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 3.1 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 7.6 KiB

View File

@ -0,0 +1,12 @@
<svg width="500" height="151" viewBox="0 0 500 151" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_177_123)">
<path
d="M72.4341 56.5258C72.4341 65.0258 65.4341 72.0258 56.9341 72.0258C48.4341 72.0258 41.4341 65.0258 41.4341 56.5258C41.4341 48.0258 48.4341 41.0258 56.9341 41.0258C65.4341 41.0258 72.4341 48.0258 72.4341 56.5258ZM56.9341 78.0258C48.4341 78.0258 41.4341 85.0258 41.4341 93.5258C41.4341 102.026 48.4341 109.026 56.9341 109.026C65.4341 109.026 72.4341 102.026 72.4341 93.5258C72.4341 85.0258 65.4341 78.0258 56.9341 78.0258ZM150.434 75.0258C150.434 116.526 116.934 150.026 75.4341 150.026C33.9341 150.026 0.434082 116.526 0.434082 75.0258C0.434082 33.5258 33.9341 0.0258408 75.4341 0.0258408C116.934 0.0258408 150.434 33.5258 150.434 75.0258ZM130.434 75.0258C130.434 44.5258 105.934 20.0258 75.4341 20.0258C44.9341 20.0258 20.4341 44.5258 20.4341 75.0258C20.4341 105.526 44.9341 130.026 75.4341 130.026C105.934 130.026 130.434 105.526 130.434 75.0258ZM93.9341 78.0258C85.4341 78.0258 78.4341 85.0258 78.4341 93.5258C78.4341 102.026 85.4341 109.026 93.9341 109.026C102.434 109.026 109.434 102.026 109.434 93.5258C109.434 85.0258 102.434 78.0258 93.9341 78.0258ZM93.9341 41.0258C85.4341 41.0258 78.4341 48.0258 78.4341 56.5258C78.4341 65.0258 85.4341 72.0258 93.9341 72.0258C102.434 72.0258 109.434 65.0258 109.434 56.5258C109.434 48.0258 102.434 41.0258 93.9341 41.0258ZM351.934 29.5258C352.434 29.5258 352.934 30.0258 353.434 30.5258V46.5258C353.434 47.5258 352.434 48.0258 351.934 48.0258H325.434C324.434 48.0258 323.934 47.0258 323.934 46.5258V31.0258C323.934 30.0258 324.934 29.5258 325.434 29.5258H351.934ZM351.434 52.0258H300.434C299.934 52.0258 298.934 52.5258 298.934 53.5258L292.434 78.5258L291.934 80.0258L283.934 53.5258C283.934 53.0258 282.934 52.0258 282.434 52.0258H262.434C261.934 52.0258 260.934 52.5258 260.934 53.5258L253.434 78.5258L252.934 80.0258L252.434 78.5258L249.434 66.0258L246.434 53.5258C246.434 53.0258 245.434 52.0258 244.934 52.0258H204.934V30.5258C204.934 30.0258 203.934 29.0258 202.934 29.5258L177.934 37.5258C176.934 37.5258 176.434 38.0258 176.434 39.0258V52.5258H169.934C169.434 52.5258 168.434 53.0258 168.434 54.0258V73.0258C168.434 73.5258 168.934 74.5258 169.934 74.5258H176.434V98.0258C176.434 114.526 185.434 122.026 201.934 122.026C208.934 122.026 215.434 120.526 219.934 118.026V98.0258C219.934 97.0258 218.934 96.5258 218.434 97.0258C215.934 98.0258 213.434 98.5258 211.434 98.5258C206.934 98.5258 204.434 96.5258 204.434 91.5258V74.5258H218.934C219.434 74.5258 220.434 74.0258 220.434 73.0258V57.0258L239.434 120.026C239.434 120.526 240.434 121.526 240.934 121.526H261.934C262.434 121.526 263.434 121.026 263.434 120.026L272.434 92.0258L276.934 106.526L280.934 120.026C280.934 120.526 281.934 121.526 282.434 121.526H303.434C303.934 121.526 304.934 121.026 304.934 120.026L323.934 57.0258V120.026C323.934 120.526 324.434 121.526 325.434 121.526H350.934C351.434 121.526 352.434 121.026 352.434 120.026V53.5258C352.434 53.0258 351.934 52.0258 351.434 52.0258ZM384.934 29.5258H359.434C358.934 29.5258 357.934 30.0258 357.934 31.0258V119.526C357.934 120.026 358.434 121.026 359.434 121.026H384.934C385.434 121.026 386.434 120.526 386.434 119.526V30.5258C386.434 30.0258 385.934 29.5258 384.934 29.5258ZM418.934 29.5258H392.434C391.934 29.5258 390.934 30.0258 390.934 31.0258V46.5258C390.934 47.0258 391.434 48.0258 392.434 48.0258H418.934C419.434 48.0258 420.434 47.5258 420.434 46.5258V30.5258C420.434 30.0258 419.934 29.5258 418.934 29.5258ZM418.434 52.0258H392.934C392.434 52.0258 391.434 52.5258 391.434 53.5258V119.026C391.434 119.526 391.934 120.526 392.934 120.526H418.434C418.934 120.526 419.934 120.026 419.934 119.026V53.5258C419.934 53.0258 419.434 52.0258 418.434 52.0258ZM498.934 86.0258C498.934 105.026 482.934 121.526 460.434 121.526C438.434 121.526 422.434 105.026 422.434 86.0258C422.434 67.0258 438.434 50.5258 460.934 50.5258C482.934 50.5258 498.934 67.0258 498.934 86.0258ZM471.934 86.5258C471.934 79.5258 466.934 74.0258 460.934 74.5258C454.434 74.5258 449.934 80.0258 449.934 86.5258C449.934 93.0258 454.934 98.5258 460.934 98.5258C467.434 98.5258 471.934 93.0258 471.934 86.5258Z"
fill="#fafafa" />
</g>
<defs>
<clipPath id="clip0_177_123">
<rect width="499" height="150" fill="#fafafa" transform="translate(0.434082 0.0258408)" />
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 4.3 KiB

View File

@ -0,0 +1,14 @@
<svg width="781" height="151" viewBox="0 0 781 151" fill="none" xmlns="http://www.w3.org/2000/svg">
<path
d="M324.116 41.9481C318.271 38.7333 309.581 37.1694 297.548 37.1651C281.083 37.1712 265.8 40.5866 260.015 42.7425C258.709 43.1615 257.312 44.289 257.289 46.2185L257.293 46.644L258.913 54.8322L258.953 54.9846C259.461 56.6518 260.849 57.3995 262.114 57.3995H262.12C262.527 57.3821 262.844 57.3037 263.138 57.2286L265.879 56.5887C273.051 54.793 283.891 52.0811 295.996 52.0811C303.339 52.0811 308.275 52.721 311.584 54.1183C316.953 56.1512 316.987 59.6218 317.041 65.3668V73.9599C316.426 73.949 315.388 73.9381 313.789 73.9381C307.86 73.9381 296.203 74.2134 284.738 76.0515C267.242 78.7385 252.766 82.9262 252.857 107.032C252.864 137.632 281.246 137.69 294.886 137.718H294.888C304.147 137.716 312.69 136.349 318.269 135.195C331.002 132.238 334.253 128.195 334.082 115.543V64.6594C334.101 56.8989 334.124 47.2404 324.116 41.9481ZM317.126 120.552C310.349 122.752 302.934 123.865 295.081 123.865V124.58L295.072 123.865C282.524 123.769 270.27 122.334 270.254 106.329C270.335 93.599 277.127 92.0841 285.724 90.1644L286.321 90.0316C293.969 88.397 313.167 88.0901 317.128 88.0444L317.126 120.552ZM475.964 64.6594V115.543C476.134 128.195 472.883 132.238 460.151 135.195C454.571 136.349 446.028 137.716 436.768 137.718C423.129 137.69 394.745 137.632 394.738 107.032C394.647 82.9262 409.124 78.7385 426.619 76.0515C438.084 74.2134 449.742 73.9381 455.669 73.9381C457.269 73.9381 458.306 73.949 458.922 73.9599V65.3668C458.868 59.6218 458.834 56.1512 453.466 54.1183C450.156 52.721 445.22 52.0811 437.877 52.0811C425.771 52.0811 414.932 54.793 407.76 56.5887L405.02 57.2286C404.725 57.3038 404.408 57.3821 404 57.3995H403.995C402.73 57.3995 401.342 56.6518 400.834 54.9846L400.794 54.8322L399.174 46.644L399.17 46.2185C399.193 44.289 400.59 43.1615 401.896 42.7425C407.679 40.5866 422.964 37.1716 439.429 37.1651C451.462 37.1694 460.152 38.7333 465.997 41.9481C476.004 47.2404 475.982 56.8989 475.964 64.6594ZM459.009 88.0444C455.048 88.0901 435.85 88.397 428.201 90.0316L427.606 90.1644C419.008 92.0841 412.216 93.599 412.136 106.329C412.151 122.334 424.405 123.769 436.953 123.865L436.963 124.58V123.865C444.816 123.865 452.23 122.752 459.007 120.552L459.009 88.0444ZM732.972 37.1651C693.446 37.2183 690.094 63.1891 690.057 87.5318C690.094 111.785 693.446 137.665 732.972 137.718H732.975C772.471 137.665 775.838 111.855 775.893 87.5286C775.852 62.0737 772.501 37.2184 732.972 37.1651ZM732.974 123.51C709 123.405 707.795 111.099 707.632 87.5362C707.795 63.8443 708.998 51.476 732.971 51.3715C756.951 51.476 758.152 63.8443 758.315 87.5253C758.152 111.099 756.947 123.405 732.974 123.51ZM662.037 134.136L661.004 134.398C655.477 135.799 647.904 137.718 634.631 137.718H634.602C598.02 137.665 590.841 119.212 590.801 87.3544C590.845 50.8154 602.428 37.214 633.536 37.1651C644.511 37.1651 652.072 38.5842 657.497 39.8945L657.464 10.4641C657.419 9.17337 658.003 7.48327 661.058 6.90104L670.774 4.42302H671.304C673.536 4.47857 674.326 6.4679 674.331 8.15365V118.735C674.481 125.717 673.659 131.708 662.037 134.136ZM657.473 54.0574C654.229 53.2325 645.173 51.1941 634.976 51.1941C616.247 51.366 608.392 56.4538 608.196 87.5351C608.416 121.664 618.578 123.508 635.144 123.688L635.154 124.403V123.688C645.464 123.688 654.31 121.538 657.465 120.669L657.473 54.0574ZM570.156 135.413H561.466C559.138 135.409 557.383 133.651 557.377 131.324V65.7216C557.22 54.6244 553.904 51.538 541.954 51.3715C528.435 51.3715 514.751 54.7637 510.237 55.9934V131.322C510.233 133.69 508.589 135.41 506.327 135.413H497.461C495.132 135.409 493.374 133.651 493.371 131.324V57.7434C493.242 50.9329 493.882 46.225 503.57 43.0897C512.844 39.8869 530.595 37.1716 542.319 37.1651C564.666 37.1934 574.211 45.2554 574.241 64.1251V131.322C574.238 133.651 572.481 135.41 570.156 135.413ZM373.331 137.186H373.338C378.332 137.088 382.026 136.101 383.472 134.477C383.986 133.901 384.223 133.236 384.159 132.58C384.125 132.04 384.125 132.04 382.755 125.623L382.723 125.469C382.426 123.791 381.228 123.028 380.241 123.028C380.149 123.028 380.059 123.034 380.107 123.04C380.107 123.04 378.853 122.979 377.614 122.979H377.602C374.043 122.866 371.092 122.348 371.031 117.139V8.15478C371.028 6.33731 369.932 4.47308 367.828 4.42302L367.208 4.42825L357.475 6.92259C355.817 7.09236 354.091 8.27097 354.165 10.4617V117.494C354.183 130.169 360.986 137.163 373.323 137.186L373.331 137.186ZM235.87 135.413H166.139C163.811 135.409 162.054 133.651 162.049 131.324V122.812C162.001 120.726 162.67 119.796 163.955 118.204L219.457 53.6776H165.076C162.747 53.6723 160.989 51.9145 160.986 49.5889V43.5598C160.99 41.2331 162.747 39.4755 165.075 39.4711H235.515C237.842 39.4755 239.599 41.2331 239.604 43.5587V52.2476C239.637 53.818 239.093 55.15 237.839 56.5474L182.197 121.204H235.869C238.196 121.211 239.954 122.967 239.958 125.294V131.322C239.954 133.651 238.196 135.41 235.87 135.413Z"
fill="#fafafa" />
<path
d="M22.3275 28.7189C10.2759 28.7189 4.07923 61.6253 4.72458 92.5194C4.7073 92.5151 4.68744 92.5238 4.67017 92.5194C5.31443 119.636 11.3109 145.628 23.1982 145.628C68.8157 145.628 120.79 102.608 120.79 87.1868C120.79 83.3289 116.86 75.9057 111.594 70.0464C111.587 70.0504 111.573 70.0424 111.567 70.0464C111.209 69.6307 110.829 69.216 110.451 68.7949C94.2009 50.6641 60.4881 28.7189 22.3275 28.7189Z"
fill="#fafafa" />
<path
d="M4.71592 92.5183C38.9903 100.567 75.5815 91.5062 111.031 70.3783C111.21 70.2717 111.388 70.165 111.567 70.0573C111.209 69.6416 110.842 69.2226 110.464 68.8014C94.214 50.6706 60.4806 28.7211 22.32 28.7211C10.2683 28.7211 4.07056 61.6242 4.71592 92.5183ZM111.567 70.0573C111.575 70.0538 111.581 70.0495 111.587 70.0454L111.567 70.0573Z"
fill="#fafafa" />
<path
d="M4.68018 92.5107C5.32444 119.627 11.323 145.629 23.2103 145.629C68.8279 145.629 120.798 102.621 120.798 87.1999C120.798 83.3419 116.854 75.9046 111.588 70.0453C75.9539 91.4181 39.1461 100.616 4.68018 92.5107Z"
fill="#fafafa" />
</svg>

After

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

View File

@ -0,0 +1,8 @@
<svg width="256" height="256" viewBox="0 0 256 256" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd"
d="M173.611 166.311L132.877 219.804H173.524L193.973 191.813L213.183 219.804H256L215.673 165.707L215.15 165.046L207.461 155.332L195.329 140.004L195.258 139.915L193.813 138.089L193.923 138.001L176.286 112.861H134.061L173.611 166.311ZM199.89 133.554L214.959 112.861H254.619L219.874 158.8L199.89 133.554Z"
fill="#09090B" />
<path fill-rule="evenodd" clip-rule="evenodd"
d="M0 36.1959V174.314H39.0678V137.614H60.3938L60.4323 137.671C60.8436 137.653 61.2518 137.634 61.6569 137.614C75.0665 136.968 85.1471 135.549 96.3849 131.385C96.7596 131.246 97.1355 131.104 97.5128 130.959L97.4591 130.881C105.816 126.86 112.331 121.344 117.006 114.331C122.005 106.702 124.504 97.6915 124.504 87.2997C124.504 76.7764 122.005 67.7 117.006 60.0706C112.007 52.3097 104.904 46.3903 95.6964 42.3125C86.62 38.2347 75.7678 36.1959 63.1399 36.1959H0ZM102.156 137.725L64.8705 144.175L85.4361 174.314H127.266L102.156 137.725ZM39.0678 107.426H60.7721C68.9277 107.426 74.9786 105.65 78.9248 102.098C83.0026 98.5465 85.0415 93.6137 85.0415 87.2997C85.0415 80.8542 83.0026 75.8556 78.9248 72.304C74.9786 68.7523 68.9277 66.9765 60.7721 66.9765H39.0678V107.426Z"
fill="#09090B" />
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -0,0 +1,8 @@
<svg width="256" height="256" viewBox="0 0 256 256" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd"
d="M173.611 166.311L132.877 219.804H173.524L193.973 191.813L213.183 219.804H256L215.673 165.707L215.15 165.046L207.461 155.332L195.329 140.004L195.258 139.915L193.813 138.089L193.923 138.001L176.286 112.861H134.061L173.611 166.311ZM199.89 133.554L214.959 112.861H254.619L219.874 158.8L199.89 133.554Z"
fill="#FAFAFA" />
<path fill-rule="evenodd" clip-rule="evenodd"
d="M0 36.1959V174.314H39.0678V137.614H60.3938L60.4323 137.671C60.8436 137.653 61.2517 137.634 61.6567 137.614C75.0665 136.968 85.1471 135.549 96.385 131.385C96.7596 131.246 97.1355 131.104 97.5128 130.959L97.4591 130.881C105.816 126.86 112.331 121.344 117.006 114.331C122.005 106.702 124.504 97.6915 124.504 87.2997C124.504 76.7764 122.005 67.7 117.006 60.0706C112.007 52.3097 104.904 46.3903 95.6964 42.3125C86.62 38.2347 75.7679 36.1959 63.1399 36.1959H0ZM102.156 137.725L64.8705 144.175L85.4361 174.314H127.266L102.156 137.725ZM39.0678 107.426H60.7721C68.9277 107.426 74.9786 105.65 78.9248 102.098C83.0026 98.5465 85.0415 93.6137 85.0415 87.2997C85.0415 80.8542 83.0026 75.8556 78.9248 72.304C74.9786 68.7523 68.9277 66.9765 60.7721 66.9765H39.0678V107.426Z"
fill="#FAFAFA" />
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 7.5 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 867 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 910 KiB

View File

@ -0,0 +1,15 @@
(function initializeTheme() {
try {
if (
localStorage.theme === "dark" ||
// eslint-disable-next-line lingui/no-unlocalized-strings
window.matchMedia("(prefers-color-scheme: dark)").matches
) {
document.documentElement.classList.add("dark");
} else {
document.documentElement.classList.remove("dark");
}
} catch (_) {
// pass
}
})();

View File

@ -0,0 +1,23 @@
<svg width="730" height="151" viewBox="0 0 730 151" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_450_81)">
<path d="M188.89 81.5672C188.89 92.7163 192.303 101.654 199.123 108.394C205.95 115.127 215.173 118.497 226.807 118.497C238.442 118.497 246.271 115.65 252.088 109.963C257.905 104.233 260.814 97.5844 260.814 90.0317V89.3461H243.981V89.9607C243.981 93.0061 242.651 95.6271 239.999 97.8102C237.339 99.9933 232.902 101.089 226.672 101.089C219.668 101.089 214.533 99.3787 211.284 95.9664C208.033 92.5537 206.405 88.0038 206.405 82.3164V78.6284C206.405 72.9406 208.055 68.3907 211.355 64.9784C214.654 61.5657 219.76 59.8561 226.672 59.8561C232.717 59.8561 237.112 60.9017 239.864 62.9932C242.659 65.0842 244.053 67.7267 244.053 70.9132V71.5983H260.885L260.814 70.708C260.536 63.1059 257.564 56.5144 251.882 50.9113C246.2 45.2664 237.844 42.4472 226.807 42.4472C215.173 42.4472 205.943 45.8173 199.123 52.5507C192.296 59.2415 188.89 68.1787 188.89 79.3772V81.5603V81.5672Z" fill="#263238"/>
<path d="M274.972 116.448H292.146V80.9948C292.146 73.2304 295.901 69.2173 299.015 67.0269C302.13 64.7944 305.679 63.6852 309.661 63.6852C310.898 63.6852 312.022 63.7557 313.025 63.8899C314.077 64.0245 315.066 64.1866 315.976 64.3707V43.4858C315.521 43.3022 314.717 43.0971 313.572 42.8712C312.47 42.645 311.396 42.5319 310.344 42.5319C306.269 42.5319 302.628 43.6269 299.421 45.81C296.533 47.7742 294.201 50.0988 292.43 52.7623C292.245 53.038 291.812 52.9249 291.79 52.5929L290.29 44.5103H274.965V116.448H274.972Z" fill="#263238"/>
<path d="M322.995 81.5672C322.995 92.7163 326.543 101.654 333.64 108.394C340.737 115.127 350.081 118.497 361.673 118.497C373.264 118.497 382.537 115.127 389.634 108.394C396.781 101.661 400.351 92.7163 400.351 81.5672V79.3841C400.351 68.1929 396.781 59.2484 389.634 52.5576C382.537 45.8242 373.215 42.4541 361.673 42.4541C350.131 42.4541 340.744 45.8242 333.64 52.5576C326.543 59.2484 322.995 68.1856 322.995 79.3841V81.5672ZM340.51 78.6353C340.51 72.4038 342.344 67.8536 346.007 64.9853C349.669 62.1167 354.889 60.6823 361.673 60.6823C368.457 60.6823 373.606 62.1167 377.268 64.9853C380.98 67.8536 382.836 72.4038 382.836 78.6353V82.3233C382.836 88.7879 381.001 93.4014 377.339 96.178C373.719 98.9052 368.5 100.276 361.673 100.276C354.846 100.276 349.605 98.9125 345.943 96.178C342.323 93.4014 340.517 88.781 340.517 82.3233V78.6353H340.51Z" fill="#263238"/>
<path d="M408.151 44.4957L429.722 116.434H449.255L464.575 64.1936C464.737 63.6353 465.532 63.6211 465.71 64.1794L482.23 116.434H501.759L523.468 44.4957H502.229L491.51 84.5628C491.056 86.3855 490.614 88.1798 490.205 89.9534C489.969 91.0695 489.576 92.8432 489.329 93.9665C489.272 94.2138 488.915 94.2207 488.859 93.9665C488.555 92.6806 488.226 91.3452 487.861 89.9461C487.407 88.1234 486.905 86.3287 486.349 84.5555L474.394 44.4888H454.055C454.055 44.4888 442.051 85.361 439.833 93.5072C439.74 93.8603 439.237 93.8534 439.144 93.5072L426.714 44.4957H408.138H408.151Z" fill="#263238"/>
<path d="M529.094 81.5672C529.094 92.2144 532.001 100.926 537.818 107.709C543.676 114.442 551.813 117.812 562.211 117.812C567.616 117.812 572.286 116.837 576.218 114.88C578.959 113.502 582.47 110.414 584.403 108.613C585.194 111.919 586.252 116.455 586.252 116.455H603.279V11.8123H585.356V53.1722C583.07 49.9857 580.045 47.5269 576.291 45.8032C572.537 44.0295 567.976 43.1397 562.621 43.1397C552.547 43.1397 544.439 46.5309 538.301 53.3064C532.167 60.0394 529.094 68.7297 529.094 79.3768V81.5599V81.5672ZM546.616 82.2524L546.551 78.7059C546.551 73.5199 548.152 69.3301 551.359 66.144C554.566 62.9149 559.536 61.2969 566.27 61.2969C570.984 61.2969 574.998 62.3924 578.29 64.5755C578.326 64.5965 578.355 64.6176 578.387 64.6387C582.798 67.5921 585.364 72.5944 585.364 77.8792V82.8248C585.364 88.258 582.656 93.3803 578.055 96.3122C578.018 96.3333 577.982 96.3548 577.949 96.3759C574.422 98.559 570.344 99.654 565.722 99.654C558.94 99.654 554.067 98.036 551.087 94.8074C548.107 91.5787 546.624 87.3888 546.624 82.2455L546.616 82.2524Z" fill="#263238"/>
<path d="M623.619 116.448H640.728V44.5026H623.619V116.441V116.448ZM619.983 24.8473C619.983 27.9418 621.037 30.4924 623.141 32.4918C625.298 34.4489 628.314 35.4239 632.21 35.4239C636.106 35.4239 639.037 34.4206 641.141 32.4212C643.294 30.4217 644.368 27.8924 644.368 24.8473C644.368 21.8022 643.318 19.3435 641.206 17.3369C639.098 15.3375 636.078 14.3342 632.137 14.3342C628.196 14.3342 625.298 15.3375 623.141 17.3369C621.037 19.3364 619.983 21.8446 619.983 24.8473Z" fill="#263238"/>
<path d="M661.472 116.448H678.58V87.2688C678.58 70.7502 684.463 60.2798 697.261 60.2798C710.064 60.2798 712.792 67.6768 712.792 78.0629V116.448H729.896V73.7883C729.896 61.5515 727.379 53.3769 722.336 49.286C717.296 45.146 710.867 43.076 703.03 43.076C697.861 43.076 693.073 44.0295 688.671 45.9442C684.718 47.64 681.495 50.0563 679.014 53.1791C678.807 52.0699 677.68 44.5099 677.68 44.5099H661.464V116.448H661.472Z" fill="#263238"/>
<path d="M107.11 150.245H44.2022C17.4663 150.245 0.166702 133.057 0.166702 106.494V43.5159C0.166702 17.432 17.4663 0.244507 43.7202 0.244507H107.11C133.845 0.244507 151.145 17.432 151.145 43.9946V106.494C151.145 133.057 133.845 150.245 107.11 150.245Z" fill="#263238"/>
<path d="M97.1648 102.44C94.3399 102.44 91.8228 101.569 89.7394 99.8627C87.2502 97.8544 85.2714 94.8592 85.2013 91.3391C85.1664 89.5606 87.0471 89.5606 87.0471 89.5606C87.0471 89.5606 90.1026 89.5249 91.5852 89.5249C93.0674 89.5606 93.5008 91.6845 93.5709 92.2172C94.1441 96.9904 96.7663 99.071 98.7799 100.021C99.9897 100.59 99.6889 102.368 97.1648 102.447V102.44Z" fill="white"/>
<path d="M71.7973 78.1858C69.3081 77.8833 65.6161 77.6243 63.2319 77.0194C59.3652 76.0403 59.4702 72.4622 59.638 71.2963C60.1067 67.7972 61.3513 64.5576 63.2668 61.5483C65.651 57.8624 69.0775 54.6228 73.4822 51.988C81.7468 47.0563 94.4125 43.9943 107.11 43.9943C109.463 43.9943 126.594 43.9943 126.594 47.5099C126.594 49.4632 122.638 49.2812 120.916 49.2812C107.981 49.2812 98.7726 51.088 91.9204 55.0043C85.166 58.8414 80.4604 64.7162 77.2719 73.4125C76.9363 74.1686 75.8246 78.6463 71.7973 78.193V78.1858Z" fill="white"/>
<path d="M83.0818 114.073C76.663 114.21 70.6148 111.222 66.0349 106.01C62.1544 101.597 59.8192 97.1477 59.3855 91.4388C59.1199 87.7095 60.7213 86.4211 62.8955 86.6441C64.3991 86.7953 69.0767 87.0256 71.7544 87.5943C73.7611 88.0119 75.097 89.1568 75.4322 91.511C77.2014 104.066 84.8928 109.005 89.4726 110.07C90.2765 110.257 90.7732 110.79 90.7452 111.748C90.7099 112.662 90.1995 113.914 83.0887 114.066L83.0818 114.073Z" fill="white"/>
<path d="M64.7981 125.219C60.2462 125.413 55.792 124.47 54.5194 124.24C49.1636 123.261 44.6745 121.569 40.8289 119.057C31.6205 113.053 26.0618 102.448 25.3975 89.8926C25.2298 86.9125 24.8592 81.2178 31.7603 81.6499C34.6061 81.808 39.123 83.2192 42.3045 84.1622C46.2548 85.2998 48.1639 88.4384 48.1639 91.5414C48.1639 109.244 63.0747 120.558 70.1518 120.558C71.7739 120.558 72.5109 121.08 72.5109 122.12C72.5109 122.902 71.7759 124.924 64.8049 125.226L64.7981 125.219Z" fill="white"/>
<path d="M41.0445 73.1964C38.3525 72.6994 35.7234 71.5549 33.1644 70.8998C25.2493 68.8768 26.5988 60.6552 27.3399 58.402C34.5418 36.574 57.4059 29.2741 75.8579 27.3231C93.2332 25.4873 111.412 26.9056 128.347 31.7578C129.557 32.089 132.892 32.9169 132.172 34.9326C131.452 36.9484 129.445 35.5446 110.972 35.127C104.882 34.9903 98.799 35.3862 92.6948 36.3509C82.2207 37.9923 71.4528 41.3976 62.7965 48.5822C58.6225 52.0594 54.9515 56.4941 52.4972 61.7352C51.8542 63.1103 51.3507 64.4851 50.9174 65.8602C50.4767 67.3144 48.8267 74.6145 41.0514 73.2033L41.0445 73.1964Z" fill="white"/>
<path d="M85.3408 77.409C86.8229 70.5771 92.1698 60.401 112.615 60.401C114.974 60.401 115.76 61.1822 115.76 61.9634C115.76 62.7446 114.66 63.5263 113.401 63.5263C100.978 63.5263 97.0314 71.1025 94.1648 78.8636C93.2417 81.3617 91.1373 81.7359 88.5013 81.2895C86.6555 80.951 84.6487 80.728 85.3408 77.409Z" fill="white"/>
</g>
<defs>
<clipPath id="clip0_450_81">
<rect width="729.73" height="150" fill="white" transform="translate(0.166702 0.244507)"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 7.9 KiB

View File

@ -0,0 +1,23 @@
<svg width="731" height="151" viewBox="0 0 731 151" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_450_96)">
<path d="M189.619 80.681C189.619 91.7425 192.992 100.61 199.738 107.294C206.484 113.974 215.605 117.318 227.106 117.318C238.606 117.318 246.345 114.497 252.098 108.851C257.846 103.162 260.722 96.5725 260.722 89.0773V88.4027H244.084V89.0112C244.084 92.0348 242.769 94.6293 240.144 96.7991C237.518 98.9639 233.128 100.049 226.968 100.049C220.043 100.049 214.971 98.3554 211.754 94.9687C208.537 91.5819 206.934 87.0677 206.934 81.4265V77.7706C206.934 72.1293 208.566 67.6152 211.825 64.2284C215.085 60.8416 220.132 59.1483 226.968 59.1483C232.943 59.1483 237.291 60.1857 240.007 62.2614C242.769 64.3366 244.151 66.9547 244.151 70.1149V70.7943H260.788L260.722 69.9122C260.453 62.3745 257.505 55.8272 251.895 50.2756C246.279 44.6765 238.019 41.8792 227.106 41.8792C215.605 41.8792 206.484 45.2189 199.738 51.9029C192.992 58.5398 189.619 67.4076 189.619 78.5161V80.681Z" fill="white"/>
<path d="M274.711 115.284H291.69V80.1146C291.69 72.4119 295.403 68.426 298.478 66.2607C301.558 64.0484 305.068 62.9449 309.004 62.9449C310.225 62.9449 311.336 63.011 312.33 63.1476C313.371 63.2842 314.345 63.4399 315.249 63.6195V42.8976C314.795 42.7184 314.005 42.5157 312.874 42.2891C311.786 42.0629 310.721 41.9493 309.681 41.9493C305.65 41.9493 302.05 43.0342 298.88 45.1995C296.028 47.1523 293.724 49.4493 291.969 52.1003C291.789 52.3739 291.358 52.2608 291.34 51.9304L289.854 43.9119H274.706V115.284H274.711Z" fill="white"/>
<path d="M322.184 80.681C322.184 91.7425 325.694 100.61 332.71 107.294C339.726 113.974 348.965 117.318 360.418 117.318C371.871 117.318 381.039 113.978 388.06 107.294C395.123 100.615 398.652 91.7425 398.652 80.681V78.5161C398.652 67.412 395.118 58.5398 388.06 51.9029C381.044 45.2234 371.829 41.8792 360.418 41.8792C349.008 41.8792 339.726 45.2189 332.71 51.9029C325.694 58.5398 322.184 67.4076 322.184 78.5161V80.681ZM339.504 77.7706C339.504 71.5869 341.315 67.0727 344.934 64.2284C348.558 61.3841 353.719 59.9639 360.418 59.9639C367.117 59.9639 372.212 61.3841 375.836 64.2284C379.502 67.0727 381.337 71.5869 381.337 77.7706V81.4265C381.337 87.8368 379.526 92.417 375.907 95.1718C372.33 97.8791 367.169 99.2331 360.423 99.2331C353.677 99.2331 348.492 97.8791 344.873 95.1718C341.296 92.417 339.508 87.8368 339.508 81.4265V77.7706H339.504Z" fill="white"/>
<path d="M406.367 43.9071L427.695 115.28H447.009L462.155 63.4545C462.313 62.8979 463.103 62.8886 463.278 63.4448L479.611 115.289H498.913L520.371 43.9168H499.371L488.778 83.6668C488.323 85.4733 487.894 87.2563 487.484 89.0158C487.253 90.1241 486.868 91.8836 486.625 92.9968C486.572 93.2421 486.219 93.247 486.163 92.9968C485.863 91.7235 485.534 90.3933 485.178 89.0109C484.723 87.2044 484.225 85.4214 483.682 83.662L471.864 43.912H451.764C451.764 43.912 439.894 84.459 437.709 92.5395C437.615 92.8886 437.117 92.8837 437.028 92.5347L424.736 43.912H406.375L406.367 43.9071Z" fill="white"/>
<path d="M525.917 80.6818C525.917 91.243 528.795 99.8891 534.54 106.616C540.337 113.295 548.372 116.639 558.653 116.639C563.996 116.639 568.614 115.667 572.506 113.729C575.21 112.365 578.684 109.295 580.594 107.507C581.372 110.79 582.422 115.285 582.422 115.285H599.246V11.4788H581.538V52.5118C579.276 49.3512 576.284 46.9127 572.571 45.2003C568.861 43.4408 564.353 42.5591 559.063 42.5591C549.098 42.5591 541.083 45.9223 535.018 52.6484C528.949 59.3279 525.917 67.9504 525.917 78.5165V80.6818ZM543.236 81.356L543.171 77.8371C543.171 72.6908 544.756 68.5354 547.918 65.3798C551.088 62.1771 556.006 60.5733 562.663 60.5733C567.321 60.5733 571.286 61.6581 574.545 63.823C574.578 63.8465 574.61 63.8656 574.642 63.8891C579.001 66.8185 581.538 71.7852 581.538 77.0258V81.9316C581.538 87.3183 578.855 92.4033 574.31 95.3137C574.273 95.3372 574.237 95.3562 574.205 95.3798C570.718 97.5446 566.688 98.6299 562.115 98.6299C555.414 98.6299 550.594 97.0261 547.651 93.823C544.707 90.6203 543.236 86.4645 543.236 81.3657V81.356Z" fill="white"/>
<path d="M619.363 115.285H636.272V43.9128H619.363V115.285ZM615.767 24.4126C615.767 27.4834 616.809 30.0117 618.888 31.9975C621.021 33.9409 624.005 34.9079 627.852 34.9079C631.703 34.9079 634.598 33.9126 636.682 31.9268C638.81 29.9409 639.872 27.4362 639.872 24.4126C639.872 21.3891 638.83 18.9503 636.746 16.9645C634.667 14.9787 631.679 13.9834 627.783 13.9834C623.887 13.9834 621.021 14.9787 618.888 16.9645C616.809 18.9503 615.767 21.4315 615.767 24.4126Z" fill="white"/>
<path d="M656.786 115.285H673.695V86.3319C673.695 69.9406 679.505 59.5585 692.165 59.5585C704.826 59.5585 707.518 66.8931 707.518 77.2046V115.285H724.424V72.9641C724.424 60.8226 721.934 52.7189 716.956 48.6527C711.974 44.5443 705.613 42.4922 697.869 42.4922C692.757 42.4922 688.026 43.4404 683.676 45.3365C679.764 47.0206 676.582 49.4121 674.133 52.5158C673.926 51.4168 672.811 43.9168 672.811 43.9168H656.786V115.29V115.285Z" fill="white"/>
<path d="M105.176 150.245H47.5955C17.7228 150.245 0.896423 133.212 0.896423 103.848V46.6407C0.896423 17.277 17.7228 0.244507 47.5955 0.244507H105.176C135.676 0.244507 151.875 16.6535 151.875 46.6407V103.848C151.875 133.835 135.676 150.245 105.176 150.245Z" fill="white"/>
<path d="M97.8937 102.44C95.0688 102.44 92.5517 101.569 90.4679 99.8627C87.9787 97.8544 85.9999 94.8592 85.9302 91.3391C85.8949 89.5606 87.776 89.5606 87.776 89.5606C87.776 89.5606 90.8315 89.5249 92.3137 89.5249C93.7963 89.5606 94.2296 91.6845 94.2994 92.2172C94.873 96.9904 97.4948 99.071 99.5088 100.021C100.718 100.59 100.418 102.368 97.8937 102.447V102.44Z" fill="#263238"/>
<path d="M72.5271 78.1857C70.0379 77.8837 66.3459 77.6243 63.9617 77.0198C60.0949 76.0407 60.1999 72.4626 60.3678 71.2963C60.8364 67.7976 62.081 64.558 63.9966 61.5487C66.3808 57.8628 69.8072 54.6232 74.212 51.988C82.4766 47.0567 94.0347 44.3068 106.732 44.3068C116.038 44.3068 125.751 45.5522 125.848 45.5522C126.723 45.6674 127.359 46.5313 127.324 47.5103C127.289 48.4894 126.618 49.2382 125.743 49.3172C124.331 49.2811 122.954 49.2811 121.646 49.2811C108.711 49.2811 99.5024 51.0884 92.6502 55.0047C85.8958 58.8418 81.1902 64.7161 78.0017 73.4129C77.666 74.1686 76.5544 78.6467 72.5271 78.193V78.1857Z" fill="#263238"/>
<path d="M83.8115 114.074C77.3927 114.211 71.3445 111.223 66.7646 106.011C62.8841 101.598 60.549 97.1485 60.1152 91.4396C59.8496 87.7107 61.451 86.4219 63.6252 86.6453C65.1288 86.7961 69.8064 87.0268 72.4841 87.5956C74.4909 88.0131 75.8267 89.1576 76.1619 91.5118C77.9311 104.067 85.6225 109.006 90.2023 110.071C91.0063 110.259 91.5029 110.791 91.4749 111.749C91.4396 112.663 90.9292 113.916 83.8184 114.067L83.8115 114.074Z" fill="#263238"/>
<path d="M65.5266 125.219C60.9747 125.413 56.5209 124.47 55.2483 124.24C49.8925 123.261 45.4035 121.569 41.5578 119.057C32.3492 113.053 26.7906 102.448 26.1263 89.8926C25.9585 86.9125 25.5879 81.2178 32.4891 81.6499C35.3348 81.808 39.8517 83.2192 43.033 84.1622C46.9837 85.2998 48.8924 88.4384 48.8924 91.5414C48.8924 109.244 64.464 120.943 71.2602 120.943C72.8822 120.943 73.267 121.936 73.0712 122.887C72.9171 123.643 72.5048 124.924 65.5335 125.226L65.5266 125.219Z" fill="#263238"/>
<path d="M41.7743 73.196C39.0822 72.6994 36.4532 71.5549 33.8941 70.8998C25.9791 68.8768 27.3286 60.6552 28.0697 58.402C35.2716 36.574 58.1356 29.2741 76.5877 27.3231C93.9629 25.4873 112.143 26.9056 129.077 31.7578C130.287 32.089 133.622 32.9169 132.902 34.9326C132.182 36.9484 130.175 35.5446 111.702 35.127C105.612 34.9902 99.5287 35.3862 93.4245 36.3509C82.9505 37.9923 72.1825 41.3976 63.5263 48.5822C59.3523 52.0594 55.6813 56.4941 53.2274 61.7352C52.584 63.1103 52.0805 64.4851 51.6471 65.8602C51.2064 67.3144 49.5564 74.6145 41.7812 73.2033L41.7743 73.196Z" fill="#263238"/>
<path d="M86.0697 77.4094C87.5518 70.5771 94.1384 59.7495 114.527 60.4983C119.205 60.6495 117.065 63.9325 114.758 63.8603C103.228 63.4501 97.7603 71.1029 94.8933 78.8636C93.9706 81.3617 91.8657 81.7359 89.2298 81.2895C87.384 80.951 85.3772 80.728 86.0697 77.4094Z" fill="#263238"/>
</g>
<defs>
<clipPath id="clip0_450_96">
<rect width="729.73" height="150" fill="white" transform="translate(0.896423 0.244507)"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 8.0 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 120 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 144 KiB

View File

@ -0,0 +1,16 @@
<svg width="708" height="161" viewBox="0 0 708 161" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_449_60)">
<path fill-rule="evenodd" clip-rule="evenodd" d="M130.507 80.4344C130.507 90.457 127.596 100.065 122.612 108L142.992 128.473C152.974 115.112 159.21 98.4055 159.21 80.4478C159.21 62.4901 152.974 45.7903 142.992 32.4224L122.612 52.8957C127.832 61.1375 130.575 70.7054 130.513 80.4612L130.507 80.4344Z" fill="#B8D3F4"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M79.7982 131.377C51.9384 131.377 29.0631 108.408 29.0631 80.4277C29.0631 52.4475 51.9317 29.4785 79.7982 29.4785C90.1955 29.4785 99.3349 32.4023 107.243 37.8284L127.623 17.3551C114.309 7.33251 97.6823 1.07007 79.7982 1.07007C36.1351 1.07007 0.380371 36.5706 0.380371 80.8359C0.380371 125.101 36.1418 160.187 79.7982 160.187C98.0971 160.187 114.723 153.924 127.971 143.902L107.591 123.428C99.6962 128.446 90.1955 131.364 79.7313 131.364L79.7982 131.377Z" fill="#3385FF"/>
<path d="M686.692 93.6351C684.862 93.6496 683.049 93.2727 681.376 92.5296C679.702 91.7865 678.208 90.6943 676.991 89.3263C676.857 89.0587 676.857 88.791 677.125 88.6572L699.759 79.0896L706.363 76.2595C706.63 76.1257 706.63 75.9918 706.63 75.858C705.568 71.2422 702.928 67.1418 699.166 64.2642C695.404 61.3865 690.756 59.9119 686.023 60.0949C675.519 60.4963 666.754 68.9934 666.353 79.4977C666.216 82.2664 666.646 85.0339 667.614 87.6312C668.583 90.2286 670.07 92.6014 671.986 94.6048C673.902 96.6083 676.206 98.2005 678.757 99.2841C681.309 100.368 684.054 100.92 686.826 100.908C695.31 100.908 702.589 95.6556 705.694 88.2491C705.828 87.9815 705.694 87.7138 705.426 87.7138L698.822 86.5095C698.689 86.5095 698.421 86.5095 698.421 86.7771C695.999 90.8183 691.683 93.6484 686.699 93.6484L686.692 93.6351ZM686.692 67.5014C690.6 67.5014 694.099 69.2544 696.394 71.944C696.527 72.2116 696.527 72.4793 696.26 72.6131L674.167 81.98C674.115 82.0019 674.058 82.0123 674 82.0104C673.943 82.0086 673.887 81.9945 673.836 81.9692C673.784 81.9438 673.739 81.9078 673.703 81.8635C673.666 81.8192 673.64 81.7677 673.625 81.7123V80.6351C673.492 73.2286 679.42 67.4345 686.692 67.4345V67.5014ZM665.403 60.764H658.939C658.806 60.764 658.672 60.8978 658.538 61.0316L648.034 91.8085C647.766 92.4776 646.963 92.4776 646.696 91.8085L636.191 61.0316C636.191 60.8978 636.058 60.764 635.79 60.764H629.327C629.059 60.764 628.925 61.0316 628.925 61.2992L642.26 100.092C642.26 100.225 642.394 100.359 642.661 100.359H651.827C651.961 100.359 652.095 100.225 652.229 100.092L665.563 61.2992C665.831 61.0316 665.697 60.764 665.429 60.764H665.403ZM622.85 60.764H616.247C615.979 60.764 615.845 60.8978 615.845 61.1654V99.9577C615.845 100.225 615.979 100.359 616.247 100.359H622.85C623.118 100.359 623.252 100.225 623.252 99.9577V61.2323C623.252 61.0985 623.118 60.8309 622.85 60.8309V60.764ZM622.85 48.1053H616.247C615.979 48.1053 615.845 48.2391 615.845 48.5067V55.1104C615.845 55.378 615.979 55.5118 616.247 55.5118H622.85C623.118 55.5118 623.252 55.378 623.252 55.1104V48.5067C623.252 48.2391 623.118 48.1053 622.85 48.1053ZM609.235 60.764H601.828C601.694 60.764 601.561 60.6301 601.561 60.4963V43.656C601.561 43.3884 601.427 43.2545 601.159 43.2545H594.616C594.348 43.2545 594.214 43.3884 594.214 43.656V60.5632C594.214 60.697 594.08 60.8309 593.947 60.8309H586.674C586.406 60.8309 586.272 60.9647 586.272 61.2323V67.8359C586.272 68.1036 586.406 68.2374 586.674 68.2374H593.947C594.08 68.2374 594.214 68.3712 594.214 68.505V99.951C594.214 100.219 594.348 100.352 594.616 100.352H601.219C601.487 100.352 601.621 100.219 601.621 99.951V68.505C601.621 68.3712 601.755 68.2374 601.888 68.2374H609.295C609.563 68.2374 609.696 68.1036 609.696 67.8359V61.2323C609.696 61.0985 609.429 60.8309 609.295 60.8309L609.235 60.764Z" fill="#0A0A0A"/>
<path d="M565.993 93.6351C564.057 93.6322 562.145 93.2029 560.394 92.3775C558.642 91.5521 557.094 90.351 555.86 88.8595C554.625 87.3681 553.734 85.6229 553.25 83.7482C552.766 81.8734 552.702 79.9151 553.06 78.0124C553.863 73.4293 558.446 68.7124 563.096 67.7757C565.376 67.2523 567.754 67.3512 569.982 68.0621C572.21 68.7731 574.207 70.0699 575.762 71.8169C575.895 71.9507 576.163 71.9507 576.297 71.8169L581.014 67.1C581.148 66.9662 581.148 66.6986 581.014 66.5647C577.106 62.256 571.312 59.6935 564.983 59.9611C554.612 60.4963 545.982 68.9934 545.446 79.3639C544.911 91.0859 554.211 100.774 565.92 100.774C571.848 100.774 577.227 98.2115 581.007 94.1703C581.141 94.0365 581.141 93.9027 581.007 93.7689L576.29 89.052C576.156 88.9182 575.889 88.9182 575.755 89.052C573.467 92.0159 569.961 93.6351 566.053 93.6351H565.993Z" fill="#0A0A0A"/>
<path d="M521.942 93.6351C520.112 93.6496 518.299 93.2727 516.626 92.5296C514.953 91.7865 513.458 90.6943 512.241 89.3263C512.107 89.0586 512.107 88.791 512.375 88.6572L535.009 79.0896L541.613 76.2595C541.88 76.1257 541.88 75.9918 541.88 75.858C540.818 71.2422 538.179 67.1418 534.417 64.2642C530.655 61.3865 526.006 59.9119 521.273 60.0949C510.769 60.4963 502.004 68.9934 501.603 79.4977C501.466 82.2664 501.896 85.0339 502.864 87.6312C503.833 90.2286 505.32 92.6014 507.236 94.6048C509.152 96.6083 511.456 98.2004 514.007 99.2841C516.559 100.368 519.304 100.92 522.076 100.908C530.56 100.908 537.839 95.6556 540.944 88.2491C541.078 87.9815 540.944 87.7138 540.676 87.7138L534.072 86.5095C533.939 86.5095 533.671 86.5095 533.671 86.7771C531.249 90.8183 526.8 93.6484 521.949 93.6484L521.942 93.6351ZM521.942 67.5014C525.85 67.5014 529.349 69.2544 531.644 71.944C531.778 72.2116 531.778 72.4793 531.51 72.6131L509.417 81.98C509.365 82.0019 509.308 82.0123 509.25 82.0104C509.193 82.0086 509.137 81.9945 509.086 81.9692C509.034 81.9438 508.989 81.9078 508.953 81.8635C508.917 81.8192 508.89 81.7676 508.876 81.7123V80.6351C508.742 73.2286 514.67 67.4345 521.942 67.4345V67.5014ZM495.942 43.2545H489.339C489.071 43.2545 488.937 43.3884 488.937 43.656V99.9644C488.937 100.232 489.071 100.366 489.339 100.366H495.942C496.21 100.366 496.344 100.232 496.344 99.9644V43.656C496.344 43.3884 496.076 43.2545 495.942 43.2545ZM481.524 43.2545H474.854C474.586 43.2545 474.452 43.3884 474.452 43.656V99.9644C474.452 100.232 474.586 100.366 474.854 100.366H481.457C481.725 100.366 481.859 100.232 481.859 99.9644V43.656C481.725 43.3884 481.591 43.2545 481.457 43.2545H481.524ZM449.195 67.5014C456.468 67.5014 462.262 73.4293 462.262 80.5682C462.232 84.0246 460.846 87.3309 458.402 89.775C455.958 92.2191 452.651 93.6054 449.195 93.6351C445.739 93.6054 442.432 92.2191 439.988 89.775C437.544 87.3309 436.158 84.0246 436.128 80.5682C436.128 73.4293 441.922 67.5014 449.195 67.5014ZM449.195 60.0949C446.506 60.0949 443.844 60.6244 441.36 61.6533C438.876 62.6822 436.619 64.1903 434.718 66.0914C432.817 67.9925 431.309 70.2495 430.28 72.7334C429.251 75.2174 428.722 77.8796 428.722 80.5682C428.722 83.2568 429.251 85.9191 430.28 88.403C431.309 90.887 432.817 93.144 434.718 95.0451C436.619 96.9462 438.876 98.4543 441.36 99.4831C443.844 100.512 446.506 101.042 449.195 101.042C451.884 101.042 454.546 100.512 457.03 99.4831C459.514 98.4543 461.771 96.9462 463.672 95.0451C465.573 93.144 467.081 90.887 468.11 88.403C469.139 85.9191 469.668 83.2568 469.668 80.5682C469.668 77.8796 469.139 75.2174 468.11 72.7334C467.081 70.2495 465.573 67.9925 463.672 66.0914C461.771 64.1903 459.514 62.6822 457.03 61.6533C454.546 60.6244 451.884 60.0949 449.195 60.0949Z" fill="#0A0A0A"/>
<path d="M411.607 93.6351C409.671 93.6322 407.759 93.2029 406.008 92.3775C404.256 91.5521 402.708 90.351 401.473 88.8595C400.239 87.3681 399.348 85.6229 398.864 83.7482C398.38 81.8734 398.315 79.9151 398.674 78.0124C399.477 73.4293 404.06 68.7124 408.71 67.7757C410.99 67.2523 413.368 67.3512 415.596 68.0621C417.824 68.7731 419.82 70.0699 421.375 71.8169C421.509 71.9507 421.777 71.9507 421.911 71.8169L426.628 67.1C426.761 66.9662 426.761 66.6986 426.628 66.5647C422.72 62.256 416.926 59.6935 410.597 59.9611C400.226 60.4963 391.595 68.9934 391.06 79.3639C390.525 91.0859 399.825 100.774 411.533 100.774C417.461 100.774 422.841 98.2115 426.621 94.1703C426.755 94.0365 426.755 93.9027 426.621 93.7689L421.904 89.052C421.77 88.9182 421.502 88.9182 421.369 89.052C419.08 92.0159 415.575 93.6351 411.667 93.6351H411.607Z" fill="#0A0A0A"/>
<path d="M344.654 60.0949C342.409 60.1896 340.211 60.7684 338.211 61.7915C336.211 62.8147 334.456 64.258 333.066 66.0228C332.932 66.2904 332.397 66.1566 332.397 65.889V61.1721C332.397 61.0383 332.263 60.7706 331.995 60.7706H325.391C325.258 60.7706 324.99 60.9044 324.99 61.1721V100.098C324.99 100.232 325.124 100.5 325.391 100.5H331.995C332.129 100.5 332.397 100.366 332.397 100.098V80.6351C332.397 73.2286 337.381 67.9765 344.52 67.9765C353.887 67.9765 356.777 74.172 356.777 81.4447V100.045C356.777 100.179 356.911 100.446 357.179 100.446H363.782C363.916 100.446 364.184 100.312 364.184 100.045V81.5116C364.318 70.1375 358.932 60.1016 344.647 60.1016L344.654 60.0949ZM301.145 93.6351C299.314 93.6496 297.501 93.2727 295.828 92.5296C294.155 91.7865 292.66 90.6943 291.443 89.3263C291.309 89.0587 291.309 88.791 291.577 88.6572L314.211 79.0896L320.815 76.2595C321.083 76.1257 321.083 75.9918 321.083 75.858C320.02 71.2422 317.381 67.1418 313.619 64.2642C309.857 61.3865 305.208 59.9119 300.475 60.0949C289.971 60.4963 281.206 68.9934 280.805 79.4977C280.669 82.2664 281.098 85.0339 282.066 87.6312C283.035 90.2286 284.522 92.6014 286.438 94.6048C288.354 96.6083 290.658 98.2005 293.209 99.2841C295.761 100.368 298.506 100.92 301.278 100.908C309.762 100.908 317.041 95.6556 320.146 88.2491C320.28 87.9815 320.146 87.7138 319.878 87.7138L313.275 86.5095C313.141 86.5095 312.873 86.5095 312.873 86.7771C310.451 90.8183 306.136 93.6484 301.151 93.6484L301.145 93.6351ZM301.145 67.5014C305.052 67.5014 308.551 69.2544 310.846 71.944C310.98 72.2116 310.98 72.4793 310.712 72.6131L288.62 81.98C288.567 82.0019 288.51 82.0123 288.453 82.0105C288.395 82.0086 288.339 81.9945 288.288 81.9692C288.237 81.9438 288.191 81.9078 288.155 81.8635C288.119 81.8192 288.092 81.7677 288.078 81.7123V80.6351C288.066 78.9097 288.395 77.1989 289.046 75.6009C289.697 74.0029 290.657 72.549 291.871 71.3227C293.085 70.0964 294.529 69.1217 296.12 68.4544C297.712 67.7872 299.419 67.4406 301.145 67.4345V67.5014ZM256.418 59.6935C251.299 59.8273 247.251 61.8478 244.428 65.2132C244.16 65.4808 243.759 65.347 243.759 64.9456V61.1721C243.759 60.9044 243.625 60.7706 243.357 60.7706H236.754C236.486 60.7706 236.352 60.9044 236.352 61.1721V117.614C236.352 117.882 236.486 118.016 236.754 118.016H243.217C243.485 118.016 243.618 117.882 243.618 117.614V95.388C243.618 94.9866 244.02 94.8528 244.287 95.1204C247.118 98.4858 251.293 100.64 256.679 100.64C269.21 100.64 279.172 89.2661 276.75 76.3933C275.131 66.558 266.253 59.5529 256.418 59.6935ZM258.98 93.0998C256.922 93.4421 254.812 93.2883 252.825 92.6512C250.838 92.0141 249.031 90.912 247.556 89.4366C246.081 87.9611 244.978 86.1549 244.341 84.168C243.704 82.181 243.55 80.0707 243.893 78.0124C244.829 72.6264 249.145 68.1772 254.598 67.3074C256.656 66.9651 258.766 67.1189 260.753 67.756C262.74 68.3931 264.547 69.4952 266.022 70.9706C267.497 72.4461 268.599 74.2523 269.237 76.2392C269.874 78.2262 270.027 80.3365 269.685 82.3948C268.882 87.7807 264.433 92.0962 258.98 93.0998ZM212.099 60.0949C209.41 60.0949 206.748 60.6244 204.264 61.6533C201.78 62.6822 199.523 64.1903 197.622 66.0914C195.721 67.9925 194.213 70.2495 193.184 72.7334C192.155 75.2174 191.625 77.8796 191.625 80.5682C191.625 83.2568 192.155 85.9191 193.184 88.403C194.213 90.887 195.721 93.144 197.622 95.0451C199.523 96.9462 201.78 98.4543 204.264 99.4831C206.748 100.512 209.41 101.042 212.099 101.042C217.529 101.042 222.736 98.8846 226.576 95.0451C230.415 91.2056 232.572 85.9981 232.572 80.5682C232.572 75.1384 230.415 69.9309 226.576 66.0914C222.736 62.2519 217.529 60.0949 212.099 60.0949ZM212.099 67.5014C219.372 67.5014 225.166 73.4293 225.166 80.5682C225.136 84.0246 223.75 87.331 221.306 89.775C218.862 92.2191 215.555 93.6054 212.099 93.6351C208.643 93.6054 205.336 92.2191 202.892 89.775C200.448 87.331 199.062 84.0246 199.032 80.5682C199.062 77.1119 200.448 73.8055 202.892 71.3614C205.336 68.9173 208.643 67.5311 212.099 67.5014Z" fill="#0A0A0A"/>
</g>
<defs>
<clipPath id="clip0_449_60">
<rect width="707" height="160" fill="white" transform="translate(0.129395 0.635193)"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 12 KiB

View File

@ -0,0 +1,16 @@
<svg width="708" height="160" viewBox="0 0 708 160" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_449_49)">
<path fill-rule="evenodd" clip-rule="evenodd" d="M130.507 79.8251C130.507 89.8476 127.596 99.4554 122.612 107.39L142.992 127.864C152.974 114.503 159.21 97.7961 159.21 79.8384C159.21 61.8808 152.974 45.1809 142.992 31.813L122.612 52.2864C127.832 60.5281 130.575 70.0961 130.513 79.8518L130.507 79.8251Z" fill="#B8D3F4"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M79.7982 130.768C51.9384 130.768 29.0631 107.799 29.0631 79.8184C29.0631 51.8381 51.9317 28.8692 79.7982 28.8692C90.1955 28.8692 99.3349 31.793 107.243 37.2191L127.623 16.7457C114.309 6.72315 97.6823 0.460711 79.7982 0.460711C36.1351 0.460711 0.380371 35.9612 0.380371 80.2265C0.380371 124.492 36.1418 159.577 79.7982 159.577C98.0971 159.577 114.723 153.315 127.971 143.292L107.591 122.819C99.6962 127.837 90.1955 130.754 79.7313 130.754L79.7982 130.768Z" fill="#3385FF"/>
<path d="M686.692 93.0257C684.862 93.0403 683.049 92.6634 681.376 91.9203C679.702 91.1771 678.208 90.085 676.991 88.7169C676.857 88.4493 676.857 88.1817 677.125 88.0479L699.759 78.4802L706.363 75.6501C706.63 75.5163 706.63 75.3825 706.63 75.2487C705.568 70.6329 702.928 66.5325 699.166 63.6548C695.404 60.7771 690.756 59.3026 686.023 59.4855C675.519 59.887 666.754 68.3841 666.353 78.8884C666.216 81.6571 666.646 84.4245 667.614 87.0219C668.583 89.6192 670.07 91.992 671.986 93.9955C673.902 95.999 676.206 97.5911 678.757 98.6748C681.309 99.7584 684.054 100.311 686.826 100.298C695.31 100.298 702.589 95.0463 705.694 87.6397C705.828 87.3721 705.694 87.1045 705.426 87.1045L698.822 85.9002C698.689 85.9002 698.421 85.9002 698.421 86.1678C695.999 90.2089 691.683 93.0391 686.699 93.0391L686.692 93.0257ZM686.692 66.8921C690.6 66.8921 694.099 68.645 696.394 71.3346C696.527 71.6023 696.527 71.8699 696.26 72.0037L674.167 81.3706C674.115 81.3926 674.058 81.4029 674 81.4011C673.943 81.3992 673.887 81.3852 673.836 81.3598C673.784 81.3345 673.739 81.2984 673.703 81.2541C673.666 81.2098 673.64 81.1583 673.625 81.103V80.0258C673.492 72.6192 679.42 66.8252 686.692 66.8252V66.8921ZM665.403 60.1546H658.939C658.806 60.1546 658.672 60.2884 658.538 60.4222L648.034 91.1991C647.766 91.8682 646.963 91.8682 646.696 91.1991L636.191 60.4222C636.191 60.2884 636.058 60.1546 635.79 60.1546H629.327C629.059 60.1546 628.925 60.4222 628.925 60.6898L642.26 99.4822C642.26 99.616 642.394 99.7498 642.661 99.7498H651.827C651.961 99.7498 652.095 99.616 652.229 99.4822L665.563 60.6898C665.831 60.4222 665.697 60.1546 665.429 60.1546H665.403ZM622.85 60.1546H616.247C615.979 60.1546 615.845 60.2884 615.845 60.556V99.3483C615.845 99.616 615.979 99.7498 616.247 99.7498H622.85C623.118 99.7498 623.252 99.616 623.252 99.3483V60.6229C623.252 60.4891 623.118 60.2215 622.85 60.2215V60.1546ZM622.85 47.4959H616.247C615.979 47.4959 615.845 47.6297 615.845 47.8973V54.501C615.845 54.7686 615.979 54.9024 616.247 54.9024H622.85C623.118 54.9024 623.252 54.7686 623.252 54.501V47.8973C623.252 47.6297 623.118 47.4959 622.85 47.4959ZM609.235 60.1546H601.828C601.694 60.1546 601.561 60.0208 601.561 59.887V43.0466C601.561 42.779 601.427 42.6452 601.159 42.6452H594.616C594.348 42.6452 594.214 42.779 594.214 43.0466V59.9539C594.214 60.0877 594.08 60.2215 593.947 60.2215H586.674C586.406 60.2215 586.272 60.3553 586.272 60.6229V67.2266C586.272 67.4942 586.406 67.628 586.674 67.628H593.947C594.08 67.628 594.214 67.7618 594.214 67.8957V99.3417C594.214 99.6093 594.348 99.7431 594.616 99.7431H601.219C601.487 99.7431 601.621 99.6093 601.621 99.3417V67.8957C601.621 67.7618 601.755 67.628 601.888 67.628H609.295C609.563 67.628 609.696 67.4942 609.696 67.2266V60.6229C609.696 60.4891 609.429 60.2215 609.295 60.2215L609.235 60.1546Z" fill="white"/>
<path d="M565.993 93.0257C564.057 93.0229 562.145 92.5935 560.394 91.7681C558.642 90.9427 557.094 89.7416 555.86 88.2502C554.625 86.7587 553.734 85.0136 553.25 83.1388C552.766 81.2641 552.702 79.3057 553.06 77.4031C553.863 72.82 558.446 68.1031 563.096 67.1664C565.376 66.6429 567.754 66.7418 569.982 67.4528C572.21 68.1637 574.207 69.4605 575.762 71.2075C575.895 71.3413 576.163 71.3413 576.297 71.2075L581.014 66.4906C581.148 66.3568 581.148 66.0892 581.014 65.9554C577.106 61.6466 571.312 59.0841 564.983 59.3517C554.612 59.887 545.982 68.3841 545.446 78.7546C544.911 90.4766 554.211 100.165 565.92 100.165C571.848 100.165 577.227 97.6021 581.007 93.561C581.141 93.4271 581.141 93.2933 581.007 93.1595L576.29 88.4426C576.156 88.3088 575.889 88.3088 575.755 88.4426C573.467 91.4066 569.961 93.0257 566.053 93.0257H565.993Z" fill="white"/>
<path d="M521.942 93.0257C520.112 93.0403 518.299 92.6634 516.626 91.9203C514.953 91.1771 513.458 90.085 512.241 88.7169C512.107 88.4493 512.107 88.1817 512.375 88.0478L535.009 78.4802L541.613 75.6501C541.88 75.5163 541.88 75.3825 541.88 75.2487C540.818 70.6329 538.179 66.5325 534.417 63.6548C530.655 60.7771 526.006 59.3026 521.273 59.4855C510.769 59.887 502.004 68.3841 501.603 78.8884C501.466 81.6571 501.896 84.4245 502.864 87.0219C503.833 89.6192 505.32 91.992 507.236 93.9955C509.152 95.999 511.456 97.5911 514.007 98.6747C516.559 99.7584 519.304 100.311 522.076 100.298C530.56 100.298 537.839 95.0463 540.944 87.6397C541.078 87.3721 540.944 87.1045 540.676 87.1045L534.072 85.9002C533.939 85.9002 533.671 85.9002 533.671 86.1678C531.249 90.2089 526.8 93.0391 521.949 93.0391L521.942 93.0257ZM521.942 66.8921C525.85 66.8921 529.349 68.645 531.644 71.3346C531.778 71.6023 531.778 71.8699 531.51 72.0037L509.417 81.3706C509.365 81.3926 509.308 81.4029 509.25 81.4011C509.193 81.3992 509.137 81.3851 509.086 81.3598C509.034 81.3345 508.989 81.2984 508.953 81.2541C508.917 81.2098 508.89 81.1583 508.876 81.103V80.0258C508.742 72.6192 514.67 66.8252 521.942 66.8252V66.8921ZM495.942 42.6452H489.339C489.071 42.6452 488.937 42.779 488.937 43.0466V99.355C488.937 99.6227 489.071 99.7565 489.339 99.7565H495.942C496.21 99.7565 496.344 99.6227 496.344 99.355V43.0466C496.344 42.779 496.076 42.6452 495.942 42.6452ZM481.524 42.6452H474.854C474.586 42.6452 474.452 42.779 474.452 43.0466V99.355C474.452 99.6227 474.586 99.7565 474.854 99.7565H481.457C481.725 99.7565 481.859 99.6227 481.859 99.355V43.0466C481.725 42.779 481.591 42.6452 481.457 42.6452H481.524ZM449.195 66.8921C456.468 66.8921 462.262 72.82 462.262 79.9589C462.232 83.4152 460.846 86.7216 458.402 89.1657C455.958 91.6098 452.651 92.996 449.195 93.0257C445.739 92.996 442.432 91.6098 439.988 89.1657C437.544 86.7216 436.158 83.4152 436.128 79.9589C436.128 72.82 441.922 66.8921 449.195 66.8921ZM449.195 59.4855C446.506 59.4855 443.844 60.0151 441.36 61.044C438.876 62.0729 436.619 63.5809 434.718 65.482C432.817 67.3832 431.309 69.6401 430.28 72.1241C429.251 74.608 428.722 77.2703 428.722 79.9589C428.722 82.6475 429.251 85.3097 430.28 87.7937C431.309 90.2776 432.817 92.5346 434.718 94.4357C436.619 96.3368 438.876 97.8449 441.36 98.8738C443.844 99.9027 446.506 100.432 449.195 100.432C451.884 100.432 454.546 99.9027 457.03 98.8738C459.514 97.8449 461.771 96.3368 463.672 94.4357C465.573 92.5346 467.081 90.2776 468.11 87.7937C469.139 85.3097 469.668 82.6475 469.668 79.9589C469.668 77.2703 469.139 74.608 468.11 72.1241C467.081 69.6401 465.573 67.3832 463.672 65.482C461.771 63.5809 459.514 62.0729 457.03 61.044C454.546 60.0151 451.884 59.4855 449.195 59.4855Z" fill="white"/>
<path d="M411.607 93.0257C409.671 93.0229 407.759 92.5935 406.008 91.7681C404.256 90.9427 402.708 89.7416 401.473 88.2502C400.239 86.7587 399.348 85.0136 398.864 83.1388C398.38 81.2641 398.315 79.3057 398.674 77.4031C399.477 72.82 404.06 68.1031 408.71 67.1664C410.99 66.6429 413.368 66.7418 415.596 67.4528C417.824 68.1637 419.82 69.4605 421.375 71.2075C421.509 71.3413 421.777 71.3413 421.911 71.2075L426.628 66.4906C426.761 66.3568 426.761 66.0892 426.628 65.9554C422.72 61.6466 416.926 59.0841 410.597 59.3517C400.226 59.887 391.595 68.3841 391.06 78.7546C390.525 90.4766 399.825 100.165 411.533 100.165C417.461 100.165 422.841 97.6021 426.621 93.561C426.755 93.4271 426.755 93.2933 426.621 93.1595L421.904 88.4426C421.77 88.3088 421.502 88.3088 421.369 88.4426C419.08 91.4066 415.575 93.0257 411.667 93.0257H411.607Z" fill="white"/>
<path d="M344.654 59.4855C342.409 59.5802 340.211 60.159 338.211 61.1822C336.211 62.2053 334.456 63.6487 333.066 65.4134C332.932 65.6811 332.397 65.5472 332.397 65.2796V60.5627C332.397 60.4289 332.263 60.1613 331.995 60.1613H325.391C325.258 60.1613 324.99 60.2951 324.99 60.5627V99.4889C324.99 99.6227 325.124 99.8903 325.391 99.8903H331.995C332.129 99.8903 332.397 99.7565 332.397 99.4889V80.0258C332.397 72.6192 337.381 67.3671 344.52 67.3671C353.887 67.3671 356.777 73.5626 356.777 80.8354V99.4353C356.777 99.5691 356.911 99.8368 357.179 99.8368H363.782C363.916 99.8368 364.184 99.703 364.184 99.4353V80.9023C364.318 69.5282 358.932 59.4922 344.647 59.4922L344.654 59.4855ZM301.145 93.0257C299.314 93.0403 297.501 92.6634 295.828 91.9203C294.155 91.1771 292.66 90.085 291.443 88.7169C291.309 88.4493 291.309 88.1817 291.577 88.0479L314.211 78.4802L320.815 75.6501C321.083 75.5163 321.083 75.3825 321.083 75.2487C320.02 70.6329 317.381 66.5325 313.619 63.6548C309.857 60.7771 305.208 59.3026 300.475 59.4855C289.971 59.887 281.206 68.3841 280.805 78.8884C280.669 81.6571 281.098 84.4245 282.066 87.0219C283.035 89.6192 284.522 91.992 286.438 93.9955C288.354 95.999 290.658 97.5911 293.209 98.6748C295.761 99.7584 298.506 100.311 301.278 100.298C309.762 100.298 317.041 95.0463 320.146 87.6397C320.28 87.3721 320.146 87.1045 319.878 87.1045L313.275 85.9002C313.141 85.9002 312.873 85.9002 312.873 86.1678C310.451 90.2089 306.136 93.0391 301.151 93.0391L301.145 93.0257ZM301.145 66.8921C305.052 66.8921 308.551 68.645 310.846 71.3346C310.98 71.6023 310.98 71.8699 310.712 72.0037L288.62 81.3706C288.567 81.3926 288.51 81.403 288.453 81.4011C288.395 81.3992 288.339 81.3852 288.288 81.3598C288.237 81.3345 288.191 81.2984 288.155 81.2541C288.119 81.2098 288.092 81.1583 288.078 81.103V80.0258C288.066 78.3003 288.395 76.5895 289.046 74.9915C289.697 73.3935 290.657 71.9397 291.871 70.7133C293.085 69.487 294.529 68.5123 296.12 67.8451C297.712 67.1779 299.419 66.8313 301.145 66.8252V66.8921ZM256.418 59.0841C251.299 59.2179 247.251 61.2385 244.428 64.6039C244.16 64.8715 243.759 64.7377 243.759 64.3362V60.5627C243.759 60.2951 243.625 60.1613 243.357 60.1613H236.754C236.486 60.1613 236.352 60.2951 236.352 60.5627V117.005C236.352 117.273 236.486 117.406 236.754 117.406H243.217C243.485 117.406 243.618 117.273 243.618 117.005V94.7787C243.618 94.3772 244.02 94.2434 244.287 94.511C247.118 97.8764 251.293 100.031 256.679 100.031C269.21 100.031 279.172 88.6567 276.75 75.7839C275.131 65.9487 266.253 58.9436 256.418 59.0841ZM258.98 92.4904C256.922 92.8328 254.812 92.679 252.825 92.0419C250.838 91.4047 249.031 90.3027 247.556 88.8272C246.081 87.3518 244.978 85.5456 244.341 83.5586C243.704 81.5717 243.55 79.4614 243.893 77.4031C244.829 72.0171 249.145 67.5678 254.598 66.698C256.656 66.3557 258.766 66.5095 260.753 67.1466C262.74 67.7837 264.547 68.8858 266.022 70.3612C267.497 71.8367 268.599 73.6429 269.237 75.6299C269.874 77.6168 270.027 79.7271 269.685 81.7854C268.882 87.1714 264.433 91.4869 258.98 92.4904ZM212.099 59.4855C209.41 59.4855 206.748 60.0151 204.264 61.044C201.78 62.0729 199.523 63.5809 197.622 65.482C195.721 67.3832 194.213 69.6401 193.184 72.1241C192.155 74.608 191.625 77.2703 191.625 79.9589C191.625 82.6475 192.155 85.3097 193.184 87.7937C194.213 90.2776 195.721 92.5346 197.622 94.4357C199.523 96.3369 201.78 97.8449 204.264 98.8738C206.748 99.9027 209.41 100.432 212.099 100.432C217.529 100.432 222.736 98.2752 226.576 94.4357C230.415 90.5962 232.572 85.3887 232.572 79.9589C232.572 74.529 230.415 69.3215 226.576 65.482C222.736 61.6425 217.529 59.4855 212.099 59.4855ZM212.099 66.8921C219.372 66.8921 225.166 72.82 225.166 79.9589C225.136 83.4152 223.75 86.7216 221.306 89.1657C218.862 91.6098 215.555 92.996 212.099 93.0257C208.643 92.996 205.336 91.6098 202.892 89.1657C200.448 86.7216 199.062 83.4152 199.032 79.9589C199.062 76.5025 200.448 73.1962 202.892 70.7521C205.336 68.308 208.643 66.9218 212.099 66.8921Z" fill="white"/>
</g>
<defs>
<clipPath id="clip0_449_49">
<rect width="707" height="160" fill="white" transform="translate(0.129395)"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 12 KiB

View File

@ -0,0 +1,16 @@
<svg width="530" height="141" viewBox="0 0 530 141" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_449_71)">
<path d="M168.99 28.0228C167.904 28.0228 166.98 28.8118 166.81 29.8861L154.23 109.667C154.185 109.958 154.202 110.256 154.283 110.54C154.363 110.824 154.504 111.087 154.696 111.311C154.888 111.535 155.126 111.715 155.394 111.838C155.661 111.962 155.953 112.026 156.248 112.026H171.167C172.252 112.026 173.177 111.235 173.347 110.162L177.042 86.7343C177.211 85.6615 178.136 84.8709 179.222 84.8709H192.786C208.635 84.8709 222.089 73.3073 224.546 57.6382C227.024 41.8364 214.679 28.0571 197.182 28.0228H168.99ZM183.493 45.8329H194.346C203.28 45.8329 206.19 51.1048 205.27 56.9349C204.35 62.7775 199.831 67.0811 191.188 67.0811H180.142L183.493 45.8329ZM254.889 51.256C251.122 51.2701 246.788 52.0419 241.921 54.069C230.758 58.7218 225.397 68.3379 223.121 75.3484C223.121 75.3484 215.875 96.7371 232.246 108.488C232.246 108.488 247.428 119.8 264.52 107.791L264.225 109.667C264.179 109.958 264.197 110.255 264.277 110.539C264.357 110.823 264.498 111.085 264.689 111.31C264.881 111.534 265.118 111.714 265.386 111.837C265.654 111.961 265.945 112.025 266.239 112.026H280.402C281.489 112.026 282.412 111.235 282.582 110.162L291.197 55.5284C291.243 55.237 291.226 54.9391 291.146 54.6551C291.066 54.3711 290.925 54.1078 290.734 53.8833C290.543 53.6589 290.305 53.4785 290.037 53.3547C289.769 53.2309 289.478 53.1666 289.183 53.1661H275.02C273.933 53.1661 273.008 53.9567 272.84 55.0295L272.377 57.9703C272.377 57.9703 266.193 51.2139 254.889 51.256ZM255.353 68.5126C256.979 68.5126 258.466 68.7371 259.801 69.1659C265.912 71.1275 269.377 76.9981 268.374 83.3616C267.138 91.1969 260.712 96.9663 252.471 96.9663C250.846 96.9663 249.359 96.7433 248.022 96.3145C241.913 94.3529 238.427 88.4822 239.429 82.1188C240.666 74.2834 247.112 68.5126 255.353 68.5126Z" fill="#003087"/>
<path d="M372.944 28.0228C371.857 28.0228 370.934 28.8118 370.764 29.8861L358.184 109.667C358.138 109.958 358.156 110.256 358.236 110.54C358.317 110.824 358.458 111.087 358.65 111.311C358.841 111.535 359.079 111.715 359.347 111.838C359.615 111.962 359.907 112.026 360.202 112.026H375.121C376.206 112.026 377.131 111.235 377.301 110.162L380.996 86.7343C381.165 85.6615 382.089 84.8709 383.176 84.8709H396.74C412.589 84.8709 426.041 73.3073 428.496 57.6382C430.976 41.8364 418.632 28.0571 401.136 28.0228H372.944ZM387.447 45.8329H398.299C407.234 45.8329 410.144 51.1048 409.224 56.9349C408.304 62.7775 403.787 67.0811 395.142 67.0811H384.096L387.447 45.8329ZM458.842 51.256C455.074 51.2701 450.74 52.0419 445.873 54.069C434.71 58.7218 429.349 68.3379 427.073 75.3484C427.073 75.3484 419.83 96.7371 436.201 108.488C436.201 108.488 451.38 119.8 468.473 107.791L468.178 109.667C468.133 109.958 468.151 110.256 468.231 110.54C468.311 110.824 468.452 111.087 468.644 111.311C468.836 111.535 469.074 111.715 469.342 111.838C469.61 111.962 469.901 112.026 470.196 112.026H484.358C485.444 112.026 486.368 111.235 486.537 110.162L495.156 55.5284C495.202 55.2368 495.184 54.9386 495.104 54.6544C495.024 54.3702 494.883 54.1067 494.691 53.8822C494.5 53.6576 494.261 53.4773 493.993 53.3537C493.725 53.2301 493.433 53.1661 493.138 53.1661H478.975C477.888 53.1661 476.963 53.9567 476.795 55.0295L476.332 57.9703C476.332 57.9703 470.145 51.2139 458.842 51.256ZM459.305 68.5126C460.931 68.5126 462.419 68.7371 463.753 69.1659C469.864 71.1275 473.329 76.9981 472.326 83.3616C471.09 91.1969 464.664 96.9663 456.423 96.9663C454.798 96.9663 453.311 96.7433 451.974 96.3145C445.865 94.3529 442.379 88.4822 443.381 82.1188C444.618 74.2834 451.064 68.5126 459.305 68.5126Z" fill="#0070E0"/>
<path d="M297.918 53.1661C296.795 53.1661 295.997 54.2623 296.34 55.3304L311.867 103.514L297.827 126.22C297.146 127.322 297.938 128.746 299.234 128.746H315.827C316.302 128.746 316.768 128.623 317.182 128.39C317.595 128.156 317.941 127.82 318.187 127.414L361.552 55.6766C362.218 54.5742 361.422 53.1646 360.134 53.1646H343.542C343.063 53.165 342.592 53.2901 342.176 53.5277C341.76 53.7653 341.413 54.1072 341.169 54.5196L324.099 83.3382L315.435 54.7332C315.152 53.8023 314.293 53.1646 313.322 53.1646L297.918 53.1661Z" fill="#003087"/>
<path d="M511.247 28.0228C510.162 28.0228 509.237 28.8133 509.068 29.8861L496.484 109.663C496.438 109.955 496.456 110.253 496.536 110.538C496.616 110.822 496.757 111.085 496.948 111.31C497.14 111.534 497.378 111.715 497.647 111.838C497.915 111.962 498.207 112.026 498.502 112.026H513.421C514.506 112.026 515.431 111.235 515.601 110.162L528.181 30.382C528.227 30.0908 528.209 29.7932 528.129 29.5096C528.049 29.226 527.908 28.9631 527.717 28.739C527.525 28.5148 527.288 28.3348 527.02 28.2112C526.752 28.0875 526.461 28.0233 526.167 28.0228H511.247Z" fill="#0070E0"/>
<path d="M44.6126 28.0228C43.6516 28.0236 42.7223 28.3671 41.9918 28.9916C41.2613 29.616 40.7773 30.4806 40.6271 31.4298L34.0049 73.4305C34.3136 71.469 36.0038 70.0235 37.9904 70.0235H57.3956C76.9255 70.0235 93.4975 55.7764 96.5256 36.4694C96.751 35.028 96.8787 33.573 96.9077 32.1143C91.9446 29.5119 86.1144 28.0228 79.726 28.0228H44.6126Z" fill="#001C64"/>
<path d="M96.9081 32.1159C96.879 33.5745 96.7513 35.0295 96.526 36.4709C93.4979 55.7779 76.9243 70.0251 57.3959 70.0251H37.9907C36.0057 70.0251 34.314 71.469 34.0052 73.4321L27.9162 112.027L24.1022 136.24C24.0278 136.708 24.0557 137.186 24.1841 137.642C24.3125 138.098 24.5383 138.521 24.8459 138.881C25.1535 139.241 25.5356 139.53 25.9658 139.728C26.396 139.927 26.8641 140.029 27.3377 140.029H48.4005C49.3615 140.028 50.2908 139.685 51.0213 139.06C51.7518 138.436 52.2357 137.571 52.3859 136.622L57.9338 101.434C58.0842 100.484 58.5686 99.6189 59.2997 98.9943C60.0309 98.3698 60.9609 98.0266 61.9225 98.0266H74.3235C93.8534 98.0266 110.425 83.7795 113.454 64.4725C115.604 50.7695 108.702 38.3 96.9081 32.1159Z" fill="#0070E0"/>
<path d="M20.684 0.0260696C18.699 0.0260696 17.0072 1.46996 16.6985 3.42998L0.170073 108.238C-0.143342 110.228 1.39415 112.027 3.40874 112.027H27.919L34.0049 73.4322L40.6271 31.4315C40.7774 30.4823 41.2613 29.6177 41.9918 28.9932C42.7224 28.3688 43.6516 28.0253 44.6127 28.0245H79.726C86.1159 28.0245 91.9446 29.5151 96.9078 32.116C97.2477 14.5383 82.7432 0.0260696 62.8016 0.0260696H20.684Z" fill="#003087"/>
</g>
<defs>
<clipPath id="clip0_449_71">
<rect width="529" height="141" fill="white" transform="translate(0.129395)"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 129 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 120 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 145 KiB

Some files were not shown because too many files have changed in this diff Show More