chore: lint

This commit is contained in:
Bereket Engida
2026-03-01 18:01:13 -08:00
parent 083e2122c1
commit fec020f111
7 changed files with 114 additions and 110 deletions

View File

@@ -53,22 +53,22 @@ export function ChangelogContent({ messages }: { messages: ReleaseMessage[] }) {
<Markdown
rehypePlugins={[[rehypeHighlight]]}
components={{
h2: ({ children, ...props }) => (
<h2
className="text-base font-medium tracking-tight text-neutral-800 dark:text-neutral-200 mt-4 mb-2"
{...props}
>
{children}
</h2>
),
h3: ({ children, ...props }) => (
<h3
className="text-sm font-medium text-neutral-700 dark:text-neutral-300 mt-3 mb-1.5 pb-1 border-b border-dashed border-foreground/[0.06]"
{...props}
>
{children}
</h3>
),
h2: ({ children, ...props }) => (
<h2
className="text-base font-medium tracking-tight text-neutral-800 dark:text-neutral-200 mt-4 mb-2"
{...props}
>
{children}
</h2>
),
h3: ({ children, ...props }) => (
<h3
className="text-sm font-medium text-neutral-700 dark:text-neutral-300 mt-3 mb-1.5 pb-1 border-b border-dashed border-foreground/[0.06]"
{...props}
>
{children}
</h3>
),
p: (props) => (
<p
className="text-xs text-neutral-500 dark:text-neutral-400 leading-relaxed my-1"

View File

@@ -53,10 +53,10 @@ function EnterpriseHero() {
}}
className="flex items-center gap-2 py-1.5 border-b border-dashed border-foreground/[0.06] last:border-0"
>
<span className="text-foreground/40 dark:text-foreground/35 font-mono text-[10px] leading-none select-none shrink-0">
+
</span>
<span className="text-[11px] text-foreground/65 dark:text-foreground/55 font-mono tracking-wide">
<span className="text-foreground/40 dark:text-foreground/35 font-mono text-[10px] leading-none select-none shrink-0">
+
</span>
<span className="text-[11px] text-foreground/65 dark:text-foreground/55 font-mono tracking-wide">
{item}
</span>
</motion.div>
@@ -278,23 +278,23 @@ export function EnterprisePageClient() {
</button>
</form>
<p className="mt-4 text-foreground/40 dark:text-foreground/30 text-[10px] leading-relaxed">
By submitting, you agree to our{" "}
<Link
href="/terms"
className="underline hover:text-foreground/55"
>
Terms of Service
</Link>{" "}
and{" "}
<Link
href="/privacy"
className="underline hover:text-foreground/55"
>
Privacy Policy
</Link>
.
</p>
<p className="mt-4 text-foreground/40 dark:text-foreground/30 text-[10px] leading-relaxed">
By submitting, you agree to our{" "}
<Link
href="/terms"
className="underline hover:text-foreground/55"
>
Terms of Service
</Link>{" "}
and{" "}
<Link
href="/privacy"
className="underline hover:text-foreground/55"
>
Privacy Policy
</Link>
.
</p>
</div>
</div>
</motion.div>

View File

@@ -2,10 +2,7 @@
import { motion } from "framer-motion";
import { HalftoneBackground } from "@/components/landing/halftone-bg";
import {
FrameworkContent,
FrameworkHero,
} from "../products/products-client";
import { FrameworkContent, FrameworkHero } from "../products/products-client";
export default function FrameworkPage() {
return (

View File

@@ -656,7 +656,11 @@ html:not([data-anchor-scrolling]) {
@media (min-width: 64rem) {
.docs-layout {
--fd-page-width: calc(100vw - var(--landing-left-pane-width) - var(--staggered-nav-cta-width));
--fd-page-width: calc(
100vw -
var(--landing-left-pane-width) -
var(--staggered-nav-cta-width)
);
}
.docs-layout #nd-page {

View File

@@ -1194,17 +1194,17 @@ export function AiNativeSection() {
<div className="mt-8">
<div className="flex items-center gap-3 mb-3">
<div className="flex-1 border-t border-foreground/[0.06]" />
<span className="text-[10px] text-foreground/70 dark:text-foreground/55 font-mono tracking-wider uppercase shrink-0">
AI Native
</span>
<span className="text-[10px] text-foreground/70 dark:text-foreground/55 font-mono tracking-wider uppercase shrink-0">
AI Native
</span>
</div>
<p className="text-[14px] text-foreground/80 dark:text-foreground/70 leading-[1.9] mb-5">
Your auth lives in{" "}
<span className="text-foreground/90 dark:text-foreground/80">
your codebase
</span>{" "}
&mdash; so AI can configure it. Ships with{" "}
<span className="inline-flex items-center gap-1 text-foreground/90 dark:text-foreground/80">
<p className="text-[14px] text-foreground/80 dark:text-foreground/70 leading-[1.9] mb-5">
Your auth lives in{" "}
<span className="text-foreground/90 dark:text-foreground/80">
your codebase
</span>{" "}
&mdash; so AI can configure it. Ships with{" "}
<span className="inline-flex items-center gap-1 text-foreground/90 dark:text-foreground/80">
<svg
xmlns="http://www.w3.org/2000/svg"
width="11"
@@ -1227,10 +1227,10 @@ export function AiNativeSection() {
<path d="M6 18a4 4 0 0 1-1.967-.516" />
<path d="M19.967 17.484A4 4 0 0 1 18 18" />
</svg>
MCP server
</span>
,{" "}
<span className="inline-flex items-center gap-1 text-foreground/90 dark:text-foreground/80">
MCP server
</span>
,{" "}
<span className="inline-flex items-center gap-1 text-foreground/90 dark:text-foreground/80">
<svg
xmlns="http://www.w3.org/2000/svg"
width="11"
@@ -1246,10 +1246,10 @@ export function AiNativeSection() {
<polyline points="4 17 10 11 4 5" />
<line x1="12" x2="20" y1="19" y2="19" />
</svg>
Claude Code skills
</span>
, and{" "}
<span className="inline-flex items-center gap-1 text-foreground/90 dark:text-foreground/80">
Claude Code skills
</span>
, and{" "}
<span className="inline-flex items-center gap-1 text-foreground/90 dark:text-foreground/80">
<svg
xmlns="http://www.w3.org/2000/svg"
width="11"
@@ -1273,12 +1273,12 @@ export function AiNativeSection() {
<div className="border border-dashed border-foreground/[0.08] overflow-hidden">
{/* Prompt line */}
<div className="flex items-center gap-2 px-3 py-2 border-b border-foreground/[0.06] bg-foreground/[0.015]">
<span className="text-foreground/50 font-mono text-xs select-none">
&rsaquo;
</span>
<span className="text-[11px] font-mono text-foreground/80 dark:text-foreground/70">
Add Google login and 2FA to my app
</span>
<span className="text-foreground/50 font-mono text-xs select-none">
&rsaquo;
</span>
<span className="text-[11px] font-mono text-foreground/80 dark:text-foreground/70">
Add Google login and 2FA to my app
</span>
</div>
{/* Steps */}
@@ -1288,12 +1288,12 @@ export function AiNativeSection() {
key={step.text}
className="flex items-center gap-2.5 px-3 py-1.5"
>
<span className="text-[8px] font-mono uppercase tracking-wider text-foreground/60 dark:text-foreground/50 w-8 shrink-0">
{step.label}
</span>
<span className="text-[10px] font-mono text-foreground/75 dark:text-foreground/65 truncate">
{step.text}
</span>
<span className="text-[8px] font-mono uppercase tracking-wider text-foreground/60 dark:text-foreground/50 w-8 shrink-0">
{step.label}
</span>
<span className="text-[10px] font-mono text-foreground/75 dark:text-foreground/65 truncate">
{step.text}
</span>
{"lines" in step && typeof step.lines === "number" && (
<span className="text-[9px] font-mono text-emerald-600/80 dark:text-emerald-400/70 ml-auto shrink-0">
+{step.lines}
@@ -1323,12 +1323,12 @@ export function AiNativeSection() {
<div className="flex divide-x divide-foreground/[0.06]">
{mcpClients.map((mc) => (
<div key={mc.name} className="flex-1 px-3 py-2">
<p className="text-[8px] font-mono uppercase tracking-wider text-foreground/55 dark:text-foreground/45 mb-0.5">
{mc.name}
</p>
<code className="text-[9px] font-mono text-foreground/70 dark:text-foreground/55 truncate block">
{mc.cmd}
</code>
<p className="text-[8px] font-mono uppercase tracking-wider text-foreground/55 dark:text-foreground/45 mb-0.5">
{mc.name}
</p>
<code className="text-[9px] font-mono text-foreground/70 dark:text-foreground/55 truncate block">
{mc.cmd}
</code>
</div>
))}
</div>

View File

@@ -196,7 +196,10 @@ export function HalftoneBackground() {
className="absolute inset-0 overflow-hidden bg-background"
aria-hidden="true"
>
<canvas ref={canvasRef} className="w-full h-full invert opacity-50 dark:invert-0 dark:opacity-100" />
<canvas
ref={canvasRef}
className="w-full h-full invert opacity-50 dark:invert-0 dark:opacity-100"
/>
</div>
);
}

View File

@@ -275,42 +275,42 @@ export function StaggeredNavFiles() {
);
})}
{/* Enterprise tab */}
<motion.div
initial={{ opacity: 0, y: -4 }}
animate={{ opacity: 1, y: 0 }}
transition={{
duration: 0.2,
delay: 0.155,
ease: "easeOut",
}}
className="flex-1"
>
<Link
href="/enterprise"
className={`group/tab relative flex items-center justify-center gap-1.5 px-2 xl:px-4 py-3 h-full border-r ${tabDividerClass} transition-colors duration-150 ${
isActive("/enterprise")
? `bg-background border-b-2 ${activeTabBorderClass}`
: "bg-transparent hover:bg-foreground/[0.03]"
}`}
{/* Enterprise tab */}
<motion.div
initial={{ opacity: 0, y: -4 }}
animate={{ opacity: 1, y: 0 }}
transition={{
duration: 0.2,
delay: 0.155,
ease: "easeOut",
}}
className="flex-1"
>
<span
className={`font-mono text-xs uppercase tracking-wider transition-colors duration-150 whitespace-nowrap ${
<Link
href="/enterprise"
className={`group/tab relative flex items-center justify-center gap-1.5 px-2 xl:px-4 py-3 h-full border-r ${tabDividerClass} transition-colors duration-150 ${
isActive("/enterprise")
? "text-foreground"
: "text-foreground/65 dark:text-foreground/50 group-hover/tab:text-foreground/75"
? `bg-background border-b-2 ${activeTabBorderClass}`
: "bg-transparent hover:bg-foreground/[0.03]"
}`}
>
enterprise
</span>
</Link>
</motion.div>
<span
className={`font-mono text-xs uppercase tracking-wider transition-colors duration-150 whitespace-nowrap ${
isActive("/enterprise")
? "text-foreground"
: "text-foreground/65 dark:text-foreground/50 group-hover/tab:text-foreground/75"
}`}
>
enterprise
</span>
</Link>
</motion.div>
{/* Resources folder tab */}
<motion.div
initial={{ opacity: 0, y: -4 }}
animate={{ opacity: 1, y: 0 }}
transition={{ duration: 0.2, delay: 0.17, ease: "easeOut" }}
{/* Resources folder tab */}
<motion.div
initial={{ opacity: 0, y: -4 }}
animate={{ opacity: 1, y: 0 }}
transition={{ duration: 0.2, delay: 0.17, ease: "easeOut" }}
className="relative flex-1"
onMouseEnter={openResources}
onMouseLeave={closeResources}