Update package-lock.json and package.json to include 'globals' dependency and improve code formatting in various components for better readability.
Some checks failed
Code Analysis (JS/Vue) / analyze (push) Failing after 54s

This commit is contained in:
Torsten Schulz (local)
2025-12-20 10:17:16 +01:00
parent 861802b716
commit b20b89d333
72 changed files with 5338 additions and 2008 deletions

View File

@@ -1,5 +1,8 @@
<template>
<section id="contact" class="py-16 sm:py-20 bg-white">
<section
id="contact"
class="py-16 sm:py-20 bg-white"
>
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="text-center mb-16">
<h2 class="text-4xl sm:text-5xl font-display font-bold text-gray-900 mb-4">
@@ -20,13 +23,21 @@
class="flex items-start space-x-4 bg-gray-50 p-6 rounded-xl hover:shadow-lg transition-shadow"
>
<div :class="['flex-shrink-0 w-12 h-12 bg-gradient-to-br rounded-lg flex items-center justify-center', info.color]">
<component :is="info.icon" :size="24" class="text-white" />
<component
:is="info.icon"
:size="24"
class="text-white"
/>
</div>
<div>
<h3 class="font-display font-bold text-gray-900 mb-2">
{{ info.title }}
</h3>
<p v-for="(line, i) in info.content" :key="i" class="text-gray-600">
<p
v-for="(line, i) in info.content"
:key="i"
class="text-gray-600"
>
{{ line }}
</p>
</div>
@@ -61,60 +72,78 @@
<h3 class="text-2xl font-display font-bold text-gray-900 mb-6">
Senden Sie uns eine Nachricht
</h3>
<form class="space-y-4" @submit.prevent="sendEmail">
<form
class="space-y-4"
@submit.prevent="sendEmail"
>
<div>
<label for="name" class="block text-sm font-medium text-gray-700 mb-1">
<label
for="name"
class="block text-sm font-medium text-gray-700 mb-1"
>
Name *
</label>
<input
type="text"
id="name"
v-model="formData.name"
type="text"
required
class="w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-primary-500 focus:border-transparent transition-all"
placeholder="Ihr Name"
/>
>
</div>
<div>
<label for="email" class="block text-sm font-medium text-gray-700 mb-1">
<label
for="email"
class="block text-sm font-medium text-gray-700 mb-1"
>
E-Mail *
</label>
<input
type="email"
id="email"
v-model="formData.email"
type="email"
required
class="w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-primary-500 focus:border-transparent transition-all"
placeholder="ihre@email.de"
/>
>
</div>
<div>
<label for="phone" class="block text-sm font-medium text-gray-700 mb-1">
<label
for="phone"
class="block text-sm font-medium text-gray-700 mb-1"
>
Telefon
</label>
<input
type="tel"
id="phone"
v-model="formData.phone"
type="tel"
class="w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-primary-500 focus:border-transparent transition-all"
placeholder="+49 123 456789"
/>
>
</div>
<div>
<label for="subject" class="block text-sm font-medium text-gray-700 mb-1">
<label
for="subject"
class="block text-sm font-medium text-gray-700 mb-1"
>
Betreff *
</label>
<input
type="text"
id="subject"
v-model="formData.subject"
type="text"
required
class="w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-primary-500 focus:border-transparent transition-all"
placeholder="Worum geht es?"
/>
>
</div>
<div>
<label for="message" class="block text-sm font-medium text-gray-700 mb-1">
<label
for="message"
class="block text-sm font-medium text-gray-700 mb-1"
>
Nachricht *
</label>
<textarea
@@ -127,11 +156,26 @@
/>
</div>
<!-- Status Message -->
<div v-if="submitStatus" class="p-4 rounded-lg" :class="submitStatus === 'success' ? 'bg-green-50 border border-green-200' : 'bg-red-50 border border-red-200'">
<div
v-if="submitStatus"
class="p-4 rounded-lg"
:class="submitStatus === 'success' ? 'bg-green-50 border border-green-200' : 'bg-red-50 border border-red-200'"
>
<div class="flex items-center">
<CheckCircle v-if="submitStatus === 'success'" :size="20" class="text-green-600 mr-2" />
<AlertCircle v-else :size="20" class="text-red-600 mr-2" />
<p :class="submitStatus === 'success' ? 'text-green-800' : 'text-red-800'" class="text-sm font-medium">
<CheckCircle
v-if="submitStatus === 'success'"
:size="20"
class="text-green-600 mr-2"
/>
<AlertCircle
v-else
:size="20"
class="text-red-600 mr-2"
/>
<p
:class="submitStatus === 'success' ? 'text-green-800' : 'text-red-800'"
class="text-sm font-medium"
>
{{ submitMessage }}
</p>
</div>
@@ -142,8 +186,15 @@
:disabled="isSubmitting"
class="w-full px-6 py-4 bg-primary-600 hover:bg-primary-700 disabled:bg-gray-400 disabled:cursor-not-allowed text-white font-semibold rounded-lg shadow-lg hover:shadow-xl transition-all duration-300 flex items-center justify-center"
>
<Send v-if="!isSubmitting" :size="20" class="mr-2" />
<div v-else class="animate-spin rounded-full h-5 w-5 border-b-2 border-white mr-2"></div>
<Send
v-if="!isSubmitting"
:size="20"
class="mr-2"
/>
<div
v-else
class="animate-spin rounded-full h-5 w-5 border-b-2 border-white mr-2"
/>
{{ isSubmitting ? 'Wird gesendet...' : 'E-Mail senden' }}
</button>
<p class="text-sm text-gray-600 text-center">