Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
node_modules
coverage
.remember/**
video/build/**
docs/uiux-assets/**
pnpm-lock.yaml
.agents/skills/**/SKILL.md
11 changes: 10 additions & 1 deletion eslint.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,14 @@ import nextTypeScript from "eslint-config-next/typescript"
export default defineConfig([
...nextVitals,
...nextTypeScript,
globalIgnores([".next/**", "out/**", "build/**", "next-env.d.ts", "docs/uiux-assets/**"]),
globalIgnores([
".next/**",
"out/**",
"build/**",
"video/build/**",
"video/out/**",
"video/node_modules/**",
"next-env.d.ts",
"docs/uiux-assets/**",
]),
])
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,6 @@
"react": "19.2.8",
"react-dom": "19.2.8",
"react-hook-form": "^7.83.0",
"shadcn": "^4.16.0",
"sonner": "^2.0.7",
"tailwind-merge": "^3.6.0",
"tw-animate-css": "^1.4.0",
Expand All @@ -52,6 +51,7 @@
"eslint": "^9.39.1",
"eslint-config-next": "16.2.12",
"prettier": "^3.9.6",
"shadcn": "^4.16.0",
"tailwindcss": "^4.3.3",
"typescript": "5.9.3"
}
Expand Down
6 changes: 3 additions & 3 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 2 additions & 6 deletions src/components/landing/pilot-form-lazy.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,6 @@
import * as React from "react"
import dynamic from "next/dynamic"

/**
* Placeholder that mirrors the form's card container and reserves height, so the
* swap to the real form doesn't shift the page. Kept intentionally quiet.
*/
function FormSkeleton() {
return (
<div
Expand All @@ -28,8 +24,8 @@ function FormSkeleton() {
)
}

// ssr:false keeps the validation stack (zod + react-hook-form + radix) out of
// the home's first-load JS entirely; it loads as an async chunk on approach.
// Keep the validation stack out of the initial landing-page bundle; load it as
// the visitor approaches the pilot form below the fold.
const PilotForm = dynamic(
() => import("@/components/landing/pilot-form").then((m) => m.PilotForm),
{ ssr: false, loading: () => <FormSkeleton /> },
Expand Down
49 changes: 0 additions & 49 deletions src/components/ui/badge.tsx

This file was deleted.

88 changes: 0 additions & 88 deletions src/components/ui/card.tsx

This file was deleted.

28 changes: 1 addition & 27 deletions src/components/ui/form.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -116,23 +116,6 @@ const FormControl = React.forwardRef<
})
FormControl.displayName = "FormControl"

const FormDescription = React.forwardRef<
HTMLParagraphElement,
React.HTMLAttributes<HTMLParagraphElement>
>(({ className, ...props }, ref) => {
const { formDescriptionId } = useFormField()

return (
<p
ref={ref}
id={formDescriptionId}
className={cn("text-sm text-muted-foreground", className)}
{...props}
/>
)
})
FormDescription.displayName = "FormDescription"

const FormMessage = React.forwardRef<
HTMLParagraphElement,
React.HTMLAttributes<HTMLParagraphElement>
Expand All @@ -158,13 +141,4 @@ const FormMessage = React.forwardRef<
})
FormMessage.displayName = "FormMessage"

export {
useFormField,
Form,
FormItem,
FormLabel,
FormControl,
FormDescription,
FormMessage,
FormField,
}
export { useFormField, Form, FormItem, FormLabel, FormControl, FormMessage, FormField }
33 changes: 0 additions & 33 deletions src/components/ui/select.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -8,16 +8,6 @@ import { ChevronDownIcon, CheckIcon, ChevronUpIcon } from "lucide-react"

const Select = SelectPrimitive.Root

function SelectGroup({ className, ...props }: SelectPrimitive.Group.Props) {
return (
<SelectPrimitive.Group
data-slot="select-group"
className={cn("scroll-my-1 p-1", className)}
{...props}
/>
)
}

function SelectValue({ className, ...props }: SelectPrimitive.Value.Props) {
return (
<SelectPrimitive.Value
Expand Down Expand Up @@ -96,16 +86,6 @@ function SelectContent({
)
}

function SelectLabel({ className, ...props }: SelectPrimitive.GroupLabel.Props) {
return (
<SelectPrimitive.GroupLabel
data-slot="select-label"
className={cn("px-1.5 py-1 text-xs text-muted-foreground", className)}
{...props}
/>
)
}

function SelectItem({ className, children, ...props }: SelectPrimitive.Item.Props) {
return (
<SelectPrimitive.Item
Expand All @@ -130,16 +110,6 @@ function SelectItem({ className, children, ...props }: SelectPrimitive.Item.Prop
)
}

function SelectSeparator({ className, ...props }: SelectPrimitive.Separator.Props) {
return (
<SelectPrimitive.Separator
data-slot="select-separator"
className={cn("pointer-events-none -mx-1 my-1 h-px bg-border", className)}
{...props}
/>
)
}

function SelectScrollUpButton({
className,
...props
Expand Down Expand Up @@ -179,12 +149,9 @@ function SelectScrollDownButton({
export {
Select,
SelectContent,
SelectGroup,
SelectItem,
SelectLabel,
SelectScrollDownButton,
SelectScrollUpButton,
SelectSeparator,
SelectTrigger,
SelectValue,
}
21 changes: 0 additions & 21 deletions src/components/ui/separator.tsx

This file was deleted.

18 changes: 0 additions & 18 deletions src/components/ui/textarea.tsx

This file was deleted.

2 changes: 1 addition & 1 deletion tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -26,5 +26,5 @@
"**/*.ts",
"**/*.tsx"
],
"exclude": ["node_modules"]
"exclude": ["node_modules", "video"]

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Run the video typecheck in CI before excluding it

As checked in .github/workflows/ci.yml, CI installs only the root pnpm workspace and runs the root scripts; pnpm-workspace.yaml includes only .. Excluding video here therefore means its separate npm run lint—including its TypeScript check—never runs in CI, so invalid Remotion imports or API usage can merge while every required root check passes. Add a CI step that installs and validates video/, or include it in the managed workspace, before isolating it from the root typecheck.

AGENTS.md reference: AGENTS.md:L72-L78

Useful? React with 👍 / 👎.

}
11 changes: 11 additions & 0 deletions video/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
node_modules
dist
build
.DS_Store
.env

# Source MOVs are local stock assets and are intentionally kept out of Git.
public/assets

# Ignore rendered outputs.
out
5 changes: 5 additions & 0 deletions video/.prettierrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"useTabs": false,
"bracketSpacing": true,
"tabWidth": 2
}
Loading