@clipwright/core 0.33.0 → 0.34.0
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/CHANGELOG.md +144 -0
- package/dist/api-failure.js +2 -1
- package/dist/api-failure.js.map +1 -1
- package/dist/asset-identity.d.ts +6 -0
- package/dist/asset-identity.js +7 -0
- package/dist/asset-identity.js.map +1 -0
- package/dist/assets.d.ts +386 -7
- package/dist/assets.js +114 -21
- package/dist/assets.js.map +1 -1
- package/dist/caption-language.d.ts +2 -0
- package/dist/caption-language.js +17 -0
- package/dist/caption-language.js.map +1 -0
- package/dist/contract-dispositions.d.ts +1133 -8
- package/dist/contract-dispositions.js +51 -11
- package/dist/contract-dispositions.js.map +1 -1
- package/dist/contracts/v1/workflow-brief.d.ts +1670 -2
- package/dist/contracts/v1/workflow-catalog.d.ts +1670 -2
- package/dist/contracts/v1/workflow-client.d.ts +835 -1
- package/dist/contracts/v1/workflow-execution.d.ts +2 -0
- package/dist/contracts/v1/workflow-plan.d.ts +2533 -31
- package/dist/endpoints.js +2 -0
- package/dist/endpoints.js.map +1 -1
- package/dist/errors.d.ts +1 -1
- package/dist/errors.js +1 -0
- package/dist/errors.js.map +1 -1
- package/dist/generations.d.ts +32 -6
- package/dist/generations.js +83 -27
- package/dist/generations.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/public-endpoints.d.ts +2 -0
- package/dist/public-endpoints.js +2 -0
- package/dist/public-endpoints.js.map +1 -1
- package/dist/resolved-timeline.d.ts +153 -0
- package/dist/resolved-timeline.js +46 -0
- package/dist/resolved-timeline.js.map +1 -1
- package/dist/run-static-warnings.js +5 -2
- package/dist/run-static-warnings.js.map +1 -1
- package/dist/semantic-inserts.d.ts +7 -0
- package/dist/semantic-inserts.js +19 -9
- package/dist/semantic-inserts.js.map +1 -1
- package/dist/skills.d.ts +4112 -77
- package/dist/skills.js +261 -16
- package/dist/skills.js.map +1 -1
- package/dist/templates/callout.d.ts +34 -0
- package/dist/templates/callout.js +51 -0
- package/dist/templates/callout.js.map +1 -0
- package/dist/templates/checklist.d.ts +42 -0
- package/dist/templates/checklist.js +47 -0
- package/dist/templates/checklist.js.map +1 -0
- package/dist/templates/compare.d.ts +26 -0
- package/dist/templates/compare.js +35 -0
- package/dist/templates/compare.js.map +1 -0
- package/dist/templates/end-card.d.ts +16 -0
- package/dist/templates/end-card.js +25 -0
- package/dist/templates/end-card.js.map +1 -0
- package/dist/templates/index.d.ts +164 -0
- package/dist/templates/index.js +382 -0
- package/dist/templates/index.js.map +1 -0
- package/dist/templates/lower-third.d.ts +18 -0
- package/dist/templates/lower-third.js +26 -0
- package/dist/templates/lower-third.js.map +1 -0
- package/dist/templates/notification.d.ts +30 -0
- package/dist/templates/notification.js +32 -0
- package/dist/templates/notification.js.map +1 -0
- package/dist/templates/phone-call.d.ts +24 -0
- package/dist/templates/phone-call.js +36 -0
- package/dist/templates/phone-call.js.map +1 -0
- package/dist/templates/progress.d.ts +22 -0
- package/dist/templates/progress.js +42 -0
- package/dist/templates/progress.js.map +1 -0
- package/dist/templates/quote.d.ts +21 -0
- package/dist/templates/quote.js +29 -0
- package/dist/templates/quote.js.map +1 -0
- package/dist/templates/rating.d.ts +22 -0
- package/dist/templates/rating.js +29 -0
- package/dist/templates/rating.js.map +1 -0
- package/dist/templates/size.d.ts +13 -0
- package/dist/templates/size.js +10 -0
- package/dist/templates/size.js.map +1 -0
- package/dist/templates/slot.d.ts +10 -0
- package/dist/templates/slot.js +5 -0
- package/dist/templates/slot.js.map +1 -0
- package/dist/templates/sounds.d.ts +351 -0
- package/dist/templates/sounds.js +67 -0
- package/dist/templates/sounds.js.map +1 -0
- package/dist/templates/stat.d.ts +20 -0
- package/dist/templates/stat.js +33 -0
- package/dist/templates/stat.js.map +1 -0
- package/dist/templates/tag.d.ts +23 -0
- package/dist/templates/tag.js +31 -0
- package/dist/templates/tag.js.map +1 -0
- package/dist/templates/theme.d.ts +29 -0
- package/dist/templates/theme.js +47 -0
- package/dist/templates/theme.js.map +1 -0
- package/dist/templates/title-card.d.ts +21 -0
- package/dist/templates/title-card.js +30 -0
- package/dist/templates/title-card.js.map +1 -0
- package/dist/tts-backend.d.ts +9 -0
- package/dist/tts-backend.js +21 -0
- package/dist/tts-backend.js.map +1 -1
- package/dist/ugc-layers.d.ts +84 -0
- package/dist/ugc-layers.js +137 -0
- package/dist/ugc-layers.js.map +1 -0
- package/dist/ugc-video-media.d.ts +12 -0
- package/dist/ugc-video-media.js +39 -0
- package/dist/ugc-video-media.js.map +1 -0
- package/dist/voice-admission.d.ts +835 -1
- package/dist/workflows/methods/faceless-explainer.d.ts +329 -2
- package/dist/workflows/methods/kinetic-launch.d.ts +329 -2
- package/dist/workflows/methods/product-image-story.d.ts +329 -2
- package/dist/workflows/methods/shared.d.ts +329 -2
- package/dist/workflows/methods/ugc-faq-answer.d.ts +329 -2
- package/dist/workflows/methods/ugc-product-intro.d.ts +329 -2
- package/dist/workflows/methods/website-proof-demo.d.ts +329 -2
- package/dist/workflows/validate.js +14 -9
- package/dist/workflows/validate.js.map +1 -1
- package/package.json +2 -2
package/dist/skills.js
CHANGED
|
@@ -1,10 +1,88 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
+
import { ASSET_KINDS, ASSET_MEDIA_TYPES, assetId } from "./asset-identity.js";
|
|
2
3
|
import { longFormQuoteSchema } from "./long-form-pricing.js";
|
|
3
4
|
import { RESOLVED_TIMELINE_MAX_SLOTS } from "./long-form-profile.js";
|
|
4
5
|
import { brollPolicy } from "./broll-policy.js";
|
|
5
6
|
import { countWords } from "./pacing.js";
|
|
7
|
+
import { lexicalTokens, quoteOccurrences } from "./semantic-inserts.js";
|
|
8
|
+
import { INSERT_TRANSITIONS, LAYER_ENTERS, layerRefusals, LAYOUT_WINDOW_KINDS, MAX_LAYOUT_WINDOWS, MAX_OVERLAYS, OVERLAY_POSITIONS } from "./ugc-layers.js";
|
|
9
|
+
import { MAX_TEMPLATE_MEDIA, MAX_TEMPLATES, TEMPLATE_KIND_IDS, TEMPLATE_PLACEMENTS, templateCatalogText, templateRefusals, templateSounds, templateTheme } from "./templates/index.js";
|
|
10
|
+
import { callout } from "./templates/callout.js";
|
|
11
|
+
import { checklist } from "./templates/checklist.js";
|
|
12
|
+
import { compare } from "./templates/compare.js";
|
|
13
|
+
import { endCard } from "./templates/end-card.js";
|
|
14
|
+
import { lowerThird } from "./templates/lower-third.js";
|
|
15
|
+
import { notification } from "./templates/notification.js";
|
|
16
|
+
import { phoneCall } from "./templates/phone-call.js";
|
|
17
|
+
import { progress } from "./templates/progress.js";
|
|
18
|
+
import { quote } from "./templates/quote.js";
|
|
19
|
+
import { rating } from "./templates/rating.js";
|
|
20
|
+
import { stat } from "./templates/stat.js";
|
|
21
|
+
import { tag } from "./templates/tag.js";
|
|
22
|
+
import { titleCard } from "./templates/title-card.js";
|
|
6
23
|
import { cutToNothingError, DEFAULT_TTS_MODEL, GOOGLE_TTS_MODEL, isModelVoiceName, MODEL_DEFAULT_VOICE_BY_GENDER, MODEL_VOICE_MODEL, resolveTtsModel, RUSSIAN_TTS_MODEL, MAX_SCRIPT_CHARS, SCRIPT_LENGTH_DESCRIPTION, speaksOwnVoices, STRESS_MARKING_DESCRIPTION, ttsScriptLimitError, TTS_MODELS, isVoicePresetName, VOICE_ID_PATTERN, VOICE_NAME_PATTERN, VOICE_PRESET_NAMES, } from "./voices.js";
|
|
7
|
-
|
|
24
|
+
/** Caption looks the renderer draws, each a fixed font, colours, placement and word animation. */
|
|
25
|
+
export const CAPTION_PRESETS = {
|
|
26
|
+
hormozi: "the default: condensed bold uppercase, two to four white words per cue mid-lower in the frame, one keyword per cue in " +
|
|
27
|
+
"orange (the emphasised words, or else the cue's longest word that is not a stop-word); Latin and Cyrillic in one font",
|
|
28
|
+
tiktok: "bold rounded uppercase, one or two words at a time; the spoken word turns yellow and grows",
|
|
29
|
+
youtube: "clean bold sans-serif, five words on a dark rounded box near the bottom; words fade in, the spoken word in red",
|
|
30
|
+
instagram: "comic uppercase with a pink outline, two words at a time; the spoken word pops in orange",
|
|
31
|
+
minimalist: "plain sans-serif, five words on a half-transparent dark band, gentle fade",
|
|
32
|
+
neon: "cyan uppercase with a magenta outline, two words at a time; the spoken word pops in white",
|
|
33
|
+
genz: "large comic uppercase, one word at a time, slamming in with a pink highlight",
|
|
34
|
+
campfire: "rounded comic uppercase, three words; spoken words light up gold and stay lit",
|
|
35
|
+
midnight: "spooky uppercase, two words, slow fade; the spoken word in red",
|
|
36
|
+
plottwist: "heavy sans-serif, three words; the spoken word turns sky blue and grows",
|
|
37
|
+
headline: "tall condensed uppercase on a solid black band, three words; the spoken word scales up in yellow",
|
|
38
|
+
promo: "heavy sans-serif on a blue pill, three words; the spoken word pops in yellow",
|
|
39
|
+
lecture: "readable sans-serif, six words on a dark rounded box; the spoken word in green",
|
|
40
|
+
highlighter: "heavy sans-serif, four words; spoken words turn lime and stay lit",
|
|
41
|
+
studio: "sans-serif, seven words typed in on a blurred dark box; the spoken word in amber",
|
|
42
|
+
broadcast: "outlined sans-serif, eight words low in the frame; the spoken word in pale yellow",
|
|
43
|
+
arcade: "blocky yellow uppercase, two words; the spoken word bounces in white",
|
|
44
|
+
clutch: "brush uppercase, one word at a time, slamming in green",
|
|
45
|
+
bubblegum: "rounded display letters with a pink outline, two words; the spoken word bounces in yellow",
|
|
46
|
+
crayon: "marker handwriting with a navy outline, two words; the spoken word pops in orange",
|
|
47
|
+
lyrics: "handwritten script, five words; spoken words light up pink and stay lit",
|
|
48
|
+
bassdrop: "outlined display uppercase, one word at a time, scaling in orange",
|
|
49
|
+
punch: "mid-frame setup and punch: a small white lead-in line over one or two large blue glowing keywords; other words small and white",
|
|
50
|
+
};
|
|
51
|
+
export const CAPTION_PRESET_IDS = Object.keys(CAPTION_PRESETS);
|
|
52
|
+
/** An earlier style name kept valid. */
|
|
53
|
+
export const CAPTION_STYLE_ALIASES = { minimal: "minimalist" };
|
|
54
|
+
export const CAPTION_STYLES = [...CAPTION_PRESET_IDS, ...Object.keys(CAPTION_STYLE_ALIASES)];
|
|
55
|
+
/** The preset a style name draws: an alias resolves to its preset. */
|
|
56
|
+
export function captionPresetOf(style) {
|
|
57
|
+
return style in CAPTION_STYLE_ALIASES ? CAPTION_STYLE_ALIASES[style] : style;
|
|
58
|
+
}
|
|
59
|
+
const CAPTION_STYLE_DESCRIPTION = "Caption look when captions=true. " +
|
|
60
|
+
CAPTION_PRESET_IDS.map((id) => `${id}: ${CAPTION_PRESETS[id]}.`).join(" ") +
|
|
61
|
+
" Alias: minimal draws minimalist. A font that cannot draw the script's letters is replaced by a plain sans-serif.";
|
|
62
|
+
export const MAX_CAPTION_EMPHASIS = 20;
|
|
63
|
+
export const MAX_CAPTION_EMPHASIS_CHARS = 40;
|
|
64
|
+
/** `full` captions every spoken word; `highlights` only the windows around `caption_emphasis` quotes. */
|
|
65
|
+
export const CAPTION_MODES = ["full", "highlights"];
|
|
66
|
+
/** `punch`: a small lead-in line over the quote as a large glowing keyword; `pill`: the quote alone in a rounded pill; */
|
|
67
|
+
/** `color`: the quote in the style's accent colour, same size. */
|
|
68
|
+
export const CAPTION_EMPHASIS_LOOKS = ["punch", "pill", "color"];
|
|
69
|
+
const emphasisQuote = z.string().min(1).max(MAX_CAPTION_EMPHASIS_CHARS).refine((text) => text.trim().length > 0);
|
|
70
|
+
export const captionEmphasisItem = z.union([emphasisQuote,
|
|
71
|
+
z.object({ quote: emphasisQuote, look: z.enum(CAPTION_EMPHASIS_LOOKS).optional(),
|
|
72
|
+
punch_in: z.boolean().optional().describe("Long form only: zoom into the presenter while the quote is spoken. " +
|
|
73
|
+
"Drawn only where captions are drawn and the presenter is on screen; otherwise warnings[] names it.") }).strict()]);
|
|
74
|
+
/** An emphasis item as quote, look and punch-in; a plain string, or an object without a look, takes the preset's look. */
|
|
75
|
+
export function captionEmphasisOf(item) {
|
|
76
|
+
return typeof item === "string" ? { quote: item, look: undefined }
|
|
77
|
+
: { quote: item.quote, look: item.look, ...(item.punch_in === true ? { punchIn: true } : {}) };
|
|
78
|
+
}
|
|
79
|
+
/** Composition semantics of a run, written at admission: 2 draws captions and crops pictures */
|
|
80
|
+
/** to fill the frame; a run stored without it keeps the earlier render, so it re-renders the same. */
|
|
81
|
+
export const UGC_COMPOSITION_VERSION = 2;
|
|
82
|
+
export function compositionVersionOf(storedInput) {
|
|
83
|
+
return storedInput !== null && typeof storedInput === "object" &&
|
|
84
|
+
storedInput.composition_version === UGC_COMPOSITION_VERSION ? 2 : 1;
|
|
85
|
+
}
|
|
8
86
|
export const LOOKS = ["natural", "commercial", "raw_iphone"];
|
|
9
87
|
/** Public formats = formats MEASURED live, not the vendor docs: declaring more would */
|
|
10
88
|
/** accept values the pipeline later rejects. */
|
|
@@ -54,6 +132,8 @@ export const MAKE_FACELESS_AGENT_PROTOCOL = "Call quote_faceless first and show
|
|
|
54
132
|
"starts the run and returns a run_id IMMEDIATELY. Then poll get_run with that run_id until the " +
|
|
55
133
|
"state is 'succeeded' (video_url) or 'failed'. Pass attempt=2,3,… to deliberately start a NEW " +
|
|
56
134
|
"run for the same input.";
|
|
135
|
+
const IMAGE_MOTION_DESCRIPTION = "Optional picture zoom. A picture always fills the frame, cut to its shape when the shapes differ " +
|
|
136
|
+
"(warnings[] names the share cut). amount is the zoom beyond filling: in grows from 1 to 1+amount, out shrinks from 1+amount to 1. No motion by default.";
|
|
57
137
|
/** One clip segment. `segments` makes `script` optional, changing `required[]` in `tools/list`, */
|
|
58
138
|
/** so the shape was declared once up front instead of changing the public form later. */
|
|
59
139
|
export const ugcSegment = z.object({
|
|
@@ -69,7 +149,7 @@ export const ugcSegment = z.object({
|
|
|
69
149
|
image_motion: z.object({
|
|
70
150
|
direction: z.enum(["in", "out"]),
|
|
71
151
|
amount: z.number().min(0).lt(1),
|
|
72
|
-
}).optional().describe(
|
|
152
|
+
}).optional().describe(IMAGE_MOTION_DESCRIPTION),
|
|
73
153
|
}).superRefine((segment, context) => {
|
|
74
154
|
if (segment.kind === "actor") {
|
|
75
155
|
for (const field of ["media_type", "duration_seconds", "image_motion"]) {
|
|
@@ -88,24 +168,108 @@ export const ugcSegment = z.object({
|
|
|
88
168
|
}
|
|
89
169
|
}
|
|
90
170
|
});
|
|
171
|
+
const insertId = z.string().regex(/^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$/);
|
|
172
|
+
const wordAnchor = z.union([
|
|
173
|
+
z.object({ startWord: z.number().int().nonnegative(), endWord: z.number().int().positive() })
|
|
174
|
+
.strict().refine(range => range.endWord > range.startWord, { message: "endWord must be greater than startWord" }),
|
|
175
|
+
z.object({ quote: z.string().min(1).max(MAX_SCRIPT_CHARS).refine(text => text.trim().length > 0),
|
|
176
|
+
occurrence: z.number().int().nonnegative().optional() }).strict(),
|
|
177
|
+
]);
|
|
178
|
+
const mediaSource = {
|
|
179
|
+
media_url: z.string().url().max(MAX_URL_LENGTH).startsWith("https://").optional()
|
|
180
|
+
.describe("Public https URL of the media. Pass exactly one of media_url or asset_id."),
|
|
181
|
+
media_type: z.enum(["image", "video"])
|
|
182
|
+
.describe("image (PNG or JPEG) or video (MP4, H.264 or HEVC, 8-bit SDR). A video plays muted from its first frame and is cut where its words end; " +
|
|
183
|
+
"one shorter than its words holds its last frame, and warnings[] names it."),
|
|
184
|
+
};
|
|
185
|
+
const hasOneSource = (item) => (item.media_url === undefined) !== (item.asset_id === undefined);
|
|
186
|
+
const ONE_SOURCE = { path: ["media_url"], message: "pass exactly one of media_url or asset_id" };
|
|
91
187
|
export const ugcInsert = z.object({
|
|
92
|
-
id:
|
|
93
|
-
media_url:
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
occurrence: z.number().int().nonnegative().optional() }).strict(),
|
|
100
|
-
]),
|
|
188
|
+
id: insertId,
|
|
189
|
+
media_url: mediaSource.media_url,
|
|
190
|
+
asset_id: assetId.optional()
|
|
191
|
+
.describe("A ready PNG or JPEG image or MP4 video from your own assets (list_assets), instead of media_url. Pass exactly one of the two; " +
|
|
192
|
+
"media_type must match the asset's kind."),
|
|
193
|
+
media_type: mediaSource.media_type,
|
|
194
|
+
anchor: wordAnchor,
|
|
101
195
|
cover_words: z.number().int().positive().max(10000).optional()
|
|
102
196
|
.describe("How many spoken words this insert covers, counted from the first word of its anchor. " +
|
|
103
197
|
"Omitted means the anchored words only. The insert ends where the first uncovered word begins, " +
|
|
104
198
|
"so inserts whose coverage meets are adjacent frame for frame and leave no actor shot between them."),
|
|
105
|
-
image_motion: z.object({ direction: z.enum(["in", "out"]), amount: z.number().min(0).lt(1) }).strict().optional()
|
|
199
|
+
image_motion: z.object({ direction: z.enum(["in", "out"]), amount: z.number().min(0).lt(1) }).strict().optional()
|
|
200
|
+
.describe(IMAGE_MOTION_DESCRIPTION),
|
|
201
|
+
transition: z.enum(INSERT_TRANSITIONS).optional()
|
|
202
|
+
.describe("How the insert comes in and goes out: cut (default), wipe (slides across the presenter), flash (a white flash on the cut) " +
|
|
203
|
+
"or zoom (eases in from a closer framing). It never moves the insert's start or end."),
|
|
106
204
|
}).strict().refine(insert => insert.image_motion === undefined || insert.media_type === "image", {
|
|
107
205
|
path: ["image_motion"], message: "image_motion requires media_type=image",
|
|
206
|
+
}).refine(hasOneSource, ONE_SOURCE);
|
|
207
|
+
const layerMedia = {
|
|
208
|
+
id: insertId.describe("Unique across inserts, overlays and layout_windows."),
|
|
209
|
+
...mediaSource,
|
|
210
|
+
asset_id: assetId.optional()
|
|
211
|
+
.describe("A ready PNG or JPEG image or MP4 video from your own assets (list_assets), instead of media_url. Pass exactly one of the two; " +
|
|
212
|
+
"media_type must match the asset's kind."),
|
|
213
|
+
anchor: wordAnchor.describe("The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."),
|
|
214
|
+
cover_words: z.number().int().positive().max(10000).optional()
|
|
215
|
+
.describe("How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only."),
|
|
216
|
+
enter: z.enum(LAYER_ENTERS).optional()
|
|
217
|
+
.describe("How it appears: cut (default), fade, slide (in from the nearest edge) or tilt_in. It leaves with a cut."),
|
|
218
|
+
};
|
|
219
|
+
/** Media drawn over the visible presenter at a fixed place; the presenter stays on screen and is billed. */
|
|
220
|
+
export const ugcOverlay = z.object({
|
|
221
|
+
...layerMedia,
|
|
222
|
+
position: z.enum(OVERLAY_POSITIONS).describe("A corner (top_left, top_right, bottom_left, bottom_right), or a band across the top or bottom."),
|
|
223
|
+
}).strict().refine(hasOneSource, ONE_SOURCE);
|
|
224
|
+
/** A reframing of the presenter: split shares a 9:16 frame with the media, card shows the media in a centred card. */
|
|
225
|
+
export const ugcLayoutWindow = z.object({
|
|
226
|
+
...layerMedia,
|
|
227
|
+
layout: z.enum(LAYOUT_WINDOW_KINDS).describe("split: presenter in the top half, media in the bottom half, captions on the seam (9:16 only). " +
|
|
228
|
+
"card: the media in a centred card over the presenter."),
|
|
229
|
+
blur_presenter: z.boolean().optional().describe("Card only: blur the presenter behind the card."),
|
|
230
|
+
}).strict().refine(hasOneSource, ONE_SOURCE).refine(layout => layout.blur_presenter === undefined || layout.layout === "card", {
|
|
231
|
+
path: ["blur_presenter"], message: "blur_presenter works on a card window only",
|
|
108
232
|
});
|
|
233
|
+
const templateEnvelope = {
|
|
234
|
+
id: insertId.describe("Unique across inserts, overlays, layout_windows and templates."),
|
|
235
|
+
anchor: layerMedia.anchor,
|
|
236
|
+
cover_words: layerMedia.cover_words,
|
|
237
|
+
placement: z.enum(TEMPLATE_PLACEMENTS).optional().describe("over (drawn over the presenter) or full (fills the frame); omitted means the " +
|
|
238
|
+
"kind's first placement, and a kind takes only the placements its catalog line names."),
|
|
239
|
+
transition: z.enum(INSERT_TRANSITIONS).optional().describe("Full placement only, as an insert's transition."),
|
|
240
|
+
};
|
|
241
|
+
const templateItem = (kind) => z.object({ ...templateEnvelope, kind: z.literal(kind.kind), data: kind.data }).strict();
|
|
242
|
+
/** A graphic template (#778 S3): REST and the SDK take the strict union, `data` checked by `kind`. */
|
|
243
|
+
export const ugcTemplate = z.discriminatedUnion("kind", [templateItem({ ...tag, kind: "tag" }),
|
|
244
|
+
templateItem({ ...lowerThird, kind: "lower_third" }), templateItem({ ...endCard, kind: "end_card" }),
|
|
245
|
+
templateItem({ ...titleCard, kind: "title_card" }), templateItem({ ...quote, kind: "quote" }), templateItem({ ...stat, kind: "stat" }),
|
|
246
|
+
templateItem({ ...callout, kind: "callout" }), templateItem({ ...checklist, kind: "checklist" }),
|
|
247
|
+
templateItem({ ...phoneCall, kind: "phone_call" }), templateItem({ ...compare, kind: "compare" }),
|
|
248
|
+
templateItem({ ...notification, kind: "notification" }), templateItem({ ...progress, kind: "progress" }),
|
|
249
|
+
templateItem({ ...rating, kind: "rating" })]);
|
|
250
|
+
/** The slim MCP item: `data` is any object here, the catalog sits in the description and the server checks it strictly (D3). */
|
|
251
|
+
export const mcpUgcTemplate = z.object({ ...templateEnvelope, kind: z.enum(TEMPLATE_KIND_IDS),
|
|
252
|
+
data: z.record(z.string(), z.unknown()).describe("The kind's fields, as its catalog line in templates names them.") }).strict();
|
|
253
|
+
export const TEMPLATES_DESCRIPTION = templateCatalogText();
|
|
254
|
+
/** What admission pins for an `asset_id` insert; the worker reads this key and checks this hash, never the asset row.
|
|
255
|
+
* Server-only: it lives at the top of the stored input, and a public body naming it is refused as an unknown field. */
|
|
256
|
+
export const pinnedInsertAsset = z.object({
|
|
257
|
+
insert_id: insertId,
|
|
258
|
+
/** A template's media slot; ids refuse `.`, so `<id>.<slot>` keys never meet an overlay's (A1). */
|
|
259
|
+
slot: z.string().regex(/^[a-z][a-z_]{0,31}$/).optional(),
|
|
260
|
+
asset_id: assetId,
|
|
261
|
+
key: z.string().min(1).max(1024),
|
|
262
|
+
sha256: z.string().regex(/^[a-f0-9]{64}$/),
|
|
263
|
+
bytes: z.number().int().positive(),
|
|
264
|
+
kind: z.enum(ASSET_KINDS),
|
|
265
|
+
media_type: z.enum(ASSET_MEDIA_TYPES),
|
|
266
|
+
width: z.number().int().positive(),
|
|
267
|
+
height: z.number().int().positive(),
|
|
268
|
+
duration_frames: z.number().int().positive().optional(),
|
|
269
|
+
fps: z.number().int().positive().optional(),
|
|
270
|
+
codec: z.string().min(1).optional(),
|
|
271
|
+
pix_fmt: z.string().min(1).optional(),
|
|
272
|
+
}).strict();
|
|
109
273
|
/** Actor segment cap: a limit on ONE run, not on daily spend. */
|
|
110
274
|
export const MAX_ACTOR_SEGMENTS = 3;
|
|
111
275
|
export const MAX_SEGMENTS = 5;
|
|
@@ -130,8 +294,19 @@ export const makeUgcInputShape = {
|
|
|
130
294
|
inserts: z.array(ugcInsert).min(1).max(MAX_INSERTS)
|
|
131
295
|
.refine(inserts => new Set(inserts.map(insert => insert.id)).size === inserts.length, {
|
|
132
296
|
message: "insert IDs must be unique",
|
|
133
|
-
}).optional().describe("Text-anchored image inserts over full narration, each covering cover_words spoken words from its anchor; " +
|
|
134
|
-
"requires long-form qualification on the server,
|
|
297
|
+
}).optional().describe("Text-anchored image or video inserts over full narration, each covering cover_words spoken words from its anchor; " +
|
|
298
|
+
"requires long-form qualification on the server, 1080p and explicit broll_policy=anyone. Captions draw over inserts."),
|
|
299
|
+
overlays: z.array(ugcOverlay).min(1).max(MAX_OVERLAYS).optional()
|
|
300
|
+
.describe("Text-anchored images or videos over the visible presenter, in a corner or a band at the top or bottom. At most 2 on screen at once, " +
|
|
301
|
+
"and two on screen together need positions that do not share a corner. Captions move to the middle or bottom third when an overlay " +
|
|
302
|
+
"meets them, never up over the face, and hide while neither is free. An overlay is not drawn while a full-frame insert is on screen. Same requirements as inserts: script, " +
|
|
303
|
+
"long-form qualification on the server, 1080p and explicit broll_policy=anyone. The presenter stays on screen, so the price does not change."),
|
|
304
|
+
layout_windows: z.array(ugcLayoutWindow).min(1).max(MAX_LAYOUT_WINDOWS).optional()
|
|
305
|
+
.describe("Text-anchored reframings of the presenter: split (9:16 only) or card. Windows may not overlap one another or an insert. " +
|
|
306
|
+
"Same requirements as inserts. A covered or blurred presenter is still delivered vendor work and is billed as face time."),
|
|
307
|
+
templates: z.array(ugcTemplate).min(1).max(MAX_TEMPLATES).optional().describe(TEMPLATES_DESCRIPTION),
|
|
308
|
+
template_theme: templateTheme.optional().describe("The look of every template in the run: a preset and an optional accent; only with templates."),
|
|
309
|
+
template_sounds: templateSounds.optional(),
|
|
135
310
|
person: z.string().min(1).max(500).optional(),
|
|
136
311
|
actor_id: actorId
|
|
137
312
|
.optional()
|
|
@@ -162,8 +337,18 @@ export const makeUgcInputShape = {
|
|
|
162
337
|
name: z.string().max(100).optional(),
|
|
163
338
|
broll_url: z.string().url().max(MAX_URL_LENGTH).optional(),
|
|
164
339
|
broll_policy: brollPolicy.optional(),
|
|
165
|
-
captions: z.boolean().default(false),
|
|
166
|
-
caption_style: z.enum(CAPTION_STYLES).default("hormozi"),
|
|
340
|
+
captions: z.boolean().default(false).describe("Burn word-timed captions into the video, over the presenter and over inserts. Not available with segments."),
|
|
341
|
+
caption_style: z.enum(CAPTION_STYLES).default("hormozi").describe(CAPTION_STYLE_DESCRIPTION),
|
|
342
|
+
caption_emphasis: z.array(captionEmphasisItem)
|
|
343
|
+
.min(1).max(MAX_CAPTION_EMPHASIS).optional().describe("Key words or short phrases to emphasise, each quoted from script and matched as an insert quote is (case and punctuation " +
|
|
344
|
+
"ignored). An item is the quote, or { quote, look }: look punch shows a small lead-in line from the same sentence over the " +
|
|
345
|
+
"quote as a large glowing keyword, look pill shows the quote alone in a rounded pill, look color shows it in the accent " +
|
|
346
|
+
"colour at the same size. Without a look, punch draws punch, hormozi draws color, and other presets draw the quote larger " +
|
|
347
|
+
"in their highlight colour. Every occurrence is emphasised. Requires " +
|
|
348
|
+
"captions=true and script; a quote absent from script is refused before any charge."),
|
|
349
|
+
caption_mode: z.enum(CAPTION_MODES).optional().describe("full (default when omitted): every spoken word is captioned. highlights: captions appear only around caption_emphasis " +
|
|
350
|
+
"quotes (lead-in, quote, short tail) and nowhere else; requires caption_emphasis. In both modes captions are hidden while a " +
|
|
351
|
+
"full-frame insert is on screen or a template meets their band."),
|
|
167
352
|
look: z.enum(LOOKS).default("natural"),
|
|
168
353
|
// No .default(), so the resolver tells silence (snap with a warning) from an explicit
|
|
169
354
|
// choice (refused on conflict). DEFAULT_ASPECT_RATIO (aspect.ts) fills it in.
|
|
@@ -242,6 +427,46 @@ export const makeUgcInput = z
|
|
|
242
427
|
})
|
|
243
428
|
.refine(v => v.inserts === undefined || (v.script !== undefined && v.segments === undefined), {
|
|
244
429
|
path: ["inserts"], message: "inserts requires script and cannot be combined with segments",
|
|
430
|
+
})
|
|
431
|
+
.superRefine((v, context) => {
|
|
432
|
+
if (v.overlays === undefined && v.layout_windows === undefined)
|
|
433
|
+
return;
|
|
434
|
+
if (v.script === undefined || v.segments !== undefined) {
|
|
435
|
+
context.addIssue({ code: z.ZodIssueCode.custom, path: [v.overlays === undefined ? "layout_windows" : "overlays"],
|
|
436
|
+
message: "overlays and layout_windows require script and cannot be combined with segments" });
|
|
437
|
+
return;
|
|
438
|
+
}
|
|
439
|
+
for (const refusal of layerRefusals({ ...v, script: v.script }))
|
|
440
|
+
context.addIssue({ code: z.ZodIssueCode.custom, ...refusal });
|
|
441
|
+
})
|
|
442
|
+
// Template refusals sit in the schema, so REST, quote_ugc and MCP refuse alike before any hold (D4, A9).
|
|
443
|
+
.superRefine((v, context) => {
|
|
444
|
+
for (const refusal of templateRefusals(v))
|
|
445
|
+
context.addIssue({ code: z.ZodIssueCode.custom, ...refusal });
|
|
446
|
+
})
|
|
447
|
+
.refine(v => !v.captions || v.segments === undefined, {
|
|
448
|
+
path: ["captions"], message: "captions are not available with segments: pass script, with inserts for cutaways, or captions=false",
|
|
449
|
+
})
|
|
450
|
+
.superRefine((v, context) => {
|
|
451
|
+
if (v.caption_mode === "highlights" && (!v.captions || v.caption_emphasis === undefined)) {
|
|
452
|
+
context.addIssue({ code: z.ZodIssueCode.custom, path: ["caption_mode"],
|
|
453
|
+
message: "caption_mode=highlights requires captions=true and caption_emphasis: highlights are drawn only around the quotes you emphasise" });
|
|
454
|
+
}
|
|
455
|
+
if (v.caption_emphasis === undefined)
|
|
456
|
+
return;
|
|
457
|
+
if (!v.captions || v.script === undefined) {
|
|
458
|
+
context.addIssue({ code: z.ZodIssueCode.custom, path: ["caption_emphasis"],
|
|
459
|
+
message: "caption_emphasis requires captions=true and script: it marks words of the burned captions" });
|
|
460
|
+
return;
|
|
461
|
+
}
|
|
462
|
+
const tokens = lexicalTokens(v.script);
|
|
463
|
+
for (const [index, item] of v.caption_emphasis.entries()) {
|
|
464
|
+
const { quote } = captionEmphasisOf(item);
|
|
465
|
+
if (quoteOccurrences(tokens, quote).length === 0) {
|
|
466
|
+
context.addIssue({ code: z.ZodIssueCode.custom, path: ["caption_emphasis", index],
|
|
467
|
+
message: `caption_emphasis "${quote}" does not occur in script: quote words exactly as the script spells them` });
|
|
468
|
+
}
|
|
469
|
+
}
|
|
245
470
|
})
|
|
246
471
|
.superRefine((v, context) => {
|
|
247
472
|
for (const refusal of speechModelRefusals(v)) {
|
|
@@ -330,6 +555,10 @@ export function speechModelRefusals(input) {
|
|
|
330
555
|
`segments are not available with ${model}: pass script for a single take, ${otherModel}`],
|
|
331
556
|
["inserts", input.inserts !== undefined,
|
|
332
557
|
`inserts are not available with ${model}: it returns no word timings to anchor them; omit inserts, ${otherModel}`],
|
|
558
|
+
["overlays", input.overlays !== undefined,
|
|
559
|
+
`overlays are not available with ${model}: it returns no word timings to anchor them; omit overlays, ${otherModel}`],
|
|
560
|
+
["layout_windows", input.layout_windows !== undefined,
|
|
561
|
+
`layout_windows are not available with ${model}: it returns no word timings to anchor them; omit layout_windows, ${otherModel}`],
|
|
333
562
|
];
|
|
334
563
|
return candidates.filter(([, refused]) => refused).map(([field, , message]) => ({ field, message }));
|
|
335
564
|
}
|
|
@@ -355,7 +584,18 @@ export const storedUgcInput = z.object({
|
|
|
355
584
|
...makeUgcInputShape,
|
|
356
585
|
tts_model: z.string().optional(),
|
|
357
586
|
actor_snapshot: z.object({ gender: z.enum(["female", "male"]).optional() }).optional(),
|
|
587
|
+
insert_assets: z.array(pinnedInsertAsset).min(1).max(MAX_INSERTS + MAX_OVERLAYS + MAX_LAYOUT_WINDOWS + MAX_TEMPLATE_MEDIA).optional(),
|
|
588
|
+
composition_version: z.literal(UGC_COMPOSITION_VERSION).optional(),
|
|
358
589
|
});
|
|
590
|
+
/** Whether a run takes the narrated long-form path: one script with inserts, overlays or layout windows. */
|
|
591
|
+
export function isNarratedUgcInput(input) {
|
|
592
|
+
return input.segments === undefined && (input.inserts !== undefined || input.overlays !== undefined || input.layout_windows !== undefined);
|
|
593
|
+
}
|
|
594
|
+
/** The pinned asset of an `asset_id` insert, overlay, layout window or template slot in a stored input; a public input has none. */
|
|
595
|
+
export function pinnedInsertAssetOf(input, insertId, slot) {
|
|
596
|
+
const pinned = input.insert_assets;
|
|
597
|
+
return pinned?.find(asset => asset.insert_id === insertId && asset.slot === slot);
|
|
598
|
+
}
|
|
359
599
|
/** What the worker voices apart: the script, or each actor segment's line. */
|
|
360
600
|
function spokenUnitsOf(input) {
|
|
361
601
|
if (input.script !== undefined)
|
|
@@ -379,8 +619,13 @@ export function resolvedScript(input) {
|
|
|
379
619
|
}
|
|
380
620
|
// The INPUT type (`MakeUgcInputArgs`) lives in `contract-dispositions.ts`: it comes from the
|
|
381
621
|
// OFFERED shape, so SDK autocomplete does not show rejected fields.
|
|
622
|
+
/** A plain run's tariff: 30 credits per second of finished video, known by the absence of `run_billing_terms` (#840 D2). */
|
|
623
|
+
export const UGC_PER_SECOND_TARIFF = "ugc-per-second-v1";
|
|
382
624
|
export const quoteResponse = z.object({
|
|
383
625
|
long_form_pricing: longFormQuoteSchema.optional(),
|
|
626
|
+
/** The tariff the run is admitted at: `ugc-per-second-v1`, or long form's `pricingVersion` (#840 D3). A string, not an enum: a */
|
|
627
|
+
/** tariff the client does not know yet must not break `quote`; optional, so a quote stored before it still reads. */
|
|
628
|
+
tariff: z.string().min(1).max(200).optional(),
|
|
384
629
|
skill: z.string(),
|
|
385
630
|
credits_estimate: z.number().int().nonnegative(),
|
|
386
631
|
duration_estimate_sec: z.number().positive(),
|
package/dist/skills.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skills.js","sourceRoot":"","sources":["../src/skills.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"skills.js","sourceRoot":"","sources":["../src/skills.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { type LayerRect } from "../ugc-layers.js";
|
|
3
|
+
import type { TemplateKind } from "./index.js";
|
|
4
|
+
export declare const CALLOUT_STYLES: readonly ["arrow", "ring"];
|
|
5
|
+
/** The label's text at medium on a 1080 short side. */
|
|
6
|
+
export declare const CALLOUT_FONT_PX = 60;
|
|
7
|
+
/** The pointer's square is this many label sizes wide, and the label's band this many high; the composition reads the size back from the band. */
|
|
8
|
+
export declare const CALLOUT_POINTER_EMS = 3.6;
|
|
9
|
+
export declare const CALLOUT_LABEL_EMS = 1.6;
|
|
10
|
+
declare const data: z.ZodObject<{
|
|
11
|
+
target: z.ZodObject<{
|
|
12
|
+
x: z.ZodNumber;
|
|
13
|
+
y: z.ZodNumber;
|
|
14
|
+
}, z.core.$strict>;
|
|
15
|
+
style: z.ZodEnum<{
|
|
16
|
+
arrow: "arrow";
|
|
17
|
+
ring: "ring";
|
|
18
|
+
}>;
|
|
19
|
+
text: z.ZodOptional<z.ZodString>;
|
|
20
|
+
size: z.ZodOptional<z.ZodEnum<{
|
|
21
|
+
large: "large";
|
|
22
|
+
medium: "medium";
|
|
23
|
+
small: "small";
|
|
24
|
+
}>>;
|
|
25
|
+
}, z.core.$strict>;
|
|
26
|
+
type Data = z.infer<typeof data>;
|
|
27
|
+
/** The pointer's square centred on the target, uncropped, and the label's band below it, else above it, off the face when a side allows (D5). */
|
|
28
|
+
export declare function calloutParts(value: Data, aspectRatio: string): {
|
|
29
|
+
pointer: LayerRect;
|
|
30
|
+
label: LayerRect;
|
|
31
|
+
};
|
|
32
|
+
/** An arrow or ring on a point of the frame, with an optional label; it may point at the face, but its label keeps off it when it can. */
|
|
33
|
+
export declare const callout: TemplateKind<typeof data>;
|
|
34
|
+
export {};
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { faceZone, frameCanvasOf, rectsOverlap } from "../ugc-layers.js";
|
|
3
|
+
import { sizedScale, templateSize } from "./size.js";
|
|
4
|
+
export const CALLOUT_STYLES = ["arrow", "ring"];
|
|
5
|
+
/** The label's text at medium on a 1080 short side. */
|
|
6
|
+
export const CALLOUT_FONT_PX = 60;
|
|
7
|
+
/** The pointer's square is this many label sizes wide, and the label's band this many high; the composition reads the size back from the band. */
|
|
8
|
+
export const CALLOUT_POINTER_EMS = 3.6;
|
|
9
|
+
export const CALLOUT_LABEL_EMS = 1.6;
|
|
10
|
+
const percent = z.number().min(0).max(100);
|
|
11
|
+
const data = z.object({ target: z.object({ x: percent, y: percent }).strict(), style: z.enum(CALLOUT_STYLES), text: z.string().min(1).max(24).optional(),
|
|
12
|
+
size: templateSize }).strict();
|
|
13
|
+
/** The pointer's square centred on the target, uncropped, and the label's band below it, else above it, off the face when a side allows (D5). */
|
|
14
|
+
export function calloutParts(value, aspectRatio) {
|
|
15
|
+
const canvas = frameCanvasOf(aspectRatio), { width: w, height: h } = canvas, scale = sizedScale(value.size, canvas);
|
|
16
|
+
const side = Math.round(CALLOUT_POINTER_EMS * CALLOUT_FONT_PX * scale), band = Math.round(CALLOUT_LABEL_EMS * CALLOUT_FONT_PX * scale);
|
|
17
|
+
const width = Math.round(Math.min(0.9 * w, 0.8 * Math.min(w, h) * scale));
|
|
18
|
+
const x = Math.round((value.target.x / 100) * w), y = Math.round((value.target.y / 100) * h);
|
|
19
|
+
const left = Math.min(Math.max(0, x - Math.round(width / 2)), w - width);
|
|
20
|
+
const share = (l, t, rw, rh) => ({ left: l / w, top: t / h, width: rw / w, height: rh / h });
|
|
21
|
+
const sides = [y + Math.round(side / 2), y - Math.round(side / 2) - band].map(top => share(left, top, width, band));
|
|
22
|
+
const fits = (rect) => rect.top >= 0 && rect.top + rect.height <= 1;
|
|
23
|
+
const label = sides.find(rect => fits(rect) && !rectsOverlap(rect, faceZone(aspectRatio))) ?? sides.find(fits) ?? sides[0];
|
|
24
|
+
return { pointer: share(x - Math.round(side / 2), y - Math.round(side / 2), side, side), label };
|
|
25
|
+
}
|
|
26
|
+
/** The footprint: the pointer's square cropped to the frame, and the label's band when there is text. */
|
|
27
|
+
function footprint(value, aspectRatio) {
|
|
28
|
+
const { pointer, label } = calloutParts(value, aspectRatio);
|
|
29
|
+
const boxes = [pointer, ...(value.text ? [label] : [])];
|
|
30
|
+
const left = Math.max(0, Math.min(...boxes.map(box => box.left))), top = Math.max(0, Math.min(...boxes.map(box => box.top)));
|
|
31
|
+
const right = Math.min(1, Math.max(...boxes.map(box => box.left + box.width))), bottom = Math.min(1, Math.max(...boxes.map(box => box.top + box.height)));
|
|
32
|
+
return { left, top, width: right - left, height: bottom - top };
|
|
33
|
+
}
|
|
34
|
+
/** An arrow or ring on a point of the frame, with an optional label; it may point at the face, but its label keeps off it when it can. */
|
|
35
|
+
export const callout = {
|
|
36
|
+
kind: "callout",
|
|
37
|
+
kindVersion: 1,
|
|
38
|
+
description: "an arrow or ring that lands on a point of the frame and pulses, target {x,y} in % of the frame from its top left, with an " +
|
|
39
|
+
"optional label pill below or above it; it may point at the face, its label keeps off the face where it can; also over an insert",
|
|
40
|
+
placements: ["over"],
|
|
41
|
+
data,
|
|
42
|
+
text: { text: 24 },
|
|
43
|
+
slots: {},
|
|
44
|
+
hidesCaptions: () => false,
|
|
45
|
+
onInserts: true,
|
|
46
|
+
rect: footprint,
|
|
47
|
+
parts: (value, aspectRatio) => calloutParts(value, aspectRatio),
|
|
48
|
+
faceRect: (value, aspectRatio) => (value.text ? calloutParts(value, aspectRatio).label : undefined),
|
|
49
|
+
sample: { target: { x: 50, y: 70 }, style: "ring", text: "tap to answer" },
|
|
50
|
+
};
|
|
51
|
+
//# sourceMappingURL=callout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"callout.js","sourceRoot":"","sources":["../../src/templates/callout.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import type { TemplateKind } from "./index.js";
|
|
3
|
+
export declare const CHECKLIST_ICONS: readonly ["phone", "briefcase", "user", "clock", "chat", "star"];
|
|
4
|
+
/** A row's label at medium on a 1080 short side, as the toggle cards of reference seconds 18–23. */
|
|
5
|
+
export declare const CHECKLIST_FONT_PX = 60;
|
|
6
|
+
/** Label sizes: a row's height, the gap between rows, the cursor's room under and right of the list, and the list's width. */
|
|
7
|
+
export declare const CHECKLIST_EMS: {
|
|
8
|
+
readonly row: 1.9;
|
|
9
|
+
readonly gap: 0.3;
|
|
10
|
+
readonly cursor: 1.5;
|
|
11
|
+
readonly width: 14;
|
|
12
|
+
};
|
|
13
|
+
declare const data: z.ZodObject<{
|
|
14
|
+
items: z.ZodArray<z.ZodObject<{
|
|
15
|
+
label: z.ZodString;
|
|
16
|
+
on: z.ZodBoolean;
|
|
17
|
+
icon: z.ZodOptional<z.ZodEnum<{
|
|
18
|
+
briefcase: "briefcase";
|
|
19
|
+
chat: "chat";
|
|
20
|
+
clock: "clock";
|
|
21
|
+
phone: "phone";
|
|
22
|
+
star: "star";
|
|
23
|
+
user: "user";
|
|
24
|
+
}>>;
|
|
25
|
+
}, z.core.$strict>>;
|
|
26
|
+
clicks: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
27
|
+
item: z.ZodNumber;
|
|
28
|
+
quote: z.ZodOptional<z.ZodString>;
|
|
29
|
+
}, z.core.$strict>>>;
|
|
30
|
+
style: z.ZodOptional<z.ZodEnum<{
|
|
31
|
+
check: "check";
|
|
32
|
+
switch: "switch";
|
|
33
|
+
}>>;
|
|
34
|
+
size: z.ZodOptional<z.ZodEnum<{
|
|
35
|
+
large: "large";
|
|
36
|
+
medium: "medium";
|
|
37
|
+
small: "small";
|
|
38
|
+
}>>;
|
|
39
|
+
}, z.core.$strict>;
|
|
40
|
+
/** Rows of toggles over the presenter, clicked on in turn by a cursor: below the face in tall and square frames, beside it in wide ones. */
|
|
41
|
+
export declare const checklist: TemplateKind<typeof data>;
|
|
42
|
+
export {};
|