diff --git a/compass/app/auth/forgot_password/page.tsx b/compass/app/auth/forgot_password/page.tsx index 555f0cd..c8493b0 100644 --- a/compass/app/auth/forgot_password/page.tsx +++ b/compass/app/auth/forgot_password/page.tsx @@ -1,11 +1,10 @@ // pages/forgot-password.tsx "use client"; -import React, { useState, useEffect } from 'react'; +import React, { useState } from 'react'; import Input from '@/components/Input'; import Button from '@/components/Button'; import InlineLink from '@/components/InlineLink'; -import Paper from '@/components/auth/Paper'; import ErrorBanner from '@/components/auth/ErrorBanner'; diff --git a/compass/app/auth/layout.tsx b/compass/app/auth/layout.tsx index 6a6fb96..1181fe6 100644 --- a/compass/app/auth/layout.tsx +++ b/compass/app/auth/layout.tsx @@ -1,6 +1,6 @@ import Paper from '@/components/auth/Paper'; - + export default function RootLayout({ // Layouts must accept a children prop. @@ -11,12 +11,12 @@ export default function RootLayout({ }) { return ( -
- {children} -
-

- © 2024 Compass Center -

-
+
+ {children} +
+

+ © 2024 Compass Center +

+ ) } \ No newline at end of file diff --git a/compass/app/auth/login/page.tsx b/compass/app/auth/login/page.tsx index 5055714..a420d32 100644 --- a/compass/app/auth/login/page.tsx +++ b/compass/app/auth/login/page.tsx @@ -4,7 +4,6 @@ import Button from '@/components/Button'; import Input from '@/components/Input' import InlineLink from '@/components/InlineLink'; -import Paper from '@/components/auth/Paper'; import Image from 'next/image'; import { useState } from "react"; import PasswordInput from '@/components/auth/PasswordInput'; diff --git a/compass/app/auth/new_password/page.tsx b/compass/app/auth/new_password/page.tsx index 3fb3e83..1d9ca52 100644 --- a/compass/app/auth/new_password/page.tsx +++ b/compass/app/auth/new_password/page.tsx @@ -2,8 +2,6 @@ "use client"; import { useState, useEffect } from 'react'; import Button from '@/components/Button'; - -import Paper from '@/components/auth/Paper'; import PasswordInput from '@/components/auth/PasswordInput'; import ErrorBanner from '@/components/auth/ErrorBanner'; diff --git a/compass/app/layout.tsx b/compass/app/layout.tsx index 2509089..58c13ff 100644 --- a/compass/app/layout.tsx +++ b/compass/app/layout.tsx @@ -1,9 +1,5 @@ import '../styles/globals.css'; -import { Metadata } from 'next' - -export const metadata: Metadata = { - title: 'Login', -} + export default function RootLayout({ // Layouts must accept a children prop. diff --git a/compass/app/resource/layout.tsx b/compass/app/resource/layout.tsx new file mode 100644 index 0000000..bb7fddd --- /dev/null +++ b/compass/app/resource/layout.tsx @@ -0,0 +1,37 @@ +"use client" + +import Sidebar from '@/components/resource/Sidebar'; +import React, { useState } from 'react'; +import { ChevronDoubleRightIcon } from '@heroicons/react/24/outline'; + +export default function RootLayout({ + + children, +}: { + children: React.ReactNode +}) { + const [isSidebarOpen, setIsSidebarOpen] = useState(false); + + return ( +
+ {/* button to open sidebar */} + + {/* sidebar */} +
+ +
+ {/* page ui */} +
+ {children} +
+
+ ) +} \ No newline at end of file diff --git a/compass/app/resource/page.tsx b/compass/app/resource/page.tsx new file mode 100644 index 0000000..ca68cdb --- /dev/null +++ b/compass/app/resource/page.tsx @@ -0,0 +1,39 @@ +"use client" +import Callout from "@/components/resource/Callout"; +import Card from "@/components/resource/Card"; +import { LandingSearchBar } from "@/components/resource/LandingSearchBar"; +import { BookOpenIcon, BookmarkIcon, ClipboardIcon } from "@heroicons/react/24/solid"; +import Image from 'next/image'; + +export default function Page() { + return ( +
+ {/* icon + title */} +
+
+ Compass Center logo. +

Compass Center Advocate Landing Page

+
+ + Welcome! Below you will find a list of resources for the Compass Center's trained advocates. These materials serve to virtually provide a collection of advocacy, resource, and hotline manuals and information. + If you are an advocate looking for the contact information of a particular Compass Center employee, please directly contact your staff back-up or the person in charge of your training. + +
+
+ {/* link to different pages */} +
+ } text="Resources" /> + } text="Services" /> + } text="Training Manuals" /> +
+ {/* search bar */} + +
+
+ ) +} diff --git a/compass/components/auth/Paper.tsx b/compass/components/auth/Paper.tsx index 95b9ba0..de9d4b3 100644 --- a/compass/components/auth/Paper.tsx +++ b/compass/components/auth/Paper.tsx @@ -6,7 +6,7 @@ interface PageInterface { const Paper: React.FC = ({ children }) => { return ( -
+
{children}
); diff --git a/compass/components/resource/Callout.tsx b/compass/components/resource/Callout.tsx new file mode 100644 index 0000000..c51f3f2 --- /dev/null +++ b/compass/components/resource/Callout.tsx @@ -0,0 +1,15 @@ +import { ReactNode } from "react"; + +interface CalloutProps { + children: ReactNode; +} + +const Callout = ({ children }: CalloutProps) => { + return ( +
+ {children} +
+ ); +}; + +export default Callout; \ No newline at end of file diff --git a/compass/components/resource/Card.tsx b/compass/components/resource/Card.tsx new file mode 100644 index 0000000..140542b --- /dev/null +++ b/compass/components/resource/Card.tsx @@ -0,0 +1,20 @@ +import React, { ReactNode } from "react"; + + +interface TagProps { + text: string; + icon: React.ReactNode; +} + +const Card: React.FC = ({ text, icon }) => { + return ( +
+ + {icon} + + {text} +
+ ); +}; + +export default Card; \ No newline at end of file diff --git a/compass/components/resource/LandingSearchBar.tsx b/compass/components/resource/LandingSearchBar.tsx new file mode 100644 index 0000000..f52b6ba --- /dev/null +++ b/compass/components/resource/LandingSearchBar.tsx @@ -0,0 +1,48 @@ +import { MagnifyingGlassIcon, XMarkIcon } from "@heroicons/react/24/solid" +import React, { useState } from 'react'; +import Image from 'next/image'; + +export const LandingSearchBar: React.FC = () => { + const [searchTerm, setSearchTerm] = useState(''); + + const handleSearchChange = (event: React.ChangeEvent) => { + setSearchTerm(event.target.value); + }; + + const clearSearch = () => { + setSearchTerm(''); + }; + + return ( +
+ {/* searchbar */} +
+
+ +
+ {/* input */} + {searchTerm && ( + + )} +
+
+
+ {/* search results, for now since it's empty this is the default screen */} +
+ Landing illustration +

Need to find something? Use the links or the search bar above to get your results.

+
+
+ ); +}; diff --git a/compass/components/resource/Sidebar.tsx b/compass/components/resource/Sidebar.tsx new file mode 100644 index 0000000..f139b7d --- /dev/null +++ b/compass/components/resource/Sidebar.tsx @@ -0,0 +1,51 @@ +import React from 'react'; +import { HomeIcon, ChevronDoubleLeftIcon, BookmarkIcon, ClipboardIcon, BookOpenIcon } from '@heroicons/react/24/solid'; +import { SidebarItem } from './SidebarItem'; + +interface SidebarProps { + setIsSidebarOpen: React.Dispatch>; +} + +const Sidebar: React.FC = ({ setIsSidebarOpen }) => { + return ( +
+ {/* button to close sidebar */} +
+ +
+
+ + {/* user + logout button */} +
+ +
+
+ Compass Center + cssgunc@gmail.com +
+ +
+
+ {/* navigation menu */} +
+

Pages

+ +
+
+
+ ); +}; + + +export default Sidebar; \ No newline at end of file diff --git a/compass/components/resource/SidebarItem.tsx b/compass/components/resource/SidebarItem.tsx new file mode 100644 index 0000000..db7a4db --- /dev/null +++ b/compass/components/resource/SidebarItem.tsx @@ -0,0 +1,16 @@ + +interface SidebarItemProps { + icon: React.ReactElement; + text: string; +} + +export const SidebarItem: React.FC = ({ icon, text }) => { + return ( + + + {icon} + + {text} + + ); +}; \ No newline at end of file diff --git a/compass/next.config.js b/compass/next.config.js index 767719f..9fff58d 100644 --- a/compass/next.config.js +++ b/compass/next.config.js @@ -1,4 +1,8 @@ /** @type {import('next').NextConfig} */ -const nextConfig = {} +const nextConfig = { + images: { + domains: ['notioly.com'] + }, +} module.exports = nextConfig diff --git a/compass/public/landing_illustration.png b/compass/public/landing_illustration.png new file mode 100644 index 0000000..ac853ce Binary files /dev/null and b/compass/public/landing_illustration.png differ diff --git a/compass/styles/globals.css b/compass/styles/globals.css index bec3b2c..9fb976a 100644 --- a/compass/styles/globals.css +++ b/compass/styles/globals.css @@ -36,12 +36,61 @@ font-family: 'Inter'; font-style: normal; font-weight: 400; - src: url('/fonts/Inter-Regular.ttf') format('ttf'), - url('/fonts/Inter-Bold.ttf') format('ttf'), - url('/fonts/Inter-Black.ttf') format('ttf'), - url('/fonts/Inter-ExtraBold.ttf') format('ttf'), - url('/fonts/Inter-ExtraLight.ttf') format('ttf'), - url('/fonts/Inter-Medium.ttf') format('ttf'), - url('/fonts/Inter-SemiBold.ttf') format('ttf'), - url('/fonts/Inter-Thin.ttf') format('ttf'); - } \ No newline at end of file + src: url('/fonts/Inter-Regular.ttf') format('truetype'); +} + +/* Inter-Bold */ +@font-face { + font-family: 'Inter'; + font-style: normal; + font-weight: 700; + src: url('/fonts/Inter-Bold.ttf') format('truetype'); +} + +/* Inter-Black */ +@font-face { + font-family: 'Inter'; + font-style: normal; + font-weight: 900; + src: url('/fonts/Inter-Black.ttf') format('truetype'); +} + +/* Inter-ExtraBold */ +@font-face { + font-family: 'Inter'; + font-style: normal; + font-weight: 800; + src: url('/fonts/Inter-ExtraBold.ttf') format('truetype'); +} + +/* Inter-ExtraLight */ +@font-face { + font-family: 'Inter'; + font-style: normal; + font-weight: 200; + src: url('/fonts/Inter-ExtraLight.ttf') format('truetype'); +} + +/* Inter-Medium */ +@font-face { + font-family: 'Inter'; + font-style: normal; + font-weight: 500; + src: url('/fonts/Inter-Medium.ttf') format('truetype'); +} + +/* Inter-SemiBold */ +@font-face { + font-family: 'Inter'; + font-style: normal; + font-weight: 600; + src: url('/fonts/Inter-SemiBold.ttf') format('truetype'); +} + +/* Inter-Thin */ +@font-face { + font-family: 'Inter'; + font-style: normal; + font-weight: 100; + src: url('/fonts/Inter-Thin.ttf') format('truetype'); +} \ No newline at end of file diff --git a/compass/tailwind.config.ts b/compass/tailwind.config.ts index abab24e..d0ea17c 100644 --- a/compass/tailwind.config.ts +++ b/compass/tailwind.config.ts @@ -13,8 +13,11 @@ const config: Config = { 'gradient-conic': 'conic-gradient(from 180deg at 50% 50%, var(--tw-gradient-stops))', }, fontFamily: { - sans: ['Inter', 'sans-serif'], + 'sans': ['Inter', 'sans-serif'], // Add 'Inter' to the fontFamily theme }, + fontWeight: { + 'medium': 500, // Ensure medium is correctly set to 500 + } }, }, plugins: [],