diff --git a/src/assets/UT-Map.png b/src/assets/UT-Map.png
new file mode 100644
index 00000000..423be822
Binary files /dev/null and b/src/assets/UT-Map.png differ
diff --git a/src/pages/map/Map.tsx b/src/pages/map/Map.tsx
new file mode 100644
index 00000000..0397edf6
--- /dev/null
+++ b/src/pages/map/Map.tsx
@@ -0,0 +1,17 @@
+import DialogProvider from '@views/components/common/DialogProvider/DialogProvider';
+import ExtensionRoot from '@views/components/common/ExtensionRoot/ExtensionRoot';
+import Map from '@views/components/map/Map';
+import React from 'react';
+
+/**
+ * Renders the map page for the UTRP (UT Registration Plus) extension.
+ */
+export default function MapPage() {
+ return (
+
+
+
+
+
+ );
+}
diff --git a/src/pages/map/index.html b/src/pages/map/index.html
new file mode 100644
index 00000000..bf775b44
--- /dev/null
+++ b/src/pages/map/index.html
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+ UTRP Map
+
+
+
+
+
+
+
+
+
diff --git a/src/pages/map/index.tsx b/src/pages/map/index.tsx
new file mode 100644
index 00000000..2d403d19
--- /dev/null
+++ b/src/pages/map/index.tsx
@@ -0,0 +1,6 @@
+import React from 'react';
+import { createRoot } from 'react-dom/client';
+
+import Map from './Map';
+
+createRoot(document.getElementById('root')!).render();
diff --git a/src/views/components/map/Map.tsx b/src/views/components/map/Map.tsx
new file mode 100644
index 00000000..0654d757
--- /dev/null
+++ b/src/views/components/map/Map.tsx
@@ -0,0 +1,60 @@
+import { Button } from '@views/components/common/Button';
+import Divider from '@views/components/common/Divider';
+import { LargeLogo } from '@views/components/common/LogoIcon';
+import Text from '@views/components/common/Text/Text';
+import useChangelog from '@views/hooks/useChangelog';
+import React from 'react';
+
+import IconoirGitFork from '~icons/iconoir/git-fork';
+
+import CalendarFooter from '../calendar/CalendarFooter';
+import { CalendarSchedules } from '../calendar/CalendarSchedules';
+import ImportantLinks from '../calendar/ImportantLinks';
+import TeamLinks from '../calendar/TeamLinks';
+
+const manifest = chrome.runtime.getManifest();
+const LDIconURL = new URL('/src/assets/LD-icon.png', import.meta.url).href;
+const UTMapURL = new URL('/src/assets/UT-Map.png', import.meta.url).href;
+
+/**
+ * Renders the map component for the UTRP (UT Registration Plus) extension.
+ */
+export default function Map(): JSX.Element {
+ const handleChangelogOnClick = useChangelog();
+
+ return (
+
+
+
+
+
+ UTRP Map
+
+
+
+

+
+
+
+
+
+

+
+
+
+ );
+}
diff --git a/vite.config.ts b/vite.config.ts
index 481eccfa..a6f5e6c2 100644
--- a/vite.config.ts
+++ b/vite.config.ts
@@ -142,6 +142,7 @@ export default defineConfig({
renameFile('src/pages/options/index.html', 'options.html'),
renameFile('src/pages/calendar/index.html', 'calendar.html'),
renameFile('src/pages/report/index.html', 'report.html'),
+ renameFile('src/pages/map/index.html', 'map.html'),
vitePluginRunCommandOnDemand({
afterServerStart: 'pnpm gulp forceDisableUseDynamicUrl',
closeBundle: 'pnpm gulp forceDisableUseDynamicUrl',
@@ -181,6 +182,10 @@ export default defineConfig({
target: 'http://localhost:5173',
rewrite: path => path.replace('report', 'src/pages/report/index'),
},
+ '/map.html': {
+ target: 'http://localhost:5173',
+ rewrite: path => path.replace('map', 'src/pages/map/index'),
+ },
},
},
build: {
@@ -194,6 +199,7 @@ export default defineConfig({
calendar: 'src/pages/calendar/index.html',
options: 'src/pages/options/index.html',
report: 'src/pages/report/index.html',
+ map: 'src/pages/map/index.html',
},
output: {
chunkFileNames: `assets/[name]-[hash].js`,