mirror of
https://github.com/heygen-com/hyperframes.git
synced 2026-09-11 06:30:03 +00:00
feat(cli): keyframes command (surface GSAP/CSS/Anime keyframes + 3D onion-skin --shot) (#1603)
Renames the motion-surfacing tool from `hyperframes keyframes` to `hyperframes motion`, renames the implementation from keyframes*.ts to motion*.ts (keeping the keyframe data model name where still accurate), and renames the shipped skill from hyperframes-keyframes to hyperframes-motion. Expands the skill from a command reference into a full motion-design workflow: reading motion, 3D angle verification, layered GSAP motion, one-shot reference reproduction, diagnostic checks, and eval-derived craft guidance.
This commit is contained in:
@@ -95,6 +95,18 @@ export function computeOverflow(
|
||||
return Object.keys(overflow).length > 0 ? overflow : null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Whether a computed `overflow*` value clips its box. Mirrors the rule the
|
||||
* browser audit (layout-audit.browser.js) uses to decide that text spilling
|
||||
* past such an ancestor is intentionally masked (odometer/ticker reels) rather
|
||||
* than a `text_box_overflow` defect. Kept here as the one unit-testable seam of
|
||||
* that suppression: only `visible` (and the `clip visible` no-op) must NOT clip
|
||||
* — every clipping value must, or real masked overflow gets reported as a bug.
|
||||
*/
|
||||
export function overflowValueClips(value: string | null | undefined): boolean {
|
||||
return !!value && value !== "visible" && value !== "clip visible";
|
||||
}
|
||||
|
||||
export function summarizeLayoutIssues(issues: LayoutIssue[]): LayoutSummary {
|
||||
const errorCount = issues.filter((issue) => issue.severity === "error").length;
|
||||
const warningCount = issues.filter((issue) => issue.severity === "warning").length;
|
||||
|
||||
Reference in New Issue
Block a user