Home iPad/Mac (feedback del usuario: 'me gusta más el iPhone'):
- Fuera el grid de 2 columnas (acoplaba alturas de fila y dejaba huecos entre
cards de tamaños distintos) → columna única centrada a 720pt, patrón
Things/Day One. Eliminado el drag-drop del grid, columnSpan y el overlay
full-screen (~120 líneas); el orden/visibilidad sigue en Customize.
Goals:
- ProgressRing nuevo (anillo estilo Fitness con porcentaje centrado y color
semántico: verde=logrado, ámbar=retrasado, acento=en camino) en GoalRowView
y en la card de Goals del Home. GoalProgressBar queda solo en la share card.
Journal:
- Momentum & Streaks vive ahora en la cabecera del Journal (la historia del
hábito es narrativa, no dashboard).
- Filas timeline: círculo de mood como ancla visual (tint semántico por mood),
mes + estrellas + preview de nota.
Sources:
- Badge 'Needs update' como chip ámbar visible; valor en tipografía rounded.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WoScpmHdVj1aUf4rAp6hbe
Sistema:
- AppBackground: fuera gradiente + formas decorativas → systemGroupedBackground
plano en toda la app. La profundidad la da la jerarquía, no la decoración.
Home (3 zonas: estado / acción / contexto):
- TotalValueCard: hero tipográfico — número 44pt rounded sobre card limpia,
chip de delta semántico (verde/rojo), sparkline de evolución 56pt estilo
Stocks, fila secundaria YoY / inception / forecast. Fuera el gradiente azul.
- MonthlyCheckInCard state-driven: pendiente → protagonista con progreso real
de fuentes (N de M) y un CTA; completado → fila discreta con checkmark,
próximo check-in y streak integrado. En iPad va a ancho completo bajo el
hero (zona de acción), fuera del grid.
- InsightsRow: de carrusel de chips a un insight único rotatorio (tap para
ciclar, dots de posición).
- Eliminados del top: streak badge (vive en el check-in) y banner de pending
updates (el progreso del check-in lo comunica).
- Defaults nuevos: momentumStreaks/pendingUpdates/periodReturns/monthlySummary
ocultos por defecto (siguen disponibles en Customize; configs guardadas de
usuarios existentes se respetan).
- Strings nuevas en 7 idiomas (checkin_done_*, checkin_sources_progress).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WoScpmHdVj1aUf4rAp6hbe
El círculo decorativo de AppBackground (70% del ancho del panel, offset -35%)
se desborda de su panel por diseño y en layouts side-by-side queda flotando
SOBRE el sidebar de Charts. Las shapes de SwiftUI participan en hit-testing por
defecto y el panel derecho va después en el HStack → cada tap en la zona del
sidebar cubierta por el círculo moría en silencio. El patrón lo delató: fallaban
Overview + Analyze (arriba, bajo el círculo) y funcionaban Risk + Forecast
(abajo). Dependía de la geometría (orientación/tamaño), por eso no reproducía
en el simulador en portrait.
- AppBackground: .allowsHitTesting(false) — un fondo decorativo jamás debe
interceptar toques (fix global: aplica también a Sources/Journal en iPad)
- Panel de detalle de Charts: .clipped() para que la decoración tampoco PINTE
sobre el sidebar
- Selección premium nunca se bloquea: los charts premium se seleccionan y
muestran teaser de desbloqueo en el área del chart (chart_locked_* ×7 idiomas);
el paywall se presenta desde el botón (contexto fiable)
- UITests: testChartSidebarSelection ahora corre en landscape (geometría que
reproducía el bug) + testChartSelectionWithoutPremium nuevo; --no-premium
en ScreenshotMode para testear la experiencia free
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WoScpmHdVj1aUf4rAp6hbe