@alexourus/ui 0.3.0 → 0.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/blocks/auth-card/index.js +3 -3
- package/dist/blocks/auth-card/index.mjs +2 -2
- package/dist/{chunk-PWXNL2BK.mjs → chunk-HNMYSP3J.mjs} +3 -3
- package/dist/{chunk-PWXNL2BK.mjs.map → chunk-HNMYSP3J.mjs.map} +1 -1
- package/dist/{chunk-PVA5Z3FG.js → chunk-RE54CQZM.js} +3 -3
- package/dist/{chunk-PVA5Z3FG.js.map → chunk-RE54CQZM.js.map} +1 -1
- package/dist/cli.mjs +1556 -0
- package/dist/index.js +106 -106
- package/dist/index.mjs +7 -7
- package/package.json +32 -16
- package/LICENSE +0 -21
package/README.md
CHANGED
|
@@ -40,8 +40,8 @@ export default function App() {
|
|
|
40
40
|
Bileşenleri doğrudan projenizin kaynak koduna eklemek için:
|
|
41
41
|
|
|
42
42
|
```bash
|
|
43
|
-
npx alexourus
|
|
44
|
-
npx alexourus
|
|
43
|
+
npx @alexourus/cli init
|
|
44
|
+
npx @alexourus/cli add button card dialog
|
|
45
45
|
```
|
|
46
46
|
|
|
47
47
|
## 📄 Lisans
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
require('../../chunk-FPNCCKUP.js');
|
|
3
|
+
var chunkRE54CQZM_js = require('../../chunk-RE54CQZM.js');
|
|
5
4
|
require('../../chunk-U225QIWZ.js');
|
|
5
|
+
require('../../chunk-FPNCCKUP.js');
|
|
6
6
|
require('../../chunk-C3X2BPC5.js');
|
|
7
7
|
require('../../chunk-AJKFRN2S.js');
|
|
8
8
|
require('../../chunk-PYCBM7ZF.js');
|
|
@@ -12,7 +12,7 @@ require('../../chunk-CRTXVH5I.js');
|
|
|
12
12
|
|
|
13
13
|
Object.defineProperty(exports, "AuthCard", {
|
|
14
14
|
enumerable: true,
|
|
15
|
-
get: function () { return
|
|
15
|
+
get: function () { return chunkRE54CQZM_js.AuthCard; }
|
|
16
16
|
});
|
|
17
17
|
//# sourceMappingURL=index.js.map
|
|
18
18
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export { AuthCard } from '../../chunk-
|
|
2
|
-
import '../../chunk-6PZRZJKB.mjs';
|
|
1
|
+
export { AuthCard } from '../../chunk-HNMYSP3J.mjs';
|
|
3
2
|
import '../../chunk-TLFSZJN5.mjs';
|
|
3
|
+
import '../../chunk-6PZRZJKB.mjs';
|
|
4
4
|
import '../../chunk-UXNADSIF.mjs';
|
|
5
5
|
import '../../chunk-6KHFGJKO.mjs';
|
|
6
6
|
import '../../chunk-ZOUNOOT4.mjs';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Separator } from './chunk-6PZRZJKB.mjs';
|
|
2
1
|
import { Label } from './chunk-TLFSZJN5.mjs';
|
|
2
|
+
import { Separator } from './chunk-6PZRZJKB.mjs';
|
|
3
3
|
import { Checkbox } from './chunk-UXNADSIF.mjs';
|
|
4
4
|
import { Input } from './chunk-6KHFGJKO.mjs';
|
|
5
5
|
import { Button } from './chunk-ZOUNOOT4.mjs';
|
|
@@ -287,5 +287,5 @@ function AuthCard({
|
|
|
287
287
|
}
|
|
288
288
|
|
|
289
289
|
export { AuthCard };
|
|
290
|
-
//# sourceMappingURL=chunk-
|
|
291
|
-
//# sourceMappingURL=chunk-
|
|
290
|
+
//# sourceMappingURL=chunk-HNMYSP3J.mjs.map
|
|
291
|
+
//# sourceMappingURL=chunk-HNMYSP3J.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/blocks/auth-card/index.tsx"],"names":[],"mappings":"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","file":"chunk-PWXNL2BK.mjs","sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport { Mail, Lock, User, Eye, EyeOff, ArrowRight, Loader2, ArrowLeft } from \"lucide-react\";\nimport { cn } from \"../../lib/utils\";\nimport { Button } from \"../../components/button\";\nimport { Input } from \"../../components/input\";\nimport { Label } from \"../../components/label\";\nimport { Checkbox } from \"../../components/checkbox\";\nimport { Separator } from \"../../components/separator\";\n\nexport interface AuthCardProps extends Omit<React.HTMLAttributes<HTMLDivElement>, \"onError\"> {\n defaultMode?: \"login\" | \"register\" | \"forgot-password\";\n logo?: React.ReactNode;\n title?: string;\n showSocial?: boolean;\n onLogin?: (data: { email: string; password?: string; rememberMe?: boolean }) => Promise<void> | void;\n onRegister?: (data: { name?: string; email: string; password?: string }) => Promise<void> | void;\n onForgotPassword?: (email: string) => Promise<void> | void;\n onSocialLogin?: (provider: \"github\" | \"google\") => void;\n}\n\nexport function AuthCard({\n defaultMode = \"login\",\n logo,\n showSocial = true,\n onLogin,\n onRegister,\n onForgotPassword,\n onSocialLogin,\n className,\n ...props\n}: AuthCardProps) {\n const [mode, setMode] = React.useState<\"login\" | \"register\" | \"forgot-password\">(defaultMode);\n const [showPassword, setShowPassword] = React.useState(false);\n const [loading, setLoading] = React.useState(false);\n\n const [name, setName] = React.useState(\"\");\n const [email, setEmail] = React.useState(\"\");\n const [password, setPassword] = React.useState(\"\");\n const [rememberMe, setRememberMe] = React.useState(false);\n const [agreedTerms, setAgreedTerms] = React.useState(false);\n\n const handleSubmit = async (e: React.FormEvent) => {\n e.preventDefault();\n setLoading(true);\n try {\n if (mode === \"login\") {\n await onLogin?.({ email, password, rememberMe });\n } else if (mode === \"register\") {\n await onRegister?.({ name, email, password });\n } else if (mode === \"forgot-password\") {\n await onForgotPassword?.(email);\n }\n } finally {\n setLoading(false);\n }\n };\n\n return (\n <div\n className={cn(\n \"w-full max-w-md mx-auto rounded-2xl border border-border/80 bg-card p-6 sm:p-8 shadow-card\",\n className\n )}\n {...props}\n >\n {/* Header */}\n <div className=\"flex flex-col items-center text-center space-y-2 mb-6\">\n {logo && <div className=\"mb-2\">{logo}</div>}\n <h2 className=\"text-xl font-bold tracking-tight text-foreground\">\n {mode === \"login\" && \"Hesabınıza Giriş Yapın\"}\n {mode === \"register\" && \"Yeni Hesap Oluşturun\"}\n {mode === \"forgot-password\" && \"Şifrenizi Sıfırlayın\"}\n </h2>\n <p className=\"text-xs text-muted-foreground max-w-xs\">\n {mode === \"login\" && \"Bilgilerinizi girerek yönetim paneline erişin.\"}\n {mode === \"register\" && \"Hızlıca kaydolun ve hemen kullanmaya başlayın.\"}\n {mode === \"forgot-password\" && \"E-posta adresinize sıfırlama bağlantısı göndereceğiz.\"}\n </p>\n </div>\n\n {/* Social Login Buttons */}\n {showSocial && mode !== \"forgot-password\" && (\n <div className=\"space-y-3 mb-6\">\n <div className=\"grid grid-cols-2 gap-2.5\">\n <Button\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n className=\"text-xs font-medium rounded-xl h-9 gap-2 border-border/80 hover:bg-muted/50\"\n onClick={() => onSocialLogin?.(\"github\")}\n >\n <svg className=\"h-4 w-4 fill-current\" viewBox=\"0 0 24 24\">\n <path d=\"M12 0C5.37 0 0 5.37 0 12c0 5.31 3.435 9.795 8.205 11.385.6.105.825-.255.825-.57 0-.285-.015-1.23-.015-2.235-3.015.555-3.795-.735-4.035-1.41-.135-.345-.72-1.41-1.23-1.695-.42-.225-1.02-.78-.015-.795.945-.015 1.62.87 1.845 1.23 1.08 1.815 2.805 1.305 3.495.99.105-.78.42-1.305.765-1.605-2.67-.3-5.46-1.335-5.46-5.925 0-1.305.465-2.385 1.23-3.225-.12-.3-.54-1.53.12-3.18 0 0 1.005-.315 3.3 1.23.96-.27 1.98-.405 3-.405s2.04.135 3 .405c2.295-1.56 3.3-1.23 3.3-1.23.66 1.65.24 2.88.12 3.18.765.84 1.23 1.905 1.23 3.225 0 4.605-2.805 5.625-5.475 5.925.435.375.81 1.095.81 2.22 0 1.605-.015 2.895-.015 3.3 0 .315.225.69.825.57A12.02 12.02 0 0024 12c0-6.63-5.37-12-12-12z\" />\n </svg>\n GitHub\n </Button>\n <Button\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n className=\"text-xs font-medium rounded-xl h-9 gap-2 border-border/80 hover:bg-muted/50\"\n onClick={() => onSocialLogin?.(\"google\")}\n >\n <svg className=\"h-4 w-4\" viewBox=\"0 0 24 24\">\n <path\n fill=\"#4285F4\"\n d=\"M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09z\"\n />\n <path\n fill=\"#34A853\"\n d=\"M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z\"\n />\n <path\n fill=\"#FBBC05\"\n d=\"M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.06H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.94l2.85-2.22.81-.63z\"\n />\n <path\n fill=\"#EA4335\"\n d=\"M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.06l3.66 2.84c.87-2.6 3.3-4.52 6.16-4.52z\"\n />\n </svg>\n Google\n </Button>\n </div>\n\n <div className=\"relative flex items-center justify-center my-4\">\n <Separator />\n <span className=\"absolute bg-card px-2 text-[11px] text-muted-foreground\">\n veya e-posta ile\n </span>\n </div>\n </div>\n )}\n\n {/* Main Form */}\n <form onSubmit={handleSubmit} className=\"space-y-4\">\n {/* Full Name Field (Register Mode) */}\n {mode === \"register\" && (\n <div className=\"space-y-1.5 animate-in fade-in-50 duration-200\">\n <Label htmlFor=\"auth-name\" className=\"text-xs\">\n Ad Soyad\n </Label>\n <Input\n id=\"auth-name\"\n placeholder=\"Alexourus\"\n leftIcon={<User className=\"h-4 w-4\" />}\n value={name}\n onChange={(e) => setName(e.target.value)}\n required\n className=\"h-9 text-xs rounded-xl\"\n />\n </div>\n )}\n\n {/* Email Field */}\n <div className=\"space-y-1.5\">\n <Label htmlFor=\"auth-email\" className=\"text-xs\">\n E-posta Adresi\n </Label>\n <Input\n id=\"auth-email\"\n type=\"email\"\n placeholder=\"ornek@alanadi.com\"\n leftIcon={<Mail className=\"h-4 w-4\" />}\n value={email}\n onChange={(e) => setEmail(e.target.value)}\n required\n className=\"h-9 text-xs rounded-xl\"\n />\n </div>\n\n {/* Password Field (Login & Register Modes) */}\n {mode !== \"forgot-password\" && (\n <div className=\"space-y-1.5\">\n <div className=\"flex items-center justify-between\">\n <Label htmlFor=\"auth-pass\" className=\"text-xs\">\n Şifre\n </Label>\n {mode === \"login\" && (\n <button\n type=\"button\"\n onClick={() => setMode(\"forgot-password\")}\n className=\"text-[11px] text-primary hover:underline cursor-pointer\"\n >\n Şifremi unuttum\n </button>\n )}\n </div>\n <Input\n id=\"auth-pass\"\n type={showPassword ? \"text\" : \"password\"}\n placeholder=\"••••••••\"\n leftIcon={<Lock className=\"h-4 w-4\" />}\n rightIcon={\n <button\n type=\"button\"\n onClick={() => setShowPassword((p) => !p)}\n className=\"text-muted-foreground hover:text-foreground pointer-events-auto cursor-pointer p-0.5\"\n aria-label={showPassword ? \"Şifreyi gizle\" : \"Şifreyi göster\"}\n >\n {showPassword ? <EyeOff className=\"h-4 w-4\" /> : <Eye className=\"h-4 w-4\" />}\n </button>\n }\n value={password}\n onChange={(e) => setPassword(e.target.value)}\n required\n className=\"h-9 text-xs rounded-xl\"\n />\n </div>\n )}\n\n {/* Remember Me / Terms Checkboxes */}\n {mode === \"login\" && (\n <div className=\"flex items-center gap-2 pt-1\">\n <Checkbox\n id=\"remember-me\"\n checked={rememberMe}\n onCheckedChange={(checked) => setRememberMe(!!checked)}\n />\n <Label htmlFor=\"remember-me\" className=\"text-xs cursor-pointer text-muted-foreground\">\n Beni hatırla\n </Label>\n </div>\n )}\n\n {mode === \"register\" && (\n <div className=\"flex items-center gap-2 pt-1\">\n <Checkbox\n id=\"terms-agree\"\n checked={agreedTerms}\n onCheckedChange={(checked) => setAgreedTerms(!!checked)}\n required\n />\n <Label htmlFor=\"terms-agree\" className=\"text-xs cursor-pointer text-muted-foreground\">\n Kullanım şartlarını ve gizlilik politikasını onaylıyorum\n </Label>\n </div>\n )}\n\n {/* Submit Button */}\n <Button\n type=\"submit\"\n disabled={loading}\n className=\"w-full text-xs font-semibold rounded-xl h-9 gap-1.5 mt-2\"\n >\n {loading ? (\n <>\n <Loader2 className=\"h-3.5 w-3.5 animate-spin\" />\n <span>İşleniyor...</span>\n </>\n ) : (\n <>\n <span>\n {mode === \"login\" && \"Giriş Yap\"}\n {mode === \"register\" && \"Hesap Oluştur\"}\n {mode === \"forgot-password\" && \"Sıfırlama Bağlantısı Gönder\"}\n </span>\n <ArrowRight className=\"h-3.5 w-3.5\" />\n </>\n )}\n </Button>\n </form>\n\n {/* Footer Navigation */}\n <div className=\"mt-6 pt-4 border-t border-border/60 text-center text-xs text-muted-foreground\">\n {mode === \"login\" && (\n <p>\n Hesabınız yok mu?{\" \"}\n <button\n type=\"button\"\n onClick={() => setMode(\"register\")}\n className=\"font-semibold text-foreground hover:underline\"\n >\n Hemen Kaydolun\n </button>\n </p>\n )}\n {mode === \"register\" && (\n <p>\n Zaten hesabınız var mı?{\" \"}\n <button\n type=\"button\"\n onClick={() => setMode(\"login\")}\n className=\"font-semibold text-foreground hover:underline\"\n >\n Giriş Yapın\n </button>\n </p>\n )}\n {mode === \"forgot-password\" && (\n <button\n type=\"button\"\n onClick={() => setMode(\"login\")}\n className=\"inline-flex items-center gap-1.5 font-medium text-foreground hover:underline\"\n >\n <ArrowLeft className=\"h-3 w-3\" />\n Giriş sayfasına dön\n </button>\n )}\n </div>\n </div>\n );\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/blocks/auth-card/index.tsx"],"names":[],"mappings":"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","file":"chunk-HNMYSP3J.mjs","sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport { Mail, Lock, User, Eye, EyeOff, ArrowRight, Loader2, ArrowLeft } from \"lucide-react\";\nimport { cn } from \"../../lib/utils\";\nimport { Button } from \"../../components/button\";\nimport { Input } from \"../../components/input\";\nimport { Label } from \"../../components/label\";\nimport { Checkbox } from \"../../components/checkbox\";\nimport { Separator } from \"../../components/separator\";\n\nexport interface AuthCardProps extends Omit<React.HTMLAttributes<HTMLDivElement>, \"onError\"> {\n defaultMode?: \"login\" | \"register\" | \"forgot-password\";\n logo?: React.ReactNode;\n title?: string;\n showSocial?: boolean;\n onLogin?: (data: { email: string; password?: string; rememberMe?: boolean }) => Promise<void> | void;\n onRegister?: (data: { name?: string; email: string; password?: string }) => Promise<void> | void;\n onForgotPassword?: (email: string) => Promise<void> | void;\n onSocialLogin?: (provider: \"github\" | \"google\") => void;\n}\n\nexport function AuthCard({\n defaultMode = \"login\",\n logo,\n showSocial = true,\n onLogin,\n onRegister,\n onForgotPassword,\n onSocialLogin,\n className,\n ...props\n}: AuthCardProps) {\n const [mode, setMode] = React.useState<\"login\" | \"register\" | \"forgot-password\">(defaultMode);\n const [showPassword, setShowPassword] = React.useState(false);\n const [loading, setLoading] = React.useState(false);\n\n const [name, setName] = React.useState(\"\");\n const [email, setEmail] = React.useState(\"\");\n const [password, setPassword] = React.useState(\"\");\n const [rememberMe, setRememberMe] = React.useState(false);\n const [agreedTerms, setAgreedTerms] = React.useState(false);\n\n const handleSubmit = async (e: React.FormEvent) => {\n e.preventDefault();\n setLoading(true);\n try {\n if (mode === \"login\") {\n await onLogin?.({ email, password, rememberMe });\n } else if (mode === \"register\") {\n await onRegister?.({ name, email, password });\n } else if (mode === \"forgot-password\") {\n await onForgotPassword?.(email);\n }\n } finally {\n setLoading(false);\n }\n };\n\n return (\n <div\n className={cn(\n \"w-full max-w-md mx-auto rounded-2xl border border-border/80 bg-card p-6 sm:p-8 shadow-card\",\n className\n )}\n {...props}\n >\n {/* Header */}\n <div className=\"flex flex-col items-center text-center space-y-2 mb-6\">\n {logo && <div className=\"mb-2\">{logo}</div>}\n <h2 className=\"text-xl font-bold tracking-tight text-foreground\">\n {mode === \"login\" && \"Hesabınıza Giriş Yapın\"}\n {mode === \"register\" && \"Yeni Hesap Oluşturun\"}\n {mode === \"forgot-password\" && \"Şifrenizi Sıfırlayın\"}\n </h2>\n <p className=\"text-xs text-muted-foreground max-w-xs\">\n {mode === \"login\" && \"Bilgilerinizi girerek yönetim paneline erişin.\"}\n {mode === \"register\" && \"Hızlıca kaydolun ve hemen kullanmaya başlayın.\"}\n {mode === \"forgot-password\" && \"E-posta adresinize sıfırlama bağlantısı göndereceğiz.\"}\n </p>\n </div>\n\n {/* Social Login Buttons */}\n {showSocial && mode !== \"forgot-password\" && (\n <div className=\"space-y-3 mb-6\">\n <div className=\"grid grid-cols-2 gap-2.5\">\n <Button\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n className=\"text-xs font-medium rounded-xl h-9 gap-2 border-border/80 hover:bg-muted/50\"\n onClick={() => onSocialLogin?.(\"github\")}\n >\n <svg className=\"h-4 w-4 fill-current\" viewBox=\"0 0 24 24\">\n <path d=\"M12 0C5.37 0 0 5.37 0 12c0 5.31 3.435 9.795 8.205 11.385.6.105.825-.255.825-.57 0-.285-.015-1.23-.015-2.235-3.015.555-3.795-.735-4.035-1.41-.135-.345-.72-1.41-1.23-1.695-.42-.225-1.02-.78-.015-.795.945-.015 1.62.87 1.845 1.23 1.08 1.815 2.805 1.305 3.495.99.105-.78.42-1.305.765-1.605-2.67-.3-5.46-1.335-5.46-5.925 0-1.305.465-2.385 1.23-3.225-.12-.3-.54-1.53.12-3.18 0 0 1.005-.315 3.3 1.23.96-.27 1.98-.405 3-.405s2.04.135 3 .405c2.295-1.56 3.3-1.23 3.3-1.23.66 1.65.24 2.88.12 3.18.765.84 1.23 1.905 1.23 3.225 0 4.605-2.805 5.625-5.475 5.925.435.375.81 1.095.81 2.22 0 1.605-.015 2.895-.015 3.3 0 .315.225.69.825.57A12.02 12.02 0 0024 12c0-6.63-5.37-12-12-12z\" />\n </svg>\n GitHub\n </Button>\n <Button\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n className=\"text-xs font-medium rounded-xl h-9 gap-2 border-border/80 hover:bg-muted/50\"\n onClick={() => onSocialLogin?.(\"google\")}\n >\n <svg className=\"h-4 w-4\" viewBox=\"0 0 24 24\">\n <path\n fill=\"#4285F4\"\n d=\"M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09z\"\n />\n <path\n fill=\"#34A853\"\n d=\"M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z\"\n />\n <path\n fill=\"#FBBC05\"\n d=\"M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.06H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.94l2.85-2.22.81-.63z\"\n />\n <path\n fill=\"#EA4335\"\n d=\"M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.06l3.66 2.84c.87-2.6 3.3-4.52 6.16-4.52z\"\n />\n </svg>\n Google\n </Button>\n </div>\n\n <div className=\"relative flex items-center justify-center my-4\">\n <Separator />\n <span className=\"absolute bg-card px-2 text-[11px] text-muted-foreground\">\n veya e-posta ile\n </span>\n </div>\n </div>\n )}\n\n {/* Main Form */}\n <form onSubmit={handleSubmit} className=\"space-y-4\">\n {/* Full Name Field (Register Mode) */}\n {mode === \"register\" && (\n <div className=\"space-y-1.5 animate-in fade-in-50 duration-200\">\n <Label htmlFor=\"auth-name\" className=\"text-xs\">\n Ad Soyad\n </Label>\n <Input\n id=\"auth-name\"\n placeholder=\"Alexourus\"\n leftIcon={<User className=\"h-4 w-4\" />}\n value={name}\n onChange={(e) => setName(e.target.value)}\n required\n className=\"h-9 text-xs rounded-xl\"\n />\n </div>\n )}\n\n {/* Email Field */}\n <div className=\"space-y-1.5\">\n <Label htmlFor=\"auth-email\" className=\"text-xs\">\n E-posta Adresi\n </Label>\n <Input\n id=\"auth-email\"\n type=\"email\"\n placeholder=\"ornek@alanadi.com\"\n leftIcon={<Mail className=\"h-4 w-4\" />}\n value={email}\n onChange={(e) => setEmail(e.target.value)}\n required\n className=\"h-9 text-xs rounded-xl\"\n />\n </div>\n\n {/* Password Field (Login & Register Modes) */}\n {mode !== \"forgot-password\" && (\n <div className=\"space-y-1.5\">\n <div className=\"flex items-center justify-between\">\n <Label htmlFor=\"auth-pass\" className=\"text-xs\">\n Şifre\n </Label>\n {mode === \"login\" && (\n <button\n type=\"button\"\n onClick={() => setMode(\"forgot-password\")}\n className=\"text-[11px] text-primary hover:underline cursor-pointer\"\n >\n Şifremi unuttum\n </button>\n )}\n </div>\n <Input\n id=\"auth-pass\"\n type={showPassword ? \"text\" : \"password\"}\n placeholder=\"••••••••\"\n leftIcon={<Lock className=\"h-4 w-4\" />}\n rightIcon={\n <button\n type=\"button\"\n onClick={() => setShowPassword((p) => !p)}\n className=\"text-muted-foreground hover:text-foreground pointer-events-auto cursor-pointer p-0.5\"\n aria-label={showPassword ? \"Şifreyi gizle\" : \"Şifreyi göster\"}\n >\n {showPassword ? <EyeOff className=\"h-4 w-4\" /> : <Eye className=\"h-4 w-4\" />}\n </button>\n }\n value={password}\n onChange={(e) => setPassword(e.target.value)}\n required\n className=\"h-9 text-xs rounded-xl\"\n />\n </div>\n )}\n\n {/* Remember Me / Terms Checkboxes */}\n {mode === \"login\" && (\n <div className=\"flex items-center gap-2 pt-1\">\n <Checkbox\n id=\"remember-me\"\n checked={rememberMe}\n onCheckedChange={(checked) => setRememberMe(!!checked)}\n />\n <Label htmlFor=\"remember-me\" className=\"text-xs cursor-pointer text-muted-foreground\">\n Beni hatırla\n </Label>\n </div>\n )}\n\n {mode === \"register\" && (\n <div className=\"flex items-center gap-2 pt-1\">\n <Checkbox\n id=\"terms-agree\"\n checked={agreedTerms}\n onCheckedChange={(checked) => setAgreedTerms(!!checked)}\n required\n />\n <Label htmlFor=\"terms-agree\" className=\"text-xs cursor-pointer text-muted-foreground\">\n Kullanım şartlarını ve gizlilik politikasını onaylıyorum\n </Label>\n </div>\n )}\n\n {/* Submit Button */}\n <Button\n type=\"submit\"\n disabled={loading}\n className=\"w-full text-xs font-semibold rounded-xl h-9 gap-1.5 mt-2\"\n >\n {loading ? (\n <>\n <Loader2 className=\"h-3.5 w-3.5 animate-spin\" />\n <span>İşleniyor...</span>\n </>\n ) : (\n <>\n <span>\n {mode === \"login\" && \"Giriş Yap\"}\n {mode === \"register\" && \"Hesap Oluştur\"}\n {mode === \"forgot-password\" && \"Sıfırlama Bağlantısı Gönder\"}\n </span>\n <ArrowRight className=\"h-3.5 w-3.5\" />\n </>\n )}\n </Button>\n </form>\n\n {/* Footer Navigation */}\n <div className=\"mt-6 pt-4 border-t border-border/60 text-center text-xs text-muted-foreground\">\n {mode === \"login\" && (\n <p>\n Hesabınız yok mu?{\" \"}\n <button\n type=\"button\"\n onClick={() => setMode(\"register\")}\n className=\"font-semibold text-foreground hover:underline\"\n >\n Hemen Kaydolun\n </button>\n </p>\n )}\n {mode === \"register\" && (\n <p>\n Zaten hesabınız var mı?{\" \"}\n <button\n type=\"button\"\n onClick={() => setMode(\"login\")}\n className=\"font-semibold text-foreground hover:underline\"\n >\n Giriş Yapın\n </button>\n </p>\n )}\n {mode === \"forgot-password\" && (\n <button\n type=\"button\"\n onClick={() => setMode(\"login\")}\n className=\"inline-flex items-center gap-1.5 font-medium text-foreground hover:underline\"\n >\n <ArrowLeft className=\"h-3 w-3\" />\n Giriş sayfasına dön\n </button>\n )}\n </div>\n </div>\n );\n}\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var chunkFPNCCKUP_js = require('./chunk-FPNCCKUP.js');
|
|
4
3
|
var chunkU225QIWZ_js = require('./chunk-U225QIWZ.js');
|
|
4
|
+
var chunkFPNCCKUP_js = require('./chunk-FPNCCKUP.js');
|
|
5
5
|
var chunkC3X2BPC5_js = require('./chunk-C3X2BPC5.js');
|
|
6
6
|
var chunkAJKFRN2S_js = require('./chunk-AJKFRN2S.js');
|
|
7
7
|
var chunkPYCBM7ZF_js = require('./chunk-PYCBM7ZF.js');
|
|
@@ -309,5 +309,5 @@ function AuthCard({
|
|
|
309
309
|
}
|
|
310
310
|
|
|
311
311
|
exports.AuthCard = AuthCard;
|
|
312
|
-
//# sourceMappingURL=chunk-
|
|
313
|
-
//# sourceMappingURL=chunk-
|
|
312
|
+
//# sourceMappingURL=chunk-RE54CQZM.js.map
|
|
313
|
+
//# sourceMappingURL=chunk-RE54CQZM.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/blocks/auth-card/index.tsx"],"names":["React","jsxs","cn","jsx","Button","Separator","Label","Input","User","Mail","Lock","EyeOff","Eye","Checkbox","Fragment","Loader2","ArrowRight","ArrowLeft"],"mappings":"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","file":"chunk-PVA5Z3FG.js","sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport { Mail, Lock, User, Eye, EyeOff, ArrowRight, Loader2, ArrowLeft } from \"lucide-react\";\nimport { cn } from \"../../lib/utils\";\nimport { Button } from \"../../components/button\";\nimport { Input } from \"../../components/input\";\nimport { Label } from \"../../components/label\";\nimport { Checkbox } from \"../../components/checkbox\";\nimport { Separator } from \"../../components/separator\";\n\nexport interface AuthCardProps extends Omit<React.HTMLAttributes<HTMLDivElement>, \"onError\"> {\n defaultMode?: \"login\" | \"register\" | \"forgot-password\";\n logo?: React.ReactNode;\n title?: string;\n showSocial?: boolean;\n onLogin?: (data: { email: string; password?: string; rememberMe?: boolean }) => Promise<void> | void;\n onRegister?: (data: { name?: string; email: string; password?: string }) => Promise<void> | void;\n onForgotPassword?: (email: string) => Promise<void> | void;\n onSocialLogin?: (provider: \"github\" | \"google\") => void;\n}\n\nexport function AuthCard({\n defaultMode = \"login\",\n logo,\n showSocial = true,\n onLogin,\n onRegister,\n onForgotPassword,\n onSocialLogin,\n className,\n ...props\n}: AuthCardProps) {\n const [mode, setMode] = React.useState<\"login\" | \"register\" | \"forgot-password\">(defaultMode);\n const [showPassword, setShowPassword] = React.useState(false);\n const [loading, setLoading] = React.useState(false);\n\n const [name, setName] = React.useState(\"\");\n const [email, setEmail] = React.useState(\"\");\n const [password, setPassword] = React.useState(\"\");\n const [rememberMe, setRememberMe] = React.useState(false);\n const [agreedTerms, setAgreedTerms] = React.useState(false);\n\n const handleSubmit = async (e: React.FormEvent) => {\n e.preventDefault();\n setLoading(true);\n try {\n if (mode === \"login\") {\n await onLogin?.({ email, password, rememberMe });\n } else if (mode === \"register\") {\n await onRegister?.({ name, email, password });\n } else if (mode === \"forgot-password\") {\n await onForgotPassword?.(email);\n }\n } finally {\n setLoading(false);\n }\n };\n\n return (\n <div\n className={cn(\n \"w-full max-w-md mx-auto rounded-2xl border border-border/80 bg-card p-6 sm:p-8 shadow-card\",\n className\n )}\n {...props}\n >\n {/* Header */}\n <div className=\"flex flex-col items-center text-center space-y-2 mb-6\">\n {logo && <div className=\"mb-2\">{logo}</div>}\n <h2 className=\"text-xl font-bold tracking-tight text-foreground\">\n {mode === \"login\" && \"Hesabınıza Giriş Yapın\"}\n {mode === \"register\" && \"Yeni Hesap Oluşturun\"}\n {mode === \"forgot-password\" && \"Şifrenizi Sıfırlayın\"}\n </h2>\n <p className=\"text-xs text-muted-foreground max-w-xs\">\n {mode === \"login\" && \"Bilgilerinizi girerek yönetim paneline erişin.\"}\n {mode === \"register\" && \"Hızlıca kaydolun ve hemen kullanmaya başlayın.\"}\n {mode === \"forgot-password\" && \"E-posta adresinize sıfırlama bağlantısı göndereceğiz.\"}\n </p>\n </div>\n\n {/* Social Login Buttons */}\n {showSocial && mode !== \"forgot-password\" && (\n <div className=\"space-y-3 mb-6\">\n <div className=\"grid grid-cols-2 gap-2.5\">\n <Button\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n className=\"text-xs font-medium rounded-xl h-9 gap-2 border-border/80 hover:bg-muted/50\"\n onClick={() => onSocialLogin?.(\"github\")}\n >\n <svg className=\"h-4 w-4 fill-current\" viewBox=\"0 0 24 24\">\n <path d=\"M12 0C5.37 0 0 5.37 0 12c0 5.31 3.435 9.795 8.205 11.385.6.105.825-.255.825-.57 0-.285-.015-1.23-.015-2.235-3.015.555-3.795-.735-4.035-1.41-.135-.345-.72-1.41-1.23-1.695-.42-.225-1.02-.78-.015-.795.945-.015 1.62.87 1.845 1.23 1.08 1.815 2.805 1.305 3.495.99.105-.78.42-1.305.765-1.605-2.67-.3-5.46-1.335-5.46-5.925 0-1.305.465-2.385 1.23-3.225-.12-.3-.54-1.53.12-3.18 0 0 1.005-.315 3.3 1.23.96-.27 1.98-.405 3-.405s2.04.135 3 .405c2.295-1.56 3.3-1.23 3.3-1.23.66 1.65.24 2.88.12 3.18.765.84 1.23 1.905 1.23 3.225 0 4.605-2.805 5.625-5.475 5.925.435.375.81 1.095.81 2.22 0 1.605-.015 2.895-.015 3.3 0 .315.225.69.825.57A12.02 12.02 0 0024 12c0-6.63-5.37-12-12-12z\" />\n </svg>\n GitHub\n </Button>\n <Button\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n className=\"text-xs font-medium rounded-xl h-9 gap-2 border-border/80 hover:bg-muted/50\"\n onClick={() => onSocialLogin?.(\"google\")}\n >\n <svg className=\"h-4 w-4\" viewBox=\"0 0 24 24\">\n <path\n fill=\"#4285F4\"\n d=\"M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09z\"\n />\n <path\n fill=\"#34A853\"\n d=\"M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z\"\n />\n <path\n fill=\"#FBBC05\"\n d=\"M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.06H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.94l2.85-2.22.81-.63z\"\n />\n <path\n fill=\"#EA4335\"\n d=\"M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.06l3.66 2.84c.87-2.6 3.3-4.52 6.16-4.52z\"\n />\n </svg>\n Google\n </Button>\n </div>\n\n <div className=\"relative flex items-center justify-center my-4\">\n <Separator />\n <span className=\"absolute bg-card px-2 text-[11px] text-muted-foreground\">\n veya e-posta ile\n </span>\n </div>\n </div>\n )}\n\n {/* Main Form */}\n <form onSubmit={handleSubmit} className=\"space-y-4\">\n {/* Full Name Field (Register Mode) */}\n {mode === \"register\" && (\n <div className=\"space-y-1.5 animate-in fade-in-50 duration-200\">\n <Label htmlFor=\"auth-name\" className=\"text-xs\">\n Ad Soyad\n </Label>\n <Input\n id=\"auth-name\"\n placeholder=\"Alexourus\"\n leftIcon={<User className=\"h-4 w-4\" />}\n value={name}\n onChange={(e) => setName(e.target.value)}\n required\n className=\"h-9 text-xs rounded-xl\"\n />\n </div>\n )}\n\n {/* Email Field */}\n <div className=\"space-y-1.5\">\n <Label htmlFor=\"auth-email\" className=\"text-xs\">\n E-posta Adresi\n </Label>\n <Input\n id=\"auth-email\"\n type=\"email\"\n placeholder=\"ornek@alanadi.com\"\n leftIcon={<Mail className=\"h-4 w-4\" />}\n value={email}\n onChange={(e) => setEmail(e.target.value)}\n required\n className=\"h-9 text-xs rounded-xl\"\n />\n </div>\n\n {/* Password Field (Login & Register Modes) */}\n {mode !== \"forgot-password\" && (\n <div className=\"space-y-1.5\">\n <div className=\"flex items-center justify-between\">\n <Label htmlFor=\"auth-pass\" className=\"text-xs\">\n Şifre\n </Label>\n {mode === \"login\" && (\n <button\n type=\"button\"\n onClick={() => setMode(\"forgot-password\")}\n className=\"text-[11px] text-primary hover:underline cursor-pointer\"\n >\n Şifremi unuttum\n </button>\n )}\n </div>\n <Input\n id=\"auth-pass\"\n type={showPassword ? \"text\" : \"password\"}\n placeholder=\"••••••••\"\n leftIcon={<Lock className=\"h-4 w-4\" />}\n rightIcon={\n <button\n type=\"button\"\n onClick={() => setShowPassword((p) => !p)}\n className=\"text-muted-foreground hover:text-foreground pointer-events-auto cursor-pointer p-0.5\"\n aria-label={showPassword ? \"Şifreyi gizle\" : \"Şifreyi göster\"}\n >\n {showPassword ? <EyeOff className=\"h-4 w-4\" /> : <Eye className=\"h-4 w-4\" />}\n </button>\n }\n value={password}\n onChange={(e) => setPassword(e.target.value)}\n required\n className=\"h-9 text-xs rounded-xl\"\n />\n </div>\n )}\n\n {/* Remember Me / Terms Checkboxes */}\n {mode === \"login\" && (\n <div className=\"flex items-center gap-2 pt-1\">\n <Checkbox\n id=\"remember-me\"\n checked={rememberMe}\n onCheckedChange={(checked) => setRememberMe(!!checked)}\n />\n <Label htmlFor=\"remember-me\" className=\"text-xs cursor-pointer text-muted-foreground\">\n Beni hatırla\n </Label>\n </div>\n )}\n\n {mode === \"register\" && (\n <div className=\"flex items-center gap-2 pt-1\">\n <Checkbox\n id=\"terms-agree\"\n checked={agreedTerms}\n onCheckedChange={(checked) => setAgreedTerms(!!checked)}\n required\n />\n <Label htmlFor=\"terms-agree\" className=\"text-xs cursor-pointer text-muted-foreground\">\n Kullanım şartlarını ve gizlilik politikasını onaylıyorum\n </Label>\n </div>\n )}\n\n {/* Submit Button */}\n <Button\n type=\"submit\"\n disabled={loading}\n className=\"w-full text-xs font-semibold rounded-xl h-9 gap-1.5 mt-2\"\n >\n {loading ? (\n <>\n <Loader2 className=\"h-3.5 w-3.5 animate-spin\" />\n <span>İşleniyor...</span>\n </>\n ) : (\n <>\n <span>\n {mode === \"login\" && \"Giriş Yap\"}\n {mode === \"register\" && \"Hesap Oluştur\"}\n {mode === \"forgot-password\" && \"Sıfırlama Bağlantısı Gönder\"}\n </span>\n <ArrowRight className=\"h-3.5 w-3.5\" />\n </>\n )}\n </Button>\n </form>\n\n {/* Footer Navigation */}\n <div className=\"mt-6 pt-4 border-t border-border/60 text-center text-xs text-muted-foreground\">\n {mode === \"login\" && (\n <p>\n Hesabınız yok mu?{\" \"}\n <button\n type=\"button\"\n onClick={() => setMode(\"register\")}\n className=\"font-semibold text-foreground hover:underline\"\n >\n Hemen Kaydolun\n </button>\n </p>\n )}\n {mode === \"register\" && (\n <p>\n Zaten hesabınız var mı?{\" \"}\n <button\n type=\"button\"\n onClick={() => setMode(\"login\")}\n className=\"font-semibold text-foreground hover:underline\"\n >\n Giriş Yapın\n </button>\n </p>\n )}\n {mode === \"forgot-password\" && (\n <button\n type=\"button\"\n onClick={() => setMode(\"login\")}\n className=\"inline-flex items-center gap-1.5 font-medium text-foreground hover:underline\"\n >\n <ArrowLeft className=\"h-3 w-3\" />\n Giriş sayfasına dön\n </button>\n )}\n </div>\n </div>\n );\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/blocks/auth-card/index.tsx"],"names":["React","jsxs","cn","jsx","Button","Separator","Label","Input","User","Mail","Lock","EyeOff","Eye","Checkbox","Fragment","Loader2","ArrowRight","ArrowLeft"],"mappings":"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","file":"chunk-RE54CQZM.js","sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport { Mail, Lock, User, Eye, EyeOff, ArrowRight, Loader2, ArrowLeft } from \"lucide-react\";\nimport { cn } from \"../../lib/utils\";\nimport { Button } from \"../../components/button\";\nimport { Input } from \"../../components/input\";\nimport { Label } from \"../../components/label\";\nimport { Checkbox } from \"../../components/checkbox\";\nimport { Separator } from \"../../components/separator\";\n\nexport interface AuthCardProps extends Omit<React.HTMLAttributes<HTMLDivElement>, \"onError\"> {\n defaultMode?: \"login\" | \"register\" | \"forgot-password\";\n logo?: React.ReactNode;\n title?: string;\n showSocial?: boolean;\n onLogin?: (data: { email: string; password?: string; rememberMe?: boolean }) => Promise<void> | void;\n onRegister?: (data: { name?: string; email: string; password?: string }) => Promise<void> | void;\n onForgotPassword?: (email: string) => Promise<void> | void;\n onSocialLogin?: (provider: \"github\" | \"google\") => void;\n}\n\nexport function AuthCard({\n defaultMode = \"login\",\n logo,\n showSocial = true,\n onLogin,\n onRegister,\n onForgotPassword,\n onSocialLogin,\n className,\n ...props\n}: AuthCardProps) {\n const [mode, setMode] = React.useState<\"login\" | \"register\" | \"forgot-password\">(defaultMode);\n const [showPassword, setShowPassword] = React.useState(false);\n const [loading, setLoading] = React.useState(false);\n\n const [name, setName] = React.useState(\"\");\n const [email, setEmail] = React.useState(\"\");\n const [password, setPassword] = React.useState(\"\");\n const [rememberMe, setRememberMe] = React.useState(false);\n const [agreedTerms, setAgreedTerms] = React.useState(false);\n\n const handleSubmit = async (e: React.FormEvent) => {\n e.preventDefault();\n setLoading(true);\n try {\n if (mode === \"login\") {\n await onLogin?.({ email, password, rememberMe });\n } else if (mode === \"register\") {\n await onRegister?.({ name, email, password });\n } else if (mode === \"forgot-password\") {\n await onForgotPassword?.(email);\n }\n } finally {\n setLoading(false);\n }\n };\n\n return (\n <div\n className={cn(\n \"w-full max-w-md mx-auto rounded-2xl border border-border/80 bg-card p-6 sm:p-8 shadow-card\",\n className\n )}\n {...props}\n >\n {/* Header */}\n <div className=\"flex flex-col items-center text-center space-y-2 mb-6\">\n {logo && <div className=\"mb-2\">{logo}</div>}\n <h2 className=\"text-xl font-bold tracking-tight text-foreground\">\n {mode === \"login\" && \"Hesabınıza Giriş Yapın\"}\n {mode === \"register\" && \"Yeni Hesap Oluşturun\"}\n {mode === \"forgot-password\" && \"Şifrenizi Sıfırlayın\"}\n </h2>\n <p className=\"text-xs text-muted-foreground max-w-xs\">\n {mode === \"login\" && \"Bilgilerinizi girerek yönetim paneline erişin.\"}\n {mode === \"register\" && \"Hızlıca kaydolun ve hemen kullanmaya başlayın.\"}\n {mode === \"forgot-password\" && \"E-posta adresinize sıfırlama bağlantısı göndereceğiz.\"}\n </p>\n </div>\n\n {/* Social Login Buttons */}\n {showSocial && mode !== \"forgot-password\" && (\n <div className=\"space-y-3 mb-6\">\n <div className=\"grid grid-cols-2 gap-2.5\">\n <Button\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n className=\"text-xs font-medium rounded-xl h-9 gap-2 border-border/80 hover:bg-muted/50\"\n onClick={() => onSocialLogin?.(\"github\")}\n >\n <svg className=\"h-4 w-4 fill-current\" viewBox=\"0 0 24 24\">\n <path d=\"M12 0C5.37 0 0 5.37 0 12c0 5.31 3.435 9.795 8.205 11.385.6.105.825-.255.825-.57 0-.285-.015-1.23-.015-2.235-3.015.555-3.795-.735-4.035-1.41-.135-.345-.72-1.41-1.23-1.695-.42-.225-1.02-.78-.015-.795.945-.015 1.62.87 1.845 1.23 1.08 1.815 2.805 1.305 3.495.99.105-.78.42-1.305.765-1.605-2.67-.3-5.46-1.335-5.46-5.925 0-1.305.465-2.385 1.23-3.225-.12-.3-.54-1.53.12-3.18 0 0 1.005-.315 3.3 1.23.96-.27 1.98-.405 3-.405s2.04.135 3 .405c2.295-1.56 3.3-1.23 3.3-1.23.66 1.65.24 2.88.12 3.18.765.84 1.23 1.905 1.23 3.225 0 4.605-2.805 5.625-5.475 5.925.435.375.81 1.095.81 2.22 0 1.605-.015 2.895-.015 3.3 0 .315.225.69.825.57A12.02 12.02 0 0024 12c0-6.63-5.37-12-12-12z\" />\n </svg>\n GitHub\n </Button>\n <Button\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n className=\"text-xs font-medium rounded-xl h-9 gap-2 border-border/80 hover:bg-muted/50\"\n onClick={() => onSocialLogin?.(\"google\")}\n >\n <svg className=\"h-4 w-4\" viewBox=\"0 0 24 24\">\n <path\n fill=\"#4285F4\"\n d=\"M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09z\"\n />\n <path\n fill=\"#34A853\"\n d=\"M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z\"\n />\n <path\n fill=\"#FBBC05\"\n d=\"M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.06H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.94l2.85-2.22.81-.63z\"\n />\n <path\n fill=\"#EA4335\"\n d=\"M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.06l3.66 2.84c.87-2.6 3.3-4.52 6.16-4.52z\"\n />\n </svg>\n Google\n </Button>\n </div>\n\n <div className=\"relative flex items-center justify-center my-4\">\n <Separator />\n <span className=\"absolute bg-card px-2 text-[11px] text-muted-foreground\">\n veya e-posta ile\n </span>\n </div>\n </div>\n )}\n\n {/* Main Form */}\n <form onSubmit={handleSubmit} className=\"space-y-4\">\n {/* Full Name Field (Register Mode) */}\n {mode === \"register\" && (\n <div className=\"space-y-1.5 animate-in fade-in-50 duration-200\">\n <Label htmlFor=\"auth-name\" className=\"text-xs\">\n Ad Soyad\n </Label>\n <Input\n id=\"auth-name\"\n placeholder=\"Alexourus\"\n leftIcon={<User className=\"h-4 w-4\" />}\n value={name}\n onChange={(e) => setName(e.target.value)}\n required\n className=\"h-9 text-xs rounded-xl\"\n />\n </div>\n )}\n\n {/* Email Field */}\n <div className=\"space-y-1.5\">\n <Label htmlFor=\"auth-email\" className=\"text-xs\">\n E-posta Adresi\n </Label>\n <Input\n id=\"auth-email\"\n type=\"email\"\n placeholder=\"ornek@alanadi.com\"\n leftIcon={<Mail className=\"h-4 w-4\" />}\n value={email}\n onChange={(e) => setEmail(e.target.value)}\n required\n className=\"h-9 text-xs rounded-xl\"\n />\n </div>\n\n {/* Password Field (Login & Register Modes) */}\n {mode !== \"forgot-password\" && (\n <div className=\"space-y-1.5\">\n <div className=\"flex items-center justify-between\">\n <Label htmlFor=\"auth-pass\" className=\"text-xs\">\n Şifre\n </Label>\n {mode === \"login\" && (\n <button\n type=\"button\"\n onClick={() => setMode(\"forgot-password\")}\n className=\"text-[11px] text-primary hover:underline cursor-pointer\"\n >\n Şifremi unuttum\n </button>\n )}\n </div>\n <Input\n id=\"auth-pass\"\n type={showPassword ? \"text\" : \"password\"}\n placeholder=\"••••••••\"\n leftIcon={<Lock className=\"h-4 w-4\" />}\n rightIcon={\n <button\n type=\"button\"\n onClick={() => setShowPassword((p) => !p)}\n className=\"text-muted-foreground hover:text-foreground pointer-events-auto cursor-pointer p-0.5\"\n aria-label={showPassword ? \"Şifreyi gizle\" : \"Şifreyi göster\"}\n >\n {showPassword ? <EyeOff className=\"h-4 w-4\" /> : <Eye className=\"h-4 w-4\" />}\n </button>\n }\n value={password}\n onChange={(e) => setPassword(e.target.value)}\n required\n className=\"h-9 text-xs rounded-xl\"\n />\n </div>\n )}\n\n {/* Remember Me / Terms Checkboxes */}\n {mode === \"login\" && (\n <div className=\"flex items-center gap-2 pt-1\">\n <Checkbox\n id=\"remember-me\"\n checked={rememberMe}\n onCheckedChange={(checked) => setRememberMe(!!checked)}\n />\n <Label htmlFor=\"remember-me\" className=\"text-xs cursor-pointer text-muted-foreground\">\n Beni hatırla\n </Label>\n </div>\n )}\n\n {mode === \"register\" && (\n <div className=\"flex items-center gap-2 pt-1\">\n <Checkbox\n id=\"terms-agree\"\n checked={agreedTerms}\n onCheckedChange={(checked) => setAgreedTerms(!!checked)}\n required\n />\n <Label htmlFor=\"terms-agree\" className=\"text-xs cursor-pointer text-muted-foreground\">\n Kullanım şartlarını ve gizlilik politikasını onaylıyorum\n </Label>\n </div>\n )}\n\n {/* Submit Button */}\n <Button\n type=\"submit\"\n disabled={loading}\n className=\"w-full text-xs font-semibold rounded-xl h-9 gap-1.5 mt-2\"\n >\n {loading ? (\n <>\n <Loader2 className=\"h-3.5 w-3.5 animate-spin\" />\n <span>İşleniyor...</span>\n </>\n ) : (\n <>\n <span>\n {mode === \"login\" && \"Giriş Yap\"}\n {mode === \"register\" && \"Hesap Oluştur\"}\n {mode === \"forgot-password\" && \"Sıfırlama Bağlantısı Gönder\"}\n </span>\n <ArrowRight className=\"h-3.5 w-3.5\" />\n </>\n )}\n </Button>\n </form>\n\n {/* Footer Navigation */}\n <div className=\"mt-6 pt-4 border-t border-border/60 text-center text-xs text-muted-foreground\">\n {mode === \"login\" && (\n <p>\n Hesabınız yok mu?{\" \"}\n <button\n type=\"button\"\n onClick={() => setMode(\"register\")}\n className=\"font-semibold text-foreground hover:underline\"\n >\n Hemen Kaydolun\n </button>\n </p>\n )}\n {mode === \"register\" && (\n <p>\n Zaten hesabınız var mı?{\" \"}\n <button\n type=\"button\"\n onClick={() => setMode(\"login\")}\n className=\"font-semibold text-foreground hover:underline\"\n >\n Giriş Yapın\n </button>\n </p>\n )}\n {mode === \"forgot-password\" && (\n <button\n type=\"button\"\n onClick={() => setMode(\"login\")}\n className=\"inline-flex items-center gap-1.5 font-medium text-foreground hover:underline\"\n >\n <ArrowLeft className=\"h-3 w-3\" />\n Giriş sayfasına dön\n </button>\n )}\n </div>\n </div>\n );\n}\n"]}
|