+ Sign in with Google or Microsoft to log wellbeing check-ins and sync your real data. +
+ ) : ( +You need to sign in first.
++ Sign in with Google or Microsoft to log wellbeing check-ins and sync your real data. +
+ ) : ( ++ Connect Outlook or G Suite to see your calendar and email, then track how you feel. +
+ {error === "no_code" && ( +Sign-in was cancelled or no code received.
+ )} + {error === "auth_failed" && ( +Sign-in failed. Check your app credentials in .env.local.
+ )} + {auth === null &&Checking sign-in…
} + {auth === true && ( + + Go to Dashboard + + )} + {auth === false && ( + <> ++ No data yet. Sync to pull from your connected account (Outlook + Calendar or G Suite). +
+ {!isDemo && ( + + )} ++ {isDemo ? "Sample context for preview" : `Last synced: ${new Date(lastSyncedAt).toLocaleString()}`} +
+ )} ++ Today + tomorrow · up to 10 events · Free block: {calendar.longestFreeBlockMinutes} min +
+{decodeHtmlEntities(e.summary)}
++ {timeStr} – {endStr} +
+ {location && ( ++ 📍 {decodeHtmlEntities(location.slice(0, 50))}{location.length > 50 ? "…" : ""} +
+ )} + {descSnippet && ( +{decodeHtmlEntities(descSnippet)}…
+ )} +No events today or tomorrow
+ )} + > + ); + })()} ++ Today: {meet.todayCount} · Week: {meet.weekCount} · Hours: {meet.totalMeetingHoursThisWeek}h +
++ Active (7d): {docs.activeCount} of {docs.items.length} recent +
++ {new Date(wellbeing.latest.timestamp).toLocaleString()} · Energy: {wellbeing.latest.energyScore ?? "—"} · Overwhelm: {wellbeing.latest.overwhelmScore ?? "—"} + {wellbeing.latest.note && ` · ${wellbeing.latest.note}`} +
+ {wellbeing.latest.contextSnapshot && ( ++ At check-in: {wellbeing.latest.contextSnapshot.meetingCount ?? 0} meetings, {wellbeing.latest.contextSnapshot.unreadCount ?? 0} unread, {wellbeing.latest.contextSnapshot.activeDocsCount ?? 0} active docs +
+ )} + {wellbeing.trend.length > 1 && ( +Trend: last {wellbeing.trend.length} check-ins
+ )} ++ Unread: {email.unreadCount} · Showing up to {EMAIL_LIST_SIZE} recent +
++ {decodeHtmlEntities(m.from)} +
++ {decodeHtmlEntities(m.subject.slice(0, 80))}{m.subject.length > 80 ? "…" : ""} +
+ {(m.snippet || m.bodyText) && ( ++ {decodeHtmlEntities((m.snippet || m.bodyText || "").slice(0, 120))} + {(m.snippet || m.bodyText || "").length > 120 ? "…" : ""} +
+ )} +No emails yet. Sync to load.
+ )} +From your {source}
+ {fillHeight ?{summaryText}
+Knight, Moon, Star, Heart, Sun, Shield
++ Do a wellbeing check-in and sync G Suite to fill your profile. +
+ )} ++ How are you doing? Stored with your current work-life snapshot. +
+ {sent && ( +Check-in saved. Thanks.
+ )} + +