Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 8 additions & 4 deletions app/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,16 @@
import { useState, useEffect } from 'react';
import Link from 'next/link';
import { motion } from 'framer-motion';
import { Heart, BarChart3, Music, Brain, Sparkles, ArrowRight } from 'lucide-react';
import { Heart, BarChart3, Music, Brain, Sparkles, ArrowRight, Plus } from 'lucide-react';

import { MoodCard } from '@/components/MoodCard';
import { SkeletonMoodCard } from '@/components/SkeletonMoodCard';
import { FloatingBackground } from '@/components/FloatingBackground';
import { QuoteCard } from '@/components/QuoteCard';
import { Heart, BarChart3, Music } from 'lucide-react';
import { usePageTransition } from '@/components/TransitionProvider';
import { Hero } from '@/components/landing/Hero';
import { ErrorState } from '@/components/ErrorState';

import SimpleLangFlowChatbot from '@/components/SimpleLangFlowChatbot';
import { ThemeToggle } from '@/components/ThemeToggle';

Expand Down Expand Up @@ -64,7 +68,7 @@ export default function Home() {
initial: { opacity: 0 },
animate: {
opacity: 1,
transition: { duration: 0.8, ease: [0.25, 0.46, 0.45, 0.94] }
transition: { duration: 0.8, ease: 'easeInOut' }
},
exit: {
opacity: 0,
Expand Down Expand Up @@ -236,7 +240,7 @@ export default function Home() {
>
<h3 className="text-2xl md:text-3xl font-bold text-white mb-2">
How are you feeling today?
</h2>
</h3>
<p className="text-lg md:text-xl text-gray-200 max-w-2xl mx-auto drop-shadow mb-6 leading-relaxed">
Choose your emotional state and discover personalized insights, prompts, and music to guide your reflection journey.
</p>
Expand Down
201 changes: 126 additions & 75 deletions app/privacy/page.tsx
Original file line number Diff line number Diff line change
@@ -1,94 +1,145 @@

'use client';

import { motion } from 'framer-motion';
import Link from 'next/link';
import { ChevronLeft, Shield } from 'lucide-react';
import {
ChevronLeft,
Shield,
Database,
Settings,
Lock,
Mail
} from 'lucide-react';
import { FloatingBackground } from '@/components/FloatingBackground';

export default function PrivacyPolicy() {

const sections = [
{
title: "Introduction",
icon: Shield,
content:
"Welcome to InnerHue. We respect your privacy and are committed to protecting your personal data. This privacy policy explains how we handle your information and your rights.",
},
{
title: "Data We Collect",
icon: Database,
content:
"We may collect Identity Data (name, username), Contact Data (email), Usage Data (mood logs, journal entries), and Technical Data (IP address, browser type, login data).",
},
{
title: "How We Use Your Data",
icon: Settings,
content:
"We use your data to provide personalized insights, improve user experience, maintain platform security, and enhance our services.",
},
{
title: "Data Security",
icon: Lock,
content:
"We implement strong security measures to protect your data from unauthorized access, alteration, or disclosure. Your emotional data is handled with strict confidentiality.",
},
{
title: "Contact Us",
icon: Mail,
content:
"If you have questions about this policy, contact us at support@innerhue.app",
},
];

return (
<div className="min-h-screen bg-gradient-to-br from-purple-900 via-blue-900 to-indigo-900 relative overflow-hidden text-gray-100 font-sans">
<div className="relative min-h-screen overflow-hidden bg-gradient-to-br from-[#0f0c29] via-[#302b63] to-[#24243e] text-gray-100">

{/* Background Glow */}
<div className="absolute top-10 left-10 w-96 h-96 bg-purple-600/30 rounded-full blur-3xl animate-pulse"></div>
<div className="absolute bottom-10 right-10 w-96 h-96 bg-pink-600/30 rounded-full blur-3xl animate-pulse"></div>

<FloatingBackground />

<div className="relative z-10 max-w-4xl mx-auto px-6 py-12 md:py-20">
<motion.header
initial={{ opacity: 0, y: -20 }}
<div className="relative z-10 max-w-6xl mx-auto px-6 py-16 md:py-24">

{/* HEADER */}
<motion.div
initial={{ opacity: 0, y: -30 }}
animate={{ opacity: 1, y: 0 }}
transition={{ duration: 0.5 }}
className="mb-12"
transition={{ duration: 0.6 }}
className="mb-16"
>
<Link href="/" className="inline-flex items-center text-purple-300 hover:text-white mb-6 transition-colors group">
<ChevronLeft className="w-5 h-5 mr-1 group-hover:-translate-x-1 transition-transform" />
<Link
href="/"
className="inline-flex items-center text-purple-300 hover:text-white mb-6 transition-all group"
>
<ChevronLeft className="w-5 h-5 mr-2 group-hover:-translate-x-2 transition-transform" />
Back to Home
</Link>
<div className="flex items-center space-x-3 mb-2">
<Shield className="w-8 h-8 text-pink-400" />
<h1 className="text-4xl md:text-5xl font-bold bg-clip-text text-transparent bg-gradient-to-r from-pink-400 to-purple-400">
Privacy Policy
</h1>
</div>
<p className="text-lg text-gray-300">Last updated: {new Date().toLocaleDateString('en-US', { month: 'long', day: 'numeric', year: 'numeric' })}</p>
</motion.header>

<motion.div
initial={{ opacity: 0, y: 20 }}
animate={{ opacity: 1, y: 0 }}
transition={{ delay: 0.2, duration: 0.5 }}
className="bg-white/10 backdrop-blur-md rounded-3xl p-8 md:p-12 shadow-2xl border border-white/10"
>
<div className="space-y-8 text-gray-200 leading-relaxed">
<section>
<h2 className="text-2xl font-semibold text-white mb-4">1. Introduction</h2>
<p>
Welcome to InnerHue. We respect your privacy and are committed to protecting your personal data.
This privacy policy will inform you as to how we look after your personal data when you visit our website
and tell you about your privacy rights.
</p>
</section>

<section>
<h2 className="text-2xl font-semibold text-white mb-4">2. Data We Collect</h2>
<p className="mb-4">
We may collect, use, store and transfer different kinds of personal data about you which we have grouped together follows:
</p>
<ul className="list-disc pl-6 space-y-2 marker:text-purple-400">
<li><strong>Identity Data:</strong> includes first name, last name, username or similar identifier.</li>
<li><strong>Contact Data:</strong> includes email address.</li>
<li><strong>Usage Data:</strong> includes information about how you use our website, products and services (e.g., mood logs, journal entries).</li>
<li><strong>Technical Data:</strong> includes internet protocol (IP) address, your login data, browser type and version.</li>
</ul>
</section>

<section>
<h2 className="text-2xl font-semibold text-white mb-4">3. How We Use Your Data</h2>
<p>
We will only use your personal data when the law allows us to. Most commonly, we will use your personal data in the following circumstances:
</p>
<ul className="list-disc pl-6 space-y-2 mt-4 marker:text-purple-400">
<li>To provide insights and personalized recommendations based on your mood.</li>
<li>To improve our website, products/services, marketing or customer relationships.</li>
<li>To manage your account and secure our platform.</li>
</ul>
</section>

<section>
<h2 className="text-2xl font-semibold text-white mb-4">4. Data Security</h2>
<p>
We have put in place appropriate security measures to prevent your personal data from being accidentally lost, used or accessed in an unauthorized way, altered or disclosed.
Your emotional data is treated with the highest level of sensitivity and confidentiality.
</p>
</section>

<section>
<h2 className="text-2xl font-semibold text-white mb-4">5. Contact Us</h2>
<p>
If you have any questions about this privacy policy or our privacy practices, please contact us at:
<a href="mailto:support@innerhue.app" className="text-pink-400 hover:text-pink-300 ml-1 transition-colors">support@innerhue.app</a>
</p>
</section>
</div>
<h1 className="text-4xl md:text-6xl font-bold bg-gradient-to-r from-pink-400 via-purple-400 to-indigo-400 bg-clip-text text-transparent">
Privacy Policy
</h1>

<p className="mt-4 text-gray-400">
Last updated:{" "}
{new Date().toLocaleDateString("en-US", {
month: "long",
day: "numeric",
year: "numeric",
})}
</p>
</motion.div>

{/* CARD GRID */}
<div className="grid md:grid-cols-2 gap-8">

{sections.map((section, index) => {
const Icon = section.icon;

return (
<motion.div
key={index}
initial={{ opacity: 0, y: 40 }}
animate={{ opacity: 1, y: 0 }}
transition={{ delay: index * 0.15, duration: 0.5 }}
whileHover={{
scale: 1.04,
rotateX: 3,
rotateY: -3,
}}
className="relative group"
>
{/* Gradient Border Glow */}
<div className="absolute -inset-[1px] bg-gradient-to-r from-purple-500 via-pink-500 to-indigo-500 rounded-3xl blur opacity-0 group-hover:opacity-100 transition duration-500"></div>

{/* Card */}
<div className="relative bg-white/5 backdrop-blur-2xl border border-white/10 rounded-3xl p-8 shadow-2xl transition-all duration-300 group-hover:border-purple-400/40">

{/* Icon */}
<motion.div
whileHover={{ rotate: 10, scale: 1.1 }}
transition={{ type: "spring", stiffness: 200 }}
className="mb-4 inline-flex p-3 rounded-xl bg-gradient-to-br from-purple-500 to-pink-500 shadow-lg shadow-purple-700/40"
>
<Icon className="w-6 h-6 text-white" />
</motion.div>

<h2 className="text-2xl font-semibold mb-4 text-white">
{index + 1}. {section.title}
</h2>

<p className="text-gray-300 leading-relaxed">
{section.content}
</p>
</div>
</motion.div>
);
})}

</div>

{/* FOOTER */}
<div className="mt-16 text-center text-gray-500 text-sm">
© {new Date().getFullYear()} InnerHue. All rights reserved.
</div>

</div>
</div>
);
Expand Down
Loading