mirror of
https://github.com/heygen-com/hyperframes.git
synced 2026-09-01 19:42:03 +00:00
Restores the 208 catalog items reverted after their previews 404'd in production, this time on the payload mechanism rather than the .html files that caused the outage. The generator no longer writes a preview document to docs/public. That writer, and the machinery under it, existed only to produce files the docs host discards, so it is gone rather than bypassed. Items now embed the composition itself via a payload, which is what the previous change already does for the items that were already in the catalog. The variables explorer is parked, not restored: it drove its preview through the same unpublished .html path, so it would have shown an empty frame. Items that declare variables get the live player plus the static variables table, and reconnecting the explorer to payloads is a follow-up.
68 lines
2.3 KiB
JSON
68 lines
2.3 KiB
JSON
{
|
|
"$schema": "https://hyperframes.heygen.com/schema/registry-item.json",
|
|
"name": "spring-stack-shuffle",
|
|
"type": "hyperframes:component",
|
|
"title": "Spring Stack Shuffle",
|
|
"description": "A stack of 3 to 5 slotted cards reshuffles on cues: the back card throws over the top and lands at the front with real mass, the rest compress and resettle; cues that land mid-flight redirect the moving cards with velocity preserved.",
|
|
"tags": ["motion-primitive", "product-demo", "physics", "stack", "interruptible-spring"],
|
|
"jobs": ["demonstrate"],
|
|
"family": "product-demo",
|
|
"profile": "stack",
|
|
"evidence": "Wave K K7: interruptible-spring stack from the X expert study demand slate; L1 redirect authored into the default cue rhythm",
|
|
"syncPoints": [{ "id": "first-landing", "phase": "in", "offset": 1.75 }],
|
|
"files": [
|
|
{
|
|
"path": "spring-stack-shuffle.html",
|
|
"target": "compositions/components/spring-stack-shuffle.html",
|
|
"type": "hyperframes:snippet"
|
|
}
|
|
],
|
|
"variables": [
|
|
{
|
|
"id": "cards",
|
|
"type": "number",
|
|
"role": "content",
|
|
"label": "Cards",
|
|
"description": "Number of cards in the stack, 3 to 5.",
|
|
"default": 4,
|
|
"min": 3,
|
|
"max": 5,
|
|
"step": 1
|
|
},
|
|
{
|
|
"id": "cues",
|
|
"type": "string",
|
|
"role": "timing",
|
|
"label": "Shuffle cues",
|
|
"description": "Comma-separated seconds from mount start; each cue throws the back card to the front. Cues inside a running throw redirect it mid-flight, velocity preserved. Empty keeps the default rhythm.",
|
|
"default": "0.9, 1.7, 1.95"
|
|
},
|
|
{
|
|
"id": "accent",
|
|
"type": "enum",
|
|
"role": "style",
|
|
"label": "Accent",
|
|
"description": "Active-card ring color from the contract token map.",
|
|
"default": "green",
|
|
"options": [
|
|
{ "value": "green", "label": "Green" },
|
|
{ "value": "blue", "label": "Blue" },
|
|
{ "value": "violet", "label": "Violet" }
|
|
]
|
|
},
|
|
{
|
|
"id": "exit",
|
|
"type": "enum",
|
|
"role": "timing",
|
|
"label": "Exit",
|
|
"description": "Optional departure. Default none: the settled stack holds until the frame cuts.",
|
|
"default": "none",
|
|
"options": [
|
|
{ "value": "none", "label": "None" },
|
|
{ "value": "fade", "label": "Fade" },
|
|
{ "value": "up", "label": "Up" }
|
|
]
|
|
}
|
|
]
|
|
}
|