feat(market): trend sparkline in all portfolio styles + inline chart/style pickers

Render the portfolio trend sparkline in every row style, each with a layout that features it:
- Table: a dedicated header-labelled TREND column (48dp rows), aligned across rows.
- Cards: a left-aligned info stack (icon + label / value+delta chip / DRGX) with a full-height sparkline filling the rest of the width (content-driven, so short groups give the chart more room).
- Spotlight: a big-value-over-a-full-width-chart-band hero tile (92dp).
Default sparkline interval is now MONTH (a real curve from the daily series, not the young minute buffer). Removed the per-row container accent line (redundant with the icon/sparkline colour) and the per-group shielded/transparent bar (private-by-default makes it near-always 100%, and dropped its now-dead SumPortfolioSplit helper). DPI-scale the sparkline stroke. Adds the "Trend" column string across 9 languages.

Relocated the Market controls out of a removed settings modal + gear: the chart line/candle picker now sits top-right of the chart (left of the trade button, candle-capable ranges only), and the Table/Cards/Spotlight picker sits left of Manage. Dropped the market fetch-prices toggle (still in the general Settings page).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-07-18 13:39:42 -05:00
parent e4c9b98ca2
commit 973bc0d338
13 changed files with 142 additions and 227 deletions

View File

@@ -731,6 +731,7 @@
"market_cap_short": "Kap.",
"market_chart_loading": "Preisverlauf wird geladen",
"market_col_name": "Name",
"market_col_trend": "Trend",
"market_col_value": "Wert",
"market_iv_1d": "1T",
"market_iv_1h": "1S",

View File

@@ -731,6 +731,7 @@
"market_cap_short": "Cap.",
"market_chart_loading": "Cargando historial de precios",
"market_col_name": "Nombre",
"market_col_trend": "Tendencia",
"market_col_value": "Valor",
"market_iv_1d": "1D",
"market_iv_1h": "1H",

View File

@@ -731,6 +731,7 @@
"market_cap_short": "Cap.",
"market_chart_loading": "Chargement de l'historique des prix",
"market_col_name": "Nom",
"market_col_trend": "Tendance",
"market_col_value": "Valeur",
"market_iv_1d": "1J",
"market_iv_1h": "1H",

View File

@@ -731,6 +731,7 @@
"market_cap_short": "時価総額",
"market_chart_loading": "価格履歴を読み込み中",
"market_col_name": "名前",
"market_col_trend": "トレンド",
"market_col_value": "価値",
"market_iv_1d": "1日",
"market_iv_1h": "1時間",

View File

@@ -731,6 +731,7 @@
"market_cap_short": "시총",
"market_chart_loading": "가격 기록 불러오는 중",
"market_col_name": "이름",
"market_col_trend": "추세",
"market_col_value": "가치",
"market_iv_1d": "1일",
"market_iv_1h": "1시간",

View File

@@ -731,6 +731,7 @@
"market_cap_short": "Cap.",
"market_chart_loading": "Carregando histórico de preços",
"market_col_name": "Nome",
"market_col_trend": "Tendência",
"market_col_value": "Valor",
"market_iv_1d": "1D",
"market_iv_1h": "1H",

View File

@@ -731,6 +731,7 @@
"market_cap_short": "Кап.",
"market_chart_loading": "Загрузка истории цен",
"market_col_name": "Название",
"market_col_trend": "Тренд",
"market_col_value": "Стоимость",
"market_iv_1d": "1Д",
"market_iv_1h": "1Ч",

View File

@@ -731,6 +731,7 @@
"market_cap_short": "市值",
"market_chart_loading": "正在加载价格历史",
"market_col_name": "名称",
"market_col_trend": "趋势",
"market_col_value": "价值",
"market_iv_1d": "1天",
"market_iv_1h": "1时",