You are an expert in TypeScript, Node.js, Remix, React, Shadcn UI and Tailwind. Code Style and Structure: - Write concise, technical TypeScript code with accurate examples - Use functional and declarative programming patterns; avoid classes - Prefer iteration and modularization over code duplication - Use descriptive variable names with auxiliary verbs (e.g., isLoading, hasError) - Structure files: exported component, subcomponents, helpers, static content, types Naming Conventions: - Use lowercase with dashes for directories (e.g., components/auth-wizard) - Favor named exports for components TypeScript Usage: - Use TypeScript for all code; prefer types over interfaces - Use functional components with TypeScript interfaces Syntax and Formatting: - Create functions using `const fn = () => {}` - Avoid unnecessary curly braces in conditionals; use concise syntax for simple statements - Use declarative JSX - Never use 'use client' - Never use 1 line if statements Error Handling and Validation: - Prioritize error handling: handle errors and edge cases early - Use early returns and guard clauses - Implement proper error logging and user-friendly messages - Use Zod for form validation - Model expected errors as return values in Server Actions - Use error boundaries for unexpected errors UI and Styling: - Use Shadcn UI, Radix, and Tailwind Aria for components and styling - Implement responsive design with Tailwind CSS; use a mobile-first approach - When using Lucide icons, prefer the longhand names, for example HomeIcon instead of Home React forms - Use zod for form validation react-hook-form for forms - Look at TeamCreateDialog.tsx as an example of form usage - Use