feat(strommix): hero variant, 24h sparkline, trend, polishing
- New "hero" variant between compact and full: pct + status + sparkline + trend, no sub-cards or accordion - 24h Wind+Solar sparkline below hero pct, accent-colored - Trend arrow vs previous hour with delta percentage points - Polling pauses on tab hidden, refetches on visibility return if last fetch >5min old - Skeleton loader replaces "Lade…" text (matches final layout) - Retry button on error state (silent vs explicit fetch) - Stale-flag now prominent red badge in header bar - Stand-time wrapped in <time datetime title> for full-date hover - loadMw=0 falls back to last hourly slot instead of red error - Negative-price banner replaces standalone price card (dedup) - Production breakdown grid: clean auto/1fr label-value alignment - Print CSS: details auto-open, chevrons hidden - All German strings moved to translation keys - STROMMIX_DEFAULT_THRESHOLDS const as single source for buckets Includes data-block="LiveStrommix" attribute for the new identifier scheme + new RenewableSparkline.svelte component. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -114,6 +114,28 @@ const TRANSLATION_KEYS = [
|
||||
"calendar_time_suffix",
|
||||
"calendar_select_day",
|
||||
"calendar_next_events",
|
||||
"calendar_all_upcoming",
|
||||
"calendar_today",
|
||||
"calendar_tomorrow",
|
||||
"calendar_in_days", // {{n}}
|
||||
"calendar_no_future_events",
|
||||
"calendar_clear_filter",
|
||||
"calendar_event_count", // {{n}}
|
||||
"calendar_add_to_google",
|
||||
"calendar_download_ics",
|
||||
"calendar_open_maps",
|
||||
"calendar_show_past",
|
||||
"calendar_hide_past",
|
||||
"calendar_past_events",
|
||||
"calendar_filter_by_tag",
|
||||
"calendar_all_tags",
|
||||
"calendar_multi_day_range", // {{from}}, {{to}}
|
||||
"calendar_starts_in", // {{n}}
|
||||
"calendar_starts_in_minutes", // {{n}}
|
||||
"calendar_running_now",
|
||||
"calendar_jump_to_month",
|
||||
"calendar_today_marker",
|
||||
"calendar_untitled",
|
||||
"calendar_show_more",
|
||||
"calendar_show_less",
|
||||
"post_overview_all",
|
||||
@@ -207,6 +229,17 @@ const TRANSLATION_KEYS = [
|
||||
// Compact variant for homepage / sidebar.
|
||||
"strommix_compact_label", // {{pct}}, {{status}}
|
||||
"strommix_compact_more",
|
||||
// Akkordeon + history-panel headings.
|
||||
"strommix_history_summary",
|
||||
"strommix_residual_today_title",
|
||||
"strommix_residual_today_desc",
|
||||
// Loading / error UX.
|
||||
"strommix_retry",
|
||||
"strommix_trend_up", // {{delta}}
|
||||
"strommix_trend_down", // {{delta}}
|
||||
"strommix_trend_flat",
|
||||
"strommix_sparkline_aria", // {{from}}, {{to}}
|
||||
"strommix_stale_badge",
|
||||
] as const;
|
||||
|
||||
export type TranslationKey = (typeof TRANSLATION_KEYS)[number];
|
||||
|
||||
Reference in New Issue
Block a user