Add insights screenshot export and improve promo video phone frames

- Add ExportableInsightsViews with sample AI insights data
- Add InsightsExporter service for light/dark mode screenshots
- Add export insights button to Settings debug section
- Update ConceptB promo to use insights_light.png in privacy scene
- Fix phone frame clipping with overflow hidden and borderRadius 64
- Add timeline voting widget images for promo video

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Trey t
2026-01-31 00:56:32 -06:00
parent 36ceff32ca
commit 5d1b0b60fa
7 changed files with 596 additions and 18 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 369 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 163 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 122 KiB

View File

@@ -327,7 +327,7 @@ const SingleTapScene: React.FC = () => {
}}
>
<Img
src={staticFile("voting_light_large.png")}
src={staticFile("timeline_light_large_voting.png")}
style={{
width: widgetSize * 1.1,
height: "auto",
@@ -371,7 +371,7 @@ const SingleTapScene: React.FC = () => {
}}
>
<Img
src={staticFile("voting_light_medium.png")}
src={staticFile("timeline_light_medium_voting.png")}
style={{
width: widgetSize,
height: "auto",
@@ -502,20 +502,28 @@ const InsightsScene: React.FC = () => {
visibility: "hidden",
}}
/>
{/* Screenshot positioned to align notch */}
<Img
src={staticFile("year/frame_0329.png")}
{/* Screenshot container - clips to phone screen area */}
<div
style={{
position: "absolute",
top: "2.4%",
left: "4.8%",
width: "90.4%",
height: "95.2%",
objectFit: "cover",
objectPosition: "top center",
borderRadius: 36,
borderRadius: 64,
overflow: "hidden",
}}
/>
>
<Img
src={staticFile("year/frame_0329.png")}
style={{
width: "100%",
height: "100%",
objectFit: "cover",
objectPosition: "top center",
}}
/>
</div>
{/* Phone frame on top */}
<Img
src={staticFile("phone.png")}
@@ -634,20 +642,28 @@ const PrivacyScene: React.FC = () => {
visibility: "hidden",
}}
/>
{/* Screenshot positioned to align notch */}
<Img
src={staticFile("ai_dark.png")}
{/* Screenshot container - clips to phone screen area */}
<div
style={{
position: "absolute",
top: "2.4%",
left: "4.8%",
width: "90.4%",
height: "95.2%",
objectFit: "cover",
objectPosition: "top center",
borderRadius: 36,
borderRadius: 64,
overflow: "hidden",
}}
/>
>
<Img
src={staticFile("insights_light.png")}
style={{
width: "100%",
height: "100%",
objectFit: "cover",
objectPosition: "top center",
}}
/>
</div>
{/* Phone frame on top */}
<Img
src={staticFile("phone.png")}