feat: add new UI components and improve existing ones

- Introduced `Field` and `Label` components for better form handling.
- Refactored `Input` and `Textarea` components to use forward refs and improved styling.
- Updated `PendingSubmitButton` to use the new `Button` component.
- Enhanced `Skeleton` component for better layout handling.
- Revamped `Toast` component to support live regions and improved accessibility.
- Updated sidebar configuration to use typed icons.
- Added phase 3 UI boundary checks to prevent usage of deprecated imports.
- Implemented new authentication action handler for better cookie management.
- Improved setup logic for freelancer accounts with repair functionality.
This commit is contained in:
Poyraz
2026-07-10 22:47:02 +03:00
parent ae8fa1425c
commit 24fcdf9a77
28 changed files with 1183 additions and 943 deletions
+8 -23
View File
@@ -11,7 +11,6 @@ import {
Kanban,
Wallet,
} from "lucide-react";
import { Typography } from "poyraz-ui/atoms";
type AuthPageShellProps = {
title: string;
@@ -76,20 +75,14 @@ export function AuthPageShell({
<div className="relative z-10 px-10">
<motion.div {...fadeUp}>
<Typography
variant="h1"
className="max-w-2xl text-5xl leading-[1.02] text-primary-foreground"
>
<h1 className="max-w-2xl text-5xl font-semibold leading-[1.02] text-primary-foreground">
Freelancer işlerini, müşterilerini ve finansını tek yerde yönet.
</Typography>
<Typography
variant="lead"
className="mt-6 max-w-xl text-primary-foreground/78"
>
</h1>
<p className="mt-6 max-w-xl text-lg leading-8 text-primary-foreground/78">
Neta, günlük operasyonunu, projelerini, side projectlerini ve
temel finans durumunu sade raporlarla takip etmen için
tasarlanır.
</Typography>
</p>
</motion.div>
<motion.div
@@ -122,15 +115,7 @@ export function AuthPageShell({
>
GitHub <ArrowUpRight className="h-3.5 w-3.5 inline" />
</Link>
<span> üzerinden ulaşabilirsin, </span>
<Link
href="https://ui.poyrazavsever.com"
className="font-semibold text-primary-foreground underline-offset-4 hover:underline"
target="_blank"
>
Poyraz UI <ArrowUpRight className="h-3.5 w-3.5 inline" />
</Link>
<span> ile tasarlandı, </span>
<span> üzerinden ulaşabilirsin. </span>
<Link
href="https://poyrazavsever.com"
className="inline-flex items-center gap-1 font-semibold text-primary-foreground underline-offset-4 hover:underline"
@@ -162,10 +147,10 @@ export function AuthPageShell({
</div>
<div className="space-y-2 text-center lg:text-left">
<Typography variant="h2" className="text-3xl">
<h2 className="text-3xl font-semibold tracking-normal text-foreground">
{title}
</Typography>
<Typography variant="muted">{description}</Typography>
</h2>
<p className="text-sm leading-6 text-muted-foreground">{description}</p>
</div>
<div className="mt-8 space-y-6">
+3 -2
View File
@@ -1,7 +1,7 @@
"use client";
import { useFormStatus } from "react-dom";
import { Button } from "poyraz-ui/atoms";
import { Button } from "@/components/ui/button";
import { Loader2 } from "lucide-react";
import React from "react";
@@ -12,12 +12,13 @@ interface SubmitButtonProps extends React.ComponentProps<typeof Button> {
export function SubmitButton({
children,
pendingText,
type = "submit",
...props
}: SubmitButtonProps) {
const { pending } = useFormStatus();
return (
<Button disabled={pending} {...props}>
<Button type={type} disabled={pending} {...props}>
{pending ? (
<>
<Loader2 className="h-4 w-4 animate-spin" />