diff --git a/apps/planner/app/components/ExportButton.tsx b/apps/planner/app/components/ExportButton.tsx index 87ceabc..13fbe08 100644 --- a/apps/planner/app/components/ExportButton.tsx +++ b/apps/planner/app/components/ExportButton.tsx @@ -52,45 +52,45 @@ export function ExportButton({ yjs }: { yjs: YjsState }) { const hasMultipleDays = hasDayBreaks(yjs); + const item = + "block w-full px-3 py-1.5 text-left transition-colors hover:bg-bg-subtle"; + const split = + "h-7 border border-border bg-bg-raised text-sm font-medium text-text-hi transition-colors hover:bg-bg-subtle focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent"; + return (
{open && ( -
- - {hasMultipleDays && ( - )}
diff --git a/apps/planner/app/components/SaveToJournalButton.tsx b/apps/planner/app/components/SaveToJournalButton.tsx index d464cf4..217d6e7 100644 --- a/apps/planner/app/components/SaveToJournalButton.tsx +++ b/apps/planner/app/components/SaveToJournalButton.tsx @@ -1,5 +1,6 @@ import { useState, useCallback } from "react"; import { useTranslation } from "react-i18next"; +import { Button } from "@trails-cool/ui"; import { computeSurfaceBreakdown } from "@trails-cool/map-core"; import type { YjsState } from "~/lib/use-yjs"; import { buildPlanGpx } from "~/lib/gpx-export"; @@ -64,17 +65,16 @@ export function SaveToJournalButton({ yjs, sessionId, returnUrl }: SaveToJournal return (
- - {saved && {t("saved")}} - {error && {error}} + + {saved && {t("saved")}} + {error && {error}} {saved && returnUrl && ( - + {t("returnToJournal")} )} diff --git a/e2e/planner-routing.test.ts b/e2e/planner-routing.test.ts index e1d38af..2ea7b5a 100644 --- a/e2e/planner-routing.test.ts +++ b/e2e/planner-routing.test.ts @@ -91,7 +91,7 @@ test.describe("Planner – routing", () => { const sidebar = page.locator("aside"); await expect(sidebar.getByText("Refill water here")).toBeVisible({ timeout: 5000 }); - await page.getByRole("button", { name: "▾" }).click(); + await page.getByRole("button", { name: "Export options" }).click(); await expect(page.getByText("Export Plan")).toBeVisible({ timeout: 3000 }); const downloadPromise = page.waitForEvent("download"); await page.getByText("Export Plan").first().click(); diff --git a/packages/i18n/src/locales/de.ts b/packages/i18n/src/locales/de.ts index 8be6edf..1f9ae3a 100644 --- a/packages/i18n/src/locales/de.ts +++ b/packages/i18n/src/locales/de.ts @@ -18,6 +18,7 @@ export default { newSession: "Neue Sitzung", saveRoute: "Route speichern", exportGpx: "GPX exportieren", + exportOptions: "Export-Optionen", exportRoute: "Route exportieren", exportRouteDesc: "GPX-Track für jede App", exportPlan: "Plan exportieren", diff --git a/packages/i18n/src/locales/en.ts b/packages/i18n/src/locales/en.ts index d897873..4389b79 100644 --- a/packages/i18n/src/locales/en.ts +++ b/packages/i18n/src/locales/en.ts @@ -18,6 +18,7 @@ export default { newSession: "New Session", saveRoute: "Save Route", exportGpx: "Export GPX", + exportOptions: "Export options", exportRoute: "Export Route", exportRouteDesc: "Clean GPX track for any app", exportPlan: "Export Plan", diff --git a/packages/ui/src/theme.css b/packages/ui/src/theme.css index b3135d4..8bb178d 100644 --- a/packages/ui/src/theme.css +++ b/packages/ui/src/theme.css @@ -41,6 +41,7 @@ --color-stop-border: rgba(139, 109, 58, 0.25); /* ── Danger / no-go ── */ + --color-danger: #a03c3c; /* solid danger — error text, matches the no-go hue */ --color-nogo: rgba(160, 60, 60, 0.12); --color-nogo-border: rgba(160, 60, 60, 0.3);