From 49b7ad0d6f4d176185aa9550e9ab418258139fa1 Mon Sep 17 00:00:00 2001 From: Bradley Shellnut Date: Tue, 1 Aug 2023 14:01:24 -0700 Subject: [PATCH] Adding Melt-ui until it gets integrated into Shadcn-svelte and using for header avatar dropdown. Upgrading to Prisma 5 and other dependencies. Adding profile and protected routes. --- package.json | 15 +- pnpm-lock.yaml | 347 ++++++++++-------- src/lib/components/header/index.svelte | 51 ++- .../(protected)/profile/+page.server.ts | 0 src/routes/(protected)/profile/+page.svelte | 110 ++++++ src/routes/+layout.svelte | 31 +- .../auth/password/reset/+page.server.ts | 0 src/routes/auth/password/reset/+page.svelte | 0 svelte.config.js | 5 +- 9 files changed, 377 insertions(+), 182 deletions(-) create mode 100644 src/routes/(protected)/profile/+page.server.ts create mode 100644 src/routes/(protected)/profile/+page.svelte create mode 100644 src/routes/auth/password/reset/+page.server.ts create mode 100644 src/routes/auth/password/reset/+page.svelte diff --git a/package.json b/package.json index 24dbd51..4140b09 100644 --- a/package.json +++ b/package.json @@ -22,17 +22,18 @@ "seed": "ts-node --esm prisma/seed.ts" }, "devDependencies": { + "@melt-ui/pp": "^0.0.7", "@playwright/test": "^1.36.2", "@sveltejs/adapter-auto": "^1.0.3", "@sveltejs/adapter-vercel": "^1.0.6", - "@sveltejs/kit": "^1.22.3", + "@sveltejs/kit": "^1.22.4", "@types/cookie": "^0.5.1", "@types/node": "^18.17.1", "@typescript-eslint/eslint-plugin": "^5.62.0", "@typescript-eslint/parser": "^5.62.0", "autoprefixer": "^10.4.14", - "eslint": "^8.45.0", - "eslint-config-prettier": "^8.8.0", + "eslint": "^8.46.0", + "eslint-config-prettier": "^8.9.0", "eslint-plugin-svelte": "^2.32.4", "just-clone": "^6.2.0", "just-debounce-it": "^3.2.0", @@ -42,11 +43,12 @@ "postcss-preset-env": "^8.5.1", "prettier": "^2.8.8", "prettier-plugin-svelte": "^2.10.1", - "prisma": "^4.16.2", + "prisma": "^5.1.0", "sass": "^1.64.1", - "svelte": "^4.1.1", + "svelte": "^4.1.2", "svelte-check": "^3.4.6", "svelte-preprocess": "^5.0.4", + "svelte-sequential-preprocessor": "^2.0.1", "sveltekit-flash-message": "^2.1.0", "sveltekit-superforms": "^1.5.0", "tailwindcss": "^3.3.3", @@ -70,7 +72,8 @@ "@lucia-auth/adapter-mysql": "^1.1.1", "@lucia-auth/adapter-prisma": "^3.0.0", "@lukeed/uuid": "^2.0.1", - "@prisma/client": "4.16.2", + "@melt-ui/svelte": "^0.27.3", + "@prisma/client": "5.1.0", "@types/feather-icons": "^4.29.1", "class-variance-authority": "^0.6.1", "clsx": "^1.2.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e736e87..c6f7c60 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -22,13 +22,16 @@ dependencies: version: 1.1.1(lucia-auth@1.8.0) '@lucia-auth/adapter-prisma': specifier: ^3.0.0 - version: 3.0.0(@prisma/client@4.16.2)(lucia@2.0.0) + version: 3.0.0(@prisma/client@5.1.0)(lucia@2.0.0) '@lukeed/uuid': specifier: ^2.0.1 version: 2.0.1 + '@melt-ui/svelte': + specifier: ^0.27.3 + version: 0.27.3(svelte@4.1.2) '@prisma/client': - specifier: 4.16.2 - version: 4.16.2(prisma@4.16.2) + specifier: 5.1.0 + version: 5.1.0(prisma@5.1.0) '@types/feather-icons': specifier: ^4.29.1 version: 4.29.1 @@ -58,25 +61,25 @@ dependencies: version: 2.0.0 lucide-svelte: specifier: ^0.256.1 - version: 0.256.1(svelte@4.1.1) + version: 0.256.1(svelte@4.1.2) open-props: specifier: ^1.5.10 version: 1.5.10 radix-svelte: specifier: ^0.8.0 - version: 0.8.0(svelte@4.1.1) + version: 0.8.0(svelte@4.1.2) svelte-french-toast: specifier: ^1.2.0 - version: 1.2.0(svelte@4.1.1) + version: 1.2.0(svelte@4.1.2) svelte-lazy: specifier: ^1.2.1 - version: 1.2.1(svelte@4.1.1) + version: 1.2.1(svelte@4.1.2) svelte-lazy-loader: specifier: ^1.0.0 version: 1.0.0 svelte-legos: specifier: ^0.2.1 - version: 0.2.1(svelte@4.1.1) + version: 0.2.1(svelte@4.1.2) tailwind-merge: specifier: ^1.14.0 version: 1.14.0 @@ -88,18 +91,21 @@ dependencies: version: 3.21.4(zod@3.21.4) devDependencies: + '@melt-ui/pp': + specifier: ^0.0.7 + version: 0.0.7(@melt-ui/svelte@0.27.3)(svelte@4.1.2) '@playwright/test': specifier: ^1.36.2 version: 1.36.2 '@sveltejs/adapter-auto': specifier: ^1.0.3 - version: 1.0.3(@sveltejs/kit@1.22.3) + version: 1.0.3(@sveltejs/kit@1.22.4) '@sveltejs/adapter-vercel': specifier: ^1.0.6 - version: 1.0.6(@sveltejs/kit@1.22.3) + version: 1.0.6(@sveltejs/kit@1.22.4) '@sveltejs/kit': - specifier: ^1.22.3 - version: 1.22.3(svelte@4.1.1)(vite@4.4.7) + specifier: ^1.22.4 + version: 1.22.4(svelte@4.1.2)(vite@4.4.7) '@types/cookie': specifier: ^0.5.1 version: 0.5.1 @@ -108,22 +114,22 @@ devDependencies: version: 18.17.1 '@typescript-eslint/eslint-plugin': specifier: ^5.62.0 - version: 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.45.0)(typescript@5.1.6) + version: 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.46.0)(typescript@5.1.6) '@typescript-eslint/parser': specifier: ^5.62.0 - version: 5.62.0(eslint@8.45.0)(typescript@5.1.6) + version: 5.62.0(eslint@8.46.0)(typescript@5.1.6) autoprefixer: specifier: ^10.4.14 version: 10.4.14(postcss@8.4.27) eslint: - specifier: ^8.45.0 - version: 8.45.0 + specifier: ^8.46.0 + version: 8.46.0 eslint-config-prettier: - specifier: ^8.8.0 - version: 8.8.0(eslint@8.45.0) + specifier: ^8.9.0 + version: 8.9.0(eslint@8.46.0) eslint-plugin-svelte: specifier: ^2.32.4 - version: 2.32.4(eslint@8.45.0)(svelte@4.1.1)(ts-node@10.9.1) + version: 2.32.4(eslint@8.46.0)(svelte@4.1.2)(ts-node@10.9.1) just-clone: specifier: ^6.2.0 version: 6.2.0 @@ -147,28 +153,31 @@ devDependencies: version: 2.8.8 prettier-plugin-svelte: specifier: ^2.10.1 - version: 2.10.1(prettier@2.8.8)(svelte@4.1.1) + version: 2.10.1(prettier@2.8.8)(svelte@4.1.2) prisma: - specifier: ^4.16.2 - version: 4.16.2 + specifier: ^5.1.0 + version: 5.1.0 sass: specifier: ^1.64.1 version: 1.64.1 svelte: - specifier: ^4.1.1 - version: 4.1.1 + specifier: ^4.1.2 + version: 4.1.2 svelte-check: specifier: ^3.4.6 - version: 3.4.6(postcss-load-config@4.0.1)(postcss@8.4.27)(sass@1.64.1)(svelte@4.1.1) + version: 3.4.6(postcss-load-config@4.0.1)(postcss@8.4.27)(sass@1.64.1)(svelte@4.1.2) svelte-preprocess: specifier: ^5.0.4 - version: 5.0.4(postcss-load-config@4.0.1)(postcss@8.4.27)(sass@1.64.1)(svelte@4.1.1)(typescript@5.1.6) + version: 5.0.4(postcss-load-config@4.0.1)(postcss@8.4.27)(sass@1.64.1)(svelte@4.1.2)(typescript@5.1.6) + svelte-sequential-preprocessor: + specifier: ^2.0.1 + version: 2.0.1 sveltekit-flash-message: specifier: ^2.1.0 - version: 2.1.0(@sveltejs/kit@1.22.3)(svelte@4.1.1) + version: 2.1.0(@sveltejs/kit@1.22.4)(svelte@4.1.2) sveltekit-superforms: specifier: ^1.5.0 - version: 1.5.0(@sveltejs/kit@1.22.3)(svelte@4.1.1)(zod@3.21.4) + version: 1.5.0(@sveltejs/kit@1.22.4)(svelte@4.1.2)(zod@3.21.4) tailwindcss: specifier: ^3.3.3 version: 3.3.3(ts-node@10.9.1) @@ -1012,14 +1021,14 @@ packages: dev: true optional: true - /@eslint-community/eslint-utils@4.4.0(eslint@8.45.0): + /@eslint-community/eslint-utils@4.4.0(eslint@8.46.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.45.0 - eslint-visitor-keys: 3.4.1 + eslint: 8.46.0 + eslint-visitor-keys: 3.4.2 dev: true /@eslint-community/regexpp@4.5.0: @@ -1027,13 +1036,18 @@ packages: engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} dev: true - /@eslint/eslintrc@2.1.0: - resolution: {integrity: sha512-Lj7DECXqIVCqnqjjHMPna4vn6GJcMgul/wuS0je9OZ9gsL0zzDpKPVtcG1HaDVc+9y+qgXneTeUMbCqXJNpH1A==} + /@eslint-community/regexpp@4.6.2: + resolution: {integrity: sha512-pPTNuaAG3QMH+buKyBIGJs3g/S5y0caxw0ygM3YyE6yJFySwiGGSzA+mM3KJ8QQvzeLh3blwgSonkFjgQdxzMw==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + dev: true + + /@eslint/eslintrc@2.1.1: + resolution: {integrity: sha512-9t7ZA7NGGK8ckelF0PQCfcxIUzs1Md5rrO6U/c+FIQNanea5UZC0wqKXH4vHBccmu4ZJgZ2idtPeW7+Q2npOEA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 debug: 4.3.4 - espree: 9.6.0 + espree: 9.6.1 globals: 13.19.0 ignore: 5.2.1 import-fresh: 3.3.0 @@ -1044,20 +1058,18 @@ packages: - supports-color dev: true - /@eslint/js@8.44.0: - resolution: {integrity: sha512-Ag+9YM4ocKQx9AarydN0KY2j0ErMHNIocPDrVo8zAE44xLTjEtz81OdR68/cydGtk6m6jDb5Za3r2useMzYmSw==} + /@eslint/js@8.46.0: + resolution: {integrity: sha512-a8TLtmPi8xzPkCbp/OGFUo5yhRkHM2Ko9kOWP4znJr0WAhWyThaw3PnwX4vOTWOAMsV2uRt32PPDcEz63esSaA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true /@floating-ui/core@1.3.1: resolution: {integrity: sha512-Bu+AMaXNjrpjh41znzHqaz3r2Nr8hHuHZT6V2LBKMhyMl0FgKA62PNYbqnfgmzOhoWZj70Zecisbo4H1rotP5g==} - dev: false /@floating-ui/dom@1.4.2: resolution: {integrity: sha512-VKmvHVatWnewmGGy+7Mdy4cTJX71Pli6v/Wjb5RQBuq5wjUYx+Ef+kRThi8qggZqDgD8CogCpqhRoVp3+yQk+g==} dependencies: '@floating-ui/core': 1.3.1 - dev: false /@fontsource/fira-mono@4.5.10: resolution: {integrity: sha512-bxUnRP8xptGRo8YXeY073DSpfK74XpSb0ZyRNpHV9WvLnJ7TwPOjZll8hTMin7zLC6iOp59pDZ8EQDj1gzgAQQ==} @@ -1155,13 +1167,13 @@ packages: lucia-auth: 1.8.0 dev: false - /@lucia-auth/adapter-prisma@3.0.0(@prisma/client@4.16.2)(lucia@2.0.0): + /@lucia-auth/adapter-prisma@3.0.0(@prisma/client@5.1.0)(lucia@2.0.0): resolution: {integrity: sha512-qrFA5IID4AulINQbLQLQPIXqE9+M3zjmN558VDhrS3Y7Fdn5dyObPbHijUWw7lGYgOrhxDox9UUG8oyZ3+D1MA==} peerDependencies: '@prisma/client': ^4.2.0 || ^5.0.0 lucia: ^2.0.0 dependencies: - '@prisma/client': 4.16.2(prisma@4.16.2) + '@prisma/client': 5.1.0(prisma@5.1.0) lucia: 2.0.0 dev: false @@ -1195,6 +1207,27 @@ packages: - supports-color dev: true + /@melt-ui/pp@0.0.7(@melt-ui/svelte@0.27.3)(svelte@4.1.2): + resolution: {integrity: sha512-O7gRJ1OXmLjZBR7jB1SV2O4WORn1jk+k06gxej3EXPYAJGcPg+EfKNw54G0/VhhMup1ZrwMsleUgoCOzus/JUw==} + peerDependencies: + '@melt-ui/svelte': '>= 0.22.0' + svelte: ^3.55.0 || ^4.0.0 + dependencies: + '@melt-ui/svelte': 0.27.3(svelte@4.1.2) + svelte: 4.1.2 + dev: true + + /@melt-ui/svelte@0.27.3(svelte@4.1.2): + resolution: {integrity: sha512-NKv0GCmWqhp7cxvpJUW90ouNSmjxgE7GWs75w0cJfBdxS85Eie6DW4rCmkC8MOw1q20wg8fiQzQ03FGig4BbhA==} + peerDependencies: + svelte: '>=3 <5' + dependencies: + '@floating-ui/core': 1.3.1 + '@floating-ui/dom': 1.4.2 + focus-trap: 7.5.2 + nanoid: 4.0.2 + svelte: 4.1.2 + /@nodelib/fs.scandir@2.1.5: resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -1228,9 +1261,9 @@ packages: resolution: {integrity: sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==} dev: true - /@prisma/client@4.16.2(prisma@4.16.2): - resolution: {integrity: sha512-qCoEyxv1ZrQ4bKy39GnylE8Zq31IRmm8bNhNbZx7bF2cU5aiCCnSa93J2imF88MBjn7J9eUQneNxUQVJdl/rPQ==} - engines: {node: '>=14.17'} + /@prisma/client@5.1.0(prisma@5.1.0): + resolution: {integrity: sha512-aIxuXlH3p3Vy91buodQhYgAD9m0yuxJzpXMhc1ejQ/WN3pNNWzBA0iDcBObLq8DMdszcXmoLAk3hiRq/ZwBsOw==} + engines: {node: '>=16.13'} requiresBuild: true peerDependencies: prisma: '*' @@ -1238,16 +1271,16 @@ packages: prisma: optional: true dependencies: - '@prisma/engines-version': 4.16.1-1.4bc8b6e1b66cb932731fb1bdbbc550d1e010de81 - prisma: 4.16.2 + '@prisma/engines-version': 5.1.0-28.a9b7003df90aa623086e4d6f4e43c72468e6339b + prisma: 5.1.0 dev: false - /@prisma/engines-version@4.16.1-1.4bc8b6e1b66cb932731fb1bdbbc550d1e010de81: - resolution: {integrity: sha512-q617EUWfRIDTriWADZ4YiWRZXCa/WuhNgLTVd+HqWLffjMSPzyM5uOWoauX91wvQClSKZU4pzI4JJLQ9Kl62Qg==} + /@prisma/engines-version@5.1.0-28.a9b7003df90aa623086e4d6f4e43c72468e6339b: + resolution: {integrity: sha512-jTwE2oy1yjICmTfnCR0ASIpuMZXZ18sUzQXB7V0RMbrM9OlcmbUwXPuYhnxXuWN8XwRmujeIhsXs/Zeh+fjPOQ==} dev: false - /@prisma/engines@4.16.2: - resolution: {integrity: sha512-vx1nxVvN4QeT/cepQce68deh/Turxy5Mr+4L4zClFuK1GlxN3+ivxfuv+ej/gvidWn1cE1uAhW7ALLNlYbRUAw==} + /@prisma/engines@5.1.0: + resolution: {integrity: sha512-HqaFsnPmZOdMWkPq6tT2eTVTQyaAXEDdKszcZ4yc7DGMBIYRP6j/zAJTtZUG9SsMV8FaucdL5vRyxY/p5Ni28g==} requiresBuild: true /@rollup/pluginutils@4.2.1: @@ -1258,21 +1291,21 @@ packages: picomatch: 2.3.1 dev: true - /@sveltejs/adapter-auto@1.0.3(@sveltejs/kit@1.22.3): + /@sveltejs/adapter-auto@1.0.3(@sveltejs/kit@1.22.4): resolution: {integrity: sha512-hc7O12YQqvZ1CD4fo1gMJuPzBZvuoG5kwxb2RRoz4fVoB8B2vuPO2cY751Ln0G6T/HMrAf8kCqw6Pg+wbxcstw==} peerDependencies: '@sveltejs/kit': ^1.0.0 dependencies: - '@sveltejs/kit': 1.22.3(svelte@4.1.1)(vite@4.4.7) + '@sveltejs/kit': 1.22.4(svelte@4.1.2)(vite@4.4.7) import-meta-resolve: 2.2.0 dev: true - /@sveltejs/adapter-vercel@1.0.6(@sveltejs/kit@1.22.3): + /@sveltejs/adapter-vercel@1.0.6(@sveltejs/kit@1.22.4): resolution: {integrity: sha512-fo6aaEygPd/6B5Jms4Ff7R4jbADnppuLvKOWBNTGe5MGB7ZRUkl+gxHWMQx2av2knyEZkA6V8y5M6R3ML5yN4g==} peerDependencies: '@sveltejs/kit': ^1.0.0 dependencies: - '@sveltejs/kit': 1.22.3(svelte@4.1.1)(vite@4.4.7) + '@sveltejs/kit': 1.22.4(svelte@4.1.2)(vite@4.4.7) '@vercel/nft': 0.22.6 esbuild: 0.16.8 transitivePeerDependencies: @@ -1280,8 +1313,8 @@ packages: - supports-color dev: true - /@sveltejs/kit@1.22.3(svelte@4.1.1)(vite@4.4.7): - resolution: {integrity: sha512-IpHD5wvuoOIHYaHQUBJ1zERD2Iz+fB/rBXhXjl8InKw6X4VKE9BSus+ttHhE7Ke+Ie9ecfilzX8BnWE3FeQyng==} + /@sveltejs/kit@1.22.4(svelte@4.1.2)(vite@4.4.7): + resolution: {integrity: sha512-Opkqw1QXk4Cc25b/heJP2D7mX+OUBFAq4MXKfET58svTTxdeiHFKzmnuRsSF3nmxESqrLjqPAgHpib+knNGzRw==} engines: {node: ^16.14 || >=18} hasBin: true requiresBuild: true @@ -1289,7 +1322,7 @@ packages: svelte: ^3.54.0 || ^4.0.0-next.0 vite: ^4.0.0 dependencies: - '@sveltejs/vite-plugin-svelte': 2.4.1(svelte@4.1.1)(vite@4.4.7) + '@sveltejs/vite-plugin-svelte': 2.4.1(svelte@4.1.2)(vite@4.4.7) '@types/cookie': 0.5.1 cookie: 0.5.0 devalue: 4.3.1 @@ -1300,14 +1333,14 @@ packages: sade: 1.8.1 set-cookie-parser: 2.6.0 sirv: 2.0.2 - svelte: 4.1.1 + svelte: 4.1.2 undici: 5.22.0 vite: 4.4.7(@types/node@18.17.1)(sass@1.64.1) transitivePeerDependencies: - supports-color dev: true - /@sveltejs/vite-plugin-svelte-inspector@1.0.2(@sveltejs/vite-plugin-svelte@2.4.1)(svelte@4.1.1)(vite@4.4.7): + /@sveltejs/vite-plugin-svelte-inspector@1.0.2(@sveltejs/vite-plugin-svelte@2.4.1)(svelte@4.1.2)(vite@4.4.7): resolution: {integrity: sha512-Cy1dUMcYCnDVV/hPLXa43YZJ2jGKVW5rA0xuNL9dlmYhT0yoS1g7+FOFSRlgk0BXKk/Oc7grs+8BVA5Iz2fr8A==} engines: {node: ^14.18.0 || >= 16} peerDependencies: @@ -1315,28 +1348,28 @@ packages: svelte: ^3.54.0 || ^4.0.0-next.0 vite: ^4.0.0 dependencies: - '@sveltejs/vite-plugin-svelte': 2.4.1(svelte@4.1.1)(vite@4.4.7) + '@sveltejs/vite-plugin-svelte': 2.4.1(svelte@4.1.2)(vite@4.4.7) debug: 4.3.4 - svelte: 4.1.1 + svelte: 4.1.2 vite: 4.4.7(@types/node@18.17.1)(sass@1.64.1) transitivePeerDependencies: - supports-color dev: true - /@sveltejs/vite-plugin-svelte@2.4.1(svelte@4.1.1)(vite@4.4.7): + /@sveltejs/vite-plugin-svelte@2.4.1(svelte@4.1.2)(vite@4.4.7): resolution: {integrity: sha512-bNNKvoRY89ptY7udeBSCmTdCVwkjmMcZ0j/z9J5MuedT8jPjq0zrknAo/jF1sToAza4NVaAgR9AkZoD9oJJmnA==} engines: {node: ^14.18.0 || >= 16} peerDependencies: svelte: ^3.54.0 || ^4.0.0-next.0 vite: ^4.0.0 dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 1.0.2(@sveltejs/vite-plugin-svelte@2.4.1)(svelte@4.1.1)(vite@4.4.7) + '@sveltejs/vite-plugin-svelte-inspector': 1.0.2(@sveltejs/vite-plugin-svelte@2.4.1)(svelte@4.1.2)(vite@4.4.7) debug: 4.3.4 deepmerge: 4.3.1 kleur: 4.1.5 magic-string: 0.30.0 - svelte: 4.1.1 - svelte-hmr: 0.15.2(svelte@4.1.1) + svelte: 4.1.2 + svelte-hmr: 0.15.2(svelte@4.1.2) vite: 4.4.7(@types/node@18.17.1)(sass@1.64.1) vitefu: 0.2.4(vite@4.4.7) transitivePeerDependencies: @@ -1395,7 +1428,7 @@ packages: resolution: {integrity: sha512-txGIh+0eDFzKGC25zORnswy+br1Ha7hj5cMVwKIU7+s0U2AxxJru/jZSMU6OC9MJWP6+pc/hc6ZjyZShpsyY2g==} dev: false - /@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.45.0)(typescript@5.1.6): + /@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.46.0)(typescript@5.1.6): resolution: {integrity: sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -1407,12 +1440,12 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.5.0 - '@typescript-eslint/parser': 5.62.0(eslint@8.45.0)(typescript@5.1.6) + '@typescript-eslint/parser': 5.62.0(eslint@8.46.0)(typescript@5.1.6) '@typescript-eslint/scope-manager': 5.62.0 - '@typescript-eslint/type-utils': 5.62.0(eslint@8.45.0)(typescript@5.1.6) - '@typescript-eslint/utils': 5.62.0(eslint@8.45.0)(typescript@5.1.6) + '@typescript-eslint/type-utils': 5.62.0(eslint@8.46.0)(typescript@5.1.6) + '@typescript-eslint/utils': 5.62.0(eslint@8.46.0)(typescript@5.1.6) debug: 4.3.4 - eslint: 8.45.0 + eslint: 8.46.0 graphemer: 1.4.0 ignore: 5.2.1 natural-compare-lite: 1.4.0 @@ -1423,7 +1456,7 @@ packages: - supports-color dev: true - /@typescript-eslint/parser@5.62.0(eslint@8.45.0)(typescript@5.1.6): + /@typescript-eslint/parser@5.62.0(eslint@8.46.0)(typescript@5.1.6): resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -1437,7 +1470,7 @@ packages: '@typescript-eslint/types': 5.62.0 '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.1.6) debug: 4.3.4 - eslint: 8.45.0 + eslint: 8.46.0 typescript: 5.1.6 transitivePeerDependencies: - supports-color @@ -1451,7 +1484,7 @@ packages: '@typescript-eslint/visitor-keys': 5.62.0 dev: true - /@typescript-eslint/type-utils@5.62.0(eslint@8.45.0)(typescript@5.1.6): + /@typescript-eslint/type-utils@5.62.0(eslint@8.46.0)(typescript@5.1.6): resolution: {integrity: sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -1462,9 +1495,9 @@ packages: optional: true dependencies: '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.1.6) - '@typescript-eslint/utils': 5.62.0(eslint@8.45.0)(typescript@5.1.6) + '@typescript-eslint/utils': 5.62.0(eslint@8.46.0)(typescript@5.1.6) debug: 4.3.4 - eslint: 8.45.0 + eslint: 8.46.0 tsutils: 3.21.0(typescript@5.1.6) typescript: 5.1.6 transitivePeerDependencies: @@ -1497,19 +1530,19 @@ packages: - supports-color dev: true - /@typescript-eslint/utils@5.62.0(eslint@8.45.0)(typescript@5.1.6): + /@typescript-eslint/utils@5.62.0(eslint@8.46.0)(typescript@5.1.6): resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} 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.45.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.46.0) '@types/json-schema': 7.0.12 '@types/semver': 7.5.0 '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/types': 5.62.0 '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.1.6) - eslint: 8.45.0 + eslint: 8.46.0 eslint-scope: 5.1.1 semver: 7.3.8 transitivePeerDependencies: @@ -1522,7 +1555,7 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: '@typescript-eslint/types': 5.62.0 - eslint-visitor-keys: 3.4.1 + eslint-visitor-keys: 3.4.2 dev: true /@vercel/nft@0.22.6: @@ -2124,16 +2157,16 @@ packages: engines: {node: '>=10'} dev: true - /eslint-config-prettier@8.8.0(eslint@8.45.0): - resolution: {integrity: sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==} + /eslint-config-prettier@8.9.0(eslint@8.46.0): + resolution: {integrity: sha512-+sbni7NfVXnOpnRadUA8S28AUlsZt9GjgFvABIRL9Hkn8KqNzOp+7Lw4QWtrwn20KzU3wqu1QoOj2m+7rKRqkA==} hasBin: true peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.45.0 + eslint: 8.46.0 dev: true - /eslint-plugin-svelte@2.32.4(eslint@8.45.0)(svelte@4.1.1)(ts-node@10.9.1): + /eslint-plugin-svelte@2.32.4(eslint@8.46.0)(svelte@4.1.2)(ts-node@10.9.1): resolution: {integrity: sha512-VJ12i2Iogug1jvhwxSlognnfGj76P5gks/V4pUD4SCSVQOp14u47MNP0zAG8AQR3LT0Fi1iUvIFnY4l9z5Rwbg==} engines: {node: ^14.17.0 || >=16.0.0} peerDependencies: @@ -2143,10 +2176,10 @@ packages: svelte: optional: true dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.45.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.46.0) '@jridgewell/sourcemap-codec': 1.4.15 debug: 4.3.4 - eslint: 8.45.0 + eslint: 8.46.0 esutils: 2.0.3 known-css-properties: 0.28.0 postcss: 8.4.27 @@ -2154,8 +2187,8 @@ packages: postcss-safe-parser: 6.0.0(postcss@8.4.27) postcss-selector-parser: 6.0.13 semver: 7.5.3 - svelte: 4.1.1 - svelte-eslint-parser: 0.32.2(svelte@4.1.1) + svelte: 4.1.2 + svelte-eslint-parser: 0.32.2(svelte@4.1.2) transitivePeerDependencies: - supports-color - ts-node @@ -2169,36 +2202,28 @@ packages: estraverse: 4.3.0 dev: true - /eslint-scope@7.2.0: - resolution: {integrity: sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==} + /eslint-scope@7.2.2: + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 dev: true - /eslint-scope@7.2.1: - resolution: {integrity: sha512-CvefSOsDdaYYvxChovdrPo/ZGt8d5lrJWleAc1diXRKhHGiTYEI26cvo8Kle/wGnsizoCJjK73FMg1/IkIwiNA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - esrecurse: 4.3.0 - estraverse: 5.3.0 - dev: true - - /eslint-visitor-keys@3.4.1: - resolution: {integrity: sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==} + /eslint-visitor-keys@3.4.2: + resolution: {integrity: sha512-8drBzUEyZ2llkpCA67iYrgEssKDUu68V8ChqqOfFupIaG/LCVPUT+CoGJpT77zJprs4T/W7p07LP7zAIMuweVw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint@8.45.0: - resolution: {integrity: sha512-pd8KSxiQpdYRfYa9Wufvdoct3ZPQQuVuU5O6scNgMuOMYuxvH0IGaYK0wUFjo4UYYQQCUndlXiMbnxopwvvTiw==} + /eslint@8.46.0: + resolution: {integrity: sha512-cIO74PvbW0qU8e0mIvk5IV3ToWdCq5FYG6gWPHHkx6gNdjlbAYvtfHmlCMXxjcoVaIdwy/IAt3+mDkZkfvb2Dg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.45.0) - '@eslint-community/regexpp': 4.5.0 - '@eslint/eslintrc': 2.1.0 - '@eslint/js': 8.44.0 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.46.0) + '@eslint-community/regexpp': 4.6.2 + '@eslint/eslintrc': 2.1.1 + '@eslint/js': 8.46.0 '@humanwhocodes/config-array': 0.11.10 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 @@ -2208,9 +2233,9 @@ packages: debug: 4.3.4 doctrine: 3.0.0 escape-string-regexp: 4.0.0 - eslint-scope: 7.2.0 - eslint-visitor-keys: 3.4.1 - espree: 9.6.0 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.2 + espree: 9.6.1 esquery: 1.5.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 @@ -2240,22 +2265,13 @@ packages: resolution: {integrity: sha512-Cf6VksWPsTuW01vU9Mk/3vRue91Zevka5SjyNf3nEpokFRuqt/KjUQoGAwq9qMmhpLTHmXzSIrFRw8zxWzmFBA==} dev: true - /espree@9.6.0: - resolution: {integrity: sha512-1FH/IiruXZ84tpUlm0aCUEwMl2Ho5ilqVh0VvQXw+byAz/4SAciyHLlfmL5WYqsvD38oymdUwBss0LtK8m4s/A==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - acorn: 8.10.0 - acorn-jsx: 5.3.2(acorn@8.10.0) - eslint-visitor-keys: 3.4.1 - dev: true - /espree@9.6.1: resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: acorn: 8.10.0 acorn-jsx: 5.3.2(acorn@8.10.0) - eslint-visitor-keys: 3.4.1 + eslint-visitor-keys: 3.4.2 dev: true /esquery@1.5.0: @@ -2382,6 +2398,11 @@ packages: resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} dev: true + /focus-trap@7.5.2: + resolution: {integrity: sha512-p6vGNNWLDGwJCiEjkSK6oERj/hEyI9ITsSwIUICBoKLlWiTWXJRfQibCwcoi50rTZdbi87qDtUlMCmQwsGSgPw==} + dependencies: + tabbable: 6.2.0 + /follow-redirects@1.15.2: resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==} engines: {node: '>=4.0'} @@ -2738,12 +2759,12 @@ packages: resolution: {integrity: sha512-WRBMoZIgTHH6y2bAEHZWgWcMH6tDsQ+wf45juUgmn3ycjipn/e6OGpWki4XSjEuRm50WXghH+2EF9LCjCHUsUw==} dev: false - /lucide-svelte@0.256.1(svelte@4.1.1): + /lucide-svelte@0.256.1(svelte@4.1.2): resolution: {integrity: sha512-Fk8kQ5Xal9lxvX7T4fkyo592so3zzBtwfAfCOtptEh68jOKery/DyMlhY5m/Bh0M0pvb87soakYchighTBzPLQ==} peerDependencies: svelte: '>=3 <5' dependencies: - svelte: 4.1.1 + svelte: 4.1.2 dev: false /magic-string@0.27.0: @@ -2875,6 +2896,11 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true + /nanoid@4.0.2: + resolution: {integrity: sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==} + engines: {node: ^14 || ^16 || >=18} + hasBin: true + /natural-compare-lite@1.4.0: resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} dev: true @@ -3473,14 +3499,14 @@ packages: engines: {node: '>= 0.8.0'} dev: true - /prettier-plugin-svelte@2.10.1(prettier@2.8.8)(svelte@4.1.1): + /prettier-plugin-svelte@2.10.1(prettier@2.8.8)(svelte@4.1.2): resolution: {integrity: sha512-Wlq7Z5v2ueCubWo0TZzKc9XHcm7TDxqcuzRuGd0gcENfzfT4JZ9yDlCbEgxWgiPmLHkBjfOtpAWkcT28MCDpUQ==} peerDependencies: prettier: ^1.16.4 || ^2.0.0 svelte: ^3.2.0 || ^4.0.0-next.0 dependencies: prettier: 2.8.8 - svelte: 4.1.1 + svelte: 4.1.2 dev: true /prettier@2.8.8: @@ -3493,13 +3519,13 @@ packages: resolution: {integrity: sha512-db91Bf3pRGKDPz1lAqLFSJXeW13mulUJxhycysFpfXV5MIK7RgWWK2E5aPAa71s8TCzQUXxF5JOV42/iOs6QkA==} dev: false - /prisma@4.16.2: - resolution: {integrity: sha512-SYCsBvDf0/7XSJyf2cHTLjLeTLVXYfqp7pG5eEVafFLeT0u/hLFz/9W196nDRGUOo1JfPatAEb+uEnTQImQC1g==} - engines: {node: '>=14.17'} + /prisma@5.1.0: + resolution: {integrity: sha512-wkXvh+6wxk03G8qwpZMOed4Y3j+EQ+bMTlvbDZHeal6k1E8QuGKzRO7DRXlE1NV0WNgOAas8kwZqcLETQ2+BiQ==} + engines: {node: '>=16.13'} hasBin: true requiresBuild: true dependencies: - '@prisma/engines': 4.16.2 + '@prisma/engines': 5.1.0 /prismjs@1.29.0: resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==} @@ -3518,14 +3544,14 @@ packages: /queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - /radix-svelte@0.8.0(svelte@4.1.1): + /radix-svelte@0.8.0(svelte@4.1.2): resolution: {integrity: sha512-VweSd96EiLCml9wA6krPQFxyZfci+A7phAPl9J6QH4nivKroFV2EUSGo9wAnqM2u04nI2mxGKa+wfMhNy84GVg==} peerDependencies: svelte: ^3.58.0 dependencies: '@floating-ui/core': 1.3.1 '@floating-ui/dom': 1.4.2 - svelte: 4.1.1 + svelte: 4.1.2 dev: false /read-cache@1.0.0: @@ -3796,7 +3822,7 @@ packages: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} - /svelte-check@3.4.6(postcss-load-config@4.0.1)(postcss@8.4.27)(sass@1.64.1)(svelte@4.1.1): + /svelte-check@3.4.6(postcss-load-config@4.0.1)(postcss@8.4.27)(sass@1.64.1)(svelte@4.1.2): resolution: {integrity: sha512-OBlY8866Zh1zHQTkBMPS6psPi7o2umTUyj6JWm4SacnIHXpWFm658pG32m3dKvKFL49V4ntAkfFHKo4ztH07og==} hasBin: true peerDependencies: @@ -3808,8 +3834,8 @@ packages: import-fresh: 3.3.0 picocolors: 1.0.0 sade: 1.8.1 - svelte: 4.1.1 - svelte-preprocess: 5.0.4(postcss-load-config@4.0.1)(postcss@8.4.27)(sass@1.64.1)(svelte@4.1.1)(typescript@5.1.6) + svelte: 4.1.2 + svelte-preprocess: 5.0.4(postcss-load-config@4.0.1)(postcss@8.4.27)(sass@1.64.1)(svelte@4.1.2)(typescript@5.1.6) typescript: 5.1.6 transitivePeerDependencies: - '@babel/core' @@ -3823,7 +3849,7 @@ packages: - sugarss dev: true - /svelte-eslint-parser@0.32.2(svelte@4.1.1): + /svelte-eslint-parser@0.32.2(svelte@4.1.2): resolution: {integrity: sha512-Ok9D3A4b23iLQsONrjqtXtYDu5ZZ/826Blaw2LeFZVTg1pwofKDG4mz3/GYTax8fQ0plRGHI6j+d9VQYy5Lo/A==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -3832,45 +3858,45 @@ packages: svelte: optional: true dependencies: - eslint-scope: 7.2.1 - eslint-visitor-keys: 3.4.1 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.2 espree: 9.6.1 postcss: 8.4.27 postcss-scss: 4.0.6(postcss@8.4.27) - svelte: 4.1.1 + svelte: 4.1.2 dev: true - /svelte-french-toast@1.2.0(svelte@4.1.1): + /svelte-french-toast@1.2.0(svelte@4.1.2): resolution: {integrity: sha512-5PW+6RFX3xQPbR44CngYAP1Sd9oCq9P2FOox4FZffzJuZI2mHOB7q5gJBVnOiLF5y3moVGZ7u2bYt7+yPAgcEQ==} peerDependencies: svelte: ^3.57.0 || ^4.0.0 dependencies: - svelte: 4.1.1 - svelte-writable-derived: 3.1.0(svelte@4.1.1) + svelte: 4.1.2 + svelte-writable-derived: 3.1.0(svelte@4.1.2) dev: false - /svelte-hmr@0.15.2(svelte@4.1.1): + /svelte-hmr@0.15.2(svelte@4.1.2): resolution: {integrity: sha512-q/bAruCvFLwvNbeE1x3n37TYFb3mTBJ6TrCq6p2CoFbSTNhDE9oAtEfpy+wmc9So8AG0Tja+X0/mJzX9tSfvIg==} engines: {node: ^12.20 || ^14.13.1 || >= 16} peerDependencies: svelte: ^3.19.0 || ^4.0.0-next.0 dependencies: - svelte: 4.1.1 + svelte: 4.1.2 dev: true /svelte-lazy-loader@1.0.0: resolution: {integrity: sha512-AZD6R60vksyojn21FgXLglmBiBB9K5Dkdu0hdGrLbCaRCYT68IsWkZfRUqKhMx1IfzqWcZQ8X9y/f+Ih0oNQkQ==} dev: false - /svelte-lazy@1.2.1(svelte@4.1.1): + /svelte-lazy@1.2.1(svelte@4.1.2): resolution: {integrity: sha512-8L+GrU5p0ia/nLDeGDMTC+DtmbXlFcoaTPoSf8jIy1NoKicqSJXz5tjiu6GUsD7ra0RjgIvhQiLcdZYR9VECeA==} peerDependencies: svelte: 3.x dependencies: - svelte: 4.1.1 + svelte: 4.1.2 dev: false - /svelte-legos@0.2.1(svelte@4.1.1): + /svelte-legos@0.2.1(svelte@4.1.2): resolution: {integrity: sha512-M7IncWP2e8FaHzQN1DSzxLSoq/6aQYWZ93REZam9bYlvLEjdPGWLAYdpPNnnZtXlHco+o3zrgYTdwsyyS9beUQ==} peerDependencies: svelte: ^3.54.0 @@ -3878,10 +3904,10 @@ packages: canvas-confetti: 1.6.0 prism-svelte: 0.5.0 prismjs: 1.29.0 - svelte: 4.1.1 + svelte: 4.1.2 dev: false - /svelte-preprocess@5.0.4(postcss-load-config@4.0.1)(postcss@8.4.27)(sass@1.64.1)(svelte@4.1.1)(typescript@5.1.6): + /svelte-preprocess@5.0.4(postcss-load-config@4.0.1)(postcss@8.4.27)(sass@1.64.1)(svelte@4.1.2)(typescript@5.1.6): resolution: {integrity: sha512-ABia2QegosxOGsVlsSBJvoWeXy1wUKSfF7SWJdTjLAbx/Y3SrVevvvbFNQqrSJw89+lNSsM58SipmZJ5SRi5iw==} engines: {node: '>= 14.10.0'} requiresBuild: true @@ -3927,20 +3953,28 @@ packages: sass: 1.64.1 sorcery: 0.11.0 strip-indent: 3.0.0 - svelte: 4.1.1 + svelte: 4.1.2 typescript: 5.1.6 dev: true - /svelte-writable-derived@3.1.0(svelte@4.1.1): + /svelte-sequential-preprocessor@2.0.1: + resolution: {integrity: sha512-N5JqlBni6BzElxmuFrOPxOJnjsxh1cFDACLEVKs8OHBcx8ZNRO1p5SxuQex1m3qbLzAC8G99EHeWcxGkjyKjLQ==} + engines: {node: '>=16'} + dependencies: + svelte: 4.1.2 + tslib: 2.6.1 + dev: true + + /svelte-writable-derived@3.1.0(svelte@4.1.2): resolution: {integrity: sha512-cTvaVFNIJ036vSDIyPxJYivKC7ZLtcFOPm1Iq6qWBDo1fOHzfk6ZSbwaKrxhjgy52Rbl5IHzRcWgos6Zqn9/rg==} peerDependencies: svelte: ^3.2.1 || ^4.0.0-next.1 dependencies: - svelte: 4.1.1 + svelte: 4.1.2 dev: false - /svelte@4.1.1: - resolution: {integrity: sha512-Enick5fPFISLoVy0MFK45cG+YlQt6upw8skEK9zzTpJnH1DqEv8xOZwizCGSo3Q6HZ7KrZTM0J18poF7aQg5zw==} + /svelte@4.1.2: + resolution: {integrity: sha512-/evA8U6CgOHe5ZD1C1W3va9iJG7mWflcCdghBORJaAhD2JzrVERJty/2gl0pIPrJYBGZwZycH6onYf+64XXF9g==} engines: {node: '>=16'} dependencies: '@ampproject/remapping': 2.2.1 @@ -3957,28 +3991,31 @@ packages: magic-string: 0.30.0 periscopic: 3.1.0 - /sveltekit-flash-message@2.1.0(@sveltejs/kit@1.22.3)(svelte@4.1.1): + /sveltekit-flash-message@2.1.0(@sveltejs/kit@1.22.4)(svelte@4.1.2): resolution: {integrity: sha512-I9UOYsFpONLu9erXHG8CeHW1tQVZguRUDXV3NHbi6kVA4jPG12R2ypJBrcYW7UyZOLBp3Y3FdVyemkaAmfwr/w==} peerDependencies: '@sveltejs/kit': 1.x svelte: 3.x || 4.x dependencies: - '@sveltejs/kit': 1.22.3(svelte@4.1.1)(vite@4.4.7) - svelte: 4.1.1 + '@sveltejs/kit': 1.22.4(svelte@4.1.2)(vite@4.4.7) + svelte: 4.1.2 dev: true - /sveltekit-superforms@1.5.0(@sveltejs/kit@1.22.3)(svelte@4.1.1)(zod@3.21.4): + /sveltekit-superforms@1.5.0(@sveltejs/kit@1.22.4)(svelte@4.1.2)(zod@3.21.4): resolution: {integrity: sha512-c/2v6zN9rtIAsOfsd6rBV7Kf0lB2+/o6sAFaOuMrYPlTBro5lpbz3iN/3nM5D3EuLE2Xt/iDdZYpkQdH8rq4nQ==} peerDependencies: '@sveltejs/kit': 1.x svelte: 3.x || 4.x zod: 3.x dependencies: - '@sveltejs/kit': 1.22.3(svelte@4.1.1)(vite@4.4.7) - svelte: 4.1.1 + '@sveltejs/kit': 1.22.4(svelte@4.1.2)(vite@4.4.7) + svelte: 4.1.2 zod: 3.21.4 dev: true + /tabbable@6.2.0: + resolution: {integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==} + /tailwind-merge@1.14.0: resolution: {integrity: sha512-3mFKyCo/MBcgyOTlrY8T7odzZFx+w+qKSMAmdFzRvqBfLlSigU6TZnlFHK0lkMwj9Bj8OYU+9yW9lmGuS0QEnQ==} dev: false diff --git a/src/lib/components/header/index.svelte b/src/lib/components/header/index.svelte index 5d330ce..e22d9b8 100644 --- a/src/lib/components/header/index.svelte +++ b/src/lib/components/header/index.svelte @@ -2,8 +2,13 @@ import { enhance } from '$app/forms'; import { LogOut } from 'lucide-svelte'; import Button from '$components/ui/button/Button.svelte'; + import { createDropdownMenu } from '@melt-ui/svelte' + const { menu, item, trigger, arrow, separator } = createDropdownMenu(); // import Profile from '../preferences/profile.svelte'; import logo from './bored-game.png'; + import Avatar from '$components/ui/avatar/Avatar.svelte'; + import AvatarImage from '$components/ui/avatar/AvatarImage.svelte'; + import AvatarFallback from '$components/ui/avatar/AvatarFallback.svelte'; export let user: any; @@ -19,7 +24,37 @@ {#if user} Collection Wishlist -
+ + + {user?.username.slice(0, 2).toUpperCase() || '?'} + + + +
+
+ Profile +
+
+
{ + e.preventDefault(); + } + }}> + + + +
+
+
+ {/if} {#if !user} @@ -69,8 +104,8 @@ } .corner img { - width: 2em; - height: 2em; + width: 1.5em; + height: 1.5em; object-fit: contain; } @@ -84,10 +119,10 @@ } nav a { - display: flex; - height: 100%; - align-items: center; - padding: 0 1em; + /* display: flex; */ + /* height: 100%; */ + /* align-items: center; */ + /* padding: 0 1em; */ color: var(--heading-color); font-weight: 700; text-transform: uppercase; diff --git a/src/routes/(protected)/profile/+page.server.ts b/src/routes/(protected)/profile/+page.server.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/routes/(protected)/profile/+page.svelte b/src/routes/(protected)/profile/+page.svelte new file mode 100644 index 0000000..054ea4a --- /dev/null +++ b/src/routes/(protected)/profile/+page.svelte @@ -0,0 +1,110 @@ + + +
+ +

Profile

+
+ {#if $message} + + {/if} + {#if $errors._errors} + + {/if} +
+ +
+
+ +
+
+ +
+
+ +
+ +
+
\ No newline at end of file diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte index e3f9c9b..759e737 100644 --- a/src/routes/+layout.svelte +++ b/src/routes/+layout.svelte @@ -71,13 +71,13 @@ export let data; $: ({ user } = data); - const flash = getFlash(page); + const flash = getFlash(page, { + clearAfterMs: 6000 + }); let flashType; let flashMessage; $: flashType = $flash?.type; $: flashMessage = $flash?.message; - console.log('flashType', flashType); - console.log('flashMessage', flashMessage); // if ($flash && flashType && flashMessage) { // switch (flashType) { @@ -97,6 +97,22 @@ $theme = user?.theme || 'system'; document.querySelector('html')?.setAttribute('data-theme', $theme); }); + + flash.subscribe(($flash) => { + if (!$flash) return; + + if ($flash.type == 'success') { + toast.success($flash.message); + } else { + toast.error($flash.message, { + duration: 5000 + }); + } + + // Clearing the flash message could sometimes + // be required here to avoid double-toasting. + flash.set(undefined); + }); {#if !dev} @@ -115,15 +131,6 @@
-{#if $flash} -
- {$flash.message} -
-{/if} - {#if $boredState?.loading} diff --git a/src/routes/auth/password/reset/+page.server.ts b/src/routes/auth/password/reset/+page.server.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/routes/auth/password/reset/+page.svelte b/src/routes/auth/password/reset/+page.svelte new file mode 100644 index 0000000..e69de29 diff --git a/svelte.config.js b/svelte.config.js index 23831f3..bff8035 100644 --- a/svelte.config.js +++ b/svelte.config.js @@ -1,10 +1,13 @@ import adapter from '@sveltejs/adapter-vercel'; import { vitePreprocess } from '@sveltejs/kit/vite'; +import { preprocessMeltUI } from '@melt-ui/pp'; +import sequence from 'svelte-sequential-preprocessor'; + /** @type {import('@sveltejs/kit').Config}*/ const config = { // Consult https://kit.svelte.dev/docs/integrations#preprocessors // for more information about preprocessors - preprocess: [vitePreprocess({})], + preprocess: sequence([vitePreprocess({}), preprocessMeltUI()]), vitePlugin: { inspector: true },