From 5a1bfab63ba346946c1aa75176533c1deca02013 Mon Sep 17 00:00:00 2001 From: louis Date: Mon, 16 Jun 2025 12:20:48 +1000 Subject: [PATCH 1/5] updated dropdown menu --- frontend/components.json | 21 ++ frontend/src/components/Hamburger.tsx | 124 +++++++----- frontend/src/components/ui/dropdown-menu.tsx | 199 +++++++++++++++++++ frontend/src/lib/utils.ts | 6 + 4 files changed, 297 insertions(+), 53 deletions(-) create mode 100644 frontend/components.json create mode 100644 frontend/src/components/ui/dropdown-menu.tsx create mode 100644 frontend/src/lib/utils.ts diff --git a/frontend/components.json b/frontend/components.json new file mode 100644 index 0000000..90e9bf9 --- /dev/null +++ b/frontend/components.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://ui.shadcn.com/schema.json", + "style": "new-york", + "rsc": false, + "tsx": true, + "tailwind": { + "config": "tailwind.config.ts", + "css": "src/styles/globals.css", + "baseColor": "neutral", + "cssVariables": true, + "prefix": "" + }, + "aliases": { + "components": "@/components", + "utils": "@/lib/utils", + "ui": "@/components/ui", + "lib": "@/lib", + "hooks": "@/hooks" + }, + "iconLibrary": "lucide" +} \ No newline at end of file diff --git a/frontend/src/components/Hamburger.tsx b/frontend/src/components/Hamburger.tsx index 0807dad..abf39de 100644 --- a/frontend/src/components/Hamburger.tsx +++ b/frontend/src/components/Hamburger.tsx @@ -1,62 +1,80 @@ import React from 'react'; -import { AnimatePresence, motion, useCycle } from 'framer-motion'; import Link from 'next/link'; +import { + DropdownMenu, + DropdownMenuContent, + DropdownMenuItem, + DropdownMenuLabel, + DropdownMenuSeparator, + DropdownMenuTrigger, +} from "@/components/ui/dropdown-menu"; export default function Hamburger() { - const [isOpen, toggleOpen] = useCycle(false, true); return ( - + Merch + + + + ); -} +} \ No newline at end of file diff --git a/frontend/src/components/ui/dropdown-menu.tsx b/frontend/src/components/ui/dropdown-menu.tsx new file mode 100644 index 0000000..e804bca --- /dev/null +++ b/frontend/src/components/ui/dropdown-menu.tsx @@ -0,0 +1,199 @@ +import * as React from "react" +import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu" +import { Check, ChevronRight, Circle } from "lucide-react" + +import { cn } from "@/lib/utils" + +const DropdownMenu = DropdownMenuPrimitive.Root + +const DropdownMenuTrigger = DropdownMenuPrimitive.Trigger + +const DropdownMenuGroup = DropdownMenuPrimitive.Group + +const DropdownMenuPortal = DropdownMenuPrimitive.Portal + +const DropdownMenuSub = DropdownMenuPrimitive.Sub + +const DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup + +const DropdownMenuSubTrigger = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef & { + inset?: boolean + } +>(({ className, inset, children, ...props }, ref) => ( + + {children} + + +)) +DropdownMenuSubTrigger.displayName = + DropdownMenuPrimitive.SubTrigger.displayName + +const DropdownMenuSubContent = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +DropdownMenuSubContent.displayName = + DropdownMenuPrimitive.SubContent.displayName + +const DropdownMenuContent = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, sideOffset = 4, ...props }, ref) => ( + + + +)) +DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName + +const DropdownMenuItem = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef & { + inset?: boolean + } +>(({ className, inset, ...props }, ref) => ( + svg]:size-4 [&>svg]:shrink-0", + inset && "pl-8", + className + )} + {...props} + /> +)) +DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName + +const DropdownMenuCheckboxItem = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, children, checked, ...props }, ref) => ( + + + + + + + {children} + +)) +DropdownMenuCheckboxItem.displayName = + DropdownMenuPrimitive.CheckboxItem.displayName + +const DropdownMenuRadioItem = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, children, ...props }, ref) => ( + + + + + + + {children} + +)) +DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName + +const DropdownMenuLabel = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef & { + inset?: boolean + } +>(({ className, inset, ...props }, ref) => ( + +)) +DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName + +const DropdownMenuSeparator = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +DropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName + +const DropdownMenuShortcut = ({ + className, + ...props +}: React.HTMLAttributes) => { + return ( + + ) +} +DropdownMenuShortcut.displayName = "DropdownMenuShortcut" + +export { + DropdownMenu, + DropdownMenuTrigger, + DropdownMenuContent, + DropdownMenuItem, + DropdownMenuCheckboxItem, + DropdownMenuRadioItem, + DropdownMenuLabel, + DropdownMenuSeparator, + DropdownMenuShortcut, + DropdownMenuGroup, + DropdownMenuPortal, + DropdownMenuSub, + DropdownMenuSubContent, + DropdownMenuSubTrigger, + DropdownMenuRadioGroup, +} diff --git a/frontend/src/lib/utils.ts b/frontend/src/lib/utils.ts new file mode 100644 index 0000000..bd0c391 --- /dev/null +++ b/frontend/src/lib/utils.ts @@ -0,0 +1,6 @@ +import { clsx, type ClassValue } from "clsx" +import { twMerge } from "tailwind-merge" + +export function cn(...inputs: ClassValue[]) { + return twMerge(clsx(inputs)) +} From 6881889d3d2ad1f8af50f9bdb1f63e817fb60832 Mon Sep 17 00:00:00 2001 From: louis Date: Mon, 16 Jun 2025 12:35:27 +1000 Subject: [PATCH 2/5] fix to hdyration error --- frontend/src/components/Hamburger.tsx | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/frontend/src/components/Hamburger.tsx b/frontend/src/components/Hamburger.tsx index abf39de..306f71b 100644 --- a/frontend/src/components/Hamburger.tsx +++ b/frontend/src/components/Hamburger.tsx @@ -4,8 +4,6 @@ import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, - DropdownMenuLabel, - DropdownMenuSeparator, DropdownMenuTrigger, } from "@/components/ui/dropdown-menu"; @@ -13,7 +11,7 @@ export default function Hamburger() { return ( - + - + About Us - + Events - + Resources - + Sponsors - + Contact Us - + Date: Mon, 16 Jun 2025 14:03:59 +1000 Subject: [PATCH 4/5] installed dependencies for @radix-ui/react-dropdown-menu clsx tailwind-merge --- frontend/package-lock.json | 732 +++++++++++++++++++++++++++++++++++++ frontend/package.json | 3 + 2 files changed, 735 insertions(+) diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 71f8ec3..b469d15 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -8,12 +8,14 @@ "name": "new_website", "version": "0.1.0", "dependencies": { + "@radix-ui/react-dropdown-menu": "^2.1.15", "@splinetool/react-spline": "^2.2.6", "@types/node": "20.5.9", "@types/react": "18.2.21", "@types/react-dom": "18.2.7", "autoprefixer": "10.4.15", "axios": "^1.7.2", + "clsx": "^2.1.1", "eslint-config-next": "13.4.19", "framer-motion": "^11.2.13", "lucide-react": "^0.511.0", @@ -23,6 +25,7 @@ "react": "18.2.0", "react-dom": "18.2.0", "react-multi-carousel": "^2.8.5", + "tailwind-merge": "^3.3.1", "tailwindcss": "3.3.3", "typescript": "5.1" }, @@ -124,6 +127,44 @@ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, + "node_modules/@floating-ui/core": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.1.tgz", + "integrity": "sha512-azI0DrjMMfIug/ExbBaeDVJXcY0a7EPvPjb2xAJPa4HeimBX+Z18HK8QQR3jb6356SnDDdxx+hinMLcJEDdOjw==", + "license": "MIT", + "dependencies": { + "@floating-ui/utils": "^0.2.9" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.1.tgz", + "integrity": "sha512-cwsmW/zyw5ltYTUeeYJ60CnQuPqmGwuGVhG9w0PRaRKkAyi38BT5CKrpIbb+jtahSwUl04cWzSx9ZOIxeS6RsQ==", + "license": "MIT", + "dependencies": { + "@floating-ui/core": "^1.7.1", + "@floating-ui/utils": "^0.2.9" + } + }, + "node_modules/@floating-ui/react-dom": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.3.tgz", + "integrity": "sha512-huMBfiU9UnQ2oBwIhgzyIiSpVgvlDstU8CX0AF+wS+KzmYMs0J2a3GwuFHV1Lz+jlrQGeC1fF+Nv0QoumyV0bA==", + "license": "MIT", + "dependencies": { + "@floating-ui/dom": "^1.0.0" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.9.tgz", + "integrity": "sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==", + "license": "MIT" + }, "node_modules/@humanwhocodes/config-array": { "version": "0.11.14", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", @@ -493,6 +534,539 @@ "url": "https://opencollective.com/unts" } }, + "node_modules/@radix-ui/primitive": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.2.tgz", + "integrity": "sha512-XnbHrrprsNqZKQhStrSwgRUQzoCI1glLzdw79xiZPoofhGICeZRSQ3dIxAKH1gb3OHfNf4d6f+vAv3kil2eggA==", + "license": "MIT" + }, + "node_modules/@radix-ui/react-arrow": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.1.7.tgz", + "integrity": "sha512-F+M1tLhO+mlQaOWspE8Wstg+z6PwxwRd8oQ8IXceWz92kfAmalTRf0EjrouQeo7QssEPfCn05B4Ihs1K9WQ/7w==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.1.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-collection": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.7.tgz", + "integrity": "sha512-Fh9rGN0MoI4ZFUNyfFVNU4y9LUz93u9/0K+yLgA2bwRojxM8JU1DyvvMBabnZPBgMWREAJvU2jjVzq+LrFUglw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-slot": "1.2.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-compose-refs": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", + "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-context": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.2.tgz", + "integrity": "sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-direction": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.1.1.tgz", + "integrity": "sha512-1UEWRX6jnOA2y4H5WczZ44gOOjTEmlqv1uNW4GAJEO5+bauCBhv8snY65Iw5/VOS/ghKN9gr2KjnLKxrsvoMVw==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dismissable-layer": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.10.tgz", + "integrity": "sha512-IM1zzRV4W3HtVgftdQiiOmA0AdJlCtMLe00FXaHwgt3rAnNsIyDqshvkIW3hj/iu5hu8ERP7KIYki6NkqDxAwQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.2", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-escape-keydown": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dropdown-menu": { + "version": "2.1.15", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-2.1.15.tgz", + "integrity": "sha512-mIBnOjgwo9AH3FyKaSWoSu/dYj6VdhJ7frEPiGTeXCdUFHjl9h3mFh2wwhEtINOmYXWhdpf1rY2minFsmaNgVQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.2", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-menu": "2.1.15", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-controllable-state": "1.2.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-focus-guards": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.2.tgz", + "integrity": "sha512-fyjAACV62oPV925xFCrH8DR5xWhg9KYtJT4s3u54jxp+L/hbpTY2kIeEFFbFe+a/HCE94zGQMZLIpVTPVZDhaA==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-focus-scope": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.7.tgz", + "integrity": "sha512-t2ODlkXBQyn7jkl6TNaw/MtVEVvIGelJDCG41Okq/KwUsJBwQ4XVZsHAVUkK4mBv3ewiAS3PGuUWuY2BoK4ZUw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-id": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.1.tgz", + "integrity": "sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-menu": { + "version": "2.1.15", + "resolved": "https://registry.npmjs.org/@radix-ui/react-menu/-/react-menu-2.1.15.tgz", + "integrity": "sha512-tVlmA3Vb9n8SZSd+YSbuFR66l87Wiy4du+YE+0hzKQEANA+7cWKH1WgqcEX4pXqxUFQKrWQGHdvEfw00TjFiew==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.2", + "@radix-ui/react-collection": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-dismissable-layer": "1.1.10", + "@radix-ui/react-focus-guards": "1.1.2", + "@radix-ui/react-focus-scope": "1.1.7", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-popper": "1.2.7", + "@radix-ui/react-portal": "1.1.9", + "@radix-ui/react-presence": "1.1.4", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-roving-focus": "1.1.10", + "@radix-ui/react-slot": "1.2.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "aria-hidden": "^1.2.4", + "react-remove-scroll": "^2.6.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-popper": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.2.7.tgz", + "integrity": "sha512-IUFAccz1JyKcf/RjB552PlWwxjeCJB8/4KxT7EhBHOJM+mN7LdW+B3kacJXILm32xawcMMjb2i0cIZpo+f9kiQ==", + "license": "MIT", + "dependencies": { + "@floating-ui/react-dom": "^2.0.0", + "@radix-ui/react-arrow": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-layout-effect": "1.1.1", + "@radix-ui/react-use-rect": "1.1.1", + "@radix-ui/react-use-size": "1.1.1", + "@radix-ui/rect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-portal": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.9.tgz", + "integrity": "sha512-bpIxvq03if6UNwXZ+HTK71JLh4APvnXntDc6XOX8UVq4XQOVl7lwok0AvIl+b8zgCw3fSaVTZMpAPPagXbKmHQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-presence": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.4.tgz", + "integrity": "sha512-ueDqRbdc4/bkaQT3GIpLQssRlFgWaL/U2z/S31qRwwLWoxHLgry3SIfCwhxeQNbirEUXFa+lq3RL3oBYXtcmIA==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-primitive": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.3.tgz", + "integrity": "sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-slot": "1.2.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-roving-focus": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.10.tgz", + "integrity": "sha512-dT9aOXUen9JSsxnMPv/0VqySQf5eDQ6LCk5Sw28kamz8wSOW2bJdlX2Bg5VUIIcV+6XlHpWTIuTPCf/UNIyq8Q==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.2", + "@radix-ui/react-collection": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-controllable-state": "1.2.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-slot": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.3.tgz", + "integrity": "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-callback-ref": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.1.tgz", + "integrity": "sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-controllable-state": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.2.2.tgz", + "integrity": "sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-effect-event": "0.0.2", + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-effect-event": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-effect-event/-/react-use-effect-event-0.0.2.tgz", + "integrity": "sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-escape-keydown": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.1.tgz", + "integrity": "sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-callback-ref": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-layout-effect": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.1.tgz", + "integrity": "sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-rect": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-1.1.1.tgz", + "integrity": "sha512-QTYuDesS0VtuHNNvMh+CjlKJ4LJickCMUAqjlE3+j8w+RlRpwyX3apEQKGFzbZGdo7XNG1tXa+bQqIE7HIXT2w==", + "license": "MIT", + "dependencies": { + "@radix-ui/rect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-size": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-1.1.1.tgz", + "integrity": "sha512-ewrXRDTAqAXlkl6t/fkXWNAhFX9I+CkKlw6zjEwk86RSPKwZr3xpBRso655aqYafwtnbpHLj6toFzmd6xdVptQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/rect": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/rect/-/rect-1.1.1.tgz", + "integrity": "sha512-HPwpGIzkl28mWyZqG52jiqDJ12waP11Pa1lGoiyUkIEuMLBP0oeK/C89esbXrxsky5we7dfd8U58nm0SgAWpVw==", + "license": "MIT" + }, "node_modules/@rushstack/eslint-patch": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.3.3.tgz", @@ -887,6 +1461,18 @@ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true }, + "node_modules/aria-hidden": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.6.tgz", + "integrity": "sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/aria-query": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", @@ -1341,6 +1927,15 @@ "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==" }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -1544,6 +2139,12 @@ "node": ">=6" } }, + "node_modules/detect-node-es": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", + "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==", + "license": "MIT" + }, "node_modules/didyoumean": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", @@ -2522,6 +3123,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/get-nonce": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", + "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/get-symbol-description": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", @@ -4172,6 +4782,75 @@ "node": ">=8" } }, + "node_modules/react-remove-scroll": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.7.1.tgz", + "integrity": "sha512-HpMh8+oahmIdOuS5aFKKY6Pyog+FNaZV/XyJOq7b4YFwsFHe5yYfdbIalI4k3vU2nSDql7YskmUseHsRrJqIPA==", + "license": "MIT", + "dependencies": { + "react-remove-scroll-bar": "^2.3.7", + "react-style-singleton": "^2.2.3", + "tslib": "^2.1.0", + "use-callback-ref": "^1.3.3", + "use-sidecar": "^1.1.3" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-remove-scroll-bar": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.8.tgz", + "integrity": "sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==", + "license": "MIT", + "dependencies": { + "react-style-singleton": "^2.2.2", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-style-singleton": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.3.tgz", + "integrity": "sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==", + "license": "MIT", + "dependencies": { + "get-nonce": "^1.0.0", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/read-cache": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", @@ -4775,6 +5454,16 @@ "url": "https://opencollective.com/unts" } }, + "node_modules/tailwind-merge": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-3.3.1.tgz", + "integrity": "sha512-gBXpgUm/3rp1lMZZrM/w7D8GKqshif0zAymAhbCyIt8KMe+0v9DQ7cdYLR4FHH/cKpdTXb+A/tKKU3eolfsI+g==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/dcastil" + } + }, "node_modules/tailwindcss": { "version": "3.3.3", "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.3.3.tgz", @@ -5061,6 +5750,49 @@ "punycode": "^2.1.0" } }, + "node_modules/use-callback-ref": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.3.tgz", + "integrity": "sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-sidecar": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.3.tgz", + "integrity": "sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==", + "license": "MIT", + "dependencies": { + "detect-node-es": "^1.1.0", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", diff --git a/frontend/package.json b/frontend/package.json index 4a04cd5..8a3d9a0 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -13,12 +13,14 @@ "type-check": "tsc --noemit" }, "dependencies": { + "@radix-ui/react-dropdown-menu": "^2.1.15", "@splinetool/react-spline": "^2.2.6", "@types/node": "20.5.9", "@types/react": "18.2.21", "@types/react-dom": "18.2.7", "autoprefixer": "10.4.15", "axios": "^1.7.2", + "clsx": "^2.1.1", "eslint-config-next": "13.4.19", "framer-motion": "^11.2.13", "lucide-react": "^0.511.0", @@ -28,6 +30,7 @@ "react": "18.2.0", "react-dom": "18.2.0", "react-multi-carousel": "^2.8.5", + "tailwind-merge": "^3.3.1", "tailwindcss": "3.3.3", "typescript": "5.1" }, From a7c9e8c1d5411999218a1a0228a94df52f0ff37d Mon Sep 17 00:00:00 2001 From: louis Date: Mon, 16 Jun 2025 23:07:39 +1000 Subject: [PATCH 5/5] updated tab display message and favicon --- frontend/public/csesoc-favicon.ico | Bin 0 -> 432254 bytes frontend/src/pages/404.tsx | 44 +++++++++++++++++------------ frontend/src/pages/_document.tsx | 1 + frontend/src/pages/about/index.tsx | 6 ++++ frontend/src/pages/contact-us.tsx | 5 ++++ frontend/src/pages/events.tsx | 25 ++++++++++------ frontend/src/pages/index.tsx | 12 ++++++-- frontend/src/pages/resources.tsx | 6 ++++ frontend/src/pages/sponsors.tsx | 5 ++++ 9 files changed, 75 insertions(+), 29 deletions(-) create mode 100644 frontend/public/csesoc-favicon.ico diff --git a/frontend/public/csesoc-favicon.ico b/frontend/public/csesoc-favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..6ca344c826bd510d16837b158c92ae8d4821f6cc GIT binary patch literal 432254 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 -
- -

404 - Page Not Found

-

- Sorry! We can't find the page you're looking for! -
-

-
-