@tern-secure/nextjs 4.2.11 → 5.0.0
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 +33 -33
- package/dist/cjs/app-router/admin/index.js +5 -8
- package/dist/cjs/app-router/admin/index.js.map +1 -1
- package/dist/cjs/app-router/admin/sessionTernSecure.js +3 -6
- package/dist/cjs/app-router/admin/sessionTernSecure.js.map +1 -1
- package/dist/cjs/app-router/client/TernSecureProvider.js +10 -18
- package/dist/cjs/app-router/client/TernSecureProvider.js.map +1 -1
- package/dist/cjs/app-router/client/actions.js +1 -177
- package/dist/cjs/app-router/client/actions.js.map +1 -1
- package/dist/cjs/app-router/route-handler/internal-route.js +4 -35
- package/dist/cjs/app-router/route-handler/internal-route.js.map +1 -1
- package/dist/cjs/boundary/{hooks/useSignUp.js → components.js} +16 -16
- package/dist/cjs/boundary/components.js.map +1 -0
- package/dist/cjs/{lib/utils.js → boundary/hooks.js} +9 -11
- package/dist/cjs/boundary/hooks.js.map +1 -0
- package/dist/cjs/{boundary/TernSecureCtx.js → components/uiComponents.js} +17 -24
- package/dist/cjs/components/uiComponents.js.map +1 -0
- package/dist/cjs/errors.js +1 -0
- package/dist/cjs/errors.js.map +1 -1
- package/dist/cjs/index.js +13 -27
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/server/auth.js +4 -5
- package/dist/cjs/server/auth.js.map +1 -1
- package/dist/cjs/server/crypto.js.map +1 -1
- package/dist/cjs/server/ctx-store.js +1 -2
- package/dist/cjs/server/ctx-store.js.map +1 -1
- package/dist/cjs/server/edge-session.js +6 -7
- package/dist/cjs/server/edge-session.js.map +1 -1
- package/dist/cjs/server/index.js.map +1 -1
- package/dist/cjs/server/jwt-edge.js.map +1 -1
- package/dist/cjs/server/jwt.js.map +1 -1
- package/dist/cjs/server/session-store.js +3 -1
- package/dist/cjs/server/session-store.js.map +1 -1
- package/dist/cjs/server/ternSecureMiddleware.js.map +1 -1
- package/dist/cjs/server/types.js.map +1 -1
- package/dist/cjs/server/utils.js.map +1 -1
- package/dist/cjs/types.js.map +1 -1
- package/dist/cjs/utils/admin-init.js +3 -0
- package/dist/cjs/utils/admin-init.js.map +1 -1
- package/dist/cjs/utils/allNextProviderProps.js +108 -0
- package/dist/cjs/utils/allNextProviderProps.js.map +1 -0
- package/dist/cjs/utils/client-init.js +2 -47
- package/dist/cjs/utils/client-init.js.map +1 -1
- package/dist/cjs/utils/config.js.map +1 -1
- package/dist/cjs/utils/construct.js.map +1 -1
- package/dist/cjs/utils/create-styles.js.map +1 -1
- package/dist/cjs/utils/redirect.js.map +1 -1
- package/dist/cjs/{components/ui/separator.js → utils/tern-ui-script.js} +41 -24
- package/dist/cjs/utils/tern-ui-script.js.map +1 -0
- package/dist/esm/app-router/admin/index.js +6 -4
- package/dist/esm/app-router/admin/index.js.map +1 -1
- package/dist/esm/app-router/admin/sessionTernSecure.js +3 -6
- package/dist/esm/app-router/admin/sessionTernSecure.js.map +1 -1
- package/dist/esm/app-router/client/TernSecureProvider.js +13 -19
- package/dist/esm/app-router/client/TernSecureProvider.js.map +1 -1
- package/dist/esm/app-router/client/actions.js +1 -157
- package/dist/esm/app-router/client/actions.js.map +1 -1
- package/dist/esm/app-router/route-handler/internal-route.js +5 -30
- package/dist/esm/app-router/route-handler/internal-route.js.map +1 -1
- package/dist/esm/boundary/components.js +18 -0
- package/dist/esm/boundary/components.js.map +1 -0
- package/dist/esm/boundary/hooks.js +9 -0
- package/dist/esm/boundary/hooks.js.map +1 -0
- package/dist/esm/components/uiComponents.js +21 -0
- package/dist/esm/components/uiComponents.js.map +1 -0
- package/dist/esm/errors.js +1 -0
- package/dist/esm/errors.js.map +1 -1
- package/dist/esm/index.js +15 -16
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/server/auth.js +4 -5
- package/dist/esm/server/auth.js.map +1 -1
- package/dist/esm/server/crypto.js.map +1 -1
- package/dist/esm/server/ctx-store.js +1 -2
- package/dist/esm/server/ctx-store.js.map +1 -1
- package/dist/esm/server/edge-session.js +6 -7
- package/dist/esm/server/edge-session.js.map +1 -1
- package/dist/esm/server/index.js.map +1 -1
- package/dist/esm/server/jwt-edge.js.map +1 -1
- package/dist/esm/server/jwt.js.map +1 -1
- package/dist/esm/server/session-store.js +3 -1
- package/dist/esm/server/session-store.js.map +1 -1
- package/dist/esm/server/ternSecureMiddleware.js.map +1 -1
- package/dist/esm/server/utils.js.map +1 -1
- package/dist/esm/types.js.map +1 -1
- package/dist/esm/utils/admin-init.js +2 -0
- package/dist/esm/utils/admin-init.js.map +1 -1
- package/dist/esm/utils/allNextProviderProps.js +84 -0
- package/dist/esm/utils/allNextProviderProps.js.map +1 -0
- package/dist/esm/utils/client-init.js +2 -21
- package/dist/esm/utils/client-init.js.map +1 -1
- package/dist/esm/utils/config.js.map +1 -1
- package/dist/esm/utils/construct.js.map +1 -1
- package/dist/esm/utils/create-styles.js.map +1 -1
- package/dist/esm/utils/redirect.js.map +1 -1
- package/dist/esm/utils/tern-ui-script.js +42 -0
- package/dist/esm/utils/tern-ui-script.js.map +1 -0
- package/dist/types/app-router/admin/index.d.ts +1 -2
- package/dist/types/app-router/admin/index.d.ts.map +1 -1
- package/dist/types/app-router/client/TernSecureProvider.d.ts +2 -14
- package/dist/types/app-router/client/TernSecureProvider.d.ts.map +1 -1
- package/dist/types/app-router/client/actions.d.ts +1 -54
- package/dist/types/app-router/client/actions.d.ts.map +1 -1
- package/dist/types/app-router/route-handler/internal-route.d.ts +1 -15
- package/dist/types/app-router/route-handler/internal-route.d.ts.map +1 -1
- package/dist/types/boundary/components.d.ts +2 -0
- package/dist/types/boundary/components.d.ts.map +1 -0
- package/dist/types/boundary/hooks.d.ts +2 -0
- package/dist/types/boundary/hooks.d.ts.map +1 -0
- package/dist/types/components/uiComponents.d.ts +6 -0
- package/dist/types/components/uiComponents.d.ts.map +1 -0
- package/dist/types/errors.d.ts +1 -1
- package/dist/types/errors.d.ts.map +1 -1
- package/dist/types/index.d.ts +3 -9
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/server/ternSecureMiddleware.d.ts.map +1 -1
- package/dist/types/types.d.ts +6 -13
- package/dist/types/types.d.ts.map +1 -1
- package/dist/types/utils/admin-init.d.ts +2 -1
- package/dist/types/utils/admin-init.d.ts.map +1 -1
- package/dist/types/utils/allNextProviderProps.d.ts +6 -0
- package/dist/types/utils/allNextProviderProps.d.ts.map +1 -0
- package/dist/types/utils/client-init.d.ts +1 -4
- package/dist/types/utils/client-init.d.ts.map +1 -1
- package/dist/types/utils/config.d.ts +1 -1
- package/dist/types/utils/config.d.ts.map +1 -1
- package/dist/types/utils/construct.d.ts.map +1 -1
- package/dist/types/utils/tern-ui-script.d.ts +8 -0
- package/dist/types/utils/tern-ui-script.d.ts.map +1 -0
- package/package.json +41 -52
- package/dist/cjs/boundary/TernSecureClientProvider.js +0 -240
- package/dist/cjs/boundary/TernSecureClientProvider.js.map +0 -1
- package/dist/cjs/boundary/TernSecureCtx.js.map +0 -1
- package/dist/cjs/boundary/hooks/useAuth.js +0 -63
- package/dist/cjs/boundary/hooks/useAuth.js.map +0 -1
- package/dist/cjs/boundary/hooks/useSignUp.js.map +0 -1
- package/dist/cjs/components/background.js +0 -65
- package/dist/cjs/components/background.js.map +0 -1
- package/dist/cjs/components/sign-in.js +0 -368
- package/dist/cjs/components/sign-in.js.map +0 -1
- package/dist/cjs/components/sign-out-button.js +0 -84
- package/dist/cjs/components/sign-out-button.js.map +0 -1
- package/dist/cjs/components/sign-out.js +0 -99
- package/dist/cjs/components/sign-out.js.map +0 -1
- package/dist/cjs/components/sign-up.js +0 -332
- package/dist/cjs/components/sign-up.js.map +0 -1
- package/dist/cjs/components/ui/alert.js +0 -88
- package/dist/cjs/components/ui/alert.js.map +0 -1
- package/dist/cjs/components/ui/button.js +0 -84
- package/dist/cjs/components/ui/button.js.map +0 -1
- package/dist/cjs/components/ui/card.js +0 -101
- package/dist/cjs/components/ui/card.js.map +0 -1
- package/dist/cjs/components/ui/input.js +0 -58
- package/dist/cjs/components/ui/input.js.map +0 -1
- package/dist/cjs/components/ui/label.js +0 -55
- package/dist/cjs/components/ui/label.js.map +0 -1
- package/dist/cjs/components/ui/separator.js.map +0 -1
- package/dist/cjs/components/verify.js +0 -195
- package/dist/cjs/components/verify.js.map +0 -1
- package/dist/cjs/lib/utils.d.js +0 -17
- package/dist/cjs/lib/utils.d.js.map +0 -1
- package/dist/cjs/lib/utils.js.map +0 -1
- package/dist/esm/boundary/TernSecureClientProvider.js +0 -216
- package/dist/esm/boundary/TernSecureClientProvider.js.map +0 -1
- package/dist/esm/boundary/TernSecureCtx.js +0 -23
- package/dist/esm/boundary/TernSecureCtx.js.map +0 -1
- package/dist/esm/boundary/hooks/useAuth.js +0 -39
- package/dist/esm/boundary/hooks/useAuth.js.map +0 -1
- package/dist/esm/boundary/hooks/useSignUp.js +0 -16
- package/dist/esm/boundary/hooks/useSignUp.js.map +0 -1
- package/dist/esm/components/background.js +0 -41
- package/dist/esm/components/background.js.map +0 -1
- package/dist/esm/components/sign-in.js +0 -344
- package/dist/esm/components/sign-in.js.map +0 -1
- package/dist/esm/components/sign-out-button.js +0 -60
- package/dist/esm/components/sign-out-button.js.map +0 -1
- package/dist/esm/components/sign-out.js +0 -65
- package/dist/esm/components/sign-out.js.map +0 -1
- package/dist/esm/components/sign-up.js +0 -298
- package/dist/esm/components/sign-up.js.map +0 -1
- package/dist/esm/components/ui/alert.js +0 -52
- package/dist/esm/components/ui/alert.js.map +0 -1
- package/dist/esm/components/ui/button.js +0 -49
- package/dist/esm/components/ui/button.js.map +0 -1
- package/dist/esm/components/ui/card.js +0 -62
- package/dist/esm/components/ui/card.js.map +0 -1
- package/dist/esm/components/ui/input.js +0 -24
- package/dist/esm/components/ui/input.js.map +0 -1
- package/dist/esm/components/ui/label.js +0 -21
- package/dist/esm/components/ui/label.js.map +0 -1
- package/dist/esm/components/ui/separator.js +0 -25
- package/dist/esm/components/ui/separator.js.map +0 -1
- package/dist/esm/components/verify.js +0 -161
- package/dist/esm/components/verify.js.map +0 -1
- package/dist/esm/lib/utils.d.js +0 -1
- package/dist/esm/lib/utils.d.js.map +0 -1
- package/dist/esm/lib/utils.js +0 -9
- package/dist/esm/lib/utils.js.map +0 -1
- package/dist/types/boundary/TernSecureClientProvider.d.ts +0 -27
- package/dist/types/boundary/TernSecureClientProvider.d.ts.map +0 -1
- package/dist/types/boundary/TernSecureCtx.d.ts +0 -11
- package/dist/types/boundary/TernSecureCtx.d.ts.map +0 -1
- package/dist/types/boundary/hooks/useAuth.d.ts +0 -15
- package/dist/types/boundary/hooks/useAuth.d.ts.map +0 -1
- package/dist/types/boundary/hooks/useSignUp.d.ts +0 -5
- package/dist/types/boundary/hooks/useSignUp.d.ts.map +0 -1
- package/dist/types/components/background.d.ts +0 -2
- package/dist/types/components/background.d.ts.map +0 -1
- package/dist/types/components/sign-in.d.ts +0 -18
- package/dist/types/components/sign-in.d.ts.map +0 -1
- package/dist/types/components/sign-out-button.d.ts +0 -14
- package/dist/types/components/sign-out-button.d.ts.map +0 -1
- package/dist/types/components/sign-out.d.ts +0 -12
- package/dist/types/components/sign-out.d.ts.map +0 -1
- package/dist/types/components/sign-up.d.ts +0 -11
- package/dist/types/components/sign-up.d.ts.map +0 -1
- package/dist/types/components/ui/alert.d.ts +0 -9
- package/dist/types/components/ui/alert.d.ts.map +0 -1
- package/dist/types/components/ui/button.d.ts +0 -12
- package/dist/types/components/ui/button.d.ts.map +0 -1
- package/dist/types/components/ui/card.d.ts +0 -9
- package/dist/types/components/ui/card.d.ts.map +0 -1
- package/dist/types/components/ui/input.d.ts +0 -4
- package/dist/types/components/ui/input.d.ts.map +0 -1
- package/dist/types/components/ui/label.d.ts +0 -6
- package/dist/types/components/ui/label.d.ts.map +0 -1
- package/dist/types/components/ui/separator.d.ts +0 -5
- package/dist/types/components/ui/separator.d.ts.map +0 -1
- package/dist/types/components/verify.d.ts +0 -2
- package/dist/types/components/verify.d.ts.map +0 -1
- package/dist/types/lib/utils.d.ts +0 -3
- package/dist/types/lib/utils.d.ts.map +0 -1
- package/server/package.json +0 -5
|
@@ -1,161 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { useState, useEffect } from "react";
|
|
4
|
-
import { useRouter } from "next/navigation";
|
|
5
|
-
import Link from "next/link";
|
|
6
|
-
import { Loader2, MailCheck, ChevronLeft, RefreshCw, ArrowRight } from "lucide-react";
|
|
7
|
-
import { Button } from "./ui/button";
|
|
8
|
-
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "./ui/card";
|
|
9
|
-
import { Alert, AlertDescription } from "./ui/alert";
|
|
10
|
-
import { Separator } from "./ui/separator";
|
|
11
|
-
import { AuthBackground } from "./background";
|
|
12
|
-
import { cn } from "../lib/utils";
|
|
13
|
-
import { useSignUp } from "../boundary/hooks/useSignUp";
|
|
14
|
-
import { resendEmailVerification } from "../app-router/client/actions";
|
|
15
|
-
const RESEND_COOLDOWN = 59;
|
|
16
|
-
const MAX_RESEND_ATTEMPTS = 3;
|
|
17
|
-
function Verify() {
|
|
18
|
-
const router = useRouter();
|
|
19
|
-
const { email } = useSignUp();
|
|
20
|
-
const [error, setError] = useState("");
|
|
21
|
-
const [success, setSuccess] = useState("");
|
|
22
|
-
const [resendCooldown, setResendCooldown] = useState(0);
|
|
23
|
-
const [isResending, setIsResending] = useState(false);
|
|
24
|
-
const [resendAttempts, setResendAttempts] = useState(0);
|
|
25
|
-
useEffect(() => {
|
|
26
|
-
if (!email) {
|
|
27
|
-
router.push("/sign-in");
|
|
28
|
-
}
|
|
29
|
-
}, [email, router]);
|
|
30
|
-
useEffect(() => {
|
|
31
|
-
let timer;
|
|
32
|
-
if (resendCooldown > 0) {
|
|
33
|
-
timer = setInterval(() => {
|
|
34
|
-
setResendCooldown((prev) => prev - 1);
|
|
35
|
-
}, 1e3);
|
|
36
|
-
}
|
|
37
|
-
return () => clearInterval(timer);
|
|
38
|
-
}, [resendCooldown]);
|
|
39
|
-
const handleResendVerification = async () => {
|
|
40
|
-
if (!email || isResending || resendCooldown > 0 || resendAttempts >= MAX_RESEND_ATTEMPTS) return;
|
|
41
|
-
try {
|
|
42
|
-
setIsResending(true);
|
|
43
|
-
setError("");
|
|
44
|
-
setSuccess("");
|
|
45
|
-
const result = await resendEmailVerification();
|
|
46
|
-
if (result.success) {
|
|
47
|
-
if (result.isVerified) {
|
|
48
|
-
setSuccess(result.message);
|
|
49
|
-
setTimeout(() => {
|
|
50
|
-
router.push("/sign-in");
|
|
51
|
-
}, 2e3);
|
|
52
|
-
} else {
|
|
53
|
-
setSuccess(result.message);
|
|
54
|
-
setResendAttempts((prev) => prev + 1);
|
|
55
|
-
setResendCooldown(RESEND_COOLDOWN);
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
} catch (error2) {
|
|
59
|
-
setError("Failed to resend verification email. Please try again.");
|
|
60
|
-
} finally {
|
|
61
|
-
setIsResending(false);
|
|
62
|
-
}
|
|
63
|
-
};
|
|
64
|
-
const handleRedirectToSignIn = () => {
|
|
65
|
-
router.push("/sign-in");
|
|
66
|
-
};
|
|
67
|
-
if (!email) {
|
|
68
|
-
return null;
|
|
69
|
-
}
|
|
70
|
-
return /* @__PURE__ */ jsxs("div", { className: "relative min-h-screen flex flex-col items-center justify-center py-12 px-4 sm:px-6 lg:px-8", children: [
|
|
71
|
-
/* @__PURE__ */ jsx(AuthBackground, {}),
|
|
72
|
-
/* @__PURE__ */ jsxs(
|
|
73
|
-
Link,
|
|
74
|
-
{
|
|
75
|
-
href: "/sign-in",
|
|
76
|
-
className: cn(
|
|
77
|
-
"absolute top-8 left-8 flex items-center text-sm font-medium text-muted-foreground",
|
|
78
|
-
"transition-colors hover:text-primary"
|
|
79
|
-
),
|
|
80
|
-
children: [
|
|
81
|
-
/* @__PURE__ */ jsx(ChevronLeft, { className: "mr-2 h-4 w-4" }),
|
|
82
|
-
"Back to sign in"
|
|
83
|
-
]
|
|
84
|
-
}
|
|
85
|
-
),
|
|
86
|
-
/* @__PURE__ */ jsxs(Card, { className: "w-full max-w-md mx-auto", children: [
|
|
87
|
-
/* @__PURE__ */ jsxs(CardHeader, { className: "space-y-1", children: [
|
|
88
|
-
/* @__PURE__ */ jsx("div", { className: "flex justify-center mb-4", children: /* @__PURE__ */ jsxs("div", { className: "relative", children: [
|
|
89
|
-
/* @__PURE__ */ jsx("div", { className: "absolute -inset-1 rounded-full bg-primary/20 blur-lg" }),
|
|
90
|
-
/* @__PURE__ */ jsx("div", { className: "relative rounded-full bg-primary/10 p-3", children: /* @__PURE__ */ jsx(MailCheck, { className: "h-8 w-8 text-primary" }) })
|
|
91
|
-
] }) }),
|
|
92
|
-
/* @__PURE__ */ jsx(CardTitle, { className: "text-2xl font-bold tracking-tight text-center", children: "Check your email" }),
|
|
93
|
-
/* @__PURE__ */ jsxs(CardDescription, { className: "text-center", children: [
|
|
94
|
-
"We've sent a verification link to",
|
|
95
|
-
/* @__PURE__ */ jsx("br", {}),
|
|
96
|
-
/* @__PURE__ */ jsx("span", { className: "font-medium", children: email })
|
|
97
|
-
] })
|
|
98
|
-
] }),
|
|
99
|
-
/* @__PURE__ */ jsxs(CardContent, { className: "p-6 space-y-6", children: [
|
|
100
|
-
error && /* @__PURE__ */ jsx(Alert, { variant: "destructive", className: "animate-in fade-in-50", children: /* @__PURE__ */ jsx(AlertDescription, { children: error }) }),
|
|
101
|
-
success && /* @__PURE__ */ jsx(
|
|
102
|
-
Alert,
|
|
103
|
-
{
|
|
104
|
-
variant: "default",
|
|
105
|
-
className: cn(
|
|
106
|
-
"animate-in fade-in-50",
|
|
107
|
-
success.includes("already verified") ? "bg-green-50" : "bg-blue-50"
|
|
108
|
-
),
|
|
109
|
-
children: /* @__PURE__ */ jsx(
|
|
110
|
-
AlertDescription,
|
|
111
|
-
{
|
|
112
|
-
className: success.includes("already verified") ? "text-green-800" : "text-blue-800",
|
|
113
|
-
children: success
|
|
114
|
-
}
|
|
115
|
-
)
|
|
116
|
-
}
|
|
117
|
-
),
|
|
118
|
-
/* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
|
|
119
|
-
/* @__PURE__ */ jsx("div", { className: "p-4 rounded-lg bg-muted/50", children: /* @__PURE__ */ jsxs("div", { className: "flex items-start space-x-4", children: [
|
|
120
|
-
/* @__PURE__ */ jsx("div", { className: "mt-1", children: /* @__PURE__ */ jsx(MailCheck, { className: "h-5 w-5 text-muted-foreground" }) }),
|
|
121
|
-
/* @__PURE__ */ jsxs("div", { className: "flex-1 space-y-1", children: [
|
|
122
|
-
/* @__PURE__ */ jsx("p", { className: "text-sm font-medium", children: "Already verified?" }),
|
|
123
|
-
/* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: "If you've already clicked the verification link in your email, you can proceed to sign in." })
|
|
124
|
-
] })
|
|
125
|
-
] }) }),
|
|
126
|
-
/* @__PURE__ */ jsxs(Button, { onClick: handleRedirectToSignIn, className: "w-full", variant: "outline", children: [
|
|
127
|
-
"Continue to sign in",
|
|
128
|
-
/* @__PURE__ */ jsx(ArrowRight, { className: "ml-2 h-4 w-4" })
|
|
129
|
-
] }),
|
|
130
|
-
/* @__PURE__ */ jsx(Separator, {}),
|
|
131
|
-
/* @__PURE__ */ jsx("div", { className: "space-y-2", children: /* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
|
|
132
|
-
/* @__PURE__ */ jsxs("p", { className: "text-sm text-center text-muted-foreground", children: [
|
|
133
|
-
"Didn't receive the email? Check your spam folder or request a new link",
|
|
134
|
-
resendCooldown > 0 && ` in ${resendCooldown}s`
|
|
135
|
-
] }),
|
|
136
|
-
resendAttempts >= MAX_RESEND_ATTEMPTS ? /* @__PURE__ */ jsx(Alert, { children: /* @__PURE__ */ jsx(AlertDescription, { children: "Maximum resend attempts reached. Please try signing up again or contact support." }) }) : /* @__PURE__ */ jsx(
|
|
137
|
-
Button,
|
|
138
|
-
{
|
|
139
|
-
onClick: handleResendVerification,
|
|
140
|
-
className: "w-full",
|
|
141
|
-
disabled: isResending || resendCooldown > 0 || resendAttempts >= MAX_RESEND_ATTEMPTS,
|
|
142
|
-
children: isResending ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
143
|
-
/* @__PURE__ */ jsx(Loader2, { className: "mr-2 h-4 w-4 animate-spin" }),
|
|
144
|
-
"Sending..."
|
|
145
|
-
] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
146
|
-
/* @__PURE__ */ jsx(RefreshCw, { className: "mr-2 h-4 w-4" }),
|
|
147
|
-
"Resend verification email",
|
|
148
|
-
resendAttempts > 0 && ` (${MAX_RESEND_ATTEMPTS - resendAttempts} left)`
|
|
149
|
-
] })
|
|
150
|
-
}
|
|
151
|
-
)
|
|
152
|
-
] }) })
|
|
153
|
-
] })
|
|
154
|
-
] })
|
|
155
|
-
] })
|
|
156
|
-
] });
|
|
157
|
-
}
|
|
158
|
-
export {
|
|
159
|
-
Verify
|
|
160
|
-
};
|
|
161
|
-
//# sourceMappingURL=verify.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/verify.tsx"],"sourcesContent":["\"use client\"\n\nimport { useState, useEffect } from \"react\"\nimport { useRouter } from \"next/navigation\"\nimport Link from \"next/link\"\nimport { Loader2, MailCheck, ChevronLeft, RefreshCw, ArrowRight } from 'lucide-react'\nimport { Button } from \"./ui/button\"\nimport { Card, CardContent, CardDescription, CardHeader, CardTitle } from \"./ui/card\"\nimport { Alert, AlertDescription } from \"./ui/alert\"\nimport { Separator } from \"./ui/separator\"\nimport { AuthBackground } from \"./background\"\nimport { cn } from \"../lib/utils\"\nimport { useSignUp } from '../boundary/hooks/useSignUp'\nimport { resendEmailVerification } from '../app-router/client/actions'\n\nconst RESEND_COOLDOWN = 59 // 59 seconds cooldown for resend\nconst MAX_RESEND_ATTEMPTS = 3\n\n\nexport function Verify() {\n const router = useRouter()\n const { email } = useSignUp()\n \n const [error, setError] = useState(\"\")\n const [success, setSuccess] = useState(\"\")\n const [resendCooldown, setResendCooldown] = useState(0)\n const [isResending, setIsResending] = useState(false)\n const [resendAttempts, setResendAttempts] = useState(0)\n \n // Redirect if no email in context\n useEffect(() => {\n if (!email) {\n router.push(\"/sign-in\")\n }\n }, [email, router])\n \n useEffect(() => {\n let timer: NodeJS.Timeout\n if (resendCooldown > 0) {\n timer = setInterval(() => {\n setResendCooldown((prev) => prev - 1)\n }, 1000)\n }\n return () => clearInterval(timer)\n }, [resendCooldown])\n \n const handleResendVerification = async () => {\n if (!email || isResending || resendCooldown > 0 || resendAttempts >= MAX_RESEND_ATTEMPTS) return\n \n try {\n setIsResending(true)\n setError(\"\")\n setSuccess(\"\")\n\n const result = await resendEmailVerification()\n\n if (result.success) {\n if (result.isVerified) {\n // If already verified, show success message and redirect after delay\n setSuccess(result.message)\n setTimeout(() => {\n router.push('/sign-in')\n }, 2000)\n } else {\n // If not verified, increment attempts and start cooldown\n setSuccess(result.message)\n setResendAttempts((prev) => prev + 1)\n setResendCooldown(RESEND_COOLDOWN)\n }\n }\n\n } catch (error) {\n setError(\"Failed to resend verification email. Please try again.\")\n } finally {\n setIsResending(false)\n }\n }\n \n const handleRedirectToSignIn = () => {\n router.push(\"/sign-in\")\n }\n \n if (!email) {\n return null // Will redirect in useEffect\n }\n \n return (\n <div className=\"relative min-h-screen flex flex-col items-center justify-center py-12 px-4 sm:px-6 lg:px-8\">\n <AuthBackground />\n \n <Link\n href=\"/sign-in\"\n className={cn(\n \"absolute top-8 left-8 flex items-center text-sm font-medium text-muted-foreground\",\n \"transition-colors hover:text-primary\",\n )}\n >\n <ChevronLeft className=\"mr-2 h-4 w-4\" />\n Back to sign in\n </Link>\n \n <Card className=\"w-full max-w-md mx-auto\">\n <CardHeader className=\"space-y-1\">\n <div className=\"flex justify-center mb-4\">\n <div className=\"relative\">\n <div className=\"absolute -inset-1 rounded-full bg-primary/20 blur-lg\" />\n <div className=\"relative rounded-full bg-primary/10 p-3\">\n <MailCheck className=\"h-8 w-8 text-primary\" />\n </div>\n </div>\n </div>\n <CardTitle className=\"text-2xl font-bold tracking-tight text-center\">Check your email</CardTitle>\n <CardDescription className=\"text-center\">\n We've sent a verification link to\n <br />\n <span className=\"font-medium\">{email}</span>\n </CardDescription>\n </CardHeader>\n \n <CardContent className=\"p-6 space-y-6\">\n {error && (\n <Alert variant=\"destructive\" className=\"animate-in fade-in-50\">\n <AlertDescription>{error}</AlertDescription>\n </Alert>\n )}\n\n{success && (\n <Alert \n variant=\"default\" \n className={cn(\n \"animate-in fade-in-50\",\n success.includes(\"already verified\") ? \"bg-green-50\" : \"bg-blue-50\"\n )}\n >\n <AlertDescription \n className={success.includes(\"already verified\") ? \"text-green-800\" : \"text-blue-800\"}\n >\n {success}\n </AlertDescription>\n </Alert>\n)}\n \n <div className=\"space-y-4\">\n <div className=\"p-4 rounded-lg bg-muted/50\">\n <div className=\"flex items-start space-x-4\">\n <div className=\"mt-1\">\n <MailCheck className=\"h-5 w-5 text-muted-foreground\" />\n </div>\n <div className=\"flex-1 space-y-1\">\n <p className=\"text-sm font-medium\">Already verified?</p>\n <p className=\"text-sm text-muted-foreground\">\n If you've already clicked the verification link in your email, you can proceed to sign in.\n </p>\n </div>\n </div>\n </div>\n \n <Button onClick={handleRedirectToSignIn} className=\"w-full\" variant=\"outline\">\n Continue to sign in\n <ArrowRight className=\"ml-2 h-4 w-4\" />\n </Button>\n \n <Separator />\n \n <div className=\"space-y-2\">\n <div className=\"space-y-2\">\n <p className=\"text-sm text-center text-muted-foreground\">\n Didn't receive the email? Check your spam folder or request a new link\n {resendCooldown > 0 && ` in ${resendCooldown}s`}\n </p>\n {resendAttempts >= MAX_RESEND_ATTEMPTS ? (\n <Alert>\n <AlertDescription>\n Maximum resend attempts reached. Please try signing up again or contact support.\n </AlertDescription>\n </Alert>\n ) : (\n <Button\n onClick={handleResendVerification}\n className=\"w-full\"\n disabled={isResending || resendCooldown > 0 || resendAttempts >= MAX_RESEND_ATTEMPTS}\n >\n {isResending ? (\n <>\n <Loader2 className=\"mr-2 h-4 w-4 animate-spin\" />\n Sending...\n </>\n ) : (\n <>\n <RefreshCw className=\"mr-2 h-4 w-4\" />\n Resend verification email\n {resendAttempts > 0 && ` (${MAX_RESEND_ATTEMPTS - resendAttempts} left)`}\n </>\n )}\n </Button>\n )}\n </div>\n </div>\n </div>\n </CardContent>\n </Card>\n </div>\n )\n }"],"mappings":"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","names":["error"]}
|
package/dist/esm/lib/utils.d.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=utils.d.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
package/dist/esm/lib/utils.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/utils.ts"],"sourcesContent":["import { clsx, type ClassValue } from \"clsx\"\nimport { twMerge } from \"tailwind-merge\"\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n"],"mappings":"AAAA,SAAS,YAA6B;AACtC,SAAS,eAAe;AAEjB,SAAS,MAAM,QAAsB;AAC1C,SAAO,QAAQ,KAAK,MAAM,CAAC;AAC7B;","names":[]}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { User } from "firebase/auth";
|
|
3
|
-
/**
|
|
4
|
-
* @internal
|
|
5
|
-
* Internal provider props - not meant for direct usage
|
|
6
|
-
*/
|
|
7
|
-
interface TernSecureClientProviderProps {
|
|
8
|
-
children: React.ReactNode;
|
|
9
|
-
/** Callback when user state changes */
|
|
10
|
-
onUserChanged?: (user: User | null) => Promise<void>;
|
|
11
|
-
/** Login page path */
|
|
12
|
-
loginPath?: string;
|
|
13
|
-
/** Signup page path */
|
|
14
|
-
signUpPath?: string;
|
|
15
|
-
/** Custom loading component */
|
|
16
|
-
loadingComponent?: React.ReactNode;
|
|
17
|
-
/** Whether email verification is required */
|
|
18
|
-
requiresVerification: boolean;
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* @internal
|
|
22
|
-
* Internal provider component that handles authentication state
|
|
23
|
-
* This is wrapped by the public TernSecureProvider
|
|
24
|
-
*/
|
|
25
|
-
export declare function TernSecureClientProvider({ children, loginPath, signUpPath, loadingComponent, requiresVerification, }: TernSecureClientProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
26
|
-
export {};
|
|
27
|
-
//# sourceMappingURL=TernSecureClientProvider.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TernSecureClientProvider.d.ts","sourceRoot":"","sources":["../../../src/boundary/TernSecureClientProvider.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAoD,MAAM,OAAO,CAAA;AAExE,OAAO,EAAsB,IAAI,EAAE,MAAM,eAAe,CAAA;AAUxD;;;GAGG;AACH,UAAU,6BAA6B;IACrC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,uCAAuC;IACvC,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACpD,sBAAsB;IACtB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,uBAAuB;IACvB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,+BAA+B;IAC/B,gBAAgB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAClC,6CAA6C;IAC7C,oBAAoB,EAAE,OAAO,CAAA;CAC9B;AAED;;;;GAIG;AAEH,wBAAgB,wBAAwB,CAAC,EACvC,QAAQ,EACR,SAA8D,EAC9D,UAA+D,EAC/D,gBAAgB,EAChB,oBAAoB,GACrB,EAAE,6BAA6B,2CAqP/B"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import type { TernSecureState, SignInResponse, TernSecureUser } from '../types';
|
|
2
|
-
export declare const getCurrentUser: () => TernSecureUser | null;
|
|
3
|
-
export interface TernSecureCtxValue extends TernSecureState {
|
|
4
|
-
signOut: () => Promise<void>;
|
|
5
|
-
setEmail: (email: string) => void;
|
|
6
|
-
getAuthError: () => SignInResponse;
|
|
7
|
-
redirectToLogin: () => void;
|
|
8
|
-
}
|
|
9
|
-
export declare const TernSecureCtx: import("react").Context<TernSecureCtxValue | null>;
|
|
10
|
-
export declare const useTernSecure: (hookName: string) => TernSecureCtxValue;
|
|
11
|
-
//# sourceMappingURL=TernSecureCtx.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TernSecureCtx.d.ts","sourceRoot":"","sources":["../../../src/boundary/TernSecureCtx.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAGhF,eAAO,MAAM,cAAc,QAAO,cAAc,GAAG,IAElD,CAAA;AAED,MAAM,WAAW,kBAAmB,SAAQ,eAAe;IAC1D,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC5B,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACjC,YAAY,EAAE,MAAM,cAAc,CAAA;IAClC,eAAe,EAAE,MAAM,IAAI,CAAA;CAC3B;AAED,eAAO,MAAM,aAAa,oDAAiD,CAAA;AAI3E,eAAO,MAAM,aAAa,aAAc,MAAM,uBAU7C,CAAA"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import type { SignInResponse } from '../../types';
|
|
2
|
-
export declare function useAuth(): {
|
|
3
|
-
user: import("firebase/auth").User | null;
|
|
4
|
-
userId: string | null;
|
|
5
|
-
isLoaded: boolean;
|
|
6
|
-
error: SignInResponse | null;
|
|
7
|
-
isValid: boolean;
|
|
8
|
-
isVerified: boolean;
|
|
9
|
-
isAuthenticated: boolean;
|
|
10
|
-
token: any;
|
|
11
|
-
status: "loading" | "authenticated" | "unauthenticated" | "unverified";
|
|
12
|
-
requiresVerification: boolean;
|
|
13
|
-
signOut: () => Promise<void>;
|
|
14
|
-
};
|
|
15
|
-
//# sourceMappingURL=useAuth.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useAuth.d.ts","sourceRoot":"","sources":["../../../../src/boundary/hooks/useAuth.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAkB,MAAM,aAAa,CAAA;AAGjE,wBAAgB,OAAO;;;;;;;;;;;;EAgCtB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useSignUp.d.ts","sourceRoot":"","sources":["../../../../src/boundary/hooks/useSignUp.ts"],"names":[],"mappings":"AAIA,wBAAgB,SAAS;;;EAUxB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"background.d.ts","sourceRoot":"","sources":["../../../src/components/background.tsx"],"names":[],"mappings":"AAAA,wBAAgB,cAAc,4CAgC3B"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
export interface SignInProps {
|
|
2
|
-
redirectUrl?: string;
|
|
3
|
-
onError?: (error: Error) => void;
|
|
4
|
-
onSuccess?: () => void;
|
|
5
|
-
className?: string;
|
|
6
|
-
customStyles?: {
|
|
7
|
-
card?: string;
|
|
8
|
-
input?: string;
|
|
9
|
-
button?: string;
|
|
10
|
-
label?: string;
|
|
11
|
-
separator?: string;
|
|
12
|
-
title?: string;
|
|
13
|
-
description?: string;
|
|
14
|
-
socialButton?: string;
|
|
15
|
-
};
|
|
16
|
-
}
|
|
17
|
-
export declare function SignIn({ redirectUrl, onError, onSuccess, className, customStyles }: SignInProps): import("react/jsx-runtime").JSX.Element;
|
|
18
|
-
//# sourceMappingURL=sign-in.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sign-in.d.ts","sourceRoot":"","sources":["../../../src/components/sign-in.tsx"],"names":[],"mappings":"AA6BA,MAAM,WAAW,WAAW;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;IAChC,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,YAAY,CAAC,EAAE;QACb,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,YAAY,CAAC,EAAE,MAAM,CAAA;KACtB,CAAA;CACF;AAOD,wBAAgB,MAAM,CAAC,EACrB,WAAW,EACX,OAAO,EACP,SAAS,EACT,SAAS,EACT,YAAiB,EAClB,EAAE,WAAW,2CAgWb"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { type ButtonProps } from './ui/button';
|
|
2
|
-
type SignOutCustomProps = {
|
|
3
|
-
children?: React.ReactNode;
|
|
4
|
-
onError?: (error: Error) => void;
|
|
5
|
-
onSignOutSuccess?: () => void;
|
|
6
|
-
redirectPath?: string;
|
|
7
|
-
className?: string;
|
|
8
|
-
variant?: ButtonProps['variant'];
|
|
9
|
-
size?: ButtonProps['size'];
|
|
10
|
-
};
|
|
11
|
-
type SignOutProps = Omit<ButtonProps, 'onClick'> & SignOutCustomProps;
|
|
12
|
-
export declare function SignOutButton({ children, onError, onSignOutSuccess, redirectPath, className, variant, size, ...buttonProps }: SignOutProps): import("react/jsx-runtime").JSX.Element;
|
|
13
|
-
export {};
|
|
14
|
-
//# sourceMappingURL=sign-out-button.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sign-out-button.d.ts","sourceRoot":"","sources":["../../../src/components/sign-out-button.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAU,KAAK,WAAW,EAAE,MAAM,aAAa,CAAA;AAOtD,KAAK,kBAAkB,GAAG;IACxB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;IAChC,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAA;IAC7B,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,WAAW,CAAC,SAAS,CAAC,CAAA;IAChC,IAAI,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;CAC3B,CAAA;AAED,KAAK,YAAY,GAAG,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,GAAG,kBAAkB,CAAA;AAErE,wBAAgB,aAAa,CAAC,EAC5B,QAAqB,EACrB,OAAO,EACP,gBAAgB,EAChB,YAAY,EACZ,SAAS,EACT,OAAmB,EACnB,IAAgB,EAChB,GAAG,WAAW,EACf,EAAE,YAAY,2CA8Cd"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
interface SignOutLinkProps {
|
|
2
|
-
children?: React.ReactNode;
|
|
3
|
-
onError?: (error: Error) => void;
|
|
4
|
-
onSignOutSuccess?: () => void;
|
|
5
|
-
className?: string;
|
|
6
|
-
activeClassName?: string;
|
|
7
|
-
disabled?: boolean;
|
|
8
|
-
redirectPath?: string;
|
|
9
|
-
}
|
|
10
|
-
export declare function SignOut({ children, onError, onSignOutSuccess, className, activeClassName, disabled, redirectPath, }: SignOutLinkProps): import("react/jsx-runtime").JSX.Element;
|
|
11
|
-
export {};
|
|
12
|
-
//# sourceMappingURL=sign-out.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sign-out.d.ts","sourceRoot":"","sources":["../../../src/components/sign-out.tsx"],"names":[],"mappings":"AAYA,UAAU,gBAAgB;IACxB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;IAChC,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAA;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,wBAAgB,OAAO,CAAC,EACtB,QAAqB,EACrB,OAAO,EACP,gBAAgB,EAChB,SAAS,EACT,eAAe,EACf,QAAgB,EAChB,YAAY,GACb,EAAE,gBAAgB,2CAsDlB"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
export interface SignUpProps {
|
|
2
|
-
redirectUrl?: string;
|
|
3
|
-
onError?: (error: Error) => void;
|
|
4
|
-
onSuccess?: () => void;
|
|
5
|
-
}
|
|
6
|
-
export interface PasswordRequirement {
|
|
7
|
-
text: string;
|
|
8
|
-
satisfied: boolean;
|
|
9
|
-
}
|
|
10
|
-
export declare function SignUp({ redirectUrl, onError, onSuccess, }: SignUpProps): import("react/jsx-runtime").JSX.Element;
|
|
11
|
-
//# sourceMappingURL=sign-up.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sign-up.d.ts","sourceRoot":"","sources":["../../../src/components/sign-up.tsx"],"names":[],"mappings":"AAoBA,MAAM,WAAW,WAAW;IACxB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;IAChC,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;CACzB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,OAAO,CAAA;CACnB;AAGD,wBAAgB,MAAM,CAAC,EACnB,WAAW,EACX,OAAO,EACP,SAAS,GACX,EAAE,WAAW,2CA8Rd"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import * as React from "react";
|
|
2
|
-
import { type VariantProps } from "class-variance-authority";
|
|
3
|
-
declare const Alert: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & VariantProps<(props?: ({
|
|
4
|
-
variant?: "destructive" | "default" | null | undefined;
|
|
5
|
-
} & import("class-variance-authority/dist/types").ClassProp) | undefined) => string> & React.RefAttributes<HTMLDivElement>>;
|
|
6
|
-
declare const AlertTitle: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLHeadingElement> & React.RefAttributes<HTMLParagraphElement>>;
|
|
7
|
-
declare const AlertDescription: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLParagraphElement> & React.RefAttributes<HTMLParagraphElement>>;
|
|
8
|
-
export { Alert, AlertTitle, AlertDescription };
|
|
9
|
-
//# sourceMappingURL=alert.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"alert.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/alert.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAoBjE,QAAA,MAAM,KAAK;;2HAUT,CAAA;AAGF,QAAA,MAAM,UAAU,uHASd,CAAA;AAGF,QAAA,MAAM,gBAAgB,yHASpB,CAAA;AAGF,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,CAAA"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import * as React from "react";
|
|
2
|
-
import { type VariantProps } from "class-variance-authority";
|
|
3
|
-
declare const buttonVariants: (props?: ({
|
|
4
|
-
variant?: "destructive" | "default" | "outline" | "secondary" | "ghost" | "link" | null | undefined;
|
|
5
|
-
size?: "default" | "sm" | "lg" | "icon" | null | undefined;
|
|
6
|
-
} & import("class-variance-authority/dist/types").ClassProp) | undefined) => string;
|
|
7
|
-
export interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
|
|
8
|
-
asChild?: boolean;
|
|
9
|
-
}
|
|
10
|
-
declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<HTMLButtonElement>>;
|
|
11
|
-
export { Button, buttonVariants };
|
|
12
|
-
//# sourceMappingURL=button.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAIjE,QAAA,MAAM,cAAc;;;mFA4BnB,CAAA;AAED,MAAM,WAAW,WACf,SAAQ,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EACnD,YAAY,CAAC,OAAO,cAAc,CAAC;IACrC,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,QAAA,MAAM,MAAM,uFAWX,CAAA;AAGD,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAA"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import * as React from "react";
|
|
2
|
-
declare const Card: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
|
|
3
|
-
declare const CardHeader: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
|
|
4
|
-
declare const CardTitle: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
|
|
5
|
-
declare const CardDescription: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
|
|
6
|
-
declare const CardContent: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
|
|
7
|
-
declare const CardFooter: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
|
|
8
|
-
export { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent };
|
|
9
|
-
//# sourceMappingURL=card.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"card.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/card.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAI9B,QAAA,MAAM,IAAI,6GAYR,CAAA;AAGF,QAAA,MAAM,UAAU,6GASd,CAAA;AAGF,QAAA,MAAM,SAAS,6GASb,CAAA;AAGF,QAAA,MAAM,eAAe,6GASnB,CAAA;AAGF,QAAA,MAAM,WAAW,6GAKf,CAAA;AAGF,QAAA,MAAM,UAAU,6GASd,CAAA;AAGF,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,WAAW,EAAE,CAAA"}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import * as React from "react";
|
|
2
|
-
declare const Input: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, "ref"> & React.RefAttributes<HTMLInputElement>>;
|
|
3
|
-
export { Input };
|
|
4
|
-
//# sourceMappingURL=input.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/input.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAI9B,QAAA,MAAM,KAAK,8KAcV,CAAA;AAGD,OAAO,EAAE,KAAK,EAAE,CAAA"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import * as React from "react";
|
|
2
|
-
import * as LabelPrimitive from "@radix-ui/react-label";
|
|
3
|
-
import { type VariantProps } from "class-variance-authority";
|
|
4
|
-
declare const Label: React.ForwardRefExoticComponent<Omit<LabelPrimitive.LabelProps & React.RefAttributes<HTMLLabelElement>, "ref"> & VariantProps<(props?: import("class-variance-authority/dist/types").ClassProp | undefined) => string> & React.RefAttributes<HTMLLabelElement>>;
|
|
5
|
-
export { Label };
|
|
6
|
-
//# sourceMappingURL=label.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"label.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/label.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,cAAc,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAQjE,QAAA,MAAM,KAAK,iQAUT,CAAA;AAGF,OAAO,EAAE,KAAK,EAAE,CAAA"}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import * as React from "react";
|
|
2
|
-
import * as SeparatorPrimitive from "@radix-ui/react-separator";
|
|
3
|
-
declare const Separator: React.ForwardRefExoticComponent<Omit<SeparatorPrimitive.SeparatorProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
4
|
-
export { Separator };
|
|
5
|
-
//# sourceMappingURL=separator.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"separator.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/separator.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,kBAAkB,MAAM,2BAA2B,CAAA;AAI/D,QAAA,MAAM,SAAS,6JAoBd,CAAA;AAGD,OAAO,EAAE,SAAS,EAAE,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../../src/components/verify.tsx"],"names":[],"mappings":"AAmBA,wBAAgB,MAAM,mDAwLnB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,UAAU,EAAE,MAAM,MAAM,CAAA;AAG5C,wBAAgB,EAAE,CAAC,GAAG,MAAM,EAAE,UAAU,EAAE,UAEzC"}
|