diff --git a/apps/frontend/src/components/ui/servers/Globe.vue b/apps/frontend/src/components/ui/servers/Globe.vue index 56c9b826d5..d9d7db72ba 100644 --- a/apps/frontend/src/components/ui/servers/Globe.vue +++ b/apps/frontend/src/components/ui/servers/Globe.vue @@ -50,22 +50,27 @@ const container = ref(null); const showLabels = ref(false); const locations = ref([ - // Active locations - { name: "New York", lat: 40.7128, lng: -74.006, active: true, clicked: false }, - { name: "Los Angeles", lat: 34.0522, lng: -118.2437, active: true, clicked: false }, - { name: "Miami", lat: 25.7617, lng: -80.1918, active: true, clicked: false }, - { name: "Spokane", lat: 47.667309, lng: -117.411922, active: true, clicked: false }, - { name: "Dallas", lat: 32.78372, lng: -96.7947, active: true, clicked: false }, - // Future Locations - // { name: "London", lat: 51.5074, lng: -0.1278, active: false, clicked: false }, - // { name: "Frankfurt", lat: 50.1109, lng: 8.6821, active: false, clicked: false }, - // { name: "Amsterdam", lat: 52.3676, lng: 4.9041, active: false, clicked: false }, - // { name: "Paris", lat: 48.8566, lng: 2.3522, active: false, clicked: false }, - // { name: "Singapore", lat: 1.3521, lng: 103.8198, active: false, clicked: false }, - // { name: "Tokyo", lat: 35.6762, lng: 139.6503, active: false, clicked: false }, - // { name: "Sydney", lat: -33.8688, lng: 151.2093, active: false, clicked: false }, - // { name: "São Paulo", lat: -23.5505, lng: -46.6333, active: false, clicked: false }, - // { name: "Toronto", lat: 43.6532, lng: -79.3832, active: false, clicked: false }, + { + name: "Vint Hill", + lat: 38.74724876915715, + lng: -77.67436507922152, + active: true, + clicked: false, + }, + { + name: "Coventry", + lat: 52.39751276904742, + lng: -1.5777183894453757, + active: true, + clicked: false, + }, + { + name: "Limburg", + lat: 50.40863558430334, + lng: 8.062427315007714, + active: true, + clicked: false, + }, ]); const isLocationVisible = (location) => { diff --git a/apps/frontend/src/composables/featureFlags.ts b/apps/frontend/src/composables/featureFlags.ts index df4c5d057f..c769f7bcf8 100644 --- a/apps/frontend/src/composables/featureFlags.ts +++ b/apps/frontend/src/composables/featureFlags.ts @@ -34,6 +34,7 @@ export const DEFAULT_FEATURE_FLAGS = validateValues({ showProjectPageDownloadModalServersPromo: false, showProjectPageCreateServersTooltip: true, showProjectPageQuickServerButton: false, + showModrinthServersGlobe: false, // advancedRendering: true, // externalLinksNewTab: true, // notUsingBlockers: false, diff --git a/apps/frontend/src/pages/servers/index.vue b/apps/frontend/src/pages/servers/index.vue index 2ac52cbe86..d767b9a349 100644 --- a/apps/frontend/src/pages/servers/index.vue +++ b/apps/frontend/src/pages/servers/index.vue @@ -515,6 +515,98 @@ +
+
+
+
+
+
+
+ Server Locations +
+

+ Global Coverage +

+
+ +
+
+
+
+ + + + +
+

+ Strategic Locations +

+
+

+ With servers strategically placed in Vint Hill (USA), Coventry (UK), and Limburg + (Germany), we provide excellent coverage across North America and Europe. Each + location features high-performance hardware and comprehensive DDoS protection. +

+
+ +
+
+
+ + + + + + +
+

+ Low Latency Connectivity +

+
+

+ Our three carefully chosen locations ensure optimal ping times and reliable + connections for players across multiple continents. Choose the region closest to + you for the best gaming experience. +

+
+
+
+ +
+
+
+
isSmallAtCapacity.value && isMediumAtCapacity.value && isLargeAtCapacity.value, ); diff --git a/apps/frontend/src/pages/servers_new/manage/index.vue b/apps/frontend/src/pages/servers_new/manage/index.vue new file mode 100644 index 0000000000..918e8f57af --- /dev/null +++ b/apps/frontend/src/pages/servers_new/manage/index.vue @@ -0,0 +1,11 @@ + + + diff --git a/packages/assets/branding/illustrations/servers-background.svg b/packages/assets/branding/illustrations/servers-background.svg new file mode 100644 index 0000000000..3c9df79c74 --- /dev/null +++ b/packages/assets/branding/illustrations/servers-background.svg @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/packages/assets/generated-icons.ts b/packages/assets/generated-icons.ts index 88958ec03c..0b5e697436 100644 --- a/packages/assets/generated-icons.ts +++ b/packages/assets/generated-icons.ts @@ -50,6 +50,7 @@ import _CubeIcon from './icons/cube.svg?component' import _CurrencyIcon from './icons/currency.svg?component' import _DashboardIcon from './icons/dashboard.svg?component' import _DatabaseIcon from './icons/database.svg?component' +import _DotIcon from './icons/dot.svg?component' import _DownloadIcon from './icons/download.svg?component' import _DropdownIcon from './icons/dropdown.svg?component' import _EditIcon from './icons/edit.svg?component' @@ -245,6 +246,7 @@ export const CubeIcon = _CubeIcon export const CurrencyIcon = _CurrencyIcon export const DashboardIcon = _DashboardIcon export const DatabaseIcon = _DatabaseIcon +export const DotIcon = _DotIcon export const DownloadIcon = _DownloadIcon export const DropdownIcon = _DropdownIcon export const EditIcon = _EditIcon diff --git a/packages/assets/icons/dot.svg b/packages/assets/icons/dot.svg new file mode 100644 index 0000000000..6544c1cb19 --- /dev/null +++ b/packages/assets/icons/dot.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/assets/index.ts b/packages/assets/index.ts index 2ff3fe768b..537a862ae0 100644 --- a/packages/assets/index.ts +++ b/packages/assets/index.ts @@ -12,6 +12,7 @@ import './omorphia.scss' import _ModrinthIcon from './branding/logo.svg?component' import _FourOhFourNotFound from './branding/404.svg?component' import _ModrinthPlusIcon from './branding/modrinth-plus.svg?component' +import _ServersManageIllustration from './branding/illustrations/servers-background.svg?component' import _AngryRinthbot from './branding/rinthbot/angry.webp' import _AnnoyedRinthbot from './branding/rinthbot/annoyed.webp' import _ConfusedRinthbot from './branding/rinthbot/confused.webp' @@ -50,6 +51,7 @@ import _YouTubeIcon from './external/youtube.svg?component' export const ModrinthIcon = _ModrinthIcon export const FourOhFourNotFound = _FourOhFourNotFound export const ModrinthPlusIcon = _ModrinthPlusIcon +export const ServersManageIllustration = _ServersManageIllustration export const AngryRinthbot = _AngryRinthbot export const AnnoyedRinthbot = _AnnoyedRinthbot export const ConfusedRinthbot = _ConfusedRinthbot diff --git a/packages/ui/index.ts b/packages/ui/index.ts index 93cb120715..e1ea57e639 100644 --- a/packages/ui/index.ts +++ b/packages/ui/index.ts @@ -1,3 +1,4 @@ export * from './src/components' export * from './src/utils' export * from './src/composables' +export * from './src/servers' diff --git a/packages/ui/src/components/base/RaisedBadge.vue b/packages/ui/src/components/base/RaisedBadge.vue new file mode 100644 index 0000000000..8bdfcd1c9a --- /dev/null +++ b/packages/ui/src/components/base/RaisedBadge.vue @@ -0,0 +1,5 @@ + diff --git a/packages/ui/src/components/index.ts b/packages/ui/src/components/index.ts index 85b7f2da0b..3f7f6cb3e2 100644 --- a/packages/ui/src/components/index.ts +++ b/packages/ui/src/components/index.ts @@ -36,6 +36,7 @@ export { default as ProgressBar } from './base/ProgressBar.vue' export { default as ProjectCard } from './base/ProjectCard.vue' export { default as RadialHeader } from './base/RadialHeader.vue' export { default as RadioButtons } from './base/RadioButtons.vue' +export { default as RaisedBadge } from './base/RaisedBadge.vue' export { default as ScrollablePanel } from './base/ScrollablePanel.vue' export { default as ServerNotice } from './base/ServerNotice.vue' export { default as SimpleBadge } from './base/SimpleBadge.vue' diff --git a/packages/ui/src/servers/components/.gitkeep b/packages/ui/src/servers/components/.gitkeep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/ui/src/servers/components/management/ServerCard.vue b/packages/ui/src/servers/components/management/ServerCard.vue new file mode 100644 index 0000000000..26272798c6 --- /dev/null +++ b/packages/ui/src/servers/components/management/ServerCard.vue @@ -0,0 +1,141 @@ + + + + + diff --git a/packages/ui/src/servers/composables/.gitkeep b/packages/ui/src/servers/composables/.gitkeep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/ui/src/servers/index.ts b/packages/ui/src/servers/index.ts new file mode 100644 index 0000000000..50e3c8ef90 --- /dev/null +++ b/packages/ui/src/servers/index.ts @@ -0,0 +1 @@ +export { default as ServersManagePage } from './pages/manage.vue' diff --git a/packages/ui/src/servers/pages/.gitkeep b/packages/ui/src/servers/pages/.gitkeep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/ui/src/servers/pages/manage.vue b/packages/ui/src/servers/pages/manage.vue new file mode 100644 index 0000000000..2d1ecc0edf --- /dev/null +++ b/packages/ui/src/servers/pages/manage.vue @@ -0,0 +1,130 @@ + + + + +