-
Notifications
You must be signed in to change notification settings - Fork 23
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
add screenshots to web docker-false no-release
- Loading branch information
1 parent
1b20d55
commit c2ab0a9
Showing
23 changed files
with
1,445 additions
and
1,972 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,76 @@ | ||
import React, { useEffect, useState } from "react"; | ||
import { | ||
Carousel, | ||
CarouselContent, | ||
CarouselItem, | ||
CarouselNext, | ||
CarouselPrevious, | ||
} from "@/components/ui/carousel"; | ||
import { Card, CardContent } from "@/components/ui/card"; | ||
import { useTheme } from "next-themes"; | ||
|
||
const screenshotPairs = [ | ||
{ | ||
light: "/screenshots/main-screen-light.png", | ||
dark: "/screenshots/main-screen-dark.png", | ||
}, | ||
{ | ||
light: "/screenshots/metrics-table-options-light.png", | ||
dark: "/screenshots/metrics-table-options-dark.png", | ||
}, | ||
{ | ||
light: "/screenshots/metrics-queries-light.png", | ||
dark: "/screenshots/metrics-queries-dark.png", | ||
}, | ||
{ | ||
light: "/screenshots/metrics-overview-light.png", | ||
dark: "/screenshots/metrics-overview-dark.png", | ||
}, | ||
{ | ||
light: "/screenshots/command-open-light.png", | ||
dark: "/screenshots/command-open-dark.png", | ||
}, | ||
{ | ||
light: "/screenshots/settings-connected-light.png", | ||
dark: "/screenshots/settings-connected-dark.png", | ||
}, | ||
{ | ||
light: "/screenshots/settings-disconnect-light.png", | ||
dark: "/screenshots/settings-disconnect-dark.png", | ||
}, | ||
]; | ||
|
||
const CarouselScreenShots = () => { | ||
const { resolvedTheme } = useTheme(); | ||
const [currentTheme, setCurrentTheme] = useState(resolvedTheme); | ||
|
||
useEffect(() => { | ||
setCurrentTheme(resolvedTheme); | ||
}, [resolvedTheme]); | ||
|
||
return ( | ||
<Carousel className="w-full max-w-[90vw] md:max-w-[80vw] lg:max-w-[70vw] xl:max-w-[1200px] mx-auto"> | ||
<CarouselContent> | ||
{screenshotPairs.map((pair, index) => ( | ||
<CarouselItem key={index}> | ||
<div className="p-1"> | ||
<Card> | ||
<CardContent className="flex items-center justify-center p-2 md:p-4 lg:p-6"> | ||
<img | ||
src={currentTheme === "dark" ? pair.dark : pair.light} | ||
alt={`Screenshot ${index + 1}`} | ||
className="w-full h-auto object-contain max-h-[70vh]" | ||
/> | ||
</CardContent> | ||
</Card> | ||
</div> | ||
</CarouselItem> | ||
))} | ||
</CarouselContent> | ||
<CarouselPrevious /> | ||
<CarouselNext /> | ||
</Carousel> | ||
); | ||
}; | ||
|
||
export default CarouselScreenShots; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,15 +1,17 @@ | ||
"use client" | ||
"use client"; | ||
|
||
import { HeroSection } from "./HeroSection"; | ||
import HomepageFeatures from "./HomePageFeatures"; | ||
import { ShowCase } from "./ShowCase"; | ||
import CarouselScreenShots from "../CarouselScreenShots"; | ||
|
||
export const IndexPage = () => ( | ||
<section className=""> | ||
<div className=" m-auto"> | ||
<HeroSection /> | ||
<ShowCase /> | ||
<HomepageFeatures /> | ||
<CarouselScreenShots /> | ||
</div> | ||
</section> | ||
); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,60 +1,56 @@ | ||
import React from "react"; | ||
import { motion, type AnimationProps } from "framer-motion"; | ||
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"; | ||
import { cn } from "@/lib/utils" | ||
|
||
const animationProps = { | ||
initial: { "--x": "100%", scale: 0.8 }, | ||
animate: { "--x": "-100%", scale: 1 }, | ||
whileTap: { scale: 0.95 }, | ||
transition: { | ||
repeat: Infinity, | ||
repeatType: "loop", | ||
repeatDelay: 1, | ||
type: "spring", | ||
stiffness: 20, | ||
damping: 15, | ||
mass: 2, | ||
scale: { | ||
type: "spring", | ||
stiffness: 200, | ||
damping: 5, | ||
mass: 0.5, | ||
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", | ||
}, | ||
}, | ||
}, | ||
} as AnimationProps; | ||
interface ShinyButtonProps { | ||
children: React.ReactNode; | ||
className?: string; | ||
defaultVariants: { | ||
variant: "default", | ||
size: "default", | ||
}, | ||
} | ||
) | ||
|
||
export interface ButtonProps | ||
extends React.ButtonHTMLAttributes<HTMLButtonElement>, | ||
VariantProps<typeof buttonVariants> { | ||
asChild?: boolean | ||
} | ||
const ShinyButton = ({ children, className, ...props }: ShinyButtonProps) => { | ||
return ( | ||
<motion.button | ||
{...animationProps} | ||
{...props} | ||
className={cn( | ||
"relative rounded-lg px-6 py-2 font-medium backdrop-blur-xl transition-shadow duration-300 ease-in-out hover:shadow dark:bg-[radial-gradient(circle_at_50%_0%,hsl(var(--primary)/10%)_0%,transparent_60%)] dark:hover:shadow-[0_0_20px_hsl(var(--primary)/10%)]", | ||
className, | ||
)} | ||
> | ||
<span | ||
className="relative block size-full text-sm uppercase tracking-wide text-[rgb(0,0,0,65%)] dark:font-light dark:text-[rgb(255,255,255,90%)]" | ||
style={{ | ||
maskImage: | ||
"linear-gradient(-75deg,hsl(var(--primary)) calc(var(--x) + 20%),transparent calc(var(--x) + 30%),hsl(var(--primary)) calc(var(--x) + 100%))", | ||
}} | ||
> | ||
{children} | ||
</span> | ||
<span | ||
style={{ | ||
mask: "linear-gradient(rgb(0,0,0), rgb(0,0,0)) content-box,linear-gradient(rgb(0,0,0), rgb(0,0,0))", | ||
maskComposite: "exclude", | ||
}} | ||
className="absolute inset-0 z-10 block rounded-[inherit] bg-[linear-gradient(-75deg,hsl(var(--primary)/10%)_calc(var(--x)+20%),hsl(var(--primary)/50%)_calc(var(--x)+25%),hsl(var(--primary)/10%)_calc(var(--x)+100%))] p-px" | ||
></span> | ||
</motion.button> | ||
); | ||
}; | ||
|
||
export default ShinyButton; | ||
const Button = React.forwardRef<HTMLButtonElement, ButtonProps>( | ||
({ className, variant, size, asChild = false, ...props }, ref) => { | ||
const Comp = asChild ? Slot : "button" | ||
return ( | ||
<Comp | ||
className={cn(buttonVariants({ variant, size, className }))} | ||
ref={ref} | ||
{...props} | ||
/> | ||
) | ||
} | ||
) | ||
Button.displayName = "Button" | ||
|
||
export { Button, buttonVariants } |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,79 @@ | ||
import * as React from "react" | ||
|
||
import { cn } from "@/lib/utils" | ||
|
||
const Card = React.forwardRef< | ||
HTMLDivElement, | ||
React.HTMLAttributes<HTMLDivElement> | ||
>(({ className, ...props }, ref) => ( | ||
<div | ||
ref={ref} | ||
className={cn( | ||
"rounded-lg border bg-card text-card-foreground shadow-sm", | ||
className | ||
)} | ||
{...props} | ||
/> | ||
)) | ||
Card.displayName = "Card" | ||
|
||
const CardHeader = React.forwardRef< | ||
HTMLDivElement, | ||
React.HTMLAttributes<HTMLDivElement> | ||
>(({ className, ...props }, ref) => ( | ||
<div | ||
ref={ref} | ||
className={cn("flex flex-col space-y-1.5 p-6", className)} | ||
{...props} | ||
/> | ||
)) | ||
CardHeader.displayName = "CardHeader" | ||
|
||
const CardTitle = React.forwardRef< | ||
HTMLParagraphElement, | ||
React.HTMLAttributes<HTMLHeadingElement> | ||
>(({ className, ...props }, ref) => ( | ||
<h3 | ||
ref={ref} | ||
className={cn( | ||
"text-2xl font-semibold leading-none tracking-tight", | ||
className | ||
)} | ||
{...props} | ||
/> | ||
)) | ||
CardTitle.displayName = "CardTitle" | ||
|
||
const CardDescription = React.forwardRef< | ||
HTMLParagraphElement, | ||
React.HTMLAttributes<HTMLParagraphElement> | ||
>(({ className, ...props }, ref) => ( | ||
<p | ||
ref={ref} | ||
className={cn("text-sm text-muted-foreground", className)} | ||
{...props} | ||
/> | ||
)) | ||
CardDescription.displayName = "CardDescription" | ||
|
||
const CardContent = React.forwardRef< | ||
HTMLDivElement, | ||
React.HTMLAttributes<HTMLDivElement> | ||
>(({ className, ...props }, ref) => ( | ||
<div ref={ref} className={cn("p-6 pt-0", className)} {...props} /> | ||
)) | ||
CardContent.displayName = "CardContent" | ||
|
||
const CardFooter = React.forwardRef< | ||
HTMLDivElement, | ||
React.HTMLAttributes<HTMLDivElement> | ||
>(({ className, ...props }, ref) => ( | ||
<div | ||
ref={ref} | ||
className={cn("flex items-center p-6 pt-0", className)} | ||
{...props} | ||
/> | ||
)) | ||
CardFooter.displayName = "CardFooter" | ||
|
||
export { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent } |
Oops, something went wrong.