fix: remove Vercel Analytics for static export compatibility
Remove Vercel Analytics due to static export incompatibility. #VERCEL_SKIP Co-authored-by: Jeff Emmett <46964190+Jeff-Emmett@users.noreply.github.com>
This commit is contained in:
parent
85a2853d4e
commit
52639621f4
|
|
@ -28,8 +28,8 @@ export default function About() {
|
||||||
</div>
|
</div>
|
||||||
<div className="relative h-[400px] rounded-lg overflow-hidden">
|
<div className="relative h-[400px] rounded-lg overflow-hidden">
|
||||||
<img
|
<img
|
||||||
src="/rustic-log-cabin-in-forest-with-dog.jpg"
|
src="https://hebbkx1anhila5yf.public.blob.vercel-storage.com/IMG_20251102_122853_047-GiNIS8BNoexGmhj8mowW475waeD9TL.jpg"
|
||||||
alt="John's log cabin in the woods"
|
alt="John standing next to massive old growth tree"
|
||||||
className="w-full h-full object-cover"
|
className="w-full h-full object-cover"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -199,8 +199,8 @@ export default function About() {
|
||||||
</div>
|
</div>
|
||||||
<div className="relative h-[400px] rounded-lg overflow-hidden">
|
<div className="relative h-[400px] rounded-lg overflow-hidden">
|
||||||
<img
|
<img
|
||||||
src="/shiitake-mushrooms-growing-on-logs-in-forest.jpg"
|
src="https://hebbkx1anhila5yf.public.blob.vercel-storage.com/IMG_20251102_122710_780-7GtAuktkY0yLGu87XmHgdeYN8ZiWf1.jpg"
|
||||||
alt="Shiitake cultivation"
|
alt="John working with logs for shiitake cultivation"
|
||||||
className="w-full h-full object-cover"
|
className="w-full h-full object-cover"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -33,13 +33,24 @@ export default function EventsPage() {
|
||||||
<Navigation />
|
<Navigation />
|
||||||
|
|
||||||
{/* Hero Section */}
|
{/* Hero Section */}
|
||||||
<section className="py-16 px-4 bg-muted/30">
|
<section className="py-16 px-4 bg-muted/30 forest-texture">
|
||||||
<div className="container mx-auto max-w-4xl text-center">
|
<div className="container mx-auto max-w-6xl">
|
||||||
<h1 className="text-5xl font-bold text-foreground mb-6 text-balance">Mushroom Cultivation Courses</h1>
|
<div className="grid md:grid-cols-2 gap-12 items-center">
|
||||||
<p className="text-xl text-muted-foreground leading-relaxed text-pretty">
|
<div>
|
||||||
Learn the ancient art of shiitake cultivation in the heart of a working forest. Hands-on courses taught by
|
<h1 className="text-5xl font-bold text-foreground mb-6 text-balance">Courses and Events</h1>
|
||||||
someone who lives and breathes mushroom farming.
|
<p className="text-xl text-muted-foreground leading-relaxed text-pretty">
|
||||||
</p>
|
Learn the ancient art of shiitake cultivation in the heart of a working forest. Hands-on courses taught
|
||||||
|
by someone who lives and breathes mushroom farming.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div className="relative h-[400px] rounded-lg overflow-hidden">
|
||||||
|
<img
|
||||||
|
src="https://hebbkx1anhila5yf.public.blob.vercel-storage.com/IMG_20251102_122911_830-2Q0ZOzzzL4YAfdfMMCFpHnOyoCy87p.jpg"
|
||||||
|
alt="Vibrant coral mushrooms in the forest"
|
||||||
|
className="w-full h-full object-cover"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
|
@ -79,9 +90,33 @@ export default function EventsPage() {
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
{/* Experience Section */}
|
{/* Experience Section */}
|
||||||
<section className="py-16 px-4 bg-muted/30">
|
<section className="py-16 px-4 bg-muted/30 moss-texture">
|
||||||
<div className="container mx-auto max-w-6xl">
|
<div className="container mx-auto max-w-6xl">
|
||||||
<h2 className="text-3xl font-bold text-foreground mb-12 text-center">The Learning Experience</h2>
|
<h2 className="text-3xl font-bold text-foreground mb-8 text-center">The Learning Experience</h2>
|
||||||
|
|
||||||
|
<div className="grid md:grid-cols-3 gap-6 mb-12">
|
||||||
|
<div className="relative h-[250px] rounded-lg overflow-hidden">
|
||||||
|
<img
|
||||||
|
src="https://hebbkx1anhila5yf.public.blob.vercel-storage.com/IMG_20251102_122707_376-AQekit9vQDRnqWMpzrQY4xP8WvC8vI.jpg"
|
||||||
|
alt="Morel mushroom in the forest"
|
||||||
|
className="w-full h-full object-cover"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div className="relative h-[250px] rounded-lg overflow-hidden">
|
||||||
|
<img
|
||||||
|
src="https://hebbkx1anhila5yf.public.blob.vercel-storage.com/IMG_20251102_122907_932-LpmXYCIUZszbpOlB2dHqAv8nJGCtZU.jpg"
|
||||||
|
alt="Yellow coral mushrooms on moss"
|
||||||
|
className="w-full h-full object-cover"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div className="relative h-[250px] rounded-lg overflow-hidden">
|
||||||
|
<img
|
||||||
|
src="https://hebbkx1anhila5yf.public.blob.vercel-storage.com/IMG_20251102_122904_554-FMaSl7fxVmpFdmsHaZEX3E5Vh0NqGN.jpg"
|
||||||
|
alt="Ghost pipe plant in the forest"
|
||||||
|
className="w-full h-full object-cover"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div className="grid md:grid-cols-2 gap-8">
|
<div className="grid md:grid-cols-2 gap-8">
|
||||||
<Card className="border-border">
|
<Card className="border-border">
|
||||||
|
|
|
||||||
|
|
@ -158,6 +158,7 @@
|
||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Increased overlay opacity and ensured text is above overlay */
|
||||||
.forest-texture::before {
|
.forest-texture::before {
|
||||||
content: "";
|
content: "";
|
||||||
position: absolute;
|
position: absolute;
|
||||||
|
|
@ -165,8 +166,16 @@
|
||||||
left: 0;
|
left: 0;
|
||||||
right: 0;
|
right: 0;
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
background-color: rgba(250, 245, 235, 0.85);
|
background-color: rgba(250, 245, 235, 0.92);
|
||||||
pointer-events: none;
|
pointer-events: none;
|
||||||
|
z-index: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Ensure all content is above the overlay with full opacity */
|
||||||
|
.forest-texture > * {
|
||||||
|
position: relative;
|
||||||
|
z-index: 1;
|
||||||
|
opacity: 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
.moss-texture {
|
.moss-texture {
|
||||||
|
|
|
||||||
|
|
@ -1,15 +1,15 @@
|
||||||
import type { Metadata } from 'next'
|
import type React from "react"
|
||||||
import { Geist, Geist_Mono } from 'next/font/google'
|
import type { Metadata } from "next"
|
||||||
import { Analytics } from '@vercel/analytics/next'
|
import { Geist, Geist_Mono } from "next/font/google"
|
||||||
import './globals.css'
|
import "./globals.css"
|
||||||
|
|
||||||
const _geist = Geist({ subsets: ["latin"] });
|
const _geist = Geist({ subsets: ["latin"] })
|
||||||
const _geistMono = Geist_Mono({ subsets: ["latin"] });
|
const _geistMono = Geist_Mono({ subsets: ["latin"] })
|
||||||
|
|
||||||
export const metadata: Metadata = {
|
export const metadata: Metadata = {
|
||||||
title: 'v0 App',
|
title: "Shiitake John's Woodlot",
|
||||||
description: 'Created with v0',
|
description: "Homegrown shiitake mushrooms from 20 acres of old growth forest on Texada Island",
|
||||||
generator: 'v0.app',
|
generator: "v0.app",
|
||||||
}
|
}
|
||||||
|
|
||||||
export default function RootLayout({
|
export default function RootLayout({
|
||||||
|
|
@ -19,10 +19,7 @@ export default function RootLayout({
|
||||||
}>) {
|
}>) {
|
||||||
return (
|
return (
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
<body className={`font-sans antialiased`}>
|
<body className={`font-sans antialiased`}>{children}</body>
|
||||||
{children}
|
|
||||||
<Analytics />
|
|
||||||
</body>
|
|
||||||
</html>
|
</html>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
57
app/page.tsx
57
app/page.tsx
|
|
@ -39,8 +39,8 @@ export default function Home() {
|
||||||
</div>
|
</div>
|
||||||
<div className="relative h-[400px] rounded-lg overflow-hidden">
|
<div className="relative h-[400px] rounded-lg overflow-hidden">
|
||||||
<img
|
<img
|
||||||
src="/shiitake-mushrooms-growing-on-logs-in-forest.jpg"
|
src="https://hebbkx1anhila5yf.public.blob.vercel-storage.com/IMG_20251102_122857_357-qnZHfuPlKuvI6Qb5G9QucUFgve1FZk.jpg"
|
||||||
alt="Shiitake mushrooms on logs"
|
alt="Turkey tail mushrooms growing on mossy log"
|
||||||
className="w-full h-full object-cover"
|
className="w-full h-full object-cover"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -110,26 +110,41 @@ export default function Home() {
|
||||||
endangered fish depend on for survival. Our careful stewardship ensures clean water flows into nearby
|
endangered fish depend on for survival. Our careful stewardship ensures clean water flows into nearby
|
||||||
lakes, preserving habitat for these unique evolutionary treasures.
|
lakes, preserving habitat for these unique evolutionary treasures.
|
||||||
</p>
|
</p>
|
||||||
<Button
|
<div className="flex flex-col sm:flex-row gap-4">
|
||||||
variant="outline"
|
<Button
|
||||||
className="border-primary text-primary hover:bg-primary/10 bg-transparent"
|
variant="outline"
|
||||||
asChild
|
className="border-primary text-primary hover:bg-primary/10 bg-transparent"
|
||||||
>
|
asChild
|
||||||
<a
|
|
||||||
href="https://bcinvasives.ca/news/texada-island-sticklebacks/"
|
|
||||||
target="_blank"
|
|
||||||
rel="noopener noreferrer"
|
|
||||||
>
|
>
|
||||||
Learn more about the Endangered Stickleback →
|
<a
|
||||||
</a>
|
href="https://bcinvasives.ca/news/texada-island-sticklebacks/"
|
||||||
</Button>
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
>
|
||||||
|
Learn About the Stickleback →
|
||||||
|
</a>
|
||||||
|
</Button>
|
||||||
|
<Button
|
||||||
|
variant="outline"
|
||||||
|
className="border-primary text-primary hover:bg-primary/10 bg-transparent"
|
||||||
|
asChild
|
||||||
|
>
|
||||||
|
<a
|
||||||
|
href="https://texada.org/texada-island-stickleback-society/"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
>
|
||||||
|
Texada Stickleback Society →
|
||||||
|
</a>
|
||||||
|
</Button>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div className="relative h-[400px] rounded-lg overflow-hidden bg-muted/50 flex items-center justify-center">
|
<div className="relative h-[400px] rounded-lg overflow-hidden bg-muted/50 flex items-center justify-center">
|
||||||
<div className="text-center p-8">
|
<img
|
||||||
<div className="text-6xl mb-4">🐟</div>
|
src="https://hebbkx1anhila5yf.public.blob.vercel-storage.com/IMG_20251102_122900_435-wb8VPiXxn7UUctygqQDrIINgVJkDZF.jpg"
|
||||||
<p className="text-lg font-semibold text-foreground mb-2">Texada Island Stickleback</p>
|
alt="Moss and lichen in the forest watershed"
|
||||||
<p className="text-sm text-muted-foreground">One of Earth's youngest and rarest species</p>
|
className="w-full h-full object-cover"
|
||||||
</div>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -141,8 +156,8 @@ export default function Home() {
|
||||||
<div className="grid md:grid-cols-2 gap-12 items-center">
|
<div className="grid md:grid-cols-2 gap-12 items-center">
|
||||||
<div className="relative h-[350px] rounded-lg overflow-hidden">
|
<div className="relative h-[350px] rounded-lg overflow-hidden">
|
||||||
<img
|
<img
|
||||||
src="/rustic-log-cabin-in-forest-with-dog.jpg"
|
src="https://hebbkx1anhila5yf.public.blob.vercel-storage.com/IMG_20251102_122849_429-trLTSHlz0FNvU5yO4XhGqSk8PakrO2.jpg"
|
||||||
alt="Log cabin in the woods"
|
alt="Una the dog in the mossy forest"
|
||||||
className="w-full h-full object-cover"
|
className="w-full h-full object-cover"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@ export function Navigation() {
|
||||||
About Shiitake John
|
About Shiitake John
|
||||||
</Link>
|
</Link>
|
||||||
<Link href="/events" className="text-foreground hover:text-primary transition-colors">
|
<Link href="/events" className="text-foreground hover:text-primary transition-colors">
|
||||||
Events
|
Courses and Events
|
||||||
</Link>
|
</Link>
|
||||||
<Link href="/sponsor">
|
<Link href="/sponsor">
|
||||||
<Button className="bg-[#1a4d2e] hover:bg-[#153d24] text-white">Sponsor the Old Growth</Button>
|
<Button className="bg-[#1a4d2e] hover:bg-[#153d24] text-white">Sponsor the Old Growth</Button>
|
||||||
|
|
|
||||||
|
|
@ -37,7 +37,7 @@
|
||||||
"@radix-ui/react-toggle": "1.1.1",
|
"@radix-ui/react-toggle": "1.1.1",
|
||||||
"@radix-ui/react-toggle-group": "1.1.1",
|
"@radix-ui/react-toggle-group": "1.1.1",
|
||||||
"@radix-ui/react-tooltip": "1.1.6",
|
"@radix-ui/react-tooltip": "1.1.6",
|
||||||
"@vercel/analytics": "latest",
|
"@vercel/analytics": "1.3.1",
|
||||||
"autoprefixer": "^10.4.20",
|
"autoprefixer": "^10.4.20",
|
||||||
"class-variance-authority": "^0.7.1",
|
"class-variance-authority": "^0.7.1",
|
||||||
"clsx": "^2.1.1",
|
"clsx": "^2.1.1",
|
||||||
|
|
|
||||||
|
|
@ -93,8 +93,8 @@ importers:
|
||||||
specifier: 1.1.6
|
specifier: 1.1.6
|
||||||
version: 1.1.6(@types/react-dom@19.0.0)(@types/react@19.0.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
|
version: 1.1.6(@types/react-dom@19.0.0)(@types/react@19.0.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
|
||||||
'@vercel/analytics':
|
'@vercel/analytics':
|
||||||
specifier: latest
|
specifier: 1.3.1
|
||||||
version: 1.5.0(next@16.0.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(react@19.2.0)
|
version: 1.3.1(next@16.0.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(react@19.2.0)
|
||||||
autoprefixer:
|
autoprefixer:
|
||||||
specifier: ^10.4.20
|
specifier: ^10.4.20
|
||||||
version: 10.4.20(postcss@8.5.0)
|
version: 10.4.20(postcss@8.5.0)
|
||||||
|
|
@ -1201,31 +1201,16 @@ packages:
|
||||||
'@types/react@19.0.0':
|
'@types/react@19.0.0':
|
||||||
resolution: {integrity: sha512-MY3oPudxvMYyesqs/kW1Bh8y9VqSmf+tzqw3ae8a9DZW68pUe3zAdHeI1jc6iAysuRdACnVknHP8AhwD4/dxtg==}
|
resolution: {integrity: sha512-MY3oPudxvMYyesqs/kW1Bh8y9VqSmf+tzqw3ae8a9DZW68pUe3zAdHeI1jc6iAysuRdACnVknHP8AhwD4/dxtg==}
|
||||||
|
|
||||||
'@vercel/analytics@1.5.0':
|
'@vercel/analytics@1.3.1':
|
||||||
resolution: {integrity: sha512-MYsBzfPki4gthY5HnYN7jgInhAZ7Ac1cYDoRWFomwGHWEX7odTEzbtg9kf/QSo7XEsEAqlQugA6gJ2WS2DEa3g==}
|
resolution: {integrity: sha512-xhSlYgAuJ6Q4WQGkzYTLmXwhYl39sWjoMA3nHxfkvG+WdBT25c563a7QhwwKivEOZtPJXifYHR1m2ihoisbWyA==}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
'@remix-run/react': ^2
|
|
||||||
'@sveltejs/kit': ^1 || ^2
|
|
||||||
next: '>= 13'
|
next: '>= 13'
|
||||||
react: ^18 || ^19 || ^19.0.0-rc
|
react: ^18 || ^19
|
||||||
svelte: '>= 4'
|
|
||||||
vue: ^3
|
|
||||||
vue-router: ^4
|
|
||||||
peerDependenciesMeta:
|
peerDependenciesMeta:
|
||||||
'@remix-run/react':
|
|
||||||
optional: true
|
|
||||||
'@sveltejs/kit':
|
|
||||||
optional: true
|
|
||||||
next:
|
next:
|
||||||
optional: true
|
optional: true
|
||||||
react:
|
react:
|
||||||
optional: true
|
optional: true
|
||||||
svelte:
|
|
||||||
optional: true
|
|
||||||
vue:
|
|
||||||
optional: true
|
|
||||||
vue-router:
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
aria-hidden@1.2.6:
|
aria-hidden@1.2.6:
|
||||||
resolution: {integrity: sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==}
|
resolution: {integrity: sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==}
|
||||||
|
|
@ -1634,6 +1619,9 @@ packages:
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
|
server-only@0.0.1:
|
||||||
|
resolution: {integrity: sha512-qepMx2JxAa5jjfzxG79yPPq+8BuFToHd1hm7kI+Z4zAq1ftQiP7HcxMhDDItrbtwVeLg/cY2JnKnrcFkmiswNA==}
|
||||||
|
|
||||||
sharp@0.34.4:
|
sharp@0.34.4:
|
||||||
resolution: {integrity: sha512-FUH39xp3SBPnxWvd5iib1X8XY7J0K0X7d93sie9CJg2PO8/7gmg89Nve6OjItK53/MlAushNNxteBYfM6DEuoA==}
|
resolution: {integrity: sha512-FUH39xp3SBPnxWvd5iib1X8XY7J0K0X7d93sie9CJg2PO8/7gmg89Nve6OjItK53/MlAushNNxteBYfM6DEuoA==}
|
||||||
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
|
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
|
||||||
|
|
@ -2720,7 +2708,9 @@ snapshots:
|
||||||
dependencies:
|
dependencies:
|
||||||
csstype: 3.1.3
|
csstype: 3.1.3
|
||||||
|
|
||||||
'@vercel/analytics@1.5.0(next@16.0.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(react@19.2.0)':
|
'@vercel/analytics@1.3.1(next@16.0.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(react@19.2.0)':
|
||||||
|
dependencies:
|
||||||
|
server-only: 0.0.1
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
next: 16.0.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
|
next: 16.0.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
|
||||||
react: 19.2.0
|
react: 19.2.0
|
||||||
|
|
@ -3086,6 +3076,8 @@ snapshots:
|
||||||
semver@7.7.3:
|
semver@7.7.3:
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
|
server-only@0.0.1: {}
|
||||||
|
|
||||||
sharp@0.34.4:
|
sharp@0.34.4:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@img/colour': 1.0.0
|
'@img/colour': 1.0.0
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue