@clipwright/core 0.36.0 → 0.37.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/actors.d.ts +8 -0
- package/dist/actors.js +2 -0
- package/dist/actors.js.map +1 -1
- package/dist/caption-geometry.d.ts +43 -0
- package/dist/caption-geometry.js +41 -0
- package/dist/caption-geometry.js.map +1 -0
- package/dist/contract-dispositions.d.ts +997 -35
- package/dist/contract-dispositions.js +25 -5
- package/dist/contract-dispositions.js.map +1 -1
- package/dist/contracts/v1/workflow-brief.d.ts +2024 -38
- package/dist/contracts/v1/workflow-brief.js +2 -2
- package/dist/contracts/v1/workflow-brief.js.map +1 -1
- package/dist/contracts/v1/workflow-catalog.d.ts +2154 -72
- package/dist/contracts/v1/workflow-client.d.ts +1207 -70
- package/dist/contracts/v1/workflow-plan.d.ts +3234 -111
- package/dist/edit-billing.d.ts +1 -0
- package/dist/edit-billing.js +2 -0
- package/dist/edit-billing.js.map +1 -1
- package/dist/edit-document.d.ts +22 -0
- package/dist/edit-document.js +3 -0
- package/dist/edit-document.js.map +1 -1
- package/dist/edit-long-form.js +1 -1
- package/dist/edit-long-form.js.map +1 -1
- package/dist/edit-revision.d.ts +9 -0
- package/dist/edit-rules.d.ts +1 -0
- package/dist/edit-rules.js +3 -0
- package/dist/edit-rules.js.map +1 -1
- package/dist/edit-shots.d.ts +2 -0
- package/dist/edit-validate.d.ts +4 -2
- package/dist/edit-validate.js +18 -2
- package/dist/edit-validate.js.map +1 -1
- package/dist/errors.d.ts +1 -0
- package/dist/faceless-media-record.d.ts +27 -0
- package/dist/faceless-media-record.js +15 -1
- package/dist/faceless-media-record.js.map +1 -1
- package/dist/faceless-public.d.ts +107 -0
- package/dist/faceless-public.js +34 -1
- package/dist/faceless-public.js.map +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/long-form-revision.d.ts +8 -0
- package/dist/openapi.js +2 -2
- package/dist/openapi.js.map +1 -1
- package/dist/presenter-beats.d.ts +1 -1
- package/dist/reference-analysis.d.ts +436 -75
- package/dist/reference-analysis.js +149 -28
- package/dist/reference-analysis.js.map +1 -1
- package/dist/reference-display.d.ts +36 -0
- package/dist/reference-display.js +78 -0
- package/dist/reference-display.js.map +1 -0
- package/dist/reference-profile.d.ts +2352 -36
- package/dist/reference-profile.js +138 -10
- package/dist/reference-profile.js.map +1 -1
- package/dist/reference-staging.d.ts +59 -57
- package/dist/reference-staging.js +6 -5
- package/dist/reference-staging.js.map +1 -1
- package/dist/resolved-timeline.d.ts +199 -2
- package/dist/resolved-timeline.js +17 -5
- package/dist/resolved-timeline.js.map +1 -1
- package/dist/scene-place.d.ts +225 -0
- package/dist/scene-place.js +120 -0
- package/dist/scene-place.js.map +1 -0
- package/dist/skills.d.ts +4680 -22
- package/dist/skills.js +150 -17
- package/dist/skills.js.map +1 -1
- package/dist/templates/index.d.ts +14 -4
- package/dist/templates/index.js +49 -5
- package/dist/templates/index.js.map +1 -1
- package/dist/ugc-interview.d.ts +122 -0
- package/dist/ugc-interview.js +260 -0
- package/dist/ugc-interview.js.map +1 -0
- package/dist/ugc-layers.d.ts +88 -6
- package/dist/ugc-layers.js +193 -5
- package/dist/ugc-layers.js.map +1 -1
- package/dist/voice-admission.d.ts +947 -2
- package/dist/workflows/methods/faceless-explainer.d.ts +599 -13
- package/dist/workflows/methods/kinetic-launch.d.ts +599 -13
- package/dist/workflows/methods/product-image-story.d.ts +599 -13
- package/dist/workflows/methods/reference-remake.d.ts +599 -13
- package/dist/workflows/methods/shared.d.ts +599 -13
- package/dist/workflows/methods/ugc-faq-answer.d.ts +599 -13
- package/dist/workflows/methods/ugc-product-intro.d.ts +599 -13
- package/dist/workflows/methods/website-proof-demo.d.ts +599 -13
- package/dist/workflows/reference-remake.d.ts +131 -35
- package/dist/workflows/reference-remake.js +179 -18
- package/dist/workflows/reference-remake.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { CAPTION_EDGES, captionEdgeAt } from "./caption-geometry.js";
|
|
3
|
+
import { faceZone, overlayRect } from "./ugc-layers.js";
|
|
4
|
+
// Free placement of a layer (#973 S1): a box on the frame, on the presenter's face, or next to the face or another layer. A placed layer is pinned.
|
|
5
|
+
export const PLACE_FITS = ["contain", "cover"];
|
|
6
|
+
export const PLACE_SIDES = ["below", "above", "left", "right", "over"];
|
|
7
|
+
export const PLACE_ALIGNS = ["start", "center", "end"];
|
|
8
|
+
/** The gap next to an anchor when none is given, as a share of the frame height. */
|
|
9
|
+
export const PLACE_DEFAULT_GAP = 0.01;
|
|
10
|
+
/** A rect in face units: origin the face centre, unit the face height in pixels, so x and y share one scale. */
|
|
11
|
+
const faceUnits = z.number().min(-20).max(20);
|
|
12
|
+
export const faceUnitsRect = z.strictObject({ left: faceUnits, top: faceUnits, width: z.number().positive().max(20), height: z.number().positive().max(20) });
|
|
13
|
+
const share = z.number().min(-0.5).max(1.5);
|
|
14
|
+
const span = z.number().min(0.02).max(1.5);
|
|
15
|
+
const layerId = z.string().regex(/^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$/);
|
|
16
|
+
const options = {
|
|
17
|
+
fit: z.enum(PLACE_FITS).optional().describe("contain (default): the whole picture inside the box, centred; cover: it fills the box, cut to fit."),
|
|
18
|
+
allow_face: z.literal(true).optional().describe("Cover the presenter's face on purpose; without it a box on the face is refused."),
|
|
19
|
+
};
|
|
20
|
+
export const placeFrame = z.strictObject({ relative_to: z.literal("frame"),
|
|
21
|
+
rect: z.strictObject({ left: share, top: share, width: span, height: span }).describe("In shares of the frame's width and height."), ...options });
|
|
22
|
+
export const placeFace = z.strictObject({ relative_to: z.literal("face"),
|
|
23
|
+
rect: faceUnitsRect.describe("Origin the presenter's face centre, unit the face height, on both axes."), ...options });
|
|
24
|
+
export const placeNextTo = z.strictObject({
|
|
25
|
+
relative_to: z.union([z.enum(["face", "captions"]), z.strictObject({ layer: layerId })])
|
|
26
|
+
.describe("The presenter's face, the captions as drawn (side below or above), or another overlay placed with place."),
|
|
27
|
+
side: z.enum(PLACE_SIDES),
|
|
28
|
+
gap: z.number().min(0).max(0.2).optional().describe("Space to the anchor, as a share of the frame height; default 0.01."),
|
|
29
|
+
align: z.enum(PLACE_ALIGNS).optional().describe("Along the anchor's side; default center."),
|
|
30
|
+
width: z.number().positive().max(4).optional(),
|
|
31
|
+
height: z.number().positive().max(4).optional(),
|
|
32
|
+
size_unit: z.enum(["frame", "face"]).optional().describe("frame (default): shares of the frame's width and height; face: face heights."),
|
|
33
|
+
...options,
|
|
34
|
+
}).refine(item => item.width !== undefined || item.height !== undefined, { message: "pass width, height or both", path: ["width"] });
|
|
35
|
+
/** Where an overlay is drawn instead of a preset position; no rule moves it. */
|
|
36
|
+
export const place = z.union([placeFrame, placeFace, placeNextTo]);
|
|
37
|
+
/** The layer a place is next to, or undefined. */
|
|
38
|
+
export const placeAnchorOf = (item) => "side" in item && typeof item.relative_to === "object" ? item.relative_to.layer : undefined;
|
|
39
|
+
/** Whether a place reads the presenter's face. */
|
|
40
|
+
export const placeReadsFace = (item) => item.relative_to === "face";
|
|
41
|
+
/** Whether a place stands next to the captions, so it follows the page drawn and never moves them. */
|
|
42
|
+
export const placeByCaptions = (item) => item !== undefined && "side" in item && item.relative_to === "captions";
|
|
43
|
+
/** The box a place resolves to, in shares of the frame; it may reach past the frame, which the rails judge. */
|
|
44
|
+
export function resolvePlace(item, ctx) {
|
|
45
|
+
const { width: W, height: H } = ctx.canvas, face = ctx.face;
|
|
46
|
+
const unitW = (face.height * H) / W;
|
|
47
|
+
if (item.relative_to === "frame")
|
|
48
|
+
return { ...item.rect };
|
|
49
|
+
if ("rect" in item) {
|
|
50
|
+
const cx = face.left + face.width / 2, cy = face.top + face.height / 2;
|
|
51
|
+
return { left: cx + item.rect.left * unitW, top: cy + item.rect.top * face.height, width: item.rect.width * unitW, height: item.rect.height * face.height };
|
|
52
|
+
}
|
|
53
|
+
const anchor = typeof item.relative_to === "object" ? ctx.layers?.get(item.relative_to.layer) : item.relative_to === "captions" ? ctx.captions : face;
|
|
54
|
+
if (!anchor)
|
|
55
|
+
throw new Error("place names a layer with no box");
|
|
56
|
+
const byFace = item.size_unit === "face", aspect = ctx.media ? ctx.media.height / ctx.media.width : 1;
|
|
57
|
+
let width = item.width === undefined ? undefined : item.width * (byFace ? unitW : 1);
|
|
58
|
+
let height = item.height === undefined ? undefined : item.height * (byFace ? face.height : 1);
|
|
59
|
+
width ??= ((height ?? 0) * H) / (aspect * W);
|
|
60
|
+
height ??= (width * W * aspect) / H;
|
|
61
|
+
const gapY = item.gap ?? PLACE_DEFAULT_GAP, gapX = (gapY * H) / W;
|
|
62
|
+
const along = (start, length, size) => item.align === "start" ? start : item.align === "end" ? start + length - size : start + (length - size) / 2;
|
|
63
|
+
const centred = { left: along(anchor.left, anchor.width, width), top: along(anchor.top, anchor.height, height) };
|
|
64
|
+
switch (item.side) {
|
|
65
|
+
case "below": return { left: centred.left, top: anchor.top + anchor.height + gapY, width, height };
|
|
66
|
+
case "above": return { left: centred.left, top: anchor.top - gapY - height, width, height };
|
|
67
|
+
case "right": return { left: anchor.left + anchor.width + gapX, top: centred.top, width, height };
|
|
68
|
+
case "left": return { left: anchor.left - gapX - width, top: centred.top, width, height };
|
|
69
|
+
case "over": return { left: anchor.left + (anchor.width - width) / 2, top: anchor.top + (anchor.height - height) / 2, width, height };
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
/** The rect a picture takes in its box: the whole box for cover, else the picture's shape fitted and centred. */
|
|
73
|
+
export function fitPlacedRect(box, media, canvas, fit = "contain") {
|
|
74
|
+
if (fit === "cover")
|
|
75
|
+
return box;
|
|
76
|
+
const scale = Math.min((box.width * canvas.width) / media.width, (box.height * canvas.height) / media.height);
|
|
77
|
+
const width = (media.width * scale) / canvas.width, height = (media.height * scale) / canvas.height;
|
|
78
|
+
return { left: box.left + (box.width - width) / 2, top: box.top + (box.height - height) / 2, width, height };
|
|
79
|
+
}
|
|
80
|
+
/** A preset position as a place: it resolves to the footprint the preset reserves, `overlayRect`. */
|
|
81
|
+
export function presetPlace(position, canvas) {
|
|
82
|
+
return { relative_to: "frame", rect: overlayRect(position, canvas) };
|
|
83
|
+
}
|
|
84
|
+
/** The presenter's usual face box, before the take shows it: two thirds of the face zone's height, centred in it, 3:4 in pixels. */
|
|
85
|
+
export function usualFace(aspectRatio, canvas, framing = "close") {
|
|
86
|
+
const zone = faceZone(aspectRatio, framing), height = (zone.height * 2) / 3, width = (0.75 * height * canvas.height) / canvas.width;
|
|
87
|
+
return { left: zone.left + (zone.width - width) / 2, top: zone.top + (zone.height - height) / 2, width, height };
|
|
88
|
+
}
|
|
89
|
+
/** Captions at a height of their own (#973 S2): pinned, so no overlay moves them. */
|
|
90
|
+
export const captionPlace = z.strictObject({
|
|
91
|
+
relative_to: z.enum(["frame", "face"]),
|
|
92
|
+
y: z.number().min(-20).max(20).describe("frame: a share of the height from the top; face: face heights from the face centre, down positive."),
|
|
93
|
+
edge: z.enum(CAPTION_EDGES).optional().describe("The edge of the caption block at y; default top at or above the middle, bottom below it."),
|
|
94
|
+
max_width: z.number().min(0.3).max(0.95).optional().describe("The widest a caption line may run, as a share of the frame's width."),
|
|
95
|
+
});
|
|
96
|
+
/** The presenter's face size and place in the frame (#973 S2b). */
|
|
97
|
+
export const presenterPlace = z.strictObject({
|
|
98
|
+
face_height: z.number().min(0.08).max(0.6).describe("The face's height as a share of the frame's height."),
|
|
99
|
+
face_centre: z.tuple([z.number().min(0).max(1), z.number().min(0).max(1)]).describe("The face centre [x, y] in shares of the frame."),
|
|
100
|
+
});
|
|
101
|
+
/** A close view's face height, measured on a delivered 9:16 close take (#973 S0, job-01 v1: 0.273–0.277); a smaller face starts from the wide view. */
|
|
102
|
+
export const CLOSE_VIEW_FACE_HEIGHT = 0.275;
|
|
103
|
+
/** Whether presenter_place starts from the actor's wide view: the crop only frames tighter, so a face smaller than the close view's needs it. */
|
|
104
|
+
export const presenterPlaceWantsWide = (item) => item !== undefined && item.face_height < CLOSE_VIEW_FACE_HEIGHT;
|
|
105
|
+
/** The face a presenter_place asks for, 3:4 in pixels as the usual face. */
|
|
106
|
+
export function presenterPlaceFace(item, canvas) {
|
|
107
|
+
const height = item.face_height, width = (0.75 * height * canvas.height) / canvas.width;
|
|
108
|
+
return { left: item.face_centre[0] - width / 2, top: item.face_centre[1] - height / 2, width, height };
|
|
109
|
+
}
|
|
110
|
+
/** The face admission plans by: the one presenter_place asks for, else the usual one of the framing. */
|
|
111
|
+
export const plannedFace = (aspectRatio, canvas, framing, item) => item ? presenterPlaceFace(item, canvas) : usualFace(aspectRatio, canvas, framing);
|
|
112
|
+
/** A caption place's height in percent of the frame and the edge it anchors by, on the face given. */
|
|
113
|
+
export function captionPlaceAt(item, face) {
|
|
114
|
+
const share = item.relative_to === "frame" ? item.y : face.top + face.height / 2 + item.y * face.height, vertical = Math.round(1e6 * share) / 1e4;
|
|
115
|
+
return { vertical, edge: captionEdgeAt(vertical, item.edge) };
|
|
116
|
+
}
|
|
117
|
+
/** The area two rects share, in squared shares of the frame. */
|
|
118
|
+
export const sharedArea = (a, b) => Math.max(0, Math.min(a.left + a.width, b.left + b.width) - Math.max(a.left, b.left)) *
|
|
119
|
+
Math.max(0, Math.min(a.top + a.height, b.top + b.height) - Math.max(a.top, b.top));
|
|
120
|
+
//# sourceMappingURL=scene-place.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scene-place.js","sourceRoot":"","sources":["../src/scene-place.ts"],"names":[],"mappings":"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"}
|