@tern-secure/nextjs 3.2.42 → 3.2.43

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.
Files changed (104) hide show
  1. package/README.md +34 -0
  2. package/dist/cjs/app-router/client/TernSecureProvider.js +1 -1
  3. package/dist/cjs/app-router/client/TernSecureProvider.js.map +1 -1
  4. package/dist/cjs/app-router/client/actions.js +52 -2
  5. package/dist/cjs/app-router/client/actions.js.map +1 -1
  6. package/dist/cjs/app-router/server/sessionTernSecure.js +21 -1
  7. package/dist/cjs/app-router/server/sessionTernSecure.js.map +1 -1
  8. package/dist/cjs/boundary/TernSecureClientProvider.js +0 -1
  9. package/dist/cjs/boundary/TernSecureClientProvider.js.map +1 -1
  10. package/dist/cjs/components/background.js +65 -0
  11. package/dist/cjs/components/background.js.map +1 -0
  12. package/dist/cjs/components/sign-in.js +162 -56
  13. package/dist/cjs/components/sign-in.js.map +1 -1
  14. package/dist/cjs/components/sign-out.js +69 -0
  15. package/dist/cjs/components/sign-out.js.map +1 -0
  16. package/dist/cjs/components/ui/alert.js +88 -0
  17. package/dist/cjs/components/ui/alert.js.map +1 -0
  18. package/dist/cjs/components/ui/button.js +84 -0
  19. package/dist/cjs/components/ui/button.js.map +1 -0
  20. package/dist/cjs/components/ui/card.js +101 -0
  21. package/dist/cjs/components/ui/card.js.map +1 -0
  22. package/dist/cjs/components/ui/input.js +58 -0
  23. package/dist/cjs/components/ui/input.js.map +1 -0
  24. package/dist/cjs/components/ui/label.js +55 -0
  25. package/dist/cjs/components/ui/label.js.map +1 -0
  26. package/dist/cjs/components/ui/separator.js +59 -0
  27. package/dist/cjs/components/ui/separator.js.map +1 -0
  28. package/dist/cjs/index.js +3 -0
  29. package/dist/cjs/index.js.map +1 -1
  30. package/dist/cjs/lib/utils.d.js +17 -0
  31. package/dist/cjs/lib/utils.d.js.map +1 -0
  32. package/dist/cjs/lib/utils.js +33 -0
  33. package/dist/cjs/lib/utils.js.map +1 -0
  34. package/dist/cjs/utils/client-init.js.map +1 -1
  35. package/dist/cjs/utils/construct.js +63 -0
  36. package/dist/cjs/utils/construct.js.map +1 -0
  37. package/dist/esm/app-router/client/TernSecureProvider.js +1 -1
  38. package/dist/esm/app-router/client/TernSecureProvider.js.map +1 -1
  39. package/dist/esm/app-router/client/actions.js +49 -2
  40. package/dist/esm/app-router/client/actions.js.map +1 -1
  41. package/dist/esm/app-router/server/sessionTernSecure.js +20 -1
  42. package/dist/esm/app-router/server/sessionTernSecure.js.map +1 -1
  43. package/dist/esm/boundary/TernSecureClientProvider.js +0 -1
  44. package/dist/esm/boundary/TernSecureClientProvider.js.map +1 -1
  45. package/dist/esm/components/background.js +41 -0
  46. package/dist/esm/components/background.js.map +1 -0
  47. package/dist/esm/components/sign-in.js +160 -54
  48. package/dist/esm/components/sign-in.js.map +1 -1
  49. package/dist/esm/components/sign-out.js +45 -0
  50. package/dist/esm/components/sign-out.js.map +1 -0
  51. package/dist/esm/components/ui/alert.js +52 -0
  52. package/dist/esm/components/ui/alert.js.map +1 -0
  53. package/dist/esm/components/ui/button.js +49 -0
  54. package/dist/esm/components/ui/button.js.map +1 -0
  55. package/dist/esm/components/ui/card.js +62 -0
  56. package/dist/esm/components/ui/card.js.map +1 -0
  57. package/dist/esm/components/ui/input.js +24 -0
  58. package/dist/esm/components/ui/input.js.map +1 -0
  59. package/dist/esm/components/ui/label.js +21 -0
  60. package/dist/esm/components/ui/label.js.map +1 -0
  61. package/dist/esm/components/ui/separator.js +25 -0
  62. package/dist/esm/components/ui/separator.js.map +1 -0
  63. package/dist/esm/index.js +2 -0
  64. package/dist/esm/index.js.map +1 -1
  65. package/dist/esm/lib/utils.d.js +1 -0
  66. package/dist/esm/lib/utils.d.js.map +1 -0
  67. package/dist/esm/lib/utils.js +9 -0
  68. package/dist/esm/lib/utils.js.map +1 -0
  69. package/dist/esm/utils/client-init.js.map +1 -1
  70. package/dist/esm/utils/construct.js +37 -0
  71. package/dist/esm/utils/construct.js.map +1 -0
  72. package/dist/types/app-router/client/TernSecureProvider.d.ts +1 -1
  73. package/dist/types/app-router/client/TernSecureProvider.d.ts.map +1 -1
  74. package/dist/types/app-router/client/actions.d.ts +34 -0
  75. package/dist/types/app-router/client/actions.d.ts.map +1 -1
  76. package/dist/types/app-router/server/sessionTernSecure.d.ts +4 -0
  77. package/dist/types/app-router/server/sessionTernSecure.d.ts.map +1 -1
  78. package/dist/types/boundary/TernSecureClientProvider.d.ts.map +1 -1
  79. package/dist/types/components/background.d.ts +2 -0
  80. package/dist/types/components/background.d.ts.map +1 -0
  81. package/dist/types/components/sign-in.d.ts +8 -10
  82. package/dist/types/components/sign-in.d.ts.map +1 -1
  83. package/dist/types/components/sign-out.d.ts +10 -0
  84. package/dist/types/components/sign-out.d.ts.map +1 -0
  85. package/dist/types/components/ui/alert.d.ts +9 -0
  86. package/dist/types/components/ui/alert.d.ts.map +1 -0
  87. package/dist/types/components/ui/button.d.ts +12 -0
  88. package/dist/types/components/ui/button.d.ts.map +1 -0
  89. package/dist/types/components/ui/card.d.ts +9 -0
  90. package/dist/types/components/ui/card.d.ts.map +1 -0
  91. package/dist/types/components/ui/input.d.ts +4 -0
  92. package/dist/types/components/ui/input.d.ts.map +1 -0
  93. package/dist/types/components/ui/label.d.ts +6 -0
  94. package/dist/types/components/ui/label.d.ts.map +1 -0
  95. package/dist/types/components/ui/separator.d.ts +5 -0
  96. package/dist/types/components/ui/separator.d.ts.map +1 -0
  97. package/dist/types/index.d.ts +1 -0
  98. package/dist/types/index.d.ts.map +1 -1
  99. package/dist/types/lib/utils.d.ts +3 -0
  100. package/dist/types/lib/utils.d.ts.map +1 -0
  101. package/dist/types/utils/client-init.d.ts.map +1 -1
  102. package/dist/types/utils/construct.d.ts +22 -0
  103. package/dist/types/utils/construct.d.ts.map +1 -0
  104. package/package.json +79 -65
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/sign-in.tsx"],"sourcesContent":["'use client'\r\n\r\nimport React from 'react'\r\nimport { useState } from 'react'\r\nimport { signInWithEmail } from '../app-router/client/actions'\r\nimport { styles } from '../utils/create-styles'\r\nimport { useRouter } from 'next/navigation'\r\n\r\nexport interface SignInProps {\r\n onError?: (error: Error) => void\r\n className?: string\r\n style?: React.CSSProperties\r\n customStyles?: {\r\n container?: string\r\n header?: string\r\n title?: string\r\n formWrapper?: string\r\n formContainer?: string\r\n form?: string\r\n input?: string\r\n button?: string\r\n errorText?: string\r\n label?: string\r\n }\r\n}\r\n\r\nexport function SignIn({ \r\n onError, \r\n className,\r\n style,\r\n customStyles = {}\r\n}: SignInProps) {\r\n\r\n const [loading, setLoading] = useState(false)\r\n const [error, setError] = useState('')\r\n const [email, setEmail] = useState('')\r\n const [password, setPassword] = useState('')\r\n const router = useRouter()\r\n\r\n const handleSubmit = async (e: React.FormEvent) => {\r\n e.preventDefault()\r\n setLoading(true)\r\n try {\r\n const user = await signInWithEmail(email, password)\r\n if (user.success) {\r\n router.push('/')\r\n }\r\n } catch (err) {\r\n const errorMessage = err instanceof Error ? err.message : 'Failed to sign in'\r\n setError(errorMessage)\r\n onError?.(err instanceof Error ? err : new Error('Failed to sign in'))\r\n } finally {\r\n setLoading(false)\r\n }\r\n }\r\n\r\n return (\r\n <div className={`${styles.container} ${customStyles.container || ''}`} style={style}>\r\n <div className={`${styles.header} ${customStyles.header || ''}`}>\r\n <h2 className={`${styles.title} ${customStyles.title || ''}`}>\r\n Sign in to your account\r\n </h2>\r\n </div>\r\n \r\n <div className={`${styles.formWrapper} ${customStyles.formWrapper || ''}`}>\r\n <div className={`${styles.formContainer} ${customStyles.formContainer || ''}`}>\r\n <form \r\n onSubmit={handleSubmit} \r\n className={`${styles.form} ${customStyles.form || ''} ${className}`}\r\n role=\"form\"\r\n aria-label=\"Sign in form\"\r\n >\r\n {error && (\r\n <div \r\n className={`${styles.error} ${customStyles.errorText || ''}`}\r\n role=\"alert\"\r\n aria-live=\"polite\"\r\n >\r\n {error}\r\n </div>\r\n )}\r\n <div>\r\n <label htmlFor=\"email\" className={`${styles.label} ${customStyles.label || ''}`}>\r\n Email\r\n </label>\r\n <input\r\n id=\"email\"\r\n name=\"email\"\r\n type=\"email\"\r\n placeholder=\"Enter your email\"\r\n required\r\n value={email}\r\n onChange={(e) => setEmail(e.target.value)}\r\n className={`${styles.input} ${customStyles.input || ''}`}\r\n disabled={loading}\r\n aria-required=\"true\"\r\n aria-invalid={!!error}\r\n />\r\n </div>\r\n <div>\r\n <label htmlFor=\"password\" className={`${styles.label} ${customStyles.label || ''}`}>\r\n Password\r\n </label>\r\n <input\r\n id=\"password\"\r\n name=\"password\"\r\n type=\"password\"\r\n placeholder=\"Enter your password\"\r\n required\r\n value={password}\r\n onChange={(e) => setPassword(e.target.value)}\r\n className={`${styles.input} ${customStyles.input || ''}`}\r\n disabled={loading}\r\n aria-required=\"true\"\r\n aria-invalid={!!error}\r\n />\r\n </div>\r\n <button \r\n type=\"submit\" \r\n disabled={loading}\r\n className={`${styles.button} ${customStyles.button || ''}`}\r\n data-testid=\"sign-in-submit\"\r\n >\r\n {loading ? 'Signing in...' : 'Sign in'}\r\n </button>\r\n </form>\r\n </div>\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\n"],"mappings":"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","names":["import_react"]}
1
+ {"version":3,"sources":["../../../src/components/sign-in.tsx"],"sourcesContent":["'use client'\r\n\r\nimport React, { useState, useCallback, useEffect } from 'react'\r\nimport { useSearchParams } from 'next/navigation'\r\nimport { signInWithEmail, signInWithRedirectGoogle, signInWithMicrosoft } from '../app-router/client/actions'\r\nimport { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from \"./ui/card\"\r\nimport { Input } from \"./ui/input\"\r\nimport { Label } from \"./ui/label\"\r\nimport { Button } from \"./ui/button\"\r\nimport { Alert, AlertDescription } from \"./ui/alert\"\r\nimport { Separator } from \"./ui/separator\"\r\nimport { cn } from \"../lib/utils\"\r\nimport { Loader2 } from 'lucide-react'\r\nimport { getRedirectResult } from 'firebase/auth'\r\nimport { ternSecureAuth } from '../utils/client-init'\r\nimport { createSessionCookie } from '../app-router/server/sessionTernSecure'\r\nimport { AuthBackground } from './background'\r\nimport { getValidRedirectUrl } from '../utils/construct'\r\n\r\nconst isLocalhost = typeof window !== 'undefined' && \r\n (window.location.hostname === 'localhost' || window.location.hostname === '127.0.0.1');\r\n\r\nconst authDomain = process.env.NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN;\r\n\r\n\r\nexport interface SignInProps {\r\n redirectUrl?: string\r\n onError?: (error: Error) => void\r\n onSuccess?: () => void\r\n className?: string\r\n customStyles?: {\r\n card?: string\r\n input?: string\r\n button?: string\r\n label?: string\r\n separator?: string\r\n title?: string\r\n description?: string\r\n socialButton?: string\r\n }\r\n}\r\n\r\nexport function SignIn({\r\n redirectUrl,\r\n onError,\r\n onSuccess,\r\n className,\r\n customStyles = {}\r\n}: SignInProps) {\r\n const [loading, setLoading] = useState(false)\r\n const [checkingRedirect, setCheckingRedirect] = useState(true)\r\n const [error, setError] = useState('')\r\n const [email, setEmail] = useState('')\r\n const [password, setPassword] = useState('')\r\n const searchParams = useSearchParams()\r\n const isRedirectSignIn = searchParams.get('signInRedirect') === 'true'\r\n\r\n\r\n const handleRedirectResult = useCallback(async () => {\r\n if (!isRedirectSignIn) return false\r\n setCheckingRedirect(true)\r\n try {\r\n console.log('Checking redirect result...');\r\n console.log('Current hostname:', window.location.hostname);\r\n console.log('Auth domain hostname:', authDomain);\r\n\r\n const isOnAuth = authDomain && \r\n window.location.hostname === authDomain.replace(/https?:\\/\\//, '');\r\n console.log('Is on AuthDomain:', isOnAuth);\r\n\r\n\r\n const result = await getRedirectResult(ternSecureAuth)\r\n console.log('Redirect result:', result);\r\n if (result) {\r\n const idToken = await result.user.getIdToken()\r\n const sessionResult = await createSessionCookie(idToken)\r\n if (!sessionResult.success) {\r\n throw new Error('Failed to create session')\r\n }\r\n const storedRedirectUrl = sessionStorage.getItem('auth_return_url')\r\n sessionStorage.removeItem('auth_redirect_url') \r\n onSuccess?.()\r\n window.location.href = storedRedirectUrl || getValidRedirectUrl(redirectUrl, searchParams)\r\n return true\r\n }\r\n setCheckingRedirect(false)\r\n } catch (err) {\r\n console.error('Redirect result error:', err)\r\n const errorMessage = err instanceof Error ? err.message : 'Authentication failed'\r\n setError(errorMessage)\r\n onError?.(err instanceof Error ? err : new Error(errorMessage))\r\n sessionStorage.removeItem('auth_redirect_url')\r\n return false\r\n }\r\n }, [isRedirectSignIn, redirectUrl, searchParams, onSuccess, onError])\r\n\r\n //const REDIRECT_TIMEOUT = 5000;\r\n\r\n useEffect(() => {\r\n //let timeoutId: NodeJS.Timeout;\r\n\r\n if (isRedirectSignIn) {\r\n handleRedirectResult();\r\n\r\n /*timeoutId = setTimeout(() => {\r\n console.warn('Redirect check timed out');\r\n setCheckingRedirect(false);\r\n setError('Sign in took too long. Please try again.');\r\n \r\n }, REDIRECT_TIMEOUT);\r\n }\r\n\r\n return () => {\r\n if (timeoutId) {\r\n clearTimeout(timeoutId);\r\n }*/\r\n };\r\n }, [handleRedirectResult, isRedirectSignIn])\r\n\r\n const handleSubmit = async (e: React.FormEvent) => {\r\n e.preventDefault()\r\n setLoading(true)\r\n try {\r\n const user = await signInWithEmail(email, password)\r\n if (user.success) {\r\n onSuccess?.()\r\n window.location.href = getValidRedirectUrl(redirectUrl, searchParams)\r\n }\r\n } catch (err) {\r\n const errorMessage = err instanceof Error ? err.message : 'Failed to sign in'\r\n setError(errorMessage)\r\n onError?.(err instanceof Error ? err : new Error('Failed to sign in'))\r\n } finally {\r\n setLoading(false)\r\n }\r\n }\r\n\r\n const handleSocialSignIn = async (provider: 'google' | 'microsoft') => {\r\n setLoading(true)\r\n try {\r\n\r\n const validRedirectUrl = getValidRedirectUrl(redirectUrl, searchParams)\r\n sessionStorage.setItem('auth_redirect_url', validRedirectUrl)\r\n\r\n const currentUrl = new URL(window.location.href)\r\n currentUrl.searchParams.set('signInRedirect', 'true')\r\n window.history.replaceState({}, '', currentUrl.toString())\r\n\r\n const result = provider === 'google' ? await signInWithRedirectGoogle() : await signInWithMicrosoft()\r\n if (!result.success) {\r\n throw new Error(result.error)\r\n }\r\n } catch (err) {\r\n const errorMessage = err instanceof Error ? err.message : `Failed to sign in with ${provider}`\r\n setError(errorMessage)\r\n onError?.(err instanceof Error ? err : new Error(`Failed to sign in with ${provider}`))\r\n setLoading(false)\r\n sessionStorage.removeItem('auth_redirect_url')\r\n }\r\n }\r\n\r\n if (checkingRedirect && isRedirectSignIn) {\r\n return (\r\n <div className=\"flex min-h-screen items-center justify-center\">\r\n <div className=\"text-center space-y-4\">\r\n <div className=\"animate-spin rounded-full h-12 w-12 border-b-2 border-primary mx-auto\" />\r\n \r\n </div>\r\n </div>\r\n )\r\n }\r\n\r\n return (\r\n <div className=\"relative flex items-center justify-center\">\r\n <AuthBackground />\r\n <Card className={cn(\"w-full max-w-md mx-auto mt-8\", className, customStyles.card)}>\r\n <CardHeader className=\"space-y-1 text-center\">\r\n <CardTitle className={cn(\"font-bold\", customStyles.title)}>Sign in to TernSecure</CardTitle>\r\n <CardDescription className={cn(\"text-muted-foreground\", customStyles.description)}>\r\n Please sign in to continue\r\n </CardDescription>\r\n </CardHeader>\r\n <CardContent className=\"space-y-4\">\r\n <form onSubmit={handleSubmit} className=\"space-y-4\">\r\n {error && (\r\n <Alert variant=\"destructive\">\r\n <AlertDescription>{error}</AlertDescription>\r\n </Alert>\r\n )}\r\n <div className=\"space-y-2\">\r\n <Label htmlFor=\"email\" className={cn(customStyles.label)}>Email</Label>\r\n <Input\r\n id=\"email\"\r\n type=\"email\"\r\n placeholder=\"m@example.com\"\r\n value={email}\r\n onChange={(e) => setEmail(e.target.value)}\r\n disabled={loading}\r\n className={cn(customStyles.input)}\r\n required\r\n />\r\n </div>\r\n <div className=\"space-y-2\">\r\n <Label htmlFor=\"password\" className={cn(customStyles.label)}>Password</Label>\r\n <Input\r\n id=\"password\"\r\n type=\"password\"\r\n value={password}\r\n onChange={(e) => setPassword(e.target.value)}\r\n disabled={loading}\r\n className={cn(customStyles.input)}\r\n required\r\n />\r\n </div>\r\n <Button type=\"submit\" disabled={loading} className={cn(\"w-full\", customStyles.button)}>\r\n {loading ? (\r\n <>\r\n <Loader2 className=\"mr-2 h-4 w-4 animate-spin\" />\r\n Signing in...\r\n </>\r\n ) : (\r\n 'Sign in'\r\n )}\r\n </Button>\r\n </form>\r\n <div className=\"relative\">\r\n <Separator className={cn(customStyles.separator)} />\r\n <div className=\"absolute inset-0 flex items-center justify-center\">\r\n <span className=\"bg-background px-2 text-muted-foreground text-sm\">Or continue with</span>\r\n </div>\r\n </div>\r\n <div className=\"grid grid-cols-2 gap-4\">\r\n <Button \r\n variant=\"outline\" \r\n disabled={loading} \r\n onClick={() => handleSocialSignIn('google')} \r\n className={cn(\"flex items-center justify-center\", customStyles.socialButton)}\r\n >\r\n <svg className=\"w-5 h-5 mr-2\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path 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\" fill=\"#4285F4\"/>\r\n <path 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\" fill=\"#34A853\"/>\r\n <path d=\"M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l2.85-2.22.81-.62z\" fill=\"#FBBC05\"/>\r\n <path 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.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z\" fill=\"#EA4335\"/>\r\n </svg>\r\n Google\r\n </Button>\r\n <Button \r\n variant=\"outline\" \r\n disabled={loading} \r\n onClick={() => handleSocialSignIn('microsoft')} \r\n className={cn(\"flex items-center justify-center\", customStyles.socialButton)}\r\n >\r\n <svg className=\"w-5 h-5 mr-2\" viewBox=\"0 0 23 23\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path fill=\"#f3f3f3\" d=\"M0 0h23v23H0z\"/>\r\n <path fill=\"#f35325\" d=\"M1 1h10v10H1z\"/>\r\n <path fill=\"#81bc06\" d=\"M12 1h10v10H12z\"/>\r\n <path fill=\"#05a6f0\" d=\"M1 12h10v10H1z\"/>\r\n <path fill=\"#ffba08\" d=\"M12 12h10v10H12z\"/>\r\n </svg>\r\n Microsoft\r\n </Button>\r\n </div>\r\n </CardContent>\r\n <CardFooter className=\"flex justify-center\">\r\n <p className=\"text-sm text-muted-foreground\">\r\n Don&apos;t have an account?{' '}\r\n <a href=\"#\" className=\"text-primary hover:underline\">\r\n Sign up\r\n </a>\r\n </p>\r\n </CardFooter>\r\n </Card>\r\n </div>\r\n )\r\n}\r\n\r\n"],"mappings":"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","names":[]}
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ "use client";
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
20
+ var sign_out_exports = {};
21
+ __export(sign_out_exports, {
22
+ SignOut: () => SignOut
23
+ });
24
+ module.exports = __toCommonJS(sign_out_exports);
25
+ var import_jsx_runtime = require("react/jsx-runtime");
26
+ var import_react = require("react");
27
+ var import_navigation = require("next/navigation");
28
+ var import_auth = require("firebase/auth");
29
+ var import_button = require("./ui/button");
30
+ var import_client_init = require("../utils/client-init");
31
+ var import_sessionTernSecure = require("../app-router/server/sessionTernSecure");
32
+ function SignOut({
33
+ children = "Sign out",
34
+ onError,
35
+ onSignOutSuccess,
36
+ ...buttonProps
37
+ }) {
38
+ const router = (0, import_navigation.useRouter)();
39
+ const [isLoading, setIsLoading] = (0, import_react.useState)(false);
40
+ const handleSignOut = async () => {
41
+ setIsLoading(true);
42
+ try {
43
+ await (0, import_auth.signOut)(import_client_init.ternSecureAuth);
44
+ await (0, import_sessionTernSecure.clearSessionCookie)();
45
+ onSignOutSuccess == null ? void 0 : onSignOutSuccess();
46
+ router.push("/sign-in");
47
+ } catch (error) {
48
+ console.error("Sign out error:", error);
49
+ onError == null ? void 0 : onError(error instanceof Error ? error : new Error("Failed to sign out"));
50
+ } finally {
51
+ setIsLoading(false);
52
+ }
53
+ };
54
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
55
+ import_button.Button,
56
+ {
57
+ variant: "outline",
58
+ onClick: handleSignOut,
59
+ disabled: isLoading,
60
+ ...buttonProps,
61
+ children: isLoading ? "Signing out..." : children
62
+ }
63
+ );
64
+ }
65
+ // Annotate the CommonJS export names for ESM import in node:
66
+ 0 && (module.exports = {
67
+ SignOut
68
+ });
69
+ //# sourceMappingURL=sign-out.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/sign-out.tsx"],"sourcesContent":["'use client'\r\n\r\nimport { useState } from 'react'\r\nimport { useRouter } from 'next/navigation'\r\nimport { signOut } from 'firebase/auth'\r\nimport { Button, type ButtonProps } from './ui/button'\r\nimport { ternSecureAuth } from '../utils/client-init'\r\nimport { clearSessionCookie } from '../app-router/server/sessionTernSecure'\r\n\r\ntype SignOutCustomProps = {\r\n children?: React.ReactNode\r\n onError?: (error: Error) => void\r\n onSignOutSuccess?: () => void\r\n}\r\n\r\ntype SignOutProps = Omit<ButtonProps, 'onClick'> & SignOutCustomProps\r\n\r\nexport function SignOut({ \r\n children = 'Sign out', \r\n onError,\r\n onSignOutSuccess,\r\n ...buttonProps \r\n}: SignOutProps) {\r\n const router = useRouter()\r\n const [isLoading, setIsLoading] = useState(false)\r\n\r\n const handleSignOut = async () => {\r\n setIsLoading(true)\r\n try {\r\n // Sign out from Firebase\r\n await signOut(ternSecureAuth)\r\n \r\n // Clear the session cookie\r\n await clearSessionCookie()\r\n \r\n // Call success callback if provided\r\n onSignOutSuccess?.()\r\n \r\n // Redirect to sign-in page\r\n router.push('/sign-in')\r\n } catch (error) {\r\n console.error('Sign out error:', error)\r\n onError?.(error instanceof Error ? error : new Error('Failed to sign out'))\r\n } finally {\r\n setIsLoading(false)\r\n }\r\n }\r\n\r\n return (\r\n <Button\r\n variant=\"outline\"\r\n onClick={handleSignOut}\r\n disabled={isLoading}\r\n {...buttonProps}\r\n >\r\n {isLoading ? 'Signing out...' : children}\r\n </Button>\r\n )\r\n}\r\n\r\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAiDI;AA/CJ,mBAAyB;AACzB,wBAA0B;AAC1B,kBAAwB;AACxB,oBAAyC;AACzC,yBAA+B;AAC/B,+BAAmC;AAU5B,SAAS,QAAQ;AAAA,EACtB,WAAW;AAAA,EACX;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAAiB;AACf,QAAM,aAAS,6BAAU;AACzB,QAAM,CAAC,WAAW,YAAY,QAAI,uBAAS,KAAK;AAEhD,QAAM,gBAAgB,YAAY;AAChC,iBAAa,IAAI;AACjB,QAAI;AAEF,gBAAM,qBAAQ,iCAAc;AAG5B,gBAAM,6CAAmB;AAGzB;AAGA,aAAO,KAAK,UAAU;AAAA,IACxB,SAAS,OAAO;AACd,cAAQ,MAAM,mBAAmB,KAAK;AACtC,yCAAU,iBAAiB,QAAQ,QAAQ,IAAI,MAAM,oBAAoB;AAAA,IAC3E,UAAE;AACA,mBAAa,KAAK;AAAA,IACpB;AAAA,EACF;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACC,SAAQ;AAAA,MACR,SAAS;AAAA,MACT,UAAU;AAAA,MACT,GAAG;AAAA,MAEH,sBAAY,mBAAmB;AAAA;AAAA,EAClC;AAEJ;","names":[]}
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var alert_exports = {};
30
+ __export(alert_exports, {
31
+ Alert: () => Alert,
32
+ AlertDescription: () => AlertDescription,
33
+ AlertTitle: () => AlertTitle
34
+ });
35
+ module.exports = __toCommonJS(alert_exports);
36
+ var import_jsx_runtime = require("react/jsx-runtime");
37
+ var React = __toESM(require("react"));
38
+ var import_class_variance_authority = require("class-variance-authority");
39
+ var import_utils = require("../../lib/utils");
40
+ const alertVariants = (0, import_class_variance_authority.cva)(
41
+ "relative w-full rounded-lg border px-4 py-3 text-sm [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground [&>svg~*]:pl-7",
42
+ {
43
+ variants: {
44
+ variant: {
45
+ default: "bg-background text-foreground",
46
+ destructive: "border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive"
47
+ }
48
+ },
49
+ defaultVariants: {
50
+ variant: "default"
51
+ }
52
+ }
53
+ );
54
+ const Alert = React.forwardRef(({ className, variant, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
55
+ "div",
56
+ {
57
+ ref,
58
+ role: "alert",
59
+ className: (0, import_utils.cn)(alertVariants({ variant }), className),
60
+ ...props
61
+ }
62
+ ));
63
+ Alert.displayName = "Alert";
64
+ const AlertTitle = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
65
+ "h5",
66
+ {
67
+ ref,
68
+ className: (0, import_utils.cn)("mb-1 font-medium leading-none tracking-tight", className),
69
+ ...props
70
+ }
71
+ ));
72
+ AlertTitle.displayName = "AlertTitle";
73
+ const AlertDescription = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
74
+ "div",
75
+ {
76
+ ref,
77
+ className: (0, import_utils.cn)("text-sm [&_p]:leading-relaxed", className),
78
+ ...props
79
+ }
80
+ ));
81
+ AlertDescription.displayName = "AlertDescription";
82
+ // Annotate the CommonJS export names for ESM import in node:
83
+ 0 && (module.exports = {
84
+ Alert,
85
+ AlertDescription,
86
+ AlertTitle
87
+ });
88
+ //# sourceMappingURL=alert.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/ui/alert.tsx"],"sourcesContent":["import * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"../../lib/utils\"\n\nconst alertVariants = cva(\n \"relative w-full rounded-lg border px-4 py-3 text-sm [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground [&>svg~*]:pl-7\",\n {\n variants: {\n variant: {\n default: \"bg-background text-foreground\",\n destructive:\n \"border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nconst Alert = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & VariantProps<typeof alertVariants>\n>(({ className, variant, ...props }, ref) => (\n <div\n ref={ref}\n role=\"alert\"\n className={cn(alertVariants({ variant }), className)}\n {...props}\n />\n))\nAlert.displayName = \"Alert\"\n\nconst AlertTitle = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLHeadingElement>\n>(({ className, ...props }, ref) => (\n <h5\n ref={ref}\n className={cn(\"mb-1 font-medium leading-none tracking-tight\", className)}\n {...props}\n />\n))\nAlertTitle.displayName = \"AlertTitle\"\n\nconst AlertDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"text-sm [&_p]:leading-relaxed\", className)}\n {...props}\n />\n))\nAlertDescription.displayName = \"AlertDescription\"\n\nexport { Alert, AlertTitle, AlertDescription }\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAyBE;AAzBF,YAAuB;AACvB,sCAAuC;AAEvC,mBAAmB;AAEnB,MAAM,oBAAgB;AAAA,EACpB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SAAS;AAAA,QACT,aACE;AAAA,MACJ;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,MACf,SAAS;AAAA,IACX;AAAA,EACF;AACF;AAEA,MAAM,QAAQ,MAAM,WAGlB,CAAC,EAAE,WAAW,SAAS,GAAG,MAAM,GAAG,QACnC;AAAA,EAAC;AAAA;AAAA,IACC;AAAA,IACA,MAAK;AAAA,IACL,eAAW,iBAAG,cAAc,EAAE,QAAQ,CAAC,GAAG,SAAS;AAAA,IAClD,GAAG;AAAA;AACN,CACD;AACD,MAAM,cAAc;AAEpB,MAAM,aAAa,MAAM,WAGvB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B;AAAA,EAAC;AAAA;AAAA,IACC;AAAA,IACA,eAAW,iBAAG,gDAAgD,SAAS;AAAA,IACtE,GAAG;AAAA;AACN,CACD;AACD,WAAW,cAAc;AAEzB,MAAM,mBAAmB,MAAM,WAG7B,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B;AAAA,EAAC;AAAA;AAAA,IACC;AAAA,IACA,eAAW,iBAAG,iCAAiC,SAAS;AAAA,IACvD,GAAG;AAAA;AACN,CACD;AACD,iBAAiB,cAAc;","names":[]}
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var button_exports = {};
30
+ __export(button_exports, {
31
+ Button: () => Button,
32
+ buttonVariants: () => buttonVariants
33
+ });
34
+ module.exports = __toCommonJS(button_exports);
35
+ var import_jsx_runtime = require("react/jsx-runtime");
36
+ var React = __toESM(require("react"));
37
+ var import_react_slot = require("@radix-ui/react-slot");
38
+ var import_class_variance_authority = require("class-variance-authority");
39
+ var import_utils = require("../../lib/utils");
40
+ const buttonVariants = (0, import_class_variance_authority.cva)(
41
+ "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
42
+ {
43
+ variants: {
44
+ variant: {
45
+ default: "bg-primary text-primary-foreground shadow hover:bg-primary/90",
46
+ destructive: "bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",
47
+ outline: "border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",
48
+ secondary: "bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",
49
+ ghost: "hover:bg-accent hover:text-accent-foreground",
50
+ link: "text-primary underline-offset-4 hover:underline"
51
+ },
52
+ size: {
53
+ default: "h-9 px-4 py-2",
54
+ sm: "h-8 rounded-md px-3 text-xs",
55
+ lg: "h-10 rounded-md px-8",
56
+ icon: "h-9 w-9"
57
+ }
58
+ },
59
+ defaultVariants: {
60
+ variant: "default",
61
+ size: "default"
62
+ }
63
+ }
64
+ );
65
+ const Button = React.forwardRef(
66
+ ({ className, variant, size, asChild = false, ...props }, ref) => {
67
+ const Comp = asChild ? import_react_slot.Slot : "button";
68
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
69
+ Comp,
70
+ {
71
+ className: (0, import_utils.cn)(buttonVariants({ variant, size, className })),
72
+ ref,
73
+ ...props
74
+ }
75
+ );
76
+ }
77
+ );
78
+ Button.displayName = "Button";
79
+ // Annotate the CommonJS export names for ESM import in node:
80
+ 0 && (module.exports = {
81
+ Button,
82
+ buttonVariants
83
+ });
84
+ //# sourceMappingURL=button.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/ui/button.tsx"],"sourcesContent":["import * as React from \"react\"\nimport { Slot } from \"@radix-ui/react-slot\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"../../lib/utils\"\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\",\n {\n variants: {\n variant: {\n default:\n \"bg-primary text-primary-foreground shadow hover:bg-primary/90\",\n destructive:\n \"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90\",\n outline:\n \"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground\",\n secondary:\n \"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80\",\n ghost: \"hover:bg-accent hover:text-accent-foreground\",\n link: \"text-primary underline-offset-4 hover:underline\",\n },\n size: {\n default: \"h-9 px-4 py-2\",\n sm: \"h-8 rounded-md px-3 text-xs\",\n lg: \"h-10 rounded-md px-8\",\n icon: \"h-9 w-9\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof buttonVariants> {\n asChild?: boolean\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n ({ className, variant, size, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : \"button\"\n return (\n <Comp\n className={cn(buttonVariants({ variant, size, className }))}\n ref={ref}\n {...props}\n />\n )\n }\n)\nButton.displayName = \"Button\"\n\nexport { Button, buttonVariants }\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA8CM;AA9CN,YAAuB;AACvB,wBAAqB;AACrB,sCAAuC;AAEvC,mBAAmB;AAEnB,MAAM,qBAAiB;AAAA,EACrB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SACE;AAAA,QACF,aACE;AAAA,QACF,SACE;AAAA,QACF,WACE;AAAA,QACF,OAAO;AAAA,QACP,MAAM;AAAA,MACR;AAAA,MACA,MAAM;AAAA,QACJ,SAAS;AAAA,QACT,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,MAAM;AAAA,MACR;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,MACf,SAAS;AAAA,MACT,MAAM;AAAA,IACR;AAAA,EACF;AACF;AAQA,MAAM,SAAS,MAAM;AAAA,EACnB,CAAC,EAAE,WAAW,SAAS,MAAM,UAAU,OAAO,GAAG,MAAM,GAAG,QAAQ;AAChE,UAAM,OAAO,UAAU,yBAAO;AAC9B,WACE;AAAA,MAAC;AAAA;AAAA,QACC,eAAW,iBAAG,eAAe,EAAE,SAAS,MAAM,UAAU,CAAC,CAAC;AAAA,QAC1D;AAAA,QACC,GAAG;AAAA;AAAA,IACN;AAAA,EAEJ;AACF;AACA,OAAO,cAAc;","names":[]}
@@ -0,0 +1,101 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var card_exports = {};
30
+ __export(card_exports, {
31
+ Card: () => Card,
32
+ CardContent: () => CardContent,
33
+ CardDescription: () => CardDescription,
34
+ CardFooter: () => CardFooter,
35
+ CardHeader: () => CardHeader,
36
+ CardTitle: () => CardTitle
37
+ });
38
+ module.exports = __toCommonJS(card_exports);
39
+ var import_jsx_runtime = require("react/jsx-runtime");
40
+ var React = __toESM(require("react"));
41
+ var import_utils = require("../../lib/utils");
42
+ const Card = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
43
+ "div",
44
+ {
45
+ ref,
46
+ className: (0, import_utils.cn)(
47
+ "rounded-xl border bg-card text-card-foreground shadow",
48
+ className
49
+ ),
50
+ ...props
51
+ }
52
+ ));
53
+ Card.displayName = "Card";
54
+ const CardHeader = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
55
+ "div",
56
+ {
57
+ ref,
58
+ className: (0, import_utils.cn)("flex flex-col space-y-1.5 p-6", className),
59
+ ...props
60
+ }
61
+ ));
62
+ CardHeader.displayName = "CardHeader";
63
+ const CardTitle = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
64
+ "div",
65
+ {
66
+ ref,
67
+ className: (0, import_utils.cn)("font-semibold leading-none tracking-tight", className),
68
+ ...props
69
+ }
70
+ ));
71
+ CardTitle.displayName = "CardTitle";
72
+ const CardDescription = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
73
+ "div",
74
+ {
75
+ ref,
76
+ className: (0, import_utils.cn)("text-sm text-muted-foreground", className),
77
+ ...props
78
+ }
79
+ ));
80
+ CardDescription.displayName = "CardDescription";
81
+ const CardContent = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { ref, className: (0, import_utils.cn)("p-6 pt-0", className), ...props }));
82
+ CardContent.displayName = "CardContent";
83
+ const CardFooter = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
84
+ "div",
85
+ {
86
+ ref,
87
+ className: (0, import_utils.cn)("flex items-center p-6 pt-0", className),
88
+ ...props
89
+ }
90
+ ));
91
+ CardFooter.displayName = "CardFooter";
92
+ // Annotate the CommonJS export names for ESM import in node:
93
+ 0 && (module.exports = {
94
+ Card,
95
+ CardContent,
96
+ CardDescription,
97
+ CardFooter,
98
+ CardHeader,
99
+ CardTitle
100
+ });
101
+ //# sourceMappingURL=card.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/ui/card.tsx"],"sourcesContent":["import * as React from \"react\"\n\nimport { cn } from \"../../lib/utils\"\n\nconst Card = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n \"rounded-xl border bg-card text-card-foreground shadow\",\n className\n )}\n {...props}\n />\n))\nCard.displayName = \"Card\"\n\nconst CardHeader = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"flex flex-col space-y-1.5 p-6\", className)}\n {...props}\n />\n))\nCardHeader.displayName = \"CardHeader\"\n\nconst CardTitle = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"font-semibold leading-none tracking-tight\", className)}\n {...props}\n />\n))\nCardTitle.displayName = \"CardTitle\"\n\nconst CardDescription = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n))\nCardDescription.displayName = \"CardDescription\"\n\nconst CardContent = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"p-6 pt-0\", className)} {...props} />\n))\nCardContent.displayName = \"CardContent\"\n\nconst CardFooter = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"flex items-center p-6 pt-0\", className)}\n {...props}\n />\n))\nCardFooter.displayName = \"CardFooter\"\n\nexport { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent }\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQE;AARF,YAAuB;AAEvB,mBAAmB;AAEnB,MAAM,OAAO,MAAM,WAGjB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B;AAAA,EAAC;AAAA;AAAA,IACC;AAAA,IACA,eAAW;AAAA,MACT;AAAA,MACA;AAAA,IACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,KAAK,cAAc;AAEnB,MAAM,aAAa,MAAM,WAGvB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B;AAAA,EAAC;AAAA;AAAA,IACC;AAAA,IACA,eAAW,iBAAG,iCAAiC,SAAS;AAAA,IACvD,GAAG;AAAA;AACN,CACD;AACD,WAAW,cAAc;AAEzB,MAAM,YAAY,MAAM,WAGtB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B;AAAA,EAAC;AAAA;AAAA,IACC;AAAA,IACA,eAAW,iBAAG,6CAA6C,SAAS;AAAA,IACnE,GAAG;AAAA;AACN,CACD;AACD,UAAU,cAAc;AAExB,MAAM,kBAAkB,MAAM,WAG5B,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B;AAAA,EAAC;AAAA;AAAA,IACC;AAAA,IACA,eAAW,iBAAG,iCAAiC,SAAS;AAAA,IACvD,GAAG;AAAA;AACN,CACD;AACD,gBAAgB,cAAc;AAE9B,MAAM,cAAc,MAAM,WAGxB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B,4CAAC,SAAI,KAAU,eAAW,iBAAG,YAAY,SAAS,GAAI,GAAG,OAAO,CACjE;AACD,YAAY,cAAc;AAE1B,MAAM,aAAa,MAAM,WAGvB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B;AAAA,EAAC;AAAA;AAAA,IACC;AAAA,IACA,eAAW,iBAAG,8BAA8B,SAAS;AAAA,IACpD,GAAG;AAAA;AACN,CACD;AACD,WAAW,cAAc;","names":[]}
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var input_exports = {};
30
+ __export(input_exports, {
31
+ Input: () => Input
32
+ });
33
+ module.exports = __toCommonJS(input_exports);
34
+ var import_jsx_runtime = require("react/jsx-runtime");
35
+ var React = __toESM(require("react"));
36
+ var import_utils = require("../../lib/utils");
37
+ const Input = React.forwardRef(
38
+ ({ className, type, ...props }, ref) => {
39
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
40
+ "input",
41
+ {
42
+ type,
43
+ className: (0, import_utils.cn)(
44
+ "flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
45
+ className
46
+ ),
47
+ ref,
48
+ ...props
49
+ }
50
+ );
51
+ }
52
+ );
53
+ Input.displayName = "Input";
54
+ // Annotate the CommonJS export names for ESM import in node:
55
+ 0 && (module.exports = {
56
+ Input
57
+ });
58
+ //# sourceMappingURL=input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/ui/input.tsx"],"sourcesContent":["import * as React from \"react\"\n\nimport { cn } from \"../../lib/utils\"\n\nconst Input = React.forwardRef<HTMLInputElement, React.ComponentProps<\"input\">>(\n ({ className, type, ...props }, ref) => {\n return (\n <input\n type={type}\n className={cn(\n \"flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm\",\n className\n )}\n ref={ref}\n {...props}\n />\n )\n }\n)\nInput.displayName = \"Input\"\n\nexport { Input }\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAOM;AAPN,YAAuB;AAEvB,mBAAmB;AAEnB,MAAM,QAAQ,MAAM;AAAA,EAClB,CAAC,EAAE,WAAW,MAAM,GAAG,MAAM,GAAG,QAAQ;AACtC,WACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,eAAW;AAAA,UACT;AAAA,UACA;AAAA,QACF;AAAA,QACA;AAAA,QACC,GAAG;AAAA;AAAA,IACN;AAAA,EAEJ;AACF;AACA,MAAM,cAAc;","names":[]}
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var label_exports = {};
30
+ __export(label_exports, {
31
+ Label: () => Label
32
+ });
33
+ module.exports = __toCommonJS(label_exports);
34
+ var import_jsx_runtime = require("react/jsx-runtime");
35
+ var React = __toESM(require("react"));
36
+ var LabelPrimitive = __toESM(require("@radix-ui/react-label"));
37
+ var import_class_variance_authority = require("class-variance-authority");
38
+ var import_utils = require("../../lib/utils");
39
+ const labelVariants = (0, import_class_variance_authority.cva)(
40
+ "text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"
41
+ );
42
+ const Label = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
43
+ LabelPrimitive.Root,
44
+ {
45
+ ref,
46
+ className: (0, import_utils.cn)(labelVariants(), className),
47
+ ...props
48
+ }
49
+ ));
50
+ Label.displayName = LabelPrimitive.Root.displayName;
51
+ // Annotate the CommonJS export names for ESM import in node:
52
+ 0 && (module.exports = {
53
+ Label
54
+ });
55
+ //# sourceMappingURL=label.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/ui/label.tsx"],"sourcesContent":["import * as React from \"react\"\nimport * as LabelPrimitive from \"@radix-ui/react-label\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"../../lib/utils\"\n\nconst labelVariants = cva(\n \"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70\"\n)\n\nconst Label = React.forwardRef<\n React.ElementRef<typeof LabelPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root> &\n VariantProps<typeof labelVariants>\n>(({ className, ...props }, ref) => (\n <LabelPrimitive.Root\n ref={ref}\n className={cn(labelVariants(), className)}\n {...props}\n />\n))\nLabel.displayName = LabelPrimitive.Root.displayName\n\nexport { Label }\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAeE;AAfF,YAAuB;AACvB,qBAAgC;AAChC,sCAAuC;AAEvC,mBAAmB;AAEnB,MAAM,oBAAgB;AAAA,EACpB;AACF;AAEA,MAAM,QAAQ,MAAM,WAIlB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B;AAAA,EAAC,eAAe;AAAA,EAAf;AAAA,IACC;AAAA,IACA,eAAW,iBAAG,cAAc,GAAG,SAAS;AAAA,IACvC,GAAG;AAAA;AACN,CACD;AACD,MAAM,cAAc,eAAe,KAAK;","names":[]}
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var separator_exports = {};
30
+ __export(separator_exports, {
31
+ Separator: () => Separator
32
+ });
33
+ module.exports = __toCommonJS(separator_exports);
34
+ var import_jsx_runtime = require("react/jsx-runtime");
35
+ var React = __toESM(require("react"));
36
+ var SeparatorPrimitive = __toESM(require("@radix-ui/react-separator"));
37
+ var import_utils = require("../../lib/utils");
38
+ const Separator = React.forwardRef(
39
+ ({ className, orientation = "horizontal", decorative = true, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
40
+ SeparatorPrimitive.Root,
41
+ {
42
+ ref,
43
+ decorative,
44
+ orientation,
45
+ className: (0, import_utils.cn)(
46
+ "shrink-0 bg-border",
47
+ orientation === "horizontal" ? "h-[1px] w-full" : "h-full w-[1px]",
48
+ className
49
+ ),
50
+ ...props
51
+ }
52
+ )
53
+ );
54
+ Separator.displayName = SeparatorPrimitive.Root.displayName;
55
+ // Annotate the CommonJS export names for ESM import in node:
56
+ 0 && (module.exports = {
57
+ Separator
58
+ });
59
+ //# sourceMappingURL=separator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/ui/separator.tsx"],"sourcesContent":["import * as React from \"react\"\nimport * as SeparatorPrimitive from \"@radix-ui/react-separator\"\n\nimport { cn } from \"../../lib/utils\"\n\nconst Separator = React.forwardRef<\n React.ElementRef<typeof SeparatorPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof SeparatorPrimitive.Root>\n>(\n (\n { className, orientation = \"horizontal\", decorative = true, ...props },\n ref\n ) => (\n <SeparatorPrimitive.Root\n ref={ref}\n decorative={decorative}\n orientation={orientation}\n className={cn(\n \"shrink-0 bg-border\",\n orientation === \"horizontal\" ? \"h-[1px] w-full\" : \"h-full w-[1px]\",\n className\n )}\n {...props}\n />\n )\n)\nSeparator.displayName = SeparatorPrimitive.Root.displayName\n\nexport { Separator }\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAaI;AAbJ,YAAuB;AACvB,yBAAoC;AAEpC,mBAAmB;AAEnB,MAAM,YAAY,MAAM;AAAA,EAItB,CACE,EAAE,WAAW,cAAc,cAAc,aAAa,MAAM,GAAG,MAAM,GACrE,QAEA;AAAA,IAAC,mBAAmB;AAAA,IAAnB;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA,eAAW;AAAA,QACT;AAAA,QACA,gBAAgB,eAAe,mBAAmB;AAAA,QAClD;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;AACA,UAAU,cAAc,mBAAmB,KAAK;","names":[]}