Calm 2.0 Fase 4: TipKit para descubrimiento + aha post-onboarding (build 55)

TipKit (Tips.configure con frecuencia diaria):
- QuickUpdateTip: popover en el '+' del Home — descubre Quick Update
- ScreenshotOCRTip: inline en Quick Update — descubre el OCR por captura
- SiriTip: en el cierre del check-in guiado — descubre el intent de voz
- ChartShareTip: popover en el compartir de Charts
- Se invalidan al ejecutar la acción; máx 1-2 impresiones cada uno
- Strings ×7 idiomas

Onboarding:
- Al completar el onboarding sin datos, se abre Add Source directamente
  (notificación .openAddFirstSource) — el usuario nuevo no aterriza en un
  dashboard vacío

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WoScpmHdVj1aUf4rAp6hbe
This commit is contained in:
alexandrev-tibco
2026-07-10 09:31:03 +02:00
parent 08094483ed
commit 4c0d2af564
16 changed files with 148 additions and 10 deletions
@@ -1,5 +1,6 @@
import SwiftUI
import Charts
import TipKit
struct ChartsContainerView: View {
@EnvironmentObject var accountStore: AccountStore
@@ -466,10 +467,12 @@ struct ChartsContainerView: View {
private var shareButton: some View {
Button {
ChartShareTip().invalidate(reason: .actionPerformed)
shareCurrentChart()
} label: {
Image(systemName: "square.and.arrow.up")
}
.popoverTip(ChartShareTip())
.disabled(!viewModel.hasData || viewModel.isLoading || selectedChartLocked)
.accessibilityLabel(String(localized: "chart_share_button"))
}