feat: restructure as pnpm monorepo with Tauri desktop shell

- Migrate to packages/web + packages/desktop workspace layout via git mv
- Add Tauri v2 desktop shell with @tauri-apps/plugin-http for CORS bypass
- Configure Turborepo with package-level dependsOn build graph
- Add semantic-release with exec plugin for GHA output and disabled PR comments
- Fix http:default capability scope to allow all HTTP/HTTPS origins
- Add Vite Tauri integration (clearScreen, TAURI_DEV_HOST, target, envPrefix)
- Add semantic-release.yml and release.yml GitHub Actions workflows
- Fix all Biome lint errors (noArrayIndexKey, noNonNullAssertion, button types)
This commit is contained in:
Offending Commit
2026-04-24 16:52:40 -05:00
parent 9a74182f97
commit 92c4dfd3dd
152 changed files with 14088 additions and 4774 deletions

View File

@@ -0,0 +1,42 @@
import { cn } from "@/lib/utils";
import { forwardRef } from "react";
export type InputProps = React.InputHTMLAttributes<HTMLInputElement>;
export const Input = forwardRef<HTMLInputElement, InputProps>(({ className, ...props }, ref) => (
<input
ref={ref}
className={cn(
"flex w-full rounded-lg px-3 py-2 text-sm transition-all outline-none",
"[background:var(--surface)] [color:var(--text-1)]",
"[border:1px_solid_var(--border-2)]",
"placeholder:[color:var(--text-4)]",
"focus:[border-color:var(--accent)]",
"disabled:opacity-50 disabled:cursor-not-allowed",
className,
)}
{...props}
/>
));
Input.displayName = "Input";
export type TextareaProps = React.TextareaHTMLAttributes<HTMLTextAreaElement>;
export const Textarea = forwardRef<HTMLTextAreaElement, TextareaProps>(
({ className, ...props }, ref) => (
<textarea
ref={ref}
className={cn(
"flex w-full rounded-lg px-3 py-2 text-sm transition-all outline-none resize-none",
"[background:var(--surface)] [color:var(--text-1)]",
"[border:1px_solid_var(--border-2)]",
"placeholder:[color:var(--text-4)]",
"focus:[border-color:var(--accent)]",
"disabled:opacity-50 disabled:cursor-not-allowed",
className,
)}
{...props}
/>
),
);
Textarea.displayName = "Textarea";