- {/* Creative, vibrant header using only your colors */}
+ {/* Header & Navigation */}
{/* App Title Bar */}
@@ -46,10 +46,12 @@ function AppContent() {
{/* Scrollable Tab Navigation */}
-
-
-
+
+
+
+
+
@@ -62,6 +64,7 @@ function AppContent() {
} />
} />
} />
+
} />
} />
diff --git a/src/data/faq.json b/src/data/faq.json
index 1e34dbc..2780f03 100644
--- a/src/data/faq.json
+++ b/src/data/faq.json
@@ -32,7 +32,7 @@
"a": "Vid fyren, 350m. Här finns info, broschyrer, personal, akvarier, fågelskådning, tumlarspaning, och Kullabergsguiderna."
},
{
- "q": "Tumalarsafari/Kullabergsguiderna?",
+ "q": "Tumalarsafari/ Kullabergsguiderna?",
"a": "Skicka till Naturum, infodisk på insidan."
},
{
diff --git a/src/index.css b/src/index.css
index 8c509cf..5c8c54e 100644
--- a/src/index.css
+++ b/src/index.css
@@ -11,6 +11,7 @@
--color-slate-teal: #456466;
--color-seafoam: #5B8C8A;
+ --color-emergency: #EB514C;
}
body {
diff --git a/src/pages/Documents.tsx b/src/pages/Documents.tsx
index d5e525b..6f6e75e 100644
--- a/src/pages/Documents.tsx
+++ b/src/pages/Documents.tsx
@@ -33,7 +33,7 @@ export const Documents: React.FC = () => {
className="group flex items-center justify-between bg-white/60 backdrop-blur-sm p-5 rounded-2xl border border-white hover:-translate-y-1 hover:shadow-xl hover:shadow-moss/10 transition-all duration-300"
>
-
{doc.icon}
+
{doc.icon}
{doc.title}
diff --git a/src/pages/Emergency.tsx b/src/pages/Emergency.tsx
new file mode 100644
index 0000000..0319877
--- /dev/null
+++ b/src/pages/Emergency.tsx
@@ -0,0 +1,87 @@
+// src/pages/Emergency.tsx
+
+import React from 'react';
+import { Phone, AlertTriangle, MapPin, HeartPulse } from 'lucide-react';
+
+export const Emergency: React.FC = () => {
+ return (
+
+
+
+
+ Vid Nödsituation
+
+
Agera lugnt, stanna kvar på platsen och tillkalla hjälp.
+
+
+ {/* 112 Card */}
+
+
+
+ Ring 112
+
+
+ Vid olycka, brand eller livshotande tillstånd. Berätta vem du är och vad som har hänt.
+
+
+
+
+ Uppge din position
+
+
+ Använd appen 112 eller GPS i telefonen. Säg att du befinner dig i Kullabergs Naturreservat. Var specifik (t.ex. "Nära fyren" eller "Vid Josefinelust").
+
+
+
+
+ {/* First Aid / HLR Card */}
+
+
+
+ Första Hjälpen & Hjärtstartare
+
+
+
+
+ {/* Internal Contact */}
+
+
+ Intern Rapportering
+
+
+ När situationen är under kontroll, meddela alltid arbetsledaren om vad som inträffat.
+
+
+
+
+ );
+};
\ No newline at end of file
diff --git a/src/pages/FAQ.tsx b/src/pages/FAQ.tsx
index f08f1f7..fc5c661 100644
--- a/src/pages/FAQ.tsx
+++ b/src/pages/FAQ.tsx
@@ -16,9 +16,9 @@ export const FAQ: React.FC = () => {
- Veckoschema
+ Vanliga Frågor (FAQ)
-
Här hittar du när vi bemannar Kullaberg.
+
Använd den här guiden för att snabbt svara på turisternas vanligaste frågor.
@@ -42,7 +42,7 @@ export const FAQ: React.FC = () => {
{isOpen ? : }
-
+
{item.a}
diff --git a/src/pages/JobInfo.tsx b/src/pages/JobInfo.tsx
index 579105c..a862fe7 100644
--- a/src/pages/JobInfo.tsx
+++ b/src/pages/JobInfo.tsx
@@ -1,43 +1,62 @@
-// src/pages/Info.tsx
+// src/pages/JobInfo.tsx
import React from 'react';
+import { Briefcase, CheckCircle2, Navigation } from 'lucide-react';
export const JobInfo: React.FC = () => {
return (
-
-
Jobbinfo & Regler
+
+
+
+
+ Jobbinfo & Regler
+
+
Läs igenom detta noggrant inför dina arbetspass.
+
-
- Förväntningar
-
+
+
+ Förväntningar
+
+
Vi förväntar oss att du tar ansvar, visar respekt för både natur och varandra, samt gör ditt bästa med dina arbetsuppgifter.
-
+
+
+
+ Daglig Utrustning
+
+
+ {['Bra promenadskor (mycket gång!)', 'Oömma/väderanpassade kläder', 'En bekväm ryggsäck', 'Egen lunch (ingen kyl/mikro)', 'Minst 1 liter vatten', 'Myggmedel & Solkräm'].map((item, idx) => (
+
+
+ {item}
+
+ ))}
-
- Daglig Utrustning
-
- Bra promenadskor (du kommer gå mycket!)
- Oömma och väderanpassade kläder
- En bekväm ryggsäck
- Egen lunch (ingen tillgång till kyl/mikro)
- Minst 1 liter vatten
- Myggmedel & Solkräm
-
-
-
-
- Exempel på uppgifter
-
- Parkeringsguide
- Naturvägledare för besökare
- Plocka skräp & ta bort invasiva växter
- Städa anläggningar
- Allmänt underhåll (olja skyltar, fixa staket)
+
+
+ Exempel på uppgifter
+
+
+ {['Parkeringsguide', 'Naturvägledare för besökare', 'Plocka skräp & ta bort invasiva växter', 'Städa anläggningar', 'Allmänt underhåll (olja skyltar, fixa staket)'].map((task, idx) => (
+
+ ✦ {task}
+
+ ))}
diff --git a/src/pages/admin/AdminDashboard.tsx b/src/pages/admin/AdminDashboard.tsx
index e69de29..534879f 100644
--- a/src/pages/admin/AdminDashboard.tsx
+++ b/src/pages/admin/AdminDashboard.tsx
@@ -0,0 +1,99 @@
+// src/pages/admin/AdminDashboard.tsx
+
+import React, { useState } from 'react';
+import { Lock, Unlock, Upload, Users } from 'lucide-react';
+
+export const Admin: React.FC = () => {
+ const [isAuthenticated, setIsAuthenticated] = useState(false);
+ const [pin, setPin] = useState('');
+ const [error, setError] = useState('');
+
+ const CORRECT_PIN = "1234"; // You can change this later
+
+ const handleLogin = (e: React.FormEvent) => {
+ e.preventDefault();
+ if (pin === CORRECT_PIN) {
+ setIsAuthenticated(true);
+ setError('');
+ } else {
+ setError('Ogiltig pinkod.');
+ setPin('');
+ }
+ };
+
+ // --- VIEW: LOCKED ---
+ if (!isAuthenticated) {
+ return (
+
+
+
+
+
+
Admin Login
+
Ange pinkod för att hantera schema och närvaro.
+
+
+
+
+ );
+ }
+
+ // --- VIEW: UNLOCKED (ADMIN DASHBOARD) ---
+ return (
+
+
+
+
+
+ Admin Dashboard
+
+
Hantera personal, scheman och närvaro.
+
+
setIsAuthenticated(false)}
+ className="text-sm font-bold text-ebony/60 hover:text-goldenrod transition-colors"
+ >
+ Logga ut
+
+
+
+ {/* Attendance Tracker Section Shell */}
+
+
+
+
+ Närvarorapport
+
+
+ {/* Fake Upload Button for now */}
+
+
+ Ladda upp CSV
+
+
+
+
+
Ingen data uppladdad ännu.
+
Ladda upp Timeedit CSV-filen för att visa interaktiv närvarolista här.
+
+
+
+ );
+};
\ No newline at end of file