1
0
Fork 0
forked from Kispi/Core

feat(webapp): ui refinements

This commit is contained in:
Simon Giesel 2023-06-03 23:42:07 +02:00
parent 364ee76159
commit 8a6a8bd1dc
18 changed files with 266 additions and 1246 deletions

View file

@ -140,7 +140,7 @@ module.exports = {
'svg': 'always',
'math': 'always',
}],
'tailwindcss/no-custom-classname': 'off',
// 'tailwindcss/no-custom-classname': 'off',
},
},
],

View file

@ -8,13 +8,14 @@
"build": "vue-tsc --noEmit && vite build",
"lint": "eslint -c .eslintrc.js src/",
"preview": "vite preview",
"typegen": "pocketbase-typegen --json ../server/pb_schema.json --out ./src/types/pocketbase.types.ts"
"typegen": "pocketbase-typegen --json ../server/pb_schema.json --out ./src/types/pocketbase.types.ts",
"optimize-svg": "svgo -f ./src/assets/svg/ --config=./src/assets/svg/svgo.config.js"
},
"dependencies": {
"@heroicons/vue": "^2.0.18",
"@vueuse/core": "^10.1.2",
"canvas-confetti": "^1.6.0",
"daisyui": "^2.52.0",
"daisyui": "^3.0.2",
"pocketbase": "^0.15.1",
"vue": "^3.3.4",
"vue-router": "4.2.2"
@ -26,15 +27,16 @@
"@typescript-eslint/parser": "^5.59.8",
"@vitejs/plugin-vue": "^4.2.3",
"autoprefixer": "^10.4.14",
"eslint": "^8.41.0",
"eslint": "^8.42.0",
"eslint-plugin-tailwindcss": "^3.12.1",
"eslint-plugin-vue": "^9.14.1",
"eslint-plugin-vue-scoped-css": "^2.4.0",
"pocketbase-typegen": "^1.1.9",
"postcss": "^8.4.24",
"sass": "^1.62.1",
"svgo": "^3.0.2",
"tailwindcss": "^3.3.2",
"typescript": "^5.0.4",
"typescript": "^5.1.3",
"vite": "^4.3.9",
"vue-eslint-parser": "^9.3.0",
"vue-tsc": "^1.6.5"

View file

@ -15,8 +15,8 @@ dependencies:
specifier: ^1.6.0
version: 1.6.0
daisyui:
specifier: ^2.52.0
version: 2.52.0(autoprefixer@10.4.14)(postcss@8.4.24)
specifier: ^3.0.2
version: 3.0.2(postcss@8.4.24)
pocketbase:
specifier: ^0.15.1
version: 0.15.1
@ -36,10 +36,10 @@ devDependencies:
version: 1.6.0
'@typescript-eslint/eslint-plugin':
specifier: ^5.59.8
version: 5.59.8(@typescript-eslint/parser@5.59.8)(eslint@8.41.0)(typescript@5.0.4)
version: 5.59.8(@typescript-eslint/parser@5.59.8)(eslint@8.42.0)(typescript@5.1.3)
'@typescript-eslint/parser':
specifier: ^5.59.8
version: 5.59.8(eslint@8.41.0)(typescript@5.0.4)
version: 5.59.8(eslint@8.42.0)(typescript@5.1.3)
'@vitejs/plugin-vue':
specifier: ^4.2.3
version: 4.2.3(vite@4.3.9)(vue@3.3.4)
@ -47,17 +47,17 @@ devDependencies:
specifier: ^10.4.14
version: 10.4.14(postcss@8.4.24)
eslint:
specifier: ^8.41.0
version: 8.41.0
specifier: ^8.42.0
version: 8.42.0
eslint-plugin-tailwindcss:
specifier: ^3.12.1
version: 3.12.1(tailwindcss@3.3.2)
eslint-plugin-vue:
specifier: ^9.14.1
version: 9.14.1(eslint@8.41.0)
version: 9.14.1(eslint@8.42.0)
eslint-plugin-vue-scoped-css:
specifier: ^2.4.0
version: 2.4.0(eslint@8.41.0)(vue-eslint-parser@9.3.0)
version: 2.4.0(eslint@8.42.0)(vue-eslint-parser@9.3.0)
pocketbase-typegen:
specifier: ^1.1.9
version: 1.1.9
@ -67,21 +67,24 @@ devDependencies:
sass:
specifier: ^1.62.1
version: 1.62.1
svgo:
specifier: ^3.0.2
version: 3.0.2
tailwindcss:
specifier: ^3.3.2
version: 3.3.2
typescript:
specifier: ^5.0.4
version: 5.0.4
specifier: ^5.1.3
version: 5.1.3
vite:
specifier: ^4.3.9
version: 4.3.9(sass@1.62.1)
vue-eslint-parser:
specifier: ^9.3.0
version: 9.3.0(eslint@8.41.0)
version: 9.3.0(eslint@8.42.0)
vue-tsc:
specifier: ^1.6.5
version: 1.7.0(typescript@5.0.4)
version: 1.7.0(typescript@5.1.3)
packages:
@ -305,13 +308,13 @@ packages:
dev: true
optional: true
/@eslint-community/eslint-utils@4.4.0(eslint@8.41.0):
/@eslint-community/eslint-utils@4.4.0(eslint@8.42.0):
resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
dependencies:
eslint: 8.41.0
eslint: 8.42.0
eslint-visitor-keys: 3.4.1
dev: true
@ -337,8 +340,8 @@ packages:
- supports-color
dev: true
/@eslint/js@8.41.0:
resolution: {integrity: sha512-LxcyMGxwmTh2lY9FwHPGWOHmYFCZvbrFCBZL4FzSSsxsRPuhrYUg/49/0KDfW8tnIEaEHtfmn6+NPN+1DqaNmA==}
/@eslint/js@8.42.0:
resolution: {integrity: sha512-6SWlXpWU5AvId8Ac7zjzmIOqMOba/JWY8XZ4A7q7Gn1Vlfg/SFFIlrtHXt9nPn4op9ZPAkl91Jao+QQv3r/ukw==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dev: true
@ -355,8 +358,8 @@ packages:
vue: 3.3.4
dev: false
/@humanwhocodes/config-array@0.11.8:
resolution: {integrity: sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==}
/@humanwhocodes/config-array@0.11.10:
resolution: {integrity: sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==}
engines: {node: '>=10.10.0'}
dependencies:
'@humanwhocodes/object-schema': 1.2.1
@ -475,6 +478,11 @@ packages:
dev: true
optional: true
/@trysound/sax@0.2.0:
resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==}
engines: {node: '>=10.13.0'}
dev: true
/@types/canvas-confetti@1.6.0:
resolution: {integrity: sha512-Yq6rIccwcco0TLD5SMUrIM7Fk7Fe/C0jmNRxJJCLtAF6gebDkPuUjK5EHedxecm69Pi/aA+It39Ux4OHmFhjRw==}
dev: true
@ -491,7 +499,7 @@ packages:
resolution: {integrity: sha512-4p9vcSmxAayx72yn70joFoL44c9MO/0+iVEBIQXe3v2h2SiAsEIo/G5v6ObFWvNKRFjbrVadNf9LqEEZeQPzdA==}
dev: false
/@typescript-eslint/eslint-plugin@5.59.8(@typescript-eslint/parser@5.59.8)(eslint@8.41.0)(typescript@5.0.4):
/@typescript-eslint/eslint-plugin@5.59.8(@typescript-eslint/parser@5.59.8)(eslint@8.42.0)(typescript@5.1.3):
resolution: {integrity: sha512-JDMOmhXteJ4WVKOiHXGCoB96ADWg9q7efPWHRViT/f09bA8XOMLAVHHju3l0MkZnG1izaWXYmgvQcUjTRcpShQ==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
@ -503,23 +511,23 @@ packages:
optional: true
dependencies:
'@eslint-community/regexpp': 4.5.1
'@typescript-eslint/parser': 5.59.8(eslint@8.41.0)(typescript@5.0.4)
'@typescript-eslint/parser': 5.59.8(eslint@8.42.0)(typescript@5.1.3)
'@typescript-eslint/scope-manager': 5.59.8
'@typescript-eslint/type-utils': 5.59.8(eslint@8.41.0)(typescript@5.0.4)
'@typescript-eslint/utils': 5.59.8(eslint@8.41.0)(typescript@5.0.4)
'@typescript-eslint/type-utils': 5.59.8(eslint@8.42.0)(typescript@5.1.3)
'@typescript-eslint/utils': 5.59.8(eslint@8.42.0)(typescript@5.1.3)
debug: 4.3.4
eslint: 8.41.0
eslint: 8.42.0
grapheme-splitter: 1.0.4
ignore: 5.2.0
natural-compare-lite: 1.4.0
semver: 7.5.1
tsutils: 3.21.0(typescript@5.0.4)
typescript: 5.0.4
tsutils: 3.21.0(typescript@5.1.3)
typescript: 5.1.3
transitivePeerDependencies:
- supports-color
dev: true
/@typescript-eslint/parser@5.59.8(eslint@8.41.0)(typescript@5.0.4):
/@typescript-eslint/parser@5.59.8(eslint@8.42.0)(typescript@5.1.3):
resolution: {integrity: sha512-AnR19RjJcpjoeGojmwZtCwBX/RidqDZtzcbG3xHrmz0aHHoOcbWnpDllenRDmDvsV0RQ6+tbb09/kyc+UT9Orw==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
@ -531,10 +539,10 @@ packages:
dependencies:
'@typescript-eslint/scope-manager': 5.59.8
'@typescript-eslint/types': 5.59.8
'@typescript-eslint/typescript-estree': 5.59.8(typescript@5.0.4)
'@typescript-eslint/typescript-estree': 5.59.8(typescript@5.1.3)
debug: 4.3.4
eslint: 8.41.0
typescript: 5.0.4
eslint: 8.42.0
typescript: 5.1.3
transitivePeerDependencies:
- supports-color
dev: true
@ -547,7 +555,7 @@ packages:
'@typescript-eslint/visitor-keys': 5.59.8
dev: true
/@typescript-eslint/type-utils@5.59.8(eslint@8.41.0)(typescript@5.0.4):
/@typescript-eslint/type-utils@5.59.8(eslint@8.42.0)(typescript@5.1.3):
resolution: {integrity: sha512-+5M518uEIHFBy3FnyqZUF3BMP+AXnYn4oyH8RF012+e7/msMY98FhGL5SrN29NQ9xDgvqCgYnsOiKp1VjZ/fpA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
@ -557,12 +565,12 @@ packages:
typescript:
optional: true
dependencies:
'@typescript-eslint/typescript-estree': 5.59.8(typescript@5.0.4)
'@typescript-eslint/utils': 5.59.8(eslint@8.41.0)(typescript@5.0.4)
'@typescript-eslint/typescript-estree': 5.59.8(typescript@5.1.3)
'@typescript-eslint/utils': 5.59.8(eslint@8.42.0)(typescript@5.1.3)
debug: 4.3.4
eslint: 8.41.0
tsutils: 3.21.0(typescript@5.0.4)
typescript: 5.0.4
eslint: 8.42.0
tsutils: 3.21.0(typescript@5.1.3)
typescript: 5.1.3
transitivePeerDependencies:
- supports-color
dev: true
@ -572,7 +580,7 @@ packages:
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dev: true
/@typescript-eslint/typescript-estree@5.59.8(typescript@5.0.4):
/@typescript-eslint/typescript-estree@5.59.8(typescript@5.1.3):
resolution: {integrity: sha512-Jy/lPSDJGNow14vYu6IrW790p7HIf/SOV1Bb6lZ7NUkLc2iB2Z9elESmsaUtLw8kVqogSbtLH9tut5GCX1RLDg==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
@ -587,25 +595,25 @@ packages:
globby: 11.1.0
is-glob: 4.0.3
semver: 7.5.1
tsutils: 3.21.0(typescript@5.0.4)
typescript: 5.0.4
tsutils: 3.21.0(typescript@5.1.3)
typescript: 5.1.3
transitivePeerDependencies:
- supports-color
dev: true
/@typescript-eslint/utils@5.59.8(eslint@8.41.0)(typescript@5.0.4):
/@typescript-eslint/utils@5.59.8(eslint@8.42.0)(typescript@5.1.3):
resolution: {integrity: sha512-Tr65630KysnNn9f9G7ROF3w1b5/7f6QVCJ+WK9nhIocWmx9F+TmCAcglF26Vm7z8KCTwoKcNEBZrhlklla3CKg==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
dependencies:
'@eslint-community/eslint-utils': 4.4.0(eslint@8.41.0)
'@eslint-community/eslint-utils': 4.4.0(eslint@8.42.0)
'@types/json-schema': 7.0.11
'@types/semver': 7.5.0
'@typescript-eslint/scope-manager': 5.59.8
'@typescript-eslint/types': 5.59.8
'@typescript-eslint/typescript-estree': 5.59.8(typescript@5.0.4)
eslint: 8.41.0
'@typescript-eslint/typescript-estree': 5.59.8(typescript@5.1.3)
eslint: 8.42.0
eslint-scope: 5.1.1
semver: 7.5.1
transitivePeerDependencies:
@ -644,13 +652,13 @@ packages:
muggle-string: 0.2.2
dev: true
/@volar/typescript@1.5.4(typescript@5.0.4):
/@volar/typescript@1.5.4(typescript@5.1.3):
resolution: {integrity: sha512-mVJJ7ZGY2RBDj6PAircUvLBLbFJJRNmqN5IYNpIUyFwnxdKxn1t3NhxaLYSPi/A0gdMDbCBtq0a4Azc0IuIOfQ==}
peerDependencies:
typescript: '*'
dependencies:
'@volar/language-core': 1.5.4
typescript: 5.0.4
typescript: 5.1.3
dev: true
/@vue/compiler-core@3.3.4:
@ -744,14 +752,14 @@ packages:
/@vue/shared@3.3.4:
resolution: {integrity: sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ==}
/@vue/typescript@1.7.0(typescript@5.0.4):
/@vue/typescript@1.7.0(typescript@5.1.3):
resolution: {integrity: sha512-/EcwHTezjY8DknfO/+9S04s9lXQWl7dLDJMTNjgEAWUrgJILN9cbooQ0UfTqC5Z1PPXBHHtdFyqKajrhTlSJ4A==}
peerDependencies:
typescript: '*'
dependencies:
'@volar/typescript': 1.5.4(typescript@5.0.4)
'@volar/typescript': 1.5.4(typescript@5.1.3)
'@vue/language-core': 1.7.0
typescript: 5.0.4
typescript: 5.1.3
dev: true
/@vueuse/core@10.1.2(vue@3.3.4):
@ -929,6 +937,7 @@ packages:
picocolors: 1.0.0
postcss: 8.4.24
postcss-value-parser: 4.2.0
dev: true
/balanced-match@1.0.2:
resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
@ -968,6 +977,7 @@ packages:
electron-to-chromium: 1.4.411
node-releases: 2.0.12
update-browserslist-db: 1.0.11(browserslist@4.21.5)
dev: true
/cacache@15.3.0:
resolution: {integrity: sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==}
@ -1007,6 +1017,7 @@ packages:
/caniuse-lite@1.0.30001489:
resolution: {integrity: sha512-x1mgZEXK8jHIfAxm+xgdpHpk50IN3z3q3zP261/WS+uvePxW8izXuCu6AHz0lkuYTlATDehiZ/tNyYBdSQsOUQ==}
dev: true
/canvas-confetti@1.6.0:
resolution: {integrity: sha512-ej+w/m8Jzpv9Z7W7uJZer14Ke8P2ogsjg4ZMGIuq4iqUOqY2Jq8BNW42iGmNfRwREaaEfFIczLuZZiEVSYNHAA==}
@ -1050,28 +1061,19 @@ packages:
engines: {node: '>=7.0.0'}
dependencies:
color-name: 1.1.4
dev: true
/color-name@1.1.4:
resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
/color-string@1.9.1:
resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==}
dependencies:
color-name: 1.1.4
simple-swizzle: 0.2.2
dev: false
dev: true
/color-support@1.1.3:
resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==}
hasBin: true
dev: true
/color@4.2.3:
resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==}
engines: {node: '>=12.5.0'}
dependencies:
color-convert: 2.0.1
color-string: 1.9.1
/colord@2.9.3:
resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==}
dev: false
/combined-stream@1.0.8:
@ -1085,6 +1087,11 @@ packages:
resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==}
engines: {node: '>= 6'}
/commander@7.2.0:
resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==}
engines: {node: '>= 10'}
dev: true
/commander@9.5.0:
resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==}
engines: {node: ^12.20.0 || >=14}
@ -1114,6 +1121,16 @@ packages:
which: 2.0.2
dev: true
/css-select@5.1.0:
resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==}
dependencies:
boolbase: 1.0.0
css-what: 6.1.0
domhandler: 5.0.3
domutils: 3.1.0
nth-check: 2.1.1
dev: true
/css-selector-tokenizer@0.8.0:
resolution: {integrity: sha512-Jd6Ig3/pe62/qe5SBPTN8h8LeUg/pT4lLgtavPf7updwwHpvFzxvOQBHYj2LZDMjUnBzgvIUSjRcf6oT5HzHFg==}
dependencies:
@ -1121,6 +1138,27 @@ packages:
fastparse: 1.1.2
dev: false
/css-tree@2.2.1:
resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==}
engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'}
dependencies:
mdn-data: 2.0.28
source-map-js: 1.0.2
dev: true
/css-tree@2.3.1:
resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==}
engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0}
dependencies:
mdn-data: 2.0.30
source-map-js: 1.0.2
dev: true
/css-what@6.1.0:
resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==}
engines: {node: '>= 6'}
dev: true
/css@3.0.0:
resolution: {integrity: sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==}
dependencies:
@ -1134,17 +1172,22 @@ packages:
engines: {node: '>=4'}
hasBin: true
/csso@5.0.5:
resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==}
engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'}
dependencies:
css-tree: 2.2.1
dev: true
/csstype@3.1.2:
resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==}
/daisyui@2.52.0(autoprefixer@10.4.14)(postcss@8.4.24):
resolution: {integrity: sha512-LQTA5/IVXAJHBMFoeaEMfd7/akAFPPcdQPR3O9fzzcFiczneJFM73CFPnScmW2sOgn/D83cvkP854ep2T9OfTg==}
/daisyui@3.0.2(postcss@8.4.24):
resolution: {integrity: sha512-0X+0PkgTIWevt5m4AZCCgvqI5pKRormTEhdfmc31dwfLNq6uY4wENCXAtcXzZMKt7JBKcVTWlj/uDrOjj6XpUQ==}
peerDependencies:
autoprefixer: ^10.0.2
postcss: ^8.1.6
postcss: ^8
dependencies:
autoprefixer: 10.4.14(postcss@8.4.24)
color: 4.2.3
colord: 2.9.3
css-selector-tokenizer: 0.8.0
postcss: 8.4.24
postcss-js: 4.0.1(postcss@8.4.24)
@ -1218,8 +1261,36 @@ packages:
esutils: 2.0.3
dev: true
/dom-serializer@2.0.0:
resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==}
dependencies:
domelementtype: 2.3.0
domhandler: 5.0.3
entities: 4.5.0
dev: true
/domelementtype@2.3.0:
resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==}
dev: true
/domhandler@5.0.3:
resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==}
engines: {node: '>= 4'}
dependencies:
domelementtype: 2.3.0
dev: true
/domutils@3.1.0:
resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==}
dependencies:
dom-serializer: 2.0.0
domelementtype: 2.3.0
domhandler: 5.0.3
dev: true
/electron-to-chromium@1.4.411:
resolution: {integrity: sha512-5VXLW4Qw89vM2WTICHua/y8v7fKGDRVa2VPOtBB9IpLvW316B+xd8yD1wTmLPY2ot/00P/qt87xdolj4aG/Lzg==}
dev: true
/emoji-regex@8.0.0:
resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
@ -1233,6 +1304,11 @@ packages:
dev: true
optional: true
/entities@4.5.0:
resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
engines: {node: '>=0.12'}
dev: true
/env-paths@2.2.1:
resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==}
engines: {node: '>=6'}
@ -1277,6 +1353,7 @@ packages:
/escalade@3.1.1:
resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==}
engines: {node: '>=6'}
dev: true
/escape-string-regexp@4.0.0:
resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
@ -1294,39 +1371,39 @@ packages:
tailwindcss: 3.3.2
dev: true
/eslint-plugin-vue-scoped-css@2.4.0(eslint@8.41.0)(vue-eslint-parser@9.3.0):
/eslint-plugin-vue-scoped-css@2.4.0(eslint@8.42.0)(vue-eslint-parser@9.3.0):
resolution: {integrity: sha512-H2GdGyaNuz58gMwJYrPAyok2ZZFklb1wnI4jqLyQZf17gvZeTOpYzCxqhhcT5hBeaCUHhjxU5akCI7A4AtBHew==}
engines: {node: ^12.22 || ^14.17 || >=16}
peerDependencies:
eslint: '>=5.0.0'
vue-eslint-parser: '>=7.1.0'
dependencies:
eslint: 8.41.0
eslint-utils: 3.0.0(eslint@8.41.0)
eslint: 8.42.0
eslint-utils: 3.0.0(eslint@8.42.0)
lodash: 4.17.21
postcss: 8.4.24
postcss-safe-parser: 6.0.0(postcss@8.4.24)
postcss-scss: 4.0.4(postcss@8.4.24)
postcss-selector-parser: 6.0.10
postcss-styl: 0.12.3
vue-eslint-parser: 9.3.0(eslint@8.41.0)
vue-eslint-parser: 9.3.0(eslint@8.42.0)
transitivePeerDependencies:
- supports-color
dev: true
/eslint-plugin-vue@9.14.1(eslint@8.41.0):
/eslint-plugin-vue@9.14.1(eslint@8.42.0):
resolution: {integrity: sha512-LQazDB1qkNEKejLe/b5a9VfEbtbczcOaui5lQ4Qw0tbRBbQYREyxxOV5BQgNDTqGPs9pxqiEpbMi9ywuIaF7vw==}
engines: {node: ^14.17.0 || >=16.0.0}
peerDependencies:
eslint: ^6.2.0 || ^7.0.0 || ^8.0.0
dependencies:
'@eslint-community/eslint-utils': 4.4.0(eslint@8.41.0)
eslint: 8.41.0
'@eslint-community/eslint-utils': 4.4.0(eslint@8.42.0)
eslint: 8.42.0
natural-compare: 1.4.0
nth-check: 2.1.1
postcss-selector-parser: 6.0.10
semver: 7.3.7
vue-eslint-parser: 9.3.0(eslint@8.41.0)
vue-eslint-parser: 9.3.0(eslint@8.42.0)
xml-name-validator: 4.0.0
transitivePeerDependencies:
- supports-color
@ -1356,13 +1433,13 @@ packages:
estraverse: 5.3.0
dev: true
/eslint-utils@3.0.0(eslint@8.41.0):
/eslint-utils@3.0.0(eslint@8.42.0):
resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==}
engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0}
peerDependencies:
eslint: '>=5'
dependencies:
eslint: 8.41.0
eslint: 8.42.0
eslint-visitor-keys: 2.1.0
dev: true
@ -1381,16 +1458,16 @@ packages:
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dev: true
/eslint@8.41.0:
resolution: {integrity: sha512-WQDQpzGBOP5IrXPo4Hc0814r4/v2rrIsB0rhT7jtunIalgg6gYXWhRMOejVO8yH21T/FGaxjmFjBMNqcIlmH1Q==}
/eslint@8.42.0:
resolution: {integrity: sha512-ulg9Ms6E1WPf67PHaEY4/6E2tEn5/f7FXGzr3t9cBMugOmf1INYvuUwwh1aXQN4MfJ6a5K2iNwP3w4AColvI9A==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
hasBin: true
dependencies:
'@eslint-community/eslint-utils': 4.4.0(eslint@8.41.0)
'@eslint-community/eslint-utils': 4.4.0(eslint@8.42.0)
'@eslint-community/regexpp': 4.5.1
'@eslint/eslintrc': 2.0.3
'@eslint/js': 8.41.0
'@humanwhocodes/config-array': 0.11.8
'@eslint/js': 8.42.0
'@humanwhocodes/config-array': 0.11.10
'@humanwhocodes/module-importer': 1.0.1
'@nodelib/fs.walk': 1.2.8
ajv: 6.12.6
@ -1565,6 +1642,7 @@ packages:
/fraction.js@4.2.0:
resolution: {integrity: sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==}
dev: true
/fs-minipass@2.1.0:
resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==}
@ -1790,10 +1868,6 @@ packages:
dev: true
optional: true
/is-arrayish@0.3.2:
resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==}
dev: false
/is-binary-path@2.1.0:
resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
engines: {node: '>=8'}
@ -1945,6 +2019,14 @@ packages:
dev: true
optional: true
/mdn-data@2.0.28:
resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==}
dev: true
/mdn-data@2.0.30:
resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==}
dev: true
/merge2@1.4.1:
resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
engines: {node: '>= 8'}
@ -2124,6 +2206,7 @@ packages:
/node-releases@2.0.12:
resolution: {integrity: sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ==}
dev: true
/nopt@5.0.0:
resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==}
@ -2140,6 +2223,7 @@ packages:
/normalize-range@0.1.2:
resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==}
engines: {node: '>=0.10.0'}
dev: true
/npmlog@5.0.1:
resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==}
@ -2537,12 +2621,6 @@ packages:
resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
dev: true
/simple-swizzle@0.2.2:
resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==}
dependencies:
is-arrayish: 0.3.2
dev: false
/slash@3.0.0:
resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
engines: {node: '>=8'}
@ -2692,6 +2770,19 @@ packages:
resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
engines: {node: '>= 0.4'}
/svgo@3.0.2:
resolution: {integrity: sha512-Z706C1U2pb1+JGP48fbazf3KxHrWOsLme6Rv7imFBn5EnuanDW1GPaA/P1/dvObE670JDePC3mnj0k0B7P0jjQ==}
engines: {node: '>=14.0.0'}
hasBin: true
dependencies:
'@trysound/sax': 0.2.0
commander: 7.2.0
css-select: 5.1.0
css-tree: 2.3.1
csso: 5.0.5
picocolors: 1.0.0
dev: true
/tailwindcss@3.3.2:
resolution: {integrity: sha512-9jPkMiIBXvPc2KywkraqsUfbfj+dHDb+JPWtSJa9MLFdrPyazI7q6WX2sUrm7R9eVR7qqv3Pas7EvQFzxKnI6w==}
engines: {node: '>=14.0.0'}
@ -2771,14 +2862,14 @@ packages:
resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==}
dev: true
/tsutils@3.21.0(typescript@5.0.4):
/tsutils@3.21.0(typescript@5.1.3):
resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==}
engines: {node: '>= 6'}
peerDependencies:
typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta'
dependencies:
tslib: 1.14.1
typescript: 5.0.4
typescript: 5.1.3
dev: true
/type-check@0.4.0:
@ -2793,9 +2884,9 @@ packages:
engines: {node: '>=10'}
dev: true
/typescript@5.0.4:
resolution: {integrity: sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==}
engines: {node: '>=12.20'}
/typescript@5.1.3:
resolution: {integrity: sha512-XH627E9vkeqhlZFQuL+UsyAXEnibT0kWR2FWONlr4sTjvxyJYnyefgrkyECLzM5NenmKzRAy2rR/OlYLA1HkZw==}
engines: {node: '>=14.17'}
hasBin: true
dev: true
@ -2822,6 +2913,7 @@ packages:
browserslist: 4.21.5
escalade: 3.1.1
picocolors: 1.0.0
dev: true
/uri-js@4.4.1:
resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
@ -2880,14 +2972,14 @@ packages:
vue: 3.3.4
dev: false
/vue-eslint-parser@9.3.0(eslint@8.41.0):
/vue-eslint-parser@9.3.0(eslint@8.42.0):
resolution: {integrity: sha512-48IxT9d0+wArT1+3wNIy0tascRoywqSUe2E1YalIC1L8jsUGe5aJQItWfRok7DVFGz3UYvzEI7n5wiTXsCMAcQ==}
engines: {node: ^14.17.0 || >=16.0.0}
peerDependencies:
eslint: '>=6.0.0'
dependencies:
debug: 4.3.4
eslint: 8.41.0
eslint: 8.42.0
eslint-scope: 7.1.1
eslint-visitor-keys: 3.3.0
espree: 9.3.2
@ -2914,16 +3006,16 @@ packages:
he: 1.2.0
dev: true
/vue-tsc@1.7.0(typescript@5.0.4):
/vue-tsc@1.7.0(typescript@5.1.3):
resolution: {integrity: sha512-WXRQ6StfLrXHq1uIe29o9OOKh6aXR2LdxT7z951ZZzEJj3y+dCoaqCOT9NVtvCK5C2m6PbFKRx5sG7t/jbtmjg==}
hasBin: true
peerDependencies:
typescript: '*'
dependencies:
'@vue/language-core': 1.7.0
'@vue/typescript': 1.7.0(typescript@5.0.4)
'@vue/typescript': 1.7.0(typescript@5.1.3)
semver: 7.5.1
typescript: 5.0.4
typescript: 5.1.3
dev: true
/vue@3.3.4:

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 77 KiB

After

Width:  |  Height:  |  Size: 77 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 33 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 32 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 33 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 32 KiB

View file

@ -0,0 +1,6 @@
module.exports = {
plugins: [
'preset-default',
'prefixIds',
],
};

View file

@ -1,13 +1,13 @@
<template>
<img
v-if="isDark"
src="../../assets/logo_white.svg"
class="w-48 scale-[1.4]"
src="../../assets/svg/logo_white.svg"
class="w-48"
/>
<img
v-else
src="../../assets/logo_black.svg"
class="w-48 scale-[1.4]"
src="../../assets/svg/logo_black.svg"
class="w-48"
/>
</template>

View file

@ -4,7 +4,7 @@
title="Account hinzufügen"
>
<div class="flex flex-col gap-4">
<h4 class="text-md">Daten</h4>
<h4 class="text-lg">Daten</h4>
<div class="flex gap-4">
<AtomInput
v-model="firstName"
@ -46,7 +46,7 @@
placeholder="Stadt"
/>
</div>
<h4 class="text-md">Kontakt</h4>
<h4 class="text-lg">Kontakt</h4>
<div
v-for="index in contactCount"
class="flex gap-4"

View file

@ -1,12 +1,12 @@
<template>
<div class="overflow-x-auto">
<table class="table-zebra table w-full">
<thead class="sticky top-0">
<div class="h-full overflow-x-auto rounded-lg">
<table class="table-pin-rows table-zebra table">
<thead class="uppercase">
<tr>
<th v-for="header in tableHeaders">{{ header.title }}</th>
</tr>
</thead>
<tbody>
<tbody class="bg-base-100">
<tr v-for="entry in data">
<td
v-for="header in tableHeaders"
@ -84,7 +84,5 @@ export enum TableHeaderType {
</script>
<style lang="scss" scoped>
.table th:first-child {
position: inherit;
}
</style>

View file

@ -1,13 +1,13 @@
<template>
<div class="drawer-mobile drawer">
<div class="drawer lg:drawer-open">
<input
:id="drawerId"
type="checkbox"
class="drawer-toggle"
/>
<div class="drawer-content flex h-screen flex-col bg-base-300">
<div class="drawer-content flex h-screen flex-col overflow-y-scroll bg-base-300">
<div
class="navbar sticky top-0 z-50 max-w-7xl place-self-center bg-neutral-focus text-neutral-content shadow-lg lg:hidden"
class="navbar top-0 max-w-7xl place-self-center bg-neutral-focus text-neutral-content shadow-lg lg:hidden"
>
<div class="flex-none">
<label
@ -31,11 +31,9 @@
:for="drawerId"
class="drawer-overlay"
/>
<ul class="menu w-64 overflow-y-auto bg-base-100 p-4">
<ul class="menu h-full w-64 overflow-y-auto bg-base-100 p-4">
<li class="pointer-events-none">
<a>
<AtomLogo class="w-28" />
</a>
</li>
<template v-if="isAuthenticated">
<li class="pointer-events-none rounded-md bg-warning uppercase text-warning-content">
@ -51,7 +49,7 @@
Abmelden
</span>
</li>
<li class="menu-title" />
<li class="menu-title !p-0" />
</template>
<li
v-for="navigationEntry of navigationEntries"
@ -107,7 +105,7 @@ defineProps({
function getNavigationEntryClass(navigationEntry: INavigationEntry) {
return {
// eslint-disable-next-line @typescript-eslint/naming-convention
'menu-title': navigationEntry.name === 'divider',
'menu-title !p-0': navigationEntry.name === 'divider',
disabled: navigationEntry.disabled,
};
}

View file

@ -1,12 +1,12 @@
<template>
<table class="table-zebra table">
<thead>
<table class="table-zebra table overflow-hidden rounded-lg">
<thead class="bg-base-200">
<tr>
<th />
<th class="text-right text-lg normal-case">{{ CurrencyService.toString(balance) }}</th>
<th class="text-right text-lg normal-case text-base-content">{{ CurrencyService.toString(balance) }}</th>
</tr>
</thead>
<tbody>
<tbody class="bg-base-100">
<tr v-for="transaction in transactions">
<td>
<div class="flex items-center">

View file

@ -8,7 +8,7 @@
<h4 class="mb-10 text-4xl">Kontonummer: {{ account.accountNumber }}</h4>
<MoleculeTransactionTable
v-if="transactions"
class="mb-24 w-[42rem]"
class="mb-24 max-w-[42rem]"
:balance="getBalance()"
:transactions="transactions"
/>
@ -72,11 +72,9 @@
v-if="error"
class="alert alert-error mt-6 shadow-lg"
>
<div>
<XCircleIcon class="h-6 w-6" />
<span class="text-base font-normal"><b>Fehler: </b>{{ error }}</span>
</div>
</div>
</AtomHeroText>
</template>
@ -121,6 +119,9 @@ if(router.currentRoute.value.query.accountNumber) {
onKeyStroke(['e', 'g', 'a'], (e) => {
e.preventDefault();
if(depositModalOpen.value || salaryModalOpen.value || withdrawModalOpen.value) {
return;
}
switch (e.key) {
case 'e':
depositModalLabel.value?.click();

View file

@ -5,11 +5,9 @@
v-if="error"
class="alert alert-error mt-6 shadow-lg"
>
<div>
<XCircleIcon class="h-6 w-6" />
<span class="text-base font-normal"><b>Fehler:</b> {{ error }}</span>
</div>
</div>
</AtomHeroText>
</template>

View file

@ -2,7 +2,7 @@
<MoleculeAuthDialog v-if="!isAuthenticated" />
<div
v-else
class="lg:p-6"
class="flex h-full flex-col p-6"
>
<AtomInput
v-model="searchQuery"
@ -16,6 +16,7 @@
:contact-modal-id="contactModalId"
@open-contact-modal="openContactModal"
/>
</div>
<MoleculeContactModal
:id="contactModalId"
:contact-id="contactId"
@ -39,7 +40,6 @@
>
<PlusIcon class="h-7 w-7" />
</label>
</div>
</template>
<script lang="ts" setup>
@ -144,12 +144,10 @@ onMounted(async () => {
getData();
}
accountsSubscription.value = await AccountService.subscribeToAccountChanges(async () => {
console.log('accounts changed');
await getData();
search(searchQuery.value);
});
transactionsSubscription.value = await BankService.subscribeToTransactionChanges(async () => {
console.log('transactions changed');
await getData();
search(searchQuery.value);
});

View file

@ -10,7 +10,7 @@ module.exports = {
daisyui: {
themes: [
'light',
'night',
'dark',
{
// light: {
// 'primary': '#EE8039',
@ -23,7 +23,7 @@ module.exports = {
// 'warning': '#F6B64B',
// 'error': '#DD513C',
// },
// night: {
// dark: {
// 'primary': '#EE8039',
// 'secondary': '#BFB0D6',
// 'accent': '#F9F6F0',
@ -36,6 +36,6 @@ module.exports = {
// },
},
],
darkTheme: 'night',
darkTheme: 'dark',
},
};