Merge remote-tracking branch 'origin/main'

This commit is contained in:
2025-06-07 16:57:36 +01:00
42 changed files with 456 additions and 1056 deletions

489
package-lock.json generated
View File

@@ -36,20 +36,19 @@
} }
}, },
"node_modules/@babel/runtime": { "node_modules/@babel/runtime": {
"version": "7.22.5", "version": "7.27.1",
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.5.tgz", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.1.tgz",
"integrity": "sha512-ecjvYlnAaZ/KVneE/OdKYBYfgXV3Ptu6zQWmgEF7vwKhQnvVS6bjMD2XYgj+SNvQ1GfK/pjgokfPkC/2CO8CuA==", "integrity": "sha512-1x3D2xEk2fRo3PAhwQwu5UubzgiVWSXTBfWpVd2Mx2AzRqJuDJCsgaDVZ7HB5iGzDW1Hl1sWN2mFyKjmR9uAog==",
"dependencies": { "license": "MIT",
"regenerator-runtime": "^0.13.11"
},
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
} }
}, },
"node_modules/@emnapi/runtime": { "node_modules/@emnapi/runtime": {
"version": "1.3.1", "version": "1.4.3",
"resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.3.1.tgz", "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.4.3.tgz",
"integrity": "sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==", "integrity": "sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ==",
"license": "MIT",
"optional": true, "optional": true,
"dependencies": { "dependencies": {
"tslib": "^2.4.0" "tslib": "^2.4.0"
@@ -138,12 +137,13 @@
"integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==" "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA=="
}, },
"node_modules/@img/sharp-darwin-arm64": { "node_modules/@img/sharp-darwin-arm64": {
"version": "0.33.5", "version": "0.34.1",
"resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.5.tgz", "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.1.tgz",
"integrity": "sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==", "integrity": "sha512-pn44xgBtgpEbZsu+lWf2KNb6OAf70X68k+yk69Ic2Xz11zHR/w24/U49XT7AeRwJ0Px+mhALhU5LPci1Aymk7A==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
"license": "Apache-2.0",
"optional": true, "optional": true,
"os": [ "os": [
"darwin" "darwin"
@@ -155,16 +155,17 @@
"url": "https://opencollective.com/libvips" "url": "https://opencollective.com/libvips"
}, },
"optionalDependencies": { "optionalDependencies": {
"@img/sharp-libvips-darwin-arm64": "1.0.4" "@img/sharp-libvips-darwin-arm64": "1.1.0"
} }
}, },
"node_modules/@img/sharp-darwin-x64": { "node_modules/@img/sharp-darwin-x64": {
"version": "0.33.5", "version": "0.34.1",
"resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.33.5.tgz", "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.1.tgz",
"integrity": "sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==", "integrity": "sha512-VfuYgG2r8BpYiOUN+BfYeFo69nP/MIwAtSJ7/Zpxc5QF3KS22z8Pvg3FkrSFJBPNQ7mmcUcYQFBmEQp7eu1F8Q==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
"license": "Apache-2.0",
"optional": true, "optional": true,
"os": [ "os": [
"darwin" "darwin"
@@ -176,16 +177,17 @@
"url": "https://opencollective.com/libvips" "url": "https://opencollective.com/libvips"
}, },
"optionalDependencies": { "optionalDependencies": {
"@img/sharp-libvips-darwin-x64": "1.0.4" "@img/sharp-libvips-darwin-x64": "1.1.0"
} }
}, },
"node_modules/@img/sharp-libvips-darwin-arm64": { "node_modules/@img/sharp-libvips-darwin-arm64": {
"version": "1.0.4", "version": "1.1.0",
"resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.0.4.tgz", "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.1.0.tgz",
"integrity": "sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==", "integrity": "sha512-HZ/JUmPwrJSoM4DIQPv/BfNh9yrOA8tlBbqbLz4JZ5uew2+o22Ik+tHQJcih7QJuSa0zo5coHTfD5J8inqj9DA==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
"license": "LGPL-3.0-or-later",
"optional": true, "optional": true,
"os": [ "os": [
"darwin" "darwin"
@@ -195,12 +197,13 @@
} }
}, },
"node_modules/@img/sharp-libvips-darwin-x64": { "node_modules/@img/sharp-libvips-darwin-x64": {
"version": "1.0.4", "version": "1.1.0",
"resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.0.4.tgz", "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.1.0.tgz",
"integrity": "sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==", "integrity": "sha512-Xzc2ToEmHN+hfvsl9wja0RlnXEgpKNmftriQp6XzY/RaSfwD9th+MSh0WQKzUreLKKINb3afirxW7A0fz2YWuQ==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
"license": "LGPL-3.0-or-later",
"optional": true, "optional": true,
"os": [ "os": [
"darwin" "darwin"
@@ -210,12 +213,13 @@
} }
}, },
"node_modules/@img/sharp-libvips-linux-arm": { "node_modules/@img/sharp-libvips-linux-arm": {
"version": "1.0.5", "version": "1.1.0",
"resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.0.5.tgz", "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.1.0.tgz",
"integrity": "sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==", "integrity": "sha512-s8BAd0lwUIvYCJyRdFqvsj+BJIpDBSxs6ivrOPm/R7piTs5UIwY5OjXrP2bqXC9/moGsyRa37eYWYCOGVXxVrA==",
"cpu": [ "cpu": [
"arm" "arm"
], ],
"license": "LGPL-3.0-or-later",
"optional": true, "optional": true,
"os": [ "os": [
"linux" "linux"
@@ -225,12 +229,29 @@
} }
}, },
"node_modules/@img/sharp-libvips-linux-arm64": { "node_modules/@img/sharp-libvips-linux-arm64": {
"version": "1.0.4", "version": "1.1.0",
"resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.0.4.tgz", "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.1.0.tgz",
"integrity": "sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==", "integrity": "sha512-IVfGJa7gjChDET1dK9SekxFFdflarnUB8PwW8aGwEoF3oAsSDuNUTYS+SKDOyOJxQyDC1aPFMuRYLoDInyV9Ew==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
"license": "LGPL-3.0-or-later",
"optional": true,
"os": [
"linux"
],
"funding": {
"url": "https://opencollective.com/libvips"
}
},
"node_modules/@img/sharp-libvips-linux-ppc64": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.1.0.tgz",
"integrity": "sha512-tiXxFZFbhnkWE2LA8oQj7KYR+bWBkiV2nilRldT7bqoEZ4HiDOcePr9wVDAZPi/Id5fT1oY9iGnDq20cwUz8lQ==",
"cpu": [
"ppc64"
],
"license": "LGPL-3.0-or-later",
"optional": true, "optional": true,
"os": [ "os": [
"linux" "linux"
@@ -240,12 +261,13 @@
} }
}, },
"node_modules/@img/sharp-libvips-linux-s390x": { "node_modules/@img/sharp-libvips-linux-s390x": {
"version": "1.0.4", "version": "1.1.0",
"resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.0.4.tgz", "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.1.0.tgz",
"integrity": "sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==", "integrity": "sha512-xukSwvhguw7COyzvmjydRb3x/09+21HykyapcZchiCUkTThEQEOMtBj9UhkaBRLuBrgLFzQ2wbxdeCCJW/jgJA==",
"cpu": [ "cpu": [
"s390x" "s390x"
], ],
"license": "LGPL-3.0-or-later",
"optional": true, "optional": true,
"os": [ "os": [
"linux" "linux"
@@ -255,12 +277,13 @@
} }
}, },
"node_modules/@img/sharp-libvips-linux-x64": { "node_modules/@img/sharp-libvips-linux-x64": {
"version": "1.0.4", "version": "1.1.0",
"resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.0.4.tgz", "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.1.0.tgz",
"integrity": "sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==", "integrity": "sha512-yRj2+reB8iMg9W5sULM3S74jVS7zqSzHG3Ol/twnAAkAhnGQnpjj6e4ayUz7V+FpKypwgs82xbRdYtchTTUB+Q==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
"license": "LGPL-3.0-or-later",
"optional": true, "optional": true,
"os": [ "os": [
"linux" "linux"
@@ -270,12 +293,13 @@
} }
}, },
"node_modules/@img/sharp-libvips-linuxmusl-arm64": { "node_modules/@img/sharp-libvips-linuxmusl-arm64": {
"version": "1.0.4", "version": "1.1.0",
"resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.0.4.tgz", "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.1.0.tgz",
"integrity": "sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==", "integrity": "sha512-jYZdG+whg0MDK+q2COKbYidaqW/WTz0cc1E+tMAusiDygrM4ypmSCjOJPmFTvHHJ8j/6cAGyeDWZOsK06tP33w==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
"license": "LGPL-3.0-or-later",
"optional": true, "optional": true,
"os": [ "os": [
"linux" "linux"
@@ -285,12 +309,13 @@
} }
}, },
"node_modules/@img/sharp-libvips-linuxmusl-x64": { "node_modules/@img/sharp-libvips-linuxmusl-x64": {
"version": "1.0.4", "version": "1.1.0",
"resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.0.4.tgz", "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.1.0.tgz",
"integrity": "sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==", "integrity": "sha512-wK7SBdwrAiycjXdkPnGCPLjYb9lD4l6Ze2gSdAGVZrEL05AOUJESWU2lhlC+Ffn5/G+VKuSm6zzbQSzFX/P65A==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
"license": "LGPL-3.0-or-later",
"optional": true, "optional": true,
"os": [ "os": [
"linux" "linux"
@@ -300,12 +325,13 @@
} }
}, },
"node_modules/@img/sharp-linux-arm": { "node_modules/@img/sharp-linux-arm": {
"version": "0.33.5", "version": "0.34.1",
"resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.33.5.tgz", "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.1.tgz",
"integrity": "sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==", "integrity": "sha512-anKiszvACti2sGy9CirTlNyk7BjjZPiML1jt2ZkTdcvpLU1YH6CXwRAZCA2UmRXnhiIftXQ7+Oh62Ji25W72jA==",
"cpu": [ "cpu": [
"arm" "arm"
], ],
"license": "Apache-2.0",
"optional": true, "optional": true,
"os": [ "os": [
"linux" "linux"
@@ -317,16 +343,17 @@
"url": "https://opencollective.com/libvips" "url": "https://opencollective.com/libvips"
}, },
"optionalDependencies": { "optionalDependencies": {
"@img/sharp-libvips-linux-arm": "1.0.5" "@img/sharp-libvips-linux-arm": "1.1.0"
} }
}, },
"node_modules/@img/sharp-linux-arm64": { "node_modules/@img/sharp-linux-arm64": {
"version": "0.33.5", "version": "0.34.1",
"resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.33.5.tgz", "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.1.tgz",
"integrity": "sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==", "integrity": "sha512-kX2c+vbvaXC6vly1RDf/IWNXxrlxLNpBVWkdpRq5Ka7OOKj6nr66etKy2IENf6FtOgklkg9ZdGpEu9kwdlcwOQ==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
"license": "Apache-2.0",
"optional": true, "optional": true,
"os": [ "os": [
"linux" "linux"
@@ -338,16 +365,17 @@
"url": "https://opencollective.com/libvips" "url": "https://opencollective.com/libvips"
}, },
"optionalDependencies": { "optionalDependencies": {
"@img/sharp-libvips-linux-arm64": "1.0.4" "@img/sharp-libvips-linux-arm64": "1.1.0"
} }
}, },
"node_modules/@img/sharp-linux-s390x": { "node_modules/@img/sharp-linux-s390x": {
"version": "0.33.5", "version": "0.34.1",
"resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.33.5.tgz", "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.34.1.tgz",
"integrity": "sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==", "integrity": "sha512-7s0KX2tI9mZI2buRipKIw2X1ufdTeaRgwmRabt5bi9chYfhur+/C1OXg3TKg/eag1W+6CCWLVmSauV1owmRPxA==",
"cpu": [ "cpu": [
"s390x" "s390x"
], ],
"license": "Apache-2.0",
"optional": true, "optional": true,
"os": [ "os": [
"linux" "linux"
@@ -359,16 +387,17 @@
"url": "https://opencollective.com/libvips" "url": "https://opencollective.com/libvips"
}, },
"optionalDependencies": { "optionalDependencies": {
"@img/sharp-libvips-linux-s390x": "1.0.4" "@img/sharp-libvips-linux-s390x": "1.1.0"
} }
}, },
"node_modules/@img/sharp-linux-x64": { "node_modules/@img/sharp-linux-x64": {
"version": "0.33.5", "version": "0.34.1",
"resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.33.5.tgz", "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.1.tgz",
"integrity": "sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==", "integrity": "sha512-wExv7SH9nmoBW3Wr2gvQopX1k8q2g5V5Iag8Zk6AVENsjwd+3adjwxtp3Dcu2QhOXr8W9NusBU6XcQUohBZ5MA==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
"license": "Apache-2.0",
"optional": true, "optional": true,
"os": [ "os": [
"linux" "linux"
@@ -380,16 +409,17 @@
"url": "https://opencollective.com/libvips" "url": "https://opencollective.com/libvips"
}, },
"optionalDependencies": { "optionalDependencies": {
"@img/sharp-libvips-linux-x64": "1.0.4" "@img/sharp-libvips-linux-x64": "1.1.0"
} }
}, },
"node_modules/@img/sharp-linuxmusl-arm64": { "node_modules/@img/sharp-linuxmusl-arm64": {
"version": "0.33.5", "version": "0.34.1",
"resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.33.5.tgz", "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.1.tgz",
"integrity": "sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==", "integrity": "sha512-DfvyxzHxw4WGdPiTF0SOHnm11Xv4aQexvqhRDAoD00MzHekAj9a/jADXeXYCDFH/DzYruwHbXU7uz+H+nWmSOQ==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
"license": "Apache-2.0",
"optional": true, "optional": true,
"os": [ "os": [
"linux" "linux"
@@ -401,16 +431,17 @@
"url": "https://opencollective.com/libvips" "url": "https://opencollective.com/libvips"
}, },
"optionalDependencies": { "optionalDependencies": {
"@img/sharp-libvips-linuxmusl-arm64": "1.0.4" "@img/sharp-libvips-linuxmusl-arm64": "1.1.0"
} }
}, },
"node_modules/@img/sharp-linuxmusl-x64": { "node_modules/@img/sharp-linuxmusl-x64": {
"version": "0.33.5", "version": "0.34.1",
"resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.33.5.tgz", "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.1.tgz",
"integrity": "sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==", "integrity": "sha512-pax/kTR407vNb9qaSIiWVnQplPcGU8LRIJpDT5o8PdAx5aAA7AS3X9PS8Isw1/WfqgQorPotjrZL3Pqh6C5EBg==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
"license": "Apache-2.0",
"optional": true, "optional": true,
"os": [ "os": [
"linux" "linux"
@@ -422,19 +453,20 @@
"url": "https://opencollective.com/libvips" "url": "https://opencollective.com/libvips"
}, },
"optionalDependencies": { "optionalDependencies": {
"@img/sharp-libvips-linuxmusl-x64": "1.0.4" "@img/sharp-libvips-linuxmusl-x64": "1.1.0"
} }
}, },
"node_modules/@img/sharp-wasm32": { "node_modules/@img/sharp-wasm32": {
"version": "0.33.5", "version": "0.34.1",
"resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.33.5.tgz", "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.34.1.tgz",
"integrity": "sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==", "integrity": "sha512-YDybQnYrLQfEpzGOQe7OKcyLUCML4YOXl428gOOzBgN6Gw0rv8dpsJ7PqTHxBnXnwXr8S1mYFSLSa727tpz0xg==",
"cpu": [ "cpu": [
"wasm32" "wasm32"
], ],
"license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT",
"optional": true, "optional": true,
"dependencies": { "dependencies": {
"@emnapi/runtime": "^1.2.0" "@emnapi/runtime": "^1.4.0"
}, },
"engines": { "engines": {
"node": "^18.17.0 || ^20.3.0 || >=21.0.0" "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
@@ -444,12 +476,13 @@
} }
}, },
"node_modules/@img/sharp-win32-ia32": { "node_modules/@img/sharp-win32-ia32": {
"version": "0.33.5", "version": "0.34.1",
"resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.33.5.tgz", "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.34.1.tgz",
"integrity": "sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==", "integrity": "sha512-WKf/NAZITnonBf3U1LfdjoMgNO5JYRSlhovhRhMxXVdvWYveM4kM3L8m35onYIdh75cOMCo1BexgVQcCDzyoWw==",
"cpu": [ "cpu": [
"ia32" "ia32"
], ],
"license": "Apache-2.0 AND LGPL-3.0-or-later",
"optional": true, "optional": true,
"os": [ "os": [
"win32" "win32"
@@ -462,12 +495,13 @@
} }
}, },
"node_modules/@img/sharp-win32-x64": { "node_modules/@img/sharp-win32-x64": {
"version": "0.33.5", "version": "0.34.1",
"resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.33.5.tgz", "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.1.tgz",
"integrity": "sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==", "integrity": "sha512-hw1iIAHpNE8q3uMIRCgGOeDoz9KtFNarFLQclLxr/LK1VBkj8nby18RjFvr6aP7USRYAjTZW6yisnBWMX571Tw==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
"license": "Apache-2.0 AND LGPL-3.0-or-later",
"optional": true, "optional": true,
"os": [ "os": [
"win32" "win32"
@@ -480,9 +514,10 @@
} }
}, },
"node_modules/@next/env": { "node_modules/@next/env": {
"version": "15.0.3", "version": "15.3.1",
"resolved": "https://registry.npmjs.org/@next/env/-/env-15.0.3.tgz", "resolved": "https://registry.npmjs.org/@next/env/-/env-15.3.1.tgz",
"integrity": "sha512-t9Xy32pjNOvVn2AS+Utt6VmyrshbpfUMhIjFO60gI58deSo/KgLOp31XZ4O+kY/Is8WAGYwA5gR7kOb1eORDBA==" "integrity": "sha512-cwK27QdzrMblHSn9DZRV+DQscHXRuJv6MydlJRpFSqJWZrTYMLzKDeyueJNN9MGd8NNiUKzDQADAf+dMLXX7YQ==",
"license": "MIT"
}, },
"node_modules/@next/eslint-plugin-next": { "node_modules/@next/eslint-plugin-next": {
"version": "13.4.12", "version": "13.4.12",
@@ -494,12 +529,13 @@
} }
}, },
"node_modules/@next/swc-darwin-arm64": { "node_modules/@next/swc-darwin-arm64": {
"version": "15.0.3", "version": "15.3.1",
"resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.0.3.tgz", "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.3.1.tgz",
"integrity": "sha512-s3Q/NOorCsLYdCKvQlWU+a+GeAd3C8Rb3L1YnetsgwXzhc3UTWrtQpB/3eCjFOdGUj5QmXfRak12uocd1ZiiQw==", "integrity": "sha512-hjDw4f4/nla+6wysBL07z52Gs55Gttp5Bsk5/8AncQLJoisvTBP0pRIBK/B16/KqQyH+uN4Ww8KkcAqJODYH3w==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
"license": "MIT",
"optional": true, "optional": true,
"os": [ "os": [
"darwin" "darwin"
@@ -509,12 +545,13 @@
} }
}, },
"node_modules/@next/swc-darwin-x64": { "node_modules/@next/swc-darwin-x64": {
"version": "15.0.3", "version": "15.3.1",
"resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.0.3.tgz", "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.3.1.tgz",
"integrity": "sha512-Zxl/TwyXVZPCFSf0u2BNj5sE0F2uR6iSKxWpq4Wlk/Sv9Ob6YCKByQTkV2y6BCic+fkabp9190hyrDdPA/dNrw==", "integrity": "sha512-q+aw+cJ2ooVYdCEqZVk+T4Ni10jF6Fo5DfpEV51OupMaV5XL6pf3GCzrk6kSSZBsMKZtVC1Zm/xaNBFpA6bJ2g==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
"license": "MIT",
"optional": true, "optional": true,
"os": [ "os": [
"darwin" "darwin"
@@ -524,12 +561,13 @@
} }
}, },
"node_modules/@next/swc-linux-arm64-gnu": { "node_modules/@next/swc-linux-arm64-gnu": {
"version": "15.0.3", "version": "15.3.1",
"resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.0.3.tgz", "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.3.1.tgz",
"integrity": "sha512-T5+gg2EwpsY3OoaLxUIofmMb7ohAUlcNZW0fPQ6YAutaWJaxt1Z1h+8zdl4FRIOr5ABAAhXtBcpkZNwUcKI2fw==", "integrity": "sha512-wBQ+jGUI3N0QZyWmmvRHjXjTWFy8o+zPFLSOyAyGFI94oJi+kK/LIZFJXeykvgXUk1NLDAEFDZw/NVINhdk9FQ==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
"license": "MIT",
"optional": true, "optional": true,
"os": [ "os": [
"linux" "linux"
@@ -539,12 +577,13 @@
} }
}, },
"node_modules/@next/swc-linux-arm64-musl": { "node_modules/@next/swc-linux-arm64-musl": {
"version": "15.0.3", "version": "15.3.1",
"resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.0.3.tgz", "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.3.1.tgz",
"integrity": "sha512-WkAk6R60mwDjH4lG/JBpb2xHl2/0Vj0ZRu1TIzWuOYfQ9tt9NFsIinI1Epma77JVgy81F32X/AeD+B2cBu/YQA==", "integrity": "sha512-IIxXEXRti/AulO9lWRHiCpUUR8AR/ZYLPALgiIg/9ENzMzLn3l0NSxVdva7R/VDcuSEBo0eGVCe3evSIHNz0Hg==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
"license": "MIT",
"optional": true, "optional": true,
"os": [ "os": [
"linux" "linux"
@@ -554,12 +593,13 @@
} }
}, },
"node_modules/@next/swc-linux-x64-gnu": { "node_modules/@next/swc-linux-x64-gnu": {
"version": "15.0.3", "version": "15.3.1",
"resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.0.3.tgz", "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.3.1.tgz",
"integrity": "sha512-gWL/Cta1aPVqIGgDb6nxkqy06DkwJ9gAnKORdHWX1QBbSZZB+biFYPFti8aKIQL7otCE1pjyPaXpFzGeG2OS2w==", "integrity": "sha512-bfI4AMhySJbyXQIKH5rmLJ5/BP7bPwuxauTvVEiJ/ADoddaA9fgyNNCcsbu9SlqfHDoZmfI6g2EjzLwbsVTr5A==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
"license": "MIT",
"optional": true, "optional": true,
"os": [ "os": [
"linux" "linux"
@@ -569,12 +609,13 @@
} }
}, },
"node_modules/@next/swc-linux-x64-musl": { "node_modules/@next/swc-linux-x64-musl": {
"version": "15.0.3", "version": "15.3.1",
"resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.0.3.tgz", "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.3.1.tgz",
"integrity": "sha512-QQEMwFd8r7C0GxQS62Zcdy6GKx999I/rTO2ubdXEe+MlZk9ZiinsrjwoiBL5/57tfyjikgh6GOU2WRQVUej3UA==", "integrity": "sha512-FeAbR7FYMWR+Z+M5iSGytVryKHiAsc0x3Nc3J+FD5NVbD5Mqz7fTSy8CYliXinn7T26nDMbpExRUI/4ekTvoiA==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
"license": "MIT",
"optional": true, "optional": true,
"os": [ "os": [
"linux" "linux"
@@ -584,12 +625,13 @@
} }
}, },
"node_modules/@next/swc-win32-arm64-msvc": { "node_modules/@next/swc-win32-arm64-msvc": {
"version": "15.0.3", "version": "15.3.1",
"resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.0.3.tgz", "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.3.1.tgz",
"integrity": "sha512-9TEp47AAd/ms9fPNgtgnT7F3M1Hf7koIYYWCMQ9neOwjbVWJsHZxrFbI3iEDJ8rf1TDGpmHbKxXf2IFpAvheIQ==", "integrity": "sha512-yP7FueWjphQEPpJQ2oKmshk/ppOt+0/bB8JC8svPUZNy0Pi3KbPx2Llkzv1p8CoQa+D2wknINlJpHf3vtChVBw==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
"license": "MIT",
"optional": true, "optional": true,
"os": [ "os": [
"win32" "win32"
@@ -599,12 +641,13 @@
} }
}, },
"node_modules/@next/swc-win32-x64-msvc": { "node_modules/@next/swc-win32-x64-msvc": {
"version": "15.0.3", "version": "15.3.1",
"resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.0.3.tgz", "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.3.1.tgz",
"integrity": "sha512-VNAz+HN4OGgvZs6MOoVfnn41kBzT+M+tB+OK4cww6DNyWS6wKaDpaAm/qLeOUbnMh0oVx1+mg0uoYARF69dJyA==", "integrity": "sha512-3PMvF2zRJAifcRNni9uMk/gulWfWS+qVI/pagd+4yLF5bcXPZPPH2xlYRYOsUjmCJOXSTAC2PjRzbhsRzR2fDQ==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
"license": "MIT",
"optional": true, "optional": true,
"os": [ "os": [
"win32" "win32"
@@ -688,11 +731,12 @@
"integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==" "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ=="
}, },
"node_modules/@swc/helpers": { "node_modules/@swc/helpers": {
"version": "0.5.13", "version": "0.5.15",
"resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.13.tgz", "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.15.tgz",
"integrity": "sha512-UoKGxQ3r5kYI9dALKJapMmuK+1zWM/H17Z1+iwnNmzcJRnfFuevZs375TA5rW31pu4BS4NoSy1fRsexDXfWn5w==", "integrity": "sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==",
"license": "Apache-2.0",
"dependencies": { "dependencies": {
"tslib": "^2.4.0" "tslib": "^2.8.0"
} }
}, },
"node_modules/@types/aos": { "node_modules/@types/aos": {
@@ -1178,6 +1222,78 @@
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
}, },
"node_modules/bare-events": {
"version": "2.5.4",
"resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.5.4.tgz",
"integrity": "sha512-+gFfDkR8pj4/TrWCGUGWmJIkBwuxPS5F+a5yWjOHQt2hHvNZd5YLzadjmDUtFmMM4y429bnKLa8bYBMHcYdnQA==",
"license": "Apache-2.0",
"optional": true
},
"node_modules/bare-fs": {
"version": "4.1.4",
"resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-4.1.4.tgz",
"integrity": "sha512-r8+26Voz8dGX3AYpJdFb1ZPaUSM8XOLCZvy+YGpRTmwPHIxA7Z3Jov/oMPtV7hfRQbOnH8qGlLTzQAbgtdNN0Q==",
"license": "Apache-2.0",
"optional": true,
"dependencies": {
"bare-events": "^2.5.4",
"bare-path": "^3.0.0",
"bare-stream": "^2.6.4"
},
"engines": {
"bare": ">=1.16.0"
},
"peerDependencies": {
"bare-buffer": "*"
},
"peerDependenciesMeta": {
"bare-buffer": {
"optional": true
}
}
},
"node_modules/bare-os": {
"version": "3.6.1",
"resolved": "https://registry.npmjs.org/bare-os/-/bare-os-3.6.1.tgz",
"integrity": "sha512-uaIjxokhFidJP+bmmvKSgiMzj2sV5GPHaZVAIktcxcpCyBFFWO+YlikVAdhmUo2vYFvFhOXIAlldqV29L8126g==",
"license": "Apache-2.0",
"optional": true,
"engines": {
"bare": ">=1.14.0"
}
},
"node_modules/bare-path": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/bare-path/-/bare-path-3.0.0.tgz",
"integrity": "sha512-tyfW2cQcB5NN8Saijrhqn0Zh7AnFNsnczRcuWODH0eYAXBsJ5gVxAUuNr7tsHSC6IZ77cA0SitzT+s47kot8Mw==",
"license": "Apache-2.0",
"optional": true,
"dependencies": {
"bare-os": "^3.0.1"
}
},
"node_modules/bare-stream": {
"version": "2.6.5",
"resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-2.6.5.tgz",
"integrity": "sha512-jSmxKJNJmHySi6hC42zlZnq00rga4jjxcgNZjY9N5WlOe/iOoGRtdwGsHzQv2RlH2KOYMwGUXhf2zXd32BA9RA==",
"license": "Apache-2.0",
"optional": true,
"dependencies": {
"streamx": "^2.21.0"
},
"peerDependencies": {
"bare-buffer": "*",
"bare-events": "*"
},
"peerDependenciesMeta": {
"bare-buffer": {
"optional": true
},
"bare-events": {
"optional": true
}
}
},
"node_modules/base64-js": { "node_modules/base64-js": {
"version": "1.5.1", "version": "1.5.1",
"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
@@ -2345,9 +2461,10 @@
"integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
}, },
"node_modules/fast-fifo": { "node_modules/fast-fifo": {
"version": "1.3.0", "version": "1.3.2",
"resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.0.tgz", "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz",
"integrity": "sha512-IgfweLvEpwyA4WgiQe9Nx6VV2QkML2NkvZnk1oKnIzXgXdWxuhF7zw4DvLTPZJn6PIUneiAXPF24QmoEqHTjyw==" "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==",
"license": "MIT"
}, },
"node_modules/fast-glob": { "node_modules/fast-glob": {
"version": "3.2.12", "version": "3.2.12",
@@ -3387,15 +3504,16 @@
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
}, },
"node_modules/nanoid": { "node_modules/nanoid": {
"version": "3.3.7", "version": "3.3.11",
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
"integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
"funding": [ "funding": [
{ {
"type": "github", "type": "github",
"url": "https://github.com/sponsors/ai" "url": "https://github.com/sponsors/ai"
} }
], ],
"license": "MIT",
"bin": { "bin": {
"nanoid": "bin/nanoid.cjs" "nanoid": "bin/nanoid.cjs"
}, },
@@ -3420,13 +3538,14 @@
"dev": true "dev": true
}, },
"node_modules/next": { "node_modules/next": {
"version": "15.0.3", "version": "15.3.1",
"resolved": "https://registry.npmjs.org/next/-/next-15.0.3.tgz", "resolved": "https://registry.npmjs.org/next/-/next-15.3.1.tgz",
"integrity": "sha512-ontCbCRKJUIoivAdGB34yCaOcPgYXr9AAkV/IwqFfWWTXEPUgLYkSkqBhIk9KK7gGmgjc64B+RdoeIDM13Irnw==", "integrity": "sha512-8+dDV0xNLOgHlyBxP1GwHGVaNXsmp+2NhZEYrXr24GWLHtt27YrBPbPuHvzlhi7kZNYjeJNR93IF5zfFu5UL0g==",
"license": "MIT",
"dependencies": { "dependencies": {
"@next/env": "15.0.3", "@next/env": "15.3.1",
"@swc/counter": "0.1.3", "@swc/counter": "0.1.3",
"@swc/helpers": "0.5.13", "@swc/helpers": "0.5.15",
"busboy": "1.6.0", "busboy": "1.6.0",
"caniuse-lite": "^1.0.30001579", "caniuse-lite": "^1.0.30001579",
"postcss": "8.4.31", "postcss": "8.4.31",
@@ -3439,22 +3558,22 @@
"node": "^18.18.0 || ^19.8.0 || >= 20.0.0" "node": "^18.18.0 || ^19.8.0 || >= 20.0.0"
}, },
"optionalDependencies": { "optionalDependencies": {
"@next/swc-darwin-arm64": "15.0.3", "@next/swc-darwin-arm64": "15.3.1",
"@next/swc-darwin-x64": "15.0.3", "@next/swc-darwin-x64": "15.3.1",
"@next/swc-linux-arm64-gnu": "15.0.3", "@next/swc-linux-arm64-gnu": "15.3.1",
"@next/swc-linux-arm64-musl": "15.0.3", "@next/swc-linux-arm64-musl": "15.3.1",
"@next/swc-linux-x64-gnu": "15.0.3", "@next/swc-linux-x64-gnu": "15.3.1",
"@next/swc-linux-x64-musl": "15.0.3", "@next/swc-linux-x64-musl": "15.3.1",
"@next/swc-win32-arm64-msvc": "15.0.3", "@next/swc-win32-arm64-msvc": "15.3.1",
"@next/swc-win32-x64-msvc": "15.0.3", "@next/swc-win32-x64-msvc": "15.3.1",
"sharp": "^0.33.5" "sharp": "^0.34.1"
}, },
"peerDependencies": { "peerDependencies": {
"@opentelemetry/api": "^1.1.0", "@opentelemetry/api": "^1.1.0",
"@playwright/test": "^1.41.2", "@playwright/test": "^1.41.2",
"babel-plugin-react-compiler": "*", "babel-plugin-react-compiler": "*",
"react": "^18.2.0 || 19.0.0-rc-66855b96-20241106", "react": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0",
"react-dom": "^18.2.0 || 19.0.0-rc-66855b96-20241106", "react-dom": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0",
"sass": "^1.3.0" "sass": "^1.3.0"
}, },
"peerDependenciesMeta": { "peerDependenciesMeta": {
@@ -3473,15 +3592,16 @@
} }
}, },
"node_modules/next/node_modules/sharp": { "node_modules/next/node_modules/sharp": {
"version": "0.33.5", "version": "0.34.1",
"resolved": "https://registry.npmjs.org/sharp/-/sharp-0.33.5.tgz", "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.34.1.tgz",
"integrity": "sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==", "integrity": "sha512-1j0w61+eVxu7DawFJtnfYcvSv6qPFvfTaqzTQ2BLknVhHTwGS8sc63ZBF4rzkWMBVKybo4S5OBtDdZahh2A1xg==",
"hasInstallScript": true, "hasInstallScript": true,
"license": "Apache-2.0",
"optional": true, "optional": true,
"dependencies": { "dependencies": {
"color": "^4.2.3", "color": "^4.2.3",
"detect-libc": "^2.0.3", "detect-libc": "^2.0.3",
"semver": "^7.6.3" "semver": "^7.7.1"
}, },
"engines": { "engines": {
"node": "^18.17.0 || ^20.3.0 || >=21.0.0" "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
@@ -3490,25 +3610,26 @@
"url": "https://opencollective.com/libvips" "url": "https://opencollective.com/libvips"
}, },
"optionalDependencies": { "optionalDependencies": {
"@img/sharp-darwin-arm64": "0.33.5", "@img/sharp-darwin-arm64": "0.34.1",
"@img/sharp-darwin-x64": "0.33.5", "@img/sharp-darwin-x64": "0.34.1",
"@img/sharp-libvips-darwin-arm64": "1.0.4", "@img/sharp-libvips-darwin-arm64": "1.1.0",
"@img/sharp-libvips-darwin-x64": "1.0.4", "@img/sharp-libvips-darwin-x64": "1.1.0",
"@img/sharp-libvips-linux-arm": "1.0.5", "@img/sharp-libvips-linux-arm": "1.1.0",
"@img/sharp-libvips-linux-arm64": "1.0.4", "@img/sharp-libvips-linux-arm64": "1.1.0",
"@img/sharp-libvips-linux-s390x": "1.0.4", "@img/sharp-libvips-linux-ppc64": "1.1.0",
"@img/sharp-libvips-linux-x64": "1.0.4", "@img/sharp-libvips-linux-s390x": "1.1.0",
"@img/sharp-libvips-linuxmusl-arm64": "1.0.4", "@img/sharp-libvips-linux-x64": "1.1.0",
"@img/sharp-libvips-linuxmusl-x64": "1.0.4", "@img/sharp-libvips-linuxmusl-arm64": "1.1.0",
"@img/sharp-linux-arm": "0.33.5", "@img/sharp-libvips-linuxmusl-x64": "1.1.0",
"@img/sharp-linux-arm64": "0.33.5", "@img/sharp-linux-arm": "0.34.1",
"@img/sharp-linux-s390x": "0.33.5", "@img/sharp-linux-arm64": "0.34.1",
"@img/sharp-linux-x64": "0.33.5", "@img/sharp-linux-s390x": "0.34.1",
"@img/sharp-linuxmusl-arm64": "0.33.5", "@img/sharp-linux-x64": "0.34.1",
"@img/sharp-linuxmusl-x64": "0.33.5", "@img/sharp-linuxmusl-arm64": "0.34.1",
"@img/sharp-wasm32": "0.33.5", "@img/sharp-linuxmusl-x64": "0.34.1",
"@img/sharp-win32-ia32": "0.33.5", "@img/sharp-wasm32": "0.34.1",
"@img/sharp-win32-x64": "0.33.5" "@img/sharp-win32-ia32": "0.34.1",
"@img/sharp-win32-x64": "0.34.1"
} }
}, },
"node_modules/node-abi": { "node_modules/node-abi": {
@@ -3874,9 +3995,10 @@
} }
}, },
"node_modules/prebuild-install/node_modules/tar-fs": { "node_modules/prebuild-install/node_modules/tar-fs": {
"version": "2.1.1", "version": "2.1.2",
"resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.2.tgz",
"integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", "integrity": "sha512-EsaAXwxmx8UB7FRKqeozqEPop69DXcmYwTQwXvyAPF352HJsPdkVhvTaDPYqfNgruveJIJy3TA2l+2zj8LJIJA==",
"license": "MIT",
"dependencies": { "dependencies": {
"chownr": "^1.1.1", "chownr": "^1.1.1",
"mkdirp-classic": "^0.5.2", "mkdirp-classic": "^0.5.2",
@@ -3953,11 +4075,6 @@
} }
] ]
}, },
"node_modules/queue-tick": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz",
"integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag=="
},
"node_modules/rc": { "node_modules/rc": {
"version": "1.2.8", "version": "1.2.8",
"resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
@@ -4056,11 +4173,6 @@
"node": ">=8.10.0" "node": ">=8.10.0"
} }
}, },
"node_modules/regenerator-runtime": {
"version": "0.13.11",
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz",
"integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg=="
},
"node_modules/regexp.prototype.flags": { "node_modules/regexp.prototype.flags": {
"version": "1.5.0", "version": "1.5.0",
"resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz", "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz",
@@ -4308,9 +4420,10 @@
} }
}, },
"node_modules/semver": { "node_modules/semver": {
"version": "7.6.3", "version": "7.7.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz",
"integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==",
"license": "ISC",
"bin": { "bin": {
"semver": "bin/semver.js" "semver": "bin/semver.js"
}, },
@@ -4464,12 +4577,16 @@
} }
}, },
"node_modules/streamx": { "node_modules/streamx": {
"version": "2.15.0", "version": "2.22.0",
"resolved": "https://registry.npmjs.org/streamx/-/streamx-2.15.0.tgz", "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.22.0.tgz",
"integrity": "sha512-HcxY6ncGjjklGs1xsP1aR71INYcsXFJet5CU1CHqihQ2J5nOsbd4OjgjHO42w/4QNv9gZb3BueV+Vxok5pLEXg==", "integrity": "sha512-sLh1evHOzBy/iWRiR6d1zRcLao4gGZr3C1kzNz4fopCOKJb6xD9ub8Mpi9Mr1R6id5o43S+d93fI48UC5uM9aw==",
"license": "MIT",
"dependencies": { "dependencies": {
"fast-fifo": "^1.1.0", "fast-fifo": "^1.3.2",
"queue-tick": "^1.0.1" "text-decoder": "^1.1.0"
},
"optionalDependencies": {
"bare-events": "^2.2.0"
} }
}, },
"node_modules/string_decoder": { "node_modules/string_decoder": {
@@ -4649,13 +4766,17 @@
} }
}, },
"node_modules/tar-fs": { "node_modules/tar-fs": {
"version": "3.0.4", "version": "3.0.8",
"resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.4.tgz", "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.8.tgz",
"integrity": "sha512-5AFQU8b9qLfZCX9zp2duONhPmZv0hGYiBPJsyUdqMjzq/mqVpy/rEUSeHk1+YitmxugaptgBh5oDGU3VsAJq4w==", "integrity": "sha512-ZoROL70jptorGAlgAYiLoBLItEKw/fUxg9BSYK/dF/GAGYFJOJJJMvjPAKDJraCXFwadD456FCuvLWgfhMsPwg==",
"license": "MIT",
"dependencies": { "dependencies": {
"mkdirp-classic": "^0.5.2",
"pump": "^3.0.0", "pump": "^3.0.0",
"tar-stream": "^3.1.5" "tar-stream": "^3.1.5"
},
"optionalDependencies": {
"bare-fs": "^4.0.1",
"bare-path": "^3.0.0"
} }
}, },
"node_modules/tar-stream": { "node_modules/tar-stream": {
@@ -4668,6 +4789,15 @@
"streamx": "^2.15.0" "streamx": "^2.15.0"
} }
}, },
"node_modules/text-decoder": {
"version": "1.2.3",
"resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.3.tgz",
"integrity": "sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA==",
"license": "Apache-2.0",
"dependencies": {
"b4a": "^1.6.4"
}
},
"node_modules/text-table": { "node_modules/text-table": {
"version": "0.2.0", "version": "0.2.0",
"resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
@@ -4719,9 +4849,10 @@
} }
}, },
"node_modules/tslib": { "node_modules/tslib": {
"version": "2.5.3", "version": "2.8.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.3.tgz", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
"integrity": "sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==" "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
"license": "0BSD"
}, },
"node_modules/tsutils": { "node_modules/tsutils": {
"version": "3.21.0", "version": "3.21.0",

Binary file not shown.

Binary file not shown.

BIN
public/ipp.pdf Normal file

Binary file not shown.

View File

@@ -4,5 +4,5 @@
"start_url": "/", "start_url": "/",
"display": "standalone", "display": "standalone",
"background_color": "#fff", "background_color": "#fff",
"description": "Patryk Kuchta's Portfolio entailing his academic and professional work." "description": "Patryk Kuchta's portfolio entailing his academic and professional work."
} }

BIN
public/multiAgent.pdf Normal file

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 MiB

After

Width:  |  Height:  |  Size: 3.2 MiB

View File

Before

Width:  |  Height:  |  Size: 1.2 MiB

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 166 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 203 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 391 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 MiB

After

Width:  |  Height:  |  Size: 3.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 102 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

View File

@@ -1,561 +0,0 @@
<html data-scroll="0">
<head lang="en">
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Patryk Kuchta</title>
<link rel="stylesheet" href="stylesheets/reset.css" type="text/css" />
<link rel="stylesheet" href="stylesheets/style.css" type="text/css" />
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css"
integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"
integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo"
crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js"
integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49"
crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js"
integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy"
crossorigin="anonymous"></script>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Montserrat:wght@100&display=swap" rel="stylesheet">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=PT+Serif:ital@1&display=swap" rel="stylesheet">
<link
href="https://fonts.googleapis.com/css2?family=Gemunu+Libre:wght@200;300&family=Mulish:wght@300;500&display=swap"
rel="stylesheet">
</head>
<body>
<div id="floatingmenu">
<div class="triangle">
<a href="#intro"> <img class="totop" src="images/top.png"> </a>
</div>
</div>
<div class="floatingwarning">
Please be aware that this website is only a preview of my previous work!
Most information here has not been updated since I have created my newest website:
If you are visiting to read about me please click <a href="/">here</a> to go to the newest website.
</div>
<div class="container-fluid p-0 m-0 w-100 d-inline">
<div class="row pt-1 m-0" id="intro">
<div class="col-md-5">
<img src="images/profile.png" alt="picture of me" class="profile" />
</div>
<div class="col-md-5" id="intro_text">
<h1>Hello! My name is <b>Patryk Kuchta</b>. I'm a Computer Science Student at Queen Mary University in
London. I'm looking forward to becoming a <b>Software Engineer</b>.</h1>
<p>
<br>
Growing up in the era of rapid digitalization, by the time I was in high school, I was sure where I
was heading for my career, and it was computer science. Why? Because computers are my hobby and I
love solving logical-mathematical problems, furthermore there are plenty of ways to apply IT to
regular Engineering, which always was something that I was interested in. Getting a place at a very
reputable Queen Mary University in London and a job at Queen Mary University as a Demonstrator
(Teaching Assistant)
put me on the right track to achieve success in my life.
<br>
<br>
<br>
<br>
<br>
</p>
<a class="jumpto" href="#education">Education</a>
<a class="jumpto" href="#experience">Experience</a>
<a class="jumpto" href="#certification">Certificates</a>
<a class="jumpto" href="#skills">Skills</a>
<a class="jumpto" href="#projects">Projects</a>
<a class="jumpto" href="#contact">Contact</a>
</div>
<div class="col-md-2">
</div>
</div>
<div class="row m-0" id="education">
<div class="col-md-2">
</div>
<div class="col-md-3 white_text">
<h1>
<b>"An investment in knowledge pays the best interest."</b><br> <i>Benjamin Franklin</i>
</h1>
</div>
<div class="col-md-5 white_text">
<p style="text-align:left;">
Second year student at Queen Mary University, London
<span class="date">
Since September 2020
</span><br>
Course: (BSc) Computer Science <br>
• First years average mark at 89% <br>
• 1st in all eight modules
</p>
<hr>
<p style="text-align:left;">
Jan Zamoyski High School, Warsaw
<span class="date">
2017 - 2020
</span><br>
• Class with extended Mathematics, IT and Physics
</p>
</div>
<div class="col-md-2">
</div>
</div>
<div class="row p-0 m-0" id="experience">
<div class="col-md-1"></div>
<div class="col-md-10">
<h1 class="colour_head">
My professional experience
</h1>
<p id="exp_text">
Although I am only 20 years old, I have already worked in 7 different companies. This of course gave
me a lot of insight into how companies work, both those big and startups. My early jobs
centred around hospitality and retail, which gave me knowledge about problems that could be solved
using IT in those areas. Lately, I'm mostly involved in positions about teaching and supporting
students, which are stimulating my skills that are important in IT workplaces, for example, the
ability to explain concepts to a 'non-IT' crowd, and leading a team. In February, in keeping with my
passion for teaching I have decided to start working as a freelance private tutor.
</p>
<div class="row pt-4 m-0">
<div class="col-md-3 p-2">
</div>
<div class="col-md-6 p-2">
<div class="binner">
<p style="text-align:left;">
<b>Freelance private Tutoring @ Kuchta Tutoring</b>
<span class="date">
<b>Since February 2022</b>
</span><br>
<hr>
<b>
• Find out more <a href="tutor.html">here</a><br />
• Further improved my tutoring skills<br />
• Gained a lot of knowledge into how businesses are run
</b>
</p>
</div>
</div>
<div class="col-md-3 p-2">
</div>
</div>
<div class="row pt-4 m-0">
<div class="col-md-6 p-2">
<div class="binner">
<p style="text-align:left; ">
<b>Demonstrator at Queen Mary University in London</b>
<span class="date">
<b>Since September 2021</b>
</span><br>
<hr>
<b>
• Improved my interpersonal skills<br>
• Gained further professionalism in a remote working environment<br>
• Gained knowledge in explaining IT concepts in a professional manner<br>
• Tailored resources for individual needs
</b>
</p>
</div>
</div>
<div class="col-md-6 p-2">
<div class="binner">
<p style="text-align:left;">
<b>Tutor at FireTechCamp in London</b>
<span class="date">
<b>Since January 2022</b>
</span><br>
<hr>
<b>
• Improved my interpersonal skills<br />
• Gained further professionalism in remote working environments<br />
• Gained knowledge in explaining IT concepts in a professional manner<br />
• Refined my experience with tailoring resources for individual needs<br />
</b>
</p>
</div>
</div>
</div>
<div class="row pt-4 m-0">
<div class="col-md-6 p-2">
<div class="binner">
<p style="text-align:left; ">
<b>Tutor at MyTutor in London</b>
<span class="date">
<b>Since December 2021</b>
</span><br>
<hr>
<b>
• Acquired experience tutoring “one to one”<br />
• Gained further professionalism in remote working environments<br />
• Gained knowledge in explaining computer science concepts<br />
• Refined my experience with tailoring resources for individual needs<br />
</b>
</p>
</div>
</div>
<div class="col-md-6 p-2">
<div class="binner">
<p style="text-align:left;">
<b>Coding Tutor at Kodland in London</b>
<span class="date">
<b>May - August 2021</b>
</span><br>
<hr>
<b>
• Improved my presentational skills<br />
• Gained experience in a remote working environment<br />
• Gained skills in explaining programming principles<br /><br />
</b>
</p>
</div>
</div>
</div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
</div>
<div class="col-md-1"></div>
</div>
<div class="row pt-5 pb-5 m-0" id="certification">
<div class="col-md-1">
</div>
<div class="col-md-2 white_text">
<h1>
<b>Acquired certification</b>
</h1>
</div>
<div class="col-md-4 white_text">
<p style="text-align:left;">
IELTS Academic C1
<span class="date">
2020
</span><br>
Listening: 9.0, Reading: 8.0, Writing: 6.5, Speaking: 7.0, Overall: 7.5
</p>
<hr>
<p style="text-align:left;">
Project Management Principles
<span class="date">
2019
</span>
</p>
</div>
<div class="col-md-4 white_text">
<p style="text-align:left;">
Full EU Drivers License
<span class="date">
2015 and 2019
</span><br>
AM and B Categories.
</p>
<hr>
<p style="text-align:left;">
Project Management Fundamentals
<span class="date">
2019
</span>
</p>
</div>
<div class="col-md-1">
</div>
</div>
<div class="row m-0 p-0" id="skills">
<div class="col-md-1">
</div>
<div class="col-md-10">
<h1 class="colour_head">
Some of the skills, that I have gained throught my life.
</h1>
<p>
Programming languages
</p>
<div class="row p-0 m-0 binner">
<div class="col-md-3">
<img src="images/java.png" class="skillico" alt="java">
</div>
<div class="col-md-3">
<img src="images/python.png" class="skillico" alt="python">
</div>
<div class="col-md-3">
<img src="images/cpp.png" class="skillico" alt="cpp">
</div>
<div class="col-md-3">
<img src="images/sql.png" class="skillico" alt="sql">
</div>
<div class="col-md-3">
<img src="images/javascript.png" class="skillico" alt="javascript">
</div>
<div class="col-md-3">
<img src="images/php.png" class="skillico" alt="php">
</div>
<div class="col-md-3">
<img src="images/html.png" class="skillico" alt="html">
</div>
<div class="col-md-3">
<img src="images/css.png" class="skillico" alt="css">
</div>
</div>
<p class="smallhead">
Languages
</p>
<div class="row p-0 m-0 languages">
<div class="col-md-4">
<div class="binner">
<p style="font-size: 170%; text-align:left;">
<b>
Polish
<hr>
Native
</b>
<span style="float:right;">
<b>C2</b>
</span>
</p>
</div>
</div>
<div class="col-md-4">
<div class="binner">
<p style="font-size: 170%; text-align:left;">
<b>
English
<hr>
Advanced
</b>
<span style="float:right;">
<b>C1</b>
</span>
</p>
</div>
</div>
<div class="col-md-4">
<div class="binner">
<p style="font-size: 170%; text-align:left;">
<b>
German
<hr>
Intermediate
</b>
<span style="float:right;">
<b>B2</b>
</span>
</p>
</div>
</div>
</div>
<p class="smallhead">
Other Skills
</p>
<div id="minorskills">
<div class="smallcont">
<b>
Ability to work in fast-paced environments
</b>
</div>
<div class="smallcont">
<b>
Extensive knowledge in consumer electronics, motorbikes and cars
</b>
</div>
<div class="smallcont">
<b>
Expertise in photo and video editing
</b>
</div>
<div class="smallcont">
<b>
Proficiency in using Microsoft Office and Linux
</b>
</div>
<div class="smallcont">
<b>
Ability to solder, build, diagnose and repair computers
</b>
</div>
<div class="smallcont">
<b>
Great communication skills and ability to work in team
</b>
</div>
</div>
</div>
<div class="col-md-1">
</div>
</div>
<div class="row p-0 m-0" id="projects">
<div class="col-md-1">
</div>
<div class="col-md-10 white_text">
<h2>Some of my most intresting projects</h2>
<div class="col-md-12">
<div class="project">
<h1>This portfolio website</h1>
<div class="row p-0 m-0">
<div class="col-md-6">
<img src="../projects/port1.png" class="imgproject">
</div>
<div class="col-md-6 projecttext">
<p>
This website was created with a clear and elegant design in mind. This meant
reducing flamboyant animations and effects to the minimum as that would make it
harder the convey the message. To create this website I have used HTML, CSS and
Bootstrap. The absence of javascript is to ensure maximum optimisation and
compatibility. Furthermore, this will mean that this website will be very
responsive no matter what device is being used. Use of Bootstrap only adds to
the compatibility argument.
<br>
<br>
<a href="">Go back to the top</a><br>
<a href="https://github.com/KuchtaVR6/porfolio">Github repository</a>
</p>
</div>
</div>
</div>
</div>
<div class="col-md-12">
<div class="project">
<h1>A portfolio website for an Architect</h1>
<div class="row p-0 m-0">
<div class="col-md-6">
<img src="../projects/port2.png" class="imgproject">
</div>
<div class="col-md-6 projecttext">
<p>
Another professional website, that I have created is a portfolio website for an
Architect. The design was a vital part of the whole experience as an Architect
needs to exhibit their design language. The creation of this website involved
using HTML, CSS and Javascript. Javascript is mainly used for the integrated
gallery view of each project. Whilst I didn't come up with the design, I was tasked
with translating sketches into code. Furthermore, Bootstrap was used to
ensure that the website still looks stunning on a mobile device or a vertical
screen.
<br><br>
<a href="https://aleksandrakuchta.co.uk">Link to the website</a><br>
<a href="https://github.com/KuchtaVR6/kuchtavr6.github.io">Github repository</a>
</p>
</div>
</div>
</div>
</div>
<div class="col-md-12">
<div class="project">
<h1>A discord bot</h1>
<div class="row p-0 m-0">
<div class="col-md-6">
<img src="../projects/proj2.png" class="imgproject">
</div>
<div class="col-md-6 projecttext">
<p>
To further expand my knowledge in python and APIs, I developed a fully
functional bot that creates embedded messages. Although the task might seem not
that hard, I gave myself a requirement that the system must have
professional-grade exception catching and an interface that will make it very
easy to use by someone less fluent in command based interaction. This made it a much
bigger project with extensive testing and a steep learning curve.
Even though it was my third discord bot this one was the most challenging and I
have learned a lot from writing it.
<br>
<br>
<a
href="https://discord.com/api/oauth2/authorize?client_id=819208892834644008&permissions=0&scope=bot">Link
for inviting the bot</a>
</p>
</div>
</div>
</div>
</div>
<div class="col-md-12">
<div class="project">
<h1>DIY AndroidAuto Car Infotainment</h1>
<div class="row p-0 m-0">
<div class="col-md-6">
<img src="../projects/proj1.png" class="imgproject">
</div>
<div class="col-md-6 projecttext">
<p>
A project that I did during the first lockdown, was creating an AndroidAuto
based infotainment system for my Dads car. This project gave me a chance to work
with Linux, Python, RaspberryPi, 3D printing and design (in Blender), soldering,
relays and electronics in general. It had all features of a full AndroidAuto
experience including wake on Ignition, separate volume adjustment and a
touchscreen. Because I was only using the most basic electronic components
possible this allowed me to design and create electrical circuits.
Furthermore, a lot of parts were 3D printed and I had to ensure that components
that I created were shake and heat resistant so they can survive in a car
environment.
</p>
</div>
</div>
</div>
</div>
</div>
<div class="col-md-1">
</div>
</div>
<div class="row pb-5 m-0" id="contact">
<div class="col-md-3">
</div>
<div class="col-md-6">
<p style="text-align:center">
Patryk Kuchta
</p>
<hr>
<p style="text-align:left;">
Phone number:
<span style="float:right;">
07467 174589
</span><br>
</p>
<hr>
<p style="text-align:left;">
Email:
<span style="float:right;">
<a href="mailto: patrick@kuchta.uk">patrick@kuchta.uk</a>
</span>
</p>
<hr>
<p style="text-align:left;">
Discord:
<span style="float:right;">
Kuchta#1111
</span><br>
</p>
<hr>
<p style="text-align:left;">
Github:
<span style="float:right;">
<a href="https://github.com/KuchtaVR6">https://github.com/KuchtaVR6</a>
</span><br>
</p>
<hr>
<p style="text-align:left;">
Linkedin:
<span style="float:right;">
<a
href="https://www.linkedin.com/in/kuchtap/">https://www.linkedin.com/in/kuchtap/</a>
</span><br>
</p>
</div>
<div class="col-md-3">
</div>
</div>
</div>
</body>
</html>

View File

@@ -1,7 +0,0 @@
html, body, div, span, h1, h2, h3, h4, h5, h6, p, table, hgroup, section, a, img, caption, figcaption {
margin: 0;
padding: 0;
border: 0;
font-size: 100%;
vertical-align: baseline;
}

View File

@@ -1,240 +0,0 @@
@media screen and (prefers-reduced-motion: no-preference) {
html {
scroll-behavior: smooth;
}
}
@media (orientation: landscape) {
#intro{
min-height: 100vh;
background: rgb(59,86,166);
background: linear-gradient(139deg, rgba(59,86,166,1) 0%, rgba(169,60,81,1) 29%, rgba(59,86,166,1) 64%);
background-size: auto 100%;
background-repeat: no-repeat;
color: rgb(255, 255, 255);
font-family: 'Montserrat', sans-serif;
}
.profile{
margin-top: 30vh;
height: 70vh;
}
.triangle
{
bottom: 0;
right: 0;
width: 0;
height: 0;
border-bottom: 5vw solid rgba(136, 136, 136, 0.747);
border-left: 5vw solid transparent;
margin: 0%;
}
.floatingwarning{
position: fixed;
padding: 2%;
bottom: 10%;
left: 10%;
z-index: 2;
background-color: rgba(0, 0, 0, 0.68);
color: white;
font-size: 1.5em;
width: 40%;
}
}
@media (orientation: portrait) {
#intro{
min-height: 100vh;
background: rgb(59,86,166);
background: linear-gradient(139deg, rgba(59,86,166,1) 0%, rgba(169,60,81,1) 29%, rgba(59,86,166,1) 64%);
background-size: 100% auto;
background-repeat: no-repeat;
color: rgb(255, 255, 255);
font-family: 'Montserrat', sans-serif;
}
.profile{
display: none;
}
.triangle
{
bottom: 0;
right: 0;
width: 0;
height: 0;
border-bottom: 20vw solid rgba(136, 136, 136, 0.747);
border-left: 20vw solid transparent;
margin: 0%;
}
.floatingwarning{
position: fixed;
padding: 1%;
bottom: 2%;
left: 2%;
z-index: 2;
background-color: rgba(0, 0, 0, 0.68);
color: white;
font-size: 1.125em;
width: 60%;
}
}
#floatingmenu{
position: fixed;
z-index: 2;
bottom: 0;
right: 0;
}
#intro p{
line-height: 1.5;
}
.jumpto{
font-weight: bold;
/*background-color: rgba(255, 255, 255, 0.171);
border: 1px solid #4d4d4d;
border-radius: 10px;
box-shadow: rgba(213, 217, 217, .5) 0 2px 5px 0;
*/
box-sizing: border-box;
color: #fdfdfd;
cursor: pointer;
display: inline-block;
font-family: "Montserrat",sans-serif;
font-size: 100%;
margin: 4 px;
padding: 5px;
text-decoration: none;
text-align: center;
vertical-align: middle;
font-weight: bold;
}
.jumpto:hover {
background-color: rgba(255, 255, 255, 0.9);
text-decoration: none;
}
.jumpto img{
width: 3vw;
}
#intro h1{
font-size: 230%;
padding-top: 15%;
padding-bottom: 2%;
}
#intro_text{
font-size: 120%;
padding-right: 2%;
padding-bottom: 3%;
}
#education .white_text{
margin-top: 7%;
margin-bottom: 6%;
}
.white_text{
font-family: 'Mulish', sans-serif;
padding: 4% 2% 4% 2%;
font-size: 120%;
}
#certification .white_text{
padding: 10% 5% 10% 5%;
}
.white_text h2{
font-size: 400%;
}
#experience{
background: rgb(125,59,166);
background: linear-gradient(30deg, rgba(125,59,166,1) 0%, rgba(59,86,166,1) 43%, rgba(125,59,166,1) 100%);
color: white;
}
.colour_head{
text-align: center;
padding: 10% 0% 1% 0%;
font-family: 'Montserrat', sans-serif;
font-size: 370%;
}
#skills p{
text-align: center;
padding: 3% 0% 3% 0%;
font-size: 200%;
font-family: 'Montserrat', sans-serif;
}
#exp_text{
padding: 3% 20% 3% 20%;
line-height: 2;
font-weight: 600;
font-family: 'Montserrat', serif;
}
.binner{
color: rgb(0, 0, 0);
padding: 6% 3% 6% 3%;
font-size: 110%;
line-height: 2;
font-family: 'Montserrat', sans-serif;
border-radius: 3%;
margin: 3%;
background-color: rgba(255, 255, 255, 0.8);
box-shadow: 20px 20px rgba(0, 0, 0, 0.288);
}
#skills{
background: rgb(59,156,166);
background: linear-gradient(30deg, rgba(59,156,166,1) 0%, rgba(59,86,166,1) 61%, rgba(59,156,166,1) 100%);
color: rgb(255, 255, 255);
}
.skillico{
width: 100%;
padding: 20%;
}
#minorskills{
padding: 0% auto;
margin-left: 5%;
margin-bottom: 10%;
}
.smallcont{
display: inline-block;
margin: 1%;
padding: 2%;
color: rgb(0, 0, 0);
font-size: 130%;
font-family: 'Montserrat', sans-serif;
border-radius: 3%;
background-color: rgba(255, 255, 255, 0.459);
box-shadow: 5px 10px rgba(0, 0, 0, 0.432);
}
.smallhead{
padding-top: 4% !important;
}
.languages .binner{
padding: 8% 20% 8% 20%;
}
#projects{
text-align: center;
}
.project{
margin-top: 4%;
margin-bottom: 4%;
padding: 1%;
}
.project h1{
padding: 3% 0% 3% 0%;
font-size: 350%;
}
.imgproject{
width: 100%;
padding-bottom: 5%;
}
.projecttext{
font-size: 100%;
text-align:justify;
}
.totop{
position: absolute;
top: 50%;
left: 50%;
width: 40%;
padding: 0%;
opacity: 10%;
}
.triangle:hover .totop{
opacity: 100%;
}
.date{
font-style: italic;
float: right;
font-size: 80%;
}

View File

@@ -1,27 +1,65 @@
import {ProjectArguments, SkillEnum} from "@/src/portfolio/helpers/Project"; import {ProjectArguments, SkillEnum} from "@/src/portfolio/helpers/Project";
const projectData : ProjectArguments[] = [ const projectData : ProjectArguments[] = [
{
imagePath: "expertAgents.png",
tech: [
SkillEnum.machineLearning,
SkillEnum.research,
SkillEnum.python,
SkillEnum.numpy,
SkillEnum.dataEngineering,
SkillEnum.nlp
],
github: "https://github.com/KuchtaVR6/Multi-LLM-Agent",
document: "/multiAgent.pdf",
title: "Research Review of Neural Techniques for low-resource language translation",
text: "In this work, I explore a practical and cost-effective approach to improving how AI models interact with external tools and APIs. Instead of relying on large, expensive models or complex zero-shot learning methods, I utilize a modular pipeline using smaller, specialized components (Planner, Caller, Summariser) trained separately. I introduce to it a hard routing agent system that assigns tasks to expert adapters based on API categories, the system achieves performance that surpasses much larger closed-source models on a key benchmark. This approach enables more efficient, decentralized training and has potential applications beyond the tool-use QA task."
},
{
imagePath: "latviaEstimation.png",
title: "Deep Learning for Real Estate Valuation - Introducing a novel normalization technique",
tech: [
SkillEnum.machineLearning,
SkillEnum.research,
SkillEnum.python,
SkillEnum.numpy,
SkillEnum.dataEngineering,
SkillEnum.computerVision
],
document: "/DNNpropertyEstimation.pdf",
text: "Conducted within a group of three, this project presents a novel deep learning approach to predicting apartment prices using both images and structured data. The model combines feed-forward and DenseNet convolutional networks, enhanced through transfer learning and advanced regularization techniques. To address regional and temporal variations in the housing market, we introduced a geo-temporally normalized loss function—an innovation tailored for real-world market dynamics. Uniquely, the study also incorporates transport and point-of-interest maps as part of the feature set. Evaluated on a partially self-collected Latvian real estate dataset, the system achieved a strong R² score of 0.7287, surpassing previous methods in the field."
},
{
imagePath: "ipp.png",
title: "Research Proposal: Multi-LLM Tool Use Task Splits and Fine-Tuning Strategies",
tech: [
SkillEnum.machineLearning,
SkillEnum.research
],
text: "This 2025 research proposal explores new ways to enhance tool use in small language models by distributing tasks across multiple fine-tuned agents. Building on recent advances in parameter-efficient fine-tuning (PEFT), the proposed study investigates novel task divisions and tuning strategies to improve the effectiveness of multi-agent LLM systems. While still in the proposal stage, this work aims to contribute to the growing field of tool-augmented AI by making small models more capable and cost-efficient.",
document: "/ResearchReview.pdf"
},
{ {
imagePath: "researchReview.png", imagePath: "researchReview.png",
title: "Research Review of Neural Techniques for low-resource language translation", title: "Research Review of Neural Techniques for low-resource language translation",
tech: [ tech: [
SkillEnum.machineLearning, SkillEnum.machineLearning,
SkillEnum.latex,
SkillEnum.research SkillEnum.research
], ],
text: "As part of my Master's program, I had the opportunity to conduct an in-depth research review on \"Neural Techniques for Low-Resource Language Translation,\" which received excellent marks across all criteria. By critically evaluating the current state of the art in this field, I gained valuable insights into the potential of neural machine translation to break down language barriers and enable better communication across different cultures and communities. I am proud to showcase this project on my website and contribute to the ongoing efforts to improve low-resource language translation. This report was marked as 'excellent' for every criterion assessed in this course.", text: "As part of my Master's program, I had the opportunity to conduct an in-depth research review on \"Neural Techniques for Low-Resource Language Translation,\" which received excellent marks across all criteria. By critically evaluating the current state of the art in this field, I gained valuable insights into the potential of neural machine translation to break down language barriers and enable better communication across different cultures and communities. I am proud to showcase this project on my website and contribute to the ongoing efforts to improve low-resource language translation. This report was marked as 'excellent' for every criterion assessed in this course.",
access: "/ResearchReview.pdf" document: "/ResearchReview.pdf"
}, },
{ {
imagePath: "naturalComputing.png", imagePath: "naturalComputing.png",
title: "Natural Computing: Implementing and analysis PSO, GA and GP", title: "Natural Computing: Implementing and analysis of PSO, GA and GP",
tech: [ tech: [
SkillEnum.python, SkillEnum.python,
SkillEnum.numpy, SkillEnum.numpy,
], ],
text: "During my Master's program, I had the opportunity to take a course on Natural Computing, where I implemented and analyzed three major algorithms: Particle Swarm Optimization (PSO), Genetic Algorithms (GA), and Genetic Programming (GP). This coursework allowed me to gain hands-on experience with these powerful optimization techniques, which are inspired by natural phenomena such as swarm intelligence and evolution. Through this project, I developed a deep understanding of the underlying principles of natural computing and its potential applications in various fields, such as engineering, finance, and biology. I am excited to showcase my implementation and analysis of PSO, GA, and GP on my website and demonstrate my proficiency in natural computing techniques.", text: "During my Master's program, I had the opportunity to take a course on Natural Computing, where I implemented and analyzed three major algorithms: Particle Swarm Optimization (PSO), Genetic Algorithms (GA), and Genetic Programming (GP). This coursework allowed me to gain hands-on experience with these powerful optimization techniques, which are inspired by natural phenomena such as swarm intelligence and evolution. Through this project, I developed a deep understanding of the underlying principles of natural computing and its potential applications in various fields, such as engineering, finance, and biology. I am excited to showcase my implementation and analysis of PSO, GA, and GP on my website and demonstrate my proficiency in natural computing techniques.",
github: "https://github.com/KuchtaVR6/nat_coursework", github: "https://github.com/KuchtaVR6/nat_coursework",
access: "/PatrykKuchta_nat.pdf" document: "/PatrykKuchta_nat.pdf"
}, },
{ {
imagePath: "learnopedia.png", imagePath: "learnopedia.png",
@@ -34,8 +72,7 @@ const projectData : ProjectArguments[] = [
SkillEnum.css, SkillEnum.css,
SkillEnum.express, SkillEnum.express,
], ],
github: "https://github.com/KuchtaVR6/Learnopedia", github: "https://github.com/KuchtaVR6/Learnopedia"
access: "https://learnopedia.kuchta.uk"
}, },
{ {
imagePath: "cifar10.png", imagePath: "cifar10.png",
@@ -85,7 +122,18 @@ const projectData : ProjectArguments[] = [
github: "https://github.com/KuchtaVR6/PhotoCa.st" github: "https://github.com/KuchtaVR6/PhotoCa.st"
}, },
{ {
imagePath: "port2.png", imagePath: "psychotherapist.png",
title: "Portfolio website for an Psychotherapist",
text: "I created a portfolio website for a psychotherapist, working closely with the client to develop a design that feels calm, professional, and welcoming. Using React, TypeScript, and CSS, I translated our collaborative vision into a fully responsive and accessible site. The layout and visual style were carefully crafted to reflect the therapists approach and values. I ensured seamless performance across devices and screen sizes, with attention to both aesthetics and usability.",
tech: [
SkillEnum.react,
SkillEnum.typescript,
SkillEnum.css
],
access: "https://agatatherapy.com/"
},
{
imagePath: "architect.png",
title: "Portfolio website for an Architect", title: "Portfolio website for an Architect",
text: "Another professional website, that I have created is a portfolio website for an Architect. The design was a vital part of the whole experience as an Architect needs to exhibit their design language. The creation of this website involved using HTML, CSS and Javascript. Javascript is mainly used for the integrated gallery view of each project. Whilst I didn't come up with the design, I was tasked with translating sketches into code. Furthermore, Bootstrap was used to ensure that the website still looks stunning on a mobile device or a vertical screen.", text: "Another professional website, that I have created is a portfolio website for an Architect. The design was a vital part of the whole experience as an Architect needs to exhibit their design language. The creation of this website involved using HTML, CSS and Javascript. Javascript is mainly used for the integrated gallery view of each project. Whilst I didn't come up with the design, I was tasked with translating sketches into code. Furthermore, Bootstrap was used to ensure that the website still looks stunning on a mobile device or a vertical screen.",
tech: [ tech: [
@@ -97,17 +145,17 @@ const projectData : ProjectArguments[] = [
github: "https://github.com/KuchtaVR6/Portfolio-for-an-Architect", github: "https://github.com/KuchtaVR6/Portfolio-for-an-Architect",
access: "https://aleksandrakuchta.co.uk/" access: "https://aleksandrakuchta.co.uk/"
}, },
{ // {
imagePath: "port1.png", // imagePath: "port1.png",
title: "My previous portfolio website", // title: "My previous portfolio website",
text: "This website was created as a challenge to myself to create an eye-pleasing and portable website with limited time. I decided to make it purely using HTML and CSS, and for the portability, I have used Bootstrap CSS. The resulting product is an informative, simple and good looking portfolio, which I was quite happy with. Throughout this academic year, I have gained more confidence in using React, I have decided to remake my portfolio this time with a more interesting and responsive design in mind, whilst maintaining the readability of the older version.", // text: "This website was created as a challenge to myself to create an eye-pleasing and portable website with limited time. I decided to make it purely using HTML and CSS, and for the portability, I have used Bootstrap CSS. The resulting product is an informative, simple and good looking portfolio, which I was quite happy with. Throughout this academic year, I have gained more confidence in using React, I have decided to remake my portfolio this time with a more interesting and responsive design in mind, whilst maintaining the readability of the older version.",
tech: [ // tech: [
SkillEnum.html, // SkillEnum.html,
SkillEnum.css, // SkillEnum.css,
SkillEnum.bootstrap // SkillEnum.bootstrap
], // ],
github: "https://github.com/KuchtaVR6/porfolio2021", // github: "https://github.com/KuchtaVR6/porfolio2021",
}, // },
{ {
imagePath: "proj2.png", imagePath: "proj2.png",
title: "A discord bot for colourful messages", title: "A discord bot for colourful messages",
@@ -130,19 +178,19 @@ const projectData : ProjectArguments[] = [
SkillEnum.design3d SkillEnum.design3d
] ]
}, },
{ // {
imagePath: "port3.png", // imagePath: "port3.png",
title: "My current portfolio website", // title: "My current portfolio website",
text: "And finally, this website is my most recent project. Design-wise I wanted to keep the website minimalistic but stunning at the same time to show my skills, and I have kept accessibility in mind. I had created this project with plentiful react to experience and I created this website with a very high standard of code and with reusability in mind so that I don't have to rewrite this website in the future. Admittedly I will probably end up doing it anyway because I love coding and improving my websites. ", // text: "And finally, this website is my most recent project. Design-wise I wanted to keep the website minimalistic but stunning at the same time to show my skills, and I have kept accessibility in mind. I had created this project with plentiful react to experience and I created this website with a very high standard of code and with reusability in mind so that I don't have to rewrite this website in the future. Admittedly I will probably end up doing it anyway because I love coding and improving my websites. ",
tech: [ // tech: [
SkillEnum.react, // SkillEnum.react,
SkillEnum.html, // SkillEnum.html,
SkillEnum.javascript, // SkillEnum.javascript,
SkillEnum.css // SkillEnum.css
], // ],
github: "https://github.com/KuchtaVR6/Portfolio", // github: "https://github.com/KuchtaVR6/Portfolio",
access: "/" // access: "/"
} // }
]; ];
export default projectData; export default projectData;

View File

@@ -77,6 +77,18 @@ export const skillsInCategories = {
} }
], ],
"Miscellaneous": [ "Miscellaneous": [
{
name: SkillEnum.nlp,
level: ProficiencyLevel.master
},
{
name: SkillEnum.dataEngineering,
level: ProficiencyLevel.master
},
{
name: SkillEnum.computerVision,
level: ProficiencyLevel.advanced
},
{ {
name: SkillEnum.latex, name: SkillEnum.latex,
level: ProficiencyLevel.master level: ProficiencyLevel.master

View File

@@ -2,7 +2,7 @@ import {WorkExperienceArgs} from "@/src/portfolio/helpers/WorkExperience";
const workExperienceData : WorkExperienceArgs[] = [ const workExperienceData : WorkExperienceArgs[] = [
{ {
industry: "Software", industry: "Software & AI",
title: "Software Developer", title: "Software Developer",
company: "Softwire", company: "Softwire",
city: "Manchester", city: "Manchester",
@@ -47,8 +47,8 @@ const workExperienceData : WorkExperienceArgs[] = [
{ {
industry: "Education", industry: "Education",
title: "Computer Science Teaching Intern", title: "Computer Science Teaching Intern",
company: "Sacred Heart of Mary Girls' School in Upminster", company: "Sacred Heart of Mary Girls' School",
city: "London", city: "Upminster",
country: "United Kingdom", country: "United Kingdom",
startDate: "June 2022", startDate: "June 2022",
endDate: "July 2022" endDate: "July 2022"
@@ -100,19 +100,18 @@ const workExperienceData : WorkExperienceArgs[] = [
}, },
]; ];
// todo update export const workExperienceParagraph =
export const workExperienceParagraph = "Since the age of 16, I have actively engaged in various professional roles across multiple industries, " +
"Since the age of 16, I have been actively engaged in various professional roles across multiple industries, " +
"including Artificial Intelligence, Software, Education, and Hospitality. My journey began in the hospitality " + "including Artificial Intelligence, Software, Education, and Hospitality. My journey began in the hospitality " +
"sector, working as a Customer Assistant at McDonald's in Warsaw, Poland, and later at Morrisons in London, UK. " + "sector, where I developed strong interpersonal and customer service skills. I then transitioned into the " +
"I then transitioned into the education sector, serving as a Coding Tutor at Kodland, a Tutor at FireTechCamp, " + "education sector, serving as a Coding Tutor at Kodland, a Tutor at FireTechCamp, and a Computer Science " +
"and a Computer Science Teaching Intern at Sacred Heart of Mary Girls' School in Upminster. I also volunteered " + "Teaching Intern at Sacred Heart of Mary Girls' School in Upminster. I also volunteered as a Buddy Scheme " +
"as a Buddy Scheme Mentor at Queen Mary University, where I later took on the role of a Laboratory Demonstrator. " + "Mentor at Queen Mary University, where I later became a Laboratory Demonstrator. In the software industry, " +
"In the software industry, I gained experience as a Software Developer Intern at Softwire. During my masters, I " + "I gained experience as a Software Developer Intern at Softwire. During my master's degree, I contributed to " +
"have been contributing to the Artificial Intelligence industry as a Programming Data Annotator at DataAnnotation " + "the Artificial Intelligence industry as a Programming Data Annotator at DataAnnotation Tech. Upon graduation, " +
"Tech. Upon Graduation, I was offered to join Softwire as a Software Developer and I decided to take the offer " + "I accepted a full-time offer to join Softwire as a Software Developer in their North West office in Manchester, " +
"and to work in their regional North West office in Manchester know for pushing innovation in the AI and Data " + "known for its focus on innovation in the AI and Data sector. At Softwire, I have gained valuable experience " +
"Sector Throughout these diverse experiences, I have developed a strong work ethic and a wide range of " + "working on several AI projects, applying my theoretical machine learning knowledge to real-world problems. " +
"transferable skills."; "Across these diverse roles, I have developed a strong work ethic and a broad set of transferable skills.";
export default workExperienceData; export default workExperienceData;

View File

@@ -1,7 +1,7 @@
import Image from "next/image"; import Image from "next/image";
import styles from "../styling/projects.module.scss"; import styles from "../styling/projects.module.scss";
import {VscGithub} from "react-icons/vsc"; import {VscGithub} from "react-icons/vsc";
import {BsGlobe2} from "react-icons/bs"; import {BsGlobe2, BsFileEarmarkMedical} from "react-icons/bs";
export interface ProjectArguments { export interface ProjectArguments {
imagePath : string, imagePath : string,
@@ -9,7 +9,8 @@ export interface ProjectArguments {
text : string, text : string,
tech : SkillEnum[], tech : SkillEnum[],
github? : string, github? : string,
access? : string access? : string,
document? : string,
} }
export enum SkillEnum { export enum SkillEnum {
@@ -37,6 +38,8 @@ export enum SkillEnum {
photoshop = "photo-editing", photoshop = "photo-editing",
machineLearning = "machine learning", machineLearning = "machine learning",
computerVision = "computer vision", computerVision = "computer vision",
dataEngineering = "data engineering",
nlp = "natural language processing",
latex = "LATEX", latex = "LATEX",
research = "research", research = "research",
polish = "Polish", polish = "Polish",
@@ -44,7 +47,7 @@ export enum SkillEnum {
english = "English", english = "English",
} }
const Project = ({imagePath, title, text, github, access} : ProjectArguments) => { const Project = ({imagePath, title, text, github, access, document} : ProjectArguments) => {
return ( return (
<div className={styles.projectDisplay}> <div className={styles.projectDisplay}>
<div className={styles.text}> <div className={styles.text}>
@@ -61,6 +64,10 @@ const Project = ({imagePath, title, text, github, access} : ProjectArguments) =>
<a href={access} title={"View and use the project here"} className={styles.icon} data-aos={"fade-left"}> <a href={access} title={"View and use the project here"} className={styles.icon} data-aos={"fade-left"}>
<BsGlobe2/> <BsGlobe2/>
</a> : ""} </a> : ""}
{document?
<a href={document} title={"The report here"} className={styles.icon} data-aos={"fade-left"}>
<BsFileEarmarkMedical/>
</a> : ""}
</div> </div>
</div> </div>

View File

@@ -2,7 +2,7 @@ import {FC} from "react";
import styles from "../styling/experience.module.scss"; import styles from "../styling/experience.module.scss";
export type WorkExperienceArgs = { export type WorkExperienceArgs = {
industry? : "Education" | "Software" | "Hospitality" | "Artificial Intelligence", industry? : "Education" | "Software" | "Software & AI" | "Hospitality" | "Artificial Intelligence",
company : string, company : string,
startDate : string, startDate : string,
title : string, title : string,
@@ -17,8 +17,10 @@ const WorkExperience : FC<WorkExperienceArgs> = (props) => {
switch (props.industry) { switch (props.industry) {
case "Education": case "Education":
return "🎓"; return "🎓";
case "Software": case "Software & AI":
return "👨‍💻"; return "👨‍💻";
case "Software":
return "💻";
case "Hospitality": case "Hospitality":
return "🛎️"; return "🛎️";
case "Artificial Intelligence": case "Artificial Intelligence":

View File

@@ -6,7 +6,7 @@ import workExperienceData, {workExperienceParagraph} from "@/src/portfolio/data/
const Experience = () => { const Experience = () => {
const calcPagesOnWidth = (width : number) => { const calcPagesOnWidth = (width : number) => {
return Math.floor(width / 700 + 1); return Math.floor(width / 800 + 1);
}; };
const [pages, setPages] = useState(calcPagesOnWidth(1000)); const [pages, setPages] = useState(calcPagesOnWidth(1000));

View File

@@ -3,7 +3,7 @@ import styles from "../styling/footer.module.scss";
const Footer = () => { const Footer = () => {
return ( return (
<footer className={styles.section}> <footer className={styles.section}>
Copyright &copy; Patryk Kuchta 2024 Copyright &copy; Patryk Kuchta {new Date().getFullYear()}
</footer> </footer>
); );
}; };

View File

@@ -9,7 +9,7 @@ const Projects = () => {
<Splide <Splide
options={{ options={{
rewind: true, rewind: true,
type: "loop", type: "slide",
perPage: 1, perPage: 1,
}} }}
> >

View File

@@ -35,7 +35,7 @@
.title { .title {
color: $red; color: $accent_colour;
} }
.notes { .notes {

View File

@@ -30,7 +30,6 @@
} }
.redText { .redText {
color: $red;
} }
.industry { .industry {

View File

@@ -35,7 +35,7 @@
text-decoration: none; text-decoration: none;
&:hover { &:hover {
color: $strong_red; color: $accent_colour;
font-style: italic; font-style: italic;
} }
} }
@@ -68,6 +68,8 @@
font-size: 0.7em; font-size: 0.7em;
.text { .text {
margin: 2em 0 2em 0;
flex-grow: 1; flex-grow: 1;
text-align: center; text-align: center;
line-height: 1.5; line-height: 1.5;
@@ -79,14 +81,15 @@
} }
.greeting { .greeting {
color: $strong_red; color: $accent_colour;
font-weight: 600;
font-style: italic; font-style: italic;
} }
} }
.profileContainer { .profileContainer {
margin: 0 0 0 auto; margin: 0 0 0 auto;
max-width: 35em; max-width: 40em;
height: max-content; height: max-content;
display: flex; display: flex;
position: relative; position: relative;

View File

@@ -36,10 +36,17 @@
display: flex; display: flex;
.imageContainer { .imageContainer {
margin: auto 0; margin: auto;
position: relative; position: relative;
width: 100%; max-width: 100%;
max-height: 60vh;
@include nextImg; @include nextImg;
img {
width: 100%;
height: 100%;
object-fit: contain; // or 'contain' depending on the effect you want
}
} }
.tech { .tech {
@@ -63,10 +70,11 @@
.icon { .icon {
color: $white; color: $white;
filter: drop-shadow(7px 7px 5px $red); filter: drop-shadow(7px 7px 5px $accent_colour);
$size: 4em; $size: 4em;
width: $size; width: $size;
height: $size; height: $size;
svg { svg {
width: $size; width: $size;
height: $size; height: $size;

View File

@@ -43,7 +43,7 @@
text-decoration: none; text-decoration: none;
&:hover { &:hover {
color: $strong_red; color: $accent_colour;
font-style: italic; font-style: italic;
} }
} }

View File

@@ -3,8 +3,7 @@
$black: #000000; $black: #000000;
$white: #ffffff; $white: #ffffff;
$gray: #E3E3E3; $gray: #E3E3E3;
$strong_red: #ff0000; $accent_colour: #9b3c5c;
$red: #8F0000;
@mixin darkSection { @mixin darkSection {
background-color: $black; background-color: $black;

View File

@@ -22,11 +22,11 @@ body {
} }
.splide__arrow svg { .splide__arrow svg {
fill: $red !important; fill: $accent_colour !important;
} }
.splide__pagination__page.is-active { .splide__pagination__page.is-active {
background-color: $red !important; background-color: $accent_colour !important;
} }
.splide__arrow.splide__arrow--next { .splide__arrow.splide__arrow--next {