-
+
Get started by editing
src/app/page.tsx
@@ -27,13 +26,20 @@ export default function Home() {
target="_blank"
rel="noopener noreferrer"
>
- By
+ By{' '}
+
-
+
- BETA
+ BETA
-
+
The only starter kit you need to launch your startup—period.
-
+
-
- Tech Stack{" "}
+
+ Tech Stack{' '}
-
+
See why we chose this stack.
-
- Documentation{" "}
+
+ Documentation{' '}
-
+
Find in-depth information about Wstack features and API.
@@ -86,29 +92,29 @@ export default function Home() {
href="https://github.com/MambaCodes/wstack"
className="group rounded-lg border border-gray-800 px-5 py-4 transition-colors hover:border-gray-500 hover:bg-gray-900"
>
-
- Templates{" "}
+
+ Templates{' '}
-
+
Discover and deploy boilerplate example Wstack projects.
-
- Prompts{" "}
+
+ Prompts{' '}
-
+
AI-focused starter kit with pre-built prompts.
@@ -117,13 +123,13 @@ export default function Home() {
href="/login"
className="group rounded-lg border border-gray-800 px-5 py-4 transition-colors hover:border-gray-500 hover:bg-gray-900"
>
-
- Authentication{" "}
+
+ Authentication{' '}
-
+
See how we use NextAuth for Wstack.
@@ -131,20 +137,20 @@ export default function Home() {
-
- Contact{" "}
+
+ Contact{' '}
-
+
Get in touch with us on Discord.
-
+
)
}
diff --git a/src/components/ProtectedLayout.tsx b/src/components/ProtectedLayout.tsx
index 3253370..f45727c 100644
--- a/src/components/ProtectedLayout.tsx
+++ b/src/components/ProtectedLayout.tsx
@@ -1,7 +1,7 @@
'use client'
-import { useSession } from 'next-auth/react'
import { useRouter } from 'next/navigation'
+import { useSession } from 'next-auth/react'
import { ReactNode, useEffect } from 'react'
export default function ProtectedLayout({ children }: { children: ReactNode }) {
diff --git a/src/components/mode-toggle.tsx b/src/components/mode-toggle.tsx
index 32eeccb..019ca8d 100644
--- a/src/components/mode-toggle.tsx
+++ b/src/components/mode-toggle.tsx
@@ -1,6 +1,8 @@
'use client'
import { MoonIcon, SunIcon } from 'lucide-react'
+import { useTheme } from 'next-themes'
+
import { Button } from '@/components/ui/button'
import {
DropdownMenu,
@@ -8,7 +10,6 @@ import {
DropdownMenuItem,
DropdownMenuTrigger,
} from '@/components/ui/dropdown-menu'
-import { useTheme } from 'next-themes'
export function ModeToggle() {
const { setTheme } = useTheme()
diff --git a/src/components/spotlight-new.tsx b/src/components/spotlight-new.tsx
index 746cde9..dca01f8 100644
--- a/src/components/spotlight-new.tsx
+++ b/src/components/spotlight-new.tsx
@@ -1,23 +1,23 @@
-"use client";
-import React from "react";
-import { motion } from "motion/react";
+'use client'
+import { motion } from 'motion/react'
+import React from 'react'
type SpotlightProps = {
- gradientFirst?: string;
- gradientSecond?: string;
- gradientThird?: string;
- translateY?: number;
- width?: number;
- height?: number;
- smallWidth?: number;
- duration?: number;
- xOffset?: number;
-};
+ gradientFirst?: string
+ gradientSecond?: string
+ gradientThird?: string
+ translateY?: number
+ width?: number
+ height?: number
+ smallWidth?: number
+ duration?: number
+ xOffset?: number
+}
export const Spotlight = ({
- gradientFirst = "radial-gradient(68.54% 68.72% at 55.02% 31.46%, hsla(210, 100%, 85%, .08) 0, hsla(210, 100%, 55%, .02) 50%, hsla(210, 100%, 45%, 0) 80%)",
- gradientSecond = "radial-gradient(50% 50% at 50% 50%, hsla(210, 100%, 85%, .06) 0, hsla(210, 100%, 55%, .02) 80%, transparent 100%)",
- gradientThird = "radial-gradient(50% 50% at 50% 50%, hsla(210, 100%, 85%, .04) 0, hsla(210, 100%, 45%, .02) 80%, transparent 100%)",
+ gradientFirst = 'radial-gradient(68.54% 68.72% at 55.02% 31.46%, hsla(210, 100%, 85%, .08) 0, hsla(210, 100%, 55%, .02) 50%, hsla(210, 100%, 45%, 0) 80%)',
+ gradientSecond = 'radial-gradient(50% 50% at 50% 50%, hsla(210, 100%, 85%, .06) 0, hsla(210, 100%, 55%, .02) 80%, transparent 100%)',
+ gradientThird = 'radial-gradient(50% 50% at 50% 50%, hsla(210, 100%, 85%, .04) 0, hsla(210, 100%, 45%, .02) 80%, transparent 100%)',
translateY = -350,
width = 560,
height = 1380,
@@ -45,10 +45,10 @@ export const Spotlight = ({
transition={{
duration,
repeat: Infinity,
- repeatType: "reverse",
- ease: "easeInOut",
+ repeatType: 'reverse',
+ ease: 'easeInOut',
}}
- className="absolute top-0 left-0 w-screen h-screen z-40 pointer-events-none"
+ className="pointer-events-none absolute left-0 top-0 z-40 h-screen w-screen"
>
@@ -88,10 +88,10 @@ export const Spotlight = ({
transition={{
duration,
repeat: Infinity,
- repeatType: "reverse",
- ease: "easeInOut",
+ repeatType: 'reverse',
+ ease: 'easeInOut',
}}
- className="absolute top-0 right-0 w-screen h-screen z-40 pointer-events-none"
+ className="pointer-events-none absolute right-0 top-0 z-40 h-screen w-screen"
>
- );
-};
+ )
+}
export const GridBackground = () => {
return (
@@ -135,8 +135,9 @@ export const GridBackground = () => {
transition={{ duration: 1 }}
className="absolute inset-0 z-0"
style={{
- backgroundImage: `url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32' width='32' height='32' fill='none' stroke='rgb(255 255 255 / 0.04)'%3e%3cpath d='M0 .5H31.5V32'/%3e%3c/svg%3e")`,
+ backgroundImage:
+ "url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32' width='32' height='32' fill='none' stroke='rgb(255 255 255 / 0.04)'%3e%3cpath d='M0 .5H31.5V32'/%3e%3c/svg%3e\")",
}}
/>
- );
-};
+ )
+}
diff --git a/src/components/theme-provider.tsx b/src/components/theme-provider.tsx
index 351d92d..46d1fba 100644
--- a/src/components/theme-provider.tsx
+++ b/src/components/theme-provider.tsx
@@ -1,10 +1,10 @@
'use client'
-import * as React from 'react'
import {
ThemeProvider as NextThemesProvider,
useTheme as useNextTheme,
} from 'next-themes'
+import * as React from 'react'
export function ThemeProvider({
children,
diff --git a/src/components/ui/accordion.tsx b/src/components/ui/accordion.tsx
index ad82d22..f7f3855 100644
--- a/src/components/ui/accordion.tsx
+++ b/src/components/ui/accordion.tsx
@@ -1,8 +1,8 @@
'use client'
-import * as React from 'react'
import * as AccordionPrimitive from '@radix-ui/react-accordion'
import { ChevronDown } from 'lucide-react'
+import * as React from 'react'
import { cn } from '@/lib/utils'
diff --git a/src/components/ui/alert-dialog.tsx b/src/components/ui/alert-dialog.tsx
index 8f8c7ec..6b99372 100644
--- a/src/components/ui/alert-dialog.tsx
+++ b/src/components/ui/alert-dialog.tsx
@@ -1,10 +1,10 @@
'use client'
-import * as React from 'react'
import * as AlertDialogPrimitive from '@radix-ui/react-alert-dialog'
+import * as React from 'react'
-import { cn } from '@/lib/utils'
import { buttonVariants } from '@/components/ui/button'
+import { cn } from '@/lib/utils'
const AlertDialog = AlertDialogPrimitive.Root
diff --git a/src/components/ui/alert.tsx b/src/components/ui/alert.tsx
index 467e32a..08e5229 100644
--- a/src/components/ui/alert.tsx
+++ b/src/components/ui/alert.tsx
@@ -1,5 +1,5 @@
-import * as React from 'react'
import { cva, type VariantProps } from 'class-variance-authority'
+import * as React from 'react'
import { cn } from '@/lib/utils'
diff --git a/src/components/ui/avatar.tsx b/src/components/ui/avatar.tsx
index 77fde46..62aa46f 100644
--- a/src/components/ui/avatar.tsx
+++ b/src/components/ui/avatar.tsx
@@ -1,7 +1,7 @@
'use client'
-import * as React from 'react'
import * as AvatarPrimitive from '@radix-ui/react-avatar'
+import * as React from 'react'
import { cn } from '@/lib/utils'
diff --git a/src/components/ui/badge.tsx b/src/components/ui/badge.tsx
index 19fb78e..f682fd5 100644
--- a/src/components/ui/badge.tsx
+++ b/src/components/ui/badge.tsx
@@ -1,5 +1,5 @@
-import * as React from 'react'
import { cva, type VariantProps } from 'class-variance-authority'
+import * as React from 'react'
import { cn } from '@/lib/utils'
diff --git a/src/components/ui/breadcrumb.tsx b/src/components/ui/breadcrumb.tsx
index 00697ca..cdd49f3 100644
--- a/src/components/ui/breadcrumb.tsx
+++ b/src/components/ui/breadcrumb.tsx
@@ -1,6 +1,6 @@
-import * as React from 'react'
import { Slot } from '@radix-ui/react-slot'
import { ChevronRight, MoreHorizontal } from 'lucide-react'
+import * as React from 'react'
import { cn } from '@/lib/utils'
diff --git a/src/components/ui/button.tsx b/src/components/ui/button.tsx
index 7789309..0c70a39 100644
--- a/src/components/ui/button.tsx
+++ b/src/components/ui/button.tsx
@@ -1,6 +1,6 @@
-import * as React from 'react'
import { Slot } from '@radix-ui/react-slot'
import { cva, type VariantProps } from 'class-variance-authority'
+import * as React from 'react'
import { cn } from '@/lib/utils'
diff --git a/src/components/ui/calendar.tsx b/src/components/ui/calendar.tsx
index 215660f..9de4d30 100644
--- a/src/components/ui/calendar.tsx
+++ b/src/components/ui/calendar.tsx
@@ -1,11 +1,11 @@
'use client'
-import * as React from 'react'
import { ChevronLeft, ChevronRight } from 'lucide-react'
+import * as React from 'react'
import { DayPicker } from 'react-day-picker'
-import { cn } from '@/lib/utils'
import { buttonVariants } from '@/components/ui/button'
+import { cn } from '@/lib/utils'
export type CalendarProps = React.ComponentProps
diff --git a/src/components/ui/carousel.tsx b/src/components/ui/carousel.tsx
index cc2765d..f173ef4 100644
--- a/src/components/ui/carousel.tsx
+++ b/src/components/ui/carousel.tsx
@@ -1,13 +1,13 @@
'use client'
-import * as React from 'react'
import useEmblaCarousel, {
type UseEmblaCarouselType,
} from 'embla-carousel-react'
import { ArrowLeft, ArrowRight } from 'lucide-react'
+import * as React from 'react'
-import { cn } from '@/lib/utils'
import { Button } from '@/components/ui/button'
+import { cn } from '@/lib/utils'
type CarouselApi = UseEmblaCarouselType[1]
type UseCarouselParameters = Parameters
@@ -124,7 +124,7 @@ const Carousel = React.forwardRef<
,
diff --git a/src/components/ui/context-menu.tsx b/src/components/ui/context-menu.tsx
index 97cb968..94cbf30 100644
--- a/src/components/ui/context-menu.tsx
+++ b/src/components/ui/context-menu.tsx
@@ -1,8 +1,8 @@
'use client'
-import * as React from 'react'
import * as ContextMenuPrimitive from '@radix-ui/react-context-menu'
import { Check, ChevronRight, Circle } from 'lucide-react'
+import * as React from 'react'
import { cn } from '@/lib/utils'
diff --git a/src/components/ui/dialog.tsx b/src/components/ui/dialog.tsx
index 83685b7..26a669b 100644
--- a/src/components/ui/dialog.tsx
+++ b/src/components/ui/dialog.tsx
@@ -1,8 +1,8 @@
'use client'
-import * as React from 'react'
import * as DialogPrimitive from '@radix-ui/react-dialog'
import { X } from 'lucide-react'
+import * as React from 'react'
import { cn } from '@/lib/utils'
diff --git a/src/components/ui/dropdown-menu.tsx b/src/components/ui/dropdown-menu.tsx
index 96df448..256320f 100644
--- a/src/components/ui/dropdown-menu.tsx
+++ b/src/components/ui/dropdown-menu.tsx
@@ -1,8 +1,8 @@
'use client'
-import * as React from 'react'
import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu'
import { Check, ChevronRight, Circle } from 'lucide-react'
+import * as React from 'react'
import { cn } from '@/lib/utils'
diff --git a/src/components/ui/form.tsx b/src/components/ui/form.tsx
index dc23ec3..7e77da0 100644
--- a/src/components/ui/form.tsx
+++ b/src/components/ui/form.tsx
@@ -1,8 +1,8 @@
'use client'
-import * as React from 'react'
import * as LabelPrimitive from '@radix-ui/react-label'
import { Slot } from '@radix-ui/react-slot'
+import * as React from 'react'
import {
Controller,
ControllerProps,
@@ -12,8 +12,8 @@ import {
useFormContext,
} from 'react-hook-form'
-import { cn } from '@/lib/utils'
import { Label } from '@/components/ui/label'
+import { cn } from '@/lib/utils'
const Form = FormProvider
diff --git a/src/components/ui/hover-card.tsx b/src/components/ui/hover-card.tsx
index 7b9302a..35daefd 100644
--- a/src/components/ui/hover-card.tsx
+++ b/src/components/ui/hover-card.tsx
@@ -1,7 +1,7 @@
'use client'
-import * as React from 'react'
import * as HoverCardPrimitive from '@radix-ui/react-hover-card'
+import * as React from 'react'
import { cn } from '@/lib/utils'
diff --git a/src/components/ui/input-otp.tsx b/src/components/ui/input-otp.tsx
index 186c84f..6dac6c2 100644
--- a/src/components/ui/input-otp.tsx
+++ b/src/components/ui/input-otp.tsx
@@ -1,8 +1,8 @@
'use client'
-import * as React from 'react'
import { OTPInput, OTPInputContext } from 'input-otp'
import { Minus } from 'lucide-react'
+import * as React from 'react'
import { cn } from '@/lib/utils'
diff --git a/src/components/ui/label.tsx b/src/components/ui/label.tsx
index fb5c545..faf2ecd 100644
--- a/src/components/ui/label.tsx
+++ b/src/components/ui/label.tsx
@@ -1,8 +1,8 @@
'use client'
-import * as React from 'react'
import * as LabelPrimitive from '@radix-ui/react-label'
import { cva, type VariantProps } from 'class-variance-authority'
+import * as React from 'react'
import { cn } from '@/lib/utils'
diff --git a/src/components/ui/menubar.tsx b/src/components/ui/menubar.tsx
index 33402b0..3c76180 100644
--- a/src/components/ui/menubar.tsx
+++ b/src/components/ui/menubar.tsx
@@ -1,8 +1,8 @@
'use client'
-import * as React from 'react'
import * as MenubarPrimitive from '@radix-ui/react-menubar'
import { Check, ChevronRight, Circle } from 'lucide-react'
+import * as React from 'react'
import { cn } from '@/lib/utils'
diff --git a/src/components/ui/navigation-menu.tsx b/src/components/ui/navigation-menu.tsx
index f11dc19..f8700c0 100644
--- a/src/components/ui/navigation-menu.tsx
+++ b/src/components/ui/navigation-menu.tsx
@@ -1,7 +1,7 @@
-import * as React from 'react'
import * as NavigationMenuPrimitive from '@radix-ui/react-navigation-menu'
import { cva } from 'class-variance-authority'
import { ChevronDown } from 'lucide-react'
+import * as React from 'react'
import { cn } from '@/lib/utils'
diff --git a/src/components/ui/pagination.tsx b/src/components/ui/pagination.tsx
index 861dc92..2ab886d 100644
--- a/src/components/ui/pagination.tsx
+++ b/src/components/ui/pagination.tsx
@@ -1,8 +1,8 @@
-import * as React from 'react'
import { ChevronLeft, ChevronRight, MoreHorizontal } from 'lucide-react'
+import * as React from 'react'
-import { cn } from '@/lib/utils'
import { ButtonProps, buttonVariants } from '@/components/ui/button'
+import { cn } from '@/lib/utils'
const Pagination = ({ className, ...props }: React.ComponentProps<'nav'>) => (