@@ -29,7 +29,7 @@ export async function Header() {
-
+
Your files, always within reach. Experience seamless synchronization, intuitive
management, and powerful discovery tools — all in one place.
diff --git a/apps/landing/src/app/page.tsx b/apps/landing/src/app/page.tsx
index 626e11742..cf43c5274 100644
--- a/apps/landing/src/app/page.tsx
+++ b/apps/landing/src/app/page.tsx
@@ -14,7 +14,7 @@ export const metadata = {
export default function Page() {
return (
-
+
diff --git a/apps/landing/src/app/teams/page.tsx b/apps/landing/src/app/teams/page.tsx
index 87cdf6be6..2677c8d55 100644
--- a/apps/landing/src/app/teams/page.tsx
+++ b/apps/landing/src/app/teams/page.tsx
@@ -1,11 +1,22 @@
+'use client';
+
import React from 'react';
+import After from '~/assets/after.jpg';
+import Before from '~/assets/before.jpg';
+import { Slider } from '~/components/before-after';
interface Props {
// props
}
const Page: React.FC
= () => {
- return Teams
;
+ return (
+
+ );
};
export default Page;
diff --git a/apps/landing/src/assets/after.jpg b/apps/landing/src/assets/after.jpg
new file mode 100644
index 000000000..d18f99060
Binary files /dev/null and b/apps/landing/src/assets/after.jpg differ
diff --git a/apps/landing/src/assets/before.jpg b/apps/landing/src/assets/before.jpg
new file mode 100644
index 000000000..a376b020f
Binary files /dev/null and b/apps/landing/src/assets/before.jpg differ
diff --git a/apps/landing/src/components/before-after.tsx b/apps/landing/src/components/before-after.tsx
new file mode 100644
index 000000000..dfe7d70d7
--- /dev/null
+++ b/apps/landing/src/components/before-after.tsx
@@ -0,0 +1,80 @@
+'use client';
+
+import { ArrowsInLineHorizontal, CaretUpDown } from '@phosphor-icons/react';
+import Image, { StaticImageData } from 'next/image';
+import { useState } from 'react';
+
+interface SliderProps {
+ beforeImage: string | StaticImageData;
+ afterImage: string | StaticImageData;
+}
+
+export const Slider: React.FC = ({ beforeImage, afterImage }) => {
+ const [sliderPosition, setSliderPosition] = useState(50);
+ const [isDragging, setIsDragging] = useState(false);
+
+ const handleMove = (event: React.MouseEvent) => {
+ if (!isDragging) return;
+
+ const rect = event.currentTarget.getBoundingClientRect();
+ const x = Math.max(0, Math.min(event.clientX - rect.left, rect.width));
+ const percent = Math.max(0, Math.min((x / rect.width) * 100, 100));
+
+ setSliderPosition(percent);
+ };
+
+ const handleMouseDown = () => {
+ setIsDragging(true);
+ };
+
+ const handleMouseUp = () => {
+ setIsDragging(false);
+ };
+
+ return (
+
+
+
+
+
+
+
+
+ {/* Slider handle */}
+
+
+
+
+
+ );
+};
diff --git a/apps/landing/src/components/global-nav-bar/index.tsx b/apps/landing/src/components/global-nav-bar/index.tsx
index 5b6b47a70..e27e6a93b 100644
--- a/apps/landing/src/components/global-nav-bar/index.tsx
+++ b/apps/landing/src/components/global-nav-bar/index.tsx
@@ -29,7 +29,7 @@ import { ExternalLinkRegex } from '~/utils/regex-external-link';
const NAVIGATION_ITEMS: { label: string; href: string; adornment?: string }[] = [
{ label: 'Explorer', href: '#' },
{ label: 'Cloud', href: '#' },
- { label: 'Teams', href: '#' },
+ { label: 'Teams', href: '/teams' },
{ label: 'Assistant', href: '#', adornment: 'New' },
{ label: 'Store', href: '#' },
{ label: 'Use Cases', href: '#' },