From 1262d93b364d15d799631a97d57ff74646199da1 Mon Sep 17 00:00:00 2001 From: zaanposni Date: Fri, 13 Sep 2024 21:49:50 +0200 Subject: [PATCH 1/6] reworked frontend in shadcn --- src/psaggregator/components.json | 14 + src/psaggregator/package-lock.json | 384 ++++++++++-------- src/psaggregator/package.json | 16 +- src/psaggregator/src/app.css | 60 ++- .../src/lib/components/BigHeader.svelte | 33 +- .../src/lib/components/Changelog.svelte | 39 -- .../src/lib/components/DatePicker.svelte | 29 ++ .../src/lib/components/Footer.svelte | 114 +++--- .../src/lib/components/InstagramPost.svelte | 41 +- .../src/lib/components/LightSwitch.svelte | 11 + .../src/lib/components/NewsBig.svelte | 9 +- .../src/lib/components/NewsSmall.svelte | 119 +++--- .../src/lib/components/PSVideo.svelte | 41 +- .../src/lib/components/RedditPost.svelte | 57 ++- .../src/lib/components/TwitchEntry.svelte | 93 +++-- .../src/lib/components/TwitchStatus.svelte | 53 +-- .../src/lib/components/UploadPlanEntry.svelte | 68 ++-- .../components/YouTubeCommunityPost.svelte | 21 +- .../lib/components/ui/button/button.svelte | 25 ++ .../src/lib/components/ui/button/index.ts | 49 +++ .../ui/calendar/calendar-cell.svelte | 21 + .../ui/calendar/calendar-day.svelte | 42 ++ .../ui/calendar/calendar-grid-body.svelte | 13 + .../ui/calendar/calendar-grid-head.svelte | 13 + .../ui/calendar/calendar-grid-row.svelte | 13 + .../ui/calendar/calendar-grid.svelte | 13 + .../ui/calendar/calendar-head-cell.svelte | 16 + .../ui/calendar/calendar-header.svelte | 16 + .../ui/calendar/calendar-heading.svelte | 19 + .../ui/calendar/calendar-months.svelte | 16 + .../ui/calendar/calendar-next-button.svelte | 27 ++ .../ui/calendar/calendar-prev-button.svelte | 27 ++ .../components/ui/calendar/calendar.svelte | 59 +++ .../src/lib/components/ui/calendar/index.ts | 30 ++ .../components/ui/card/card-content.svelte | 13 + .../ui/card/card-description.svelte | 13 + .../lib/components/ui/card/card-footer.svelte | 13 + .../lib/components/ui/card/card-header.svelte | 13 + .../lib/components/ui/card/card-title.svelte | 21 + .../src/lib/components/ui/card/card.svelte | 16 + .../src/lib/components/ui/card/index.ts | 24 ++ .../components/ui/checkbox/checkbox.svelte | 35 ++ .../src/lib/components/ui/checkbox/index.ts | 6 + .../ui/dialog/dialog-content.svelte | 36 ++ .../ui/dialog/dialog-description.svelte | 16 + .../components/ui/dialog/dialog-footer.svelte | 16 + .../components/ui/dialog/dialog-header.svelte | 13 + .../ui/dialog/dialog-overlay.svelte | 21 + .../components/ui/dialog/dialog-portal.svelte | 8 + .../components/ui/dialog/dialog-title.svelte | 16 + .../src/lib/components/ui/dialog/index.ts | 37 ++ .../src/lib/components/ui/input/index.ts | 29 ++ .../src/lib/components/ui/input/input.svelte | 42 ++ .../src/lib/components/ui/label/index.ts | 7 + .../src/lib/components/ui/label/label.svelte | 21 + .../src/lib/components/ui/popover/index.ts | 17 + .../ui/popover/popover-content.svelte | 22 + .../lib/components/ui/range-calendar/index.ts | 30 ++ .../range-calendar/range-calendar-cell.svelte | 21 + .../range-calendar/range-calendar-day.svelte | 43 ++ .../range-calendar-grid-body.svelte | 13 + .../range-calendar-grid-head.svelte | 13 + .../range-calendar-grid-row.svelte | 13 + .../range-calendar/range-calendar-grid.svelte | 16 + .../range-calendar-head-cell.svelte | 16 + .../range-calendar-header.svelte | 16 + .../range-calendar-heading.svelte | 19 + .../range-calendar-months.svelte | 16 + .../range-calendar-next-button.svelte | 27 ++ .../range-calendar-prev-button.svelte | 27 ++ .../ui/range-calendar/range-calendar.svelte | 60 +++ .../src/lib/components/ui/sonner/index.ts | 1 + .../lib/components/ui/sonner/sonner.svelte | 20 + .../src/lib/components/ui/tabs/index.ts | 18 + .../components/ui/tabs/tabs-content.svelte | 21 + .../lib/components/ui/tabs/tabs-list.svelte | 19 + .../components/ui/tabs/tabs-trigger.svelte | 23 ++ src/psaggregator/src/lib/utils.ts | 62 +++ src/psaggregator/src/routes/+layout.svelte | 35 +- src/psaggregator/src/routes/+page.server.ts | 2 +- src/psaggregator/src/routes/+page.svelte | 23 +- src/psaggregator/src/routes/api/+page.svelte | 24 +- .../src/routes/changelog/+page.svelte | 40 ++ .../src/routes/motivation/+page.svelte | 24 +- src/psaggregator/src/routes/news/+page.svelte | 2 +- .../src/routes/plan/+page.server.ts | 4 +- src/psaggregator/src/routes/plan/+page.svelte | 63 ++- .../src/routes/settings/+page.svelte | 117 +++--- .../src/routes/videos/+page.svelte | 27 +- src/psaggregator/tailwind.config.cjs | 28 -- src/psaggregator/tailwind.config.js | 64 +++ 91 files changed, 2267 insertions(+), 736 deletions(-) create mode 100644 src/psaggregator/components.json delete mode 100644 src/psaggregator/src/lib/components/Changelog.svelte create mode 100644 src/psaggregator/src/lib/components/DatePicker.svelte create mode 100644 src/psaggregator/src/lib/components/LightSwitch.svelte create mode 100644 src/psaggregator/src/lib/components/ui/button/button.svelte create mode 100644 src/psaggregator/src/lib/components/ui/button/index.ts create mode 100644 src/psaggregator/src/lib/components/ui/calendar/calendar-cell.svelte create mode 100644 src/psaggregator/src/lib/components/ui/calendar/calendar-day.svelte create mode 100644 src/psaggregator/src/lib/components/ui/calendar/calendar-grid-body.svelte create mode 100644 src/psaggregator/src/lib/components/ui/calendar/calendar-grid-head.svelte create mode 100644 src/psaggregator/src/lib/components/ui/calendar/calendar-grid-row.svelte create mode 100644 src/psaggregator/src/lib/components/ui/calendar/calendar-grid.svelte create mode 100644 src/psaggregator/src/lib/components/ui/calendar/calendar-head-cell.svelte create mode 100644 src/psaggregator/src/lib/components/ui/calendar/calendar-header.svelte create mode 100644 src/psaggregator/src/lib/components/ui/calendar/calendar-heading.svelte create mode 100644 src/psaggregator/src/lib/components/ui/calendar/calendar-months.svelte create mode 100644 src/psaggregator/src/lib/components/ui/calendar/calendar-next-button.svelte create mode 100644 src/psaggregator/src/lib/components/ui/calendar/calendar-prev-button.svelte create mode 100644 src/psaggregator/src/lib/components/ui/calendar/calendar.svelte create mode 100644 src/psaggregator/src/lib/components/ui/calendar/index.ts create mode 100644 src/psaggregator/src/lib/components/ui/card/card-content.svelte create mode 100644 src/psaggregator/src/lib/components/ui/card/card-description.svelte create mode 100644 src/psaggregator/src/lib/components/ui/card/card-footer.svelte create mode 100644 src/psaggregator/src/lib/components/ui/card/card-header.svelte create mode 100644 src/psaggregator/src/lib/components/ui/card/card-title.svelte create mode 100644 src/psaggregator/src/lib/components/ui/card/card.svelte create mode 100644 src/psaggregator/src/lib/components/ui/card/index.ts create mode 100644 src/psaggregator/src/lib/components/ui/checkbox/checkbox.svelte create mode 100644 src/psaggregator/src/lib/components/ui/checkbox/index.ts create mode 100644 src/psaggregator/src/lib/components/ui/dialog/dialog-content.svelte create mode 100644 src/psaggregator/src/lib/components/ui/dialog/dialog-description.svelte create mode 100644 src/psaggregator/src/lib/components/ui/dialog/dialog-footer.svelte create mode 100644 src/psaggregator/src/lib/components/ui/dialog/dialog-header.svelte create mode 100644 src/psaggregator/src/lib/components/ui/dialog/dialog-overlay.svelte create mode 100644 src/psaggregator/src/lib/components/ui/dialog/dialog-portal.svelte create mode 100644 src/psaggregator/src/lib/components/ui/dialog/dialog-title.svelte create mode 100644 src/psaggregator/src/lib/components/ui/dialog/index.ts create mode 100644 src/psaggregator/src/lib/components/ui/input/index.ts create mode 100644 src/psaggregator/src/lib/components/ui/input/input.svelte create mode 100644 src/psaggregator/src/lib/components/ui/label/index.ts create mode 100644 src/psaggregator/src/lib/components/ui/label/label.svelte create mode 100644 src/psaggregator/src/lib/components/ui/popover/index.ts create mode 100644 src/psaggregator/src/lib/components/ui/popover/popover-content.svelte create mode 100644 src/psaggregator/src/lib/components/ui/range-calendar/index.ts create mode 100644 src/psaggregator/src/lib/components/ui/range-calendar/range-calendar-cell.svelte create mode 100644 src/psaggregator/src/lib/components/ui/range-calendar/range-calendar-day.svelte create mode 100644 src/psaggregator/src/lib/components/ui/range-calendar/range-calendar-grid-body.svelte create mode 100644 src/psaggregator/src/lib/components/ui/range-calendar/range-calendar-grid-head.svelte create mode 100644 src/psaggregator/src/lib/components/ui/range-calendar/range-calendar-grid-row.svelte create mode 100644 src/psaggregator/src/lib/components/ui/range-calendar/range-calendar-grid.svelte create mode 100644 src/psaggregator/src/lib/components/ui/range-calendar/range-calendar-head-cell.svelte create mode 100644 src/psaggregator/src/lib/components/ui/range-calendar/range-calendar-header.svelte create mode 100644 src/psaggregator/src/lib/components/ui/range-calendar/range-calendar-heading.svelte create mode 100644 src/psaggregator/src/lib/components/ui/range-calendar/range-calendar-months.svelte create mode 100644 src/psaggregator/src/lib/components/ui/range-calendar/range-calendar-next-button.svelte create mode 100644 src/psaggregator/src/lib/components/ui/range-calendar/range-calendar-prev-button.svelte create mode 100644 src/psaggregator/src/lib/components/ui/range-calendar/range-calendar.svelte create mode 100644 src/psaggregator/src/lib/components/ui/sonner/index.ts create mode 100644 src/psaggregator/src/lib/components/ui/sonner/sonner.svelte create mode 100644 src/psaggregator/src/lib/components/ui/tabs/index.ts create mode 100644 src/psaggregator/src/lib/components/ui/tabs/tabs-content.svelte create mode 100644 src/psaggregator/src/lib/components/ui/tabs/tabs-list.svelte create mode 100644 src/psaggregator/src/lib/components/ui/tabs/tabs-trigger.svelte create mode 100644 src/psaggregator/src/lib/utils.ts create mode 100644 src/psaggregator/src/routes/changelog/+page.svelte delete mode 100644 src/psaggregator/tailwind.config.cjs create mode 100644 src/psaggregator/tailwind.config.js diff --git a/src/psaggregator/components.json b/src/psaggregator/components.json new file mode 100644 index 0000000..7b2aff4 --- /dev/null +++ b/src/psaggregator/components.json @@ -0,0 +1,14 @@ +{ + "$schema": "https://shadcn-svelte.com/schema.json", + "style": "default", + "tailwind": { + "config": "tailwind.config.js", + "css": "src/app.css", + "baseColor": "slate" + }, + "aliases": { + "components": "$lib/components", + "utils": "$lib/utils" + }, + "typescript": true +} \ No newline at end of file diff --git a/src/psaggregator/package-lock.json b/src/psaggregator/package-lock.json index b6a3bea..f6f1060 100644 --- a/src/psaggregator/package-lock.json +++ b/src/psaggregator/package-lock.json @@ -1,18 +1,26 @@ { "name": "psaggregator", - "version": "1.10.0", + "version": "1.11.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "psaggregator", - "version": "1.10.0", + "version": "1.11.0", + "dependencies": { + "@internationalized/date": "^3.5.5", + "bits-ui": "^0.21.13", + "clsx": "^2.1.1", + "lucide-svelte": "^0.441.0", + "mode-watcher": "^0.4.1", + "svelte-sonner": "^0.3.28", + "tailwind-merge": "^2.5.2", + "tailwind-variants": "^0.2.1" + }, "devDependencies": { "@fontsource/fira-mono": "^4.5.10", "@neoconfetti/svelte": "^1.0.0", "@prisma/client": "4.15.0-integration-feat-client-esm.27", - "@skeletonlabs/skeleton": "^2.7.0", - "@skeletonlabs/tw-plugin": "^0.3.1", "@sveltejs/adapter-auto": "^3.0.0", "@sveltejs/adapter-node": "^4.0.1", "@sveltejs/kit": "^2.4.3", @@ -56,7 +64,6 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", - "dev": true, "engines": { "node": ">=10" }, @@ -68,7 +75,6 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", - "dev": true, "dependencies": { "@jridgewell/gen-mapping": "^0.3.0", "@jridgewell/trace-mapping": "^0.3.9" @@ -523,6 +529,28 @@ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, + "node_modules/@floating-ui/core": { + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.7.tgz", + "integrity": "sha512-yDzVT/Lm101nQ5TCVeK65LtdN7Tj4Qpr9RTXJ2vPFLqtLxwOrpoxAHAJI8J3yYWUc40J0BDBheaitK5SJmno2g==", + "dependencies": { + "@floating-ui/utils": "^0.2.7" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.6.10", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.10.tgz", + "integrity": "sha512-fskgCFv8J8OamCmyun8MfjB1Olfn+uZKjOKZ0vhYF3gRmEUXcGOjxWL8bBr7i4kIuPZ2KD2S3EUIOxnjC8kl2A==", + "dependencies": { + "@floating-ui/core": "^1.6.0", + "@floating-ui/utils": "^0.2.7" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.7.tgz", + "integrity": "sha512-X8R8Oj771YRl/w+c1HqAC1szL8zWQRwFvgDwT129k9ACdBoud/+/rX9V0qiMl6LWUdP9voC2nDVZYPMQQsb6eA==" + }, "node_modules/@fontsource/fira-mono": { "version": "4.5.10", "resolved": "https://registry.npmjs.org/@fontsource/fira-mono/-/fira-mono-4.5.10.tgz", @@ -584,11 +612,18 @@ "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==", "dev": true }, + "node_modules/@internationalized/date": { + "version": "3.5.5", + "resolved": "https://registry.npmjs.org/@internationalized/date/-/date-3.5.5.tgz", + "integrity": "sha512-H+CfYvOZ0LTJeeLOqm19E3uj/4YjrmOFtBufDHPfvtI80hFAMqtrp7oCACpe4Cil5l8S0Qu/9dYfZc/5lY8WQQ==", + "dependencies": { + "@swc/helpers": "^0.5.0" + } + }, "node_modules/@isaacs/cliui": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "dev": true, "dependencies": { "string-width": "^5.1.2", "string-width-cjs": "npm:string-width@^4.2.0", @@ -605,7 +640,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true, "engines": { "node": ">=12" }, @@ -617,7 +651,6 @@ "version": "7.1.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, "dependencies": { "ansi-regex": "^6.0.1" }, @@ -632,7 +665,6 @@ "version": "0.3.3", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", - "dev": true, "dependencies": { "@jridgewell/set-array": "^1.0.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -646,7 +678,6 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", - "dev": true, "engines": { "node": ">=6.0.0" } @@ -655,7 +686,6 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "dev": true, "engines": { "node": ">=6.0.0" } @@ -663,19 +693,50 @@ "node_modules/@jridgewell/sourcemap-codec": { "version": "1.4.15", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.21", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.21.tgz", "integrity": "sha512-SRfKmRe1KvYnxjEMtxEr+J4HIeMX5YBg/qhRHpxEIGjhX1rshcHlnFUE9K0GazhVKWM7B+nARSkV8LuvJdJ5/g==", - "dev": true, "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, + "node_modules/@melt-ui/svelte": { + "version": "0.76.2", + "resolved": "https://registry.npmjs.org/@melt-ui/svelte/-/svelte-0.76.2.tgz", + "integrity": "sha512-7SbOa11tXUS95T3fReL+dwDs5FyJtCEqrqG3inRziDws346SYLsxOQ6HmX+4BkIsQh1R8U3XNa+EMmdMt38lMA==", + "dependencies": { + "@floating-ui/core": "^1.3.1", + "@floating-ui/dom": "^1.4.5", + "@internationalized/date": "^3.5.0", + "dequal": "^2.0.3", + "focus-trap": "^7.5.2", + "nanoid": "^5.0.4" + }, + "peerDependencies": { + "svelte": ">=3 <5" + } + }, + "node_modules/@melt-ui/svelte/node_modules/nanoid": { + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-5.0.7.tgz", + "integrity": "sha512-oLxFY2gd2IqnjcYyOXD8XGCftpGtZP2AbHbOkthDkvRywH5ayNtPVy9YlOPcHckXzbLTCHpkb7FB+yuxKV13pQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.js" + }, + "engines": { + "node": "^18 || >=20" + } + }, "node_modules/@neoconfetti/svelte": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/@neoconfetti/svelte/-/svelte-1.0.0.tgz", @@ -686,7 +747,6 @@ "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -699,7 +759,6 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, "engines": { "node": ">= 8" } @@ -708,7 +767,6 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" @@ -721,7 +779,6 @@ "version": "0.11.0", "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "dev": true, "optional": true, "engines": { "node": ">=14" @@ -1119,27 +1176,6 @@ "win32" ] }, - "node_modules/@skeletonlabs/skeleton": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/@skeletonlabs/skeleton/-/skeleton-2.7.0.tgz", - "integrity": "sha512-XD6aCvEQYp2LtEKM9OelK2HoJZFraM3fvpQpXsnNY82t/QeaZ9WkORCsrVz91puq786FTOktt8beZEe045YLWA==", - "dev": true, - "dependencies": { - "esm-env": "1.0.0" - }, - "peerDependencies": { - "svelte": "^3.56.0 || ^4.0.0" - } - }, - "node_modules/@skeletonlabs/tw-plugin": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@skeletonlabs/tw-plugin/-/tw-plugin-0.3.1.tgz", - "integrity": "sha512-DjjeOHN3HhFQf6gYPT2MUZMkIdw1jeB9mbuKC8etQxUlOR4XitfC7hssRWFJ8RJsvrrN0myCBbdWkVG1JVA96g==", - "dev": true, - "peerDependencies": { - "tailwindcss": ">=3.0.0" - } - }, "node_modules/@sveltejs/adapter-auto": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/@sveltejs/adapter-auto/-/adapter-auto-3.1.0.tgz", @@ -1238,6 +1274,14 @@ "vite": "^5.0.0" } }, + "node_modules/@swc/helpers": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.13.tgz", + "integrity": "sha512-UoKGxQ3r5kYI9dALKJapMmuK+1zWM/H17Z1+iwnNmzcJRnfFuevZs375TA5rW31pu4BS4NoSy1fRsexDXfWn5w==", + "dependencies": { + "tslib": "^2.4.0" + } + }, "node_modules/@tailwindcss/forms": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/@tailwindcss/forms/-/forms-0.5.7.tgz", @@ -1269,8 +1313,7 @@ "node_modules/@types/estree": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", - "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", - "dev": true + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==" }, "node_modules/@types/json-schema": { "version": "7.0.15", @@ -1496,7 +1539,6 @@ "version": "8.11.3", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", - "dev": true, "bin": { "acorn": "bin/acorn" }, @@ -1533,7 +1575,6 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, "engines": { "node": ">=8" } @@ -1542,7 +1583,6 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -1556,14 +1596,12 @@ "node_modules/any-promise": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", - "dev": true + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==" }, "node_modules/anymatch": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -1575,8 +1613,7 @@ "node_modules/arg": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", - "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", - "dev": true + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" }, "node_modules/argparse": { "version": "2.0.1", @@ -1588,7 +1625,6 @@ "version": "5.3.0", "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", - "dev": true, "dependencies": { "dequal": "^2.0.3" } @@ -1660,7 +1696,6 @@ "version": "3.2.1", "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.2.1.tgz", "integrity": "sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==", - "dev": true, "dependencies": { "dequal": "^2.0.3" } @@ -1668,23 +1703,53 @@ "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, "node_modules/binary-extensions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true, "engines": { "node": ">=8" } }, + "node_modules/bits-ui": { + "version": "0.21.13", + "resolved": "https://registry.npmjs.org/bits-ui/-/bits-ui-0.21.13.tgz", + "integrity": "sha512-7nmOh6Ig7ND4DXZHv1FhNsY9yUGrad0+mf3tc4YN//3MgnJT1LnHtk4HZAKgmxCOe7txSX7/39LtYHbkrXokAQ==", + "dependencies": { + "@internationalized/date": "^3.5.1", + "@melt-ui/svelte": "0.76.2", + "nanoid": "^5.0.5" + }, + "funding": { + "url": "https://github.com/sponsors/huntabyte" + }, + "peerDependencies": { + "svelte": "^4.0.0 || ^5.0.0-next.118" + } + }, + "node_modules/bits-ui/node_modules/nanoid": { + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-5.0.7.tgz", + "integrity": "sha512-oLxFY2gd2IqnjcYyOXD8XGCftpGtZP2AbHbOkthDkvRywH5ayNtPVy9YlOPcHckXzbLTCHpkb7FB+yuxKV13pQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.js" + }, + "engines": { + "node": "^18 || >=20" + } + }, "node_modules/brace-expansion": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, "dependencies": { "balanced-match": "^1.0.0" } @@ -1693,7 +1758,6 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "dev": true, "dependencies": { "fill-range": "^7.1.1" }, @@ -1767,7 +1831,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", - "dev": true, "engines": { "node": ">= 6" } @@ -1818,7 +1881,6 @@ "version": "3.5.3", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, "funding": [ { "type": "individual", @@ -1845,7 +1907,6 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, "dependencies": { "is-glob": "^4.0.1" }, @@ -1853,11 +1914,18 @@ "node": ">= 6" } }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "engines": { + "node": ">=6" + } + }, "node_modules/code-red": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/code-red/-/code-red-1.0.4.tgz", "integrity": "sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==", - "dev": true, "dependencies": { "@jridgewell/sourcemap-codec": "^1.4.15", "@types/estree": "^1.0.1", @@ -1870,7 +1938,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, "dependencies": { "color-name": "~1.1.4" }, @@ -1881,8 +1948,7 @@ "node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "node_modules/combined-stream": { "version": "1.0.8", @@ -1900,7 +1966,6 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "dev": true, "engines": { "node": ">= 6" } @@ -1930,7 +1995,6 @@ "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -1944,7 +2008,6 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", - "dev": true, "dependencies": { "mdn-data": "2.0.30", "source-map-js": "^1.0.1" @@ -1957,7 +2020,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true, "bin": { "cssesc": "bin/cssesc" }, @@ -2010,7 +2072,6 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", - "dev": true, "engines": { "node": ">=6" } @@ -2033,8 +2094,7 @@ "node_modules/didyoumean": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", - "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", - "dev": true + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" }, "node_modules/dir-glob": { "version": "3.0.1", @@ -2051,8 +2111,7 @@ "node_modules/dlv": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", - "dev": true + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" }, "node_modules/doctrine": { "version": "3.0.0", @@ -2069,8 +2128,7 @@ "node_modules/eastasianwidth": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" }, "node_modules/electron-to-chromium": { "version": "1.4.630", @@ -2081,8 +2139,7 @@ "node_modules/emoji-regex": { "version": "9.2.2", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" }, "node_modules/es6-promise": { "version": "3.3.1", @@ -2411,7 +2468,6 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", - "dev": true, "dependencies": { "@types/estree": "^1.0.0" } @@ -2435,7 +2491,6 @@ "version": "3.3.2", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", - "dev": true, "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -2451,7 +2506,6 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, "dependencies": { "is-glob": "^4.0.1" }, @@ -2475,7 +2529,6 @@ "version": "1.16.0", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.16.0.tgz", "integrity": "sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA==", - "dev": true, "dependencies": { "reusify": "^1.0.4" } @@ -2496,7 +2549,6 @@ "version": "7.1.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "dev": true, "dependencies": { "to-regex-range": "^5.0.1" }, @@ -2540,6 +2592,14 @@ "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", "dev": true }, + "node_modules/focus-trap": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/focus-trap/-/focus-trap-7.6.0.tgz", + "integrity": "sha512-1td0l3pMkWJLFipobUcGaf+5DTY4PLDDrcqoSaKP8ediO/CoWCCYk/fT/Y2A4e6TNB+Sh6clRJCjOPPnKoNHnQ==", + "dependencies": { + "tabbable": "^6.2.0" + } + }, "node_modules/follow-redirects": { "version": "1.15.6", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", @@ -2564,7 +2624,6 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", - "dev": true, "dependencies": { "cross-spawn": "^7.0.0", "signal-exit": "^4.0.1" @@ -2613,7 +2672,6 @@ "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, "hasInstallScript": true, "optional": true, "os": [ @@ -2627,7 +2685,6 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -2656,7 +2713,6 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, "dependencies": { "is-glob": "^4.0.3" }, @@ -2758,7 +2814,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", - "dev": true, "dependencies": { "function-bind": "^1.1.2" }, @@ -2839,7 +2894,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, "dependencies": { "binary-extensions": "^2.0.0" }, @@ -2866,7 +2920,6 @@ "version": "2.13.1", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", - "dev": true, "dependencies": { "hasown": "^2.0.0" }, @@ -2878,7 +2931,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -2887,7 +2939,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, "engines": { "node": ">=8" } @@ -2896,7 +2947,6 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, "dependencies": { "is-extglob": "^2.1.1" }, @@ -2914,7 +2964,6 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, "engines": { "node": ">=0.12.0" } @@ -2932,7 +2981,6 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.2.tgz", "integrity": "sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==", - "dev": true, "dependencies": { "@types/estree": "*" } @@ -2940,14 +2988,12 @@ "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" }, "node_modules/jackspeak": { "version": "2.3.6", "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", - "dev": true, "dependencies": { "@isaacs/cliui": "^8.0.2" }, @@ -2965,7 +3011,6 @@ "version": "1.21.0", "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz", "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==", - "dev": true, "bin": { "jiti": "bin/jiti.js" } @@ -3041,7 +3086,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", - "dev": true, "engines": { "node": ">=10" } @@ -3049,14 +3093,12 @@ "node_modules/lines-and-columns": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" }, "node_modules/locate-character": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/locate-character/-/locate-character-3.0.0.tgz", - "integrity": "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==", - "dev": true + "integrity": "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==" }, "node_modules/locate-path": { "version": "6.0.0", @@ -3091,11 +3133,18 @@ "node": ">=10" } }, + "node_modules/lucide-svelte": { + "version": "0.441.0", + "resolved": "https://registry.npmjs.org/lucide-svelte/-/lucide-svelte-0.441.0.tgz", + "integrity": "sha512-lwckKpu4KNth7EBPWUdx7dvRaBrFC173JSdioN2WILol7nwFAPfvbGLeez8ZlnT31boj7pNT7hjvBz3ZJfmUbQ==", + "peerDependencies": { + "svelte": "^3 || ^4 || ^5.0.0-next.42" + } + }, "node_modules/magic-string": { "version": "0.30.5", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.5.tgz", "integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==", - "dev": true, "dependencies": { "@jridgewell/sourcemap-codec": "^1.4.15" }, @@ -3106,14 +3155,12 @@ "node_modules/mdn-data": { "version": "2.0.30", "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", - "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", - "dev": true + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==" }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, "engines": { "node": ">= 8" } @@ -3122,7 +3169,6 @@ "version": "4.0.8", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", - "dev": true, "dependencies": { "braces": "^3.0.3", "picomatch": "^2.3.1" @@ -3174,7 +3220,6 @@ "version": "9.0.3", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", - "dev": true, "dependencies": { "brace-expansion": "^2.0.1" }, @@ -3198,7 +3243,6 @@ "version": "7.0.4", "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", - "dev": true, "engines": { "node": ">=16 || 14 >=14.17" } @@ -3215,6 +3259,14 @@ "mkdirp": "bin/cmd.js" } }, + "node_modules/mode-watcher": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/mode-watcher/-/mode-watcher-0.4.1.tgz", + "integrity": "sha512-bNC+1NXmwEFZtziCdZSgP7HFQTpqJPcQn9GwwJQGSf6SBF3neEPYV1uRwkYuAQwbsvsXIYtzaqgedDzJ7D1mhg==", + "peerDependencies": { + "svelte": "^4.0.0 || ^5.0.0-next.1" + } + }, "node_modules/moment": { "version": "2.30.1", "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz", @@ -3252,7 +3304,6 @@ "version": "2.7.0", "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", - "dev": true, "dependencies": { "any-promise": "^1.0.0", "object-assign": "^4.0.1", @@ -3263,7 +3314,6 @@ "version": "3.3.7", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", - "dev": true, "funding": [ { "type": "github", @@ -3293,7 +3343,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -3311,7 +3360,6 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -3320,7 +3368,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", - "dev": true, "engines": { "node": ">= 6" } @@ -3415,7 +3462,6 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, "engines": { "node": ">=8" } @@ -3423,14 +3469,12 @@ "node_modules/path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, "node_modules/path-scurry": { "version": "1.10.1", "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", - "dev": true, "dependencies": { "lru-cache": "^9.1.1 || ^10.0.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" @@ -3446,7 +3490,6 @@ "version": "10.1.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.1.0.tgz", "integrity": "sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==", - "dev": true, "engines": { "node": "14 || >=16.14" } @@ -3464,7 +3507,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/periscopic/-/periscopic-3.1.0.tgz", "integrity": "sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==", - "dev": true, "dependencies": { "@types/estree": "^1.0.0", "estree-walker": "^3.0.0", @@ -3474,14 +3516,12 @@ "node_modules/picocolors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", - "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", - "dev": true + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==" }, "node_modules/picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, "engines": { "node": ">=8.6" }, @@ -3493,7 +3533,6 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -3502,7 +3541,6 @@ "version": "4.0.6", "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", - "dev": true, "engines": { "node": ">= 6" } @@ -3511,7 +3549,6 @@ "version": "8.4.41", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.41.tgz", "integrity": "sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==", - "dev": true, "funding": [ { "type": "opencollective", @@ -3539,7 +3576,6 @@ "version": "15.1.0", "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", - "dev": true, "dependencies": { "postcss-value-parser": "^4.0.0", "read-cache": "^1.0.0", @@ -3556,7 +3592,6 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", - "dev": true, "dependencies": { "camelcase-css": "^2.0.1" }, @@ -3619,7 +3654,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz", "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==", - "dev": true, "dependencies": { "postcss-selector-parser": "^6.0.11" }, @@ -3680,7 +3714,6 @@ "version": "6.0.15", "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz", "integrity": "sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==", - "dev": true, "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -3692,8 +3725,7 @@ "node_modules/postcss-value-parser": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" }, "node_modules/prelude-ls": { "version": "1.2.1", @@ -3834,7 +3866,6 @@ "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, "funding": [ { "type": "github", @@ -3854,7 +3885,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", - "dev": true, "dependencies": { "pify": "^2.3.0" } @@ -3863,7 +3893,6 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, "dependencies": { "picomatch": "^2.2.1" }, @@ -3875,7 +3904,6 @@ "version": "1.22.8", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", - "dev": true, "dependencies": { "is-core-module": "^2.13.0", "path-parse": "^1.0.7", @@ -3901,7 +3929,6 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" @@ -3961,7 +3988,6 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, "funding": [ { "type": "github", @@ -4041,7 +4067,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, "dependencies": { "shebang-regex": "^3.0.0" }, @@ -4053,7 +4078,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, "engines": { "node": ">=8" } @@ -4062,7 +4086,6 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, "engines": { "node": ">=14" }, @@ -4112,7 +4135,6 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -4121,7 +4143,6 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", @@ -4139,7 +4160,6 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -4152,14 +4172,12 @@ "node_modules/string-width-cjs/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, "node_modules/string-width/node_modules/ansi-regex": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true, "engines": { "node": ">=12" }, @@ -4171,7 +4189,6 @@ "version": "7.1.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, "dependencies": { "ansi-regex": "^6.0.1" }, @@ -4186,7 +4203,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, "dependencies": { "ansi-regex": "^5.0.1" }, @@ -4199,7 +4215,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, "dependencies": { "ansi-regex": "^5.0.1" }, @@ -4235,7 +4250,6 @@ "version": "3.35.0", "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", - "dev": true, "dependencies": { "@jridgewell/gen-mapping": "^0.3.2", "commander": "^4.0.0", @@ -4257,7 +4271,6 @@ "version": "10.3.10", "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", - "dev": true, "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^2.3.5", @@ -4291,7 +4304,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, "engines": { "node": ">= 0.4" }, @@ -4303,7 +4315,6 @@ "version": "4.2.8", "resolved": "https://registry.npmjs.org/svelte/-/svelte-4.2.8.tgz", "integrity": "sha512-hU6dh1MPl8gh6klQZwK/n73GiAHiR95IkFsesLPbMeEZi36ydaXL/ZAb4g9sayT0MXzpxyZjR28yderJHxcmYA==", - "dev": true, "dependencies": { "@ampproject/remapping": "^2.2.1", "@jridgewell/sourcemap-codec": "^1.4.15", @@ -4447,11 +4458,47 @@ } } }, + "node_modules/svelte-sonner": { + "version": "0.3.28", + "resolved": "https://registry.npmjs.org/svelte-sonner/-/svelte-sonner-0.3.28.tgz", + "integrity": "sha512-K3AmlySeFifF/cKgsYNv5uXqMVNln0NBAacOYgmkQStLa/UoU0LhfAACU6Gr+YYC8bOCHdVmFNoKuDbMEsppJg==", + "peerDependencies": { + "svelte": "^3.0.0 || ^4.0.0 || ^5.0.0-next.1" + } + }, + "node_modules/tabbable": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.2.0.tgz", + "integrity": "sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==" + }, + "node_modules/tailwind-merge": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-2.5.2.tgz", + "integrity": "sha512-kjEBm+pvD+6eAwzJL2Bi+02/9LFLal1Gs61+QB7HvTfQQ0aXwC5LGT8PEt1gS0CWKktKe6ysPTAy3cBC5MeiIg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/dcastil" + } + }, + "node_modules/tailwind-variants": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tailwind-variants/-/tailwind-variants-0.2.1.tgz", + "integrity": "sha512-2xmhAf4UIc3PijOUcJPA1LP4AbxhpcHuHM2C26xM0k81r0maAO6uoUSHl3APmvHZcY5cZCY/bYuJdfFa4eGoaw==", + "dependencies": { + "tailwind-merge": "^2.2.0" + }, + "engines": { + "node": ">=16.x", + "pnpm": ">=7.x" + }, + "peerDependencies": { + "tailwindcss": "*" + } + }, "node_modules/tailwindcss": { "version": "3.4.1", "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.1.tgz", "integrity": "sha512-qAYmXRfk3ENzuPBakNK0SRrUDipP8NQnEY6772uDhflcQz5EhRdD7JNZxyrFHVQNCwULPBn6FNPp9brpO7ctcA==", - "dev": true, "dependencies": { "@alloc/quick-lru": "^5.2.0", "arg": "^5.0.2", @@ -4488,7 +4535,6 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", - "dev": true, "funding": [ { "type": "opencollective", @@ -4523,7 +4569,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.0.0.tgz", "integrity": "sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==", - "dev": true, "engines": { "node": ">=14" } @@ -4538,7 +4583,6 @@ "version": "3.3.1", "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", - "dev": true, "dependencies": { "any-promise": "^1.0.0" } @@ -4547,7 +4591,6 @@ "version": "1.6.0", "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", - "dev": true, "dependencies": { "thenify": ">= 3.1.0 < 4" }, @@ -4569,7 +4612,6 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, "dependencies": { "is-number": "^7.0.0" }, @@ -4601,14 +4643,12 @@ "node_modules/ts-interface-checker": { "version": "0.1.13", "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", - "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", - "dev": true + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==" }, "node_modules/tslib": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", - "dev": true + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" }, "node_modules/type-check": { "version": "0.4.0", @@ -4689,8 +4729,7 @@ "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" }, "node_modules/vite": { "version": "5.4.2", @@ -4769,7 +4808,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, "dependencies": { "isexe": "^2.0.0" }, @@ -4784,7 +4822,6 @@ "version": "8.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dev": true, "dependencies": { "ansi-styles": "^6.1.0", "string-width": "^5.0.1", @@ -4802,7 +4839,6 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -4818,14 +4854,12 @@ "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, "node_modules/wrap-ansi-cjs/node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -4839,7 +4873,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true, "engines": { "node": ">=12" }, @@ -4851,7 +4884,6 @@ "version": "6.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true, "engines": { "node": ">=12" }, @@ -4863,7 +4895,6 @@ "version": "7.1.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, "dependencies": { "ansi-regex": "^6.0.1" }, @@ -4890,7 +4921,6 @@ "version": "2.3.4", "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.4.tgz", "integrity": "sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==", - "dev": true, "engines": { "node": ">= 14" } diff --git a/src/psaggregator/package.json b/src/psaggregator/package.json index 4d2e26a..2e3ae58 100644 --- a/src/psaggregator/package.json +++ b/src/psaggregator/package.json @@ -1,6 +1,6 @@ { "name": "psaggregator", - "version": "1.10.0", + "version": "1.11.0", "scripts": { "dev": "vite dev", "build": "vite build", @@ -17,8 +17,6 @@ "@fontsource/fira-mono": "^4.5.10", "@neoconfetti/svelte": "^1.0.0", "@prisma/client": "4.15.0-integration-feat-client-esm.27", - "@skeletonlabs/skeleton": "^2.7.0", - "@skeletonlabs/tw-plugin": "^0.3.1", "@sveltejs/adapter-auto": "^3.0.0", "@sveltejs/adapter-node": "^4.0.1", "@sveltejs/kit": "^2.4.3", @@ -48,5 +46,15 @@ "typescript": "^5.0.0", "vite": "^5.0.12" }, - "type": "module" + "type": "module", + "dependencies": { + "@internationalized/date": "^3.5.5", + "bits-ui": "^0.21.13", + "clsx": "^2.1.1", + "lucide-svelte": "^0.441.0", + "mode-watcher": "^0.4.1", + "svelte-sonner": "^0.3.28", + "tailwind-merge": "^2.5.2", + "tailwind-variants": "^0.2.1" + } } diff --git a/src/psaggregator/src/app.css b/src/psaggregator/src/app.css index cfeae83..7979ae7 100644 --- a/src/psaggregator/src/app.css +++ b/src/psaggregator/src/app.css @@ -2,4 +2,62 @@ @tailwind components; @tailwind utilities; -html, body { @apply h-full overflow-hidden; } +html, +body { + @apply h-full overflow-hidden; +} + +@layer base { + :root { + --background: 0 0% 100%; + --foreground: 240 10% 3.9%; + --card: 0 0% 100%; + --card-foreground: 240 10% 3.9%; + --popover: 0 0% 100%; + --popover-foreground: 240 10% 3.9%; + --primary: 142.1 76.2% 36.3%; + --primary-foreground: 355.7 100% 97.3%; + --secondary: 240 4.8% 95.9%; + --secondary-foreground: 240 5.9% 10%; + --muted: 240 4.8% 95.9%; + --muted-foreground: 240 3.8% 46.1%; + --accent: 240 4.8% 95.9%; + --accent-foreground: 240 5.9% 10%; + --destructive: 0 72.22% 50.59%; + --destructive-foreground: 0 0% 98%; + --border: 240 5.9% 90%; + --input: 240 5.9% 90%; + --ring: 142.1 76.2% 36.3%; + --radius: 0.5rem; + } + .dark { + --background: 20 14.3% 4.1%; + --foreground: 0 0% 95%; + --card: 24 9.8% 10%; + --card-foreground: 0 0% 95%; + --popover: 0 0% 9%; + --popover-foreground: 0 0% 95%; + --primary: 142.1 70.6% 45.3%; + --primary-foreground: 144.9 80.4% 10%; + --secondary: 240 3.7% 15.9%; + --secondary-foreground: 0 0% 98%; + --muted: 0 0% 15%; + --muted-foreground: 240 5% 64.9%; + --accent: 12 6.5% 15.1%; + --accent-foreground: 0 0% 98%; + --destructive: 0 62.8% 30.6%; + --destructive-foreground: 0 85.7% 97.3%; + --border: 240 3.7% 15.9%; + --input: 240 3.7% 15.9%; + --ring: 142.4 71.8% 29.2%; + } +} + +@layer base { + * { + @apply border-border; + } + body { + @apply bg-background text-foreground; + } +} diff --git a/src/psaggregator/src/lib/components/BigHeader.svelte b/src/psaggregator/src/lib/components/BigHeader.svelte index 1b872be..38a5792 100644 --- a/src/psaggregator/src/lib/components/BigHeader.svelte +++ b/src/psaggregator/src/lib/components/BigHeader.svelte @@ -1,28 +1,19 @@ - -
+
+ -
+
{#if matches} Home @@ -32,9 +23,9 @@ API Motivation Einstellungen -
- -
+ Was ist neu? + {:else} + Was ist neu? {/if}
@@ -49,7 +40,7 @@ {/if} - PietSmiet.de + pietsmiet.de {#if !matches && LEGAL_URL} @@ -58,8 +49,6 @@ {/if}
- - - - + +
diff --git a/src/psaggregator/src/lib/components/Changelog.svelte b/src/psaggregator/src/lib/components/Changelog.svelte deleted file mode 100644 index 24b8616..0000000 --- a/src/psaggregator/src/lib/components/Changelog.svelte +++ /dev/null @@ -1,39 +0,0 @@ - - - - - diff --git a/src/psaggregator/src/lib/components/DatePicker.svelte b/src/psaggregator/src/lib/components/DatePicker.svelte new file mode 100644 index 0000000..473e915 --- /dev/null +++ b/src/psaggregator/src/lib/components/DatePicker.svelte @@ -0,0 +1,29 @@ + + + + + + + + + + diff --git a/src/psaggregator/src/lib/components/Footer.svelte b/src/psaggregator/src/lib/components/Footer.svelte index 765e26a..90d2d9a 100644 --- a/src/psaggregator/src/lib/components/Footer.svelte +++ b/src/psaggregator/src/lib/components/Footer.svelte @@ -2,9 +2,7 @@ import MediaQuery from "$lib/utils/MediaQuery.svelte"; import { GITHUB_AUTHOR_URL, GITHUB_URL, LEGAL_URL, MAIL_TO_URL } from "../../config/config"; import { version } from "$app/environment"; - import { TabAnchor, TabGroup } from "@skeletonlabs/skeleton"; - import { page } from "$app/stores"; - import { Api, FavoriteFilled, Home, Document, Thumbnail_2, Settings, EventSchedule } from "carbon-icons-svelte"; + import { Api, Favorite, Home, Document, Thumbnail_2, Settings, EventSchedule } from "carbon-icons-svelte";
- - -
- -
- YouTube -
- -
- -
- Instagram -
- -
- threads + + + +
+ +
+ YouTube +
+ +
+ +
+ Instagram +
+ +
+ threads +
+ Threads +
+ +
+ +
+ Twitter +
+
+ +
+ {#each youtubeCommunityPosts as youtube} + + {/each}
- Threads - - -
- + + +
+ {#each instagramPosts as instagram} + + {/each}
- Twitter - - - -
- {#if tabSet === 0} -
- {#each youtubeCommunityPosts as youtube} - - {/each} -
- {:else if tabSet === 1} -
- {#each instagramPosts as instagram} - - {/each} + + +
+
+
- {:else if tabSet === 2 || tabSet === 3} -
-
- -
- Leider gibt es noch keinen Threads-Import. - Dieses Projekt ist Open Source. - Beteilige dich gerne auf -
GitHub - + Leider gibt es noch keinen Threads-Import. + Dieses Projekt ist Open Source. + Beteilige dich gerne auf + GitHub + +
+ + +
+
+
- {/if} -
- + Leider gibt es noch keinen Twitter-Import. + Dieses Projekt ist Open Source. + Beteilige dich gerne auf + GitHub + +
+ +
diff --git a/src/psaggregator/src/lib/components/PSVideo.svelte b/src/psaggregator/src/lib/components/PSVideo.svelte index d958154..acc5023 100644 --- a/src/psaggregator/src/lib/components/PSVideo.svelte +++ b/src/psaggregator/src/lib/components/PSVideo.svelte @@ -2,6 +2,7 @@ import { dateFormat } from "$lib/utils/dateFormat"; import type { ContentPiece } from "@prisma/client"; import { LINK_YOUTUBE, SHOW_ABSOLUTE_DATES } from "../../config/config"; + import * as Card from "$lib/components/ui/card"; export let video: ContentPiece; export let isSquare = false; @@ -33,29 +34,31 @@ -
-
- {video.title} -
- {#if humanReadableMinutes !== null && humanReadableSeconds !== null} - {("00" + humanReadableMinutes).slice(-2)}:{("00" + humanReadableSeconds).slice(-2)} - {/if} -
-
-
- {video.title} -
- {#if video.startDate} -
-
- {dateFormat(video.startDate, $SHOW_ABSOLUTE_DATES)} + +
+
+ {video.title} +
+ {#if humanReadableMinutes !== null && humanReadableSeconds !== null} + {("00" + humanReadableMinutes).slice(-2)}:{("00" + humanReadableSeconds).slice(-2)} + {/if}
- {/if} +
+ {video.title} +
+ {#if video.startDate} +
+
+ {dateFormat(video.startDate, $SHOW_ABSOLUTE_DATES)} +
+
+ {/if} +
diff --git a/src/psaggregator/src/lib/components/RedditPost.svelte b/src/psaggregator/src/lib/components/RedditPost.svelte index 995bc8d..f5444aa 100644 --- a/src/psaggregator/src/lib/components/RedditPost.svelte +++ b/src/psaggregator/src/lib/components/RedditPost.svelte @@ -1,39 +1,36 @@ - -
-
- - {entry.upvotes} + + +
+
+ + {entry.upvotes} +
+
+ + {entry.comments} +
-
- - {entry.comments} + {#if entry.imageUri} + thumbnail + {/if} +
+
+ u/{entry.username} + {#if entry.sticky} + + {/if} +
+ + {entry.title} +
-
- {#if entry.imageUri} - thumbnail - {/if} -
-
- u/{entry.username} - {#if entry.sticky} - - {/if} -
- - {entry.title} - -
-
+ + diff --git a/src/psaggregator/src/lib/components/TwitchEntry.svelte b/src/psaggregator/src/lib/components/TwitchEntry.svelte index 93e7e5d..6e1b7c5 100644 --- a/src/psaggregator/src/lib/components/TwitchEntry.svelte +++ b/src/psaggregator/src/lib/components/TwitchEntry.svelte @@ -3,60 +3,65 @@ import { Video, VideoPlayer } from "carbon-icons-svelte"; import moment from "moment"; import Sparkle from "./Sparkle.svelte"; + import * as Card from "$lib/components/ui/card"; export let entry: ScheduledContentPiece; {#if entry.href} - -
- {#if entry.type === "TwitchStream"} -
- {#if entry.startDate} - {@const date = moment(entry.startDate)} + +
- {#if !moment().isSame(date, "day")} - {date.format("DD. MMM,")} + {#if entry.type === "TwitchStream"} +
- {/if} - {entry.title} - {#if entry.importedFrom === "OpenAI"} -
-
-
- {/if} -
-{:else} -
-
- {#if entry.type === "TwitchStream"} -
- {#if entry.startDate} - {@const date = moment(entry.startDate)} + {entry.title} + {#if entry.importedFrom === "OpenAI"} +
+
+ +
+ {/if} + + +{:else} + +
- {#if !moment().isSame(date, "day")} - {date.format("DD. MMM,")} + {#if entry.type === "TwitchStream"} +
- {/if} - {entry.title} - {#if entry.importedFrom === "OpenAI"} -
-
-
- {/if} -
+ {#if entry.startDate} + {@const date = moment(entry.startDate)} +
+ {#if !moment().isSame(date, "day")} + {date.format("DD. MMM,")} + {/if} + {date.format("HH:mm")} +
+ {/if} + {entry.title} + {#if entry.importedFrom === "OpenAI"} +
+
+ +
+ {/if} +
+ {/if} diff --git a/src/psaggregator/src/lib/components/TwitchStatus.svelte b/src/psaggregator/src/lib/components/TwitchStatus.svelte index fef39cc..eb7a0d8 100644 --- a/src/psaggregator/src/lib/components/TwitchStatus.svelte +++ b/src/psaggregator/src/lib/components/TwitchStatus.svelte @@ -3,36 +3,39 @@ import MediaQuery from "$lib/utils/MediaQuery.svelte"; import type { TwitchStatus } from "@prisma/client"; import moment from "moment"; + import * as Card from "$lib/components/ui/card"; export let twitch: TwitchStatus; - - Twitch thumbnail -
-
-
-
- PietSmiet ist live! + + + Twitch thumbnail +
+
+
+
+ PietSmiet ist live! +
+ {#if matches} + + + {twitch.gameName} + + {/if} +
+
+
+ {#if matches} + + + {twitch.viewers} + + {/if} + {moment(twitch.startedAt).fromNow()}
- {#if matches} - - - {twitch.gameName} - - {/if} -
-
-
- {#if matches} - - - {twitch.viewers} - - {/if} - {moment(twitch.startedAt).fromNow()}
-
-
+ + diff --git a/src/psaggregator/src/lib/components/UploadPlanEntry.svelte b/src/psaggregator/src/lib/components/UploadPlanEntry.svelte index 11959dc..0917783 100644 --- a/src/psaggregator/src/lib/components/UploadPlanEntry.svelte +++ b/src/psaggregator/src/lib/components/UploadPlanEntry.svelte @@ -3,44 +3,48 @@ import { PlayFilledAlt, Video, VideoPlayer } from "carbon-icons-svelte"; import moment from "moment"; import Sparkle from "./Sparkle.svelte"; + import * as Card from "$lib/components/ui/card"; + import { Button } from "./ui/button"; export let entry: ScheduledContentPiece; -
-
-
- {#if entry.type === "TwitchStream"} -
- {#if entry.startDate} - {@const date = moment(entry.startDate)} + +
+
- {#if !moment().isSame(date, "day")} - {date.format("DD. MMM,")} + {#if entry.type === "TwitchStream"} +
+ {#if entry.startDate} + {@const date = moment(entry.startDate)} +
+ {#if !moment().isSame(date, "day")} + {date.format("DD. MMM,")} + {/if} + {date.format("HH:mm")} +
+ {/if} +
+ {entry.title} + {#if entry.href || entry.importedFrom === "OpenAI"} +
+ {/if} + {#if entry.href} + + {/if} + {#if entry.importedFrom === "OpenAI"} +
+
{/if}
- {entry.title} - {#if entry.href || entry.importedFrom === "OpenAI"} -
- {/if} - {#if entry.href} - - - - - Ansehen - - {/if} - {#if entry.importedFrom === "OpenAI"} -
- -
- {/if} -
+ diff --git a/src/psaggregator/src/lib/components/YouTubeCommunityPost.svelte b/src/psaggregator/src/lib/components/YouTubeCommunityPost.svelte index 6e34b84..e4b2ae1 100644 --- a/src/psaggregator/src/lib/components/YouTubeCommunityPost.svelte +++ b/src/psaggregator/src/lib/components/YouTubeCommunityPost.svelte @@ -2,16 +2,19 @@ import { dateFormat } from "$lib/utils/dateFormat"; import type { Information } from "@prisma/client"; import { SHOW_ABSOLUTE_DATES } from "../../config/config"; + import * as Card from "$lib/components/ui/card"; export let post: Information; - - {#if post.date} -
{dateFormat(post.date, $SHOW_ABSOLUTE_DATES)}
- {/if} -
{post.text}
- {#if post.imageUri} - {"community - {/if} -
+ + + {#if post.date} +
{dateFormat(post.date, $SHOW_ABSOLUTE_DATES)}
+ {/if} +
{post.text}
+ {#if post.imageUri} + {"community + {/if} +
+
diff --git a/src/psaggregator/src/lib/components/ui/button/button.svelte b/src/psaggregator/src/lib/components/ui/button/button.svelte new file mode 100644 index 0000000..86827f3 --- /dev/null +++ b/src/psaggregator/src/lib/components/ui/button/button.svelte @@ -0,0 +1,25 @@ + + + + + diff --git a/src/psaggregator/src/lib/components/ui/button/index.ts b/src/psaggregator/src/lib/components/ui/button/index.ts new file mode 100644 index 0000000..af1e188 --- /dev/null +++ b/src/psaggregator/src/lib/components/ui/button/index.ts @@ -0,0 +1,49 @@ +import { type VariantProps, tv } from "tailwind-variants"; +import type { Button as ButtonPrimitive } from "bits-ui"; +import Root from "./button.svelte"; + +const buttonVariants = tv({ + base: "ring-offset-background focus-visible:ring-ring inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50", + variants: { + variant: { + default: "bg-primary text-primary-foreground hover:bg-primary/90", + destructive: "bg-destructive text-destructive-foreground hover:bg-destructive/90", + outline: + "border-input bg-background hover:bg-accent hover:text-accent-foreground border", + secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80", + ghost: "hover:bg-accent hover:text-accent-foreground", + link: "text-primary underline-offset-4 hover:underline", + }, + size: { + default: "h-10 px-4 py-2", + sm: "h-9 rounded-md px-3", + lg: "h-11 rounded-md px-8", + icon: "h-10 w-10", + }, + }, + defaultVariants: { + variant: "default", + size: "default", + }, +}); + +type Variant = VariantProps["variant"]; +type Size = VariantProps["size"]; + +type Props = ButtonPrimitive.Props & { + variant?: Variant; + size?: Size; +}; + +type Events = ButtonPrimitive.Events; + +export { + Root, + type Props, + type Events, + // + Root as Button, + type Props as ButtonProps, + type Events as ButtonEvents, + buttonVariants, +}; diff --git a/src/psaggregator/src/lib/components/ui/calendar/calendar-cell.svelte b/src/psaggregator/src/lib/components/ui/calendar/calendar-cell.svelte new file mode 100644 index 0000000..f2962b2 --- /dev/null +++ b/src/psaggregator/src/lib/components/ui/calendar/calendar-cell.svelte @@ -0,0 +1,21 @@ + + + + + diff --git a/src/psaggregator/src/lib/components/ui/calendar/calendar-day.svelte b/src/psaggregator/src/lib/components/ui/calendar/calendar-day.svelte new file mode 100644 index 0000000..c9b2efc --- /dev/null +++ b/src/psaggregator/src/lib/components/ui/calendar/calendar-day.svelte @@ -0,0 +1,42 @@ + + + + + {date.day} + + diff --git a/src/psaggregator/src/lib/components/ui/calendar/calendar-grid-body.svelte b/src/psaggregator/src/lib/components/ui/calendar/calendar-grid-body.svelte new file mode 100644 index 0000000..80b6f84 --- /dev/null +++ b/src/psaggregator/src/lib/components/ui/calendar/calendar-grid-body.svelte @@ -0,0 +1,13 @@ + + + + + diff --git a/src/psaggregator/src/lib/components/ui/calendar/calendar-grid-head.svelte b/src/psaggregator/src/lib/components/ui/calendar/calendar-grid-head.svelte new file mode 100644 index 0000000..dbe3e8e --- /dev/null +++ b/src/psaggregator/src/lib/components/ui/calendar/calendar-grid-head.svelte @@ -0,0 +1,13 @@ + + + + + diff --git a/src/psaggregator/src/lib/components/ui/calendar/calendar-grid-row.svelte b/src/psaggregator/src/lib/components/ui/calendar/calendar-grid-row.svelte new file mode 100644 index 0000000..3a1473c --- /dev/null +++ b/src/psaggregator/src/lib/components/ui/calendar/calendar-grid-row.svelte @@ -0,0 +1,13 @@ + + + + + diff --git a/src/psaggregator/src/lib/components/ui/calendar/calendar-grid.svelte b/src/psaggregator/src/lib/components/ui/calendar/calendar-grid.svelte new file mode 100644 index 0000000..d52c9a7 --- /dev/null +++ b/src/psaggregator/src/lib/components/ui/calendar/calendar-grid.svelte @@ -0,0 +1,13 @@ + + + + + diff --git a/src/psaggregator/src/lib/components/ui/calendar/calendar-head-cell.svelte b/src/psaggregator/src/lib/components/ui/calendar/calendar-head-cell.svelte new file mode 100644 index 0000000..f9eabbc --- /dev/null +++ b/src/psaggregator/src/lib/components/ui/calendar/calendar-head-cell.svelte @@ -0,0 +1,16 @@ + + + + + diff --git a/src/psaggregator/src/lib/components/ui/calendar/calendar-header.svelte b/src/psaggregator/src/lib/components/ui/calendar/calendar-header.svelte new file mode 100644 index 0000000..014ff28 --- /dev/null +++ b/src/psaggregator/src/lib/components/ui/calendar/calendar-header.svelte @@ -0,0 +1,16 @@ + + + + + diff --git a/src/psaggregator/src/lib/components/ui/calendar/calendar-heading.svelte b/src/psaggregator/src/lib/components/ui/calendar/calendar-heading.svelte new file mode 100644 index 0000000..409a182 --- /dev/null +++ b/src/psaggregator/src/lib/components/ui/calendar/calendar-heading.svelte @@ -0,0 +1,19 @@ + + + + + {headingValue} + + diff --git a/src/psaggregator/src/lib/components/ui/calendar/calendar-months.svelte b/src/psaggregator/src/lib/components/ui/calendar/calendar-months.svelte new file mode 100644 index 0000000..4621c54 --- /dev/null +++ b/src/psaggregator/src/lib/components/ui/calendar/calendar-months.svelte @@ -0,0 +1,16 @@ + + +
+ +
diff --git a/src/psaggregator/src/lib/components/ui/calendar/calendar-next-button.svelte b/src/psaggregator/src/lib/components/ui/calendar/calendar-next-button.svelte new file mode 100644 index 0000000..dd0bffe --- /dev/null +++ b/src/psaggregator/src/lib/components/ui/calendar/calendar-next-button.svelte @@ -0,0 +1,27 @@ + + + + + + + diff --git a/src/psaggregator/src/lib/components/ui/calendar/calendar-prev-button.svelte b/src/psaggregator/src/lib/components/ui/calendar/calendar-prev-button.svelte new file mode 100644 index 0000000..48d8235 --- /dev/null +++ b/src/psaggregator/src/lib/components/ui/calendar/calendar-prev-button.svelte @@ -0,0 +1,27 @@ + + + + + + + diff --git a/src/psaggregator/src/lib/components/ui/calendar/calendar.svelte b/src/psaggregator/src/lib/components/ui/calendar/calendar.svelte new file mode 100644 index 0000000..0857f3d --- /dev/null +++ b/src/psaggregator/src/lib/components/ui/calendar/calendar.svelte @@ -0,0 +1,59 @@ + + + + + + + + + + {#each months as month} + + + + {#each weekdays as weekday} + + {weekday.slice(0, 2)} + + {/each} + + + + {#each month.weeks as weekDates} + + {#each weekDates as date} + + + + {/each} + + {/each} + + + {/each} + + diff --git a/src/psaggregator/src/lib/components/ui/calendar/index.ts b/src/psaggregator/src/lib/components/ui/calendar/index.ts new file mode 100644 index 0000000..ab257ab --- /dev/null +++ b/src/psaggregator/src/lib/components/ui/calendar/index.ts @@ -0,0 +1,30 @@ +import Root from "./calendar.svelte"; +import Cell from "./calendar-cell.svelte"; +import Day from "./calendar-day.svelte"; +import Grid from "./calendar-grid.svelte"; +import Header from "./calendar-header.svelte"; +import Months from "./calendar-months.svelte"; +import GridRow from "./calendar-grid-row.svelte"; +import Heading from "./calendar-heading.svelte"; +import GridBody from "./calendar-grid-body.svelte"; +import GridHead from "./calendar-grid-head.svelte"; +import HeadCell from "./calendar-head-cell.svelte"; +import NextButton from "./calendar-next-button.svelte"; +import PrevButton from "./calendar-prev-button.svelte"; + +export { + Day, + Cell, + Grid, + Header, + Months, + GridRow, + Heading, + GridBody, + GridHead, + HeadCell, + NextButton, + PrevButton, + // + Root as Calendar, +}; diff --git a/src/psaggregator/src/lib/components/ui/card/card-content.svelte b/src/psaggregator/src/lib/components/ui/card/card-content.svelte new file mode 100644 index 0000000..89d82b2 --- /dev/null +++ b/src/psaggregator/src/lib/components/ui/card/card-content.svelte @@ -0,0 +1,13 @@ + + +
+ +
diff --git a/src/psaggregator/src/lib/components/ui/card/card-description.svelte b/src/psaggregator/src/lib/components/ui/card/card-description.svelte new file mode 100644 index 0000000..f65821d --- /dev/null +++ b/src/psaggregator/src/lib/components/ui/card/card-description.svelte @@ -0,0 +1,13 @@ + + +

+ +

diff --git a/src/psaggregator/src/lib/components/ui/card/card-footer.svelte b/src/psaggregator/src/lib/components/ui/card/card-footer.svelte new file mode 100644 index 0000000..32f90bb --- /dev/null +++ b/src/psaggregator/src/lib/components/ui/card/card-footer.svelte @@ -0,0 +1,13 @@ + + +
+ +
diff --git a/src/psaggregator/src/lib/components/ui/card/card-header.svelte b/src/psaggregator/src/lib/components/ui/card/card-header.svelte new file mode 100644 index 0000000..e474528 --- /dev/null +++ b/src/psaggregator/src/lib/components/ui/card/card-header.svelte @@ -0,0 +1,13 @@ + + +
+ +
diff --git a/src/psaggregator/src/lib/components/ui/card/card-title.svelte b/src/psaggregator/src/lib/components/ui/card/card-title.svelte new file mode 100644 index 0000000..719808e --- /dev/null +++ b/src/psaggregator/src/lib/components/ui/card/card-title.svelte @@ -0,0 +1,21 @@ + + + + + diff --git a/src/psaggregator/src/lib/components/ui/card/card.svelte b/src/psaggregator/src/lib/components/ui/card/card.svelte new file mode 100644 index 0000000..b69c15c --- /dev/null +++ b/src/psaggregator/src/lib/components/ui/card/card.svelte @@ -0,0 +1,16 @@ + + +
+ +
diff --git a/src/psaggregator/src/lib/components/ui/card/index.ts b/src/psaggregator/src/lib/components/ui/card/index.ts new file mode 100644 index 0000000..bcc031d --- /dev/null +++ b/src/psaggregator/src/lib/components/ui/card/index.ts @@ -0,0 +1,24 @@ +import Root from "./card.svelte"; +import Content from "./card-content.svelte"; +import Description from "./card-description.svelte"; +import Footer from "./card-footer.svelte"; +import Header from "./card-header.svelte"; +import Title from "./card-title.svelte"; + +export { + Root, + Content, + Description, + Footer, + Header, + Title, + // + Root as Card, + Content as CardContent, + Description as CardDescription, + Footer as CardFooter, + Header as CardHeader, + Title as CardTitle, +}; + +export type HeadingLevel = "h1" | "h2" | "h3" | "h4" | "h5" | "h6"; diff --git a/src/psaggregator/src/lib/components/ui/checkbox/checkbox.svelte b/src/psaggregator/src/lib/components/ui/checkbox/checkbox.svelte new file mode 100644 index 0000000..f4b906f --- /dev/null +++ b/src/psaggregator/src/lib/components/ui/checkbox/checkbox.svelte @@ -0,0 +1,35 @@ + + + + + {#if isChecked} + + {:else if isIndeterminate} + + {/if} + + diff --git a/src/psaggregator/src/lib/components/ui/checkbox/index.ts b/src/psaggregator/src/lib/components/ui/checkbox/index.ts new file mode 100644 index 0000000..6d92d94 --- /dev/null +++ b/src/psaggregator/src/lib/components/ui/checkbox/index.ts @@ -0,0 +1,6 @@ +import Root from "./checkbox.svelte"; +export { + Root, + // + Root as Checkbox, +}; diff --git a/src/psaggregator/src/lib/components/ui/dialog/dialog-content.svelte b/src/psaggregator/src/lib/components/ui/dialog/dialog-content.svelte new file mode 100644 index 0000000..a06ccb2 --- /dev/null +++ b/src/psaggregator/src/lib/components/ui/dialog/dialog-content.svelte @@ -0,0 +1,36 @@ + + + + + + + + + Close + + + diff --git a/src/psaggregator/src/lib/components/ui/dialog/dialog-description.svelte b/src/psaggregator/src/lib/components/ui/dialog/dialog-description.svelte new file mode 100644 index 0000000..8bc70cc --- /dev/null +++ b/src/psaggregator/src/lib/components/ui/dialog/dialog-description.svelte @@ -0,0 +1,16 @@ + + + + + diff --git a/src/psaggregator/src/lib/components/ui/dialog/dialog-footer.svelte b/src/psaggregator/src/lib/components/ui/dialog/dialog-footer.svelte new file mode 100644 index 0000000..a235d1f --- /dev/null +++ b/src/psaggregator/src/lib/components/ui/dialog/dialog-footer.svelte @@ -0,0 +1,16 @@ + + +
+ +
diff --git a/src/psaggregator/src/lib/components/ui/dialog/dialog-header.svelte b/src/psaggregator/src/lib/components/ui/dialog/dialog-header.svelte new file mode 100644 index 0000000..6b4448c --- /dev/null +++ b/src/psaggregator/src/lib/components/ui/dialog/dialog-header.svelte @@ -0,0 +1,13 @@ + + +
+ +
diff --git a/src/psaggregator/src/lib/components/ui/dialog/dialog-overlay.svelte b/src/psaggregator/src/lib/components/ui/dialog/dialog-overlay.svelte new file mode 100644 index 0000000..1d376e4 --- /dev/null +++ b/src/psaggregator/src/lib/components/ui/dialog/dialog-overlay.svelte @@ -0,0 +1,21 @@ + + + diff --git a/src/psaggregator/src/lib/components/ui/dialog/dialog-portal.svelte b/src/psaggregator/src/lib/components/ui/dialog/dialog-portal.svelte new file mode 100644 index 0000000..eb5d0a5 --- /dev/null +++ b/src/psaggregator/src/lib/components/ui/dialog/dialog-portal.svelte @@ -0,0 +1,8 @@ + + + + + diff --git a/src/psaggregator/src/lib/components/ui/dialog/dialog-title.svelte b/src/psaggregator/src/lib/components/ui/dialog/dialog-title.svelte new file mode 100644 index 0000000..06574f3 --- /dev/null +++ b/src/psaggregator/src/lib/components/ui/dialog/dialog-title.svelte @@ -0,0 +1,16 @@ + + + + + diff --git a/src/psaggregator/src/lib/components/ui/dialog/index.ts b/src/psaggregator/src/lib/components/ui/dialog/index.ts new file mode 100644 index 0000000..b17ba5e --- /dev/null +++ b/src/psaggregator/src/lib/components/ui/dialog/index.ts @@ -0,0 +1,37 @@ +import { Dialog as DialogPrimitive } from "bits-ui"; + +import Title from "./dialog-title.svelte"; +import Portal from "./dialog-portal.svelte"; +import Footer from "./dialog-footer.svelte"; +import Header from "./dialog-header.svelte"; +import Overlay from "./dialog-overlay.svelte"; +import Content from "./dialog-content.svelte"; +import Description from "./dialog-description.svelte"; + +const Root = DialogPrimitive.Root; +const Trigger = DialogPrimitive.Trigger; +const Close = DialogPrimitive.Close; + +export { + Root, + Title, + Portal, + Footer, + Header, + Trigger, + Overlay, + Content, + Description, + Close, + // + Root as Dialog, + Title as DialogTitle, + Portal as DialogPortal, + Footer as DialogFooter, + Header as DialogHeader, + Trigger as DialogTrigger, + Overlay as DialogOverlay, + Content as DialogContent, + Description as DialogDescription, + Close as DialogClose, +}; diff --git a/src/psaggregator/src/lib/components/ui/input/index.ts b/src/psaggregator/src/lib/components/ui/input/index.ts new file mode 100644 index 0000000..75e3bc2 --- /dev/null +++ b/src/psaggregator/src/lib/components/ui/input/index.ts @@ -0,0 +1,29 @@ +import Root from "./input.svelte"; + +export type FormInputEvent = T & { + currentTarget: EventTarget & HTMLInputElement; +}; +export type InputEvents = { + blur: FormInputEvent; + change: FormInputEvent; + click: FormInputEvent; + focus: FormInputEvent; + focusin: FormInputEvent; + focusout: FormInputEvent; + keydown: FormInputEvent; + keypress: FormInputEvent; + keyup: FormInputEvent; + mouseover: FormInputEvent; + mouseenter: FormInputEvent; + mouseleave: FormInputEvent; + mousemove: FormInputEvent; + paste: FormInputEvent; + input: FormInputEvent; + wheel: FormInputEvent; +}; + +export { + Root, + // + Root as Input, +}; diff --git a/src/psaggregator/src/lib/components/ui/input/input.svelte b/src/psaggregator/src/lib/components/ui/input/input.svelte new file mode 100644 index 0000000..cab1457 --- /dev/null +++ b/src/psaggregator/src/lib/components/ui/input/input.svelte @@ -0,0 +1,42 @@ + + + diff --git a/src/psaggregator/src/lib/components/ui/label/index.ts b/src/psaggregator/src/lib/components/ui/label/index.ts new file mode 100644 index 0000000..8bfca0b --- /dev/null +++ b/src/psaggregator/src/lib/components/ui/label/index.ts @@ -0,0 +1,7 @@ +import Root from "./label.svelte"; + +export { + Root, + // + Root as Label, +}; diff --git a/src/psaggregator/src/lib/components/ui/label/label.svelte b/src/psaggregator/src/lib/components/ui/label/label.svelte new file mode 100644 index 0000000..2a7d479 --- /dev/null +++ b/src/psaggregator/src/lib/components/ui/label/label.svelte @@ -0,0 +1,21 @@ + + + + + diff --git a/src/psaggregator/src/lib/components/ui/popover/index.ts b/src/psaggregator/src/lib/components/ui/popover/index.ts new file mode 100644 index 0000000..63aecf9 --- /dev/null +++ b/src/psaggregator/src/lib/components/ui/popover/index.ts @@ -0,0 +1,17 @@ +import { Popover as PopoverPrimitive } from "bits-ui"; +import Content from "./popover-content.svelte"; +const Root = PopoverPrimitive.Root; +const Trigger = PopoverPrimitive.Trigger; +const Close = PopoverPrimitive.Close; + +export { + Root, + Content, + Trigger, + Close, + // + Root as Popover, + Content as PopoverContent, + Trigger as PopoverTrigger, + Close as PopoverClose, +}; diff --git a/src/psaggregator/src/lib/components/ui/popover/popover-content.svelte b/src/psaggregator/src/lib/components/ui/popover/popover-content.svelte new file mode 100644 index 0000000..1d86206 --- /dev/null +++ b/src/psaggregator/src/lib/components/ui/popover/popover-content.svelte @@ -0,0 +1,22 @@ + + + + + diff --git a/src/psaggregator/src/lib/components/ui/range-calendar/index.ts b/src/psaggregator/src/lib/components/ui/range-calendar/index.ts new file mode 100644 index 0000000..43adb92 --- /dev/null +++ b/src/psaggregator/src/lib/components/ui/range-calendar/index.ts @@ -0,0 +1,30 @@ +import Root from "./range-calendar.svelte"; +import Cell from "./range-calendar-cell.svelte"; +import Day from "./range-calendar-day.svelte"; +import Grid from "./range-calendar-grid.svelte"; +import Header from "./range-calendar-header.svelte"; +import Months from "./range-calendar-months.svelte"; +import GridRow from "./range-calendar-grid-row.svelte"; +import Heading from "./range-calendar-heading.svelte"; +import GridBody from "./range-calendar-grid-body.svelte"; +import GridHead from "./range-calendar-grid-head.svelte"; +import HeadCell from "./range-calendar-head-cell.svelte"; +import NextButton from "./range-calendar-next-button.svelte"; +import PrevButton from "./range-calendar-prev-button.svelte"; + +export { + Day, + Cell, + Grid, + Header, + Months, + GridRow, + Heading, + GridBody, + GridHead, + HeadCell, + NextButton, + PrevButton, + // + Root as RangeCalendar, +}; diff --git a/src/psaggregator/src/lib/components/ui/range-calendar/range-calendar-cell.svelte b/src/psaggregator/src/lib/components/ui/range-calendar/range-calendar-cell.svelte new file mode 100644 index 0000000..5e9d2dd --- /dev/null +++ b/src/psaggregator/src/lib/components/ui/range-calendar/range-calendar-cell.svelte @@ -0,0 +1,21 @@ + + + + + diff --git a/src/psaggregator/src/lib/components/ui/range-calendar/range-calendar-day.svelte b/src/psaggregator/src/lib/components/ui/range-calendar/range-calendar-day.svelte new file mode 100644 index 0000000..86db6dd --- /dev/null +++ b/src/psaggregator/src/lib/components/ui/range-calendar/range-calendar-day.svelte @@ -0,0 +1,43 @@ + + + + + {date.day} + + diff --git a/src/psaggregator/src/lib/components/ui/range-calendar/range-calendar-grid-body.svelte b/src/psaggregator/src/lib/components/ui/range-calendar/range-calendar-grid-body.svelte new file mode 100644 index 0000000..23a5dee --- /dev/null +++ b/src/psaggregator/src/lib/components/ui/range-calendar/range-calendar-grid-body.svelte @@ -0,0 +1,13 @@ + + + + + diff --git a/src/psaggregator/src/lib/components/ui/range-calendar/range-calendar-grid-head.svelte b/src/psaggregator/src/lib/components/ui/range-calendar/range-calendar-grid-head.svelte new file mode 100644 index 0000000..23dbefe --- /dev/null +++ b/src/psaggregator/src/lib/components/ui/range-calendar/range-calendar-grid-head.svelte @@ -0,0 +1,13 @@ + + + + + diff --git a/src/psaggregator/src/lib/components/ui/range-calendar/range-calendar-grid-row.svelte b/src/psaggregator/src/lib/components/ui/range-calendar/range-calendar-grid-row.svelte new file mode 100644 index 0000000..157c7ea --- /dev/null +++ b/src/psaggregator/src/lib/components/ui/range-calendar/range-calendar-grid-row.svelte @@ -0,0 +1,13 @@ + + + + + diff --git a/src/psaggregator/src/lib/components/ui/range-calendar/range-calendar-grid.svelte b/src/psaggregator/src/lib/components/ui/range-calendar/range-calendar-grid.svelte new file mode 100644 index 0000000..c5050ba --- /dev/null +++ b/src/psaggregator/src/lib/components/ui/range-calendar/range-calendar-grid.svelte @@ -0,0 +1,16 @@ + + + + + diff --git a/src/psaggregator/src/lib/components/ui/range-calendar/range-calendar-head-cell.svelte b/src/psaggregator/src/lib/components/ui/range-calendar/range-calendar-head-cell.svelte new file mode 100644 index 0000000..0806c60 --- /dev/null +++ b/src/psaggregator/src/lib/components/ui/range-calendar/range-calendar-head-cell.svelte @@ -0,0 +1,16 @@ + + + + + diff --git a/src/psaggregator/src/lib/components/ui/range-calendar/range-calendar-header.svelte b/src/psaggregator/src/lib/components/ui/range-calendar/range-calendar-header.svelte new file mode 100644 index 0000000..3949ecd --- /dev/null +++ b/src/psaggregator/src/lib/components/ui/range-calendar/range-calendar-header.svelte @@ -0,0 +1,16 @@ + + + + + diff --git a/src/psaggregator/src/lib/components/ui/range-calendar/range-calendar-heading.svelte b/src/psaggregator/src/lib/components/ui/range-calendar/range-calendar-heading.svelte new file mode 100644 index 0000000..f022eeb --- /dev/null +++ b/src/psaggregator/src/lib/components/ui/range-calendar/range-calendar-heading.svelte @@ -0,0 +1,19 @@ + + + + + {headingValue} + + diff --git a/src/psaggregator/src/lib/components/ui/range-calendar/range-calendar-months.svelte b/src/psaggregator/src/lib/components/ui/range-calendar/range-calendar-months.svelte new file mode 100644 index 0000000..4621c54 --- /dev/null +++ b/src/psaggregator/src/lib/components/ui/range-calendar/range-calendar-months.svelte @@ -0,0 +1,16 @@ + + +
+ +
diff --git a/src/psaggregator/src/lib/components/ui/range-calendar/range-calendar-next-button.svelte b/src/psaggregator/src/lib/components/ui/range-calendar/range-calendar-next-button.svelte new file mode 100644 index 0000000..661568b --- /dev/null +++ b/src/psaggregator/src/lib/components/ui/range-calendar/range-calendar-next-button.svelte @@ -0,0 +1,27 @@ + + + + + + + diff --git a/src/psaggregator/src/lib/components/ui/range-calendar/range-calendar-prev-button.svelte b/src/psaggregator/src/lib/components/ui/range-calendar/range-calendar-prev-button.svelte new file mode 100644 index 0000000..f7c1383 --- /dev/null +++ b/src/psaggregator/src/lib/components/ui/range-calendar/range-calendar-prev-button.svelte @@ -0,0 +1,27 @@ + + + + + + + diff --git a/src/psaggregator/src/lib/components/ui/range-calendar/range-calendar.svelte b/src/psaggregator/src/lib/components/ui/range-calendar/range-calendar.svelte new file mode 100644 index 0000000..d20ba67 --- /dev/null +++ b/src/psaggregator/src/lib/components/ui/range-calendar/range-calendar.svelte @@ -0,0 +1,60 @@ + + + + + + + + + + {#each months as month} + + + + {#each weekdays as weekday} + + {weekday.slice(0, 2)} + + {/each} + + + + {#each month.weeks as weekDates} + + {#each weekDates as date} + + + + {/each} + + {/each} + + + {/each} + + diff --git a/src/psaggregator/src/lib/components/ui/sonner/index.ts b/src/psaggregator/src/lib/components/ui/sonner/index.ts new file mode 100644 index 0000000..1ad9f4a --- /dev/null +++ b/src/psaggregator/src/lib/components/ui/sonner/index.ts @@ -0,0 +1 @@ +export { default as Toaster } from "./sonner.svelte"; diff --git a/src/psaggregator/src/lib/components/ui/sonner/sonner.svelte b/src/psaggregator/src/lib/components/ui/sonner/sonner.svelte new file mode 100644 index 0000000..7d5b2f1 --- /dev/null +++ b/src/psaggregator/src/lib/components/ui/sonner/sonner.svelte @@ -0,0 +1,20 @@ + + + diff --git a/src/psaggregator/src/lib/components/ui/tabs/index.ts b/src/psaggregator/src/lib/components/ui/tabs/index.ts new file mode 100644 index 0000000..f1ab372 --- /dev/null +++ b/src/psaggregator/src/lib/components/ui/tabs/index.ts @@ -0,0 +1,18 @@ +import { Tabs as TabsPrimitive } from "bits-ui"; +import Content from "./tabs-content.svelte"; +import List from "./tabs-list.svelte"; +import Trigger from "./tabs-trigger.svelte"; + +const Root = TabsPrimitive.Root; + +export { + Root, + Content, + List, + Trigger, + // + Root as Tabs, + Content as TabsContent, + List as TabsList, + Trigger as TabsTrigger, +}; diff --git a/src/psaggregator/src/lib/components/ui/tabs/tabs-content.svelte b/src/psaggregator/src/lib/components/ui/tabs/tabs-content.svelte new file mode 100644 index 0000000..b611559 --- /dev/null +++ b/src/psaggregator/src/lib/components/ui/tabs/tabs-content.svelte @@ -0,0 +1,21 @@ + + + + + diff --git a/src/psaggregator/src/lib/components/ui/tabs/tabs-list.svelte b/src/psaggregator/src/lib/components/ui/tabs/tabs-list.svelte new file mode 100644 index 0000000..773c754 --- /dev/null +++ b/src/psaggregator/src/lib/components/ui/tabs/tabs-list.svelte @@ -0,0 +1,19 @@ + + + + + diff --git a/src/psaggregator/src/lib/components/ui/tabs/tabs-trigger.svelte b/src/psaggregator/src/lib/components/ui/tabs/tabs-trigger.svelte new file mode 100644 index 0000000..b99358d --- /dev/null +++ b/src/psaggregator/src/lib/components/ui/tabs/tabs-trigger.svelte @@ -0,0 +1,23 @@ + + + + + diff --git a/src/psaggregator/src/lib/utils.ts b/src/psaggregator/src/lib/utils.ts new file mode 100644 index 0000000..8871245 --- /dev/null +++ b/src/psaggregator/src/lib/utils.ts @@ -0,0 +1,62 @@ +import { type ClassValue, clsx } from "clsx"; +import { twMerge } from "tailwind-merge"; +import { cubicOut } from "svelte/easing"; +import type { TransitionConfig } from "svelte/transition"; + +export function cn(...inputs: ClassValue[]) { + return twMerge(clsx(inputs)); +} + +type FlyAndScaleParams = { + y?: number; + x?: number; + start?: number; + duration?: number; +}; + +export const flyAndScale = ( + node: Element, + params: FlyAndScaleParams = { y: -8, x: 0, start: 0.95, duration: 150 } +): TransitionConfig => { + const style = getComputedStyle(node); + const transform = style.transform === "none" ? "" : style.transform; + + const scaleConversion = ( + valueA: number, + scaleA: [number, number], + scaleB: [number, number] + ) => { + const [minA, maxA] = scaleA; + const [minB, maxB] = scaleB; + + const percentage = (valueA - minA) / (maxA - minA); + const valueB = percentage * (maxB - minB) + minB; + + return valueB; + }; + + const styleToString = ( + style: Record + ): string => { + return Object.keys(style).reduce((str, key) => { + if (style[key] === undefined) return str; + return str + `${key}:${style[key]};`; + }, ""); + }; + + return { + duration: params.duration ?? 200, + delay: 0, + css: (t) => { + const y = scaleConversion(t, [0, 1], [params.y ?? 5, 0]); + const x = scaleConversion(t, [0, 1], [params.x ?? 0, 0]); + const scale = scaleConversion(t, [0, 1], [params.start ?? 0.95, 1]); + + return styleToString({ + transform: `${transform} translate3d(${x}px, ${y}px, 0) scale(${scale})`, + opacity: t + }); + }, + easing: cubicOut + }; +}; \ No newline at end of file diff --git a/src/psaggregator/src/routes/+layout.svelte b/src/psaggregator/src/routes/+layout.svelte index 986a0e0..8ff5fc6 100644 --- a/src/psaggregator/src/routes/+layout.svelte +++ b/src/psaggregator/src/routes/+layout.svelte @@ -1,7 +1,5 @@ + + +
- - - - +
+ {#each data.announcements as announcement} {/each} - - -
- - +
+
+ +
+
+
+
- - - {#if MICROANALYTICS_ID} + +
+

Version {version}

+ +
+

Neues Design

+
+ + + Das Design wurde grundlegend überarbeitet. Es ist nun moderner und benutzerfreundlicher. Die Farben wurden angepasst und die + Schriftart wurde geändert. Lasst mich gerne wissen, wie es euch gefällt! + +
+

Neue Features

+
+ Verlinkung von YouTube-Videos! + + In den Einstellungen kann nun konfiguriert werden, ob auf YouTube oder auf pietsmiet.de verlinkt werden soll. Der Import + historischer Daten ist noch nicht möglich, wird aber in Zukunft hinzugefügt. Somit funktioniert die Verlinkung zu YouTube + nur gelegentlich. + +
+
+ Neue API + Über den /video/[id] Endpoint kann nun ein einzelnes Video abgerufen werden. +
+
+
diff --git a/src/psaggregator/src/routes/motivation/+page.svelte b/src/psaggregator/src/routes/motivation/+page.svelte index ee6def9..f4047e7 100644 --- a/src/psaggregator/src/routes/motivation/+page.svelte +++ b/src/psaggregator/src/routes/motivation/+page.svelte @@ -1,10 +1,10 @@ @@ -39,12 +39,12 @@
{#if KOFI_USERNAME} {/if} Open Source @@ -57,14 +57,14 @@ Wenn du Fragen hast, kannst du mich gerne via Mail erreichen.
- - +
diff --git a/src/psaggregator/src/routes/news/+page.svelte b/src/psaggregator/src/routes/news/+page.svelte index 9b02452..a7df3a4 100644 --- a/src/psaggregator/src/routes/news/+page.svelte +++ b/src/psaggregator/src/routes/news/+page.svelte @@ -9,7 +9,7 @@ -
+
diff --git a/src/psaggregator/src/routes/plan/+page.server.ts b/src/psaggregator/src/routes/plan/+page.server.ts index 2e0e59a..e48a94d 100644 --- a/src/psaggregator/src/routes/plan/+page.server.ts +++ b/src/psaggregator/src/routes/plan/+page.server.ts @@ -6,7 +6,7 @@ export async function load() { const upperBound = moment().endOf("day").toDate(); const lowerBound = moment().startOf("day").toDate(); - const today = await prisma.scheduledContentPiece.findMany({ + const today = (await prisma.scheduledContentPiece.findMany({ where: { type: { equals: "PSVideo" @@ -22,7 +22,7 @@ export async function load() { orderBy: { startDate: "asc" } - }) as ScheduledContentPiece[]; + })) as ScheduledContentPiece[]; return { today diff --git a/src/psaggregator/src/routes/plan/+page.svelte b/src/psaggregator/src/routes/plan/+page.svelte index 3afbf47..546cc8c 100644 --- a/src/psaggregator/src/routes/plan/+page.svelte +++ b/src/psaggregator/src/routes/plan/+page.svelte @@ -1,21 +1,23 @@ @@ -65,17 +67,13 @@ -

Uploadplan - {currentDate.format("DD MMMM YYYY")}

- { - const selectedDate = moment(e.target.value); - if (selectedDate.isAfter(moment(), "day")) { - return; - } - currentDate = selectedDate; - await loadData(currentDate.format("YYYY-MM-DD")); +

Uploadplan - {moment(currentDate.toDate("utc")).format("DD MMMM YYYY")}

+ { + setTimeout(async () => { + await loadData(); + }, 100); }} /> - { - const selectedDate = moment(e.target.value); - if (selectedDate.isAfter(moment(), "day")) { - return; - } - currentDate = selectedDate; - await loadData(currentDate.format("YYYY-MM-DD")); + { + setTimeout(async () => { + await loadData(); + }, 100); }} />
{/if}
-
- Auf dieser Seite kannst du alte Uploadpläne ansehen. - Mit dem Design bin ich hier noch nicht ganz zufrieden. - Gib mir gerne Feedback via Mail, Reddit, GitHub. -
{#if today != undefined} -
+
{#each today as content} {:else} diff --git a/src/psaggregator/src/routes/settings/+page.svelte b/src/psaggregator/src/routes/settings/+page.svelte index c2ecfce..b427741 100644 --- a/src/psaggregator/src/routes/settings/+page.svelte +++ b/src/psaggregator/src/routes/settings/+page.svelte @@ -1,5 +1,7 @@ - -

Einstellungen

Einstellungen werden lokal auf deinem Endgerät gespeichert und sind nur für dich sichtbar.
-
-
- -
Zeige Datumswerte in absoluter Form statt relativer Form an (z.B. 01.01.2021 statt vor 2 Tagen)
+
+
+ { + SHOW_ABSOLUTE_DATES.set(!$SHOW_ABSOLUTE_DATES); + if (browser) { + localStorage.setItem(SHOW_ABSOLUTE_DATES_KEY, $SHOW_ABSOLUTE_DATES.toString()); + } + }} /> +
+ +

+ Zeige Datumswerte in absoluter Form statt relativer Form an (z.B. 01.01.2021 statt vor 2 Tagen) +

+
-
- -
Zeige Videos in einer komplexen Ansicht an, die mehr Informationen enthält (betrifft Videos-Unterseite)
+
+ { + VIDEO_COMPLEXE_VIEW.set(!$VIDEO_COMPLEXE_VIEW); + if (browser) { + localStorage.setItem(VIDEO_COMPLEXE_VIEW_KEY, $VIDEO_COMPLEXE_VIEW.toString()); + } + }} /> +
+ +

+ Zeige Videos in einer komplexen Ansicht an, die mehr Informationen enthält (betrifft Videos-Unterseite) +

+
-
- -
- Soweit verfügbar, sind Videos mit einem Link zu YouTube versehen. Wenn diese Option deaktiviert ist, wird stattdessen auf - pietsmiet.de verlinkt. +
+ { + LINK_YOUTUBE.set(!$LINK_YOUTUBE); + if (browser) { + localStorage.setItem(LINK_YOUTUBE_KEY, $LINK_YOUTUBE.toString()); + } + }} /> +
+ +

+ Soweit verfügbar, sind Videos mit einem Link zu YouTube versehen. Wenn diese Option deaktiviert ist, wird stattdessen + auf pietsmiet.de verlinkt. +

diff --git a/src/psaggregator/src/routes/videos/+page.svelte b/src/psaggregator/src/routes/videos/+page.svelte index 7456da5..8163394 100644 --- a/src/psaggregator/src/routes/videos/+page.svelte +++ b/src/psaggregator/src/routes/videos/+page.svelte @@ -3,10 +3,11 @@ import type { PageData } from "./$types"; import moment from "moment"; import { browser } from "$app/environment"; - import { ProgressRadial, SlideToggle } from "@skeletonlabs/skeleton"; import PsVideo from "$lib/components/PSVideo.svelte"; import MediaQuery from "$lib/utils/MediaQuery.svelte"; import { LINK_YOUTUBE, LINK_YOUTUBE_KEY, VIDEO_COMPLEXE_VIEW, VIDEO_COMPLEXE_VIEW_KEY } from "../../config/config"; + import Checkbox from "$lib/components/ui/checkbox/checkbox.svelte"; + import Label from "$lib/components/ui/label/label.svelte"; export let data: PageData; @@ -81,26 +82,30 @@

Alle Videos

- { if (browser) { - localStorage.setItem(VIDEO_COMPLEXE_VIEW_KEY, e.target.checked.toString()); + setTimeout(() => { + localStorage.setItem(VIDEO_COMPLEXE_VIEW_KEY, $VIDEO_COMPLEXE_VIEW.toString()); + }, 1000); } }} /> - Komplexe Ansicht +
- { if (browser) { - localStorage.setItem(LINK_YOUTUBE_KEY, e.target.checked.toString()); + setTimeout(() => { + localStorage.setItem(LINK_YOUTUBE_KEY, $LINK_YOUTUBE.toString()); + }, 1000); } }} /> - YouTube-Verlinkung +
@@ -129,9 +134,7 @@ {/if} {/each} {#if loading} -
- -
+ loading... {/if}
diff --git a/src/psaggregator/tailwind.config.cjs b/src/psaggregator/tailwind.config.cjs deleted file mode 100644 index 15b6bd1..0000000 --- a/src/psaggregator/tailwind.config.cjs +++ /dev/null @@ -1,28 +0,0 @@ -/** @type {import('tailwindcss').Config}*/ - -const forms = require("@tailwindcss/forms"); -const skeleton = require("@skeletonlabs/tw-plugin").skeleton; -const join = require("path").join; -const dirname = require("path").dirname; - -const modulePath = require.resolve("@skeletonlabs/skeleton"); -const rootPath = dirname(modulePath); - -const config = { - content: [join("./src/**/*.{html,js,svelte,ts}"), join(rootPath, "**/*.{html,js,svelte,ts}")], - - theme: { - extend: {} - }, - - plugins: [ - forms, - skeleton({ - themes: { preset: ["rocket"] } - }) - ], - - darkMode: "class" -}; - -module.exports = config; \ No newline at end of file diff --git a/src/psaggregator/tailwind.config.js b/src/psaggregator/tailwind.config.js new file mode 100644 index 0000000..fa1cb36 --- /dev/null +++ b/src/psaggregator/tailwind.config.js @@ -0,0 +1,64 @@ +import { fontFamily } from "tailwindcss/defaultTheme"; + +/** @type {import('tailwindcss').Config} */ +const config = { + darkMode: ["class"], + content: ["./src/**/*.{html,js,svelte,ts}"], + safelist: ["dark"], + theme: { + container: { + center: true, + padding: "2rem", + screens: { + "2xl": "1400px" + } + }, + extend: { + colors: { + border: "hsl(var(--border) / )", + input: "hsl(var(--input) / )", + ring: "hsl(var(--ring) / )", + background: "hsl(var(--background) / )", + foreground: "hsl(var(--foreground) / )", + primary: { + DEFAULT: "hsl(var(--primary) / )", + foreground: "hsl(var(--primary-foreground) / )" + }, + secondary: { + DEFAULT: "hsl(var(--secondary) / )", + foreground: "hsl(var(--secondary-foreground) / )" + }, + destructive: { + DEFAULT: "hsl(var(--destructive) / )", + foreground: "hsl(var(--destructive-foreground) / )" + }, + muted: { + DEFAULT: "hsl(var(--muted) / )", + foreground: "hsl(var(--muted-foreground) / )" + }, + accent: { + DEFAULT: "hsl(var(--accent) / )", + foreground: "hsl(var(--accent-foreground) / )" + }, + popover: { + DEFAULT: "hsl(var(--popover) / )", + foreground: "hsl(var(--popover-foreground) / )" + }, + card: { + DEFAULT: "hsl(var(--card) / )", + foreground: "hsl(var(--card-foreground) / )" + } + }, + borderRadius: { + lg: "var(--radius)", + md: "calc(var(--radius) - 2px)", + sm: "calc(var(--radius) - 4px)" + }, + fontFamily: { + sans: [...fontFamily.sans] + } + } + }, +}; + +export default config; From ad269ef7269ba377d3415a76d10a641f598f41a2 Mon Sep 17 00:00:00 2001 From: zaanposni Date: Fri, 13 Sep 2024 21:52:43 +0200 Subject: [PATCH 2/6] reduce number of instagram imports to reduce spam --- src/dataimport/hello-cron | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/dataimport/hello-cron b/src/dataimport/hello-cron index c5d55ab..e6f7060 100644 --- a/src/dataimport/hello-cron +++ b/src/dataimport/hello-cron @@ -6,9 +6,9 @@ 10 * * * * . /root/project_env.sh; /usr/local/bin/python /app/youtube_video_linker.py >> /var/log/cron.log 2>&1 45 01 * * * . /root/project_env.sh; /usr/local/bin/python /app/instagram.py >> /var/log/cron.log 2>&1 33 09 * * * . /root/project_env.sh; /usr/local/bin/python /app/instagramstory.py >> /var/log/cron.log 2>&1 -44 15 * * * . /root/project_env.sh; /usr/local/bin/python /app/instagramstory.py >> /var/log/cron.log 2>&1 -55 20 * * * . /root/project_env.sh; /usr/local/bin/python /app/instagramstory.py >> /var/log/cron.log 2>&1 -30 * * * * . /root/project_env.sh; /usr/local/bin/python /app/instagramstorydelete.py >> /var/log/cron.log 2>&1 +# 44 15 * * * . /root/project_env.sh; /usr/local/bin/python /app/instagramstory.py >> /var/log/cron.log 2>&1 +# 55 20 * * * . /root/project_env.sh; /usr/local/bin/python /app/instagramstory.py >> /var/log/cron.log 2>&1 +30 5 1 * * . /root/project_env.sh; /usr/local/bin/python /app/instagramstorydelete.py >> /var/log/cron.log 2>&1 */15 * * * * . /root/project_env.sh; /usr/local/bin/python /app/reddit.py >> /var/log/cron.log 2>&1 */1 * * * * . /root/project_env.sh; /usr/local/bin/python /app/twitch.py >> /var/log/cron.log 2>&1 # 10 1 * * * . /root/project_env.sh; /usr/local/bin/python /app/informationopenaianalyze.py >> /var/log/cron.log 2>&1 From e7b246aa74aed7a4d98df3299fa8eb9503945f83 Mon Sep 17 00:00:00 2001 From: zaanposni Date: Fri, 13 Sep 2024 21:54:43 +0200 Subject: [PATCH 3/6] npm audit fix --- src/psaggregator/package-lock.json | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/src/psaggregator/package-lock.json b/src/psaggregator/package-lock.json index f6f1060..812592b 100644 --- a/src/psaggregator/package-lock.json +++ b/src/psaggregator/package-lock.json @@ -1693,11 +1693,11 @@ } }, "node_modules/axobject-query": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.2.1.tgz", - "integrity": "sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==", - "dependencies": { - "dequal": "^2.0.3" + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", + "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", + "engines": { + "node": ">= 0.4" } }, "node_modules/balanced-match": { @@ -4312,16 +4312,17 @@ } }, "node_modules/svelte": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/svelte/-/svelte-4.2.8.tgz", - "integrity": "sha512-hU6dh1MPl8gh6klQZwK/n73GiAHiR95IkFsesLPbMeEZi36ydaXL/ZAb4g9sayT0MXzpxyZjR28yderJHxcmYA==", + "version": "4.2.19", + "resolved": "https://registry.npmjs.org/svelte/-/svelte-4.2.19.tgz", + "integrity": "sha512-IY1rnGr6izd10B0A8LqsBfmlT5OILVuZ7XsI0vdGPEvuonFV7NYEUK4dAkm9Zg2q0Um92kYjTpS1CAP3Nh/KWw==", "dependencies": { "@ampproject/remapping": "^2.2.1", "@jridgewell/sourcemap-codec": "^1.4.15", "@jridgewell/trace-mapping": "^0.3.18", + "@types/estree": "^1.0.1", "acorn": "^8.9.0", "aria-query": "^5.3.0", - "axobject-query": "^3.2.1", + "axobject-query": "^4.0.0", "code-red": "^1.0.3", "css-tree": "^2.3.1", "estree-walker": "^3.0.3", From 6eb24a701fa939ed6d7b349f744a204a79ffcff7 Mon Sep 17 00:00:00 2001 From: zaanposni Date: Fri, 13 Sep 2024 22:06:25 +0200 Subject: [PATCH 4/6] improved logging for dataimport jobs --- src/dataimport/informationopenaianalyze.py | 1 + src/dataimport/twitch.py | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/src/dataimport/informationopenaianalyze.py b/src/dataimport/informationopenaianalyze.py index 4b4de39..cca639a 100644 --- a/src/dataimport/informationopenaianalyze.py +++ b/src/dataimport/informationopenaianalyze.py @@ -5,6 +5,7 @@ from uuid import uuid4 from datetime import datetime, timedelta, timezone +from rich import print from rich.console import Console from databases import Database from openai import OpenAI diff --git a/src/dataimport/twitch.py b/src/dataimport/twitch.py index 5b442f2..bb46ad8 100644 --- a/src/dataimport/twitch.py +++ b/src/dataimport/twitch.py @@ -2,12 +2,17 @@ import asyncio from uuid import uuid4 +from rich import print from rich.console import Console from databases import Database from twitchAPI.twitch import Twitch from twitchAPI.helper import first +if not os.getenv("TWITCH_CLIENT_ID") or not os.getenv("TWITCH_CLIENT_SECRET"): + print("TWITCH_CLIENT_ID or TWITCH_CLIENT_SECRET not set", style="bold red") + exit(1) + console = Console() From 5127458de8eb366a331038170a8a3d0c6760698e Mon Sep 17 00:00:00 2001 From: zaanposni Date: Sat, 14 Sep 2024 15:59:44 +0200 Subject: [PATCH 5/6] added random video page and api --- .../src/lib/components/BigHeader.svelte | 1 + .../src/lib/components/Footer.svelte | 27 ++++++++---- .../src/lib/components/NewsSmall.svelte | 12 ++---- src/psaggregator/src/routes/api/+page.svelte | 8 ++++ .../src/routes/api/randomvideo/+server.ts | 29 +++++++++++++ .../src/routes/randomvideo/+page.server.ts | 42 +++++++++++++++++++ .../src/routes/randomvideo/+page.svelte | 29 +++++++++++++ 7 files changed, 131 insertions(+), 17 deletions(-) create mode 100644 src/psaggregator/src/routes/api/randomvideo/+server.ts create mode 100644 src/psaggregator/src/routes/randomvideo/+page.server.ts create mode 100644 src/psaggregator/src/routes/randomvideo/+page.svelte diff --git a/src/psaggregator/src/lib/components/BigHeader.svelte b/src/psaggregator/src/lib/components/BigHeader.svelte index 38a5792..23952c3 100644 --- a/src/psaggregator/src/lib/components/BigHeader.svelte +++ b/src/psaggregator/src/lib/components/BigHeader.svelte @@ -20,6 +20,7 @@ Uploadplan Videos News + Zufall API Motivation Einstellungen diff --git a/src/psaggregator/src/lib/components/Footer.svelte b/src/psaggregator/src/lib/components/Footer.svelte index 90d2d9a..5c52ab8 100644 --- a/src/psaggregator/src/lib/components/Footer.svelte +++ b/src/psaggregator/src/lib/components/Footer.svelte @@ -2,7 +2,8 @@ import MediaQuery from "$lib/utils/MediaQuery.svelte"; import { GITHUB_AUTHOR_URL, GITHUB_URL, LEGAL_URL, MAIL_TO_URL } from "../../config/config"; import { version } from "$app/environment"; - import { Api, Favorite, Home, Document, Thumbnail_2, Settings, EventSchedule } from "carbon-icons-svelte"; + import { Api, Favorite, Home, Document, Thumbnail_2, Settings, EventSchedule, Binoculars } from "carbon-icons-svelte"; + import { page } from "$app/stores";