Skip to content

Commit cd277ca

Browse files
feat(catalog): add Blue Sweater intro showcase (heygen-com#630)
## Problem The Blue Sweater intro HyperFrames project was only available as a standalone exported project zip. It was not installable from the public registry or visible in the Catalog Showcases group. ## What this fixes Adds `blue-sweater-intro-video` as a registry block with its composition, avatar image, and sound mix asset. The block is exposed through the generated catalog page, `docs/public/catalog-index.json`, and the Showcases navigation. The manifest and generated catalog page credit the creator as [Joe Sai](https://x.com/_blue_sweater_). ## Root cause Catalog-visible blocks are driven by `registry/registry.json`, each block's `registry-item.json`, generated docs/catalog files, and CDN-hosted preview media. The exported project had a valid standalone composition, but it had not been converted into that registry/catalog contract or uploaded to the docs preview CDN. ## Verification ### Local checks - `bun install` - `bun run build` - `bunx tsx scripts/generate-catalog-pages.ts` - `bun run generate:catalog-previews -- --only blue-sweater-intro-video` - `bun packages/cli/src/cli.ts add blue-sweater-intro-video --dir /tmp/hf-blue-sweater-install-test --no-clipboard --json` against a locally served registry - `bun packages/cli/src/cli.ts lint /tmp/hf-blue-sweater-install-test` returned 0 errors and 3 static GSAP overlap warnings from the supplied timeline/parser path - `bun packages/cli/src/cli.ts validate /tmp/hf-blue-sweater-install-test --timeout 5000` returned 0 runtime errors and 0 warnings, with contrast audit warnings only - `bun packages/cli/src/cli.ts inspect /tmp/hf-blue-sweater-install-test --at 0.5,2.5,5.5,9.8,11.2 --json` returned 0 layout issues - `bun packages/cli/src/cli.ts render /tmp/hf-blue-sweater-install-test --output /tmp/hf-blue-sweater-install-test/blue-sweater-intro-video-render.mp4 --fps 24 --quality draft --workers 3` - `ffprobe` reported the installed render duration as `12.000000` - `bunx oxfmt --check registry/registry.json registry/blocks/blue-sweater-intro-video/registry-item.json registry/blocks/blue-sweater-intro-video/blue-sweater-intro-video.html docs/docs.json docs/public/catalog-index.json docs/catalog/blocks/blue-sweater-intro-video.mdx` - `git diff --check` - `bunx vitest run packages/cli/src/commands/add.test.ts packages/core/src/registry/types.test.ts` ### Browser verification - Started a real local HyperFrames preview for the installed test project. - Used `agent-browser` to open `http://localhost:5198/api/projects/hf-blue-sweater-install-test/preview` at 1920x1080. - Verified the runtime registered `install-test` and `blue-sweater-intro-video` timelines. - Sought the block to the final card and verified `@_blue_sweater_` and the following state were visible. - Recorded an `agent-browser`-driven full animation pass; `ffprobe` confirmed a 1920x1080 WebM with 110 video frames. - Checked the fresh `agent-browser` session for page errors after the direct preview flow: `errors: []`. - Used `agent-browser` to load an HTML page with the exact generated CDN `video`/`poster` URLs; the browser reported `readyState: 4`, `videoWidth: 1920`, `videoHeight: 1080`, and `paused: false`. ### CDN upload Uploaded the generated preview media with AWS CLI to the existing docs image bucket path: - `s3://heygen-public/hyperframes-oss/docs/images/catalog/blocks/blue-sweater-intro-video.mp4` - `s3://heygen-public/hyperframes-oss/docs/images/catalog/blocks/blue-sweater-intro-video.png` Verified both public CDN URLs return `HTTP 200` with correct content type and immutable cache headers: - `https://static.heygen.ai/hyperframes-oss/docs/images/catalog/blocks/blue-sweater-intro-video.mp4` (`video/mp4`) - `https://static.heygen.ai/hyperframes-oss/docs/images/catalog/blocks/blue-sweater-intro-video.png` (`image/png`) ## Notes - Local-only browser proof artifacts: - `/tmp/hf-blue-sweater-browser-proof/fresh-final-card.png` - `/tmp/hf-blue-sweater-browser-proof/fresh-browser-flow.webm` - `/tmp/hf-blue-sweater-cdn-check.png` - Local-only installed render artifact: - `/tmp/hf-blue-sweater-install-test/blue-sweater-intro-video-render.mp4`
1 parent 5846275 commit cd277ca

9 files changed

Lines changed: 1639 additions & 19 deletions

File tree

.github/workflows/catalog-previews.yml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ on:
77
- "registry/blocks/**"
88
- "registry/components/**"
99
- "scripts/generate-catalog-previews.ts"
10+
- ".github/workflows/catalog-previews.yml"
1011

1112
concurrency:
1213
group: catalog-previews-${{ github.ref }}
@@ -37,9 +38,6 @@ jobs:
3738
with:
3839
chrome-version: stable
3940

40-
# FFmpeg for video encoding
41-
- uses: FedericoCarboni/setup-ffmpeg@36c6454b5a2348e7794ba2d82a21506605921e3d # v3
42-
4341
- name: Render changed block/component previews
4442
run: |
4543
# Find which blocks/components changed in this PR
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
---
2+
title: "Blue Sweater Intro Video"
3+
description: "Warm AI creator intro sequence that resolves into an X follow card for @_blue_sweater_."
4+
---
5+
6+
# Blue Sweater Intro Video
7+
8+
Warm AI creator intro sequence that resolves into an X follow card for @_blue_sweater_.
9+
10+
`showcase` `ai` `creator` `sfx`
11+
12+
Created by [Joe Sai](https://x.com/_blue_sweater_).
13+
14+
<video className="w-full aspect-video rounded-xl object-cover bg-zinc-100 dark:bg-zinc-800" src="https://static.heygen.ai/hyperframes-oss/docs/images/catalog/blocks/blue-sweater-intro-video.mp4" poster="https://static.heygen.ai/hyperframes-oss/docs/images/catalog/blocks/blue-sweater-intro-video.png" autoPlay muted loop playsInline />
15+
16+
## Install
17+
18+
<CodeGroup>
19+
20+
```bash Terminal
21+
npx hyperframes add blue-sweater-intro-video
22+
```
23+
24+
</CodeGroup>
25+
26+
## Details
27+
28+
| Property | Value |
29+
| --- | --- |
30+
| Type | Block |
31+
| Dimensions | 1920×1080 |
32+
| Duration | 12s |
33+
34+
## Files
35+
36+
| File | Target | Type |
37+
| --- | --- | --- |
38+
| `blue-sweater-intro-video.html` | `compositions/blue-sweater-intro-video.html` | hyperframes:composition |
39+
| `assets/joe-sai-avatar.png` | `assets/joe-sai-avatar.png` | hyperframes:asset |
40+
| `assets/sfx/integrated-melodic-tech-mix.wav` | `assets/sfx/integrated-melodic-tech-mix.wav` | hyperframes:asset |
41+
42+
## Usage
43+
44+
After installing, add the block to your host composition:
45+
46+
```html
47+
<div data-composition-id="blue-sweater-intro-video" data-composition-src="compositions/blue-sweater-intro-video.html" data-start="0" data-duration="12" data-track-index="1" data-width="1920" data-height="1080"></div>
48+
```

docs/docs.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -144,10 +144,11 @@
144144
"pages": [
145145
"catalog/blocks/app-showcase",
146146
"catalog/blocks/apple-money-count",
147-
"catalog/blocks/vpn-youtube-spot",
147+
"catalog/blocks/blue-sweater-intro-video",
148148
"catalog/blocks/north-korea-locked-down",
149149
"catalog/blocks/nyc-paris-flight",
150-
"catalog/blocks/ui-3d-reveal"
150+
"catalog/blocks/ui-3d-reveal",
151+
"catalog/blocks/vpn-youtube-spot"
151152
]
152153
},
153154
{

docs/public/catalog-index.json

Lines changed: 28 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,20 @@
2727
"href": "/catalog/blocks/apple-money-count",
2828
"preview": "https://static.heygen.ai/hyperframes-oss/docs/images/catalog/blocks/apple-money-count.png"
2929
},
30+
{
31+
"name": "blue-sweater-intro-video",
32+
"type": "block",
33+
"title": "Blue Sweater Intro Video",
34+
"description": "Warm AI creator intro sequence that resolves into an X follow card for @_blue_sweater_.",
35+
"tags": [
36+
"showcase",
37+
"ai",
38+
"creator",
39+
"sfx"
40+
],
41+
"href": "/catalog/blocks/blue-sweater-intro-video",
42+
"preview": "https://static.heygen.ai/hyperframes-oss/docs/images/catalog/blocks/blue-sweater-intro-video.png"
43+
},
3044
{
3145
"name": "chromatic-radial-split",
3246
"type": "block",
@@ -125,20 +139,6 @@
125139
"href": "/catalog/blocks/glitch",
126140
"preview": "https://static.heygen.ai/hyperframes-oss/docs/images/catalog/blocks/glitch.png"
127141
},
128-
{
129-
"name": "vpn-youtube-spot",
130-
"type": "block",
131-
"title": "VPN YouTube Spot",
132-
"description": "Snappy Apple-style YouTube insert showing a phone finding and installing a friendly VPN app with sound effects.",
133-
"tags": [
134-
"app",
135-
"showcase",
136-
"youtube",
137-
"sfx"
138-
],
139-
"href": "/catalog/blocks/vpn-youtube-spot",
140-
"preview": "https://static.heygen.ai/hyperframes-oss/docs/images/catalog/blocks/vpn-youtube-spot.png"
141-
},
142142
{
143143
"name": "grain-overlay",
144144
"type": "component",
@@ -542,6 +542,20 @@
542542
"href": "/catalog/blocks/ui-3d-reveal",
543543
"preview": "https://static.heygen.ai/hyperframes-oss/docs/images/catalog/blocks/ui-3d-reveal.png"
544544
},
545+
{
546+
"name": "vpn-youtube-spot",
547+
"type": "block",
548+
"title": "VPN YouTube Spot",
549+
"description": "Snappy Apple-style YouTube insert showing a phone finding and installing a friendly VPN app with sound effects.",
550+
"tags": [
551+
"app",
552+
"showcase",
553+
"youtube",
554+
"sfx"
555+
],
556+
"href": "/catalog/blocks/vpn-youtube-spot",
557+
"preview": "https://static.heygen.ai/hyperframes-oss/docs/images/catalog/blocks/vpn-youtube-spot.png"
558+
},
545559
{
546560
"name": "whip-pan",
547561
"type": "block",
1.91 MB
Loading
Binary file not shown.

0 commit comments

Comments
 (0)