changes on main

This commit is contained in:
Luke Hagar
2025-05-27 17:36:23 -05:00
parent a5a3ed17d8
commit 6cc7266a92
14 changed files with 38 additions and 80 deletions

60
package-lock.json generated
View File

@@ -921,19 +921,6 @@
}
}
},
"node_modules/@rollup/pluginutils/node_modules/picomatch": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
"integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/jonschlinkert"
}
},
"node_modules/@rollup/rollup-android-arm-eabi": {
"version": "4.41.1",
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.41.1.tgz",
@@ -5403,6 +5390,19 @@
"node": ">=8.6"
}
},
"node_modules/micromatch/node_modules/picomatch": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
"integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=8.6"
},
"funding": {
"url": "https://github.com/sponsors/jonschlinkert"
}
},
"node_modules/miller-rabin": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz",
@@ -5850,13 +5850,13 @@
"license": "ISC"
},
"node_modules/picomatch": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
"integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
"integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=8.6"
"node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/jonschlinkert"
@@ -7176,19 +7176,6 @@
"url": "https://github.com/sponsors/SuperchupuDev"
}
},
"node_modules/tinyglobby/node_modules/picomatch": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
"integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/jonschlinkert"
}
},
"node_modules/to-regex-range": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
@@ -7657,19 +7644,6 @@
"vite": "^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0"
}
},
"node_modules/vite/node_modules/picomatch": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
"integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/jonschlinkert"
}
},
"node_modules/vitefu": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/vitefu/-/vitefu-1.0.6.tgz",

View File

@@ -8,7 +8,7 @@
<script>
// Set theme immediately to prevent flashing
(function() {
const colorTheme = localStorage.getItem('colorTheme') || 'skeleton';
const colorTheme = localStorage.getItem('colorTheme') || 'legacy';
const darkMode = localStorage.getItem('darkMode') !== 'false'; // default to true
// Handle dark mode class on html element

View File

@@ -3,7 +3,7 @@
import { toaster } from '$lib';
import ThemeSwitch from '$lib/components/ThemeSwitch.svelte';
import { Avatar, Modal, Toaster } from '@skeletonlabs/skeleton-svelte';
import { BookOpen, DollarSign, Home, LayoutDashboard, LogOut, User } from 'lucide-svelte';
import { BookOpen, DollarSign, Home, LayoutDashboard, LogOut, User } from '@lucide/svelte';
import 'prism-themes/themes/prism-vsc-dark-plus.css';
import { onMount } from 'svelte';
import '../app.css';

View File

@@ -1,13 +1,8 @@
<script lang="ts">
// Icons
import { Rocket, Database, Zap, Star, Users, GitBranch } from 'lucide-svelte';
import { Rocket, Database, Zap, Star, Users, GitBranch } from '@lucide/svelte';
interface Props {
// Props are passed from the root +layout.svelte
data: any; // Contains session from +layout.server.ts, then updated by +layout.svelte
}
let { data }: Props = $props();
let { data } = $props();
</script>
<div class="container mx-auto py-20 space-y-20">

View File

@@ -2,8 +2,7 @@
import { supabase } from '$lib/supabaseClient';
import { goto } from '$app/navigation';
import { toaster } from '$lib';
import { Mail, Lock, LogIn, UserPlus, Github, Chrome, MessageCircle, Twitter, Star, Eye, EyeOff } from 'lucide-svelte';
import { page } from '$app/stores';
import { Mail, Lock, LogIn, UserPlus, Github, Chrome, MessageCircle, Twitter, Star, Eye, EyeOff } from '@lucide/svelte';
import { onMount } from 'svelte';
let activeTab = $state('login'); // 'login' or 'signup'

View File

@@ -1,5 +1,5 @@
import { redirect } from '@sveltejs/kit';
export function load() {
export const load = () => {
throw redirect(302, '/auth');
}
};

View File

@@ -1,8 +1,7 @@
// src/routes/auth/logout/+page.server.ts
import { redirect } from '@sveltejs/kit';
import type { Actions } from './$types';
export const actions: Actions = {
export const actions = {
default: async ({ locals: { supabase } }) => {
await supabase.auth.signOut();
throw redirect(303, '/');

View File

@@ -1,7 +1,7 @@
<script lang="ts">
import { supabase } from '$lib/supabaseClient';
import { toaster } from '$lib';
import { Mail, Send, ArrowLeft, KeyRound } from 'lucide-svelte';
import { Mail, Send, ArrowLeft, KeyRound } from '@lucide/svelte';
let email = $state('');
let loading = $state(false);

View File

@@ -1,8 +1,9 @@
<script lang="ts">
import { supabase } from '$lib/supabaseClient';
import { goto } from '$app/navigation';
import { toaster } from '$lib';
import { Lock, Save, Eye, EyeOff, KeyRound } from 'lucide-svelte';
import { supabase } from '$lib/supabaseClient';
import { Eye, EyeOff, KeyRound, Lock, Save } from '@lucide/svelte';
import type { Session } from '@supabase/supabase-js';
import { onMount } from 'svelte';
let password = $state('');
@@ -10,7 +11,7 @@
let loading = $state(false);
let showPassword = $state(false);
let showConfirmPassword = $state(false);
let session = $state(null);
let session = $state<Session | null>(null);
onMount(async () => {
// Check if user is authenticated (came from reset link)
@@ -63,7 +64,7 @@
description: 'Your password has been successfully updated.'
});
goto('/dashboard');
goto('/app/dashboard');
} catch (error: any) {
toaster.create({
type: 'error',

View File

@@ -1,13 +1,7 @@
<script lang="ts">
import type { PageData } from './$types';
import type { BlogPost } from '$lib/blog';
import { Calendar, User, Tag, BookOpen, Star } from 'lucide-svelte';
import { Calendar, User, Tag, BookOpen, Star } from '@lucide/svelte';
interface Props {
data: PageData & { posts: BlogPost[] };
}
let { data }: Props = $props();
let { data } = $props();
const formatDate = (dateString: string) => {
return new Date(dateString).toLocaleDateString('en-US', {

View File

@@ -1,5 +1,5 @@
// src/routes/blog/[slug]/+page.server.ts
import { getAllPosts, getPostBySlug } from '$lib/blog';
import { getPostBySlug } from '$lib/blog';
import { error } from '@sveltejs/kit';
export const load = async ({ params }) => {

View File

@@ -2,13 +2,9 @@
import type { PageData } from './$types';
import type { BlogPost } from '$lib/blog';
import { onMount } from 'svelte';
import { Calendar, User, Tag, Share2, ArrowLeft, Star, Twitter, Linkedin } from 'lucide-svelte';
import { Calendar, User, Tag, Share2, ArrowLeft, Star, Twitter, Linkedin } from '@lucide/svelte';
interface Props {
data: PageData & { post: BlogPost; slug: string };
}
let { data }: Props = $props();
let { data } = $props();
let post = $derived(data.post);
let component: any = $state(null);
let loading = $state(true);

View File

@@ -1,5 +1,5 @@
<script lang="ts">
import { Mail, Phone, MapPin, Send, MessageCircle, Clock } from 'lucide-svelte';
import { Mail, Phone, MapPin, Send, MessageCircle, Clock } from '@lucide/svelte';
import { toaster } from '$lib';
let formData = $state({

View File

@@ -1,6 +1,6 @@
<script lang="ts">
// Icons
import { Check, X, Star, Zap, Crown, Mail } from 'lucide-svelte';
import { Check, X, Star, Zap, Crown, Mail } from '@lucide/svelte';
interface Props {
// Assuming session might be useful here, though not directly used in this basic structure