diff --git a/web/frontend/app/features/auth/components/AuthCardHeading.tsx b/web/frontend/app/features/auth/components/AuthCardHeading.tsx new file mode 100644 index 00000000..7cc1ba7d --- /dev/null +++ b/web/frontend/app/features/auth/components/AuthCardHeading.tsx @@ -0,0 +1,13 @@ +interface AuthCardHeadingProps { + title: string; + subtitle: string; +} + +const AuthCardHeading = ({ title, subtitle }: AuthCardHeadingProps) => ( +
+

{title}

+

{subtitle}

+
+); + +export default AuthCardHeading; diff --git a/web/frontend/app/features/auth/components/AuthErrorAlert.tsx b/web/frontend/app/features/auth/components/AuthErrorAlert.tsx new file mode 100644 index 00000000..4892d919 --- /dev/null +++ b/web/frontend/app/features/auth/components/AuthErrorAlert.tsx @@ -0,0 +1,11 @@ +interface AuthErrorAlertProps { + message: string; +} + +const AuthErrorAlert = ({ message }: AuthErrorAlertProps) => ( +
+ {message} +
+); + +export default AuthErrorAlert; diff --git a/web/frontend/app/features/auth/components/AuthSplitLayout.tsx b/web/frontend/app/features/auth/components/AuthSplitLayout.tsx new file mode 100644 index 00000000..0e770da3 --- /dev/null +++ b/web/frontend/app/features/auth/components/AuthSplitLayout.tsx @@ -0,0 +1,39 @@ +import barBackground from '../../../assets/bar-background.jpg'; + +interface AuthSplitLayoutProps { + headline: string; + blurb: string; + children: React.ReactNode; +} + +const AuthSplitLayout = ({ headline, blurb, children }: AuthSplitLayoutProps) => ( +
+
+ + {/* Darkens the photo from the bottom up so the white hero text stays legible */} +
+ +
+
+

+ {headline} +

+ +

+ {blurb} +

+
+ +
+
+ {children} +
+
+
+
+); + +export default AuthSplitLayout; diff --git a/web/frontend/app/features/auth/components/AuthSwitchPrompt.tsx b/web/frontend/app/features/auth/components/AuthSwitchPrompt.tsx new file mode 100644 index 00000000..953960e1 --- /dev/null +++ b/web/frontend/app/features/auth/components/AuthSwitchPrompt.tsx @@ -0,0 +1,18 @@ +import { Link } from 'react-router'; + +interface AuthSwitchPromptProps { + lead: string; + to: string; + label: string; +} + +const AuthSwitchPrompt = ({ lead, to, label }: AuthSwitchPromptProps) => ( +

+ {lead}{' '} + + {label} + +

+); + +export default AuthSwitchPrompt; diff --git a/web/frontend/app/features/auth/components/ShowPasswordToggle.tsx b/web/frontend/app/features/auth/components/ShowPasswordToggle.tsx new file mode 100644 index 00000000..c61c9e14 --- /dev/null +++ b/web/frontend/app/features/auth/components/ShowPasswordToggle.tsx @@ -0,0 +1,18 @@ +import { Button } from '@headlessui/react'; + +interface ShowPasswordToggleProps { + shown: boolean; + onToggle: () => void; +} + +const ShowPasswordToggle = ({ shown, onToggle }: ShowPasswordToggleProps) => ( + +); + +export default ShowPasswordToggle;