diff --git a/src/app/routes/_authed/admin/index.tsx b/src/app/routes/_authed/admin/index.tsx
index a36a1db..ec660c1 100644
--- a/src/app/routes/_authed/admin/index.tsx
+++ b/src/app/routes/_authed/admin/index.tsx
@@ -3,7 +3,7 @@ import { msg } from "@lingui/core/macro";
import { AdminDashboard } from "@/features/admin";
import { tournamentQueries } from "@/features/tournaments/queries";
import { telemetryQueries } from "@/features/telemetry/queries";
-import { lastNDays } from "@/features/telemetry/range";
+import { isoDay, lastNDays } from "@/features/telemetry/range";
import { prefetchServerQuery } from "@/lib/tanstack-query/utils/prefetch";
export const Route = createFileRoute("/_authed/admin/")({
@@ -15,6 +15,11 @@ export const Route = createFileRoute("/_authed/admin/")({
context.queryClient,
telemetryQueries.errorGroups({ from: month.from, to: month.to })
);
+ const today = isoDay(new Date());
+ prefetchServerQuery(
+ context.queryClient,
+ telemetryQueries.rollups({ metrics: ["server_fn.count"], from: today, to: today })
+ );
},
loader: () => ({
header: {
diff --git a/src/components/nav-tile/index.tsx b/src/components/nav-tile/index.tsx
new file mode 100644
index 0000000..221bf24
--- /dev/null
+++ b/src/components/nav-tile/index.tsx
@@ -0,0 +1,28 @@
+import { Text, UnstyledButton } from "@mantine/core";
+import { Icon } from "@phosphor-icons/react";
+import classes from "./nav-tile.module.css";
+
+interface NavTileProps {
+ label: string;
+ Icon: Icon;
+ onClick?: () => void;
+ disabled?: boolean;
+}
+
+/** A single square-ish nav tile with icon-over-label and press feedback. */
+export const NavTile = ({ label, Icon, onClick, disabled }: NavTileProps) => (
+
+
+
+
+
+ {label}
+
+
+);
+
+export default NavTile;
diff --git a/src/components/nav-tile/nav-tile.module.css b/src/components/nav-tile/nav-tile.module.css
new file mode 100644
index 0000000..028dfed
--- /dev/null
+++ b/src/components/nav-tile/nav-tile.module.css
@@ -0,0 +1,43 @@
+.tile {
+ -webkit-tap-highlight-color: transparent;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ gap: 8px;
+ padding: 14px 8px;
+ border-radius: var(--mantine-radius-md);
+ border: 1px solid var(--mantine-color-default-border);
+ background-color: var(--mantine-color-body);
+ text-align: center;
+}
+
+.icon {
+ color: var(--mantine-primary-color-filled);
+ display: flex;
+}
+
+@media (hover: hover) {
+ .tile:hover:not(:disabled) {
+ background-color: var(--mantine-color-default-hover);
+ }
+}
+
+.tile:active:not(:disabled) {
+ background-color: var(--mantine-color-default-hover);
+}
+
+.tile:disabled {
+ opacity: 0.5;
+ cursor: default;
+}
+
+@media (prefers-reduced-motion: no-preference) {
+ .tile {
+ transition: background-color 120ms ease-out, transform 120ms cubic-bezier(0.32, 0.72, 0, 1);
+ }
+
+ .tile:active:not(:disabled) {
+ transform: scale(0.97);
+ }
+}
diff --git a/src/features/admin/components/dashboard/activity-feed.tsx b/src/features/admin/components/dashboard/activity-feed.tsx
deleted file mode 100644
index 340e9c7..0000000
--- a/src/features/admin/components/dashboard/activity-feed.tsx
+++ /dev/null
@@ -1,87 +0,0 @@
-import { Card, Group, Stack, Text } from "@mantine/core";
-import { Trans } from "@lingui/react/macro";
-import { useNavigate } from "@tanstack/react-router";
-import { CheckCircleIcon, XCircleIcon } from "@phosphor-icons/react";
-import { useServerQuery } from "@/lib/tanstack-query/hooks";
-import { searchActivities } from "@/features/activities/server";
-import { activityKeys } from "@/features/activities/queries";
-import { RelativeTime } from "@/features/telemetry/components/shared";
-import type { PlayerInfo } from "@/features/players/types";
-
-const FEED_PARAMS = { perPage: 10 } as const;
-
-const playerName = (player?: string | PlayerInfo): string | null => {
- if (!player || typeof player === "string") return null;
- return [player.first_name, player.last_name].filter(Boolean).join(" ") || null;
-};
-
-export const ActivityFeed = () => {
- const navigate = useNavigate();
-
- const { data } = useServerQuery({
- queryKey: activityKeys.search(FEED_PARAMS),
- queryFn: () => searchActivities({ data: FEED_PARAMS }),
- options: {
- refetchInterval: 30_000,
- },
- });
-
- return (
-
-
-
-
- Recent activity
-
-
-
- {data?.items.map((activity) => {
- const name = playerName(activity.player);
- return (
- navigate({ to: "/admin/telemetry/functions" })}
- style={{ cursor: "pointer" }}
- >
- {activity.success ? (
-
- ) : (
-
- )}
-
- {activity.name}
- {name && (
-
- {" "}
- · {name}
-
- )}
-
-
-
-
-
- );
- })}
- {data && data.items.length === 0 && (
-
- No activity yet
-
- )}
-
-
-
- );
-};
-
-export default ActivityFeed;
diff --git a/src/features/admin/components/dashboard/errors-card.tsx b/src/features/admin/components/dashboard/errors-card.tsx
deleted file mode 100644
index 64417f9..0000000
--- a/src/features/admin/components/dashboard/errors-card.tsx
+++ /dev/null
@@ -1,62 +0,0 @@
-import { Badge, Card, Group, Stack, Text, UnstyledButton } from "@mantine/core";
-import { Trans } from "@lingui/react/macro";
-import { useNavigate } from "@tanstack/react-router";
-import { CheckCircleIcon, WarningCircleIcon } from "@phosphor-icons/react";
-import { useClientErrorGroups } from "@/features/telemetry/queries";
-import { RelativeTime } from "@/features/telemetry/components/shared";
-import { lastNDays } from "@/features/telemetry/range";
-
-export const ErrorsCard = () => {
- const navigate = useNavigate();
- const range = lastNDays(30);
-
- const { data: groups } = useClientErrorGroups({ from: range.from, to: range.to });
-
- return (
- navigate({ to: "/admin/telemetry/errors" })}>
-
-
-
-
- Client errors
-
- {groups && groups.length > 0 ? (
-
- {groups.length}
-
- ) : (
-
- )}
-
- {groups && groups.length > 0 ? (
-
- {groups.slice(0, 3).map((group) => (
-
-
-
-
- {group.sample.message}
-
-
-
-
-
-
- ))}
-
- ) : (
-
- No unresolved errors
-
- )}
-
-
-
- );
-};
-
-export default ErrorsCard;
diff --git a/src/features/admin/components/dashboard/index.tsx b/src/features/admin/components/dashboard/index.tsx
index 080896b..4c3f3e0 100644
--- a/src/features/admin/components/dashboard/index.tsx
+++ b/src/features/admin/components/dashboard/index.tsx
@@ -1,57 +1,51 @@
import { Suspense } from "react";
-import { Box, SimpleGrid, Stack } from "@mantine/core";
-import { CardSkeleton, StatTileSkeleton } from "@/components/skeletons";
+import { Group, SimpleGrid, Skeleton, Stack } from "@mantine/core";
import QuietBoundary from "./quiet-boundary";
-import NowStrip from "./now-strip";
-import TournamentCard from "./tournament-card";
-import UsageCard from "./usage-card";
-import ErrorsCard from "./errors-card";
-import ActivityFeed from "./activity-feed";
+import SectionBox from "./section-box";
+import StatusStrip from "./status-strip";
+import TournamentSection from "./tournament-section";
import ToolsList from "./tools-list";
-const NowStripSkeleton = () => (
-
-
-
-
-
+const StripSkeleton = () => (
+
+
+ {[0, 1, 2].map((i) => (
+
+
+
+
+ ))}
+
+
+);
+
+const TournamentSkeleton = () => (
+
+
+
+
+
+
+
+
);
export const AdminDashboard = () => (
-
-
-
- }>
-
-
-
-
-
- }>
-
-
-
-
- }>
-
-
-
-
-
-
- }>
-
-
-
-
-
-
-
-
-
-
-
-
+ <>
+
+ }>
+
+
+
+
+
+
+ }>
+
+
+
+
+ >
);
export default AdminDashboard;
diff --git a/src/features/admin/components/dashboard/now-strip.tsx b/src/features/admin/components/dashboard/now-strip.tsx
deleted file mode 100644
index b2b5a93..0000000
--- a/src/features/admin/components/dashboard/now-strip.tsx
+++ /dev/null
@@ -1,61 +0,0 @@
-import { useMemo } from "react";
-import { SimpleGrid } from "@mantine/core";
-import { useLingui } from "@lingui/react/macro";
-import { useNavigate } from "@tanstack/react-router";
-import {
- useClientErrorGroups,
- useRollupRange,
- useTelemetryRuntimeStatus,
-} from "@/features/telemetry/queries";
-import { StatTile } from "@/features/telemetry/components/charts";
-import { isoDay, lastNDays, listDays } from "@/features/telemetry/range";
-
-export const NowStrip = () => {
- const { t } = useLingui();
- const navigate = useNavigate();
- const range = useMemo(() => lastNDays(7), []);
-
- const { data: status } = useTelemetryRuntimeStatus();
- const { data: errorGroups } = useClientErrorGroups({
- from: lastNDays(30).from,
- to: range.to,
- });
- const { data: rollups } = useRollupRange({
- metrics: ["server_fn.count"],
- from: range.from,
- to: range.to,
- });
-
- const { callsToday, callsSeries } = useMemo(() => {
- const byDate = new Map();
- for (const row of rollups ?? []) {
- byDate.set(row.date, (byDate.get(row.date) ?? 0) + row.value);
- }
- return {
- callsToday: byDate.get(isoDay(new Date())) ?? 0,
- callsSeries: listDays(range).map((day) => byDate.get(day) ?? 0),
- };
- }, [rollups, range]);
-
- const unresolved = errorGroups?.length ?? 0;
-
- return (
-
-
- navigate({ to: "/admin/telemetry/errors" })}
- />
- navigate({ to: "/admin/telemetry/usage" })}
- />
-
- );
-};
-
-export default NowStrip;
diff --git a/src/features/admin/components/dashboard/quiet-boundary.tsx b/src/features/admin/components/dashboard/quiet-boundary.tsx
index 2ab2d33..11f7813 100644
--- a/src/features/admin/components/dashboard/quiet-boundary.tsx
+++ b/src/features/admin/components/dashboard/quiet-boundary.tsx
@@ -1,5 +1,5 @@
import { Component, ReactNode } from "react";
-import { Card, Text } from "@mantine/core";
+import { Text } from "@mantine/core";
import { Trans } from "@lingui/react/macro";
interface QuietBoundaryProps {
@@ -20,11 +20,9 @@ export class QuietBoundary extends Component
-
- Unavailable right now
-
-
+
+ Unavailable right now
+
);
}
return this.props.children;
diff --git a/src/features/admin/components/dashboard/section-box.tsx b/src/features/admin/components/dashboard/section-box.tsx
new file mode 100644
index 0000000..6ac0059
--- /dev/null
+++ b/src/features/admin/components/dashboard/section-box.tsx
@@ -0,0 +1,14 @@
+import { ReactNode } from "react";
+import { Box } from "@mantine/core";
+
+export const SectionBox = ({ children }: { children: ReactNode }) => (
+
+ {children}
+
+);
+
+export default SectionBox;
diff --git a/src/features/admin/components/dashboard/status-strip.tsx b/src/features/admin/components/dashboard/status-strip.tsx
new file mode 100644
index 0000000..1c7e13c
--- /dev/null
+++ b/src/features/admin/components/dashboard/status-strip.tsx
@@ -0,0 +1,74 @@
+import { useMemo } from "react";
+import { Group, Stack, Text, UnstyledButton } from "@mantine/core";
+import { useLingui } from "@lingui/react/macro";
+import { useNavigate } from "@tanstack/react-router";
+import {
+ useClientErrorGroups,
+ useRollupRange,
+ useTelemetryRuntimeStatus,
+} from "@/features/telemetry/queries";
+import { isoDay, lastNDays } from "@/features/telemetry/range";
+
+interface StatProps {
+ value: string | number;
+ label: string;
+ alert?: boolean;
+ onClick: () => void;
+}
+
+const Stat = ({ value, label, alert, onClick }: StatProps) => (
+
+
+
+ {value}
+
+
+ {label}
+
+
+
+);
+
+export const StatusStrip = () => {
+ const { t } = useLingui();
+ const navigate = useNavigate();
+ const today = useMemo(() => isoDay(new Date()), []);
+ const month = useMemo(() => lastNDays(30), []);
+
+ const { data: status } = useTelemetryRuntimeStatus();
+ const { data: errorGroups } = useClientErrorGroups({ from: month.from, to: month.to });
+ const { data: rollups } = useRollupRange({
+ metrics: ["server_fn.count"],
+ from: today,
+ to: today,
+ });
+
+ const callsToday = useMemo(
+ () => (rollups ?? []).reduce((sum, row) => sum + row.value, 0),
+ [rollups]
+ );
+ const openErrors = errorGroups?.length ?? 0;
+
+ return (
+
+ navigate({ to: "/admin/telemetry/players" })}
+ />
+ 0}
+ onClick={() => navigate({ to: "/admin/telemetry/errors" })}
+ />
+ navigate({ to: "/admin/telemetry/usage" })}
+ />
+
+ );
+};
+
+export default StatusStrip;
diff --git a/src/features/admin/components/dashboard/tools-list.tsx b/src/features/admin/components/dashboard/tools-list.tsx
index 318d407..c87b32b 100644
--- a/src/features/admin/components/dashboard/tools-list.tsx
+++ b/src/features/admin/components/dashboard/tools-list.tsx
@@ -6,6 +6,7 @@ import {
TrophyIcon,
MedalIcon,
CrownIcon,
+ PulseIcon,
} from "@phosphor-icons/react";
import ListLink from "@/components/list-link";
import ListButton from "@/components/list-button";
@@ -50,6 +51,11 @@ export const ToolsList = () => {
Icon={TrophyIcon}
to="/admin/tournaments"
/>
+
{
- const { t } = useLingui();
- const navigate = useNavigate();
- const { data: tournament } = useCurrentTournament();
-
- if (!tournament) {
- return (
-
-
-
- No tournaments yet
-
- }
- onClick={() => navigate({ to: "/admin/tournaments" })}
- >
- Manage Tournaments
-
-
-
- );
- }
-
- const upcoming = !!tournament.start_time && Date.parse(tournament.start_time) > Date.now();
-
- return (
-
-
-
-
-
- {tournament.name}
-
- {upcoming && (
-
- )}
-
-
-
- }
- fullWidth
- onClick={() => navigate({ to: `/admin/tournaments/run/${tournament.id}` })}
- >
- Run Tournament
-
-
- }
- onClick={() => navigate({ to: `/admin/tournaments/${tournament.id}/enrollment` })}
- >
- Enrollment
-
- }
- onClick={() => navigate({ to: `/admin/tournaments/${tournament.id}` })}
- >
- Manage
-
-
-
-
- );
-};
-
-export default TournamentCard;
diff --git a/src/features/admin/components/dashboard/tournament-section.tsx b/src/features/admin/components/dashboard/tournament-section.tsx
new file mode 100644
index 0000000..a63d7d6
--- /dev/null
+++ b/src/features/admin/components/dashboard/tournament-section.tsx
@@ -0,0 +1,48 @@
+import { SimpleGrid, Text, Title } from "@mantine/core";
+import { useLingui } from "@lingui/react/macro";
+import { useNavigate } from "@tanstack/react-router";
+import { GearIcon, PlayIcon, UsersThreeIcon } from "@phosphor-icons/react";
+import { useCurrentTournament } from "@/features/tournaments/queries";
+import { NavTile } from "@/components/nav-tile";
+import { Countdown } from "@/components/countdown";
+import SectionBox from "./section-box";
+
+export const TournamentSection = () => {
+ const { t } = useLingui();
+ const navigate = useNavigate();
+ const { data: tournament } = useCurrentTournament();
+
+ if (!tournament) return null;
+
+ const upcoming = !!tournament.start_time && Date.parse(tournament.start_time) > Date.now();
+
+ return (
+
+ {tournament.name}
+ {upcoming && (
+
+
+
+ )}
+
+ navigate({ to: `/admin/tournaments/run/${tournament.id}` })}
+ />
+ navigate({ to: `/admin/tournaments/${tournament.id}/enrollment` })}
+ />
+ navigate({ to: `/admin/tournaments/${tournament.id}` })}
+ />
+
+
+ );
+};
+
+export default TournamentSection;
diff --git a/src/features/admin/components/dashboard/usage-card.tsx b/src/features/admin/components/dashboard/usage-card.tsx
deleted file mode 100644
index 56a3dd3..0000000
--- a/src/features/admin/components/dashboard/usage-card.tsx
+++ /dev/null
@@ -1,55 +0,0 @@
-import { useMemo } from "react";
-import { Card, Group, Stack, Text, UnstyledButton } from "@mantine/core";
-import { Trans, useLingui } from "@lingui/react/macro";
-import { useNavigate } from "@tanstack/react-router";
-import { useRollupRange } from "@/features/telemetry/queries";
-import { Sparkline } from "@/features/telemetry/components/charts";
-import { fillDailySeries, lastNDays, listDays } from "@/features/telemetry/range";
-
-export const UsageCard = () => {
- const { t } = useLingui();
- const navigate = useNavigate();
- const range = useMemo(() => lastNDays(7), []);
-
- const { data: rollups } = useRollupRange({
- metrics: ["dau", "page_view.count"],
- from: range.from,
- to: range.to,
- });
-
- const { dauSeries, pageViewSeries } = useMemo(() => {
- const days = listDays(range);
- return {
- dauSeries: fillDailySeries(rollups ?? [], "dau", "", days),
- pageViewSeries: fillDailySeries(rollups ?? [], "page_view.count", "", days),
- };
- }, [rollups, range]);
-
- return (
- navigate({ to: "/admin/telemetry/usage" })}>
-
-
-
-
- Usage, 7 days
-
-
-
-
- Active players
-
-
-
-
-
- Page views
-
-
-
-
-
-
- );
-};
-
-export default UsageCard;
diff --git a/src/features/telemetry/components/charts/stat-tile.tsx b/src/features/telemetry/components/charts/stat-tile.tsx
index 541dde4..d0e22c2 100644
--- a/src/features/telemetry/components/charts/stat-tile.tsx
+++ b/src/features/telemetry/components/charts/stat-tile.tsx
@@ -1,5 +1,5 @@
import { ReactNode } from "react";
-import { Box, Card, Group, Stack, Text, UnstyledButton } from "@mantine/core";
+import { Box, Group, Stack, Text, UnstyledButton } from "@mantine/core";
import Sparkline from "./sparkline";
interface StatTileProps {
@@ -13,12 +13,9 @@ interface StatTileProps {
export const StatTile = ({ label, value, delta, spark, caption, onClick }: StatTileProps) => {
const content = (
-
-
- {label}
-
+
-
+
{value}
{delta !== undefined && delta !== 0 && (
@@ -28,6 +25,9 @@ export const StatTile = ({ label, value, delta, spark, caption, onClick }: StatT
)}
+
+ {label}
+
{caption && {caption}}
{spark && spark.length > 0 && }
@@ -35,19 +35,13 @@ export const StatTile = ({ label, value, delta, spark, caption, onClick }: StatT
if (onClick) {
return (
-
-
- {content}
-
+
+ {content}
);
}
- return (
-
- {content}
-
- );
+ return content;
};
export default StatTile;
diff --git a/src/features/telemetry/components/usage-screen.tsx b/src/features/telemetry/components/usage-screen.tsx
index 3448453..cd9bd42 100644
--- a/src/features/telemetry/components/usage-screen.tsx
+++ b/src/features/telemetry/components/usage-screen.tsx
@@ -2,7 +2,7 @@ import { Suspense, useMemo, useState } from "react";
import { Trans, useLingui } from "@lingui/react/macro";
import {
Badge,
- Card,
+ Divider,
Group,
SegmentedControl,
SimpleGrid,
@@ -10,7 +10,7 @@ import {
Text,
Title,
} from "@mantine/core";
-import { CardSkeleton, StatTileSkeleton } from "@/components/skeletons";
+import { ListSkeleton, StatTileSkeleton } from "@/components/skeletons";
import { useRollupRange } from "../queries";
import { fillDailySeries, lastNDays, latestValue, listDays, sumByDim } from "../range";
import { BarList, Sparkline, StatTile } from "./charts";
@@ -171,30 +171,30 @@ const UsageSections = ({ from, to }: { from: string; to: string }) => {
/>
Sessions} value={sessions.toLocaleString()} />
-
-
-
- Page views by route
-
-
-
-
+
+
+ Page views by route
+
+
+
+
+
Server functions
-
-
-
- Top functions by call count
-
-
-
-
+
+
+ Top functions by call count
+
+
+
+
+
Errors
@@ -206,6 +206,8 @@ const UsageSections = ({ from, to }: { from: string; to: string }) => {
/>
+
+
Vitals
@@ -261,14 +263,13 @@ export const UsageScreen = () => {
-
+
-
-
-
+
+
+
-
-
+
}
>
diff --git a/src/features/tournaments/components/manage-tournament.tsx b/src/features/tournaments/components/manage-tournament.tsx
index a0ce96e..9e9a8c9 100644
--- a/src/features/tournaments/components/manage-tournament.tsx
+++ b/src/features/tournaments/components/manage-tournament.tsx
@@ -1,5 +1,5 @@
import { useTournament } from "../queries";
-import { Box, List } from "@mantine/core";
+import { List } from "@mantine/core";
import ListButton from "@/components/list-button";
import Sheet from "@/components/sheet/sheet";
import TournamentForm from "./tournament-form";
@@ -12,9 +12,7 @@ import {
import { useSheet } from "@/hooks/use-sheet";
import ListLink from "@/components/list-link";
import EditRules from "./edit-rules";
-import Button from "@/components/button";
-import { Trans, useLingui } from "@lingui/react/macro";
-import { useNavigate } from "@tanstack/react-router";
+import { useLingui } from "@lingui/react/macro";
interface ManageTournamentProps {
tournamentId: string;
@@ -22,7 +20,6 @@ interface ManageTournamentProps {
const ManageTournament = ({ tournamentId }: ManageTournamentProps) => {
const { t } = useLingui();
- const navigate = useNavigate();
const { data: tournament } = useTournament(tournamentId);
if (!tournament) throw new Error("Tournament not found.");
@@ -39,18 +36,12 @@ const ManageTournament = ({ tournamentId }: ManageTournamentProps) => {
return (
<>
-
- }
- onClick={() =>
- navigate({ to: `/admin/tournaments/run/${tournamentId}` })
- }
- >
- Run Tournament
-
-
-
+
import("../../upcoming-tournament/rules-content")
);
-interface NavTileProps {
- label: string;
- Icon: Icon;
- onClick?: () => void;
- disabled?: boolean;
-}
+import { NavTile } from "@/components/nav-tile";
-/** A single square-ish nav tile with icon-over-label and press feedback. */
-export const NavTile = ({ label, Icon, onClick, disabled }: NavTileProps) => (
-
-
-
-
-
- {label}
-
-
-);
+export { NavTile };
interface NavGridProps {
tournament: Tournament;
diff --git a/src/locales/de/messages.po b/src/locales/de/messages.po
index 8e97ad2..398e94d 100644
--- a/src/locales/de/messages.po
+++ b/src/locales/de/messages.po
@@ -153,7 +153,7 @@ msgstr "{0}ms"
msgid "{count, plural, one {Players (#)} other {Players (#)}}"
msgstr "{count, plural, one {Spieler (#)} other {Spieler (#)}}"
-#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:134
+#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:115
#: src/features/tournaments/components/upcoming-tournament/team-list-button.tsx:24
msgid "{count, plural, one {Teams (#)} other {Teams (#)}}"
msgstr "{count, plural, one {Teams (#)} other {Teams (#)}}"
@@ -355,7 +355,7 @@ msgstr "2. Frühere Abgabe"
msgid "2nd place"
msgstr "2. Platz"
-#: src/features/telemetry/components/usage-screen.tsx:256
+#: src/features/telemetry/components/usage-screen.tsx:258
msgid "30d"
msgstr "30 T"
@@ -371,7 +371,7 @@ msgstr "3. Platz"
msgid "5s"
msgstr "5 s"
-#: src/features/telemetry/components/usage-screen.tsx:255
+#: src/features/telemetry/components/usage-screen.tsx:257
msgid "7d"
msgstr "7 T"
@@ -420,10 +420,6 @@ msgstr "Konto erfolgreich erstellt!"
msgid "Active device: {0}"
msgstr "Aktives Gerät: {0}"
-#: src/features/admin/components/dashboard/usage-card.tsx:39
-msgid "Active players"
-msgstr "Aktive Spieler"
-
#: src/features/activities/components/activities-table.tsx:159
msgid "Activity Details"
msgstr "Aktivitätsdetails"
@@ -441,7 +437,7 @@ msgid "Add Team"
msgstr "Team hinzufügen"
#: src/app/routes/_authed/admin.tsx:15
-#: src/app/routes/_authed/admin/index.tsx:22
+#: src/app/routes/_authed/admin/index.tsx:27
#: src/features/core/hooks/use-links.ts:37
msgid "Admin"
msgstr "Admin"
@@ -564,7 +560,7 @@ msgstr "Ø Sieg-Marge"
msgid "Award Badge"
msgstr "Abzeichen verleihen"
-#: src/features/admin/components/dashboard/tools-list.tsx:54
+#: src/features/admin/components/dashboard/tools-list.tsx:60
msgid "Award Badges"
msgstr "Abzeichen verleihen"
@@ -598,15 +594,15 @@ msgstr "Zurück"
msgid "Badge awarded to {playerName}"
msgstr "Abzeichen an {playerName} verliehen"
-#: src/features/admin/components/dashboard/tools-list.tsx:85
+#: src/features/admin/components/dashboard/tools-list.tsx:91
msgid "Badge recalculation failed. Check the server logs."
msgstr "Abzeichen-Neuberechnung fehlgeschlagen. Prüfe die Server-Logs."
-#: src/features/admin/components/dashboard/tools-list.tsx:38
+#: src/features/admin/components/dashboard/tools-list.tsx:39
msgid "Badge recalculation is already running"
msgstr "Abzeichen-Neuberechnung läuft bereits"
-#: src/features/admin/components/dashboard/tools-list.tsx:37
+#: src/features/admin/components/dashboard/tools-list.tsx:38
msgid "Badge recalculation started in the background"
msgstr "Abzeichen-Neuberechnung im Hintergrund gestartet"
@@ -631,13 +627,13 @@ msgstr "Zirkus"
msgid "Both teams cannot have 10 cups"
msgstr "Beide Teams können nicht 10 Becher haben"
-#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:106
+#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:87
#: src/features/tournaments/components/upcoming-tournament/index.tsx:151
msgid "Bracket"
msgstr "Turnierbaum"
#: src/app/routes/_authed/admin/preview.tsx:13
-#: src/features/admin/components/dashboard/tools-list.tsx:96
+#: src/features/admin/components/dashboard/tools-list.tsx:102
msgid "Bracket Preview"
msgstr "Turnierbaum-Vorschau"
@@ -654,7 +650,7 @@ msgstr "Brutal"
msgid "CA"
msgstr "CA"
-#: src/features/admin/components/dashboard/now-strip.tsx:52
+#: src/features/admin/components/dashboard/status-strip.tsx:67
msgid "Calls today"
msgstr "Aufrufe heute"
@@ -720,16 +716,12 @@ msgstr "Ausgewählten Spieler entfernen"
msgid "Client error spike"
msgstr "Anstieg von Client-Fehlern"
-#: src/features/admin/components/dashboard/errors-card.tsx:21
-msgid "Client errors"
-msgstr "Client-Fehler"
-
#: src/features/telemetry/components/usage-screen.tsx:203
msgid "Client errors per day"
msgstr "Client-Fehler pro Tag"
#: src/components/sheet/modal.tsx:35
-#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:169
+#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:150
#: src/features/tournaments/components/upcoming-tournament/rules-list-button.tsx:36
msgid "Close"
msgstr "Schließen"
@@ -883,15 +875,10 @@ msgstr "Becher erzielt"
msgid "Custom Hex Code"
msgstr "Benutzerdefinierter Hex-Code"
-#: src/features/admin/components/dashboard/usage-card.tsx:41
#: src/features/telemetry/components/usage-screen.tsx:159
msgid "Daily active players"
msgstr "Täglich aktive Spieler"
-#: src/features/admin/components/dashboard/usage-card.tsx:47
-msgid "Daily page views"
-msgstr "Tägliche Seitenaufrufe"
-
#: src/features/settings/components/color-scheme-picker.tsx:39
msgid "Dark"
msgstr "Dunkel"
@@ -947,7 +934,7 @@ msgstr "Nachfolgende Matches wurden zurückgesetzt, da sich durch die Korrektur
msgid "Duration"
msgstr "Dauer"
-#: src/features/telemetry/components/usage-screen.tsx:233
+#: src/features/telemetry/components/usage-screen.tsx:235
msgid "Duration p50 / p95"
msgstr "Dauer p50 / p95"
@@ -970,12 +957,12 @@ msgstr "Match bearbeiten"
msgid "Edit match score"
msgstr "Spielstand bearbeiten"
-#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:114
+#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:95
msgid "Edit Prediction"
msgstr "Tipp bearbeiten"
-#: src/features/tournaments/components/manage-tournament.tsx:65
-#: src/features/tournaments/components/manage-tournament.tsx:92
+#: src/features/tournaments/components/manage-tournament.tsx:56
+#: src/features/tournaments/components/manage-tournament.tsx:83
msgid "Edit Rules"
msgstr "Regeln bearbeiten"
@@ -984,8 +971,8 @@ msgstr "Regeln bearbeiten"
msgid "Edit Team"
msgstr "Team bearbeiten"
-#: src/features/tournaments/components/manage-tournament.tsx:60
-#: src/features/tournaments/components/manage-tournament.tsx:72
+#: src/features/tournaments/components/manage-tournament.tsx:51
+#: src/features/tournaments/components/manage-tournament.tsx:63
msgid "Edit Tournament"
msgstr "Turnier bearbeiten"
@@ -1048,7 +1035,7 @@ msgstr "Angemeldete Spieler"
#: src/features/tournaments/components/enrollment/enrollment-stats.tsx:28
#: src/features/tournaments/components/enrollment/team-section.tsx:240
-#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:145
+#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:126
#: src/features/tournaments/components/upcoming-tournament/team-list-button.tsx:31
msgid "Enrolled Teams"
msgstr "Angemeldete Teams"
@@ -1058,13 +1045,13 @@ msgid "Enrolling as a free agent adds you to a pool of players looking for teamm
msgstr "Als Free Agent kommst du in einen Pool von Spielern, die noch einen Teampartner suchen."
#: src/app/routes/_authed/admin/tournaments/$id/enrollment.tsx:33
-#: src/features/admin/components/dashboard/tournament-card.tsx:61
+#: src/features/admin/components/dashboard/tournament-section.tsx:34
#: src/features/tournaments/components/upcoming-tournament/enroll-free-agent.tsx:29
#: src/features/tournaments/components/upcoming-tournament/index.tsx:69
msgid "Enrollment"
msgstr "Anmeldung"
-#: src/features/tournaments/components/manage-tournament.tsx:55
+#: src/features/tournaments/components/manage-tournament.tsx:46
msgid "Enrollment & Teams"
msgstr "Anmeldungen & Teams"
@@ -1181,7 +1168,7 @@ msgstr "Aktives Gerät konnte nicht festgelegt werden"
msgid "Failed to set volume"
msgstr "Lautstärke konnte nicht festgelegt werden"
-#: src/features/admin/components/dashboard/tools-list.tsx:41
+#: src/features/admin/components/dashboard/tools-list.tsx:42
msgid "Failed to start badge recalculation"
msgstr "Abzeichen-Neuberechnung konnte nicht gestartet werden"
@@ -1251,7 +1238,7 @@ msgstr "Free-Agent-Anmeldung"
msgid "Free Agents"
msgstr "Free Agents"
-#: src/features/telemetry/components/usage-screen.tsx:226
+#: src/features/telemetry/components/usage-screen.tsx:228
msgid "Function"
msgstr "Funktion"
@@ -1319,7 +1306,7 @@ msgstr "Gruppenphase erfolgreich erstellt!"
msgid "Group Stage Setup"
msgstr "Gruppenphase einrichten"
-#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:98
+#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:79
msgid "Groups"
msgstr "Gruppen"
@@ -1465,7 +1452,7 @@ msgid "Last name must be 3-20 characters long and contain only letters"
msgstr "Der Nachname muss 3-20 Zeichen lang sein und darf nur Buchstaben enthalten"
#. placeholder {0}: migrationStatus.result.totalBadgesEarned
-#: src/features/admin/components/dashboard/tools-list.tsx:73
+#: src/features/admin/components/dashboard/tools-list.tsx:79
msgid "Last recalculation: {0, plural, one {# badge earned} other {# badges earned}}"
msgstr "Letzte Neuberechnung: {0, plural, one {# Abzeichen verdient} other {# Abzeichen verdient}}"
@@ -1530,7 +1517,7 @@ msgstr "S"
msgid "Mainline"
msgstr "Mainline"
-#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:114
+#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:95
msgid "Make Prediction"
msgstr "Tipp abgeben"
@@ -1538,8 +1525,8 @@ msgstr "Tipp abgeben"
msgid "Make Your Prediction"
msgstr "Gib deinen Tipp ab"
-#: src/features/admin/components/dashboard/tournament-card.tsx:68
-#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:89
+#: src/features/admin/components/dashboard/tournament-section.tsx:39
+#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:70
#: src/features/tournaments/components/upcoming-tournament/index.tsx:144
msgid "Manage"
msgstr "Verwalten"
@@ -1554,8 +1541,7 @@ msgid "Manage Team Songs/Logos"
msgstr "Team-Songs/Logos verwalten"
#: src/app/routes/_authed/admin/tournaments/index.tsx:17
-#: src/features/admin/components/dashboard/tools-list.tsx:49
-#: src/features/admin/components/dashboard/tournament-card.tsx:25
+#: src/features/admin/components/dashboard/tools-list.tsx:50
msgid "Manage Tournaments"
msgstr "Turniere verwalten"
@@ -1642,7 +1628,7 @@ msgstr "MAU"
msgid "Me"
msgstr "Ich"
-#: src/features/admin/components/dashboard/tools-list.tsx:59
+#: src/features/admin/components/dashboard/tools-list.tsx:65
msgid "Migrate Badge Progress"
msgstr "Abzeichen-Fortschritt migrieren"
@@ -1748,10 +1734,6 @@ msgstr "Keine aktive Wiedergabe zum Erfassen"
msgid "No Activities Found"
msgstr "Keine Aktivitäten gefunden"
-#: src/features/admin/components/dashboard/activity-feed.tsx:78
-msgid "No activity yet"
-msgstr "Noch keine Aktivität"
-
#: src/features/badges/components/badge-stats-table.tsx:45
msgid "No Badges Available"
msgstr "Keine Abzeichen verfügbar"
@@ -1844,15 +1826,10 @@ msgstr "Keine Teams gefunden, die zu \"{search}\" passen"
msgid "No tournaments found"
msgstr "Keine Turniere gefunden"
-#: src/features/admin/components/dashboard/tournament-card.tsx:18
-msgid "No tournaments yet"
-msgstr "Noch keine Turniere"
-
#: src/features/tournaments/components/tournament-card-list.tsx:40
msgid "No Tournaments Yet"
msgstr "Noch keine Turniere"
-#: src/features/admin/components/dashboard/errors-card.tsx:53
#: src/features/telemetry/components/error-browser/error-browser.tsx:27
msgid "No unresolved errors"
msgstr "Keine offenen Fehler"
@@ -1914,15 +1891,15 @@ msgstr "Sobald du angemeldet bist, kannst du andere Free Agents und ihre Telefon
msgid "One time code"
msgstr "Einmalcode"
-#: src/features/admin/components/dashboard/now-strip.tsx:44
-msgid "Online now"
-msgstr "Gerade online"
+#: src/features/admin/components/dashboard/status-strip.tsx:56
+msgid "Online"
+msgstr "Online"
-#: src/features/admin/components/dashboard/now-strip.tsx:46
+#: src/features/admin/components/dashboard/status-strip.tsx:61
msgid "Open errors"
msgstr "Offene Fehler"
-#: src/features/admin/components/dashboard/tools-list.tsx:89
+#: src/features/admin/components/dashboard/tools-list.tsx:95
msgid "Open Pocketbase"
msgstr "Pocketbase öffnen"
@@ -1972,11 +1949,7 @@ msgstr "p50"
msgid "p95"
msgstr "p95"
-#: src/features/admin/components/dashboard/usage-card.tsx:45
-msgid "Page views"
-msgstr "Seitenaufrufe"
-
-#: src/features/telemetry/components/usage-screen.tsx:177
+#: src/features/telemetry/components/usage-screen.tsx:176
msgid "Page views by route"
msgstr "Seitenaufrufe nach Route"
@@ -2095,7 +2068,7 @@ msgstr "Punktevergabe für Tipps:"
#: src/app/routes/_authed/tournaments/$id.predictions.tsx:23
#: src/features/predictions/components/prediction-leaderboard.tsx:147
-#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:123
+#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:104
msgid "Predictions"
msgstr "Tipps"
@@ -2146,14 +2119,10 @@ msgstr "Reaktionen"
#. placeholder {0}: migrationStatus.playersProcessed
#. placeholder {1}: migrationStatus.totalPlayers
-#: src/features/admin/components/dashboard/tools-list.tsx:66
+#: src/features/admin/components/dashboard/tools-list.tsx:72
msgid "Recalculating badges in the background ({0}/{1})"
msgstr "Abzeichen werden im Hintergrund neu berechnet ({0}/{1})"
-#: src/features/admin/components/dashboard/activity-feed.tsx:34
-msgid "Recent activity"
-msgstr "Letzte Aktivität"
-
#: src/features/tournaments/components/started-tournament/sections/recent-results.tsx:34
msgid "Recently finished"
msgstr "Kürzlich beendet"
@@ -2218,17 +2187,20 @@ msgstr "Runde {0}"
msgid "Route"
msgstr "Route"
-#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:142
+#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:123
#: src/features/tournaments/components/upcoming-tournament/rules-list-button.tsx:23
msgid "Rules"
msgstr "Regeln"
+#: src/features/admin/components/dashboard/tournament-section.tsx:29
+msgid "Run"
+msgstr "Starten"
+
#: src/app/routes/_authed/admin/tournaments/run.$id.tsx:36
msgid "Run {name}"
msgstr "{name} ausführen"
-#: src/features/admin/components/dashboard/tournament-card.tsx:53
-#: src/features/tournaments/components/manage-tournament.tsx:49
+#: src/features/tournaments/components/manage-tournament.tsx:41
msgid "Run Tournament"
msgstr "Turnier starten"
@@ -2517,7 +2489,7 @@ msgstr "Startzeit ist erforderlich"
msgid "Start typing to search..."
msgstr "Tippen, um zu suchen …"
-#: src/features/admin/components/dashboard/tournament-card.tsx:43
+#: src/features/admin/components/dashboard/tournament-section.tsx:24
msgid "Starts in"
msgstr "Beginnt in"
@@ -2639,7 +2611,7 @@ msgstr "Team erfolgreich aktualisiert!"
#: src/features/players/components/profile/skeleton.tsx:75
#: src/features/tournaments/components/profile/index.tsx:32
#: src/features/tournaments/components/profile/skeleton.tsx:89
-#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:137
+#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:118
msgid "Teams"
msgstr "Teams"
@@ -2648,6 +2620,7 @@ msgid "Teams created successfully!"
msgstr "Teams erfolgreich erstellt!"
#: src/app/routes/_authed/admin/telemetry.tsx:20
+#: src/features/admin/components/dashboard/tools-list.tsx:55
msgid "Telemetry"
msgstr "Telemetrie"
@@ -2730,7 +2703,7 @@ msgstr "Die besten {0, plural, one {# Team} other {# Teams}} aus jeder Gruppe ko
msgid "Top {n} advance"
msgstr "Top {n} kommen weiter"
-#: src/features/telemetry/components/usage-screen.tsx:191
+#: src/features/telemetry/components/usage-screen.tsx:190
msgid "Top functions by call count"
msgstr "Top-Funktionen nach Aufrufanzahl"
@@ -2757,7 +2730,7 @@ msgstr "Turnier erfolgreich erstellt!"
msgid "Tournament not found"
msgstr "Turnier nicht gefunden"
-#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:152
+#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:133
#: src/features/tournaments/components/upcoming-tournament/rules-list-button.tsx:25
msgid "Tournament Rules"
msgstr "Turnierregeln"
@@ -2786,7 +2759,7 @@ msgstr "trackId ist für die playTrack-Aktion erforderlich"
msgid "Try the new themes"
msgstr "Probier die neuen Designs aus"
-#: src/features/admin/components/dashboard/quiet-boundary.tsx:26
+#: src/features/admin/components/dashboard/quiet-boundary.tsx:24
msgid "Unavailable right now"
msgstr "Gerade nicht verfügbar"
@@ -2851,10 +2824,6 @@ msgstr "Turnier aktualisieren"
msgid "Usage"
msgstr "Nutzung"
-#: src/features/admin/components/dashboard/usage-card.tsx:34
-msgid "Usage, 7 days"
-msgstr "Nutzung, 7 Tage"
-
#: src/features/activities/components/activities-table.tsx:202
#: src/features/telemetry/components/client-events-table.tsx:146
msgid "User Agent"
@@ -2898,7 +2867,7 @@ msgstr "Tipps ansehen"
msgid "Viewport"
msgstr "Viewport"
-#: src/features/telemetry/components/usage-screen.tsx:211
+#: src/features/telemetry/components/usage-screen.tsx:213
msgid "Vitals"
msgstr "Vitals"
diff --git a/src/locales/en/messages.po b/src/locales/en/messages.po
index 59df585..ecd6291 100644
--- a/src/locales/en/messages.po
+++ b/src/locales/en/messages.po
@@ -153,7 +153,7 @@ msgstr "{0}ms"
msgid "{count, plural, one {Players (#)} other {Players (#)}}"
msgstr "{count, plural, one {Players (#)} other {Players (#)}}"
-#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:134
+#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:115
#: src/features/tournaments/components/upcoming-tournament/team-list-button.tsx:24
msgid "{count, plural, one {Teams (#)} other {Teams (#)}}"
msgstr "{count, plural, one {Teams (#)} other {Teams (#)}}"
@@ -355,7 +355,7 @@ msgstr "2. Earlier submission"
msgid "2nd place"
msgstr "2nd place"
-#: src/features/telemetry/components/usage-screen.tsx:256
+#: src/features/telemetry/components/usage-screen.tsx:258
msgid "30d"
msgstr "30d"
@@ -371,7 +371,7 @@ msgstr "3rd place"
msgid "5s"
msgstr "5s"
-#: src/features/telemetry/components/usage-screen.tsx:255
+#: src/features/telemetry/components/usage-screen.tsx:257
msgid "7d"
msgstr "7d"
@@ -420,10 +420,6 @@ msgstr "Account created successfully!"
msgid "Active device: {0}"
msgstr "Active device: {0}"
-#: src/features/admin/components/dashboard/usage-card.tsx:39
-msgid "Active players"
-msgstr "Active players"
-
#: src/features/activities/components/activities-table.tsx:159
msgid "Activity Details"
msgstr "Activity Details"
@@ -441,7 +437,7 @@ msgid "Add Team"
msgstr "Add Team"
#: src/app/routes/_authed/admin.tsx:15
-#: src/app/routes/_authed/admin/index.tsx:22
+#: src/app/routes/_authed/admin/index.tsx:27
#: src/features/core/hooks/use-links.ts:37
msgid "Admin"
msgstr "Admin"
@@ -564,7 +560,7 @@ msgstr "Avg Win Margin"
msgid "Award Badge"
msgstr "Award Badge"
-#: src/features/admin/components/dashboard/tools-list.tsx:54
+#: src/features/admin/components/dashboard/tools-list.tsx:60
msgid "Award Badges"
msgstr "Award Badges"
@@ -598,15 +594,15 @@ msgstr "Back"
msgid "Badge awarded to {playerName}"
msgstr "Badge awarded to {playerName}"
-#: src/features/admin/components/dashboard/tools-list.tsx:85
+#: src/features/admin/components/dashboard/tools-list.tsx:91
msgid "Badge recalculation failed. Check the server logs."
msgstr "Badge recalculation failed. Check the server logs."
-#: src/features/admin/components/dashboard/tools-list.tsx:38
+#: src/features/admin/components/dashboard/tools-list.tsx:39
msgid "Badge recalculation is already running"
msgstr "Badge recalculation is already running"
-#: src/features/admin/components/dashboard/tools-list.tsx:37
+#: src/features/admin/components/dashboard/tools-list.tsx:38
msgid "Badge recalculation started in the background"
msgstr "Badge recalculation started in the background"
@@ -631,13 +627,13 @@ msgstr "Big Top"
msgid "Both teams cannot have 10 cups"
msgstr "Both teams cannot have 10 cups"
-#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:106
+#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:87
#: src/features/tournaments/components/upcoming-tournament/index.tsx:151
msgid "Bracket"
msgstr "Bracket"
#: src/app/routes/_authed/admin/preview.tsx:13
-#: src/features/admin/components/dashboard/tools-list.tsx:96
+#: src/features/admin/components/dashboard/tools-list.tsx:102
msgid "Bracket Preview"
msgstr "Bracket Preview"
@@ -654,7 +650,7 @@ msgstr "Brutal"
msgid "CA"
msgstr "CA"
-#: src/features/admin/components/dashboard/now-strip.tsx:52
+#: src/features/admin/components/dashboard/status-strip.tsx:67
msgid "Calls today"
msgstr "Calls today"
@@ -720,16 +716,12 @@ msgstr "Clear selected player"
msgid "Client error spike"
msgstr "Client error spike"
-#: src/features/admin/components/dashboard/errors-card.tsx:21
-msgid "Client errors"
-msgstr "Client errors"
-
#: src/features/telemetry/components/usage-screen.tsx:203
msgid "Client errors per day"
msgstr "Client errors per day"
#: src/components/sheet/modal.tsx:35
-#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:169
+#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:150
#: src/features/tournaments/components/upcoming-tournament/rules-list-button.tsx:36
msgid "Close"
msgstr "Close"
@@ -883,15 +875,10 @@ msgstr "Cups Made"
msgid "Custom Hex Code"
msgstr "Custom Hex Code"
-#: src/features/admin/components/dashboard/usage-card.tsx:41
#: src/features/telemetry/components/usage-screen.tsx:159
msgid "Daily active players"
msgstr "Daily active players"
-#: src/features/admin/components/dashboard/usage-card.tsx:47
-msgid "Daily page views"
-msgstr "Daily page views"
-
#: src/features/settings/components/color-scheme-picker.tsx:39
msgid "Dark"
msgstr "Dark"
@@ -947,7 +934,7 @@ msgstr "Downstream matches were reset because the correction changed who advance
msgid "Duration"
msgstr "Duration"
-#: src/features/telemetry/components/usage-screen.tsx:233
+#: src/features/telemetry/components/usage-screen.tsx:235
msgid "Duration p50 / p95"
msgstr "Duration p50 / p95"
@@ -970,12 +957,12 @@ msgstr "Edit Match"
msgid "Edit match score"
msgstr "Edit match score"
-#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:114
+#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:95
msgid "Edit Prediction"
msgstr "Edit Prediction"
-#: src/features/tournaments/components/manage-tournament.tsx:65
-#: src/features/tournaments/components/manage-tournament.tsx:92
+#: src/features/tournaments/components/manage-tournament.tsx:56
+#: src/features/tournaments/components/manage-tournament.tsx:83
msgid "Edit Rules"
msgstr "Edit Rules"
@@ -984,8 +971,8 @@ msgstr "Edit Rules"
msgid "Edit Team"
msgstr "Edit Team"
-#: src/features/tournaments/components/manage-tournament.tsx:60
-#: src/features/tournaments/components/manage-tournament.tsx:72
+#: src/features/tournaments/components/manage-tournament.tsx:51
+#: src/features/tournaments/components/manage-tournament.tsx:63
msgid "Edit Tournament"
msgstr "Edit Tournament"
@@ -1048,7 +1035,7 @@ msgstr "Enrolled Players"
#: src/features/tournaments/components/enrollment/enrollment-stats.tsx:28
#: src/features/tournaments/components/enrollment/team-section.tsx:240
-#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:145
+#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:126
#: src/features/tournaments/components/upcoming-tournament/team-list-button.tsx:31
msgid "Enrolled Teams"
msgstr "Enrolled Teams"
@@ -1058,13 +1045,13 @@ msgid "Enrolling as a free agent adds you to a pool of players looking for teamm
msgstr "Enrolling as a free agent adds you to a pool of players looking for teammates."
#: src/app/routes/_authed/admin/tournaments/$id/enrollment.tsx:33
-#: src/features/admin/components/dashboard/tournament-card.tsx:61
+#: src/features/admin/components/dashboard/tournament-section.tsx:34
#: src/features/tournaments/components/upcoming-tournament/enroll-free-agent.tsx:29
#: src/features/tournaments/components/upcoming-tournament/index.tsx:69
msgid "Enrollment"
msgstr "Enrollment"
-#: src/features/tournaments/components/manage-tournament.tsx:55
+#: src/features/tournaments/components/manage-tournament.tsx:46
msgid "Enrollment & Teams"
msgstr "Enrollment & Teams"
@@ -1181,7 +1168,7 @@ msgstr "Failed to set active device"
msgid "Failed to set volume"
msgstr "Failed to set volume"
-#: src/features/admin/components/dashboard/tools-list.tsx:41
+#: src/features/admin/components/dashboard/tools-list.tsx:42
msgid "Failed to start badge recalculation"
msgstr "Failed to start badge recalculation"
@@ -1251,7 +1238,7 @@ msgstr "Free Agent Enrollment"
msgid "Free Agents"
msgstr "Free Agents"
-#: src/features/telemetry/components/usage-screen.tsx:226
+#: src/features/telemetry/components/usage-screen.tsx:228
msgid "Function"
msgstr "Function"
@@ -1319,7 +1306,7 @@ msgstr "Group stage generated successfully!"
msgid "Group Stage Setup"
msgstr "Group Stage Setup"
-#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:98
+#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:79
msgid "Groups"
msgstr "Groups"
@@ -1465,7 +1452,7 @@ msgid "Last name must be 3-20 characters long and contain only letters"
msgstr "Last name must be 3-20 characters long and contain only letters"
#. placeholder {0}: migrationStatus.result.totalBadgesEarned
-#: src/features/admin/components/dashboard/tools-list.tsx:73
+#: src/features/admin/components/dashboard/tools-list.tsx:79
msgid "Last recalculation: {0, plural, one {# badge earned} other {# badges earned}}"
msgstr "Last recalculation: {0, plural, one {# badge earned} other {# badges earned}}"
@@ -1530,7 +1517,7 @@ msgstr "M"
msgid "Mainline"
msgstr "Mainline"
-#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:114
+#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:95
msgid "Make Prediction"
msgstr "Make Prediction"
@@ -1538,8 +1525,8 @@ msgstr "Make Prediction"
msgid "Make Your Prediction"
msgstr "Make Your Prediction"
-#: src/features/admin/components/dashboard/tournament-card.tsx:68
-#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:89
+#: src/features/admin/components/dashboard/tournament-section.tsx:39
+#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:70
#: src/features/tournaments/components/upcoming-tournament/index.tsx:144
msgid "Manage"
msgstr "Manage"
@@ -1554,8 +1541,7 @@ msgid "Manage Team Songs/Logos"
msgstr "Manage Team Songs/Logos"
#: src/app/routes/_authed/admin/tournaments/index.tsx:17
-#: src/features/admin/components/dashboard/tools-list.tsx:49
-#: src/features/admin/components/dashboard/tournament-card.tsx:25
+#: src/features/admin/components/dashboard/tools-list.tsx:50
msgid "Manage Tournaments"
msgstr "Manage Tournaments"
@@ -1642,7 +1628,7 @@ msgstr "MAU"
msgid "Me"
msgstr "Me"
-#: src/features/admin/components/dashboard/tools-list.tsx:59
+#: src/features/admin/components/dashboard/tools-list.tsx:65
msgid "Migrate Badge Progress"
msgstr "Migrate Badge Progress"
@@ -1748,10 +1734,6 @@ msgstr "No active playback to capture"
msgid "No Activities Found"
msgstr "No Activities Found"
-#: src/features/admin/components/dashboard/activity-feed.tsx:78
-msgid "No activity yet"
-msgstr "No activity yet"
-
#: src/features/badges/components/badge-stats-table.tsx:45
msgid "No Badges Available"
msgstr "No Badges Available"
@@ -1844,15 +1826,10 @@ msgstr "No teams found matching \"{search}\""
msgid "No tournaments found"
msgstr "No tournaments found"
-#: src/features/admin/components/dashboard/tournament-card.tsx:18
-msgid "No tournaments yet"
-msgstr "No tournaments yet"
-
#: src/features/tournaments/components/tournament-card-list.tsx:40
msgid "No Tournaments Yet"
msgstr "No Tournaments Yet"
-#: src/features/admin/components/dashboard/errors-card.tsx:53
#: src/features/telemetry/components/error-browser/error-browser.tsx:27
msgid "No unresolved errors"
msgstr "No unresolved errors"
@@ -1914,15 +1891,15 @@ msgstr "Once enrolled, you can view other free agents and their phone number in
msgid "One time code"
msgstr "One time code"
-#: src/features/admin/components/dashboard/now-strip.tsx:44
-msgid "Online now"
-msgstr "Online now"
+#: src/features/admin/components/dashboard/status-strip.tsx:56
+msgid "Online"
+msgstr "Online"
-#: src/features/admin/components/dashboard/now-strip.tsx:46
+#: src/features/admin/components/dashboard/status-strip.tsx:61
msgid "Open errors"
msgstr "Open errors"
-#: src/features/admin/components/dashboard/tools-list.tsx:89
+#: src/features/admin/components/dashboard/tools-list.tsx:95
msgid "Open Pocketbase"
msgstr "Open Pocketbase"
@@ -1972,11 +1949,7 @@ msgstr "p50"
msgid "p95"
msgstr "p95"
-#: src/features/admin/components/dashboard/usage-card.tsx:45
-msgid "Page views"
-msgstr "Page views"
-
-#: src/features/telemetry/components/usage-screen.tsx:177
+#: src/features/telemetry/components/usage-screen.tsx:176
msgid "Page views by route"
msgstr "Page views by route"
@@ -2095,7 +2068,7 @@ msgstr "Prediction Scoring:"
#: src/app/routes/_authed/tournaments/$id.predictions.tsx:23
#: src/features/predictions/components/prediction-leaderboard.tsx:147
-#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:123
+#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:104
msgid "Predictions"
msgstr "Predictions"
@@ -2146,14 +2119,10 @@ msgstr "Reactions"
#. placeholder {0}: migrationStatus.playersProcessed
#. placeholder {1}: migrationStatus.totalPlayers
-#: src/features/admin/components/dashboard/tools-list.tsx:66
+#: src/features/admin/components/dashboard/tools-list.tsx:72
msgid "Recalculating badges in the background ({0}/{1})"
msgstr "Recalculating badges in the background ({0}/{1})"
-#: src/features/admin/components/dashboard/activity-feed.tsx:34
-msgid "Recent activity"
-msgstr "Recent activity"
-
#: src/features/tournaments/components/started-tournament/sections/recent-results.tsx:34
msgid "Recently finished"
msgstr "Recently finished"
@@ -2218,17 +2187,20 @@ msgstr "Round {0}"
msgid "Route"
msgstr "Route"
-#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:142
+#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:123
#: src/features/tournaments/components/upcoming-tournament/rules-list-button.tsx:23
msgid "Rules"
msgstr "Rules"
+#: src/features/admin/components/dashboard/tournament-section.tsx:29
+msgid "Run"
+msgstr "Run"
+
#: src/app/routes/_authed/admin/tournaments/run.$id.tsx:36
msgid "Run {name}"
msgstr "Run {name}"
-#: src/features/admin/components/dashboard/tournament-card.tsx:53
-#: src/features/tournaments/components/manage-tournament.tsx:49
+#: src/features/tournaments/components/manage-tournament.tsx:41
msgid "Run Tournament"
msgstr "Run Tournament"
@@ -2517,7 +2489,7 @@ msgstr "Start time is required"
msgid "Start typing to search..."
msgstr "Start typing to search..."
-#: src/features/admin/components/dashboard/tournament-card.tsx:43
+#: src/features/admin/components/dashboard/tournament-section.tsx:24
msgid "Starts in"
msgstr "Starts in"
@@ -2639,7 +2611,7 @@ msgstr "Team updated successfully!"
#: src/features/players/components/profile/skeleton.tsx:75
#: src/features/tournaments/components/profile/index.tsx:32
#: src/features/tournaments/components/profile/skeleton.tsx:89
-#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:137
+#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:118
msgid "Teams"
msgstr "Teams"
@@ -2648,6 +2620,7 @@ msgid "Teams created successfully!"
msgstr "Teams created successfully!"
#: src/app/routes/_authed/admin/telemetry.tsx:20
+#: src/features/admin/components/dashboard/tools-list.tsx:55
msgid "Telemetry"
msgstr "Telemetry"
@@ -2730,7 +2703,7 @@ msgstr "Top {0, plural, one {# team} other {# teams}} from each group will advan
msgid "Top {n} advance"
msgstr "Top {n} advance"
-#: src/features/telemetry/components/usage-screen.tsx:191
+#: src/features/telemetry/components/usage-screen.tsx:190
msgid "Top functions by call count"
msgstr "Top functions by call count"
@@ -2757,7 +2730,7 @@ msgstr "Tournament created successfully!"
msgid "Tournament not found"
msgstr "Tournament not found"
-#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:152
+#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:133
#: src/features/tournaments/components/upcoming-tournament/rules-list-button.tsx:25
msgid "Tournament Rules"
msgstr "Tournament Rules"
@@ -2786,7 +2759,7 @@ msgstr "trackId is required for playTrack action"
msgid "Try the new themes"
msgstr "Try the new themes"
-#: src/features/admin/components/dashboard/quiet-boundary.tsx:26
+#: src/features/admin/components/dashboard/quiet-boundary.tsx:24
msgid "Unavailable right now"
msgstr "Unavailable right now"
@@ -2851,10 +2824,6 @@ msgstr "Update Tournament"
msgid "Usage"
msgstr "Usage"
-#: src/features/admin/components/dashboard/usage-card.tsx:34
-msgid "Usage, 7 days"
-msgstr "Usage, 7 days"
-
#: src/features/activities/components/activities-table.tsx:202
#: src/features/telemetry/components/client-events-table.tsx:146
msgid "User Agent"
@@ -2898,7 +2867,7 @@ msgstr "View Predictions"
msgid "Viewport"
msgstr "Viewport"
-#: src/features/telemetry/components/usage-screen.tsx:211
+#: src/features/telemetry/components/usage-screen.tsx:213
msgid "Vitals"
msgstr "Vitals"
diff --git a/src/locales/es/messages.po b/src/locales/es/messages.po
index 29f2cea..78c5655 100644
--- a/src/locales/es/messages.po
+++ b/src/locales/es/messages.po
@@ -153,7 +153,7 @@ msgstr "{0}ms"
msgid "{count, plural, one {Players (#)} other {Players (#)}}"
msgstr "{count, plural, one {Jugadores (#)} other {Jugadores (#)}}"
-#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:134
+#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:115
#: src/features/tournaments/components/upcoming-tournament/team-list-button.tsx:24
msgid "{count, plural, one {Teams (#)} other {Teams (#)}}"
msgstr "{count, plural, one {Equipos (#)} other {Equipos (#)}}"
@@ -355,7 +355,7 @@ msgstr "2. Envío más temprano"
msgid "2nd place"
msgstr "2do lugar"
-#: src/features/telemetry/components/usage-screen.tsx:256
+#: src/features/telemetry/components/usage-screen.tsx:258
msgid "30d"
msgstr "30d"
@@ -371,7 +371,7 @@ msgstr "3er lugar"
msgid "5s"
msgstr "5s"
-#: src/features/telemetry/components/usage-screen.tsx:255
+#: src/features/telemetry/components/usage-screen.tsx:257
msgid "7d"
msgstr "7d"
@@ -420,10 +420,6 @@ msgstr "¡Cuenta creada exitosamente!"
msgid "Active device: {0}"
msgstr "Dispositivo activo: {0}"
-#: src/features/admin/components/dashboard/usage-card.tsx:39
-msgid "Active players"
-msgstr "Jugadores activos"
-
#: src/features/activities/components/activities-table.tsx:159
msgid "Activity Details"
msgstr "Detalles de la actividad"
@@ -441,7 +437,7 @@ msgid "Add Team"
msgstr "Agregar Equipo"
#: src/app/routes/_authed/admin.tsx:15
-#: src/app/routes/_authed/admin/index.tsx:22
+#: src/app/routes/_authed/admin/index.tsx:27
#: src/features/core/hooks/use-links.ts:37
msgid "Admin"
msgstr "Admin"
@@ -564,7 +560,7 @@ msgstr "Prom. Margen de Victoria"
msgid "Award Badge"
msgstr "Otorgar insignia"
-#: src/features/admin/components/dashboard/tools-list.tsx:54
+#: src/features/admin/components/dashboard/tools-list.tsx:60
msgid "Award Badges"
msgstr "Otorgar insignias"
@@ -598,15 +594,15 @@ msgstr "Atrás"
msgid "Badge awarded to {playerName}"
msgstr "Insignia otorgada a {playerName}"
-#: src/features/admin/components/dashboard/tools-list.tsx:85
+#: src/features/admin/components/dashboard/tools-list.tsx:91
msgid "Badge recalculation failed. Check the server logs."
msgstr "Falló el recálculo de insignias. Revisa los registros del servidor."
-#: src/features/admin/components/dashboard/tools-list.tsx:38
+#: src/features/admin/components/dashboard/tools-list.tsx:39
msgid "Badge recalculation is already running"
msgstr "El recálculo de insignias ya está en curso"
-#: src/features/admin/components/dashboard/tools-list.tsx:37
+#: src/features/admin/components/dashboard/tools-list.tsx:38
msgid "Badge recalculation started in the background"
msgstr "Recálculo de insignias iniciado en segundo plano"
@@ -631,13 +627,13 @@ msgstr "Circo"
msgid "Both teams cannot have 10 cups"
msgstr "Los dos equipos no pueden tener 10 vasos"
-#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:106
+#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:87
#: src/features/tournaments/components/upcoming-tournament/index.tsx:151
msgid "Bracket"
msgstr "Bracket"
#: src/app/routes/_authed/admin/preview.tsx:13
-#: src/features/admin/components/dashboard/tools-list.tsx:96
+#: src/features/admin/components/dashboard/tools-list.tsx:102
msgid "Bracket Preview"
msgstr "Vista previa del bracket"
@@ -654,7 +650,7 @@ msgstr "Brutal"
msgid "CA"
msgstr "VC"
-#: src/features/admin/components/dashboard/now-strip.tsx:52
+#: src/features/admin/components/dashboard/status-strip.tsx:67
msgid "Calls today"
msgstr "Llamadas hoy"
@@ -720,16 +716,12 @@ msgstr "Quitar jugador seleccionado"
msgid "Client error spike"
msgstr "Aumento de errores de cliente"
-#: src/features/admin/components/dashboard/errors-card.tsx:21
-msgid "Client errors"
-msgstr "Errores de cliente"
-
#: src/features/telemetry/components/usage-screen.tsx:203
msgid "Client errors per day"
msgstr "Errores de cliente por día"
#: src/components/sheet/modal.tsx:35
-#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:169
+#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:150
#: src/features/tournaments/components/upcoming-tournament/rules-list-button.tsx:36
msgid "Close"
msgstr "Cerrar"
@@ -883,15 +875,10 @@ msgstr "Vasos anotados"
msgid "Custom Hex Code"
msgstr "Código hex personalizado"
-#: src/features/admin/components/dashboard/usage-card.tsx:41
#: src/features/telemetry/components/usage-screen.tsx:159
msgid "Daily active players"
msgstr "Jugadores activos diarios"
-#: src/features/admin/components/dashboard/usage-card.tsx:47
-msgid "Daily page views"
-msgstr "Vistas de página diarias"
-
#: src/features/settings/components/color-scheme-picker.tsx:39
msgid "Dark"
msgstr "Oscuro"
@@ -947,7 +934,7 @@ msgstr "Los partidos posteriores se reiniciaron porque la corrección cambió qu
msgid "Duration"
msgstr "Duración"
-#: src/features/telemetry/components/usage-screen.tsx:233
+#: src/features/telemetry/components/usage-screen.tsx:235
msgid "Duration p50 / p95"
msgstr "Duración p50 / p95"
@@ -970,12 +957,12 @@ msgstr "Editar partido"
msgid "Edit match score"
msgstr "Editar marcador del partido"
-#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:114
+#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:95
msgid "Edit Prediction"
msgstr "Editar predicción"
-#: src/features/tournaments/components/manage-tournament.tsx:65
-#: src/features/tournaments/components/manage-tournament.tsx:92
+#: src/features/tournaments/components/manage-tournament.tsx:56
+#: src/features/tournaments/components/manage-tournament.tsx:83
msgid "Edit Rules"
msgstr "Editar reglas"
@@ -984,8 +971,8 @@ msgstr "Editar reglas"
msgid "Edit Team"
msgstr "Editar equipo"
-#: src/features/tournaments/components/manage-tournament.tsx:60
-#: src/features/tournaments/components/manage-tournament.tsx:72
+#: src/features/tournaments/components/manage-tournament.tsx:51
+#: src/features/tournaments/components/manage-tournament.tsx:63
msgid "Edit Tournament"
msgstr "Editar torneo"
@@ -1048,7 +1035,7 @@ msgstr "Jugadores inscritos"
#: src/features/tournaments/components/enrollment/enrollment-stats.tsx:28
#: src/features/tournaments/components/enrollment/team-section.tsx:240
-#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:145
+#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:126
#: src/features/tournaments/components/upcoming-tournament/team-list-button.tsx:31
msgid "Enrolled Teams"
msgstr "Equipos inscritos"
@@ -1058,13 +1045,13 @@ msgid "Enrolling as a free agent adds you to a pool of players looking for teamm
msgstr "Inscribirte como agente libre te agrega a un grupo de jugadores buscando compañeros de equipo."
#: src/app/routes/_authed/admin/tournaments/$id/enrollment.tsx:33
-#: src/features/admin/components/dashboard/tournament-card.tsx:61
+#: src/features/admin/components/dashboard/tournament-section.tsx:34
#: src/features/tournaments/components/upcoming-tournament/enroll-free-agent.tsx:29
#: src/features/tournaments/components/upcoming-tournament/index.tsx:69
msgid "Enrollment"
msgstr "Inscripción"
-#: src/features/tournaments/components/manage-tournament.tsx:55
+#: src/features/tournaments/components/manage-tournament.tsx:46
msgid "Enrollment & Teams"
msgstr "Inscripción y equipos"
@@ -1181,7 +1168,7 @@ msgstr "No se pudo establecer el dispositivo activo"
msgid "Failed to set volume"
msgstr "No se pudo ajustar el volumen"
-#: src/features/admin/components/dashboard/tools-list.tsx:41
+#: src/features/admin/components/dashboard/tools-list.tsx:42
msgid "Failed to start badge recalculation"
msgstr "No se pudo iniciar el recálculo de insignias"
@@ -1251,7 +1238,7 @@ msgstr "Inscripción de agente libre"
msgid "Free Agents"
msgstr "Agentes libres"
-#: src/features/telemetry/components/usage-screen.tsx:226
+#: src/features/telemetry/components/usage-screen.tsx:228
msgid "Function"
msgstr "Función"
@@ -1319,7 +1306,7 @@ msgstr "¡Fase de grupos generada con éxito!"
msgid "Group Stage Setup"
msgstr "Configuración de la fase de grupos"
-#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:98
+#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:79
msgid "Groups"
msgstr "Grupos"
@@ -1465,7 +1452,7 @@ msgid "Last name must be 3-20 characters long and contain only letters"
msgstr "El apellido debe tener entre 3 y 20 caracteres y contener solo letras"
#. placeholder {0}: migrationStatus.result.totalBadgesEarned
-#: src/features/admin/components/dashboard/tools-list.tsx:73
+#: src/features/admin/components/dashboard/tools-list.tsx:79
msgid "Last recalculation: {0, plural, one {# badge earned} other {# badges earned}}"
msgstr "Último recálculo: {0, plural, one {# insignia obtenida} other {# insignias obtenidas}}"
@@ -1530,7 +1517,7 @@ msgstr "J"
msgid "Mainline"
msgstr "Mainline"
-#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:114
+#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:95
msgid "Make Prediction"
msgstr "Hacer predicción"
@@ -1538,8 +1525,8 @@ msgstr "Hacer predicción"
msgid "Make Your Prediction"
msgstr "Haz tu predicción"
-#: src/features/admin/components/dashboard/tournament-card.tsx:68
-#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:89
+#: src/features/admin/components/dashboard/tournament-section.tsx:39
+#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:70
#: src/features/tournaments/components/upcoming-tournament/index.tsx:144
msgid "Manage"
msgstr "Administrar"
@@ -1554,8 +1541,7 @@ msgid "Manage Team Songs/Logos"
msgstr "Administrar canciones/logos del equipo"
#: src/app/routes/_authed/admin/tournaments/index.tsx:17
-#: src/features/admin/components/dashboard/tools-list.tsx:49
-#: src/features/admin/components/dashboard/tournament-card.tsx:25
+#: src/features/admin/components/dashboard/tools-list.tsx:50
msgid "Manage Tournaments"
msgstr "Administrar torneos"
@@ -1642,7 +1628,7 @@ msgstr "MAU"
msgid "Me"
msgstr "Yo"
-#: src/features/admin/components/dashboard/tools-list.tsx:59
+#: src/features/admin/components/dashboard/tools-list.tsx:65
msgid "Migrate Badge Progress"
msgstr "Migrar progreso de insignias"
@@ -1748,10 +1734,6 @@ msgstr "No hay reproducción activa para capturar"
msgid "No Activities Found"
msgstr "No se encontraron actividades"
-#: src/features/admin/components/dashboard/activity-feed.tsx:78
-msgid "No activity yet"
-msgstr "Aún no hay actividad"
-
#: src/features/badges/components/badge-stats-table.tsx:45
msgid "No Badges Available"
msgstr "No hay insignias disponibles"
@@ -1844,15 +1826,10 @@ msgstr "No se encontraron equipos que coincidan con \"{search}\""
msgid "No tournaments found"
msgstr "No se encontraron torneos"
-#: src/features/admin/components/dashboard/tournament-card.tsx:18
-msgid "No tournaments yet"
-msgstr "Aún no hay torneos"
-
#: src/features/tournaments/components/tournament-card-list.tsx:40
msgid "No Tournaments Yet"
msgstr "Aún no hay torneos"
-#: src/features/admin/components/dashboard/errors-card.tsx:53
#: src/features/telemetry/components/error-browser/error-browser.tsx:27
msgid "No unresolved errors"
msgstr "No hay errores sin resolver"
@@ -1914,15 +1891,15 @@ msgstr "Una vez inscrito, puedes ver a otros agentes libres y su número de tel
msgid "One time code"
msgstr "Código de un solo uso"
-#: src/features/admin/components/dashboard/now-strip.tsx:44
-msgid "Online now"
-msgstr "En línea ahora"
+#: src/features/admin/components/dashboard/status-strip.tsx:56
+msgid "Online"
+msgstr "En línea"
-#: src/features/admin/components/dashboard/now-strip.tsx:46
+#: src/features/admin/components/dashboard/status-strip.tsx:61
msgid "Open errors"
msgstr "Errores abiertos"
-#: src/features/admin/components/dashboard/tools-list.tsx:89
+#: src/features/admin/components/dashboard/tools-list.tsx:95
msgid "Open Pocketbase"
msgstr "Abrir Pocketbase"
@@ -1972,11 +1949,7 @@ msgstr "p50"
msgid "p95"
msgstr "p95"
-#: src/features/admin/components/dashboard/usage-card.tsx:45
-msgid "Page views"
-msgstr "Vistas de página"
-
-#: src/features/telemetry/components/usage-screen.tsx:177
+#: src/features/telemetry/components/usage-screen.tsx:176
msgid "Page views by route"
msgstr "Vistas de página por ruta"
@@ -2095,7 +2068,7 @@ msgstr "Puntuación de predicciones:"
#: src/app/routes/_authed/tournaments/$id.predictions.tsx:23
#: src/features/predictions/components/prediction-leaderboard.tsx:147
-#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:123
+#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:104
msgid "Predictions"
msgstr "Predicciones"
@@ -2146,14 +2119,10 @@ msgstr "Reacciones"
#. placeholder {0}: migrationStatus.playersProcessed
#. placeholder {1}: migrationStatus.totalPlayers
-#: src/features/admin/components/dashboard/tools-list.tsx:66
+#: src/features/admin/components/dashboard/tools-list.tsx:72
msgid "Recalculating badges in the background ({0}/{1})"
msgstr "Recalculando insignias en segundo plano ({0}/{1})"
-#: src/features/admin/components/dashboard/activity-feed.tsx:34
-msgid "Recent activity"
-msgstr "Actividad reciente"
-
#: src/features/tournaments/components/started-tournament/sections/recent-results.tsx:34
msgid "Recently finished"
msgstr "Recién terminados"
@@ -2218,17 +2187,20 @@ msgstr "Ronda {0}"
msgid "Route"
msgstr "Ruta"
-#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:142
+#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:123
#: src/features/tournaments/components/upcoming-tournament/rules-list-button.tsx:23
msgid "Rules"
msgstr "Reglas"
+#: src/features/admin/components/dashboard/tournament-section.tsx:29
+msgid "Run"
+msgstr "Iniciar"
+
#: src/app/routes/_authed/admin/tournaments/run.$id.tsx:36
msgid "Run {name}"
msgstr "Ejecutar {name}"
-#: src/features/admin/components/dashboard/tournament-card.tsx:53
-#: src/features/tournaments/components/manage-tournament.tsx:49
+#: src/features/tournaments/components/manage-tournament.tsx:41
msgid "Run Tournament"
msgstr "Iniciar torneo"
@@ -2517,7 +2489,7 @@ msgstr "Se requiere la hora de inicio"
msgid "Start typing to search..."
msgstr "Empieza a escribir para buscar..."
-#: src/features/admin/components/dashboard/tournament-card.tsx:43
+#: src/features/admin/components/dashboard/tournament-section.tsx:24
msgid "Starts in"
msgstr "Comienza en"
@@ -2639,7 +2611,7 @@ msgstr "¡Equipo actualizado exitosamente!"
#: src/features/players/components/profile/skeleton.tsx:75
#: src/features/tournaments/components/profile/index.tsx:32
#: src/features/tournaments/components/profile/skeleton.tsx:89
-#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:137
+#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:118
msgid "Teams"
msgstr "Equipos"
@@ -2648,6 +2620,7 @@ msgid "Teams created successfully!"
msgstr "¡Equipos creados exitosamente!"
#: src/app/routes/_authed/admin/telemetry.tsx:20
+#: src/features/admin/components/dashboard/tools-list.tsx:55
msgid "Telemetry"
msgstr "Telemetría"
@@ -2730,7 +2703,7 @@ msgstr "{0, plural, one {El mejor equipo de cada grupo avanzará} other {Los mej
msgid "Top {n} advance"
msgstr "Los mejores {n} avanzan"
-#: src/features/telemetry/components/usage-screen.tsx:191
+#: src/features/telemetry/components/usage-screen.tsx:190
msgid "Top functions by call count"
msgstr "Funciones principales por cantidad de llamadas"
@@ -2757,7 +2730,7 @@ msgstr "¡Torneo creado exitosamente!"
msgid "Tournament not found"
msgstr "Torneo no encontrado"
-#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:152
+#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:133
#: src/features/tournaments/components/upcoming-tournament/rules-list-button.tsx:25
msgid "Tournament Rules"
msgstr "Reglas del torneo"
@@ -2786,7 +2759,7 @@ msgstr "Se requiere trackId para la acción playTrack"
msgid "Try the new themes"
msgstr "Prueba los nuevos temas"
-#: src/features/admin/components/dashboard/quiet-boundary.tsx:26
+#: src/features/admin/components/dashboard/quiet-boundary.tsx:24
msgid "Unavailable right now"
msgstr "No disponible por ahora"
@@ -2851,10 +2824,6 @@ msgstr "Actualizar torneo"
msgid "Usage"
msgstr "Uso"
-#: src/features/admin/components/dashboard/usage-card.tsx:34
-msgid "Usage, 7 days"
-msgstr "Uso, 7 días"
-
#: src/features/activities/components/activities-table.tsx:202
#: src/features/telemetry/components/client-events-table.tsx:146
msgid "User Agent"
@@ -2898,7 +2867,7 @@ msgstr "Ver predicciones"
msgid "Viewport"
msgstr "Viewport"
-#: src/features/telemetry/components/usage-screen.tsx:211
+#: src/features/telemetry/components/usage-screen.tsx:213
msgid "Vitals"
msgstr "Vitales"
diff --git a/src/locales/ja/messages.po b/src/locales/ja/messages.po
index 329fa3a..b46b4ac 100644
--- a/src/locales/ja/messages.po
+++ b/src/locales/ja/messages.po
@@ -153,7 +153,7 @@ msgstr "{0}ms"
msgid "{count, plural, one {Players (#)} other {Players (#)}}"
msgstr "{count, plural, one {プレイヤー(#)} other {プレイヤー(#)}}"
-#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:134
+#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:115
#: src/features/tournaments/components/upcoming-tournament/team-list-button.tsx:24
msgid "{count, plural, one {Teams (#)} other {Teams (#)}}"
msgstr "{count, plural, one {チーム(#)} other {チーム(#)}}"
@@ -355,7 +355,7 @@ msgstr "2. 早い提出"
msgid "2nd place"
msgstr "2位"
-#: src/features/telemetry/components/usage-screen.tsx:256
+#: src/features/telemetry/components/usage-screen.tsx:258
msgid "30d"
msgstr "30日"
@@ -371,7 +371,7 @@ msgstr "3位"
msgid "5s"
msgstr "5秒"
-#: src/features/telemetry/components/usage-screen.tsx:255
+#: src/features/telemetry/components/usage-screen.tsx:257
msgid "7d"
msgstr "7日"
@@ -420,10 +420,6 @@ msgstr "アカウントが作成されました!"
msgid "Active device: {0}"
msgstr "アクティブなデバイス: {0}"
-#: src/features/admin/components/dashboard/usage-card.tsx:39
-msgid "Active players"
-msgstr "アクティブなプレイヤー"
-
#: src/features/activities/components/activities-table.tsx:159
msgid "Activity Details"
msgstr "アクティビティの詳細"
@@ -441,7 +437,7 @@ msgid "Add Team"
msgstr "チームを追加"
#: src/app/routes/_authed/admin.tsx:15
-#: src/app/routes/_authed/admin/index.tsx:22
+#: src/app/routes/_authed/admin/index.tsx:27
#: src/features/core/hooks/use-links.ts:37
msgid "Admin"
msgstr "管理者"
@@ -564,7 +560,7 @@ msgstr "平均勝差"
msgid "Award Badge"
msgstr "バッジを付与"
-#: src/features/admin/components/dashboard/tools-list.tsx:54
+#: src/features/admin/components/dashboard/tools-list.tsx:60
msgid "Award Badges"
msgstr "バッジを付与"
@@ -598,15 +594,15 @@ msgstr "戻る"
msgid "Badge awarded to {playerName}"
msgstr "{playerName}にバッジを付与しました"
-#: src/features/admin/components/dashboard/tools-list.tsx:85
+#: src/features/admin/components/dashboard/tools-list.tsx:91
msgid "Badge recalculation failed. Check the server logs."
msgstr "バッジの再計算に失敗しました。サーバーログを確認してください。"
-#: src/features/admin/components/dashboard/tools-list.tsx:38
+#: src/features/admin/components/dashboard/tools-list.tsx:39
msgid "Badge recalculation is already running"
msgstr "バッジの再計算はすでに実行中です"
-#: src/features/admin/components/dashboard/tools-list.tsx:37
+#: src/features/admin/components/dashboard/tools-list.tsx:38
msgid "Badge recalculation started in the background"
msgstr "バックグラウンドでバッジの再計算を開始しました"
@@ -631,13 +627,13 @@ msgstr "サーカス"
msgid "Both teams cannot have 10 cups"
msgstr "両チーム同時に10カップにはなりません"
-#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:106
+#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:87
#: src/features/tournaments/components/upcoming-tournament/index.tsx:151
msgid "Bracket"
msgstr "ブラケット"
#: src/app/routes/_authed/admin/preview.tsx:13
-#: src/features/admin/components/dashboard/tools-list.tsx:96
+#: src/features/admin/components/dashboard/tools-list.tsx:102
msgid "Bracket Preview"
msgstr "ブラケットプレビュー"
@@ -654,7 +650,7 @@ msgstr "ブルータル"
msgid "CA"
msgstr "CA"
-#: src/features/admin/components/dashboard/now-strip.tsx:52
+#: src/features/admin/components/dashboard/status-strip.tsx:67
msgid "Calls today"
msgstr "本日の呼び出し数"
@@ -720,16 +716,12 @@ msgstr "選択したプレイヤーを解除"
msgid "Client error spike"
msgstr "クライアントエラー急増"
-#: src/features/admin/components/dashboard/errors-card.tsx:21
-msgid "Client errors"
-msgstr "クライアントエラー"
-
#: src/features/telemetry/components/usage-screen.tsx:203
msgid "Client errors per day"
msgstr "1日あたりのクライアントエラー数"
#: src/components/sheet/modal.tsx:35
-#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:169
+#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:150
#: src/features/tournaments/components/upcoming-tournament/rules-list-button.tsx:36
msgid "Close"
msgstr "閉じる"
@@ -883,15 +875,10 @@ msgstr "決めたカップ"
msgid "Custom Hex Code"
msgstr "カスタムHEXコード"
-#: src/features/admin/components/dashboard/usage-card.tsx:41
#: src/features/telemetry/components/usage-screen.tsx:159
msgid "Daily active players"
msgstr "デイリーアクティブプレイヤー数"
-#: src/features/admin/components/dashboard/usage-card.tsx:47
-msgid "Daily page views"
-msgstr "1日あたりのページビュー数"
-
#: src/features/settings/components/color-scheme-picker.tsx:39
msgid "Dark"
msgstr "ダーク"
@@ -947,7 +934,7 @@ msgstr "修正により勝ち上がりの相手が変わったため、以降の
msgid "Duration"
msgstr "所要時間"
-#: src/features/telemetry/components/usage-screen.tsx:233
+#: src/features/telemetry/components/usage-screen.tsx:235
msgid "Duration p50 / p95"
msgstr "所要時間 p50 / p95"
@@ -970,12 +957,12 @@ msgstr "試合を編集"
msgid "Edit match score"
msgstr "試合スコアを編集"
-#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:114
+#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:95
msgid "Edit Prediction"
msgstr "予想を編集"
-#: src/features/tournaments/components/manage-tournament.tsx:65
-#: src/features/tournaments/components/manage-tournament.tsx:92
+#: src/features/tournaments/components/manage-tournament.tsx:56
+#: src/features/tournaments/components/manage-tournament.tsx:83
msgid "Edit Rules"
msgstr "ルールを編集"
@@ -984,8 +971,8 @@ msgstr "ルールを編集"
msgid "Edit Team"
msgstr "チームを編集"
-#: src/features/tournaments/components/manage-tournament.tsx:60
-#: src/features/tournaments/components/manage-tournament.tsx:72
+#: src/features/tournaments/components/manage-tournament.tsx:51
+#: src/features/tournaments/components/manage-tournament.tsx:63
msgid "Edit Tournament"
msgstr "トーナメントを編集"
@@ -1048,7 +1035,7 @@ msgstr "登録済みプレイヤー"
#: src/features/tournaments/components/enrollment/enrollment-stats.tsx:28
#: src/features/tournaments/components/enrollment/team-section.tsx:240
-#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:145
+#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:126
#: src/features/tournaments/components/upcoming-tournament/team-list-button.tsx:31
msgid "Enrolled Teams"
msgstr "登録済みチーム"
@@ -1058,13 +1045,13 @@ msgid "Enrolling as a free agent adds you to a pool of players looking for teamm
msgstr "フリーエージェントとして登録すると、チームメイトを探しているプレイヤーのプールに追加されます。"
#: src/app/routes/_authed/admin/tournaments/$id/enrollment.tsx:33
-#: src/features/admin/components/dashboard/tournament-card.tsx:61
+#: src/features/admin/components/dashboard/tournament-section.tsx:34
#: src/features/tournaments/components/upcoming-tournament/enroll-free-agent.tsx:29
#: src/features/tournaments/components/upcoming-tournament/index.tsx:69
msgid "Enrollment"
msgstr "参加登録"
-#: src/features/tournaments/components/manage-tournament.tsx:55
+#: src/features/tournaments/components/manage-tournament.tsx:46
msgid "Enrollment & Teams"
msgstr "参加登録とチーム"
@@ -1181,7 +1168,7 @@ msgstr "アクティブなデバイスの設定に失敗しました"
msgid "Failed to set volume"
msgstr "音量の設定に失敗しました"
-#: src/features/admin/components/dashboard/tools-list.tsx:41
+#: src/features/admin/components/dashboard/tools-list.tsx:42
msgid "Failed to start badge recalculation"
msgstr "バッジの再計算を開始できませんでした"
@@ -1251,7 +1238,7 @@ msgstr "フリーエージェント登録"
msgid "Free Agents"
msgstr "フリーエージェント"
-#: src/features/telemetry/components/usage-screen.tsx:226
+#: src/features/telemetry/components/usage-screen.tsx:228
msgid "Function"
msgstr "関数"
@@ -1319,7 +1306,7 @@ msgstr "グループステージを生成しました!"
msgid "Group Stage Setup"
msgstr "グループステージ設定"
-#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:98
+#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:79
msgid "Groups"
msgstr "グループ"
@@ -1465,7 +1452,7 @@ msgid "Last name must be 3-20 characters long and contain only letters"
msgstr "姓は3〜20文字の英字のみで入力してください"
#. placeholder {0}: migrationStatus.result.totalBadgesEarned
-#: src/features/admin/components/dashboard/tools-list.tsx:73
+#: src/features/admin/components/dashboard/tools-list.tsx:79
msgid "Last recalculation: {0, plural, one {# badge earned} other {# badges earned}}"
msgstr "前回の再計算:{0, plural, one {# 個のバッジを獲得} other {# 個のバッジを獲得}}"
@@ -1530,7 +1517,7 @@ msgstr "M"
msgid "Mainline"
msgstr "メインライン"
-#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:114
+#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:95
msgid "Make Prediction"
msgstr "予想する"
@@ -1538,8 +1525,8 @@ msgstr "予想する"
msgid "Make Your Prediction"
msgstr "予想を入力"
-#: src/features/admin/components/dashboard/tournament-card.tsx:68
-#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:89
+#: src/features/admin/components/dashboard/tournament-section.tsx:39
+#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:70
#: src/features/tournaments/components/upcoming-tournament/index.tsx:144
msgid "Manage"
msgstr "管理"
@@ -1554,8 +1541,7 @@ msgid "Manage Team Songs/Logos"
msgstr "チームの曲・ロゴを管理"
#: src/app/routes/_authed/admin/tournaments/index.tsx:17
-#: src/features/admin/components/dashboard/tools-list.tsx:49
-#: src/features/admin/components/dashboard/tournament-card.tsx:25
+#: src/features/admin/components/dashboard/tools-list.tsx:50
msgid "Manage Tournaments"
msgstr "トーナメント管理"
@@ -1642,7 +1628,7 @@ msgstr "MAU"
msgid "Me"
msgstr "自分"
-#: src/features/admin/components/dashboard/tools-list.tsx:59
+#: src/features/admin/components/dashboard/tools-list.tsx:65
msgid "Migrate Badge Progress"
msgstr "バッジ進捗を移行"
@@ -1748,10 +1734,6 @@ msgstr "キャプチャする再生中のプレイバックがありません"
msgid "No Activities Found"
msgstr "アクティビティが見つかりません"
-#: src/features/admin/components/dashboard/activity-feed.tsx:78
-msgid "No activity yet"
-msgstr "まだアクティビティがありません"
-
#: src/features/badges/components/badge-stats-table.tsx:45
msgid "No Badges Available"
msgstr "利用可能なバッジがありません"
@@ -1844,15 +1826,10 @@ msgstr "「{search}」に一致するチームが見つかりません"
msgid "No tournaments found"
msgstr "トーナメントが見つかりません"
-#: src/features/admin/components/dashboard/tournament-card.tsx:18
-msgid "No tournaments yet"
-msgstr "トーナメントはまだありません"
-
#: src/features/tournaments/components/tournament-card-list.tsx:40
msgid "No Tournaments Yet"
msgstr "トーナメントはまだありません"
-#: src/features/admin/components/dashboard/errors-card.tsx:53
#: src/features/telemetry/components/error-browser/error-browser.tsx:27
msgid "No unresolved errors"
msgstr "未解決のエラーはありません"
@@ -1914,15 +1891,15 @@ msgstr "登録が完了すると、他のフリーエージェントとその電
msgid "One time code"
msgstr "ワンタイムコード"
-#: src/features/admin/components/dashboard/now-strip.tsx:44
-msgid "Online now"
-msgstr "現在オンライン"
+#: src/features/admin/components/dashboard/status-strip.tsx:56
+msgid "Online"
+msgstr "オンライン"
-#: src/features/admin/components/dashboard/now-strip.tsx:46
+#: src/features/admin/components/dashboard/status-strip.tsx:61
msgid "Open errors"
msgstr "未解決のエラー"
-#: src/features/admin/components/dashboard/tools-list.tsx:89
+#: src/features/admin/components/dashboard/tools-list.tsx:95
msgid "Open Pocketbase"
msgstr "Pocketbaseを開く"
@@ -1972,11 +1949,7 @@ msgstr "p50"
msgid "p95"
msgstr "p95"
-#: src/features/admin/components/dashboard/usage-card.tsx:45
-msgid "Page views"
-msgstr "ページビュー数"
-
-#: src/features/telemetry/components/usage-screen.tsx:177
+#: src/features/telemetry/components/usage-screen.tsx:176
msgid "Page views by route"
msgstr "ルート別ページビュー数"
@@ -2095,7 +2068,7 @@ msgstr "予想の得点方式:"
#: src/app/routes/_authed/tournaments/$id.predictions.tsx:23
#: src/features/predictions/components/prediction-leaderboard.tsx:147
-#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:123
+#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:104
msgid "Predictions"
msgstr "予想"
@@ -2146,14 +2119,10 @@ msgstr "リアクション"
#. placeholder {0}: migrationStatus.playersProcessed
#. placeholder {1}: migrationStatus.totalPlayers
-#: src/features/admin/components/dashboard/tools-list.tsx:66
+#: src/features/admin/components/dashboard/tools-list.tsx:72
msgid "Recalculating badges in the background ({0}/{1})"
msgstr "バックグラウンドでバッジを再計算中({0}/{1})"
-#: src/features/admin/components/dashboard/activity-feed.tsx:34
-msgid "Recent activity"
-msgstr "最近のアクティビティ"
-
#: src/features/tournaments/components/started-tournament/sections/recent-results.tsx:34
msgid "Recently finished"
msgstr "最近終了した試合"
@@ -2218,17 +2187,20 @@ msgstr "ラウンド{0}"
msgid "Route"
msgstr "ルート"
-#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:142
+#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:123
#: src/features/tournaments/components/upcoming-tournament/rules-list-button.tsx:23
msgid "Rules"
msgstr "ルール"
+#: src/features/admin/components/dashboard/tournament-section.tsx:29
+msgid "Run"
+msgstr "実行"
+
#: src/app/routes/_authed/admin/tournaments/run.$id.tsx:36
msgid "Run {name}"
msgstr "{name}を実行"
-#: src/features/admin/components/dashboard/tournament-card.tsx:53
-#: src/features/tournaments/components/manage-tournament.tsx:49
+#: src/features/tournaments/components/manage-tournament.tsx:41
msgid "Run Tournament"
msgstr "トーナメントを実行"
@@ -2517,7 +2489,7 @@ msgstr "開始時間を入力してください"
msgid "Start typing to search..."
msgstr "入力して検索..."
-#: src/features/admin/components/dashboard/tournament-card.tsx:43
+#: src/features/admin/components/dashboard/tournament-section.tsx:24
msgid "Starts in"
msgstr "開始まで"
@@ -2639,7 +2611,7 @@ msgstr "チームを更新しました!"
#: src/features/players/components/profile/skeleton.tsx:75
#: src/features/tournaments/components/profile/index.tsx:32
#: src/features/tournaments/components/profile/skeleton.tsx:89
-#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:137
+#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:118
msgid "Teams"
msgstr "チーム"
@@ -2648,6 +2620,7 @@ msgid "Teams created successfully!"
msgstr "チームを作成しました!"
#: src/app/routes/_authed/admin/telemetry.tsx:20
+#: src/features/admin/components/dashboard/tools-list.tsx:55
msgid "Telemetry"
msgstr "テレメトリー"
@@ -2730,7 +2703,7 @@ msgstr "各グループの上位{0, plural, one {#チーム} other {#チーム}}
msgid "Top {n} advance"
msgstr "上位{n}チームが勝ち上がり"
-#: src/features/telemetry/components/usage-screen.tsx:191
+#: src/features/telemetry/components/usage-screen.tsx:190
msgid "Top functions by call count"
msgstr "呼び出し数の多い関数"
@@ -2757,7 +2730,7 @@ msgstr "トーナメントを作成しました!"
msgid "Tournament not found"
msgstr "トーナメントが見つかりません"
-#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:152
+#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:133
#: src/features/tournaments/components/upcoming-tournament/rules-list-button.tsx:25
msgid "Tournament Rules"
msgstr "トーナメントルール"
@@ -2786,7 +2759,7 @@ msgstr "playTrackアクションにはtrackIdが必要です"
msgid "Try the new themes"
msgstr "新しいテーマを試してみましょう"
-#: src/features/admin/components/dashboard/quiet-boundary.tsx:26
+#: src/features/admin/components/dashboard/quiet-boundary.tsx:24
msgid "Unavailable right now"
msgstr "現在利用できません"
@@ -2851,10 +2824,6 @@ msgstr "トーナメントを更新"
msgid "Usage"
msgstr "利用状況"
-#: src/features/admin/components/dashboard/usage-card.tsx:34
-msgid "Usage, 7 days"
-msgstr "利用状況(7日間)"
-
#: src/features/activities/components/activities-table.tsx:202
#: src/features/telemetry/components/client-events-table.tsx:146
msgid "User Agent"
@@ -2898,7 +2867,7 @@ msgstr "予想を見る"
msgid "Viewport"
msgstr "ビューポート"
-#: src/features/telemetry/components/usage-screen.tsx:211
+#: src/features/telemetry/components/usage-screen.tsx:213
msgid "Vitals"
msgstr "バイタル"