initial commit
linter / quality (push) Has been cancelled
tests / ci (8.3) (push) Has been cancelled
tests / ci (8.4) (push) Has been cancelled
tests / ci (8.5) (push) Has been cancelled

This commit is contained in:
2026-04-09 19:53:31 +02:00
commit c178fab470
307 changed files with 30669 additions and 0 deletions
@@ -0,0 +1,50 @@
<script setup lang="ts">
import { Link } from '@inertiajs/vue3';
import AppLogoIcon from '@/components/AppLogoIcon.vue';
import {
Card,
CardContent,
CardDescription,
CardHeader,
CardTitle,
} from '@/components/ui/card';
import { home } from '@/routes';
defineProps<{
title?: string;
description?: string;
}>();
</script>
<template>
<div
class="flex min-h-svh flex-col items-center justify-center gap-6 bg-muted p-6 md:p-10"
>
<div class="flex w-full max-w-md flex-col gap-6">
<Link
:href="home()"
class="flex items-center gap-2 self-center font-medium"
>
<div class="flex h-9 w-9 items-center justify-center">
<AppLogoIcon
class="size-9 fill-current text-black dark:text-white"
/>
</div>
</Link>
<div class="flex flex-col gap-6">
<Card class="rounded-xl">
<CardHeader class="px-10 pt-8 pb-0 text-center">
<CardTitle class="text-xl">{{ title }}</CardTitle>
<CardDescription>
{{ description }}
</CardDescription>
</CardHeader>
<CardContent class="px-10 py-8">
<slot />
</CardContent>
</Card>
</div>
</div>
</div>
</template>
@@ -0,0 +1,39 @@
<script setup lang="ts">
import { Link } from '@inertiajs/vue3';
import { home } from '@/routes';
defineProps<{
title?: string;
description?: string;
}>();
</script>
<template>
<div class="min-h-screen bg-[#020617] text-white flex flex-col justify-center items-center relative overflow-hidden">
<!-- Background Stars (simple CSS version to avoid canvas logic here) -->
<div class="fixed inset-0 w-full h-full z-0 bg-[radial-gradient(circle_at_center,#0f172a_0%,#020617_100%)]"></div>
<div class="absolute w-[800px] h-[800px] rounded-full bg-purple-600/10 blur-[150px] -top-64 -right-64 z-0 pointer-events-none"></div>
<div class="absolute w-[600px] h-[600px] rounded-full bg-blue-600/10 blur-[150px] -bottom-64 -left-64 z-0 pointer-events-none"></div>
<div class="w-full max-w-md relative z-10 p-8 bg-gray-900/60 backdrop-blur-xl border border-white/10 rounded-3xl shadow-2xl">
<div class="flex flex-col gap-8">
<div class="flex flex-col items-center gap-4">
<Link
:href="home()"
class="text-2xl font-black italic tracking-tighter uppercase text-white hover:opacity-80 transition-opacity"
>
BRATANBONUS.NET
</Link>
<div class="space-y-2 text-center mt-4">
<h1 class="text-2xl font-bold">{{ title }}</h1>
<p class="text-center text-sm text-gray-400">
{{ description }}
</p>
</div>
</div>
<slot />
</div>
</div>
</div>
</template>
@@ -0,0 +1,47 @@
<script setup lang="ts">
import { Link, usePage } from '@inertiajs/vue3';
import AppLogoIcon from '@/components/AppLogoIcon.vue';
import { home } from '@/routes';
const page = usePage();
const name = page.props.name;
defineProps<{
title?: string;
description?: string;
}>();
</script>
<template>
<div
class="relative grid h-dvh flex-col items-center justify-center px-8 sm:px-0 lg:max-w-none lg:grid-cols-2 lg:px-0"
>
<div
class="relative hidden h-full flex-col bg-muted p-10 text-white lg:flex dark:border-r"
>
<div class="absolute inset-0 bg-zinc-900" />
<Link
:href="home()"
class="relative z-20 flex items-center text-lg font-medium"
>
<AppLogoIcon class="mr-2 size-8 fill-current text-white" />
{{ name }}
</Link>
</div>
<div class="lg:p-8">
<div
class="mx-auto flex w-full flex-col justify-center space-y-6 sm:w-[350px]"
>
<div class="flex flex-col space-y-2 text-center">
<h1 class="text-xl font-medium tracking-tight" v-if="title">
{{ title }}
</h1>
<p class="text-sm text-muted-foreground" v-if="description">
{{ description }}
</p>
</div>
<slot />
</div>
</div>
</div>
</template>