From 1b86e3f3af8dacdd865033e090bb3b2b01ed4ba4 Mon Sep 17 00:00:00 2001 From: Mohammed Husamuddin Date: Wed, 22 Jan 2025 12:12:27 +0400 Subject: [PATCH] added a banner for the new internships initiative --- package-lock.json | 378 +++++++++++++++++++++++++++----- package.json | 5 +- public/sw.js | 2 +- src/app/layout.tsx | 1 + src/components/popup-banner.tsx | 27 +++ src/components/ui/banner.tsx | 123 +++++++++++ src/components/ui/label.tsx | 26 +++ 7 files changed, 501 insertions(+), 61 deletions(-) create mode 100644 src/components/popup-banner.tsx create mode 100644 src/components/ui/banner.tsx create mode 100644 src/components/ui/label.tsx diff --git a/package-lock.json b/package-lock.json index 8de101a..4f2b9c5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,10 +10,11 @@ "dependencies": { "@firebase/analytics": "^0.10.8", "@radix-ui/react-accordion": "^1.2.2", - "@radix-ui/react-checkbox": "^1.1.2", - "@radix-ui/react-dialog": "^1.1.1", + "@radix-ui/react-checkbox": "^1.1.3", + "@radix-ui/react-dialog": "^1.1.4", "@radix-ui/react-dropdown-menu": "^2.1.1", "@radix-ui/react-icons": "^1.3.0", + "@radix-ui/react-label": "^2.1.1", "@radix-ui/react-menubar": "^1.1.2", "@radix-ui/react-navigation-menu": "^1.2.0", "@radix-ui/react-popover": "^1.1.1", @@ -3302,16 +3303,16 @@ } }, "node_modules/@radix-ui/react-checkbox": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-checkbox/-/react-checkbox-1.1.2.tgz", - "integrity": "sha512-/i0fl686zaJbDQLNKrkCbMyDm6FQMt4jg323k7HuqitoANm9sE23Ql8yOK3Wusk34HSLKDChhMux05FnP6KUkw==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-checkbox/-/react-checkbox-1.1.3.tgz", + "integrity": "sha512-HD7/ocp8f1B3e6OHygH0n7ZKjONkhciy1Nh0yuBgObqThc3oyx+vuMfFHKAknXRHHWVE9XvXStxJFyjUmB8PIw==", "license": "MIT", "dependencies": { - "@radix-ui/primitive": "1.1.0", - "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/primitive": "1.1.1", + "@radix-ui/react-compose-refs": "1.1.1", "@radix-ui/react-context": "1.1.1", - "@radix-ui/react-presence": "1.1.1", - "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-presence": "1.1.2", + "@radix-ui/react-primitive": "2.0.1", "@radix-ui/react-use-controllable-state": "1.1.0", "@radix-ui/react-use-previous": "1.1.0", "@radix-ui/react-use-size": "1.1.0" @@ -3331,6 +3332,27 @@ } } }, + "node_modules/@radix-ui/react-checkbox/node_modules/@radix-ui/primitive": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.1.tgz", + "integrity": "sha512-SJ31y+Q/zAyShtXJc8x83i9TYdbAfHZ++tUZnvjJJqFjzsdUnKsxPL6IEtBlxKkU7yzer//GQtZSV4GbldL3YA==", + "license": "MIT" + }, + "node_modules/@radix-ui/react-checkbox/node_modules/@radix-ui/react-compose-refs": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.1.tgz", + "integrity": "sha512-Y9VzoRDSJtgFMUCoiZBDVo084VQ5hfpXxVE+NgkdNsjiDBByiImMZKKhxMwCbdHvhlENG6a833CbFkOQvTricw==", + "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-checkbox/node_modules/@radix-ui/react-context": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.1.tgz", @@ -3347,12 +3369,12 @@ } }, "node_modules/@radix-ui/react-checkbox/node_modules/@radix-ui/react-presence": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.1.tgz", - "integrity": "sha512-IeFXVi4YS1K0wVZzXNrbaaUvIJ3qdY+/Ih4eHFhWA9SwGR9UDX7Ck8abvL57C4cv3wwMvUE0OG69Qc3NCcTe/A==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.2.tgz", + "integrity": "sha512-18TFr80t5EVgL9x1SwF/YGtfG+l0BS0PRAlCWBDoBEiDQjeKgnNZRVJp/oVBl24sr3Gbfwc/Qpj4OcWTQMsAEg==", "license": "MIT", "dependencies": { - "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.1", "@radix-ui/react-use-layout-effect": "1.1.0" }, "peerDependencies": { @@ -3370,6 +3392,29 @@ } } }, + "node_modules/@radix-ui/react-checkbox/node_modules/@radix-ui/react-primitive": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.0.1.tgz", + "integrity": "sha512-sHCWTtxwNn3L3fH8qAfnF3WbUZycW93SM1j3NFDzXBiz8D6F5UTTy8G1+WFEaiCdvCVRJWj6N2R4Xq6HdiHmDg==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-slot": "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-collapsible": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@radix-ui/react-collapsible/-/react-collapsible-1.1.2.tgz", @@ -3558,25 +3603,25 @@ } }, "node_modules/@radix-ui/react-dialog": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.1.1.tgz", - "integrity": "sha512-zysS+iU4YP3STKNS6USvFVqI4qqx8EpiwmT5TuCApVEBca+eRCbONi4EgzfNSuVnOXvC5UPHHMjs8RXO6DH9Bg==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.1.4.tgz", + "integrity": "sha512-Ur7EV1IwQGCyaAuyDRiOLA5JIUZxELJljF+MbM/2NC0BYwfuRrbpS30BiQBJrVruscgUkieKkqXYDOoByaxIoA==", "license": "MIT", "dependencies": { - "@radix-ui/primitive": "1.1.0", - "@radix-ui/react-compose-refs": "1.1.0", - "@radix-ui/react-context": "1.1.0", - "@radix-ui/react-dismissable-layer": "1.1.0", - "@radix-ui/react-focus-guards": "1.1.0", - "@radix-ui/react-focus-scope": "1.1.0", + "@radix-ui/primitive": "1.1.1", + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-dismissable-layer": "1.1.3", + "@radix-ui/react-focus-guards": "1.1.1", + "@radix-ui/react-focus-scope": "1.1.1", "@radix-ui/react-id": "1.1.0", - "@radix-ui/react-portal": "1.1.1", - "@radix-ui/react-presence": "1.1.0", - "@radix-ui/react-primitive": "2.0.0", - "@radix-ui/react-slot": "1.1.0", + "@radix-ui/react-portal": "1.1.3", + "@radix-ui/react-presence": "1.1.2", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-slot": "1.1.1", "@radix-ui/react-use-controllable-state": "1.1.0", "aria-hidden": "^1.1.1", - "react-remove-scroll": "2.5.7" + "react-remove-scroll": "^2.6.1" }, "peerDependencies": { "@types/react": "*", @@ -3593,14 +3638,74 @@ } } }, - "node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-slot": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.1.0.tgz", - "integrity": "sha512-FUCf5XMfmW4dtYl69pdS4DbxKy8nj4M7SafBgPllysxmdachynNflAdp/gCsnYWNDnge6tI9onzMp5ARYc1KNw==", + "node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/primitive": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.1.tgz", + "integrity": "sha512-SJ31y+Q/zAyShtXJc8x83i9TYdbAfHZ++tUZnvjJJqFjzsdUnKsxPL6IEtBlxKkU7yzer//GQtZSV4GbldL3YA==", + "license": "MIT" + }, + "node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-compose-refs": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.1.tgz", + "integrity": "sha512-Y9VzoRDSJtgFMUCoiZBDVo084VQ5hfpXxVE+NgkdNsjiDBByiImMZKKhxMwCbdHvhlENG6a833CbFkOQvTricw==", + "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-dialog/node_modules/@radix-ui/react-context": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.1.tgz", + "integrity": "sha512-UASk9zi+crv9WteK/NU4PLvOoL3OuE6BWVKNF6hPRBtYBDXQ2u5iu3O59zUlJiTVvkyuycnqrztsHVJwcK9K+Q==", + "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-dialog/node_modules/@radix-ui/react-dismissable-layer": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.3.tgz", + "integrity": "sha512-onrWn/72lQoEucDmJnr8uczSNTujT0vJnA/X5+3AkChVPowr8n1yvIKIabhWyMQeMvvmdpsvcyDqx3X1LEXCPg==", "license": "MIT", "dependencies": { - "@radix-ui/react-compose-refs": "1.1.0" + "@radix-ui/primitive": "1.1.1", + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-escape-keydown": "1.1.0" }, + "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-dialog/node_modules/@radix-ui/react-focus-guards": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.1.tgz", + "integrity": "sha512-pSIwfrT1a6sIoDASCSpFwOasEwKTZWDw/iBdtnqKO7v6FeOzYJ7U53cPzYFVR3geGGXgVHaH+CdngrrAzqUGxg==", + "license": "MIT", "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" @@ -3611,6 +3716,127 @@ } } }, + "node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-focus-scope": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.1.tgz", + "integrity": "sha512-01omzJAYRxXdG2/he/+xy+c8a8gCydoQ1yOxnWNcRhrrBW5W+RQJ22EK1SaO8tb3WoUsuEw7mJjBozPzihDFjA==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-use-callback-ref": "1.1.0" + }, + "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-dialog/node_modules/@radix-ui/react-portal": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.3.tgz", + "integrity": "sha512-NciRqhXnGojhT93RPyDaMPfLH3ZSl4jjIFbZQ1b/vxvZEdHsBZ49wP9w8L3HzUQwep01LcWtkUvm0OVB5JAHTw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-use-layout-effect": "1.1.0" + }, + "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-dialog/node_modules/@radix-ui/react-presence": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.2.tgz", + "integrity": "sha512-18TFr80t5EVgL9x1SwF/YGtfG+l0BS0PRAlCWBDoBEiDQjeKgnNZRVJp/oVBl24sr3Gbfwc/Qpj4OcWTQMsAEg==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-use-layout-effect": "1.1.0" + }, + "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-dialog/node_modules/@radix-ui/react-primitive": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.0.1.tgz", + "integrity": "sha512-sHCWTtxwNn3L3fH8qAfnF3WbUZycW93SM1j3NFDzXBiz8D6F5UTTy8G1+WFEaiCdvCVRJWj6N2R4Xq6HdiHmDg==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-slot": "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-dialog/node_modules/react-remove-scroll": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.6.2.tgz", + "integrity": "sha512-KmONPx5fnlXYJQqC62Q+lwIeAk64ws/cUw6omIumRzMRPqgnYqhSSti99nbj0Ry13bv7dF+BKn7NB+OqkdZGTw==", + "license": "MIT", + "dependencies": { + "react-remove-scroll-bar": "^2.3.7", + "react-style-singleton": "^2.2.1", + "tslib": "^2.1.0", + "use-callback-ref": "^1.3.3", + "use-sidecar": "^1.1.2" + }, + "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/@radix-ui/react-direction": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.1.0.tgz", @@ -3749,6 +3975,52 @@ } } }, + "node_modules/@radix-ui/react-label": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-label/-/react-label-2.1.1.tgz", + "integrity": "sha512-UUw5E4e/2+4kFMH7+YxORXGWggtY6sM8WIwh5RZchhLuUg2H1hc98Py+pr8HMz6rdaYrK2t296ZEjYLOCO5uUw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.0.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-label/node_modules/@radix-ui/react-primitive": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.0.1.tgz", + "integrity": "sha512-sHCWTtxwNn3L3fH8qAfnF3WbUZycW93SM1j3NFDzXBiz8D6F5UTTy8G1+WFEaiCdvCVRJWj6N2R4Xq6HdiHmDg==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-slot": "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-menu": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/@radix-ui/react-menu/-/react-menu-2.1.1.tgz", @@ -9080,15 +9352,6 @@ "node": ">=12" } }, - "node_modules/invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.0.0" - } - }, "node_modules/is-arguments": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", @@ -11194,20 +11457,20 @@ } }, "node_modules/react-remove-scroll-bar": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.6.tgz", - "integrity": "sha512-DtSYaao4mBmX+HDo5YWYdBWQwYIQQshUV/dVxFxK+KM26Wjwp1gZ6rv6OC3oujI6Bfu6Xyg3TwK533AQutsn/g==", + "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.1", + "react-style-singleton": "^2.2.2", "tslib": "^2.0.0" }, "engines": { "node": ">=10" }, "peerDependencies": { - "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" }, "peerDependenciesMeta": { "@types/react": { @@ -11216,21 +11479,20 @@ } }, "node_modules/react-style-singleton": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.1.tgz", - "integrity": "sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==", + "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", - "invariant": "^2.2.4", "tslib": "^2.0.0" }, "engines": { "node": ">=10" }, "peerDependencies": { - "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -12718,9 +12980,9 @@ } }, "node_modules/use-callback-ref": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.2.tgz", - "integrity": "sha512-elOQwe6Q8gqZgDA8mrh44qRTQqpIHDcZ3hXTLjBe1i4ph8XpNJnO+aQf3NaG+lriLopI4HMx9VjQLfPQ6vhnoA==", + "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" @@ -12729,8 +12991,8 @@ "node": ">=10" }, "peerDependencies": { - "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { diff --git a/package.json b/package.json index 42b0cd9..9f410f7 100644 --- a/package.json +++ b/package.json @@ -11,10 +11,11 @@ "dependencies": { "@firebase/analytics": "^0.10.8", "@radix-ui/react-accordion": "^1.2.2", - "@radix-ui/react-checkbox": "^1.1.2", - "@radix-ui/react-dialog": "^1.1.1", + "@radix-ui/react-checkbox": "^1.1.3", + "@radix-ui/react-dialog": "^1.1.4", "@radix-ui/react-dropdown-menu": "^2.1.1", "@radix-ui/react-icons": "^1.3.0", + "@radix-ui/react-label": "^2.1.1", "@radix-ui/react-menubar": "^1.1.2", "@radix-ui/react-navigation-menu": "^1.2.0", "@radix-ui/react-popover": "^1.1.1", diff --git a/public/sw.js b/public/sw.js index b4acdea..b4183bb 100644 --- a/public/sw.js +++ b/public/sw.js @@ -1 +1 @@ -if(!self.define){let e,s={};const i=(i,c)=>(i=new URL(i+".js",c).href,s[i]||new Promise((s=>{if("document"in self){const e=document.createElement("script");e.src=i,e.onload=s,document.head.appendChild(e)}else e=i,importScripts(i),s()})).then((()=>{let e=s[i];if(!e)throw new Error(`Module ${i} didn’t register its module`);return e})));self.define=(c,n)=>{const a=e||("document"in self?document.currentScript.src:"")||location.href;if(s[a])return;let t={};const r=e=>i(e,a),d={module:{uri:a},exports:t,require:r};s[a]=Promise.all(c.map((e=>d[e]||r(e)))).then((e=>(n(...e),t)))}}define(["./workbox-4754cb34"],(function(e){"use strict";importScripts(),self.skipWaiting(),e.clientsClaim(),e.precacheAndRoute([{url:"/Footer.png",revision:"51ae9ab18c5992f16173aca5b78ec095"},{url:"/Resume Building Process.pdf",revision:"8fc017b33fa8ac521988d29dca0582c5"},{url:"/UniDash_Thumbnail.png",revision:"3584c20253207cacfe6e306f8d589077"},{url:"/_next/app-build-manifest.json",revision:"32d979bd3098475ae06f99ddffaa8245"},{url:"/_next/static/XqWpiGO1oIBL6C0n4ircx/_buildManifest.js",revision:"6310079bf1ae7bebeb6a2135896e4564"},{url:"/_next/static/XqWpiGO1oIBL6C0n4ircx/_ssgManifest.js",revision:"b6652df95db52feb4daf4eca35380933"},{url:"/_next/static/chunks/0e5ce63c-e86eed8d518e0645.js",revision:"XqWpiGO1oIBL6C0n4ircx"},{url:"/_next/static/chunks/1085-2219455cccaa1ce1.js",revision:"XqWpiGO1oIBL6C0n4ircx"},{url:"/_next/static/chunks/1243.ea2826fb35adb15a.js",revision:"ea2826fb35adb15a"},{url:"/_next/static/chunks/133.392ae90c3b2a67f2.js",revision:"392ae90c3b2a67f2"},{url:"/_next/static/chunks/1592.b069bdb7aaddd2eb.js",revision:"b069bdb7aaddd2eb"},{url:"/_next/static/chunks/2069.f060659791c0c484.js",revision:"f060659791c0c484"},{url:"/_next/static/chunks/2117-f25c7eea0fa4ebdb.js",revision:"XqWpiGO1oIBL6C0n4ircx"},{url:"/_next/static/chunks/2170.45431769330fa5b7.js",revision:"45431769330fa5b7"},{url:"/_next/static/chunks/2395-8d594edc1adbc89f.js",revision:"XqWpiGO1oIBL6C0n4ircx"},{url:"/_next/static/chunks/251-c57f76c27af85d59.js",revision:"XqWpiGO1oIBL6C0n4ircx"},{url:"/_next/static/chunks/29-4d151bd0b29deab5.js",revision:"XqWpiGO1oIBL6C0n4ircx"},{url:"/_next/static/chunks/2972-2f47f0e661ce5582.js",revision:"XqWpiGO1oIBL6C0n4ircx"},{url:"/_next/static/chunks/3132-f7b6b5449b7c287f.js",revision:"XqWpiGO1oIBL6C0n4ircx"},{url:"/_next/static/chunks/3237.c4754f02f1a388cb.js",revision:"c4754f02f1a388cb"},{url:"/_next/static/chunks/3305.1fc7297ba154ee95.js",revision:"1fc7297ba154ee95"},{url:"/_next/static/chunks/3332.6313db5217bb1b67.js",revision:"6313db5217bb1b67"},{url:"/_next/static/chunks/3451.421db0b49fdbd881.js",revision:"421db0b49fdbd881"},{url:"/_next/static/chunks/3460.39c2b9b6a3898384.js",revision:"39c2b9b6a3898384"},{url:"/_next/static/chunks/4299.2aaa569416cfc208.js",revision:"2aaa569416cfc208"},{url:"/_next/static/chunks/4327.613a173b6b49df19.js",revision:"613a173b6b49df19"},{url:"/_next/static/chunks/4415.e0c0da5eedae4dd7.js",revision:"e0c0da5eedae4dd7"},{url:"/_next/static/chunks/4526-2290f879cb19eb6a.js",revision:"XqWpiGO1oIBL6C0n4ircx"},{url:"/_next/static/chunks/4650.41f041da0ad365ad.js",revision:"41f041da0ad365ad"},{url:"/_next/static/chunks/4872.5422e8324272ab40.js",revision:"5422e8324272ab40"},{url:"/_next/static/chunks/5061.79a660faed0e16a9.js",revision:"79a660faed0e16a9"},{url:"/_next/static/chunks/5279.85d537880b8041ae.js",revision:"85d537880b8041ae"},{url:"/_next/static/chunks/5402.b9460f1b16b57e92.js",revision:"b9460f1b16b57e92"},{url:"/_next/static/chunks/5555.f7cf9795d675de51.js",revision:"f7cf9795d675de51"},{url:"/_next/static/chunks/58.f4bd8a3c9d88f5fe.js",revision:"f4bd8a3c9d88f5fe"},{url:"/_next/static/chunks/5878-d90f6f6b4234ccd5.js",revision:"XqWpiGO1oIBL6C0n4ircx"},{url:"/_next/static/chunks/5978.ddc72cd73130aadc.js",revision:"ddc72cd73130aadc"},{url:"/_next/static/chunks/6109-89c0c3f49b3550b9.js",revision:"XqWpiGO1oIBL6C0n4ircx"},{url:"/_next/static/chunks/6137-2d733888d12dfba0.js",revision:"XqWpiGO1oIBL6C0n4ircx"},{url:"/_next/static/chunks/6393-71941a37da6c2ffa.js",revision:"XqWpiGO1oIBL6C0n4ircx"},{url:"/_next/static/chunks/6434.e6cd986d690f2cef.js",revision:"e6cd986d690f2cef"},{url:"/_next/static/chunks/7140.4be689873f6a2d1f.js",revision:"4be689873f6a2d1f"},{url:"/_next/static/chunks/7293.fb88bb102af4aa04.js",revision:"fb88bb102af4aa04"},{url:"/_next/static/chunks/7836.86884157d53d23a1.js",revision:"86884157d53d23a1"},{url:"/_next/static/chunks/7890.f681eb1d1f83bea2.js",revision:"f681eb1d1f83bea2"},{url:"/_next/static/chunks/7953.f6fc335a23efb959.js",revision:"f6fc335a23efb959"},{url:"/_next/static/chunks/8254.3145a4fbdcfdca46.js",revision:"3145a4fbdcfdca46"},{url:"/_next/static/chunks/8400.c95e4e79bcd79a56.js",revision:"c95e4e79bcd79a56"},{url:"/_next/static/chunks/8673.be44c4d9e4f1d084.js",revision:"be44c4d9e4f1d084"},{url:"/_next/static/chunks/8698.a088118fef40d302.js",revision:"a088118fef40d302"},{url:"/_next/static/chunks/8811-210818ca2c4fadb6.js",revision:"XqWpiGO1oIBL6C0n4ircx"},{url:"/_next/static/chunks/9022.33974a513a281fd2.js",revision:"33974a513a281fd2"},{url:"/_next/static/chunks/90542734.fecd4dc1a89ed166.js",revision:"fecd4dc1a89ed166"},{url:"/_next/static/chunks/9433.b1b5f5d050c43e3c.js",revision:"b1b5f5d050c43e3c"},{url:"/_next/static/chunks/9822.34f293973c4e9b04.js",revision:"34f293973c4e9b04"},{url:"/_next/static/chunks/app/_not-found/page-2f67fa8f30e31f55.js",revision:"XqWpiGO1oIBL6C0n4ircx"},{url:"/_next/static/chunks/app/about/page-91d39ba0c06a5eb6.js",revision:"XqWpiGO1oIBL6C0n4ircx"},{url:"/_next/static/chunks/app/attendance-tracker/page-ffc098e385644545.js",revision:"XqWpiGO1oIBL6C0n4ircx"},{url:"/_next/static/chunks/app/author/page-e15b4c666e29dcad.js",revision:"XqWpiGO1oIBL6C0n4ircx"},{url:"/_next/static/chunks/app/career/page-e35dd8fc5be4c5d7.js",revision:"XqWpiGO1oIBL6C0n4ircx"},{url:"/_next/static/chunks/app/contribute/page-44f4ecd04216e215.js",revision:"XqWpiGO1oIBL6C0n4ircx"},{url:"/_next/static/chunks/app/course-handouts/page-48d61b47cf1e8d15.js",revision:"XqWpiGO1oIBL6C0n4ircx"},{url:"/_next/static/chunks/app/courses/page-813339999df94160.js",revision:"XqWpiGO1oIBL6C0n4ircx"},{url:"/_next/static/chunks/app/dashboard/page-b3be99676682ed2d.js",revision:"XqWpiGO1oIBL6C0n4ircx"},{url:"/_next/static/chunks/app/error-universal/page-dbc7e011772ac081.js",revision:"XqWpiGO1oIBL6C0n4ircx"},{url:"/_next/static/chunks/app/layout-c5e0cd08025d240c.js",revision:"XqWpiGO1oIBL6C0n4ircx"},{url:"/_next/static/chunks/app/page-71e7919e96eff695.js",revision:"XqWpiGO1oIBL6C0n4ircx"},{url:"/_next/static/chunks/app/paper-analysis/page-8869f3c9683ca6ce.js",revision:"XqWpiGO1oIBL6C0n4ircx"},{url:"/_next/static/chunks/app/resume-generator/page-befdaea5f71df509.js",revision:"XqWpiGO1oIBL6C0n4ircx"},{url:"/_next/static/chunks/d3ac728e.e517fee0d175ef7e.js",revision:"e517fee0d175ef7e"},{url:"/_next/static/chunks/ebbfb5c1-a73c51b6a41a5ff6.js",revision:"XqWpiGO1oIBL6C0n4ircx"},{url:"/_next/static/chunks/fd9d1056-a892f3aa6b24ffd2.js",revision:"XqWpiGO1oIBL6C0n4ircx"},{url:"/_next/static/chunks/framework-8e0e0f4a6b83a956.js",revision:"XqWpiGO1oIBL6C0n4ircx"},{url:"/_next/static/chunks/main-1d5024616374fc80.js",revision:"XqWpiGO1oIBL6C0n4ircx"},{url:"/_next/static/chunks/main-app-2f676c91cd6ca997.js",revision:"XqWpiGO1oIBL6C0n4ircx"},{url:"/_next/static/chunks/pages/_app-3c9ca398d360b709.js",revision:"XqWpiGO1oIBL6C0n4ircx"},{url:"/_next/static/chunks/pages/_error-cf5ca766ac8f493f.js",revision:"XqWpiGO1oIBL6C0n4ircx"},{url:"/_next/static/chunks/polyfills-42372ed130431b0a.js",revision:"846118c33b2c0e922d7b3a7676f81f6f"},{url:"/_next/static/chunks/webpack-d6a539551d520e5d.js",revision:"XqWpiGO1oIBL6C0n4ircx"},{url:"/_next/static/css/2f40998f3f39ac86.css",revision:"2f40998f3f39ac86"},{url:"/_next/static/css/48340cfe5c3cfec7.css",revision:"48340cfe5c3cfec7"},{url:"/_next/static/media/26a46d62cd723877-s.woff2",revision:"befd9c0fdfa3d8a645d5f95717ed6420"},{url:"/_next/static/media/55c55f0601d81cf3-s.woff2",revision:"43828e14271c77b87e3ed582dbff9f74"},{url:"/_next/static/media/581909926a08bbc8-s.woff2",revision:"f0b86e7c24f455280b8df606b89af891"},{url:"/_next/static/media/6d93bde91c0c2823-s.woff2",revision:"621a07228c8ccbfd647918f1021b4868"},{url:"/_next/static/media/97e0cb1ae144a2a9-s.woff2",revision:"e360c61c5bd8d90639fd4503c829c2dc"},{url:"/_next/static/media/a34f9d1faa5f3315-s.p.woff2",revision:"d4fe31e6a2aebc06b8d6e558c9141119"},{url:"/_next/static/media/df0a9ae256c0569c-s.woff2",revision:"d54db44de5ccb18886ece2fda72bdfe0"},{url:"/bits.png",revision:"9a62280db9a66a6ef482b705e0faa6e8"},{url:"/career-illustrations.png",revision:"fb2fd5e62e0c7fb2f0141b1fffcb4be4"},{url:"/career.png",revision:"c81c0fb1d0591cab28158b82f30e7121"},{url:"/cdc_illustration.svg",revision:"7278ba587f8a56bd155b2cbfa7193380"},{url:"/companies.csv",revision:"92df1493b89de3b5515cf2f8f845aa9c"},{url:"/contributors/husam.jpg",revision:"dc11e32cc20142c660e26a2320d19a0f"},{url:"/dashboard-preview.png",revision:"e4aa8c849d2f79381b82c13e628e013d"},{url:"/handouts/Applied Statistical Methods.docx",revision:"6bdf995c94c7a62ed73e2bd26fd5f79e"},{url:"/handouts/Compiler Construction.pdf",revision:"f6430990308eca1a42cc7fee76d78506"},{url:"/handouts/Computer Networks.pdf",revision:"0b6e862f5eeb2d9c8b097a345a392edd"},{url:"/handouts/Data Mining.pdf",revision:"bbb963a02ffd8be7d78962adf0803f56"},{url:"/handouts/Design and Analysis of Algorithms.doc",revision:"3664d31b50f182437af9f6378f634d0d"},{url:"/handouts/Environmental Studies.pdf",revision:"199c7d381b6e522c77c7724453b74cb2"},{url:"/handouts/International Law.docx",revision:"6c5757dfc126c63ac14a6c113ef976b7"},{url:"/handouts/Introduction to ARABIC.pdf",revision:"419af3e488d9635bd9ad1defb6ff0a80"},{url:"/handouts/Introduction to Psychology.docx",revision:"8fc42a3e598c15ad5e9a4f72ad76295f"},{url:"/handouts/Machine Learning.pdf",revision:"84251dd170300f0367e70e8aacbb1dd5"},{url:"/handouts/Modern Political Concepts.doc",revision:"78020c86a3b00d0739676a689a08486b"},{url:"/handouts/Optimization.pdf",revision:"4a880c26c3f3ef92ed524772702b7380"},{url:"/handouts/Principles of Economics.pdf",revision:"c4619967b8d0a0396fe36857365e5906"},{url:"/handouts/Principles of Management.pdf",revision:"75675ea8b3770d01f12dc057b496c2ef"},{url:"/handouts/Principles of Programming Languages.pdf",revision:"f5ff728184d555bb71a6b9ba7fbe2162"},{url:"/handouts/TOC.pdf",revision:"2cc668dc2f9c318dea8807dfde09b5f8"},{url:"/hero-illustration.png",revision:"440d5a2c5bd34fce07df0e22548d70c9"},{url:"/manifest.json",revision:"2f55b00e2acac46b9e64e1f9ebdc68af"},{url:"/register-sw.js",revision:"8a43f0bba3455ad85686c19b496bf7e7"},{url:"/resume-mockup.jpg",revision:"3f33c20a3915bb960f76fa5d889e8cf9"}],{ignoreURLParametersMatching:[]}),e.cleanupOutdatedCaches(),e.registerRoute("/",new e.NetworkFirst({cacheName:"start-url",plugins:[{cacheWillUpdate:async({request:e,response:s,event:i,state:c})=>s&&"opaqueredirect"===s.type?new Response(s.body,{status:200,statusText:"OK",headers:s.headers}):s}]}),"GET"),e.registerRoute(/^https:\/\/fonts\.(?:gstatic)\.com\/.*/i,new e.CacheFirst({cacheName:"google-fonts-webfonts",plugins:[new e.ExpirationPlugin({maxEntries:4,maxAgeSeconds:31536e3})]}),"GET"),e.registerRoute(/^https:\/\/fonts\.(?:googleapis)\.com\/.*/i,new e.StaleWhileRevalidate({cacheName:"google-fonts-stylesheets",plugins:[new e.ExpirationPlugin({maxEntries:4,maxAgeSeconds:604800})]}),"GET"),e.registerRoute(/\.(?:eot|otf|ttc|ttf|woff|woff2|font.css)$/i,new e.StaleWhileRevalidate({cacheName:"static-font-assets",plugins:[new e.ExpirationPlugin({maxEntries:4,maxAgeSeconds:604800})]}),"GET"),e.registerRoute(/\.(?:jpg|jpeg|gif|png|svg|ico|webp)$/i,new e.StaleWhileRevalidate({cacheName:"static-image-assets",plugins:[new e.ExpirationPlugin({maxEntries:64,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\/_next\/image\?url=.+$/i,new e.StaleWhileRevalidate({cacheName:"next-image",plugins:[new e.ExpirationPlugin({maxEntries:64,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\.(?:mp3|wav|ogg)$/i,new e.CacheFirst({cacheName:"static-audio-assets",plugins:[new e.RangeRequestsPlugin,new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\.(?:mp4)$/i,new e.CacheFirst({cacheName:"static-video-assets",plugins:[new e.RangeRequestsPlugin,new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\.(?:js)$/i,new e.StaleWhileRevalidate({cacheName:"static-js-assets",plugins:[new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\.(?:css|less)$/i,new e.StaleWhileRevalidate({cacheName:"static-style-assets",plugins:[new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\/_next\/data\/.+\/.+\.json$/i,new e.StaleWhileRevalidate({cacheName:"next-data",plugins:[new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\.(?:json|xml|csv)$/i,new e.NetworkFirst({cacheName:"static-data-assets",plugins:[new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute((({url:e})=>{if(!(self.origin===e.origin))return!1;const s=e.pathname;return!s.startsWith("/api/auth/")&&!!s.startsWith("/api/")}),new e.NetworkFirst({cacheName:"apis",networkTimeoutSeconds:10,plugins:[new e.ExpirationPlugin({maxEntries:16,maxAgeSeconds:86400})]}),"GET"),e.registerRoute((({url:e})=>{if(!(self.origin===e.origin))return!1;return!e.pathname.startsWith("/api/")}),new e.NetworkFirst({cacheName:"others",networkTimeoutSeconds:10,plugins:[new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute((({url:e})=>!(self.origin===e.origin)),new e.NetworkFirst({cacheName:"cross-origin",networkTimeoutSeconds:10,plugins:[new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:3600})]}),"GET")})); +if(!self.define){let e,s={};const a=(a,c)=>(a=new URL(a+".js",c).href,s[a]||new Promise((s=>{if("document"in self){const e=document.createElement("script");e.src=a,e.onload=s,document.head.appendChild(e)}else e=a,importScripts(a),s()})).then((()=>{let e=s[a];if(!e)throw new Error(`Module ${a} didn’t register its module`);return e})));self.define=(c,n)=>{const t=e||("document"in self?document.currentScript.src:"")||location.href;if(s[t])return;let i={};const r=e=>a(e,t),d={module:{uri:t},exports:i,require:r};s[t]=Promise.all(c.map((e=>d[e]||r(e)))).then((e=>(n(...e),i)))}}define(["./workbox-4754cb34"],(function(e){"use strict";importScripts(),self.skipWaiting(),e.clientsClaim(),e.precacheAndRoute([{url:"/Footer.png",revision:"51ae9ab18c5992f16173aca5b78ec095"},{url:"/Resume Building Process.pdf",revision:"8fc017b33fa8ac521988d29dca0582c5"},{url:"/UniDash_Thumbnail.png",revision:"3584c20253207cacfe6e306f8d589077"},{url:"/_next/app-build-manifest.json",revision:"cbb6e3e2470e8674dca15ab0dc9043d6"},{url:"/_next/static/-sBSwzqQJReplTUIIk4tC/_buildManifest.js",revision:"6310079bf1ae7bebeb6a2135896e4564"},{url:"/_next/static/-sBSwzqQJReplTUIIk4tC/_ssgManifest.js",revision:"b6652df95db52feb4daf4eca35380933"},{url:"/_next/static/chunks/0e5ce63c-e86eed8d518e0645.js",revision:"-sBSwzqQJReplTUIIk4tC"},{url:"/_next/static/chunks/1085-2219455cccaa1ce1.js",revision:"-sBSwzqQJReplTUIIk4tC"},{url:"/_next/static/chunks/1243.ea2826fb35adb15a.js",revision:"ea2826fb35adb15a"},{url:"/_next/static/chunks/133.392ae90c3b2a67f2.js",revision:"392ae90c3b2a67f2"},{url:"/_next/static/chunks/1592.b069bdb7aaddd2eb.js",revision:"b069bdb7aaddd2eb"},{url:"/_next/static/chunks/2069.f060659791c0c484.js",revision:"f060659791c0c484"},{url:"/_next/static/chunks/2117-f25c7eea0fa4ebdb.js",revision:"-sBSwzqQJReplTUIIk4tC"},{url:"/_next/static/chunks/2170.45431769330fa5b7.js",revision:"45431769330fa5b7"},{url:"/_next/static/chunks/2395-8d594edc1adbc89f.js",revision:"-sBSwzqQJReplTUIIk4tC"},{url:"/_next/static/chunks/251-c57f76c27af85d59.js",revision:"-sBSwzqQJReplTUIIk4tC"},{url:"/_next/static/chunks/29-4d151bd0b29deab5.js",revision:"-sBSwzqQJReplTUIIk4tC"},{url:"/_next/static/chunks/2972-2f47f0e661ce5582.js",revision:"-sBSwzqQJReplTUIIk4tC"},{url:"/_next/static/chunks/3132-f7b6b5449b7c287f.js",revision:"-sBSwzqQJReplTUIIk4tC"},{url:"/_next/static/chunks/3237.c4754f02f1a388cb.js",revision:"c4754f02f1a388cb"},{url:"/_next/static/chunks/3305.1fc7297ba154ee95.js",revision:"1fc7297ba154ee95"},{url:"/_next/static/chunks/3332.6313db5217bb1b67.js",revision:"6313db5217bb1b67"},{url:"/_next/static/chunks/3451.421db0b49fdbd881.js",revision:"421db0b49fdbd881"},{url:"/_next/static/chunks/3460.39c2b9b6a3898384.js",revision:"39c2b9b6a3898384"},{url:"/_next/static/chunks/4299.2aaa569416cfc208.js",revision:"2aaa569416cfc208"},{url:"/_next/static/chunks/4327.613a173b6b49df19.js",revision:"613a173b6b49df19"},{url:"/_next/static/chunks/4415.e0c0da5eedae4dd7.js",revision:"e0c0da5eedae4dd7"},{url:"/_next/static/chunks/4526-2290f879cb19eb6a.js",revision:"-sBSwzqQJReplTUIIk4tC"},{url:"/_next/static/chunks/4650.41f041da0ad365ad.js",revision:"41f041da0ad365ad"},{url:"/_next/static/chunks/4872.5422e8324272ab40.js",revision:"5422e8324272ab40"},{url:"/_next/static/chunks/5061.79a660faed0e16a9.js",revision:"79a660faed0e16a9"},{url:"/_next/static/chunks/5279.85d537880b8041ae.js",revision:"85d537880b8041ae"},{url:"/_next/static/chunks/5402.b9460f1b16b57e92.js",revision:"b9460f1b16b57e92"},{url:"/_next/static/chunks/5555.f7cf9795d675de51.js",revision:"f7cf9795d675de51"},{url:"/_next/static/chunks/58.f4bd8a3c9d88f5fe.js",revision:"f4bd8a3c9d88f5fe"},{url:"/_next/static/chunks/5878-d90f6f6b4234ccd5.js",revision:"-sBSwzqQJReplTUIIk4tC"},{url:"/_next/static/chunks/5978.ddc72cd73130aadc.js",revision:"ddc72cd73130aadc"},{url:"/_next/static/chunks/6109-89c0c3f49b3550b9.js",revision:"-sBSwzqQJReplTUIIk4tC"},{url:"/_next/static/chunks/6137-2d733888d12dfba0.js",revision:"-sBSwzqQJReplTUIIk4tC"},{url:"/_next/static/chunks/6393-71941a37da6c2ffa.js",revision:"-sBSwzqQJReplTUIIk4tC"},{url:"/_next/static/chunks/6434.e6cd986d690f2cef.js",revision:"e6cd986d690f2cef"},{url:"/_next/static/chunks/7140.4be689873f6a2d1f.js",revision:"4be689873f6a2d1f"},{url:"/_next/static/chunks/7293.fb88bb102af4aa04.js",revision:"fb88bb102af4aa04"},{url:"/_next/static/chunks/7836.86884157d53d23a1.js",revision:"86884157d53d23a1"},{url:"/_next/static/chunks/7890.f681eb1d1f83bea2.js",revision:"f681eb1d1f83bea2"},{url:"/_next/static/chunks/7953.f6fc335a23efb959.js",revision:"f6fc335a23efb959"},{url:"/_next/static/chunks/8254.3145a4fbdcfdca46.js",revision:"3145a4fbdcfdca46"},{url:"/_next/static/chunks/8400.c95e4e79bcd79a56.js",revision:"c95e4e79bcd79a56"},{url:"/_next/static/chunks/8673.be44c4d9e4f1d084.js",revision:"be44c4d9e4f1d084"},{url:"/_next/static/chunks/8698.a088118fef40d302.js",revision:"a088118fef40d302"},{url:"/_next/static/chunks/8811-210818ca2c4fadb6.js",revision:"-sBSwzqQJReplTUIIk4tC"},{url:"/_next/static/chunks/9022.33974a513a281fd2.js",revision:"33974a513a281fd2"},{url:"/_next/static/chunks/90542734.fecd4dc1a89ed166.js",revision:"fecd4dc1a89ed166"},{url:"/_next/static/chunks/9433.b1b5f5d050c43e3c.js",revision:"b1b5f5d050c43e3c"},{url:"/_next/static/chunks/9822.34f293973c4e9b04.js",revision:"34f293973c4e9b04"},{url:"/_next/static/chunks/app/_not-found/page-2f67fa8f30e31f55.js",revision:"-sBSwzqQJReplTUIIk4tC"},{url:"/_next/static/chunks/app/about/page-91d39ba0c06a5eb6.js",revision:"-sBSwzqQJReplTUIIk4tC"},{url:"/_next/static/chunks/app/attendance-tracker/page-ffc098e385644545.js",revision:"-sBSwzqQJReplTUIIk4tC"},{url:"/_next/static/chunks/app/author/page-e15b4c666e29dcad.js",revision:"-sBSwzqQJReplTUIIk4tC"},{url:"/_next/static/chunks/app/career/page-e35dd8fc5be4c5d7.js",revision:"-sBSwzqQJReplTUIIk4tC"},{url:"/_next/static/chunks/app/contribute/page-44f4ecd04216e215.js",revision:"-sBSwzqQJReplTUIIk4tC"},{url:"/_next/static/chunks/app/course-handouts/page-48d61b47cf1e8d15.js",revision:"-sBSwzqQJReplTUIIk4tC"},{url:"/_next/static/chunks/app/courses/page-813339999df94160.js",revision:"-sBSwzqQJReplTUIIk4tC"},{url:"/_next/static/chunks/app/dashboard/page-b3be99676682ed2d.js",revision:"-sBSwzqQJReplTUIIk4tC"},{url:"/_next/static/chunks/app/error-universal/page-dbc7e011772ac081.js",revision:"-sBSwzqQJReplTUIIk4tC"},{url:"/_next/static/chunks/app/layout-c5e0cd08025d240c.js",revision:"-sBSwzqQJReplTUIIk4tC"},{url:"/_next/static/chunks/app/page-71e7919e96eff695.js",revision:"-sBSwzqQJReplTUIIk4tC"},{url:"/_next/static/chunks/app/paper-analysis/page-8869f3c9683ca6ce.js",revision:"-sBSwzqQJReplTUIIk4tC"},{url:"/_next/static/chunks/app/resume-generator/page-befdaea5f71df509.js",revision:"-sBSwzqQJReplTUIIk4tC"},{url:"/_next/static/chunks/d3ac728e.e517fee0d175ef7e.js",revision:"e517fee0d175ef7e"},{url:"/_next/static/chunks/ebbfb5c1-a73c51b6a41a5ff6.js",revision:"-sBSwzqQJReplTUIIk4tC"},{url:"/_next/static/chunks/fd9d1056-a892f3aa6b24ffd2.js",revision:"-sBSwzqQJReplTUIIk4tC"},{url:"/_next/static/chunks/framework-8e0e0f4a6b83a956.js",revision:"-sBSwzqQJReplTUIIk4tC"},{url:"/_next/static/chunks/main-1d5024616374fc80.js",revision:"-sBSwzqQJReplTUIIk4tC"},{url:"/_next/static/chunks/main-app-2f676c91cd6ca997.js",revision:"-sBSwzqQJReplTUIIk4tC"},{url:"/_next/static/chunks/pages/_app-3c9ca398d360b709.js",revision:"-sBSwzqQJReplTUIIk4tC"},{url:"/_next/static/chunks/pages/_error-cf5ca766ac8f493f.js",revision:"-sBSwzqQJReplTUIIk4tC"},{url:"/_next/static/chunks/polyfills-42372ed130431b0a.js",revision:"846118c33b2c0e922d7b3a7676f81f6f"},{url:"/_next/static/chunks/webpack-d6a539551d520e5d.js",revision:"-sBSwzqQJReplTUIIk4tC"},{url:"/_next/static/css/48340cfe5c3cfec7.css",revision:"48340cfe5c3cfec7"},{url:"/_next/static/css/aa31c09ac0dea837.css",revision:"aa31c09ac0dea837"},{url:"/_next/static/media/26a46d62cd723877-s.woff2",revision:"befd9c0fdfa3d8a645d5f95717ed6420"},{url:"/_next/static/media/55c55f0601d81cf3-s.woff2",revision:"43828e14271c77b87e3ed582dbff9f74"},{url:"/_next/static/media/581909926a08bbc8-s.woff2",revision:"f0b86e7c24f455280b8df606b89af891"},{url:"/_next/static/media/6d93bde91c0c2823-s.woff2",revision:"621a07228c8ccbfd647918f1021b4868"},{url:"/_next/static/media/97e0cb1ae144a2a9-s.woff2",revision:"e360c61c5bd8d90639fd4503c829c2dc"},{url:"/_next/static/media/a34f9d1faa5f3315-s.p.woff2",revision:"d4fe31e6a2aebc06b8d6e558c9141119"},{url:"/_next/static/media/df0a9ae256c0569c-s.woff2",revision:"d54db44de5ccb18886ece2fda72bdfe0"},{url:"/bits.png",revision:"9a62280db9a66a6ef482b705e0faa6e8"},{url:"/career-illustrations.png",revision:"fb2fd5e62e0c7fb2f0141b1fffcb4be4"},{url:"/career.png",revision:"c81c0fb1d0591cab28158b82f30e7121"},{url:"/cdc_illustration.svg",revision:"7278ba587f8a56bd155b2cbfa7193380"},{url:"/companies.csv",revision:"92df1493b89de3b5515cf2f8f845aa9c"},{url:"/contributors/husam.jpg",revision:"dc11e32cc20142c660e26a2320d19a0f"},{url:"/dashboard-preview.png",revision:"e4aa8c849d2f79381b82c13e628e013d"},{url:"/handouts/Applied Statistical Methods.docx",revision:"6bdf995c94c7a62ed73e2bd26fd5f79e"},{url:"/handouts/Compiler Construction.pdf",revision:"f6430990308eca1a42cc7fee76d78506"},{url:"/handouts/Computer Networks.pdf",revision:"0b6e862f5eeb2d9c8b097a345a392edd"},{url:"/handouts/Data Mining.pdf",revision:"bbb963a02ffd8be7d78962adf0803f56"},{url:"/handouts/Design and Analysis of Algorithms.doc",revision:"3664d31b50f182437af9f6378f634d0d"},{url:"/handouts/Environmental Studies.pdf",revision:"199c7d381b6e522c77c7724453b74cb2"},{url:"/handouts/International Law.docx",revision:"6c5757dfc126c63ac14a6c113ef976b7"},{url:"/handouts/Introduction to ARABIC.pdf",revision:"419af3e488d9635bd9ad1defb6ff0a80"},{url:"/handouts/Introduction to Psychology.docx",revision:"8fc42a3e598c15ad5e9a4f72ad76295f"},{url:"/handouts/Machine Learning.pdf",revision:"84251dd170300f0367e70e8aacbb1dd5"},{url:"/handouts/Modern Political Concepts.doc",revision:"78020c86a3b00d0739676a689a08486b"},{url:"/handouts/Optimization.pdf",revision:"4a880c26c3f3ef92ed524772702b7380"},{url:"/handouts/Principles of Economics.pdf",revision:"c4619967b8d0a0396fe36857365e5906"},{url:"/handouts/Principles of Management.pdf",revision:"75675ea8b3770d01f12dc057b496c2ef"},{url:"/handouts/Principles of Programming Languages.pdf",revision:"f5ff728184d555bb71a6b9ba7fbe2162"},{url:"/handouts/TOC.pdf",revision:"2cc668dc2f9c318dea8807dfde09b5f8"},{url:"/hero-illustration.png",revision:"440d5a2c5bd34fce07df0e22548d70c9"},{url:"/manifest.json",revision:"2f55b00e2acac46b9e64e1f9ebdc68af"},{url:"/register-sw.js",revision:"8a43f0bba3455ad85686c19b496bf7e7"},{url:"/resume-mockup.jpg",revision:"3f33c20a3915bb960f76fa5d889e8cf9"}],{ignoreURLParametersMatching:[]}),e.cleanupOutdatedCaches(),e.registerRoute("/",new e.NetworkFirst({cacheName:"start-url",plugins:[{cacheWillUpdate:async({request:e,response:s,event:a,state:c})=>s&&"opaqueredirect"===s.type?new Response(s.body,{status:200,statusText:"OK",headers:s.headers}):s}]}),"GET"),e.registerRoute(/^https:\/\/fonts\.(?:gstatic)\.com\/.*/i,new e.CacheFirst({cacheName:"google-fonts-webfonts",plugins:[new e.ExpirationPlugin({maxEntries:4,maxAgeSeconds:31536e3})]}),"GET"),e.registerRoute(/^https:\/\/fonts\.(?:googleapis)\.com\/.*/i,new e.StaleWhileRevalidate({cacheName:"google-fonts-stylesheets",plugins:[new e.ExpirationPlugin({maxEntries:4,maxAgeSeconds:604800})]}),"GET"),e.registerRoute(/\.(?:eot|otf|ttc|ttf|woff|woff2|font.css)$/i,new e.StaleWhileRevalidate({cacheName:"static-font-assets",plugins:[new e.ExpirationPlugin({maxEntries:4,maxAgeSeconds:604800})]}),"GET"),e.registerRoute(/\.(?:jpg|jpeg|gif|png|svg|ico|webp)$/i,new e.StaleWhileRevalidate({cacheName:"static-image-assets",plugins:[new e.ExpirationPlugin({maxEntries:64,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\/_next\/image\?url=.+$/i,new e.StaleWhileRevalidate({cacheName:"next-image",plugins:[new e.ExpirationPlugin({maxEntries:64,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\.(?:mp3|wav|ogg)$/i,new e.CacheFirst({cacheName:"static-audio-assets",plugins:[new e.RangeRequestsPlugin,new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\.(?:mp4)$/i,new e.CacheFirst({cacheName:"static-video-assets",plugins:[new e.RangeRequestsPlugin,new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\.(?:js)$/i,new e.StaleWhileRevalidate({cacheName:"static-js-assets",plugins:[new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\.(?:css|less)$/i,new e.StaleWhileRevalidate({cacheName:"static-style-assets",plugins:[new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\/_next\/data\/.+\/.+\.json$/i,new e.StaleWhileRevalidate({cacheName:"next-data",plugins:[new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\.(?:json|xml|csv)$/i,new e.NetworkFirst({cacheName:"static-data-assets",plugins:[new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute((({url:e})=>{if(!(self.origin===e.origin))return!1;const s=e.pathname;return!s.startsWith("/api/auth/")&&!!s.startsWith("/api/")}),new e.NetworkFirst({cacheName:"apis",networkTimeoutSeconds:10,plugins:[new e.ExpirationPlugin({maxEntries:16,maxAgeSeconds:86400})]}),"GET"),e.registerRoute((({url:e})=>{if(!(self.origin===e.origin))return!1;return!e.pathname.startsWith("/api/")}),new e.NetworkFirst({cacheName:"others",networkTimeoutSeconds:10,plugins:[new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute((({url:e})=>!(self.origin===e.origin)),new e.NetworkFirst({cacheName:"cross-origin",networkTimeoutSeconds:10,plugins:[new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:3600})]}),"GET")})); diff --git a/src/app/layout.tsx b/src/app/layout.tsx index 6921957..d483d32 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -4,6 +4,7 @@ import "./globals.css"; import Footer from "@/app/components/custom/Footer"; import { NavigationMenu, NavigationMenuList, NavigationMenuItem, NavigationMenuLink } from "@/components/ui/navigation-menu"; import { DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuItem } from "@/components/ui/dropdown-menu"; +import { BannerDemo } from "@/components/popup-banner"; import { Menu, Sparkle, AtSign, GitBranch } from "lucide-react"; import { Button } from "@/components/ui/button"; import { BackpackIcon } from "@radix-ui/react-icons"; diff --git a/src/components/popup-banner.tsx b/src/components/popup-banner.tsx new file mode 100644 index 0000000..7d4e49e --- /dev/null +++ b/src/components/popup-banner.tsx @@ -0,0 +1,27 @@ +"use client" + +import { useState } from "react" +import { GraduationCap } from "lucide-react" +import { Banner } from "@/components/ui/banner" + +export function BannerDemo() { + const [show, setShow] = useState(true) + + return ( + setShow(false)} + icon={} + title={ + <> + Get early access to UAE internship opportunities - Sign up with your university email. + + } + action={{ + label: "Sign Up", + onClick: () => window.location.href = "https://internships.ihusam.tech/", + }} + learnMoreUrl="https://internships.ihusam.tech/" + /> + ) +} \ No newline at end of file diff --git a/src/components/ui/banner.tsx b/src/components/ui/banner.tsx new file mode 100644 index 0000000..5f62fae --- /dev/null +++ b/src/components/ui/banner.tsx @@ -0,0 +1,123 @@ +"use client" + +import * as React from "react" +import { X } from "lucide-react" +import { cn } from "@/lib/utils" + +function Grid({ + cellSize = 12, + strokeWidth = 1, + patternOffset = [0, 0], + className, +}: { + cellSize?: number + strokeWidth?: number + patternOffset?: [number, number] + className?: string +}) { + const id = React.useId() + + return ( + + + + + + + + + ) +} + +interface BannerProps { + show: boolean + onHide: () => void + icon?: React.ReactNode + title: React.ReactNode + action: { + label: string + onClick: () => void + } + learnMoreUrl?: string +} + +export function Banner({ + show, + onHide, + icon, + title, + action, + learnMoreUrl, +}: BannerProps) { + if (!show) return null + + return ( +
+ + +
+ {icon && ( +
+ {icon} +
+ )} +

+ {title} + {learnMoreUrl && ( + <> + {""} + + Learn more + + + )} +

+
+ +
+ +
+ + +
+ ) +} \ No newline at end of file diff --git a/src/components/ui/label.tsx b/src/components/ui/label.tsx new file mode 100644 index 0000000..afde563 --- /dev/null +++ b/src/components/ui/label.tsx @@ -0,0 +1,26 @@ +"use client" + +import * as React from "react" +import * as LabelPrimitive from "@radix-ui/react-label" +import { cva, type VariantProps } from "class-variance-authority" + +import { cn } from "@/lib/utils" + +const labelVariants = cva( + "text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70", +) + +const Label = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef & + VariantProps +>(({ className, ...props }, ref) => ( + +)) +Label.displayName = LabelPrimitive.Root.displayName + +export { Label }