From ac765d0250360259a1d015beeed7ddeef0b2e4e1 Mon Sep 17 00:00:00 2001 From: Rainnny7 Date: Fri, 13 Sep 2024 21:27:40 -0400 Subject: [PATCH] Initial Commit --- .eslintrc.json | 9 ++- .gitea/workflows/deploy.yml | 6 +- .gitignore | 45 +++--------- Dockerfile | 3 - README.md | 3 + bun.lockb | Bin 147998 -> 162487 bytes next.config.mjs | 4 +- package.json | 11 ++- postcss.config.mjs | 6 +- public/favicon.ico | Bin 25931 -> 126728 bytes src/app/(pages)/layout.tsx | 75 ++++++++++++------- src/app/(pages)/page.tsx | 108 +++------------------------- src/app/style/globals.css | 91 +++++++++++++++++++---- src/components/landing/greeting.tsx | 44 ++++++++++++ src/components/theme-provider.tsx | 9 +++ src/components/ui/button.tsx | 96 ++++++++++++------------- src/lib/utils.ts | 6 +- tailwind.config.ts | 70 ++++++++++++++---- tsconfig.json | 21 ++++-- 19 files changed, 354 insertions(+), 253 deletions(-) diff --git a/.eslintrc.json b/.eslintrc.json index 3722418..33f6e02 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -1,3 +1,10 @@ { - "extends": ["next/core-web-vitals", "next/typescript"] + "extends": [ + "next/core-web-vitals", + "next/typescript" + ], + "rules": { + "@typescript-eslint/no-unused-vars": "off", + "@typescript-eslint/no-explicit-any": "off" + } } diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index b895836..c3d7767 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -1,4 +1,4 @@ -name: Deploy Site +name: Deploy on: push: @@ -9,7 +9,7 @@ on: - docker-compose.yml jobs: - docker: + deploy: strategy: matrix: arch: [ "ubuntu-latest" ] @@ -28,5 +28,5 @@ jobs: - name: Deploy to Dokku uses: dokku/github-action@master with: - git_remote_url: "ssh://dokku@10.10.3.28:22/rainnny-club" + git_remote_url: "ssh://dokku@10.10.3.28:22/pulseapp-www" ssh_private_key: ${{ secrets.SSH_PRIVATE_KEY }} diff --git a/.gitignore b/.gitignore index fd3dbb5..acaf3a3 100644 --- a/.gitignore +++ b/.gitignore @@ -1,36 +1,13 @@ -# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. - -# dependencies -/node_modules -/.pnp -.pnp.js -.yarn/install-state.gz - -# testing -/coverage - -# next.js -/.next/ -/out/ - -# production -/build - -# misc -.DS_Store -*.pem - -# debug -npm-debug.log* -yarn-debug.log* -yarn-error.log* - -# local env files +node_modules +.idea/ +.vscode/ +.VSCodeCounter/ +.next/ .env*.local - -# vercel -.vercel - -# typescript -*.tsbuildinfo next-env.d.ts +.sentryclirc +.env +sw.* +workbox-* +swe-worker-* +dist/ \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index ac8aa26..50899a3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -15,8 +15,6 @@ COPY --from=depends /usr/src/app/node_modules ./node_modules COPY . . ENV NEXT_TELEMETRY_DISABLED 1 -RUN --mount=type=bind,target=/config,from=korben-splash cp /config/.env ./.env - RUN bun run build @@ -35,7 +33,6 @@ COPY --from=builder --chown=nextjs:nextjs /usr/src/app/.next ./.next COPY --from=builder --chown=nextjs:nextjs /usr/src/app/public ./public COPY --from=builder --chown=nextjs:nextjs /usr/src/app/next.config.mjs ./next.config.mjs COPY --from=builder --chown=nextjs:nextjs /usr/src/app/package.json ./package.json -COPY --from=builder --chown=nextjs:nextjs /usr/src/app/.env ./.env ENV NODE_ENV production diff --git a/README.md b/README.md index e69de29..6f8872e 100644 --- a/README.md +++ b/README.md @@ -0,0 +1,3 @@ +# www + +The frontend for PulseApp. \ No newline at end of file diff --git a/bun.lockb b/bun.lockb index 3bae941b44021dfadec9317d035947126e30e8e0..54e951976b91c14073562c6046cbddf2af69f71a 100644 GIT binary patch delta 38554 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 H$m{Omm_j~+)kKbQi53l>Y&v|d>ocDPz_jTQ_ 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 LROdayHRgW+zs@J+ literal 25931 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 LrJugUA?W`A8`#=m diff --git a/src/app/(pages)/layout.tsx b/src/app/(pages)/layout.tsx index a36cde0..ea2c22b 100644 --- a/src/app/(pages)/layout.tsx +++ b/src/app/(pages)/layout.tsx @@ -1,35 +1,56 @@ -import type { Metadata } from "next"; -import localFont from "next/font/local"; -import "./globals.css"; +import type { Metadata, Viewport } from "next"; +import { Inter } from "next/font/google"; +import "../style/globals.css"; +import { ReactElement, ReactNode } from "react"; +import { cn } from "@/lib/utils"; +import { NextFont } from "next/dist/compiled/@next/font"; +import { ThemeProvider } from "@/components/theme-provider"; -const geistSans = localFont({ - src: "./fonts/GeistVF.woff", - variable: "--font-geist-sans", - weight: "100 900", -}); -const geistMono = localFont({ - src: "./fonts/GeistMonoVF.woff", - variable: "--font-geist-mono", - weight: "100 900", -}); +const inter: NextFont = Inter({ subsets: ["latin"] }); +/** + * The metadata for this app. + */ export const metadata: Metadata = { - title: "Create Next App", - description: "Generated by create next app", + title: "PulseApp", + description: + "A lightweight service monitoring solution for tracking the availability of whatever service your heart desires!", + openGraph: { + images: [ + { + url: "https://pulseapp.cc/logo.png", + width: 128, + height: 128, + }, + ], + }, + twitter: { + card: "summary", + }, +}; +export const viewport: Viewport = { + themeColor: "#DC2626", }; -export default function RootLayout({ - children, +/** + * The primary layout for this app. + */ +const RootLayout = ({ + children, }: Readonly<{ - children: React.ReactNode; -}>) { - return ( + children: ReactNode; +}>): ReactElement => ( - - {children} - + + + {children} + + - ); -} +); +export default RootLayout; diff --git a/src/app/(pages)/page.tsx b/src/app/(pages)/page.tsx index 6fe62d1..e32a542 100644 --- a/src/app/(pages)/page.tsx +++ b/src/app/(pages)/page.tsx @@ -1,101 +1,9 @@ -import Image from "next/image"; +import { ReactElement } from "react"; +import Greeting from "@/components/landing/greeting"; -export default function Home() { - return ( - - ); -} +const LandingPage = (): ReactElement => ( +
+ +
+); +export default LandingPage; diff --git a/src/app/style/globals.css b/src/app/style/globals.css index 13d40b8..f20e5ca 100644 --- a/src/app/style/globals.css +++ b/src/app/style/globals.css @@ -3,25 +3,92 @@ @tailwind utilities; :root { - --background: #ffffff; - --foreground: #171717; + --background: #ffffff; + --foreground: #171717; } @media (prefers-color-scheme: dark) { - :root { - --background: #0a0a0a; - --foreground: #ededed; - } + :root { + --background: #0a0a0a; + --foreground: #ededed; + } } body { - color: var(--foreground); - background: var(--background); - font-family: Arial, Helvetica, sans-serif; + color: var(--foreground); + background: var(--background); + font-family: Arial, Helvetica, sans-serif; } @layer utilities { - .text-balance { - text-wrap: balance; - } + .text-balance { + text-wrap: balance; + } } + +@layer base { + :root { + --background: 0 0% 100%; + --foreground: 240 10% 3.9%; + --card: 0 0% 100%; + --card-foreground: 240 10% 3.9%; + --popover: 0 0% 100%; + --popover-foreground: 240 10% 3.9%; + --primary: 240 5.9% 10%; + --primary-foreground: 0 0% 98%; + --secondary: 240 4.8% 95.9%; + --secondary-foreground: 240 5.9% 10%; + --muted: 240 4.8% 95.9%; + --muted-foreground: 240 3.8% 46.1%; + --accent: 240 4.8% 95.9%; + --accent-foreground: 240 5.9% 10%; + --destructive: 0 84.2% 60.2%; + --destructive-foreground: 0 0% 98%; + --border: 240 5.9% 90%; + --input: 240 5.9% 90%; + --ring: 240 10% 3.9%; + --chart-1: 12 76% 61%; + --chart-2: 173 58% 39%; + --chart-3: 197 37% 24%; + --chart-4: 43 74% 66%; + --chart-5: 27 87% 67%; + --radius: 0.5rem; + } + + .dark { + --background: 240 10% 3.9%; + --foreground: 0 0% 98%; + --card: 240 10% 3.9%; + --card-foreground: 0 0% 98%; + --popover: 240 10% 3.9%; + --popover-foreground: 0 0% 98%; + --primary: 0 0% 98%; + --primary-foreground: 240 5.9% 10%; + --secondary: 240 3.7% 15.9%; + --secondary-foreground: 0 0% 98%; + --muted: 240 3.7% 15.9%; + --muted-foreground: 240 5% 64.9%; + --accent: 240 3.7% 15.9%; + --accent-foreground: 0 0% 98%; + --destructive: 0 62.8% 30.6%; + --destructive-foreground: 0 0% 98%; + --border: 240 3.7% 15.9%; + --input: 240 3.7% 15.9%; + --ring: 240 4.9% 83.9%; + --chart-1: 220 70% 50%; + --chart-2: 160 60% 45%; + --chart-3: 30 80% 55%; + --chart-4: 280 65% 60%; + --chart-5: 340 75% 55%; + } +} + +@layer base { + * { + @apply border-border; + } + + body { + @apply bg-background text-foreground; + } +} \ No newline at end of file diff --git a/src/components/landing/greeting.tsx b/src/components/landing/greeting.tsx index e69de29..49c4706 100644 --- a/src/components/landing/greeting.tsx +++ b/src/components/landing/greeting.tsx @@ -0,0 +1,44 @@ +import { ReactElement } from "react"; +import Image from "next/image"; +import Link from "next/link"; +import { Button } from "@/components/ui/button"; + +const Greeting = (): ReactElement => ( +
+
+ {/* Logo */} + PulseApp Logo + + {/* Greeting */} +

Pulse App

+

+ A lightweight service monitoring solution for tracking the + availability of whatever service your heart desires! +

+

Coming Soon...

+
+ + {/* GitHub */} + + + +
+); +export default Greeting; diff --git a/src/components/theme-provider.tsx b/src/components/theme-provider.tsx index e69de29..a95c5bc 100644 --- a/src/components/theme-provider.tsx +++ b/src/components/theme-provider.tsx @@ -0,0 +1,9 @@ +"use client"; + +import * as React from "react"; +import { ThemeProvider as NextThemesProvider } from "next-themes"; +import { type ThemeProviderProps } from "next-themes/dist/types"; + +export const ThemeProvider = ({ children, ...props }: ThemeProviderProps) => ( + {children} +); diff --git a/src/components/ui/button.tsx b/src/components/ui/button.tsx index 0270f64..d401551 100644 --- a/src/components/ui/button.tsx +++ b/src/components/ui/button.tsx @@ -1,57 +1,57 @@ -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 { 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 buttonVariants = cva( - "inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50", - { - variants: { - variant: { - default: - "bg-primary text-primary-foreground shadow hover:bg-primary/90", - destructive: - "bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90", - outline: - "border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground", - secondary: - "bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80", - ghost: "hover:bg-accent hover:text-accent-foreground", - link: "text-primary underline-offset-4 hover:underline", - }, - size: { - default: "h-9 px-4 py-2", - sm: "h-8 rounded-md px-3 text-xs", - lg: "h-10 rounded-md px-8", - icon: "h-9 w-9", - }, - }, - defaultVariants: { - variant: "default", - size: "default", - }, - } -) + "inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50", + { + variants: { + variant: { + default: + "bg-primary text-primary-foreground shadow hover:bg-primary/90", + destructive: + "bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90", + outline: + "border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground", + secondary: + "bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80", + ghost: "hover:bg-accent hover:text-accent-foreground", + link: "text-primary underline-offset-4 hover:underline", + }, + size: { + default: "h-9 px-4 py-2", + sm: "h-8 rounded-md px-3 text-xs", + lg: "h-10 rounded-md px-8", + icon: "h-9 w-9", + }, + }, + defaultVariants: { + variant: "default", + size: "default", + }, + } +); export interface ButtonProps - extends React.ButtonHTMLAttributes, - VariantProps { - asChild?: boolean + 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" + ({ className, variant, size, asChild = false, ...props }, ref) => { + const Comp = asChild ? Slot : "button"; + return ( + + ); + } +); +Button.displayName = "Button"; -export { Button, buttonVariants } +export { Button, buttonVariants }; diff --git a/src/lib/utils.ts b/src/lib/utils.ts index bd0c391..e644794 100644 --- a/src/lib/utils.ts +++ b/src/lib/utils.ts @@ -1,6 +1,6 @@ -import { clsx, type ClassValue } from "clsx" -import { twMerge } from "tailwind-merge" +import { type ClassValue, clsx } from "clsx"; +import { twMerge } from "tailwind-merge"; export function cn(...inputs: ClassValue[]) { - return twMerge(clsx(inputs)) + return twMerge(clsx(inputs)); } diff --git a/tailwind.config.ts b/tailwind.config.ts index 021c393..51403e2 100644 --- a/tailwind.config.ts +++ b/tailwind.config.ts @@ -1,19 +1,63 @@ import type { Config } from "tailwindcss"; const config: Config = { - content: [ - "./src/pages/**/*.{js,ts,jsx,tsx,mdx}", - "./src/components/**/*.{js,ts,jsx,tsx,mdx}", - "./src/app/**/*.{js,ts,jsx,tsx,mdx}", - ], - theme: { - extend: { - colors: { - background: "var(--background)", - foreground: "var(--foreground)", - }, + darkMode: ["class"], + content: [ + "./src/pages/**/*.{js,ts,jsx,tsx,mdx}", + "./src/components/**/*.{js,ts,jsx,tsx,mdx}", + "./src/app/**/*.{js,ts,jsx,tsx,mdx}", + ], + theme: { + extend: { + colors: { + background: "hsl(var(--background))", + foreground: "hsl(var(--foreground))", + card: { + DEFAULT: "hsl(var(--card))", + foreground: "hsl(var(--card-foreground))", + }, + popover: { + DEFAULT: "hsl(var(--popover))", + foreground: "hsl(var(--popover-foreground))", + }, + primary: { + DEFAULT: "hsl(var(--primary))", + foreground: "hsl(var(--primary-foreground))", + }, + secondary: { + DEFAULT: "hsl(var(--secondary))", + foreground: "hsl(var(--secondary-foreground))", + }, + muted: { + DEFAULT: "hsl(var(--muted))", + foreground: "hsl(var(--muted-foreground))", + }, + accent: { + DEFAULT: "hsl(var(--accent))", + foreground: "hsl(var(--accent-foreground))", + }, + destructive: { + DEFAULT: "hsl(var(--destructive))", + foreground: "hsl(var(--destructive-foreground))", + }, + border: "hsl(var(--border))", + input: "hsl(var(--input))", + ring: "hsl(var(--ring))", + chart: { + "1": "hsl(var(--chart-1))", + "2": "hsl(var(--chart-2))", + "3": "hsl(var(--chart-3))", + "4": "hsl(var(--chart-4))", + "5": "hsl(var(--chart-5))", + }, + }, + borderRadius: { + lg: "var(--radius)", + md: "calc(var(--radius) - 2px)", + sm: "calc(var(--radius) - 4px)", + }, + }, }, - }, - plugins: [], + plugins: [require("tailwindcss-animate")], }; export default config; diff --git a/tsconfig.json b/tsconfig.json index 7b28589..af0efb2 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,6 +1,10 @@ { "compilerOptions": { - "lib": ["dom", "dom.iterable", "esnext"], + "lib": [ + "dom", + "dom.iterable", + "esnext" + ], "allowJs": true, "skipLibCheck": true, "strict": true, @@ -18,9 +22,18 @@ } ], "paths": { - "@/*": ["./src/*"] + "@/*": [ + "./src/*" + ] } }, - "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], - "exclude": ["node_modules"] + "include": [ + "next-env.d.ts", + "**/*.ts", + "**/*.tsx", + ".next/types/**/*.ts" + ], + "exclude": [ + "node_modules" + ] }