scripts
src
lib
Components
Items
Layout
Modals
UI
User
Utils
routes
[kind]
cast
feed
login
review
search
settings
user
···
1
1
-
[
2
2
-
"did:plc:257wekqxg4hyapkq6k47igmp",
3
3
-
"did:plc:wfml3smwyvohotnywklys5uq",
4
4
-
"did:plc:myrtyr2rsjiivzlp5m6qevv5",
5
5
-
"did:plc:xv2x4dimpe3zukzuynblaiyt",
6
6
-
"did:plc:haldrwdq4aea5klterbxzsfs",
7
7
-
"did:plc:izttpdp3l6vss5crelt5kcux",
8
8
-
"did:plc:c764uyv2vgzswy5gpc4jgknf",
9
9
-
"did:plc:2huehxznewvgzh3vknb36x5z",
10
10
-
"did:plc:46c3ur7daizungsgji73qfky",
11
11
-
"did:plc:sjxrdgjiotxnk6wapajdbn55",
12
12
-
"did:plc:6x3sa4qcuhtc4yky2f6eu2ki",
13
13
-
"did:plc:gysemcjbbnjru4f7reznddpk"
14
14
-
]
···
1
1
<script lang="ts">
2
2
-
import { cn } from '../utils';
2
2
+
import { cn } from '$lib/utils';
3
3
4
4
const { children, class: className }: { children: () => any; class?: string } = $props();
5
5
</script>
···
1
1
<script lang="ts">
2
2
-
import { cn } from '../utils';
2
2
+
import { cn } from '$lib/utils';
3
3
import ItemCard from './ItemCard.svelte';
4
4
5
5
const {
···
1
1
<script lang="ts">
2
2
-
import { cn } from '../utils';
2
2
+
import { cn } from '$lib/utils';
3
3
import ItemCard from './ItemCard.svelte';
4
4
5
5
const {
···
1
1
<script lang="ts">
2
2
-
import { cn } from '../utils';
2
2
+
import { cn } from '$lib/utils';
3
3
4
4
let { class: className }: { class: string } = $props();
5
5
</script>
···
1
1
<script lang="ts">
2
2
import { crosspostModal, rateMovieModal, settings, watchedItems } from '$lib/state.svelte';
3
3
import { toast } from 'svelte-sonner';
4
4
-
import Rating from './Rating.svelte';
5
5
-
import SearchCombobox from './SearchCombobox.svelte';
4
4
+
import Rating from '../Items/Rating.svelte';
5
5
+
import SearchCombobox from '../UI/SearchCombobox.svelte';
6
6
7
7
let rating = $state(rateMovieModal.selectedItem.currentRating ?? 0);
8
8
let review = $state(rateMovieModal.selectedItem.currentReview ?? '');
···
2
2
import type { MainRecord } from '$lib/db';
3
3
import { toast } from 'svelte-sonner';
4
4
import Rating from './Rating.svelte';
5
5
-
import RelativeTime from './relative-time/RelativeTime.svelte';
5
5
+
import RelativeTime from '../Utils/relative-time/RelativeTime.svelte';
6
6
import { nameToId } from '$lib/utils';
7
7
-
import OptionButton from './OptionButton.svelte';
7
7
+
import OptionButton from '../Modals/OptionMenu.svelte';
8
8
// import { crosspostModal } from '$lib/state.svelte';
9
9
10
10
let { data, showMovieDetails = true }: { data: MainRecord; showMovieDetails?: boolean } =
···
1
1
<script lang="ts">
2
2
-
import { cn } from '../utils';
2
2
+
import { cn } from '$lib/utils';
3
3
import Plyr from 'plyr';
4
4
import { videoPlayer } from '$lib/state.svelte';
5
5
···
1
1
<script lang="ts">
2
2
import '../app.css';
3
3
4
4
-
import Footer from '$lib/Components/Footer.svelte';
4
4
+
import Footer from '$lib/Components/Layout/Footer.svelte';
5
5
import { toast, Toaster } from 'svelte-sonner';
6
6
import { settings, user, watchedItems } from '$lib/state.svelte';
7
7
-
import RateMovieModal from '$lib/Components/RateMovieModal.svelte';
7
7
+
import RateMovieModal from '$lib/Components/Modals/RateMovieModal.svelte';
8
8
9
9
-
import LoginModal from '$lib/Components/LoginModal.svelte';
10
10
-
import Sidebar from '$lib/Components/Sidebar.svelte';
11
11
-
import VideoPlayer from '$lib/Components/VideoPlayer.svelte';
9
9
+
import LoginModal from '$lib/Components/Modals/LoginModal.svelte';
10
10
+
import Sidebar from '$lib/Components/Layout/Sidebar.svelte';
11
11
+
import VideoPlayer from '$lib/Components/Utils/VideoPlayer.svelte';
12
12
13
13
import { onNavigate } from '$app/navigation';
14
14
import { onMount } from 'svelte';
15
15
import { navigating } from '$app/stores';
16
16
import { slide } from 'svelte/transition';
17
17
import { expoOut } from 'svelte/easing';
18
18
-
import CrosspostModal from '$lib/Components/CrosspostModal.svelte';
18
18
+
import CrosspostModal from '$lib/Components/Modals/CrosspostModal.svelte';
19
19
20
20
let { children, data } = $props();
21
21
···
1
1
<script>
2
2
-
import BaseHeadTags from '$lib/Components/BaseHeadTags.svelte';
3
3
-
import Container from '$lib/Components/Container.svelte';
4
4
-
import ReviewList from '$lib/Components/ReviewList.svelte';
2
2
+
import BaseHeadTags from '$lib/Components/Layout/BaseHeadTags.svelte';
3
3
+
import Container from '$lib/Components/Layout/Container.svelte';
4
4
+
import ReviewList from '$lib/Components/Items/ReviewList.svelte';
5
5
import { rateMovieModal, showLoginModal } from '$lib/state.svelte';
6
6
7
7
const { data } = $props();
···
3
3
import { cn, nameToId } from '$lib/utils';
4
4
import { rateMovieModal, videoPlayer, watchedItems } from '$lib/state.svelte';
5
5
6
6
-
import Container from '$lib/Components/Container.svelte';
7
7
-
import ItemsList from '$lib/Components/ItemsList.svelte';
8
8
-
import ReviewList from '$lib/Components/ReviewList.svelte';
9
9
-
import Avatar from '$lib/Components/Avatar.svelte';
6
6
+
import Container from '$lib/Components/Layout/Container.svelte';
7
7
+
import ItemsList from '$lib/Components/Items/ItemsList.svelte';
8
8
+
import ReviewList from '$lib/Components/Items/ReviewList.svelte';
9
9
+
import Avatar from '$lib/Components/User/Avatar.svelte';
10
10
import { page } from '$app/stores';
11
11
12
12
let { data }: { data: PageData } = $props();
···
1
1
<script lang="ts">
2
2
-
import Avatar from '$lib/Components/Avatar.svelte';
3
3
-
import BaseHeadTags from '$lib/Components/BaseHeadTags.svelte';
4
4
-
import Container from '$lib/Components/Container.svelte';
5
5
-
import ItemsGrid from '$lib/Components/ItemsGrid.svelte';
6
6
-
import { onMount } from 'svelte';
2
2
+
import Avatar from '$lib/Components/User/Avatar.svelte';
3
3
+
import BaseHeadTags from '$lib/Components/Layout/BaseHeadTags.svelte';
4
4
+
import Container from '$lib/Components/Layout/Container.svelte';
5
5
+
import ItemsGrid from '$lib/Components/Items/ItemsGrid.svelte';
7
6
8
7
let { data } = $props();
9
8
···
1
1
<script lang="ts">
2
2
-
import Container from '$lib/Components/Container.svelte';
3
3
-
import { onMount } from 'svelte';
4
2
import { type PageData } from './$types';
5
5
-
import ReviewList from '$lib/Components/ReviewList.svelte';
6
6
-
import BaseHeadTags from '$lib/Components/BaseHeadTags.svelte';
3
3
+
4
4
+
import Container from '$lib/Components/Layout/Container.svelte';
5
5
+
import ReviewList from '$lib/Components/Items/ReviewList.svelte';
6
6
+
import BaseHeadTags from '$lib/Components/Layout/BaseHeadTags.svelte';
7
7
8
8
let { data }: { data: PageData } = $props();
9
9
</script>
···
1
1
-
import { redirect } from '@sveltejs/kit';
2
2
-
3
3
-
import type { Actions, PageServerLoad } from './$types';
4
4
-
5
5
-
export const load: PageServerLoad = async (event) => {
6
6
-
if (event.locals.user) {
7
7
-
return redirect(302, '/user/' + event.locals.user.handle);
8
8
-
}
9
9
-
return {};
10
10
-
};
11
11
-
12
12
-
export const actions: Actions = {
13
13
-
login: async (event) => {}
14
14
-
};
···
1
1
-
<script lang="ts">
2
2
-
import type { ActionData } from './$types';
3
3
-
import Logo from '$lib/Components/Logo.svelte';
4
4
-
5
5
-
let { form }: { form: ActionData } = $props();
6
6
-
</script>
7
7
-
8
8
-
<div class="flex min-h-screen flex-col items-center justify-center px-6 py-12 lg:px-8">
9
9
-
<div class="sm:mx-auto sm:w-full sm:max-w-sm">
10
10
-
<Logo class="mx-auto size-10" />
11
11
-
<h2 class="mt-10 text-center text-2xl/9 font-bold tracking-tight text-white">login/register</h2>
12
12
-
</div>
13
13
-
14
14
-
<div class="mt-10 w-full sm:mx-auto sm:max-w-sm">
15
15
-
<form class="space-y-6" action="?/login" method="POST">
16
16
-
<p class="min-h-6 font-semibold lowercase text-red-500">{form?.message ?? ''}</p>
17
17
-
<div>
18
18
-
<label for="username" class="block text-sm/6 font-medium text-white">username</label>
19
19
-
<div class="mt-2">
20
20
-
<input
21
21
-
id="username"
22
22
-
name="username"
23
23
-
type="text"
24
24
-
autocomplete="username"
25
25
-
required
26
26
-
class="block w-full rounded-xl border-0 bg-white/5 py-1.5 text-white shadow-sm ring-1 ring-inset ring-white/10 focus:ring-2 focus:ring-inset focus:ring-accent-500 sm:text-sm/6"
27
27
-
/>
28
28
-
</div>
29
29
-
</div>
30
30
-
31
31
-
<div>
32
32
-
<div class="flex items-center justify-between">
33
33
-
<label for="password" class="block text-sm/6 font-medium text-white">password</label>
34
34
-
</div>
35
35
-
<div class="mt-2">
36
36
-
<input
37
37
-
id="password"
38
38
-
name="password"
39
39
-
type="password"
40
40
-
autocomplete="current-password"
41
41
-
required
42
42
-
class="block w-full rounded-xl border-0 bg-white/5 py-1.5 text-white shadow-sm ring-1 ring-inset ring-white/10 focus:ring-2 focus:ring-inset focus:ring-accent-500 sm:text-sm/6"
43
43
-
/>
44
44
-
</div>
45
45
-
</div>
46
46
-
47
47
-
<div>
48
48
-
<button
49
49
-
type="submit"
50
50
-
class="flex w-full justify-center rounded-xl bg-accent-500 px-3 py-1.5 text-sm/6 font-semibold text-white shadow-sm hover:bg-accent-400 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-accent-500"
51
51
-
>login</button
52
52
-
>
53
53
-
<button
54
54
-
formaction="?/register"
55
55
-
type="submit"
56
56
-
class="mt-4 flex w-full justify-center rounded-xl bg-white/10 px-3 py-1.5 text-sm/6 font-semibold text-white shadow-sm hover:bg-white/20 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-accent-500"
57
57
-
>register</button
58
58
-
>
59
59
-
</div>
60
60
-
</form>
61
61
-
</div>
62
62
-
</div>
···
1
1
<script lang="ts">
2
2
-
import ReviewCard from '$lib/Components/ReviewCard.svelte';
3
3
-
import Container from '$lib/Components/Container.svelte';
2
2
+
import ReviewCard from '$lib/Components/Items/ReviewCard.svelte';
3
3
+
import Container from '$lib/Components/Layout/Container.svelte';
4
4
import { page } from '$app/stores';
5
5
6
6
let { data } = $props();
···
4
4
import { error, type RequestHandler } from '@sveltejs/kit';
5
5
6
6
const template = (data: MainRecord) => {
7
7
-
8
7
const backdrop = data.record.metadata?.backdrop_path;
9
8
const poster = data.record.metadata?.poster_path;
10
9
···
1
1
import { searchMulti } from '$lib/server/movies';
2
2
-
import { redirect } from '@sveltejs/kit';
3
2
4
3
/** @type {import('./$types').PageServerLoad} */
5
4
export async function load(event) {
···
1
1
<script lang="ts">
2
2
-
import ItemsGrid from '$lib/Components/ItemsGrid.svelte';
3
3
-
import Container from '$lib/Components/Container.svelte';
4
4
-
import BaseHeadTags from '$lib/Components/BaseHeadTags.svelte';
2
2
+
import ItemsGrid from '$lib/Components/Items/ItemsGrid.svelte';
3
3
+
import Container from '$lib/Components/Layout/Container.svelte';
4
4
+
import BaseHeadTags from '$lib/Components/Layout/BaseHeadTags.svelte';
5
5
6
6
import { type PageData } from './$types';
7
7
let { data }: { data: PageData } = $props();
···
4
4
5
5
import availableRegions from './available_regions.json';
6
6
import { onMount } from 'svelte';
7
7
-
import { settings, user } from '$lib/state.svelte';
8
8
-
import Note from '$lib/Components/Note.svelte';
7
7
+
import Note from '$lib/Components/Items/Note.svelte';
9
8
10
9
export let data;
11
10
···
1
1
<script lang="ts">
2
2
-
import BaseHeadTags from '$lib/Components/BaseHeadTags.svelte';
3
3
-
import Container from '$lib/Components/Container.svelte';
4
4
-
import Profile from '$lib/Components/Profile.svelte';
5
5
-
import ReviewList from '$lib/Components/ReviewList.svelte';
2
2
+
import BaseHeadTags from '$lib/Components/Layout/BaseHeadTags.svelte';
3
3
+
import Container from '$lib/Components/Layout/Container.svelte';
4
4
+
import Profile from '$lib/Components/User/Profile.svelte';
5
5
+
import ReviewList from '$lib/Components/Items/ReviewList.svelte';
6
6
7
7
let { data } = $props();
8
8
</script>