diff --git a/apps/status-page/messages/de.json b/apps/status-page/messages/de.json new file mode 100644 index 000000000..2a3292bb9 --- /dev/null +++ b/apps/status-page/messages/de.json @@ -0,0 +1,131 @@ +{ + "Y9HHck": "Authentifizieren", + "1QcGkA": "Geben Sie Ihre E-Mail-Adresse ein, um einen Magic Link für den Zugriff auf die Statusseite zu erhalten. Hinweis: Es werden nur E-Mails von genehmigten Domains akzeptiert.", + "wSZR47": "Absenden", + "txkW56": "Wird gesendet...", + "OrFVks": "Überprüfen Sie Ihren Posteingang!", + "n36zhX": "Greifen Sie auf die Statusseite zu, indem Sie auf den Link in der E-Mail klicken.", + "qIAQSi": "Geschützte Seite", + "lbw10C": "Geben Sie das Passwort ein, um auf die Statusseite zuzugreifen.", + "t262xH": "E-Mail und Weiterleitungs-URL sind erforderlich", + "DwevKz": "Bei der Anmeldung ist ein unerwarteter Fehler aufgetreten", + "Ppx673": "Berichte", + "JCMXwP": "Wartungen", + "I7B7SH": "Keine Wartungen gefunden", + "OSI607": "Keine Wartungen für diese Statusseite gefunden.", + "a9S/OH": "Wartung nicht gefunden", + "HSv9BP": "Die gesuchte Wartung existiert nicht.", + "VL1Y/1": "Bericht nicht gefunden", + "Ew1f8q": "Der gesuchte Bericht existiert nicht.", + "wkVkCX": "Erfolgreich abgemeldet", + "9qFG9F": "Abmeldung fehlgeschlagen", + "PV34S9": "Ungültiger Abonnement-Token", + "ar0fZ/": "Dieser Abonnement-Token ist nicht mehr gültig. Möglicherweise haben Sie sich bereits abgemeldet oder der Link ist abgelaufen.", + "orvpWh": "Zurück", + "K8kTfz": "Verwalten Sie Ihr Abonnement, um Updates zur Statusseite zu erhalten.", + "3JgeEq": "Abgemeldet am {date}", + "RXTZq5": "Abmeldung läuft...", + "cctOA4": "Abmelden", + "jHSHdV": "Sind Sie sicher, dass Sie sich von dieser Statusseite abmelden möchten? Sie erhalten dann keine Updates mehr.", + "47FYwb": "Abbrechen", + "awr0AJ": "Monitor nicht gefunden", + "CVsoUM": "Der gesuchte Monitor existiert nicht.", + "BRGcS0": "Globale Latenz", + "9vqdq3": "Regionale Latenz", + "fFOayY": "Regionen", + "u81G9+": "Verfügbarkeit", + "i2FBWn": "Prüfungen", + "G5Lt80": "Die aggregierte Latenz aller aktiven Regionen basierend auf verschiedenen Quantilen.", + "YV7rXP": "Latenz nach Region", + "6zzIEm": "Regionale Latenz pro p75-Quantil, sortiert nach langsamster Region. Vergleichen Sie bis zu 6 Regionen.", + "6pCzRs": "Gesamtverfügbarkeit", + "zL23+z": "Hauptwerte der Verfügbarkeit, transparent dargestellt.", + "gjBiyj": "Wird geladen...", + "/72cxa": "Ungültiger oder abgelaufener Link", + "R10mIw": "Dieser Abmelde-Link ist nicht mehr gültig. Möglicherweise haben Sie sich bereits abgemeldet.", + "yFi/8F": "Erfolgreich abgemeldet", + "CmelO7": "Sie erhalten keine E-Mail-Benachrichtigungen mehr von {pageName}.", + "JqiqNj": "Etwas ist schiefgelaufen", + "TnvU0H": "Bitte versuchen Sie es erneut oder kontaktieren Sie den Support, wenn das Problem weiterhin besteht.", + "uW0VWi": "Von Benachrichtigungen abmelden", + "deCYKO": "Sie sind dabei, {email} von den Status-Updates von {pageName} abzumelden.", + "5HvAzP": "Bereit, Updates für {email} zu empfangen!", + "ywcUO4": "Einen Moment — wir bestätigen Ihr Abonnement", + "0Azlrb": "Verwalten", + "cyR7Kh": "Zurück", + "2yCGR2": "Link in die Zwischenablage kopiert", + "u5aHb4": "Link kopieren", + "m5BctM": "Diagrammlegende", + "csFahs": "Relativ", + "oBoa2n": "Voreinstellungen", + "gdve5D": "Benutzerdefinierter Zeitraum", + "mOFG3K": "Start", + "3JVa6k": "Ende", + "79eRW1": "Bestätigung läuft...", + "dX7+Rv": "Bestätigt", + "m0fapd": "Bestätigung fehlgeschlagen", + "sy+pv5": "E-Mail", + "9Utk00": "Abonnement wird aktualisiert...", + "Eq5gCU": "Abonnement aktualisiert", + "qp+wDV": "Aktualisierung des Abonnements fehlgeschlagen", + "d/jCcy": "Bestimmte Komponenten abonnieren", + "FlVuUh": "Keine Komponenten zum Abonnieren", + "8aUjqQ": "Diese Statusseite hat keine Komponenten zum Abonnieren.", + "5sg7KC": "Passwort", + "IGY48m": "Wird abonniert...", + "Pgb3Xj": "Abonniert", + "WOH7Yj": "Abonnement fehlgeschlagen", + "L7z2/k": "Diese Seite hat keine Komponenten zum Abonnieren.", + "NOyDVq": "betrieben von", + "tzMNF3": "Status", + "ZvKSfJ": "Ereignisse", + "xJrRMG": "Monitore", + "tKMlOc": "Menü", + "krEziQ": "Kontakt aufnehmen", + "8kyEWd": "Ein Quantil stellt ein bestimmtes Perzentil in Ihrem Datensatz dar.", + "kd0Igx": "Zum Beispiel ist p50 das 50. Perzentil — der Punkt, unter dem 50 % der Daten liegen. Höhere Perzentile umfassen mehr Daten und heben den oberen Bereich hervor.", + "BQBZU+": "Alle Systeme betriebsbereit", + "b9fOA1": "Eingeschränkte Leistung", + "80EXUh": "Ausfall", + "dudqv/": "Wartung", + "u++vY3": "Keine Berichte gefunden", + "2HGztY": "Keine Berichte für diese Statusseite gefunden.", + "50SA6J": "Keine öffentlichen Monitore", + "FHrzf5": "Es wurden keine öffentlichen Monitore zu dieser Seite hinzugefügt.", + "2syGZB": "Bericht gelöst", + "heezSZ": "(in {duration})", + "lKJjwW": "({timeFromLast} früher)", + "W6nSYE": "Gelöst", + "1P6GMj": "Überwachung", + "7cv4Uf": "Identifiziert", + "/GKH/w": "Wird untersucht", + "VaZnIX": "(für {duration})", + "FDReLp": "Keine aktuellen Benachrichtigungen", + "qDj0JR": "In den letzten 7 Tagen gab es keine Berichte.", + "CYs0LF": "Ereignisverlauf anzeigen", + "kkpP2k": "heute", + "Dnob31": "Betriebsbereit", + "VQDmmK": "Eingeschränkt", + "JOZGPR": "Ausfall", + "3Vaz8F": "Status-Tracker", + "apbxET": "Tag {n} Status", + "GbVCQb": "Erneut klicken zum Lösen", + "myq2ZL": "Normal", + "KN7zKn": "Fehler", + "D3rOMr": "Keine Daten", + "2wsjxR": "laufend", + "jC7BY1": "über {duration}", + "uPb/gh": "Updates erhalten", + "sjzDbu": "Slack", + "q0qMyV": "RSS", + "9y9QQh": "JSON", + "waUHa4": "SSH", + "cVqFq/": "Erhalten Sie E-Mail-Benachrichtigungen, wenn ein Bericht erstellt oder gelöst wird", + "gczcC5": "Abonnieren", + "8OoV56": "RSS-Feed abrufen", + "Auj/Ki": "Atom-Feed abrufen", + "SyYroX": "JSON-Updates abrufen", + "PSqtlY": "Status über SSH abrufen", + "rptmhC": "Für Status-Updates in Slack fügen Sie den folgenden Text in einen beliebigen Kanal ein.", + "45YlLU": "Bestätigen Sie Ihre E-Mail-Adresse, um Updates zu erhalten, und schon sind Sie fertig." +} diff --git a/apps/status-page/messages/en.json b/apps/status-page/messages/en.json new file mode 100644 index 000000000..afaf96d75 --- /dev/null +++ b/apps/status-page/messages/en.json @@ -0,0 +1,131 @@ +{ + "Y9HHck": "Authenticate", + "1QcGkA": "Enter your email to receive a magic link for accessing the status page. Note: Only emails from approved domains are accepted.", + "wSZR47": "Submit", + "txkW56": "Submitting...", + "OrFVks": "Check your inbox!", + "n36zhX": "Access the status page by clicking the link in the email.", + "qIAQSi": "Protected Page", + "lbw10C": "Enter the password to access the status page.", + "t262xH": "Email and redirectTo are required", + "DwevKz": "An unexpected error occurred during sign in", + "Ppx673": "Reports", + "JCMXwP": "Maintenances", + "I7B7SH": "No maintenances found", + "OSI607": "No maintenances found for this status page.", + "a9S/OH": "Maintenance not found", + "HSv9BP": "The maintenance you are looking for does not exist.", + "VL1Y/1": "Report not found", + "Ew1f8q": "The report you are looking for does not exist.", + "wkVkCX": "Unsubscribed successfully", + "9qFG9F": "Failed to unsubscribe", + "PV34S9": "Invalid subscription token", + "ar0fZ/": "This subscription token is no longer valid. You may have already unsubscribed or the link has expired.", + "orvpWh": "Go back", + "K8kTfz": "Manage your subscription to receive updates on the status page.", + "3JgeEq": "Unsubscribed on {date}", + "RXTZq5": "Unsubscribing...", + "cctOA4": "Unsubscribe", + "jHSHdV": "Are you sure you want to unsubscribe from this status page? You will no longer receive updates.", + "47FYwb": "Cancel", + "awr0AJ": "Monitor not found", + "CVsoUM": "The monitor you are looking for does not exist.", + "BRGcS0": "Global Latency", + "9vqdq3": "Region Latency", + "fFOayY": "regions", + "u81G9+": "Uptime", + "i2FBWn": "checks", + "G5Lt80": "The aggregated latency from all active regions based on different quantiles.", + "YV7rXP": "Latency by Region", + "6zzIEm": "Region latency per p75 quantile, sorted by slowest region. Compare up to 6 regions.", + "6pCzRs": "Total Uptime", + "zL23+z": "Main values of uptime and availability, transparent.", + "gjBiyj": "Loading...", + "/72cxa": "Invalid or expired link", + "R10mIw": "This unsubscribe link is no longer valid. You may have already unsubscribed.", + "yFi/8F": "Successfully unsubscribed", + "CmelO7": "You will no longer receive email notifications from {pageName}.", + "JqiqNj": "Something went wrong", + "TnvU0H": "Please try again or contact support if the issue persists.", + "uW0VWi": "Unsubscribe from notifications", + "deCYKO": "You are about to unsubscribe {email} from {pageName} status updates.", + "5HvAzP": "All set to receive updates to {email}!", + "ywcUO4": "Hang tight - we're confirming your subscription", + "0Azlrb": "Manage", + "cyR7Kh": "Back", + "2yCGR2": "Link copied to clipboard", + "u5aHb4": "Copy Link", + "m5BctM": "Chart legend", + "csFahs": "Relative", + "oBoa2n": "Presets", + "gdve5D": "Custom Range", + "mOFG3K": "Start", + "3JVa6k": "End", + "79eRW1": "Confirming...", + "dX7+Rv": "Confirmed", + "m0fapd": "Failed to confirm", + "sy+pv5": "Email", + "9Utk00": "Updating subscription...", + "Eq5gCU": "Subscription updated", + "qp+wDV": "Failed to update subscription", + "d/jCcy": "Subscribe to specific components", + "FlVuUh": "No components to subscribe to", + "8aUjqQ": "This status page has no components to subscribe to.", + "5sg7KC": "Password", + "IGY48m": "Subscribing...", + "Pgb3Xj": "Subscribed", + "WOH7Yj": "Failed to subscribe", + "L7z2/k": "This page has no components to subscribe to.", + "NOyDVq": "powered by", + "tzMNF3": "Status", + "ZvKSfJ": "Events", + "xJrRMG": "Monitors", + "tKMlOc": "Menu", + "krEziQ": "Get in touch", + "8kyEWd": "A quantile represents a specific percentile in your dataset.", + "kd0Igx": "For example, p50 is the 50th percentile - the point below which 50% of data falls. Higher percentiles include more data and highlight the upper range.", + "BQBZU+": "All Systems Operational", + "b9fOA1": "Degraded Performance", + "80EXUh": "Downtime Performance", + "dudqv/": "Maintenance", + "u++vY3": "No reports found", + "2HGztY": "No reports found for this status page.", + "50SA6J": "No public monitors", + "FHrzf5": "No public monitors have been added to this page.", + "2syGZB": "Report resolved", + "heezSZ": "(in {duration})", + "lKJjwW": "({timeFromLast} earlier)", + "W6nSYE": "Resolved", + "1P6GMj": "Monitoring", + "7cv4Uf": "Identified", + "/GKH/w": "Investigating", + "VaZnIX": "(for {duration})", + "FDReLp": "No recent notifications", + "qDj0JR": "There have been no reports within the last 7 days.", + "CYs0LF": "View events history", + "kkpP2k": "today", + "Dnob31": "Operational", + "VQDmmK": "Degraded", + "JOZGPR": "Downtime", + "3Vaz8F": "Status tracker", + "apbxET": "Day {n} status", + "GbVCQb": "Click again to unpin", + "myq2ZL": "Normal", + "KN7zKn": "Error", + "D3rOMr": "No Data", + "2wsjxR": "ongoing", + "jC7BY1": "across {duration}", + "uPb/gh": "Get updates", + "sjzDbu": "Slack", + "q0qMyV": "RSS", + "9y9QQh": "JSON", + "waUHa4": "SSH", + "cVqFq/": "Get email notifications whenever a report has been created or resolved", + "gczcC5": "Subscribe", + "8OoV56": "Get the RSS feed", + "Auj/Ki": "Get the Atom feed", + "SyYroX": "Get the JSON updates", + "PSqtlY": "Get status via SSH", + "rptmhC": "For status updates in Slack, paste the text below into any channel.", + "45YlLU": "Validate your email to receive updates and you are all set." +} diff --git a/apps/status-page/messages/fr.json b/apps/status-page/messages/fr.json new file mode 100644 index 000000000..f2afd6d09 --- /dev/null +++ b/apps/status-page/messages/fr.json @@ -0,0 +1,131 @@ +{ + "Y9HHck": "S'authentifier", + "1QcGkA": "Entrez votre email pour recevoir un lien magique d'accès à la page de statut. Remarque : seuls les emails provenant de domaines approuvés sont acceptés.", + "wSZR47": "Envoyer", + "txkW56": "Envoi en cours...", + "OrFVks": "Vérifiez votre boîte de réception !", + "n36zhX": "Accédez à la page de statut en cliquant sur le lien dans l'email.", + "qIAQSi": "Page protégée", + "lbw10C": "Entrez le mot de passe pour accéder à la page de statut.", + "t262xH": "L'email et l'URL de redirection sont requis", + "DwevKz": "Une erreur inattendue s'est produite lors de la connexion", + "Ppx673": "Rapports", + "JCMXwP": "Maintenances", + "I7B7SH": "Aucune maintenance trouvée", + "OSI607": "Aucune maintenance trouvée pour cette page de statut.", + "a9S/OH": "Maintenance introuvable", + "HSv9BP": "La maintenance que vous recherchez n'existe pas.", + "VL1Y/1": "Rapport introuvable", + "Ew1f8q": "Le rapport que vous recherchez n'existe pas.", + "wkVkCX": "Désabonnement réussi", + "9qFG9F": "Échec du désabonnement", + "PV34S9": "Jeton d'abonnement invalide", + "ar0fZ/": "Ce jeton d'abonnement n'est plus valide. Vous vous êtes peut-être déjà désabonné ou le lien a expiré.", + "orvpWh": "Retour", + "K8kTfz": "Gérez votre abonnement pour recevoir les mises à jour de la page de statut.", + "3JgeEq": "Désabonné le {date}", + "RXTZq5": "Désabonnement en cours...", + "cctOA4": "Se désabonner", + "jHSHdV": "Êtes-vous sûr de vouloir vous désabonner de cette page de statut ? Vous ne recevrez plus de mises à jour.", + "47FYwb": "Annuler", + "awr0AJ": "Moniteur introuvable", + "CVsoUM": "Le moniteur que vous recherchez n'existe pas.", + "BRGcS0": "Latence globale", + "9vqdq3": "Latence par région", + "fFOayY": "régions", + "u81G9+": "Disponibilité", + "i2FBWn": "vérifications", + "G5Lt80": "La latence agrégée de toutes les régions actives basée sur différents quantiles.", + "YV7rXP": "Latence par région", + "6zzIEm": "Latence par région au quantile p75, triée par région la plus lente. Comparez jusqu'à 6 régions.", + "6pCzRs": "Disponibilité totale", + "zL23+z": "Valeurs principales de disponibilité, en toute transparence.", + "gjBiyj": "Chargement...", + "/72cxa": "Lien invalide ou expiré", + "R10mIw": "Ce lien de désabonnement n'est plus valide. Vous vous êtes peut-être déjà désabonné.", + "yFi/8F": "Désabonnement réussi", + "CmelO7": "Vous ne recevrez plus de notifications par email de {pageName}.", + "JqiqNj": "Une erreur est survenue", + "TnvU0H": "Veuillez réessayer ou contacter le support si le problème persiste.", + "uW0VWi": "Se désabonner des notifications", + "deCYKO": "Vous êtes sur le point de désabonner {email} des mises à jour de statut de {pageName}.", + "5HvAzP": "Prêt à recevoir les mises à jour pour {email} !", + "ywcUO4": "Patientez, nous confirmons votre abonnement", + "0Azlrb": "Gérer", + "cyR7Kh": "Retour", + "2yCGR2": "Lien copié dans le presse-papiers", + "u5aHb4": "Copier le lien", + "m5BctM": "Légende du graphique", + "csFahs": "Relatif", + "oBoa2n": "Préréglages", + "gdve5D": "Plage personnalisée", + "mOFG3K": "Début", + "3JVa6k": "Fin", + "79eRW1": "Confirmation en cours...", + "dX7+Rv": "Confirmé", + "m0fapd": "Échec de la confirmation", + "sy+pv5": "Email", + "9Utk00": "Mise à jour de l'abonnement...", + "Eq5gCU": "Abonnement mis à jour", + "qp+wDV": "Échec de la mise à jour de l'abonnement", + "d/jCcy": "S'abonner à des composants spécifiques", + "FlVuUh": "Aucun composant auquel s'abonner", + "8aUjqQ": "Cette page de statut n'a aucun composant auquel s'abonner.", + "5sg7KC": "Mot de passe", + "IGY48m": "Abonnement en cours...", + "Pgb3Xj": "Abonné", + "WOH7Yj": "Échec de l'abonnement", + "L7z2/k": "Cette page n'a aucun composant auquel s'abonner.", + "NOyDVq": "propulsé par", + "tzMNF3": "Statut", + "ZvKSfJ": "Événements", + "xJrRMG": "Moniteurs", + "tKMlOc": "Menu", + "krEziQ": "Nous contacter", + "8kyEWd": "Un quantile représente un percentile spécifique dans votre jeu de données.", + "kd0Igx": "Par exemple, p50 est le 50e percentile — le point en dessous duquel 50 % des données se situent. Les percentiles plus élevés incluent plus de données et mettent en évidence la plage supérieure.", + "BQBZU+": "Tous les systèmes sont opérationnels", + "b9fOA1": "Performances dégradées", + "80EXUh": "Performances en panne", + "dudqv/": "Maintenance", + "u++vY3": "Aucun rapport trouvé", + "2HGztY": "Aucun rapport trouvé pour cette page de statut.", + "50SA6J": "Aucun moniteur public", + "FHrzf5": "Aucun moniteur public n'a été ajouté à cette page.", + "2syGZB": "Rapport résolu", + "heezSZ": "(en {duration})", + "lKJjwW": "({timeFromLast} plus tôt)", + "W6nSYE": "Résolu", + "1P6GMj": "Surveillance", + "7cv4Uf": "Identifié", + "/GKH/w": "En cours d'investigation", + "VaZnIX": "(pendant {duration})", + "FDReLp": "Aucune notification récente", + "qDj0JR": "Aucun rapport au cours des 7 derniers jours.", + "CYs0LF": "Voir l'historique des événements", + "kkpP2k": "aujourd'hui", + "Dnob31": "Opérationnel", + "VQDmmK": "Dégradé", + "JOZGPR": "En panne", + "3Vaz8F": "Suivi de statut", + "apbxET": "Statut du jour {n}", + "GbVCQb": "Cliquez à nouveau pour désépingler", + "myq2ZL": "Normal", + "KN7zKn": "Erreur", + "D3rOMr": "Aucune donnée", + "2wsjxR": "en cours", + "jC7BY1": "sur {duration}", + "uPb/gh": "Recevoir les mises à jour", + "sjzDbu": "Slack", + "q0qMyV": "RSS", + "9y9QQh": "JSON", + "waUHa4": "SSH", + "cVqFq/": "Recevez des notifications par email à chaque création ou résolution d'un rapport", + "gczcC5": "S'abonner", + "8OoV56": "Obtenir le flux RSS", + "Auj/Ki": "Obtenir le flux Atom", + "SyYroX": "Obtenir les mises à jour JSON", + "PSqtlY": "Obtenir le statut via SSH", + "rptmhC": "Pour recevoir les mises à jour dans Slack, collez le texte ci-dessous dans n'importe quel canal.", + "45YlLU": "Validez votre email pour recevoir les mises à jour et le tour est joué." +} diff --git a/apps/status-page/next.config.ts b/apps/status-page/next.config.ts index 9ff1620b6..f56632512 100644 --- a/apps/status-page/next.config.ts +++ b/apps/status-page/next.config.ts @@ -1,6 +1,22 @@ import { withSentryConfig } from "@sentry/nextjs"; - import type { NextConfig } from "next"; +import createNextIntlPlugin from "next-intl/plugin"; +import { defaultLocale, locales } from "./src/i18n/config"; + +const withNextIntl = createNextIntlPlugin({ + requestConfig: "./src/i18n/request.ts", + experimental: { + srcPath: "./src", + extract: { + sourceLocale: defaultLocale, + }, + messages: { + path: "./messages", + format: "json", + locales, + }, + }, +}); const nextConfig: NextConfig = { output: process.env.SELF_HOST === "true" ? "standalone" : undefined, @@ -18,41 +34,6 @@ const nextConfig: NextConfig = { fullUrl: true, }, }, - async rewrites() { - return { - beforeFiles: [ - { - source: - "/:path((?!api|assets|_next/static|_next/image|favicon.ico|sitemap.xml|robots.txt).*)", - has: [ - { - type: "host", - value: - process.env.NODE_ENV === "production" - ? "(?[^.]+).stpg.dev" - : "(?[^.]+).localhost", - }, - ], - missing: [ - // Skip this rewrite when the request came via proxy from web app - { - type: "header", - key: "x-proxy", - value: "1", - }, - { - type: "host", - value: - process.env.NODE_ENV === "production" - ? "www.stpg.dev" - : "localhost", - }, - ], - destination: "/:subdomain/:path*", - }, - ], - }; - }, }; // For detailed options, refer to the official documentation: @@ -79,4 +60,4 @@ const sentryConfig = { }, }; -export default withSentryConfig(nextConfig, sentryConfig); +export default withSentryConfig(withNextIntl(nextConfig), sentryConfig); diff --git a/apps/status-page/package.json b/apps/status-page/package.json index e95de070d..730850e87 100644 --- a/apps/status-page/package.json +++ b/apps/status-page/package.json @@ -53,6 +53,7 @@ "lucide-react": "0.525.0", "next": "16.1.6", "next-auth": "5.0.0-beta.29", + "next-intl": "^4.8.3", "next-plausible": "3.12.5", "next-themes": "0.4.6", "nuqs": "2.8.5", diff --git a/apps/status-page/src/app/(public)/client.tsx b/apps/status-page/src/app/(public)/client.tsx index a11495dc4..175b55fdf 100644 --- a/apps/status-page/src/app/(public)/client.tsx +++ b/apps/status-page/src/app/(public)/client.tsx @@ -10,6 +10,7 @@ import { SectionTitle, } from "@/components/content/section"; import { recomputeStyles } from "@/components/status-page/floating-button"; +import { StatusMonitorStatic } from "@/components/status-page/static/status-monitor-static"; import { Status, StatusContent, @@ -17,13 +18,12 @@ import { StatusHeader, StatusTitle, } from "@/components/status-page/status"; -import { StatusBanner } from "@/components/status-page/status-banner"; -import { StatusMonitor } from "@/components/status-page/status-monitor"; import { ThemePalettePicker } from "@/components/themes/theme-palette-picker"; import { ThemeSelect } from "@/components/themes/theme-select"; import { monitors } from "@/data/monitors"; import { useTRPC } from "@/lib/trpc/client"; import { THEMES, THEME_KEYS } from "@openstatus/theme-store"; +import { StatusBanner } from "@openstatus/ui/components/blocks/status-banner"; import { Button } from "@openstatus/ui/components/ui/button"; import { Input } from "@openstatus/ui/components/ui/input"; import { Separator } from "@openstatus/ui/components/ui/separator"; @@ -298,7 +298,7 @@ function ThemePlaygroundStatus({ {/* TODO: create mock data */} -