diff --git a/public/Twitch_logo.svg b/public/Twitch_logo.svg
new file mode 100644
index 0000000..0553bcc
--- /dev/null
+++ b/public/Twitch_logo.svg
@@ -0,0 +1,37 @@
+
+
\ No newline at end of file
diff --git a/public/simnord1.png b/public/simnord1.png
new file mode 100644
index 0000000..28e82ac
Binary files /dev/null and b/public/simnord1.png differ
diff --git a/src/components/BentoDemo.tsx b/src/components/BentoDemo.tsx
deleted file mode 100644
index 6d3808f..0000000
--- a/src/components/BentoDemo.tsx
+++ /dev/null
@@ -1,68 +0,0 @@
-import {
- BellIcon,
- CalendarIcon,
- FileTextIcon,
- GlobeIcon,
- InputIcon,
-} from "@radix-ui/react-icons";
-
-import { BentoCard, BentoGrid } from "@/components/magicui/bento-grid";
-
-const features = [
- {
- Icon: FileTextIcon,
- name: "Save your files",
- description: "We automatically save your files as you type.",
- href: "/",
- cta: "Learn more",
- background: ,
- className: "lg:row-start-1 lg:row-end-4 lg:col-start-2 lg:col-end-3",
- },
- {
- Icon: InputIcon,
- name: "Full text search",
- description: "Search through all your files in one place.",
- href: "/",
- cta: "Learn more",
- background: ,
- className: "lg:col-start-1 lg:col-end-2 lg:row-start-1 lg:row-end-3",
- },
- {
- Icon: GlobeIcon,
- name: "Multilingual",
- description: "Supports 100+ languages and counting.",
- href: "/",
- cta: "Learn more",
- background: ,
- className: "lg:col-start-1 lg:col-end-2 lg:row-start-3 lg:row-end-4",
- },
- {
- Icon: CalendarIcon,
- name: "Calendar",
- description: "Use the calendar to filter your files by date.",
- href: "/",
- cta: "Learn more",
- background: ,
- className: "lg:col-start-3 lg:col-end-3 lg:row-start-1 lg:row-end-2",
- },
- {
- Icon: BellIcon,
- name: "Notifications",
- description:
- "Get notified when someone shares a file or mentions you in a comment.",
- href: "/",
- cta: "Learn more",
- background: ,
- className: "lg:col-start-3 lg:col-end-3 lg:row-start-2 lg:row-end-4",
- },
-];
-
-export async function BentoDemo() {
- return (
-
- {features.map((feature) => (
-
- ))}
-
- );
-}
diff --git a/src/components/DotPatternDemo.tsx b/src/components/DotPatternDemo.tsx
deleted file mode 100644
index d5888de..0000000
--- a/src/components/DotPatternDemo.tsx
+++ /dev/null
@@ -1,26 +0,0 @@
-"use client";
-
-import { cn } from "@/lib/utils";
-import DotPattern from "@/components/magicui/dot-pattern";
-
-const DotPatternDemo = () => {
- return (
-
- );
-};
-
-export { DotPatternDemo };
diff --git a/src/components/Flight.tsx b/src/components/Flight.tsx
deleted file mode 100644
index c6f24ed..0000000
--- a/src/components/Flight.tsx
+++ /dev/null
@@ -1,30 +0,0 @@
-interface FlightProps {
- flight_number: string,
- departure: string,
- arrival: string,
- departure_time: string,
- arrival_time: string,
- departure_short: string,
- arrival_short: string,
- time_hours: number,
- time_minutes: number,
-}
-
-const Flight = (props: FlightProps) => {
- return (
-
-
-
{props.time_hours} hour
{props.time_minutes} Miniutes
-
{props.flight_number}
-
{props.departure}
-
{props.departure_short}: {props.departure_time}
-
➤
-
Departs On time
-
{props.arrival}
-
{props.arrival_short}: {props.arrival_time}
-
-
- );
-};
-
-export { Flight };
diff --git a/src/components/GlobeDemo.tsx b/src/components/GlobeDemo.tsx
deleted file mode 100644
index 4c80ae3..0000000
--- a/src/components/GlobeDemo.tsx
+++ /dev/null
@@ -1,10 +0,0 @@
-import Globe from "@/components/magicui/globe";
-
-export function GlobeDemo() {
- return (
-
- );
-}
\ No newline at end of file
diff --git a/src/components/magicui/animated-beam.tsx b/src/components/magicui/animated-beam.tsx
deleted file mode 100644
index 0f58d93..0000000
--- a/src/components/magicui/animated-beam.tsx
+++ /dev/null
@@ -1,188 +0,0 @@
-"use client";
-
-import { type RefObject, useEffect, useId, useState } from "react";
-import { motion } from "framer-motion";
-
-import { cn } from "@/lib/utils";
-
-export interface AnimatedBeamProps {
- className?: string;
- containerRef: RefObject; // Container ref
- fromRef: RefObject;
- toRef: RefObject;
- curvature?: number;
- reverse?: boolean;
- pathColor?: string;
- pathWidth?: number;
- pathOpacity?: number;
- gradientStartColor?: string;
- gradientStopColor?: string;
- delay?: number;
- duration?: number;
- startXOffset?: number;
- startYOffset?: number;
- endXOffset?: number;
- endYOffset?: number;
-}
-
-export const AnimatedBeam: React.FC = ({
- className,
- containerRef,
- fromRef,
- toRef,
- curvature = 0,
- reverse = false, // Include the reverse prop
- duration = Math.random() * 3 + 4,
- delay = 0,
- pathColor = "gray",
- pathWidth = 2,
- pathOpacity = 0.2,
- gradientStartColor = "#ffaa40",
- gradientStopColor = "#9c40ff",
- startXOffset = 0,
- startYOffset = 0,
- endXOffset = 0,
- endYOffset = 0,
-}) => {
- const id = useId();
- const [pathD, setPathD] = useState("");
- const [svgDimensions, setSvgDimensions] = useState({ width: 0, height: 0 });
-
- // Calculate the gradient coordinates based on the reverse prop
- const gradientCoordinates = reverse
- ? {
- x1: ["90%", "-10%"],
- x2: ["100%", "0%"],
- y1: ["0%", "0%"],
- y2: ["0%", "0%"],
- }
- : {
- x1: ["10%", "110%"],
- x2: ["0%", "100%"],
- y1: ["0%", "0%"],
- y2: ["0%", "0%"],
- };
-
- useEffect(() => {
- const updatePath = () => {
- if (containerRef.current && fromRef.current && toRef.current) {
- const containerRect = containerRef.current.getBoundingClientRect();
- const rectA = fromRef.current.getBoundingClientRect();
- const rectB = toRef.current.getBoundingClientRect();
-
- const svgWidth = containerRect.width;
- const svgHeight = containerRect.height;
- setSvgDimensions({ width: svgWidth, height: svgHeight });
-
- const startX =
- rectA.left - containerRect.left + rectA.width / 2 + startXOffset;
- const startY =
- rectA.top - containerRect.top + rectA.height / 2 + startYOffset;
- const endX =
- rectB.left - containerRect.left + rectB.width / 2 + endXOffset;
- const endY =
- rectB.top - containerRect.top + rectB.height / 2 + endYOffset;
-
- const controlY = startY - curvature;
- const d = `M ${startX},${startY} Q ${
- (startX + endX) / 2
- },${controlY} ${endX},${endY}`;
- setPathD(d);
- }
- };
-
- // Initialize ResizeObserver
- const resizeObserver = new ResizeObserver((entries) => {
- // For all entries, recalculate the path
- for (let entry of entries) {
- updatePath();
- }
- });
-
- // Observe the container element
- if (containerRef.current) {
- resizeObserver.observe(containerRef.current);
- }
-
- // Call the updatePath initially to set the initial path
- updatePath();
-
- // Clean up the observer on component unmount
- return () => {
- resizeObserver.disconnect();
- };
- }, [
- containerRef,
- fromRef,
- toRef,
- curvature,
- startXOffset,
- startYOffset,
- endXOffset,
- endYOffset,
- ]);
-
- return (
-
- );
-};
diff --git a/src/components/magicui/bento-grid.tsx b/src/components/magicui/bento-grid.tsx
deleted file mode 100644
index 342a957..0000000
--- a/src/components/magicui/bento-grid.tsx
+++ /dev/null
@@ -1,79 +0,0 @@
-import { ReactNode } from "react";
-import { ArrowRightIcon } from "@radix-ui/react-icons";
-
-import { cn } from "@/lib/utils";
-import { Button } from "@/components/ui/button";
-
-const BentoGrid = ({
- children,
- className,
-}: {
- children: ReactNode;
- className?: string;
-}) => {
- return (
-
- {children}
-
- );
-};
-
-const BentoCard = ({
- name,
- className,
- background,
- Icon,
- description,
- href,
- cta,
-}: {
- name: string;
- className: string;
- background: ReactNode;
- Icon: any;
- description: string;
- href: string;
- cta: string;
-}) => (
-
-
{background}
-
-
-
- {name}
-
-
{description}
-
-
-
-
-
-);
-
-export { BentoCard, BentoGrid };
diff --git a/src/components/magicui/blur-in.tsx b/src/components/magicui/blur-in.tsx
deleted file mode 100644
index 2a2dd0a..0000000
--- a/src/components/magicui/blur-in.tsx
+++ /dev/null
@@ -1,39 +0,0 @@
-"use client";
-
-import { motion } from "framer-motion";
-
-import { cn } from "@/lib/utils";
-
-interface BlurIntProps {
- word: string;
- className?: string;
- variant?: {
- hidden: { filter: string; opacity: number };
- visible: { filter: string; opacity: number };
- };
- duration?: number;
-}
-const BlurIn = ({ word, className, variant, duration = 1 }: BlurIntProps) => {
- const defaultVariants = {
- hidden: { filter: "blur(10px)", opacity: 0 },
- visible: { filter: "blur(0px)", opacity: 1 },
- };
- const combinedVariants = variant || defaultVariants;
-
- return (
-
- {word}
-
- );
-};
-
-export default BlurIn;
diff --git a/src/components/magicui/dot-pattern.tsx b/src/components/magicui/dot-pattern.tsx
deleted file mode 100644
index ea42a5e..0000000
--- a/src/components/magicui/dot-pattern.tsx
+++ /dev/null
@@ -1,56 +0,0 @@
-import { useId } from "react";
-
-import { cn } from "@/lib/utils";
-
-interface DotPatternProps {
- width?: any;
- height?: any;
- x?: any;
- y?: any;
- cx?: any;
- cy?: any;
- cr?: any;
- className?: string;
- [key: string]: any;
-}
-export function DotPattern({
- width = 16,
- height = 16,
- x = 0,
- y = 0,
- cx = 1,
- cy = 1,
- cr = 1,
- className,
- ...props
-}: DotPatternProps) {
- const id = useId();
-
- return (
-
- );
-}
-
-export default DotPattern;
diff --git a/src/components/magicui/globe.tsx b/src/components/magicui/globe.tsx
deleted file mode 100644
index dc6b60a..0000000
--- a/src/components/magicui/globe.tsx
+++ /dev/null
@@ -1,129 +0,0 @@
-"use client";
-
-import { useCallback, useEffect, useRef } from "react";
-import createGlobe, { type COBEOptions } from "cobe";
-import { useSpring } from "react-spring";
-
-import { cn } from "@/lib/utils";
-
-const GLOBE_CONFIG: COBEOptions = {
- width: 1200,
- height: 1200,
- onRender: () => {},
- devicePixelRatio: 2,
- phi: 0,
- theta: 0.3,
- dark: 0,
- diffuse: 0.4,
- mapSamples: 16000,
- mapBrightness: 1.2,
- baseColor: [1, 1, 1],
- markerColor: [251 / 255, 100 / 255, 21 / 255],
- glowColor: [1, 1, 1],
- markers: [
- { location: [14.5995, 120.9842], size: 0.03 },
- { location: [19.076, 72.8777], size: 0.1 },
- { location: [23.8103, 90.4125], size: 0.05 },
- { location: [30.0444, 31.2357], size: 0.07 },
- { location: [39.9042, 116.4074], size: 0.08 },
- { location: [-23.5505, -46.6333], size: 0.1 },
- { location: [19.4326, -99.1332], size: 0.1 },
- { location: [40.7128, -74.006], size: 0.1 },
- { location: [34.6937, 135.5022], size: 0.05 },
- { location: [41.0082, 28.9784], size: 0.06 },
- ],
-};
-
-export default function Globe({
- className,
- config = GLOBE_CONFIG,
-}: {
- className?: string;
- config?: COBEOptions;
-}) {
- let phi = 0;
- let width = 0;
- const canvasRef = useRef(null);
- const pointerInteracting = useRef(null);
- const pointerInteractionMovement = useRef(0);
- const [{ r }, api] = useSpring(() => ({
- r: 0,
- config: {
- mass: 1,
- tension: 280,
- friction: 40,
- precision: 0.001,
- },
- }));
-
- const updatePointerInteraction = (value: any) => {
- pointerInteracting.current = value;
- canvasRef.current!.style.cursor = value ? "grabbing" : "grab";
- };
-
- const updateMovement = (clientX: any) => {
- if (pointerInteracting.current !== null) {
- const delta = clientX - pointerInteracting.current;
- pointerInteractionMovement.current = delta;
- api.start({ r: delta / 200 });
- }
- };
-
- const onRender = useCallback(
- (state: Record) => {
- if (!pointerInteracting.current) phi += 0.005;
- state.phi = phi + r.get();
- state.width = width * 2;
- state.height = width * 2;
- },
- [pointerInteracting, phi, r],
- );
-
- const onResize = () => {
- if (canvasRef.current) {
- width = canvasRef.current.offsetWidth;
- }
- };
-
- useEffect(() => {
- window.addEventListener("resize", onResize);
- onResize();
-
- const globe = createGlobe(canvasRef.current!, {
- ...config,
- width: width * 2,
- height: width * 2,
- onRender,
- });
-
- setTimeout(() => (canvasRef.current!.style.opacity = "1"));
- return () => globe.destroy();
- }, []);
-
- return (
-
-
- );
-}
diff --git a/src/components/ui/button.tsx b/src/components/ui/button.tsx
deleted file mode 100644
index 0ba4277..0000000
--- a/src/components/ui/button.tsx
+++ /dev/null
@@ -1,56 +0,0 @@
-import * as React from "react"
-import { Slot } from "@radix-ui/react-slot"
-import { cva, type VariantProps } from "class-variance-authority"
-
-import { cn } from "@/lib/utils"
-
-const buttonVariants = cva(
- "inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",
- {
- variants: {
- variant: {
- default: "bg-primary text-primary-foreground hover:bg-primary/90",
- destructive:
- "bg-destructive text-destructive-foreground hover:bg-destructive/90",
- outline:
- "border border-input bg-background hover:bg-accent hover:text-accent-foreground",
- secondary:
- "bg-secondary text-secondary-foreground hover:bg-secondary/80",
- ghost: "hover:bg-accent hover:text-accent-foreground",
- link: "text-primary underline-offset-4 hover:underline",
- },
- size: {
- default: "h-10 px-4 py-2",
- sm: "h-9 rounded-md px-3",
- lg: "h-11 rounded-md px-8",
- icon: "h-10 w-10",
- },
- },
- defaultVariants: {
- variant: "default",
- size: "default",
- },
- }
-)
-
-export interface ButtonProps
- extends React.ButtonHTMLAttributes,
- VariantProps {
- asChild?: boolean
-}
-
-const Button = React.forwardRef(
- ({ className, variant, size, asChild = false, ...props }, ref) => {
- const Comp = asChild ? Slot : "button"
- return (
-
- )
- }
-)
-Button.displayName = "Button"
-
-export { Button, buttonVariants }
diff --git a/src/layout/index.astro b/src/layout/index.astro
deleted file mode 100644
index f4fde1d..0000000
--- a/src/layout/index.astro
+++ /dev/null
@@ -1,21 +0,0 @@
----
-import { ViewTransitions } from "astro:transitions";
-import '@/globals.css'
----
-
-
-
-
-
-
-
-
-
-
- Copenhagen Live
-
-
-
-
-
-
diff --git a/src/lib/utils.ts b/src/lib/utils.ts
deleted file mode 100644
index d084cca..0000000
--- a/src/lib/utils.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import { type ClassValue, clsx } from "clsx"
-import { twMerge } from "tailwind-merge"
-
-export function cn(...inputs: ClassValue[]) {
- return twMerge(clsx(inputs))
-}
diff --git a/src/pages/index.astro b/src/pages/index.astro
index b076919..7efbdcc 100644
--- a/src/pages/index.astro
+++ b/src/pages/index.astro
@@ -1,192 +1,73 @@
---
-import Layout from "../layout/index.astro";
-import { Flight } from "../components/Flight";
+import { ViewTransitions } from "astro:transitions";
+import '../globals.css'
---
-
-
-
-
-
-
-
-
-
-
-
📅 Schedule
-
All times are in Zulu
-
-
-
-
-
06:00-08:00
-
-
-
08:00-10:00
-
-
-
-
-
10:00-12:00
-
-
-
12:00-14:00
-
-
-
14:00-16:00
-
-
-
-
-
16:00-18:00
-
-
-
18:00-20:00
-
-
-
-
-
-
-
-
-
-
✈️ VA Fly-in
-
We have established mini events & preferred routes in collaboration with several of the virtual airline operators, check them out below.
-
-
-
-
-
-
-
Toghter with vSAS we have arranged three community flights and all participating pilots will be in a giveaway raffle!
-
vSAS are also organizing a giveaway raffle for all participating pilots!
-
Prerequisites
-
- - Be part of vSAS
- - The pilots have partiticpated in the group flight
- - Each leg's PIREPS must be sent via the vAMSYS Pegasus System
-
-
Routes & times
-
-
-
-
-
-
Unable to join the group flights? no worries!
vSAS Pilots get +60 Bonus Points for each flight in or out of CPH from 04:00z - 22:00z.
-
-
-
-
-
-
-
Book direct flights to Copenhagen for a fun and easy city break, or as the perfect gateway for a longer trip to Scandinavia
-
Common vEZY destinations from CPH:
-
-
- Nice
-
-
- Manchester
-
-
- London Gatwick
-
-
- Edinburgh
+
+
+
+
+
+
+
+
+
+
Copenhagen Live
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
👋🏻 Sponsors
+
+
+
+
+
+
-
- Amsterdam
-
-
-
-
- Berlin Brandenburg
-
-
- Charles de Gaulle
-
-
- Milan Malpensa
-
-
- Nice
-
-
-
250 Points pr. PIREP on the published routes
-
-
-
-
-
-
-
vDLH have planned a community flight!
-
-
-
-
-
-
-
vNAX have planned a community flight!
-
-
-
-
-
👋🏻 Event Sponsors
-
-
-
-
-
-
-
+
+
\ No newline at end of file
diff --git a/src/pages/test.astro b/src/pages/test.astro
deleted file mode 100644
index ff8f7cc..0000000
--- a/src/pages/test.astro
+++ /dev/null
@@ -1,70 +0,0 @@
----
-import { ViewTransitions } from "astro:transitions";
-import '../globals.css'
----
-
-
-
-
-
-
-
-
-
-
Copenhagen Live
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
👋🏻 Sponsors
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file