onda-engine 0.1.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.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../components/src/time.ts","../../components/src/components/AudioClip.schema.ts","../../components/src/components/AudioVisualizer.schema.ts","../../components/src/text-style.ts","../../components/src/components/BarChart.schema.ts","../../components/src/components/BentoGrid.schema.ts","../../components/src/placement.ts","../../components/src/components/BlurReveal.schema.ts","../../components/src/components/BoundingBox.schema.ts","../../components/src/components/BrowserFrame.schema.ts","../../components/src/components/Button.schema.ts","../../components/src/components/Callout.schema.ts","../../components/src/components/CameraShake.schema.ts","../../components/src/components/Captions.schema.ts","../../components/src/components/CardShowcase.schema.ts","../../components/src/components/ChapterCard.schema.ts","../../components/src/components/CodeBlock.schema.ts","../../components/src/components/CodeDiff.schema.ts","../../components/src/components/Confetti.schema.ts","../../components/src/components/CountUp.schema.ts","../../components/src/components/Cursor.schema.ts","../../components/src/components/DeviceFrame.schema.ts","../../components/src/components/DrawOn.schema.ts","../../components/src/components/DynamicGrid.schema.ts","../../components/src/components/EndCard.schema.ts","../../components/src/components/FadeIn.schema.ts","../../components/src/components/FadeOut.schema.ts","../../components/src/components/FilmGrade.schema.ts","../../components/src/components/GradientShift.schema.ts","../../components/src/components/GrainOverlay.schema.ts","../../components/src/components/Highlight.schema.ts","../../components/src/components/IconPop.schema.ts","../../components/src/components/ImageReveal.schema.ts","../../components/src/components/InputField.schema.ts","../../components/src/components/KanbanBoard.schema.ts","../../components/src/components/KenBurns.schema.ts","../../components/src/components/Keyframes.schema.ts","../../components/src/components/KineticText.schema.ts","../../components/src/components/LineChart.schema.ts","../../components/src/components/LogoReveal.schema.ts","../../components/src/components/LogoSting.schema.ts","../../components/src/components/LookbookShot.schema.ts","../../components/src/components/LowerThird.schema.ts","../../components/src/components/Marquee.schema.ts","../../components/src/components/MaskReveal.schema.ts","../../components/src/components/MatrixDecode.schema.ts","../../components/src/components/MeshGradient.schema.ts","../../components/src/components/Moodboard.schema.ts","../../components/src/components/NodeGraph.schema.ts","../../components/src/components/Parallax.schema.ts","../../components/src/components/PathMorph.schema.ts","../../components/src/components/PieReveal.schema.ts","../../components/src/components/PriceTag.schema.ts","../../components/src/components/PricingCard.schema.ts","../../components/src/components/ProductWall.schema.ts","../../components/src/components/ProgressBar.schema.ts","../../components/src/components/ProgressSteps.schema.ts","../../components/src/components/PulsingIndicator.schema.ts","../../components/src/components/QuoteCard.schema.ts","../../components/src/components/RgbGlitch.schema.ts","../../components/src/components/RotateIn.schema.ts","../../components/src/components/ScaleIn.schema.ts","../../components/src/components/Scrim.schema.ts","../../components/src/components/ShimmerSweep.schema.ts","../../components/src/components/SiteReveal.schema.ts","../../components/src/components/SkeletonCard.schema.ts","../../components/src/components/SlideIn.schema.ts","../../components/src/components/SlideOut.schema.ts","../../components/src/components/SlotMachineRoll.schema.ts","../../components/src/components/SplitLockup.schema.ts","../../components/src/components/SplitScreen.schema.ts","../../components/src/components/Spotlight.schema.ts","../../components/src/components/SpotlightCard.schema.ts","../../components/src/components/StaggerGroup.schema.ts","../../components/src/components/StatCard.schema.ts","../../components/src/components/Terminal.schema.ts","../../components/src/components/TextFadeReplace.schema.ts","../../components/src/components/Timeline.schema.ts","../../components/src/components/TitleCard.schema.ts","../../components/src/components/TrackingIn.schema.ts","../../components/src/components/Typewriter.schema.ts","../../components/src/components/Underline.schema.ts","../../components/src/components/VideoClip.schema.ts","../../components/src/components/Vignette.schema.ts","../../components/src/components/WordRotate.schema.ts","../../components/src/components/WordStagger.schema.ts","../../components/src/fidelity.ts","../../components/src/manifest.ts"],"names":["z"],"mappings":"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","file":"chunk-NCNYMPIQ.js","sourcesContent":["//! TimeInput — one duration grammar for every delay/duration-typed prop.\n//!\n//! Historically component timing props took FRAMES as bare numbers while the\n//! cinema timeline accepted human time specs (\"0.5s\") — so the same author had\n//! to think in two units. Every timing prop now accepts {@link TimeInput}:\n//!\n//! - `number` → frames, exactly as before (full back-compat);\n//! - `'0.5s'` → seconds (×fps);\n//! - `'500ms'` → milliseconds;\n//! - `'12f'` → frames, explicit;\n//! - `'1:30'` → minutes:seconds.\n//!\n//! The grammar mirrors `@onda-engine/cinema`'s `timeSpecToSeconds` EXCEPT for the bare\n//! number, which stays frames here because that is what component props have\n//! always meant. Parse once at the top of a component with {@link framesOf}\n//! (fps in hand from `useVideoConfig`), then do frame math as usual.\n\nimport { z } from 'zod'\n\n/** A duration/delay value: frames as a number (the historical form) or a human\n * time string — `'0.5s'`, `'500ms'`, `'12f'`, `'1:30'`. */\nexport type TimeInput = number | string\n\n/** Parse a {@link TimeInput} to FRAMES (rounded). Numbers pass through as\n * frames; strings parse per the cinema time grammar. Invalid/empty strings\n * and `undefined` resolve to `fallback` (default 0). Never throws. */\nexport function framesOf(value: TimeInput | undefined, fps: number, fallback = 0): number {\n if (value == null) return fallback\n if (typeof value === 'number') return Number.isFinite(value) ? value : fallback\n const s = value.trim()\n if (s === '') return fallback\n if (s.includes(':')) {\n const [m, sec] = s.split(':')\n return Math.round(((Number(m) || 0) * 60 + (Number(sec) || 0)) * fps)\n }\n if (s.endsWith('ms')) return Math.round(((Number(s.slice(0, -2)) || 0) / 1000) * fps)\n if (s.endsWith('f')) return Math.round(Number(s.slice(0, -1)) || 0)\n if (s.endsWith('s')) return Math.round((Number(s.slice(0, -1)) || 0) * fps)\n const n = Number(s)\n return Number.isFinite(n) ? Math.round(n) : fallback\n}\n\n/** The Zod schema for a {@link TimeInput} prop — shared by the component\n * schemas so the Studio agent validates one duration grammar. */\nexport const timeSchema = z.union([z.number(), z.string()])\n\n/** One-line description suffix for converted manifest/schema props. */\nexport const TIME_DESCRIPTION =\n \"Accepts frames (number) or a time string ('0.5s', '500ms', '12f', '1:30').\"\n","//! Runtime prop schema for {@link AudioClip} — @onda-native (mirrors AudioClipProps).\n//! GENERATED from the component's props. The Studio agent generates against this\n//! and the preview/export renderer validates with it. Edit the component +\n//! re-run the catalog codegen rather than hand-editing.\n\nimport { z } from 'zod'\nimport { timeSchema } from '../time.js'\n\nexport const audioClipSchema = z.object({\n src: z\n .string()\n .default('https://www.w3schools.com/html/horse.mp3')\n .describe('URL or path to the audio file. AAC-in-MP4 or WAV preferred.'),\n startAt: z\n .any()\n .default(0)\n .describe(\n 'Where to start in the source audio. Time spec \\u2014 \"0:04\", \"30s\", \"500ms\", \"90f\", or a raw number of seconds.',\n ),\n endAt: z\n .any()\n .optional()\n .describe(\n \"Where to stop in the source (same time spec as startAt). When omitted, plays to the source's end; required for loop.\",\n ),\n volume: z.number().default(1).describe('Amplitude volume 0..1.'),\n gainDb: z\n .number()\n .optional()\n .describe(\n 'Advanced gain in dB. When set, wins over volume. Converted via 10 ** (dB / 20): 0 = unity, -6 \\u2248 0.5, -20 \\u2248 0.1.',\n ),\n fade: z\n .boolean()\n .optional()\n .describe(\n 'Apply an entry/exit volume envelope (default true). Accepted for API parity; not yet applied in preview.',\n ),\n fadeDuration: timeSchema\n .optional()\n .describe('Frames the fade-in / fade-out takes. Default 2 (~67ms @ 30fps).'),\n loop: z\n .boolean()\n .optional()\n .describe('Loop the trimmed clip. Requires endAt. Not yet applied in preview.'),\n muted: z.boolean().default(false).describe('Mute the clip.'),\n playbackRate: z.number().optional().describe('Playback speed. Not yet applied in preview.'),\n acceptableTimeShiftSeconds: z\n .number()\n .optional()\n .describe('Acceptable time-shift threshold before resync (seconds).'),\n})\n\nexport type AudioClipSchemaProps = z.infer<typeof audioClipSchema>\n","//! Runtime prop schema for {@link AudioVisualizer} — @onda-native (mirrors AudioVisualizerProps).\n//! GENERATED from the component's props. The Studio agent generates against this\n//! and the preview/export renderer validates with it. Edit the component +\n//! re-run the catalog codegen rather than hand-editing.\n\nimport { z } from 'zod'\nimport { timeSchema } from '../time.js'\n\nexport const audioVisualizerSchema = z.object({\n type: z\n .enum(['bars', 'mirrored', 'waveform', 'radial', 'dots'])\n .default('bars')\n .describe(\n 'Render style: classic bars, mirrored EQ, smooth waveform ribbon, radial spectrum, or LED dot-matrix meter.',\n ),\n src: z\n .string()\n .optional()\n .describe(\n 'Audio file URL to drive the bars with real FFT frequency data; omit for the built-in procedural animation.',\n ),\n barCount: z.number().int().default(48).describe('Number of frequency bands.'),\n color: z\n .any()\n .optional()\n .describe(\n 'Bar color: a single hex string for one tone, or a [top, bottom] array for a vertical gradient ramp (defaults to theme accent + palette[1]).',\n ),\n width: z.number().default(640).describe('Overall width of the visualizer, in px.'),\n height: z\n .number()\n .default(160)\n .describe('Overall height of the visualizer (the tallest a band can reach), in px.'),\n align: z\n .enum(['top', 'middle', 'bottom'])\n .default('middle')\n .describe('Vertical placement of the bars within height (bars style only).'),\n gap: z.number().default(4).describe('Pixel gap between adjacent bars.'),\n barRadius: z\n .number()\n .optional()\n .describe(\n 'Bar corner radius in px (also the minimum bar height so idle bars read); defaults to theme radius.',\n ),\n speed: z\n .number()\n .default(1)\n .describe(\"Animation speed multiplier for the procedural spectrum's drift.\"),\n seed: z\n .any()\n .default(1)\n .describe('Deterministic seed (number or string) for the procedural spectrum.'),\n delay: timeSchema.default(0).describe('Frames before the visualizer fades/grows in.'),\n durationInFrames: timeSchema.optional().describe('Frames for the entrance grow-in.'),\n variant: z\n .number()\n .int()\n .optional()\n .describe(\n \"Integer 'take' selector: derives a new deterministic seed from (seed, variant), so alternates never require hand-edited seeds. 0/omitted = the default take.\",\n ),\n})\n\nexport type AudioVisualizerSchemaProps = z.infer<typeof audioVisualizerSchema>\n","//! Shared text-style contract — the cross-cutting typography knobs EVERY text\n//! component should expose, so the agent (and authors) can ALWAYS set them. The\n//! audit found these scattered: `italic` on 7/48 components, `letterSpacing` on\n//! 1, `uppercase` on 1. This is the one place they live.\n//!\n//! The set mirrors what motion-graphics tools standardize on (After Effects'\n//! character panel, kinetic-typography practice): family, weight, style, color,\n//! and TRACKING — `letterSpacing` is the one that keeps animated type from\n//! blurring together in motion, the single most-reached-for type knob in mograph.\n//! `uppercase` (geometric-sans all-caps is a mograph staple) is applied at the\n//! component level since the engine scene `Text` has no text-transform. Leading\n//! (`line-height`) is engine-fixed at 1.2 today — a future engine knob.\n\nimport { z } from 'zod'\nimport type { Theme } from './theme.js'\n\nexport interface TextStyleProps {\n /** Text color (hex `#rrggbb` / `#rrggbbaa`). Default: theme `text`. */\n color?: string\n /** Loaded font family by name (any Google family; set it via `onda render\n * --font` or a brand profile). Default: theme `fontFamily`. */\n fontFamily?: string\n /** Font weight (100–900). */\n fontWeight?: number\n /** Italic / oblique. */\n italic?: boolean\n /** TRACKING — extra px between glyphs (CSS `letter-spacing`). Positive opens\n * type up (premium display type + fast-moving text want air); negative\n * tightens. Default `0` (the font's natural spacing). */\n letterSpacing?: number\n /** Uppercase the text — a motion-graphics staple (bold geometric-sans all-caps).\n * Applied to the string itself, so it survives per-glyph layout. */\n uppercase?: boolean\n}\n\nexport interface ResolvedTextStyle {\n color: string\n fontFamily: string | undefined\n fontWeight: number\n italic: boolean\n letterSpacing: number | undefined\n}\n\n/** Resolve the shared text props against the theme + a component's existing\n * defaults. Pass the component's current defaults (its weight, mono family,\n * accent color) so callers that DON'T set the new knobs render identically. */\nexport function resolveTextStyle(\n props: TextStyleProps,\n theme: Theme,\n defaults: { fontWeight?: number; fontFamily?: string; color?: string } = {},\n): ResolvedTextStyle {\n return {\n color: props.color ?? defaults.color ?? theme.text,\n fontFamily: props.fontFamily ?? defaults.fontFamily ?? theme.fontFamily,\n fontWeight: props.fontWeight ?? defaults.fontWeight ?? 500,\n italic: props.italic ?? false,\n letterSpacing: props.letterSpacing,\n }\n}\n\n/** Apply the `uppercase` transform (the engine scene `Text` has no\n * text-transform, so it happens on the string here). */\nexport function applyTextCase(text: string, props: Pick<TextStyleProps, 'uppercase'>): string {\n return props.uppercase ? text.toUpperCase() : text\n}\n\n/** Zod shape for the shared text-style props — spread into a component's schema\n * (`z.object({ ...textStyleSchemaShape, ... })`) so the Studio agent sees the\n * SAME typography knobs on every text component. */\nexport const textStyleSchemaShape = {\n color: z\n .string()\n .optional()\n .describe('Text color (hex #rrggbb / #rrggbbaa). Default: theme text color.'),\n fontFamily: z\n .string()\n .optional()\n .describe('Loaded font family by NAME (any Google family). Default: the theme font.'),\n fontWeight: z.number().optional().describe('Font weight 100–900.'),\n italic: z.boolean().optional().describe('Italic / oblique text.'),\n letterSpacing: z\n .number()\n .optional()\n .describe(\n 'Tracking — extra px between glyphs. Positive opens the type up (good for display type and fast-moving text); negative tightens. Default 0.',\n ),\n uppercase: z.boolean().optional().describe('Uppercase the text (a motion-graphics staple).'),\n} as const\n","//! Runtime prop schema for {@link BarChart} — @onda-native (mirrors BarChartProps).\n//! GENERATED from the component's props. The Studio agent generates against this\n//! and the preview/export renderer validates with it. Edit the component +\n//! re-run the catalog codegen rather than hand-editing.\n\nimport { z } from 'zod'\nimport { textStyleSchemaShape } from '../text-style.js'\nimport { timeSchema } from '../time.js'\n\nexport const barChartSchema = z.object({\n ...textStyleSchemaShape,\n data: z\n .any()\n .default([\n { label: 'Remotion', value: 92 },\n { label: 'After Effects', value: 64 },\n { label: 'Lottie', value: 38 },\n ])\n .describe(\n 'Bars to render as { label, value } objects. Order is preserved \\u2014 top to bottom.',\n ),\n max: z\n .number()\n .default(100)\n .describe('Value mapped to a full-width bar. Bars cap at 100% of the track.'),\n delay: timeSchema.default(0).describe('Frames before the first bar starts.'),\n duration: timeSchema\n .optional()\n .describe('Per-bar grow duration in frames. Bars want more time than text (default slow).'),\n stagger: timeSchema\n .optional()\n .describe('Frames between consecutive bars (canonical STAGGER = 4).'),\n barHeight: z.number().default(32).describe('Bar (and track) height in px.'),\n gap: z.number().default(16).describe('Pixel gap between rows.'),\n labelWidth: z\n .number()\n .default(220)\n .describe('Pixels reserved for the label column (left of the track).'),\n labelGap: z.number().default(24).describe('Gap between the label column and the track, in px.'),\n trackWidth: z\n .number()\n .default(760)\n .describe('Track length in px \\u2014 the full-width target for a bar at max.'),\n accentColor: z\n .string()\n .optional()\n .describe('Color of the largest bar \\u2014 the earned accent. Defaults to theme.accent.'),\n barColor: z\n .string()\n .optional()\n .describe('Color of non-largest bars. Defaults to theme.palette[0] (or theme.textMuted).'),\n trackColor: z\n .string()\n .optional()\n .describe('Bar track (background) color. Defaults to theme.surface.'),\n showValues: z.boolean().default(false).describe('Show the numeric value at the end of each bar.'),\n countUp: z\n .boolean()\n .default(true)\n .describe(\n \"Count each value up from 0 in sync with its bar's growth. Only applies when showValues is on.\",\n ),\n title: z\n .string()\n .optional()\n .describe('Optional headline above the chart \\u2014 tells viewers what the numbers measure.'),\n titleSize: z\n .number()\n .optional()\n .describe('Title font size in px. Defaults to ~1.5x the label fontSize.'),\n titleColor: z.string().optional().describe('Title color. Defaults to color.'),\n fontSize: z.number().default(24).describe('Label / value font size in px.'),\n})\n\nexport type BarChartSchemaProps = z.infer<typeof barChartSchema>\n","//! Runtime prop schema for {@link BentoGrid} — @onda-native (mirrors BentoGridProps).\n//! GENERATED from the component's props. The Studio agent generates against this\n//! and the preview/export renderer validates with it. Edit the component +\n//! re-run the catalog codegen rather than hand-editing.\n\nimport { z } from 'zod'\nimport { textStyleSchemaShape } from '../text-style.js'\nimport { timeSchema } from '../time.js'\n\nexport const bentoGridSchema = z.object({\n ...textStyleSchemaShape,\n items: z\n .any()\n .optional()\n .describe(\n 'The cells, laid out left-to-right, top-to-bottom; each has title, optional value/caption, colSpan, rowSpan, and accent. Spans drive the rhythm.',\n ),\n columns: z.number().int().default(3).describe('Number of grid columns.'),\n gap: z.number().default(24).describe('Gap between cells in px.'),\n width: z.number().default(960).describe('Overall grid width in px.'),\n rowHeight: z\n .number()\n .optional()\n .describe('Row-track height in px. Defaults to the column-track width (square cells).'),\n padding: z.number().default(34).describe('Inner padding of each cell in px.'),\n delay: timeSchema.default(0).describe('Frames before the first cell enters.'),\n stagger: timeSchema\n .optional()\n .describe('Frames between successive cells rising in. House stagger is 4.'),\n fontSize: z\n .number()\n .default(30)\n .describe('Base title font size in px (value and caption sizes derive from it).'),\n captionColor: z.string().optional().describe('Caption color (defaults to theme textMuted).'),\n accentColor: z\n .string()\n .optional()\n .describe('Accent color for the earned accent cell (defaults to theme accent).'),\n cardColor: z\n .string()\n .optional()\n .describe(\n 'Card fill \\u2014 translucent dark, approximating glass (defaults to theme surface).',\n ),\n borderColor: z.string().optional().describe('Card border color (defaults to theme border).'),\n captionFontFamily: z\n .string()\n .optional()\n .describe('Body font family for captions (defaults to theme fontFamily).'),\n})\n\nexport type BentoGridSchemaProps = z.infer<typeof bentoGridSchema>\n","//! Placement — the ONE placement contract every placeable component speaks.\n//!\n//! A `placement` prop accepts either a region keyword (`'center'`,\n//! `'lower-third'`, `'top-left'`, …) or a normalized point `{ x, y }` (0..1\n//! fractions of the canvas, anchored at the ELEMENT'S CENTER). Default is\n//! `'center'`. Components resolve it through {@link usePlacement} (or wrap\n//! content in {@link Placed}), so \"where does this thing sit\" is answered the\n//! same way everywhere — no more per-component x/y/centerY dialects. Legacy\n//! positioning props (`x`/`y`/`centerX`/`centerY`) remain as deprecated aliases\n//! that each component maps onto this contract.\n//!\n//! Region semantics:\n//! - `center` / `upper-third` / `lower-third` anchor the element's CENTER at the\n//! region point (matching the cinema bridge's `PLACEMENT_COORDS`, so existing\n//! Studio compositions keep their geometry).\n//! - Edge/corner regions (`top`, `bottom-left`, …) are SAFE-AREA FLUSH when the\n//! element's size is known: the element's edge sits on the 10% safe margin\n//! (the broadcast inset `LowerThird` always used), guaranteed on-frame. When\n//! the size is unknown they fall back to centering on the region point — the\n//! bridge's historical approximation.\n//! - `{ x, y }` points are ALWAYS element-center anchored (never flushed).\n//!\n//! Double-placement note: the cinema bridge keeps a `SELF_ANCHORING` list of\n//! components that consume `placement` themselves; every component migrated to\n//! this contract must be on that list, or the bridge shifts it a second time.\n\nimport { Group, useVideoConfig } from '@onda-engine/react'\nimport type { ReactNode } from 'react'\nimport { Fragment, createElement } from 'react'\nimport { z } from 'zod'\n\n/** The region keywords the placement contract understands. */\nexport type PlacementRegion =\n | 'center'\n | 'top'\n | 'bottom'\n | 'left'\n | 'right'\n | 'top-left'\n | 'top-right'\n | 'bottom-left'\n | 'bottom-right'\n | 'upper-third'\n | 'lower-third'\n\n/** A normalized canvas point — 0..1 fractions, anchored at the element CENTER.\n * Omitted axes default to 0.5 (centered on that axis). */\nexport interface PlacementPoint {\n x?: number\n y?: number\n}\n\n/** What a `placement` prop accepts: a region keyword or a normalized point. */\nexport type Placement = PlacementRegion | PlacementPoint\n\n/** Region → fraction of the canvas the element's CENTER targets. Mirrors the\n * cinema bridge's `PLACEMENT_COORDS` exactly so geometry is stable when a\n * component graduates from bridge-offset to self-anchoring. */\nexport const PLACEMENT_REGIONS: Record<PlacementRegion, readonly [number, number]> = {\n center: [0.5, 0.5],\n top: [0.5, 0.1],\n bottom: [0.5, 0.9],\n left: [0.1, 0.5],\n right: [0.9, 0.5],\n 'top-left': [0.1, 0.1],\n 'top-right': [0.9, 0.1],\n 'bottom-left': [0.1, 0.9],\n 'bottom-right': [0.9, 0.9],\n 'upper-third': [0.5, 0.28],\n 'lower-third': [0.5, 0.72],\n}\n\n/** Safe-area inset as a fraction of each canvas axis — the broadcast 10% margin\n * (`LowerThird`'s `REGION_MAP` inset). Edge/corner regions flush to this. */\nexport const SAFE_MARGIN = 0.1\n\n/** Canvas size in px. */\nexport interface FrameSize {\n width: number\n height: number\n}\n\n/** The element's laid-out size in px, when the component knows it (measured\n * text, explicit width/height). Lets edge/corner regions sit flush on the safe\n * margin instead of approximating with a centered anchor. */\nexport interface ElementSize {\n width?: number\n height?: number\n}\n\n/** A resolved placement, in px. */\nexport interface ResolvedPlacement {\n /** The element's center point. */\n x: number\n y: number\n /** Top-left origin for an element of the given {@link ElementSize} (equals\n * `x`/`y` when the size is unknown — treat as the center then). */\n originX: number\n originY: number\n /** Offset from the canvas center — what a self-centering component adds to\n * move its (already centered) assembly onto the placement. (0,0) for\n * `'center'`. */\n dx: number\n dy: number\n}\n\n/** Narrowing helper: is this value a placement region/point at all? Useful for\n * components that accept legacy props alongside `placement`. */\nexport function isPlacement(value: unknown): value is Placement {\n if (typeof value === 'string') return value in PLACEMENT_REGIONS\n if (value !== null && typeof value === 'object') {\n const o = value as { x?: unknown; y?: unknown }\n return (\n (o.x === undefined || typeof o.x === 'number') &&\n (o.y === undefined || typeof o.y === 'number')\n )\n }\n return false\n}\n\n// Flush a center coordinate so the element edge sits on the safe margin: an\n// anchor at the 0.1 edge pushes the element fully inside it; 0.9 pulls it back.\nfunction flushAxis(frac: number, frameDim: number, elemDim: number | undefined): number {\n if (elemDim === undefined || elemDim <= 0) return frac * frameDim\n if (frac <= SAFE_MARGIN) return SAFE_MARGIN * frameDim + elemDim / 2\n if (frac >= 1 - SAFE_MARGIN) return (1 - SAFE_MARGIN) * frameDim - elemDim / 2\n return frac * frameDim\n}\n\n/** Resolve a `placement` to canvas px. Pure — see {@link usePlacement} for the\n * hook form. `element` (when known) lets edge/corner regions sit flush on the\n * safe margin; `{x,y}` points are always element-center anchored. */\nexport function resolvePlacement(\n placement: Placement | undefined,\n frame: FrameSize,\n element?: ElementSize,\n): ResolvedPlacement {\n let cx: number\n let cy: number\n if (placement !== undefined && typeof placement === 'object') {\n cx = (placement.x ?? 0.5) * frame.width\n cy = (placement.y ?? 0.5) * frame.height\n } else {\n const [fx, fy] = PLACEMENT_REGIONS[placement ?? 'center'] ?? PLACEMENT_REGIONS.center\n cx = flushAxis(fx, frame.width, element?.width)\n cy = flushAxis(fy, frame.height, element?.height)\n }\n const w = element?.width\n const h = element?.height\n return {\n x: cx,\n y: cy,\n originX: w !== undefined && w > 0 ? cx - w / 2 : cx,\n originY: h !== undefined && h > 0 ? cy - h / 2 : cy,\n dx: cx - frame.width / 2,\n dy: cy - frame.height / 2,\n }\n}\n\n/** Resolve a `placement` against the live video config. The hook every\n * placeable component calls. */\nexport function usePlacement(\n placement: Placement | undefined,\n element?: ElementSize,\n): ResolvedPlacement {\n const { width, height } = useVideoConfig()\n return resolvePlacement(placement, { width, height }, element)\n}\n\nexport interface PlacedProps {\n /** Where the box sits (region keyword or normalized `{x,y}`). Default `'center'`. */\n placement?: Placement\n /** The content's local box width in px (content drawn in `[0,width]×[0,height]`). */\n width?: number\n /** The content's local box height in px. */\n height?: number\n children?: ReactNode\n}\n\n/** Place an origin-relative subtree (content drawn from its local top-left in a\n * `width`×`height` box) per the shared contract: wraps it in a `<Group>` whose\n * origin puts the box's CENTER at the resolved placement point. */\nexport function Placed({ placement, width, height, children }: PlacedProps) {\n const resolved = usePlacement(placement, { width, height })\n return createElement(Group, { x: resolved.originX, y: resolved.originY }, children)\n}\n\nexport interface PlacementShiftProps {\n /** Where the (self-centered) content should sit. `undefined`/`'center'` → no\n * shift, the tree renders exactly as before. */\n placement?: Placement\n children?: ReactNode\n}\n\n/** Move an already self-centering subtree (e.g. an `<AbsoluteFill\n * justify=\"center\">` card) onto a placement by shifting it by the\n * center→target delta. The cheap migration path for layout-centered\n * components whose laid-out size isn't known author-side. */\nexport function PlacementShift({ placement, children }: PlacementShiftProps) {\n const { dx, dy } = usePlacement(placement)\n // No shift → no wrapper node, so existing (un-placed) scenes stay byte-identical.\n if (dx === 0 && dy === 0) return createElement(Fragment, null, children)\n return createElement(Group, { x: dx, y: dy }, children)\n}\n\n/** The Zod schema for a `placement` prop — shared by every component schema so\n * the Studio agent validates one contract, not eighty dialects. */\nexport const placementSchema = z.union([\n z.enum([\n 'center',\n 'top',\n 'bottom',\n 'left',\n 'right',\n 'top-left',\n 'top-right',\n 'bottom-left',\n 'bottom-right',\n 'upper-third',\n 'lower-third',\n ]),\n z.object({\n x: z.number().min(0).max(1).optional(),\n y: z.number().min(0).max(1).optional(),\n }),\n])\n\n/** Manifest prop-metadata blurb for `placement` — one wording everywhere. */\nexport const PLACEMENT_DESCRIPTION =\n \"Where the element sits: a region keyword ('center', 'lower-third', 'upper-third', 'top', 'bottom', 'left', 'right', 'top-left', 'top-right', 'bottom-left', 'bottom-right') or normalized {x,y} (0-1 canvas fractions, anchored at the element's center).\"\n","//! Runtime prop schema for {@link BlurReveal} — @onda-native (mirrors BlurRevealProps).\n//! GENERATED from the component's props. The Studio agent generates against this\n//! and the preview/export renderer validates with it. Edit the component +\n//! re-run the catalog codegen rather than hand-editing.\n\nimport { z } from 'zod'\nimport { placementSchema } from '../placement.js'\nimport { textStyleSchemaShape } from '../text-style.js'\nimport { timeSchema } from '../time.js'\n\nexport const blurRevealSchema = z.object({\n ...textStyleSchemaShape,\n text: z.string().default('Onda').describe('What to reveal. Rendered as a single-line Text node.'),\n delay: timeSchema.default(0).describe('Frames before the reveal starts.'),\n durationInFrames: timeSchema\n .optional()\n .describe('Frames until the reveal fully settles (DURATION.base = 18).'),\n fontSize: z.number().default(96).describe('Text size in px.'),\n placement: placementSchema\n .default('center')\n .describe(\n \"Where the reveal sits - the shared placement contract (region keyword or normalized {x,y}). Legacy 'top'/'bottom' keep their historical edge-flush meaning.\",\n ),\n travelPx: z.number().default(16).describe('Rise distance in px (small on purpose).'),\n fromBlur: z\n .number()\n .default(10)\n .describe(\n 'Starting blur in px (gaussian sigma) for the soft→sharp focus-pull; ramps to 0 as the reveal settles.',\n ),\n fit: z\n .enum(['none', 'frame'])\n .optional()\n .describe(\n \"Opt-in auto-fit: 'frame' scales the font size DOWN (never up) so the line cannot exceed the frame minus the safe margins. Default 'none'.\",\n ),\n maxWidth: z\n .number()\n .optional()\n .describe('Explicit width cap in px for the line; combines with fit (the smaller cap wins).'),\n})\n\nexport type BlurRevealSchemaProps = z.infer<typeof blurRevealSchema>\n","//! Runtime prop schema for {@link BoundingBox} — @onda-native (mirrors BoundingBoxProps).\n//! GENERATED from the component's props. The Studio agent generates against this\n//! and the preview/export renderer validates with it. Edit the component +\n//! re-run the catalog codegen rather than hand-editing.\n\nimport { z } from 'zod'\nimport { textStyleSchemaShape } from '../text-style.js'\nimport { timeSchema } from '../time.js'\n\nexport const boundingBoxSchema = z.object({\n ...textStyleSchemaShape,\n x: z.number().default(0.3).describe('Box left edge as a 0..1 fraction of the composition width.'),\n y: z.number().default(0.3).describe('Box top edge as a 0..1 fraction of the composition height.'),\n width: z.number().default(0.4).describe('Box width as a 0..1 fraction of the composition width.'),\n height: z\n .number()\n .default(0.4)\n .describe('Box height as a 0..1 fraction of the composition height.'),\n label: z\n .string()\n .default('')\n .describe(\"Optional label tag pinned to the box's top-left corner; empty string hides it.\"),\n delay: timeSchema.default(0).describe('Frames before the outline starts revealing.'),\n drawDuration: z.number().optional().describe('Frames to reveal the full outline (default 28).'),\n strokeWidth: z.number().default(3).describe('Outline stroke width in px.'),\n cornerRadius: z\n .number()\n .default(0)\n .describe('Corner rounding for the outline rectangle in px (sharp by default).'),\n labelColor: z\n .string()\n .default('#08080a')\n .describe('Label text color; a dark for contrast on the accent tag by default.'),\n fontSize: z.number().default(16).describe('Label font size in px.'),\n})\n\nexport type BoundingBoxSchemaProps = z.infer<typeof boundingBoxSchema>\n","//! Runtime prop schema for {@link BrowserFrame} — @onda-native (mirrors BrowserFrameProps).\n//! GENERATED from the component's props. The Studio agent generates against this\n//! and the preview/export renderer validates with it. Edit the component +\n//! re-run the catalog codegen rather than hand-editing.\n\nimport { z } from 'zod'\nimport { timeSchema } from '../time.js'\n\nexport const browserFrameSchema = z.object({\n url: z\n .string()\n .default('onda.video')\n .describe('URL shown in the address pill (and as the placeholder when empty).'),\n src: z\n .string()\n .optional()\n .describe(\n 'Image to show inside the frame when no children are passed; scaled to fill the content width.',\n ),\n delay: timeSchema.default(0).describe('Frames before the entrance.'),\n animate: z.boolean().default(true).describe('Scale-and-fade the frame in on the house spring.'),\n width: z.number().default(1280).describe('Frame (and content) width in px.'),\n height: z.number().default(720).describe('Content height in px (excludes the chrome bar).'),\n from: z\n .number()\n .default(0.96)\n .describe('Starting scale for the entrance (restrained, like ondajs).'),\n surface: z.string().optional().describe('Card body fill (default: theme surface).'),\n border: z\n .string()\n .optional()\n .describe('1px card border and chrome divider color (default: theme border).'),\n borderLit: z.string().optional().describe('Traffic-light dot color (default: theme border).'),\n surface2: z.string().optional().describe('Address-pill fill (default: theme surface).'),\n bg: z.string().optional().describe('Content canvas background (default: theme background).'),\n dim: z.string().optional().describe('Pill/URL text color (default: theme textMuted).'),\n faint: z.string().optional().describe('Placeholder text color (default: theme textMuted).'),\n cardRadius: z.number().optional().describe('Card corner radius in px (default: theme radius).'),\n pillRadius: z\n .number()\n .optional()\n .describe('Address-pill corner radius in px (default: theme radius).'),\n})\n\nexport type BrowserFrameSchemaProps = z.infer<typeof browserFrameSchema>\n","//! Runtime prop schema for {@link Button} — @onda-native (mirrors ButtonProps).\n//! GENERATED from the component's props. The Studio agent generates against this\n//! and the preview/export renderer validates with it. Edit the component +\n//! re-run the catalog codegen rather than hand-editing.\n\nimport { z } from 'zod'\nimport { placementSchema } from '../placement.js'\nimport { textStyleSchemaShape } from '../text-style.js'\nimport { timeSchema } from '../time.js'\n\nexport const buttonSchema = z.object({\n ...textStyleSchemaShape,\n label: z.string().default('Get started').describe('The button label.'),\n variant: z\n .enum(['primary', 'ghost'])\n .default('primary')\n .describe(\n \"'primary' = filled with color; 'ghost' = transparent with a color border and color-tinted label.\",\n ),\n color: z\n .string()\n .optional()\n .describe(\n 'Accent color \\u2014 the primary fill and the ghost border/label tint (default: theme accent).',\n ),\n textColor: z\n .string()\n .optional()\n .describe(\n \"Label color on the primary variant (default: theme text). Ignored by 'ghost', which tints the label with color.\",\n ),\n width: z.number().default(280).describe('Pill width in px.'),\n height: z.number().default(72).describe('Pill height in px.'),\n cornerRadius: z.number().optional().describe('Corner radius in px (default: theme radius).'),\n borderWidth: z.number().default(2).describe(\"Border thickness in px for the 'ghost' variant.\"),\n fontSize: z.number().default(24).describe('Label font size in px.'),\n fontFamily: z\n .string()\n .optional()\n .describe(\n 'Loaded font family (e.g. a --font passed to onda render) (default: theme fontFamily).',\n ),\n fontWeight: z.number().default(600).describe('Label font weight (display default 600).'),\n centerX: z\n .number()\n .default(0.5)\n .describe(\n 'Horizontal center as a 0\\u20131 fraction of canvas width (default 0.5 \\u2014 centered).',\n ),\n centerY: z\n .number()\n .default(0.5)\n .describe('Vertical center as a 0\\u20131 fraction of canvas height (default 0.5).'),\n entrance: z\n .boolean()\n .default(true)\n .describe('Play the entrance (fade + rise on the house spring).'),\n delay: timeSchema.default(0).describe('Frames before the entrance begins.'),\n durationInFrames: timeSchema\n .optional()\n .describe('Entrance duration in frames (default DURATION.base = 18).'),\n press: z.boolean().default(true).describe('Play the click-dip press animation.'),\n pressFrame: timeSchema\n .default(30)\n .describe('Frame the press dip lands on (relative to the local timeline).'),\n placement: placementSchema\n .optional()\n .describe(\n \"Where the element sits: a region keyword ('center', 'lower-third', 'upper-third', 'top', 'bottom', 'left', 'right', 'top-left', 'top-right', 'bottom-left', 'bottom-right') or normalized {x,y} (0-1 canvas fractions, element-center anchored). Default 'center'.\",\n ),\n})\n\nexport type ButtonSchemaProps = z.infer<typeof buttonSchema>\n","//! Runtime prop schema for {@link Callout} — @onda-native (mirrors CalloutProps).\n//! GENERATED from the component's props. The Studio agent generates against this\n//! and the preview/export renderer validates with it. Edit the component +\n//! re-run the catalog codegen rather than hand-editing.\n\nimport { z } from 'zod'\nimport { placementSchema } from '../placement.js'\nimport { textStyleSchemaShape } from '../text-style.js'\nimport { timeSchema } from '../time.js'\n\nexport const calloutSchema = z.object({\n ...textStyleSchemaShape,\n label: z.string().default('Look here').describe('Bubble label. Single line \\u2014 no auto-wrap.'),\n x: z\n .number()\n .default(0.5)\n .describe('Bubble-center X as a 0..1 fraction of canvas width (default 0.5 = center).'),\n y: z\n .number()\n .default(0.5)\n .describe('Bubble-center Y as a 0..1 fraction of canvas height (default 0.5 = center).'),\n direction: z\n .enum(['top', 'bottom', 'left', 'right'])\n .default('bottom')\n .describe(\n 'Side the pointer triangle sticks out from (and the rough direction the callout is aimed).',\n ),\n delay: timeSchema.default(0).describe('Frames before the bubble starts revealing.'),\n duration: timeSchema.optional().describe('Bubble scale-and-fade reveal duration in frames.'),\n lineDelay: timeSchema\n .default(6)\n .describe('Frames after the bubble starts before the pointer eases in.'),\n lineDuration: timeSchema.optional().describe('Pointer reveal duration in frames.'),\n bgColor: z\n .string()\n .optional()\n .describe(\n 'Bubble background fill (default: an elevated translucent-white surface that lifts the bubble off the dark canvas).',\n ),\n borderColor: z\n .string()\n .optional()\n .describe('Bubble border color (default: a bright translucent-white hairline).'),\n borderWidth: z.number().default(1).describe('Bubble border width in px.'),\n fontSize: z.number().default(20).describe('Label font size in px.'),\n paddingX: z.number().default(14).describe('Horizontal padding inside the bubble in px.'),\n paddingY: z.number().default(8).describe('Vertical padding inside the bubble in px.'),\n cornerRadius: z.number().optional().describe('Bubble corner radius (default: theme radius).'),\n pointerWidth: z.number().default(18).describe('Pointer triangle base width in px.'),\n pointerLength: z\n .number()\n .default(12)\n .describe('Pointer triangle length (how far it pokes out) in px.'),\n width: z\n .number()\n .optional()\n .describe('Explicit bubble width in px. Overrides the measured text extent.'),\n placement: placementSchema\n .optional()\n .describe(\n \"Where the element sits: a region keyword ('center', 'lower-third', 'upper-third', 'top', 'bottom', 'left', 'right', 'top-left', 'top-right', 'bottom-left', 'bottom-right') or normalized {x,y} (0-1 canvas fractions, element-center anchored). Default 'center'.\",\n ),\n})\n\nexport type CalloutSchemaProps = z.infer<typeof calloutSchema>\n","//! Runtime prop schema for {@link CameraShake} — @onda-native (mirrors CameraShakeProps).\n//! GENERATED from the component's props. The Studio agent generates against this\n//! and the preview/export renderer validates with it. Edit the component +\n//! re-run the catalog codegen rather than hand-editing.\n\nimport { z } from 'zod'\nimport { timeSchema } from '../time.js'\n\nexport const cameraShakeSchema = z.object({\n delay: timeSchema\n .default(0)\n .describe('Frames before the shake starts; outside the window the offset is 0.'),\n duration: timeSchema\n .optional()\n .describe(\n 'Frames the shake lasts; before delay and after delay + duration the offset is exactly 0.',\n ),\n intensity: z\n .number()\n .default(4)\n .describe('Maximum positional offset in px; restrained by default, bump for impact moments.'),\n rotationIntensity: z\n .number()\n .default(0.6)\n .describe(\n 'Maximum rotation amplitude in degrees (GPU/Vello only); set 0 for pure translational shake.',\n ),\n seed: z\n .number()\n .default(0)\n .describe('PRNG seed \\u2014 the same seed always produces the same deterministic shake.'),\n decay: z\n .boolean()\n .default(true)\n .describe(\n 'Linearly decay intensity and rotation to 0 over duration so the camera settles to rest by the end.',\n ),\n x: z\n .number()\n .default(0)\n .describe(\n 'Rest x offset of the wrapper in px relative to center; the shake jitters around this.',\n ),\n y: z\n .number()\n .default(0)\n .describe(\n 'Rest y offset of the wrapper in px relative to center; the shake jitters around this.',\n ),\n variant: z\n .number()\n .int()\n .optional()\n .describe(\n \"Integer 'take' selector: derives a new deterministic seed from (seed, variant), so alternates never require hand-edited seeds. 0/omitted = the default take.\",\n ),\n})\n\nexport type CameraShakeSchemaProps = z.infer<typeof cameraShakeSchema>\n","//! Runtime prop schema for {@link Captions} — @onda-native (mirrors CaptionsProps).\n//! GENERATED from the component's props. The Studio agent generates against this\n//! and the preview/export renderer validates with it. Edit the component +\n//! re-run the catalog codegen rather than hand-editing.\n\nimport { z } from 'zod'\nimport { textStyleSchemaShape } from '../text-style.js'\nimport { timeSchema } from '../time.js'\n\nexport const captionsSchema = z.object({\n ...textStyleSchemaShape,\n captions: z\n .any()\n .default([\n { text: 'Onda', startMs: 0, endMs: 1500 },\n { text: 'kinetic', startMs: 1500, endMs: 3000 },\n { text: 'captions', startMs: 3000, endMs: 4500 },\n ])\n .describe(\n 'The transcript timeline; each entry is a word plus its [startMs, endMs) activation window.',\n ),\n delay: timeSchema\n .default(0)\n .describe('Frames before the timeline starts (shifts every startMs by this).'),\n accentColor: z\n .string()\n .optional()\n .describe(\n 'Active word color — the one earned accent carried by the word the eye is currently landing on as the line cascades in (defaults to theme accent).',\n ),\n fontSize: z.number().default(96).describe('Font size in px.'),\n lineHeight: z\n .number()\n .optional()\n .describe(\n 'Unitless line height; accepted for ondajs parity but not applied (the scene Text uses a fixed text box).',\n ),\n align: z\n .enum(['left', 'center', 'right'])\n .default('center')\n .describe('Text alignment of the caption block within its line(s).'),\n placement: z\n .union([\n z.enum(['center', 'top', 'bottom', 'upper-third', 'lower-third']),\n z.object({ x: z.number().min(0).max(1).optional(), y: z.number().min(0).max(1).optional() }),\n ])\n .default('lower-third')\n .describe(\n 'Vertical placement band of the caption block (defaults to the broadcast lower-third subtitle position), or a normalized {x,y} point (0-1, line center) per the shared placement contract.',\n ),\n maxWidth: z\n .number()\n .default(0.8)\n .describe(\n 'Max line width as a 0\\u20131 fraction of canvas width; the block wraps within this safe band.',\n ),\n})\n\nexport type CaptionsSchemaProps = z.infer<typeof captionsSchema>\n","//! Runtime prop schema for {@link CardShowcase} — mirrors CardShowcaseProps.\n//! The Studio agent generates against this; the preview/export renderer validates\n//! with it. Edit the component + this schema together.\n\nimport { z } from 'zod'\nimport { timeSchema } from '../time.js'\n\nexport const cardShowcaseSchema = z.object({\n brand: z\n .string()\n .default('Lumen')\n .describe('Brand wordmark shown big on the hero card + as the centered logo.'),\n network: z\n .string()\n .default('VISA')\n .describe('Payment-network mark on the hero card (e.g. VISA, Mastercard).'),\n cardNumber: z.string().default('···· 3346').describe('Masked card number on the hero card.'),\n heroColor: z.string().default('#3D2BE0').describe('Hero card fill — the brand color.'),\n heroTextColor: z.string().default('#EAEAFF').describe('Text color on the hero card.'),\n tierColors: z\n .array(z.string())\n .default(['#111114', '#F3F3F6', '#8E93A1', '#5B3EE0', '#1B1C22', '#D7D9E0'])\n .describe('Palette for the surrounding (ghost) tier cards — 4–6 reads best.'),\n background: z.string().default('#ECECEF').describe('Canvas behind the cards.'),\n tilt: z\n .number()\n .default(-22)\n .describe('Grid tilt in degrees (the diagonal alignment); rotates to 0 at the end.'),\n speed: z.number().default(320).describe('Slide speed in px/sec.'),\n logo: z\n .string()\n .default('')\n .describe('Center logo text revealed at the end (e.g. a brand). Empty = none.'),\n logoColor: z.string().optional().describe('Logo color (default: heroColor).'),\n duration: timeSchema.default('10s').describe('Total length of the choreography.'),\n})\n\nexport type CardShowcaseSchemaProps = z.infer<typeof cardShowcaseSchema>\n","//! Runtime prop schema for {@link ChapterCard} — @onda-native (mirrors ChapterCardProps).\n//! GENERATED from the component's props. The Studio agent generates against this\n//! and the preview/export renderer validates with it. Edit the component +\n//! re-run the catalog codegen rather than hand-editing.\n\nimport { z } from 'zod'\nimport { placementSchema } from '../placement.js'\nimport { textStyleSchemaShape } from '../text-style.js'\nimport { timeSchema } from '../time.js'\n\nexport const chapterCardSchema = z.object({\n ...textStyleSchemaShape,\n chapter: z.string().describe('The chapter heading \\u2014 the focal text on the card.'),\n number: z\n .string()\n .default('01')\n .describe(\n 'Numbered index above the chapter; a string so leading zeros (\"01\") read as intended.',\n ),\n delay: timeSchema\n .default(0)\n .describe('Frames before the number starts fading in; the whole card sequences off this.'),\n accent: z\n .boolean()\n .default(true)\n .describe(\n 'When true, the number takes numberColor (the rose) and an underline punctuates the title.',\n ),\n numberColor: z\n .string()\n .optional()\n .describe('Number color when accent is true (the Onda rose); defaults to theme accent.'),\n subtitleColor: z\n .string()\n .optional()\n .describe(\n 'Number color when accent is false \\u2014 quiet metadata dim; defaults to theme textMuted.',\n ),\n numberFontSize: z\n .number()\n .default(32)\n .describe('Number font size in px \\u2014 smaller than the title, sitting above it.'),\n numberFontWeight: z.number().default(600).describe('Number font weight.'),\n titleFontSize: z\n .number()\n .default(96)\n .describe('Chapter title font size in px \\u2014 the focal element.'),\n titleFontWeight: z.number().default(600).describe('Title font weight.'),\n placement: placementSchema\n .optional()\n .describe(\n \"Where the element sits: a region keyword ('center', 'lower-third', 'upper-third', 'top', 'bottom', 'left', 'right', 'top-left', 'top-right', 'bottom-left', 'bottom-right') or normalized {x,y} (0-1 canvas fractions, element-center anchored). Default 'center'.\",\n ),\n fit: z\n .enum(['none', 'frame'])\n .optional()\n .describe(\n \"Opt-in auto-fit: 'frame' scales the font size DOWN (never up) so the line cannot exceed the frame minus the safe margins. Default 'none'.\",\n ),\n maxWidth: z\n .number()\n .optional()\n .describe('Explicit width cap in px for the line; combines with fit (the smaller cap wins).'),\n})\n\nexport type ChapterCardSchemaProps = z.infer<typeof chapterCardSchema>\n","//! Runtime prop schema for {@link CodeBlock} — @onda-native (mirrors CodeBlockProps).\n//! GENERATED from the component's props. The Studio agent generates against this\n//! and the preview/export renderer validates with it. Edit the component +\n//! re-run the catalog codegen rather than hand-editing.\n\nimport { z } from 'zod'\nimport { textStyleSchemaShape } from '../text-style.js'\nimport { timeSchema } from '../time.js'\n\nexport const codeBlockSchema = z.object({\n ...textStyleSchemaShape,\n code: z\n .string()\n .default(\"const onda = motion('identity');\\nexport default onda;\")\n .describe('The source to render. Newlines split into reveal-able lines.'),\n title: z\n .string()\n .default('onda.ts')\n .describe(\n 'Filename shown in the title bar. Empty hides the title (dots still show if chrome).',\n ),\n chrome: z\n .boolean()\n .default(true)\n .describe('Show the macOS-style window chrome (three dots + title bar).'),\n revealLines: z\n .boolean()\n .default(true)\n .describe('Reveal lines one-by-one instead of all at once.'),\n delay: timeSchema.default(0).describe('Frames before the first line appears.'),\n lineDelay: timeSchema.default(3).describe('Frames between successive line reveals.'),\n fontSize: z\n .number()\n .default(48)\n .describe('Code font size in px. Sized for a video canvas, not a screen UI.'),\n width: z.number().default(900).describe('Panel width in px.'),\n textColor: z\n .string()\n .optional()\n .describe(\n 'Default text color for identifiers, punctuation, operators (defaults to theme text).',\n ),\n keywordColor: z\n .string()\n .optional()\n .describe('Keyword color \\u2014 a muted, dusty violet (defaults to theme palette[1]).'),\n stringColor: z\n .string()\n .optional()\n .describe('String literal color \\u2014 dusty sage (defaults to theme palette[3]).'),\n commentColor: z.string().optional().describe('Comment color (defaults to theme textMuted).'),\n numberColor: z\n .string()\n .optional()\n .describe('Numeric literal color \\u2014 dusty amber (defaults to theme palette[2]).'),\n tagColor: z\n .string()\n .optional()\n .describe('JSX / HTML tag-name color \\u2014 dusty cyan (defaults to theme palette[1]).'),\n panelColor: z\n .string()\n .optional()\n .describe('Panel background fill \\u2014 the glass surface (defaults to theme surface).'),\n borderColor: z.string().optional().describe('Panel border color (defaults to theme border).'),\n})\n\nexport type CodeBlockSchemaProps = z.infer<typeof codeBlockSchema>\n","//! Runtime prop schema for {@link CodeDiff} — @onda-native (mirrors CodeDiffProps).\n//! GENERATED from the component's props. The Studio agent generates against this\n//! and the preview/export renderer validates with it. Edit the component +\n//! re-run the catalog codegen rather than hand-editing.\n\nimport { z } from 'zod'\nimport { textStyleSchemaShape } from '../text-style.js'\nimport { timeSchema } from '../time.js'\n\nexport const codeDiffSchema = z.object({\n ...textStyleSchemaShape,\n lines: z\n .any()\n .default([\n { text: \"const onda = motion('default');\", type: 'remove' },\n { text: \"const onda = motion('identity');\", type: 'add' },\n { text: 'export default onda;', type: 'context' },\n ])\n .describe(\n \"The diff lines, top to bottom; each is { text, type?: 'add' | 'remove' | 'context' }.\",\n ),\n title: z.string().default('motion.ts').describe('Filename shown in the title bar.'),\n chrome: z\n .boolean()\n .default(true)\n .describe('Show window chrome (traffic-light dots + title bar).'),\n revealLines: z\n .boolean()\n .default(true)\n .describe('Reveal lines one-by-one (else all appear together).'),\n delay: timeSchema.default(0).describe('Frames before the first line appears.'),\n lineDelay: timeSchema\n .optional()\n .describe('Frames between consecutive line reveals (canonical STAGGER = 5).'),\n fontSize: z.number().default(44).describe('Code font size in px.'),\n width: z.number().default(760).describe('Panel width in px.'),\n textColor: z\n .string()\n .optional()\n .describe('Default (context) text color (defaults to theme textMuted).'),\n addColor: z\n .string()\n .optional()\n .describe('Added-line color, a restrained green (defaults to theme palette[3]).'),\n removeColor: z\n .string()\n .optional()\n .describe('Removed-line color, a restrained red tinted toward bg (defaults to #cf6f7e).'),\n surfaceColor: z\n .string()\n .optional()\n .describe('Panel surface (glass) fill (defaults to theme surface).'),\n borderColor: z\n .string()\n .optional()\n .describe('Panel border / chrome divider color (defaults to theme border).'),\n cornerRadius: z\n .number()\n .optional()\n .describe('Panel corner radius in px (defaults to theme radius).'),\n chromeDotsColor: z\n .string()\n .optional()\n .describe('Window-chrome traffic-light dot color (defaults to theme border).'),\n chromeTitleColor: z\n .string()\n .optional()\n .describe(\n 'Window-chrome title (filename) color, the one earned accent (defaults to theme accent).',\n ),\n})\n\nexport type CodeDiffSchemaProps = z.infer<typeof codeDiffSchema>\n","//! Runtime prop schema for {@link Confetti} — @onda-native (mirrors ConfettiProps).\n//! GENERATED from the component's props. The Studio agent generates against this\n//! and the preview/export renderer validates with it. Edit the component +\n//! re-run the catalog codegen rather than hand-editing.\n\nimport { z } from 'zod'\nimport { timeSchema } from '../time.js'\n\nexport const confettiSchema = z.object({\n seed: z\n .number()\n .int()\n .default(7)\n .describe(\n 'Seed for every per-piece random (angle, velocity, spin, color, size) \\u2014 the same seed always produces the same burst.',\n ),\n count: z\n .number()\n .int()\n .default(80)\n .describe('Number of confetti pieces; ~80 reads full without thrashing the render.'),\n colors: z\n .array(z.string())\n .optional()\n .describe(\n 'Palette pieces are picked from; defaults to the theme accent plus tasteful neutrals.',\n ),\n originX: z\n .number()\n .default(0.5)\n .describe('Burst origin X, as a fraction of canvas width (0 = left, 1 = right).'),\n originY: z\n .number()\n .default(0.35)\n .describe('Burst origin Y, as a fraction of canvas height (0 = top, 1 = bottom).'),\n delay: timeSchema.default(0).describe('Frames before the burst launches.'),\n duration: timeSchema\n .default(70)\n .describe('Frames over which a piece travels, tumbles and fades out.'),\n spread: z\n .number()\n .default(120)\n .describe('Launch spread, in degrees, around straight up; wider = more fan-out.'),\n gravity: z\n .number()\n .default(1)\n .describe('Downward acceleration; higher = pieces fall back faster.'),\n pieceSize: z\n .number()\n .default(12)\n .describe('Base piece size in pixels \\u2014 each piece varies around this.'),\n variant: z\n .number()\n .int()\n .optional()\n .describe(\n \"Integer 'take' selector: derives a new deterministic seed from (seed, variant), so alternates never require hand-edited seeds. 0/omitted = the default take.\",\n ),\n})\n\nexport type ConfettiSchemaProps = z.infer<typeof confettiSchema>\n","//! Runtime prop schema for {@link CountUp} — @onda-native (mirrors CountUpProps).\n//! GENERATED from the component's props. The Studio agent generates against this\n//! and the preview/export renderer validates with it. Edit the component +\n//! re-run the catalog codegen rather than hand-editing.\n\nimport { z } from 'zod'\nimport { placementSchema } from '../placement.js'\nimport { textStyleSchemaShape } from '../text-style.js'\nimport { timeSchema } from '../time.js'\n\nexport const countUpSchema = z.object({\n ...textStyleSchemaShape,\n from: z.number().default(0).describe('Starting value the counter animates from.'),\n to: z.number().default(100).describe('Ending value the counter settles on.'),\n delay: timeSchema.default(0).describe('Frames to wait before the count starts.'),\n durationInFrames: timeSchema.optional().describe('Frames spent counting from `from` to `to`.'),\n decimals: z.number().int().default(0).describe('Number of fraction digits to render.'),\n useGrouping: z.boolean().default(true).describe('Insert en-US thousands separators.'),\n prefix: z.string().default('').describe(\"Text prepended to the number, e.g. '$'.\"),\n suffix: z.string().default('').describe(\"Text appended to the number, e.g. '%'.\"),\n fontSize: z.number().default(120).describe('Font size in px; counters are usually large.'),\n snappy: z\n .boolean()\n .default(false)\n .describe('Use the snappier spring for the count instead of the smooth one.'),\n x: z.number().default(0).describe('Pixel translate on the x axis for placement.'),\n y: z.number().default(0).describe('Pixel translate on the y axis for placement.'),\n placement: placementSchema\n .optional()\n .describe(\n \"Where the element sits: a region keyword ('center', 'lower-third', 'upper-third', 'top', 'bottom', 'left', 'right', 'top-left', 'top-right', 'bottom-left', 'bottom-right') or normalized {x,y} (0-1 canvas fractions, element-center anchored). Default 'center'.\",\n ),\n fit: z\n .enum(['none', 'frame'])\n .optional()\n .describe(\n \"Opt-in auto-fit: 'frame' scales the font size DOWN (never up) so the line cannot exceed the frame minus the safe margins. Default 'none'.\",\n ),\n maxWidth: z\n .number()\n .optional()\n .describe('Explicit width cap in px for the line; combines with fit (the smaller cap wins).'),\n fitToClip: z\n .boolean()\n .optional()\n .describe(\n 'Compress the whole timing envelope (delay, stagger, durations) so the entrance settles at least hold before the end of the enclosing clip. Opt-in.',\n ),\n maxSettle: timeSchema\n .optional()\n .describe(\"Hard cap on the settle time (frames or '0.5s'). Wins over fitToClip.\"),\n hold: timeSchema\n .optional()\n .describe('Breathing room before the cut for fitToClip (default 6 frames).'),\n})\n\nexport type CountUpSchemaProps = z.infer<typeof countUpSchema>\n","//! Runtime prop schema for {@link Cursor} — @onda-native (mirrors CursorProps).\n//! GENERATED from the component's props. The Studio agent generates against this\n//! and the preview/export renderer validates with it. Edit the component +\n//! re-run the catalog codegen rather than hand-editing.\n\nimport { z } from 'zod'\nimport { timeSchema } from '../time.js'\n\nexport const cursorSchema = z.object({\n fromX: z.number().default(0.28).describe('Start X as a 0..1 fraction of canvas width.'),\n fromY: z.number().default(0.72).describe('Start Y as a 0..1 fraction of canvas height.'),\n toX: z.number().default(0.6).describe('End X as a 0..1 fraction of canvas width.'),\n toY: z.number().default(0.42).describe('End Y as a 0..1 fraction of canvas height.'),\n delay: timeSchema.default(6).describe('Frames before the cursor starts moving.'),\n travelDuration: z\n .number()\n .int()\n .optional()\n .describe('Frames to travel from start to end on the house spring.'),\n click: z.boolean().default(true).describe('Emit a click ripple on arrival.'),\n clickDelay: z.number().int().default(6).describe('Frames after arrival before the click fires.'),\n color: z\n .string()\n .optional()\n .describe('Pointer + ripple color (hex #rrggbb / #rrggbbaa). Defaults to theme text.'),\n size: z.number().default(56).describe('Pointer height in px.'),\n})\n\nexport type CursorSchemaProps = z.infer<typeof cursorSchema>\n","//! Runtime prop schema for {@link DeviceFrame} — @onda-native (mirrors DeviceFrameProps).\n//! GENERATED from the component's props. The Studio agent generates against this\n//! and the preview/export renderer validates with it. Edit the component +\n//! re-run the catalog codegen rather than hand-editing.\n\nimport { z } from 'zod'\nimport { timeSchema } from '../time.js'\n\nexport const deviceFrameSchema = z.object({\n device: z.enum(['phone', 'laptop']).default('phone').describe('Which device bezel to draw.'),\n src: z\n .string()\n .optional()\n .describe(\n 'Image src shown inside when no children are passed (use the literal \"DEMO_IMAGE\" token in demos).',\n ),\n delay: timeSchema.default(0).describe('Frames before the entrance begins.'),\n animate: z.boolean().default(true).describe('Scale-and-fade the device in on the house spring.'),\n width: z\n .number()\n .default(420)\n .describe(\n 'Device width in px (height is derived from the device aspect; shrunk to fit the canvas height).',\n ),\n color: z\n .string()\n .optional()\n .describe('Bezel color (hex #rrggbb / #rrggbbaa); defaults to theme surface.'),\n})\n\nexport type DeviceFrameSchemaProps = z.infer<typeof deviceFrameSchema>\n","//! Runtime prop schema for {@link DrawOn} — @onda-native (mirrors DrawOnProps).\n//! GENERATED from the component's props. The Studio agent generates against this\n//! and the preview/export renderer validates with it. Edit the component +\n//! re-run the catalog codegen rather than hand-editing.\n\nimport { z } from 'zod'\nimport { timeSchema } from '../time.js'\n\nexport const drawOnSchema = z.object({\n d: z\n .string()\n .default('M 10 50 Q 100 10 190 50')\n .describe(\n \"SVG path `d` attribute (in the path's own coordinate space); the default is a gentle wave.\",\n ),\n color: z\n .string()\n .optional()\n .describe('Stroke color (hex `#rrggbb` / `#rrggbbaa`); defaults to theme `text`.'),\n strokeWidth: z.number().default(3).describe('Stroke width in path coordinate units.'),\n delay: timeSchema.default(0).describe('Frames before the draw-on starts.'),\n durationInFrames: timeSchema\n .optional()\n .describe('Frames to fully draw the path in (default `DURATION.slow` = 24).'),\n})\n\nexport type DrawOnSchemaProps = z.infer<typeof drawOnSchema>\n","//! Runtime prop schema for {@link DynamicGrid} — @onda-native (mirrors DynamicGridProps).\n//! GENERATED from the component's props. The Studio agent generates against this\n//! and the preview/export renderer validates with it. Edit the component +\n//! re-run the catalog codegen rather than hand-editing.\n\nimport { z } from 'zod'\n\nexport const dynamicGridSchema = z.object({\n cell: z.number().int().default(48).describe('Cell size in px (the lattice pitch).'),\n variant: z.enum(['lines', 'dots']).default('lines').describe('Ruled lines or a dot lattice.'),\n color: z\n .string()\n .optional()\n .describe('Grid color (hex #rrggbb / #rrggbbaa); defaults to theme border.'),\n speed: z\n .number()\n .default(0.4)\n .describe('Diagonal drift speed in px/frame; negative drifts the other way.'),\n opacity: z\n .number()\n .default(0.6)\n .describe('Grid opacity, 0..1 \\u2014 a grid is scaffold, not subject.'),\n glow: z.boolean().default(true).describe('Add a centered accent glow over the grid.'),\n glowColor: z\n .string()\n .optional()\n .describe(\n 'Glow color (hex); the meaningful color on the CPU fallback (first stop); defaults to theme accent.',\n ),\n background: z\n .string()\n .optional()\n .describe('Canvas color painted behind the grid; defaults to theme background.'),\n thickness: z.number().default(1).describe('Stroke thickness (lines) / dot radius in px (dots).'),\n})\n\nexport type DynamicGridSchemaProps = z.infer<typeof dynamicGridSchema>\n","//! Runtime prop schema for {@link EndCard} — @onda-native (mirrors EndCardProps).\n//! GENERATED from the component's props. The Studio agent generates against this\n//! and the preview/export renderer validates with it. Edit the component +\n//! re-run the catalog codegen rather than hand-editing.\n\nimport { z } from 'zod'\nimport { placementSchema } from '../placement.js'\nimport { textStyleSchemaShape } from '../text-style.js'\nimport { timeSchema } from '../time.js'\n\nexport const endCardSchema = z.object({\n ...textStyleSchemaShape,\n cta: z.string().default('Made with Onda').describe('Hero CTA / headline line.'),\n handles: z\n .array(z.string())\n .default(['@onda.video', 'onda.video/components'])\n .describe('Social handles or URLs displayed in a row beneath the CTA.'),\n delay: timeSchema\n .default(0)\n .describe('Frames before the CTA starts; the whole card is sequenced relative to this.'),\n accent: z.boolean().default(true).describe('Show the accent underline beneath the CTA.'),\n ctaFontSize: z.number().default(96).describe('CTA font size in px.'),\n ctaFontWeight: z.number().default(600).describe('Font weight for the CTA.'),\n handlesFontSize: z.number().default(24).describe('Handles row font size in px.'),\n handlesFontWeight: z.number().default(600).describe('Font weight for the handles row.'),\n handlesColor: z\n .string()\n .optional()\n .describe('Handles color, kept quiet (defaults to theme textMuted).'),\n accentColor: z.string().optional().describe('Underline color (defaults to theme accent).'),\n placement: placementSchema\n .optional()\n .describe(\n \"Where the element sits: a region keyword ('center', 'lower-third', 'upper-third', 'top', 'bottom', 'left', 'right', 'top-left', 'top-right', 'bottom-left', 'bottom-right') or normalized {x,y} (0-1 canvas fractions, element-center anchored). Default 'center'.\",\n ),\n})\n\nexport type EndCardSchemaProps = z.infer<typeof endCardSchema>\n","//! Runtime prop schema for {@link FadeIn} — @onda-native (mirrors FadeInProps).\n//! GENERATED from the component's props. The Studio agent generates against this\n//! and the preview/export renderer validates with it. Edit the component +\n//! re-run the catalog codegen rather than hand-editing.\n\nimport { z } from 'zod'\nimport { timeSchema } from '../time.js'\n\nexport const fadeInSchema = z.object({\n delay: timeSchema.default(0).describe('Frames to wait before starting the fade.'),\n durationInFrames: timeSchema\n .optional()\n .describe('Frames the fade takes to settle (default DURATION.base = 18).'),\n})\n\nexport type FadeInSchemaProps = z.infer<typeof fadeInSchema>\n","//! Runtime prop schema for {@link FadeOut} — @onda-native (mirrors FadeOutProps).\n//! GENERATED from the component's props. The Studio agent generates against this\n//! and the preview/export renderer validates with it. Edit the component +\n//! re-run the catalog codegen rather than hand-editing.\n\nimport { z } from 'zod'\nimport { timeSchema } from '../time.js'\n\nexport const fadeOutSchema = z.object({\n delay: timeSchema.default(0).describe('Frame at which the exit (fade-out) begins.'),\n durationInFrames: timeSchema\n .optional()\n .describe('Frames the fade-out takes (default DURATION.fast = 10 \\u2014 exits are quick).'),\n})\n\nexport type FadeOutSchemaProps = z.infer<typeof fadeOutSchema>\n","//! Runtime prop schema for {@link FilmGrade} — @onda-native (mirrors FilmGradeProps).\n//! GENERATED from the component's props. The Studio agent generates against this\n//! and the preview/export renderer validates with it. Edit the component +\n//! re-run the catalog codegen rather than hand-editing.\n\nimport { z } from 'zod'\n\nexport const filmGradeSchema = z.object({\n look: z\n .enum(['warm', 'cool', 'noir', 'teal-orange', 'vibrant', 'film', 'faded'])\n .default('film')\n .describe(\n 'The named cinematic look applied to the whole subtree: warm, cool, noir (b&w), teal-orange (blockbuster split-tone), vibrant, film (subtle default), or faded (matte/washed).',\n ),\n intensity: z\n .number()\n .default(1)\n .describe(\n 'Strength of the look, 0..1. Lerps every grade param from neutral toward the look: 0 = no grade (pass-through), 1 = the full look.',\n ),\n exposure: z\n .number()\n .optional()\n .describe(\n 'Explicit linear-exposure override (2^exposure; 0 = identity), applied on top of the look.',\n ),\n contrast: z\n .number()\n .optional()\n .describe('Explicit contrast override (1 = identity), applied on top of the look.'),\n saturation: z\n .number()\n .optional()\n .describe(\n 'Explicit saturation override (1 = identity, 0 = grayscale), applied on top of the look.',\n ),\n temperature: z\n .number()\n .optional()\n .describe(\n 'Explicit warm/cool override (R up / B down for positive; 0 = neutral), applied on top.',\n ),\n tint: z\n .number()\n .optional()\n .describe('Explicit green/magenta override (positive = green; 0 = neutral), applied on top.'),\n})\n\nexport type FilmGradeSchemaProps = z.infer<typeof filmGradeSchema>\n","//! Runtime prop schema for {@link GradientShift} — @onda-native (mirrors GradientShiftProps).\n//! GENERATED from the component's props. The Studio agent generates against this\n//! and the preview/export renderer validates with it. Edit the component +\n//! re-run the catalog codegen rather than hand-editing.\n\nimport { z } from 'zod'\nimport { timeSchema } from '../time.js'\n\nexport const gradientShiftSchema = z.object({\n from: z\n .string()\n .optional()\n .describe(\n 'Gradient start color (`#rrggbb` / `#rrggbbaa`); the meaningful first stop. Defaults to theme `background`.',\n ),\n to: z\n .string()\n .optional()\n .describe(\n 'Gradient end color, intentionally near-identical to `from` so the shift is a whisper. Defaults to theme `surface`.',\n ),\n angle: z\n .number()\n .default(135)\n .describe(\n 'Starting gradient angle in degrees (CSS convention: `0deg` points up, increasing clockwise).',\n ),\n speed: z\n .number()\n .default(0.5)\n .describe(\n 'Rotation rate in degrees per frame; keep low \\u2014 atmospheric, not focal (0.5 is a 24s full rotation at 30fps).',\n ),\n delay: timeSchema\n .default(0)\n .describe(\n 'Frames before the drift starts; while `frame < delay` the gradient sits at `angle`.',\n ),\n})\n\nexport type GradientShiftSchemaProps = z.infer<typeof gradientShiftSchema>\n","//! Runtime prop schema for {@link GrainOverlay} — @onda-native (mirrors GrainOverlayProps).\n//! GENERATED from the component's props. The Studio agent generates against this\n//! and the preview/export renderer validates with it. Edit the component +\n//! re-run the catalog codegen rather than hand-editing.\n\nimport { z } from 'zod'\nimport { timeSchema } from '../time.js'\n\nexport const grainOverlaySchema = z.object({\n opacity: z\n .number()\n .default(0.05)\n .describe(\n 'Grain strength (peak luminance deviation), capped at 0.15 to match the house 2-15% range.',\n ),\n baseFrequency: z\n .number()\n .default(0.9)\n .describe('Grain fineness: higher = finer, tighter speckle; lower = coarser photo-grain.'),\n numOctaves: z\n .number()\n .default(1)\n .describe('Grain contrast: widens the deviation so the texture gains punch, clamped to 1..4.'),\n seed: z\n .number()\n .default(0)\n .describe('Deterministic variation \\u2014 the same seed always produces the same grain field.'),\n animate: z\n .boolean()\n .default(false)\n .describe(\n 'When true, the field re-seeds on a frame bucket so the grain shimmers; off by default (static set-dressing).',\n ),\n animateEvery: timeSchema\n .default(2)\n .describe('Frames per re-seed bucket when animate is on; lower = busier shimmer.'),\n count: z\n .number()\n .optional()\n .describe(\n 'Deprecated and ignored \\u2014 grain is now a continuous per-pixel field, not scattered dots; accepted for compat only.',\n ),\n color: z\n .string()\n .optional()\n .describe(\n 'Deprecated and ignored \\u2014 grain is monochrome luminance noise (overlay-blended); accepted for compat only.',\n ),\n variant: z\n .number()\n .int()\n .optional()\n .describe(\n \"Integer 'take' selector: derives a new deterministic seed from (seed, variant), so alternates never require hand-edited seeds. 0/omitted = the default take.\",\n ),\n})\n\nexport type GrainOverlaySchemaProps = z.infer<typeof grainOverlaySchema>\n","//! Runtime prop schema for {@link Highlight} — @onda-native (mirrors HighlightProps).\n//! GENERATED from the component's props. The Studio agent generates against this\n//! and the preview/export renderer validates with it. Edit the component +\n//! re-run the catalog codegen rather than hand-editing.\n\nimport { z } from 'zod'\nimport { textStyleSchemaShape } from '../text-style.js'\nimport { timeSchema } from '../time.js'\n\nexport const highlightSchema = z.object({\n ...textStyleSchemaShape,\n text: z.string().default('highlight this').describe('Text to highlight.'),\n delay: timeSchema.default(0).describe('Frames before the text starts revealing.'),\n duration: timeSchema\n .optional()\n .describe('Text reveal duration in frames (default DURATION.base = 18).'),\n lineDelay: timeSchema\n .default(8)\n .describe('Frames to wait after the text appears before the accent bar wipes in.'),\n lineDuration: timeSchema\n .optional()\n .describe('Accent-bar wipe duration. Fast on purpose \\u2014 emphatic (default DURATION.fast).'),\n accentColor: z\n .string()\n .optional()\n .describe('Accent (highlight) bar color (default: theme accent).'),\n fontSize: z.number().default(64).describe('Font size in px (default 64).'),\n paddingX: z\n .number()\n .default(8)\n .describe('Pixels past the text edges that the accent bar extends (default 8).'),\n width: z\n .number()\n .optional()\n .describe('Explicit text width in px. Overrides the glyph-count estimate when known.'),\n x: z.number().default(0).describe(\"Local-space placement of the component's top-left.\"),\n y: z.number().default(0).describe(\"Local-space placement of the component's top-left.\"),\n})\n\nexport type HighlightSchemaProps = z.infer<typeof highlightSchema>\n","//! Runtime prop schema for {@link IconPop} — @onda-native (mirrors IconPopProps).\n//! GENERATED from the component's props. The Studio agent generates against this\n//! and the preview/export renderer validates with it. Edit the component +\n//! re-run the catalog codegen rather than hand-editing.\n\nimport { z } from 'zod'\nimport { textStyleSchemaShape } from '../text-style.js'\nimport { timeSchema } from '../time.js'\n\nexport const iconPopSchema = z.object({\n ...textStyleSchemaShape,\n glyph: z\n .string()\n .optional()\n .describe(\n 'A character/emoji to pop in (e.g. \"\\u2726\", \"\\u2605\", \"\\ud83c\\udf89\"); takes precedence over `shape` when set, rendered as text so it works on both backends.',\n ),\n shape: z\n .enum(['check', 'cross', 'dot', 'star'])\n .default('check')\n .describe(\n 'One of the four built-in shapes, used when `glyph` is not set; drawn as a Path (GPU/Vello only).',\n ),\n iconSize: z\n .number()\n .default(96)\n .describe('Icon size in px (the icon is square-ish, centered on its placement point).'),\n color: z.string().optional().describe('Icon color; defaults to the theme `accent` when omitted.'),\n strokeWidth: z\n .number()\n .default(3)\n .describe(\n 'Stroke width for the outline shapes (check, cross); ignored by glyph and by the filled shapes (dot, star).',\n ),\n delay: timeSchema.default(0).describe('Frames before the pop starts.'),\n durationInFrames: timeSchema\n .optional()\n .describe('Frames the pop takes to settle (defaults to DURATION.base = 18).'),\n overshoot: z\n .number()\n .default(0.18)\n .describe(\n 'Overshoot amount \\u2014 how far past 1.0 the scale peaks before settling, as a fraction (0.18 \\u2248 an 18% bump); 0 disables the overshoot.',\n ),\n x: z.number().default(0).describe(\"Canvas x of the icon's CENTER (the pop grows from here).\"),\n y: z.number().default(0).describe(\"Canvas y of the icon's CENTER.\"),\n})\n\nexport type IconPopSchemaProps = z.infer<typeof iconPopSchema>\n","//! Runtime prop schema for {@link ImageReveal} — @onda-native (mirrors ImageRevealProps).\n//! GENERATED from the component's props. The Studio agent generates against this\n//! and the preview/export renderer validates with it. Edit the component +\n//! re-run the catalog codegen rather than hand-editing.\n\nimport { z } from 'zod'\nimport { timeSchema } from '../time.js'\n\nexport const imageRevealSchema = z.object({\n src: z.string().describe('Image URL or path (resolved at render time).'),\n motion: z\n .enum(['blur', 'fade', 'scale', 'wipe', 'none'])\n .default('blur')\n .describe(\n \"Which motion fingerprint the entrance uses: 'blur' soft-to-sharp focus pull, 'fade' opacity, 'scale' center-pivot grow, 'wipe' left-to-right reveal, or 'none' to place the image with no entrance (held still — for logos and precise product stills).\",\n ),\n blurAmount: z\n .number()\n .default(24)\n .describe(\n \"Peak blur for the 'blur' motion \\u2014 the starting gaussian sigma (source px) before resolving to sharp; ignored by other motions.\",\n ),\n fit: z\n .enum(['cover', 'contain'])\n .default('cover')\n .describe(\"How the image fits its box: 'cover' crops to fill, 'contain' letterboxes.\"),\n durationInFrames: timeSchema\n .optional()\n .describe('Frames to fully reveal the image (default DURATION.base = 18).'),\n delay: timeSchema.default(0).describe('Frames before the reveal starts.'),\n x: z.number().default(0).describe('Box top-left X in px (default 0).'),\n y: z.number().default(0).describe('Box top-left Y in px (default 0).'),\n width: z\n .number()\n .optional()\n .describe('Box width in px; defaults to the full composition width (fill mode).'),\n height: z\n .number()\n .optional()\n .describe('Box height in px; defaults to the full composition height (fill mode).'),\n cornerRadius: z\n .number()\n .optional()\n .describe(\n 'Corner radius of the box, clipping the image to a rounded rect (defaults to theme radius).',\n ),\n})\n\nexport type ImageRevealSchemaProps = z.infer<typeof imageRevealSchema>\n","//! Runtime prop schema for {@link InputField} — @onda-native (mirrors InputFieldProps).\n//! GENERATED from the component's props. The Studio agent generates against this\n//! and the preview/export renderer validates with it. Edit the component +\n//! re-run the catalog codegen rather than hand-editing.\n\nimport { z } from 'zod'\nimport { placementSchema } from '../placement.js'\nimport { textStyleSchemaShape } from '../text-style.js'\nimport { timeSchema } from '../time.js'\n\nexport const inputFieldSchema = z.object({\n ...textStyleSchemaShape,\n value: z\n .string()\n .default('hello@onda.video')\n .describe(\"The field's value; with `typed` on, this is what types itself in.\"),\n placeholder: z\n .string()\n .default('Enter your email')\n .describe('Placeholder shown while the field is empty, before any glyph is revealed.'),\n label: z.string().default('Email').describe('Label above the field; an empty string hides it.'),\n typed: z\n .boolean()\n .default(true)\n .describe('Animate `value` typing itself in character-by-character via useTextReveal.'),\n delay: timeSchema.default(0).describe('Frames before typing starts.'),\n typeDuration: timeSchema.default(36).describe('Frames to type the whole value, linear pacing.'),\n focusRing: z\n .boolean()\n .default(true)\n .describe('Show the accent focus ring around the field once typing begins.'),\n width: z\n .number()\n .default(640)\n .describe('Field width in px, sized for a 1080p+ video canvas, not a screen UI.'),\n fontSize: z.number().default(36).describe('Text size in px.'),\n textColor: z.string().optional().describe('Value text color; defaults to the theme `text`.'),\n placeholderColor: z\n .string()\n .optional()\n .describe('Placeholder text color; defaults to the theme `textMuted`.'),\n labelColor: z\n .string()\n .optional()\n .describe('Label text color; defaults to the theme `textMuted`.'),\n accentColor: z\n .string()\n .optional()\n .describe('Caret and focus-ring color, the one earned accent; defaults to the theme `accent`.'),\n borderColor: z\n .string()\n .optional()\n .describe('Resting (unfocused) field border color; defaults to the theme `border`.'),\n fieldColor: z\n .string()\n .optional()\n .describe('Field background fill, the glass surface; defaults to the theme `surface`.'),\n x: z\n .number()\n .default(0.5)\n .describe('Horizontal center of the field as a 0\\u20131 fraction of canvas width.'),\n y: z\n .number()\n .default(0.5)\n .describe('Vertical center of the field as a 0\\u20131 fraction of canvas height.'),\n placement: placementSchema\n .optional()\n .describe(\n \"Where the element sits: a region keyword ('center', 'lower-third', 'upper-third', 'top', 'bottom', 'left', 'right', 'top-left', 'top-right', 'bottom-left', 'bottom-right') or normalized {x,y} (0-1 canvas fractions, element-center anchored). Default 'center'.\",\n ),\n})\n\nexport type InputFieldSchemaProps = z.infer<typeof inputFieldSchema>\n","//! Runtime prop schema for {@link KanbanBoard} — @onda-native (mirrors KanbanBoardProps).\n//! GENERATED from the component's props. The Studio agent generates against this\n//! and the preview/export renderer validates with it. Edit the component +\n//! re-run the catalog codegen rather than hand-editing.\n\nimport { z } from 'zod'\nimport { textStyleSchemaShape } from '../text-style.js'\nimport { timeSchema } from '../time.js'\n\nexport const kanbanBoardSchema = z.object({\n ...textStyleSchemaShape,\n columns: z\n .any()\n .default([\n { title: 'Todo', cards: ['Storyboard the intro', 'Source b-roll', 'Write VO script'] },\n {\n title: 'In Progress',\n accent: '#d96b82',\n cards: ['Animate the title card', 'Color-grade scene 2'],\n },\n { title: 'Done', cards: ['Lock the edit', 'Render preview', 'Sound pass', 'Export master'] },\n ])\n .describe(\n 'The columns, laid out left-to-right; each is { title, accent?, cards? } and holds its own ticket cards.',\n ),\n width: z\n .number()\n .default(1040)\n .describe('Overall board width in px, split evenly across the columns.'),\n gap: z\n .number()\n .default(20)\n .describe('Gap between columns (and between cards within a column) in px.'),\n delay: timeSchema.default(0).describe('Frames before the first card enters.'),\n stagger: timeSchema\n .optional()\n .describe('Frames between successive cards rising in (house stagger = 4).'),\n fontSize: z\n .number()\n .default(22)\n .describe('Base column-header font size in px (ticket labels derive from it).'),\n accent: z\n .string()\n .optional()\n .describe(\n 'Default accent for the dot/count when a column omits its own (defaults to theme accent).',\n ),\n textColor: z.string().optional().describe('Header / title text color (defaults to theme text).'),\n cardTextColor: z\n .string()\n .optional()\n .describe('Ticket-label text color (defaults to theme textMuted).'),\n faintColor: z\n .string()\n .optional()\n .describe(\n 'Faint color for neutral dots, counts, and card accent stripes (defaults to theme textMuted).',\n ),\n columnFill: z\n .string()\n .optional()\n .describe('Glass column fill, translucent (defaults to theme surface).'),\n columnStroke: z\n .string()\n .optional()\n .describe('Glass column border color (defaults to theme border).'),\n cardFill: z\n .string()\n .optional()\n .describe('Ticket card fill, translucent (defaults to theme surface).'),\n})\n\nexport type KanbanBoardSchemaProps = z.infer<typeof kanbanBoardSchema>\n","//! Runtime prop schema for {@link KenBurns} — @onda-native (mirrors KenBurnsProps).\n//! GENERATED from the component's props. The Studio agent generates against this\n//! and the preview/export renderer validates with it. Edit the component +\n//! re-run the catalog codegen rather than hand-editing.\n\nimport { z } from 'zod'\nimport { timeSchema } from '../time.js'\n\nexport const kenBurnsSchema = z.object({\n src: z.string().describe('Image source, resolved at render time by `onda render`.'),\n delay: timeSchema.default(0).describe('Frames before the drift starts.'),\n duration: timeSchema\n .default(150)\n .describe('Frames over which the zoom and pan completes (150f \\u2248 5s @ 30fps).'),\n fromScale: z.number().default(1.0).describe('Starting scale atop the cover fit.'),\n toScale: z\n .number()\n .default(1.1)\n .describe('Ending scale \\u2014 keep the delta restrained (1.0 \\u2192 1.1).'),\n fromX: z.number().default(0.5).describe('Starting pan origin X (0 = left, 1 = right).'),\n fromY: z.number().default(0.5).describe('Starting pan origin Y (0 = top, 1 = bottom).'),\n toX: z.number().default(0.5).describe('Ending pan origin X.'),\n toY: z.number().default(0.5).describe('Ending pan origin Y.'),\n})\n\nexport type KenBurnsSchemaProps = z.infer<typeof kenBurnsSchema>\n","//! Runtime prop schema for {@link Keyframes} — @onda-native (mirrors KeyframesProps).\n//! The Studio agent generates against this; the preview/export renderer validates with it.\n\nimport { z } from 'zod'\n\n// Easing: a named curve OR a raw cubic-bezier [x1,y1,x2,y2] (so an AE/Lottie handle transcribes 1:1).\nconst easeSchema = z\n .union([\n z.enum(['linear', 'ease', 'easeIn', 'easeOut', 'easeInOut']),\n z.tuple([z.number(), z.number(), z.number(), z.number()]),\n ])\n .optional()\n .describe('Easing of the segment ENDING at this key — named, or a cubic-bezier [x1,y1,x2,y2].')\n\nconst posKey = z.object({\n at: z.number().describe('Frame.'),\n x: z.number(),\n y: z.number(),\n ease: easeSchema,\n})\nconst valKey = z.object({\n at: z.number().describe('Frame.'),\n v: z.number(),\n ease: easeSchema,\n})\n\n// A tile can be filled three ways, in priority order: an `src` image, a\n// `gradient`, or a solid `color` (falling back to the theme surface). This lets a\n// template ship as editable color/gradient cards the user can swap for images.\nconst gradientStop = z.object({ offset: z.number(), color: z.string() })\nconst point = z.union([\n z.tuple([z.number(), z.number()]),\n z.object({ x: z.number(), y: z.number() }),\n])\nconst gradientSchema = z\n .discriminatedUnion('type', [\n z.object({ type: z.literal('linear'), start: point, end: point, stops: z.array(gradientStop) }),\n z.object({\n type: z.literal('radial'),\n center: point,\n radius: z.number(),\n stops: z.array(gradientStop),\n }),\n z.object({\n type: z.literal('fbm'),\n stops: z.array(gradientStop),\n scale: z.number().optional(),\n time: z.number().optional(),\n warp: z.number().optional(),\n }),\n ])\n .describe('Gradient fill (linear/radial/fbm) used when `src` is absent — wins over `color`.')\n\n// ── Slot binding ──────────────────────────────────────────────────────────────\n// A NAMED, optional convenience layer for re-skinning a template into a FAMILY — it does\n// NOT restrict editing. Any field is still freely settable to a plain literal (the agent\n// edits ANYTHING directly), and the motion keyframes are edited as tracks; slots just add\n// a shareable handle on top. A slot-bound field carries: `slot` (the binding id —\n// elements may SHARE one, so one set_slot recolors/resizes them together); `default` (the\n// original literal, rendered until something sets `value`, so a converted template is\n// byte-identical); and `value` (the override, which wins). For a color, value/default is\n// ANY string: a brand-token name (\"accent\" → recolors with the brand) OR a literal hex\n// (\"#00ff00\" → fixed). NOT limited to brand tokens.\nconst slotRef = <T extends z.ZodTypeAny>(inner: T) =>\n z.object({\n slot: z\n .string()\n .describe('Slot binding id — the handle set_slot targets; fills may share one.'),\n default: inner.describe(\n 'Original literal — rendered when the slot is unset (keeps the template byte-identical).',\n ),\n value: inner\n .optional()\n .describe('Override value (set_slot) — wins over `default` when present.'),\n })\n/** A field that accepts a literal value OR a `{slot}` binding that can override it. */\nconst slottable = <T extends z.ZodTypeAny>(inner: T) => z.union([inner, slotRef(inner)])\n\nconst imageContent = z.object({\n kind: z.literal('image'),\n src: slottable(z.string())\n .optional()\n .describe(\n 'Tile image source (editable — swap for your own, or bind a `{slot}`). Omit for a `gradient`/`color` fill.',\n ),\n gradient: slottable(gradientSchema).optional(),\n color: slottable(z.string())\n .optional()\n .describe(\n 'Solid fill — a hex, a brand-token name, or a `{slot}`; used when neither `src` nor `gradient` is set; falls back to theme surface.',\n ),\n width: slottable(z.number()).describe('Width (px) — a literal or a `{slot}` (resize).'),\n height: slottable(z.number()).describe('Height (px) — a literal or a `{slot}` (resize).'),\n cornerRadius: slottable(z.number())\n .optional()\n .describe('Corner rounding (px) — a literal or a `{slot}`.'),\n stroke: slottable(z.string())\n .optional()\n .describe('Outline color (hex/token/`{slot}`) — for a stroked/outline rect.'),\n strokeWidth: slottable(z.number())\n .optional()\n .describe('Outline thickness (px) — a literal or a `{slot}`.'),\n anchorX: z.number().optional().describe('Pivot in content space (default tile center).'),\n anchorY: z.number().optional(),\n})\n// Shape leaves — same per-channel tracks, drawn as vector primitives. (`rect` is the\n// `image` content with a `color`/`gradient` + no `src`; `line` is a thin rect.)\nconst ellipseContent = z.object({\n kind: z.literal('ellipse'),\n width: slottable(z.number()).describe('Width (px) — a literal or a `{slot}` (resize).'),\n height: slottable(z.number()).describe('Height (px) — a literal or a `{slot}` (resize).'),\n color: slottable(z.string())\n .optional()\n .describe('Fill (hex/token/`{slot}`). Omit + use `stroke` for a ring.'),\n gradient: slottable(gradientSchema).optional(),\n stroke: slottable(z.string()).optional(),\n strokeWidth: slottable(z.number())\n .optional()\n .describe('Outline thickness (px) — a literal or a `{slot}`.'),\n anchorX: z.number().optional().describe('Pivot (default ellipse center).'),\n anchorY: z.number().optional(),\n})\nconst pathContent = z.object({\n kind: z.literal('path'),\n d: z.string().describe('SVG path data in local space (e.g. \"M0 0 L100 0 Z\"). Native/GPU render.'),\n color: slottable(z.string()).optional().describe('Fill (hex/token/`{slot}`).'),\n gradient: slottable(gradientSchema).optional(),\n stroke: slottable(z.string()).optional(),\n strokeWidth: slottable(z.number())\n .optional()\n .describe('Outline thickness (px) — a literal or a `{slot}`.'),\n anchorX: z.number().optional().describe('Pivot (default 0,0).'),\n anchorY: z.number().optional(),\n})\nconst textContent = z.object({\n kind: z.literal('text'),\n text: slottable(z.string()).describe('Line text (editable — or bind a `{slot}`).'),\n fontSize: slottable(z.number()).describe('Text size (px) — a literal or a `{slot}` (resize).'),\n color: slottable(z.string())\n .optional()\n .describe('Ink (hex/token/`{slot}`); defaults to theme `text`.'),\n fontFamily: slottable(z.string())\n .optional()\n .describe('Typeface — a family name or a `{slot}` (the brand font).'),\n fontWeight: slottable(z.number()).optional().describe('Weight — a literal or a `{slot}`.'),\n letterSpacing: z.number().optional(),\n align: z\n .enum(['left', 'center', 'right'])\n .optional()\n .describe(\n 'Horizontal alignment about the position x — \"left\" (default) anchors the left edge, \"center\" centres the measured line, \"right\" ends at it. OVERRIDES anchorX. Combine with vAlign for corners.',\n ),\n vAlign: z\n .enum(['top', 'middle', 'bottom'])\n .optional()\n .describe(\n 'Vertical alignment about the position y — \"top\" (default), \"middle\" (centred), \"bottom\". OVERRIDES anchorY. e.g. align:\"right\"+vAlign:\"top\" = top-right corner.',\n ),\n anchorX: z.number().optional().describe('Pivot in content space (default top-left 0,0).'),\n anchorY: z.number().optional(),\n})\n\nexport const keyframesSchema = z.object({\n position: z.array(posKey).optional().describe('Position track (x,y over frames).'),\n opacity: z.array(valKey).optional().describe('Opacity track (0–1 over frames).'),\n scale: z.array(valKey).optional().describe('Uniform-scale track (over frames).'),\n scaleX: z\n .array(valKey)\n .optional()\n .describe('Horizontal-scale track — wins over `scale` (e.g. a bar growing wide).'),\n scaleY: z.array(valKey).optional().describe('Vertical-scale track — wins over `scale`.'),\n rotation: z.array(valKey).optional().describe('Rotation track in degrees (over frames).'),\n content: z\n .discriminatedUnion('kind', [imageContent, textContent, ellipseContent, pathContent])\n .describe('The element to animate — an image/rect tile, a text line, an ellipse, or a path.'),\n})\n\nexport type KeyframesSchemaProps = z.infer<typeof keyframesSchema>\n","//! Runtime prop schema for {@link KineticText} — @onda-native (mirrors KineticTextProps).\n//! GENERATED from the component's props. The Studio agent generates against this\n//! and the preview/export renderer validates with it. Edit the component +\n//! re-run the catalog codegen rather than hand-editing.\n\nimport { z } from 'zod'\nimport { placementSchema } from '../placement.js'\nimport { textStyleSchemaShape } from '../text-style.js'\nimport { timeSchema } from '../time.js'\n\nexport const kineticTextSchema = z.object({\n ...textStyleSchemaShape,\n text: z\n .string()\n .default('kinetic')\n .describe('The line to choreograph; laid out as one row of absolutely-placed glyphs.'),\n fontSize: z.number().default(96).describe('Font size in px.'),\n preset: z\n .enum(['rise', 'fade', 'scale', 'blur', 'wave'])\n .default('rise')\n .describe('Per-glyph entrance flavor.'),\n stagger: timeSchema\n .default(5)\n .describe('Frames between consecutive glyphs entering (STAGGER = 5).'),\n durationInFrames: timeSchema\n .default(22)\n .describe(\"Frames each glyph's entrance takes to settle (DURATION.base = 22).\"),\n delay: timeSchema.default(0).describe('Frames before the first glyph starts.'),\n align: z\n .enum(['left', 'center', 'right'])\n .default('center')\n .describe('Horizontal alignment of the line about its anchor.'),\n placement: placementSchema\n .optional()\n .describe(\n \"Where the element sits: a region keyword ('center', 'lower-third', 'upper-third', 'top', 'bottom', 'left', 'right', 'top-left', 'top-right', 'bottom-left', 'bottom-right') or normalized {x,y} (0-1 canvas fractions, element-center anchored). Default 'center'.\",\n ),\n fit: z\n .enum(['none', 'frame'])\n .optional()\n .describe(\n \"Opt-in auto-fit: 'frame' scales the font size DOWN (never up) so the line cannot exceed the frame minus the safe margins. Default 'none'.\",\n ),\n maxWidth: z\n .number()\n .optional()\n .describe('Explicit width cap in px for the line; combines with fit (the smaller cap wins).'),\n fitToClip: z\n .boolean()\n .optional()\n .describe(\n 'Compress the whole timing envelope (delay, stagger, durations) so the entrance settles at least hold before the end of the enclosing clip. Opt-in.',\n ),\n maxSettle: timeSchema\n .optional()\n .describe(\"Hard cap on the settle time (frames or '0.5s'). Wins over fitToClip.\"),\n hold: timeSchema\n .optional()\n .describe('Breathing room before the cut for fitToClip (default 6 frames).'),\n})\n\nexport type KineticTextSchemaProps = z.infer<typeof kineticTextSchema>\n","//! Runtime prop schema for {@link LineChart} — @onda-native (mirrors LineChartProps).\n//! GENERATED from the component's props. The Studio agent generates against this\n//! and the preview/export renderer validates with it. Edit the component +\n//! re-run the catalog codegen rather than hand-editing.\n\nimport { z } from 'zod'\nimport { timeSchema } from '../time.js'\n\nexport const lineChartSchema = z.object({\n data: z\n .array(z.number())\n .default([12, 18, 15, 24, 22, 31, 28, 38])\n .describe('The series values, left to right.'),\n delay: timeSchema.default(0).describe('Frames before the line starts drawing.'),\n duration: timeSchema.default(40).describe('Frames for the line to fully draw on.'),\n color: z\n .string()\n .optional()\n .describe('Line + dot color \\u2014 the earned accent (defaults to theme accent).'),\n strokeWidth: z.number().default(4).describe('Stroke width in px.'),\n width: z.number().default(900).describe('Chart width in px.'),\n height: z.number().default(440).describe('Chart height in px.'),\n fill: z.boolean().default(true).describe('Fill a soft gradient area under the line.'),\n showDots: z\n .boolean()\n .default(true)\n .describe('Show a dot at each data point as the line reaches it.'),\n})\n\nexport type LineChartSchemaProps = z.infer<typeof lineChartSchema>\n","//! Runtime prop schema for {@link LogoReveal} — @onda-native (mirrors LogoRevealProps).\n\nimport { z } from 'zod'\n\nexport const logoRevealSchema = z.object({\n src: z\n .string()\n .default('')\n .describe('Logo image source (resolved at render time by `onda render`).'),\n width: z\n .number()\n .default(520)\n .describe('Logo box width in px (the image is fit=\"contain\" inside it — never cropped).'),\n height: z.number().default(260).describe('Logo box height in px.'),\n delay: z.number().int().default(0).describe('Frames before the reveal starts.'),\n durationInFrames: z\n .number()\n .int()\n .default(28)\n .describe('Frames over which the reveal completes (the house-spring duration).'),\n preset: z\n .enum(['focus', 'rise', 'scale'])\n .default('focus')\n .describe('Reveal style — focus (blur pull, default), rise, or scale.'),\n fromBlur: z.number().default(14).describe('Starting blur sigma (px) for the focus pull.'),\n})\n\nexport type LogoRevealSchemaProps = z.infer<typeof logoRevealSchema>\n","//! Runtime prop schema for {@link LogoSting} — @onda-native (mirrors LogoStingProps).\n//! GENERATED from the component's props. The Studio agent generates against this\n//! and the preview/export renderer validates with it. Edit the component +\n//! re-run the catalog codegen rather than hand-editing.\n\nimport { z } from 'zod'\nimport { textStyleSchemaShape } from '../text-style.js'\nimport { timeSchema } from '../time.js'\n\nexport const logoStingSchema = z.object({\n ...textStyleSchemaShape,\n d: z\n .string()\n .default('M 50 60 Q 100 20 150 60 T 250 60')\n .describe('SVG path `d` for the logo mark, in viewBox coordinate space.'),\n title: z.string().default('Onda').describe('The brand / product title beneath the mark.'),\n delay: timeSchema.default(0).describe('Frames before the sting starts.'),\n accent: z\n .boolean()\n .default(true)\n .describe('Draw the accent rule beneath the title (the single earned-color moment).'),\n viewBox: z\n .string()\n .default('0 0 300 120')\n .describe('SVG viewBox \"minX minY width height\" \\u2014 must match the space of `d`.'),\n pathWidth: z.number().default(400).describe('Rendered width of the mark in px.'),\n pathHeight: z.number().default(160).describe('Rendered height of the mark in px.'),\n strokeWidth: z\n .number()\n .default(3)\n .describe('Stroke width in px (after the viewBox-to-pixel scale).'),\n stroke: z.string().optional().describe('Logo stroke color (defaults to theme `text`).'),\n accentColor: z\n .string()\n .optional()\n .describe(\n 'Underline accent color \\u2014 the signature dusty rose (defaults to theme `accent`).',\n ),\n titleFontSize: z.number().default(96).describe('Title font size in px.'),\n})\n\nexport type LogoStingSchemaProps = z.infer<typeof logoStingSchema>\n","//! Runtime prop schema for {@link LookbookShot} — @onda-native (mirrors LookbookShotProps).\n\nimport { z } from 'zod'\nimport { textStyleSchemaShape } from '../text-style.js'\n\nexport const lookbookShotSchema = z.object({\n ...textStyleSchemaShape,\n src: z\n .string()\n .default('')\n .describe('Product photo source (resolved at render time by `onda render`).'),\n name: z\n .string()\n .default('Product')\n .describe('Product name — the headline, set in the display face.'),\n eyebrow: z\n .string()\n .default('')\n .describe('Small letterspaced eyebrow above the name (category), in the body face.'),\n detail: z\n .string()\n .default('')\n .describe('Quiet supporting line under the name (material / method), in the body face.'),\n layout: z\n .enum(['spread-right', 'spread-left', 'centered'])\n .default('spread-right')\n .describe(\n 'Page composition. Alternate spread-right / spread-left across shots for lookbook rhythm.',\n ),\n delay: z.number().int().default(0).describe('Frames before the card enters.'),\n nameFontSize: z\n .number()\n .optional()\n .describe('Name font size in px (default 86 for spreads, 58 for centered).'),\n matColor: z\n .string()\n .optional()\n .describe('The mat/frame color (the print border). Default a near-white off the bg.'),\n shadowColor: z.string().default('#2b201824').describe('Soft shadow color under the mat.'),\n accentColor: z.string().optional().describe('Eyebrow + rule color (defaults to theme accent).'),\n detailColor: z.string().optional().describe('Detail line color (defaults to theme textMuted).'),\n bodyFamily: z\n .string()\n .optional()\n .describe('Body font for eyebrow + detail (defaults to theme fontFamily).'),\n lifeDurationInFrames: z\n .number()\n .int()\n .default(150)\n .describe(\"Frames over which the card's slow breath scale completes.\"),\n})\n\nexport type LookbookShotSchemaProps = z.infer<typeof lookbookShotSchema>\n","//! Runtime prop schema for {@link LowerThird} — @onda-native (mirrors LowerThirdProps).\n//! GENERATED from the component's props. The Studio agent generates against this\n//! and the preview/export renderer validates with it. Edit the component +\n//! re-run the catalog codegen rather than hand-editing.\n\nimport { z } from 'zod'\nimport { textStyleSchemaShape } from '../text-style.js'\nimport { timeSchema } from '../time.js'\n\nexport const lowerThirdSchema = z.object({\n ...textStyleSchemaShape,\n name: z.string().default('Rodrigo').describe(\"The person's name (the primary line).\"),\n role: z.string().default('CEO, Onda').describe(\"The person's role / title (the secondary line).\"),\n placement: z\n .enum(['bottom-left', 'bottom-right', 'bottom-center', 'top-left', 'top-right', 'top-center'])\n .default('bottom-left')\n .describe(\n 'Which canvas region the bar sits in; corners flush left/right, *-center centers the block on the mid-line (for a single credit/URL line).',\n ),\n delay: timeSchema.default(0).describe('Frames before the name slides in.'),\n accent: z.boolean().default(true).describe('Show the accent rule beneath the name.'),\n roleColor: z.string().optional().describe('Role color (defaults to theme textMuted).'),\n accentColor: z.string().optional().describe('Accent rule color (defaults to theme accent).'),\n fontSize: z.number().default(48).describe('Name font size in px.'),\n nameFontWeight: z.number().default(600).describe('Name font weight.'),\n roleFontSize: z.number().default(22).describe('Role font size in px.'),\n roleFontWeight: z.number().default(500).describe('Role font weight.'),\n cornerRadius: z\n .number()\n .optional()\n .describe(\n 'Accent rule corner radius in px, capped so a thin sliver never bulges (defaults to theme radius).',\n ),\n})\n\nexport type LowerThirdSchemaProps = z.infer<typeof lowerThirdSchema>\n","//! Runtime prop schema for {@link Marquee} — @onda-native (mirrors MarqueeProps).\n//! GENERATED from the component's props. The Studio agent generates against this\n//! and the preview/export renderer validates with it. Edit the component +\n//! re-run the catalog codegen rather than hand-editing.\n\nimport { z } from 'zod'\nimport { textStyleSchemaShape } from '../text-style.js'\n\nexport const marqueeSchema = z.object({\n ...textStyleSchemaShape,\n items: z\n .array(z.string())\n .default(['ONDA', 'TYPESCRIPT', 'REACT'])\n .describe('Items to scroll; the list is repeated as needed for a seamless wrap.'),\n speed: z\n .number()\n .default(30)\n .describe('Scroll speed in pixels per second; keep low for restraint.'),\n direction: z.enum(['left', 'right']).default('left').describe('Scroll direction.'),\n gap: z.number().default(64).describe('Pixels between items.'),\n fontSize: z.number().default(32).describe('Font size in pixels.'),\n width: z\n .number()\n .optional()\n .describe('Viewport width to scroll within; defaults to the full composition width.'),\n height: z\n .number()\n .optional()\n .describe('Viewport height (the clip band); defaults to the full composition height.'),\n})\n\nexport type MarqueeSchemaProps = z.infer<typeof marqueeSchema>\n","//! Runtime prop schema for {@link MaskReveal} — @onda-native (mirrors MaskRevealProps).\n//! GENERATED from the component's props. The Studio agent generates against this\n//! and the preview/export renderer validates with it. Edit the component +\n//! re-run the catalog codegen rather than hand-editing.\n\nimport { z } from 'zod'\nimport { placementSchema } from '../placement.js'\nimport { textStyleSchemaShape } from '../text-style.js'\nimport { timeSchema } from '../time.js'\n\nexport const maskRevealSchema = z.object({\n ...textStyleSchemaShape,\n text: z.string().default('Onda').describe('The single line of text to reveal.'),\n delay: timeSchema.default(0).describe('Frames before the reveal starts.'),\n duration: timeSchema.optional().describe('Frames for the mask to fully retreat.'),\n direction: z\n .enum(['left', 'right', 'top', 'bottom'])\n .default('left')\n .describe('The side the content appears to come in from; the mask retreats toward this side.'),\n fontSize: z.number().default(96).describe('Text size in px.'),\n width: z\n .number()\n .optional()\n .describe('Clip-box width in px; otherwise estimated from the measured text.'),\n height: z.number().optional().describe('Clip-box height in px; otherwise fontSize times 1.2.'),\n placement: placementSchema\n .optional()\n .describe(\n \"Where the element sits: a region keyword ('center', 'lower-third', 'upper-third', 'top', 'bottom', 'left', 'right', 'top-left', 'top-right', 'bottom-left', 'bottom-right') or normalized {x,y} (0-1 canvas fractions, element-center anchored). Default 'center'.\",\n ),\n fit: z\n .enum(['none', 'frame'])\n .optional()\n .describe(\n \"Opt-in auto-fit: 'frame' scales the font size DOWN (never up) so the line cannot exceed the frame minus the safe margins. Default 'none'.\",\n ),\n maxWidth: z\n .number()\n .optional()\n .describe('Explicit width cap in px for the line; combines with fit (the smaller cap wins).'),\n})\n\nexport type MaskRevealSchemaProps = z.infer<typeof maskRevealSchema>\n","//! Runtime prop schema for {@link MatrixDecode} — @onda-native (mirrors MatrixDecodeProps).\n//! GENERATED from the component's props. The Studio agent generates against this\n//! and the preview/export renderer validates with it. Edit the component +\n//! re-run the catalog codegen rather than hand-editing.\n\nimport { z } from 'zod'\nimport { placementSchema } from '../placement.js'\nimport { textStyleSchemaShape } from '../text-style.js'\nimport { timeSchema } from '../time.js'\n\nexport const matrixDecodeSchema = z.object({\n ...textStyleSchemaShape,\n text: z.string().default('ONDA').describe('The text that decodes into place.'),\n delay: timeSchema.default(0).describe('Frames before decoding starts.'),\n charDelay: timeSchema\n .default(3)\n .describe('Frames between successive characters settling (left-to-right).'),\n scrambleDuration: timeSchema\n .default(18)\n .describe('Frames each character scrambles before it settles (min 1).'),\n scrambleSpeed: timeSchema\n .default(2)\n .describe('Frames between glyph swaps while scrambling. Lower = faster flicker (min 1).'),\n seed: z.number().int().default(7).describe('Seed for the deterministic glyph picks.'),\n charset: z\n .string()\n .default('ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789#$%&*+=<>/')\n .describe('Glyph pool drawn from while scrambling.'),\n scrambleColor: z\n .string()\n .optional()\n .describe('Color of still-scrambling glyphs \\u2014 the earned accent (default: theme accent).'),\n fontSize: z.number().default(120).describe('Font size in px.'),\n align: z\n .enum(['left', 'center', 'right'])\n .default('center')\n .describe('Horizontal anchoring of the single line (approximate).'),\n x: z\n .number()\n .optional()\n .describe('Absolute x of the line. Defaults to the canvas center (per align).'),\n y: z\n .number()\n .optional()\n .describe('Absolute y (top-ish) of the line. Defaults to vertical center.'),\n placement: placementSchema\n .optional()\n .describe(\n \"Where the element sits: a region keyword ('center', 'lower-third', 'upper-third', 'top', 'bottom', 'left', 'right', 'top-left', 'top-right', 'bottom-left', 'bottom-right') or normalized {x,y} (0-1 canvas fractions, element-center anchored). Default 'center'.\",\n ),\n fit: z\n .enum(['none', 'frame'])\n .optional()\n .describe(\n \"Opt-in auto-fit: 'frame' scales the font size DOWN (never up) so the line cannot exceed the frame minus the safe margins. Default 'none'.\",\n ),\n maxWidth: z\n .number()\n .optional()\n .describe('Explicit width cap in px for the line; combines with fit (the smaller cap wins).'),\n fitToClip: z\n .boolean()\n .optional()\n .describe(\n 'Compress the whole timing envelope (delay, stagger, durations) so the entrance settles at least hold before the end of the enclosing clip. Opt-in.',\n ),\n maxSettle: timeSchema\n .optional()\n .describe(\"Hard cap on the settle time (frames or '0.5s'). Wins over fitToClip.\"),\n hold: timeSchema\n .optional()\n .describe('Breathing room before the cut for fitToClip (default 6 frames).'),\n variant: z\n .number()\n .int()\n .optional()\n .describe(\n \"Integer 'take' selector: derives a new deterministic seed from (seed, variant), so alternates never require hand-edited seeds. 0/omitted = the default take.\",\n ),\n})\n\nexport type MatrixDecodeSchemaProps = z.infer<typeof matrixDecodeSchema>\n","//! Runtime prop schema for {@link MeshGradient} — @onda-native (mirrors MeshGradientProps).\n//! GENERATED from the component's props. The Studio agent generates against this\n//! and the preview/export renderer validates with it. Edit the component +\n//! re-run the catalog codegen rather than hand-editing.\n\nimport { z } from 'zod'\n\nexport const meshGradientSchema = z.object({\n colors: z\n .array(z.string())\n .optional()\n .describe(\n 'Blob colors; 2-4 reads best, drifting over the background canvas (defaults to theme palette[0]).',\n ),\n background: z\n .string()\n .optional()\n .describe('Base canvas color behind the blobs (defaults to theme background).'),\n speed: z\n .number()\n .default(1)\n .describe('Drift speed multiplier; keep low since this is atmosphere, not motion.'),\n seed: z\n .number()\n .int()\n .default(7)\n .describe('Seed for the blob phase/amplitude offsets (deterministic).'),\n opacity: z.number().default(0.5).describe('Overall blob opacity over the canvas (0..1).'),\n variant: z\n .number()\n .int()\n .optional()\n .describe(\n \"Integer 'take' selector: derives a new deterministic seed from (seed, variant), so alternates never require hand-edited seeds. 0/omitted = the default take.\",\n ),\n})\n\nexport type MeshGradientSchemaProps = z.infer<typeof meshGradientSchema>\n","//! Runtime prop schema for {@link Moodboard} — @onda-native (mirrors MoodboardProps).\n//! The Studio agent generates against this; the preview/export renderer validates with it.\n\nimport { z } from 'zod'\nimport { timeSchema } from '../time.js'\n\nexport const moodboardSchema = z.object({\n images: z\n .array(z.string())\n .default([])\n .describe('Tile image sources — one tile per image, scattered around the title.'),\n seed: z.number().default(7).describe('Layout seed — same seed → same scatter (deterministic).'),\n columns: z\n .number()\n .int()\n .default(5)\n .describe('Coarse grid columns the tiles snap to before jitter.'),\n rows: z.number().int().default(4).describe('Coarse grid rows.'),\n exclusionWidth: z\n .number()\n .default(0.46)\n .describe(\n 'Central exclusion width (fraction of canvas) where no tiles go — sized to the title.',\n ),\n exclusionHeight: z\n .number()\n .default(0.4)\n .describe('Central exclusion height (fraction of canvas).'),\n stagger: timeSchema\n .default(3)\n .describe('Frames between successive tiles ENTERING — keep it visible.'),\n tileEnter: timeSchema.optional().describe('Per-tile entrance duration (default 0.5s).'),\n exitStagger: timeSchema.default(2).describe('Frames between successive tiles EXITING.'),\n tileExit: timeSchema.optional().describe('Per-tile exit duration (default 0.4s).'),\n durationInFrames: timeSchema\n .optional()\n .describe('Total clip length; defaults to the enclosing Sequence duration.'),\n scaleFrom: z.number().default(1).describe('Entrance start scale (1 = fade + slide, no scale).'),\n driftPx: z\n .number()\n .default(44)\n .describe('Entrance drift distance in px (tiles rise into place).'),\n cornerRadius: z.number().default(16).describe('Rounded-corner radius for each tile in px.'),\n jitter: z.number().default(0.12).describe('Position jitter as a fraction of the cell.'),\n aspects: z\n .array(z.number())\n .optional()\n .describe('Tile aspect-ratio pool (w/h) the scatter draws from (default landscape + square).'),\n})\n\nexport type MoodboardSchemaProps = z.infer<typeof moodboardSchema>\n","//! Runtime prop schema for {@link NodeGraph} — @onda-native (mirrors NodeGraphProps).\n//! GENERATED from the component's props. The Studio agent generates against this\n//! and the preview/export renderer validates with it. Edit the component +\n//! re-run the catalog codegen rather than hand-editing.\n\nimport { z } from 'zod'\nimport { textStyleSchemaShape } from '../text-style.js'\nimport { timeSchema } from '../time.js'\n\nexport const nodeGraphSchema = z.object({\n ...textStyleSchemaShape,\n hubLabel: z\n .string()\n .default('AI')\n .describe('Label inside the central hub node \\u2014 a single character or short word.'),\n satellites: z\n .any()\n .optional()\n .describe(\n 'The orbiting satellites; each ({ label, radius, speed, startAngle }) flies in from off-frame, then settles into its elliptical orbit.',\n ),\n accent: z\n .string()\n .optional()\n .describe(\n 'The earned accent \\u2014 hub fill tint, the connection lines, and the glow (default: theme accent).',\n ),\n ellipse: z\n .number()\n .default(0.92)\n .describe('Vertical squash of every orbit (1 = circular, <1 = elliptical).'),\n seed: z\n .number()\n .default(7)\n .describe('Seed for the deterministic fly-in directions and connection-pulse phases.'),\n delay: timeSchema.default(0).describe('Frames before the constellation begins assembling.'),\n glow: z.boolean().default(true).describe('Show the soft accent glow behind the hub.'),\n hubDiameter: z.number().default(120).describe('Hub node diameter in px.'),\n hubFontSize: z.number().default(34).describe('Hub label size in px.'),\n background: z\n .string()\n .optional()\n .describe('Background canvas color behind the constellation (default: theme background).'),\n surface: z\n .string()\n .optional()\n .describe('Surface (fill) color of the satellite pills (default: theme surface).'),\n borderColor: z\n .string()\n .optional()\n .describe('Border color of the satellite pills (default: theme border).'),\n textColor: z.string().optional().describe('Text color of every label (default: theme text).'),\n satelliteFontSize: z.number().default(20).describe('Satellite label font size in px.'),\n centerX: z\n .number()\n .default(0.5)\n .describe('Horizontal center of the constellation as a 0\\u20131 fraction of canvas width.'),\n centerY: z\n .number()\n .default(0.5)\n .describe('Vertical center of the constellation as a 0\\u20131 fraction of canvas height.'),\n variant: z\n .number()\n .int()\n .optional()\n .describe(\n \"Integer 'take' selector: derives a new deterministic seed from (seed, variant), so alternates never require hand-edited seeds. 0/omitted = the default take.\",\n ),\n})\n\nexport type NodeGraphSchemaProps = z.infer<typeof nodeGraphSchema>\n","//! Runtime prop schema for {@link Parallax} — @onda-native (mirrors ParallaxProps).\n//! GENERATED from the component's props. The Studio agent generates against this\n//! and the preview/export renderer validates with it. Edit the component +\n//! re-run the catalog codegen rather than hand-editing.\n\nimport { z } from 'zod'\nimport { timeSchema } from '../time.js'\n\nexport const parallaxSchema = z.object({\n src: z\n .string()\n .optional()\n .describe('Single image layer URL/path; use src OR layers (layers wins when both are set).'),\n layers: z\n .any()\n .optional()\n .describe(\n 'Multiple layers drawn back-to-front, each with its own src, speed, scale, and opacity, drifting at its own rate.',\n ),\n delay: timeSchema.default(0).describe('Frames before the drift starts.'),\n duration: timeSchema\n .default(180)\n .describe('Frames over which the drift completes (180f is about 6s at 30fps).'),\n direction: z\n .enum(['left', 'right', 'up', 'down'])\n .default('left')\n .describe('The edge the layers drift toward as time advances.'),\n distance: z\n .number()\n .default(40)\n .describe(\n 'Base drift in pixels across duration, per-layer scaled by speed; keep restrained (past ~120px reads as a pan).',\n ),\n scale: z\n .number()\n .default(1.05)\n .describe(\n \"Default oversize applied to layers that don't set their own scale, hiding drifting edges.\",\n ),\n})\n\nexport type ParallaxSchemaProps = z.infer<typeof parallaxSchema>\n","//! Runtime prop schema for {@link PathMorph} — @onda-native (mirrors PathMorphProps).\n//! The Studio agent generates against this; the preview/export renderer validates\n//! with it. Edit the component + re-run the catalog codegen rather than hand-editing.\n\nimport { z } from 'zod'\n\nexport const pathMorphSchema = z.object({\n from: z\n .string()\n .describe('SVG path `d` to morph FROM (e.g. a logo emblem), in its own coordinate space.'),\n to: z.string().describe('SVG path `d` to morph TO (e.g. a divider line), in the SAME space.'),\n color: z\n .string()\n .optional()\n .describe(\n 'Ink (hex) — FILL for closed shapes, STROKE for open lines; defaults to theme `text`.',\n ),\n stroke: z\n .boolean()\n .optional()\n .describe('Force STROKE (line) rendering; auto-true when both paths are OPEN (no `Z`).'),\n strokeWidth: z\n .number()\n .default(4)\n .describe('Stroke width in path-coordinate units (when stroked).'),\n delay: z.number().int().default(0).describe('Frames before the morph starts.'),\n durationInFrames: z\n .number()\n .int()\n .optional()\n .describe('Frames the morph takes (default `DURATION.slow` = 24).'),\n x: z.number().default(0).describe(\"Composition x of the morph's local origin.\"),\n y: z.number().default(0).describe(\"Composition y of the morph's local origin.\"),\n scale: z.number().default(1).describe(\"Uniform scale of the path's coordinate space.\"),\n fadeIn: z.boolean().default(true).describe('Fade the shape in over the first 8 frames.'),\n})\n\nexport type PathMorphSchemaProps = z.infer<typeof pathMorphSchema>\n","//! Runtime prop schema for {@link PieReveal} — @onda-native (mirrors PieRevealProps).\n//! GENERATED from the component's props. The Studio agent generates against this\n//! and the preview/export renderer validates with it. Edit the component +\n//! re-run the catalog codegen rather than hand-editing.\n\nimport { z } from 'zod'\nimport { textStyleSchemaShape } from '../text-style.js'\nimport { timeSchema } from '../time.js'\n\nexport const pieRevealSchema = z.object({\n ...textStyleSchemaShape,\n data: z\n .any()\n .default([\n { value: 64, color: '#d96b82', label: 'A' },\n { value: 22, color: '#8e8e98', label: 'B' },\n { value: 14, color: '#3a3a44', label: 'C' },\n ])\n .describe(\n \"Slices to render, each `{ value, color, label? }`, drawn clockwise from 12 o'clock in array order; values split the circle proportionally.\",\n ),\n radius: z.number().default(180).describe('Outer radius of the pie, in px.'),\n innerRadius: z\n .number()\n .default(0)\n .describe(\n 'Inner radius (donut hole) in px; `0` is a solid pie. The hole is filled with holeColor.',\n ),\n holeColor: z\n .string()\n .optional()\n .describe(\n 'Color filling the donut hole; match the composition background (default: theme `background`).',\n ),\n delay: timeSchema.default(0).describe('Frames before the first slice starts sweeping.'),\n duration: timeSchema\n .optional()\n .describe('Per-slice sweep duration on the house spring, in frames.'),\n stagger: timeSchema\n .optional()\n .describe('Frames between consecutive slices starting (default canonical STAGGER).'),\n x: z.number().default(0.5).describe('Horizontal center as a 0\\u20131 fraction of canvas width.'),\n y: z.number().default(0.5).describe('Vertical center as a 0\\u20131 fraction of canvas height.'),\n showLabel: z\n .boolean()\n .default(false)\n .describe(\n \"Show labels: the center total (donut only) plus each slice's `label` drawn just outside the ring.\",\n ),\n label: z.string().optional().describe('Center label text; defaults to the slice count.'),\n labelColor: z.string().optional().describe('Center label color (default: theme `text`).'),\n fontSize: z.number().default(56).describe('Center label font size in px.'),\n})\n\nexport type PieRevealSchemaProps = z.infer<typeof pieRevealSchema>\n","//! Runtime prop schema for {@link PriceTag} — @onda-native (mirrors PriceTagProps).\n\nimport { z } from 'zod'\nimport { textStyleSchemaShape } from '../text-style.js'\n\nexport const priceTagSchema = z.object({\n ...textStyleSchemaShape,\n name: z\n .string()\n .default('Product')\n .describe('Product name — the label, set in the display face.'),\n price: z\n .string()\n .default('$0')\n .describe(\"Price as a string so any currency works (e.g. '$70', '€19', '£12.50').\"),\n sold: z\n .boolean()\n .default(false)\n .describe('Show the SOLD state — dims + strikes the price and appends a muted pill.'),\n soldLabel: z.string().default('SOLD').describe('The SOLD pill label.'),\n delay: z.number().int().default(0).describe('Frames before the chip enters.'),\n size: z\n .number()\n .default(1)\n .describe('Base scale for the chip (1 = the default size). Scales type + padding together.'),\n priceColor: z.string().optional().describe('Price text color (defaults to theme accent).'),\n accentColor: z\n .string()\n .optional()\n .describe('Divider + SOLD-pill accent color (defaults to theme accent).'),\n surface: z.string().optional().describe('Chip fill color (defaults to theme surface).'),\n border: z.string().optional().describe('Chip hairline border color (defaults to theme border).'),\n bodyFamily: z\n .string()\n .optional()\n .describe('Body font for the price + SOLD pill (defaults to theme fontFamily).'),\n x: z\n .number()\n .optional()\n .describe(\"Local-space x of the chip's top-left. Omit to center on the composition.\"),\n y: z\n .number()\n .optional()\n .describe(\"Local-space y of the chip's top-left. Omit to center on the composition.\"),\n})\n\nexport type PriceTagSchemaProps = z.infer<typeof priceTagSchema>\n","//! Runtime prop schema for {@link PricingCard} — @onda-native (mirrors PricingCardProps).\n//! GENERATED from the component's props. The Studio agent generates against this\n//! and the preview/export renderer validates with it. Edit the component +\n//! re-run the catalog codegen rather than hand-editing.\n\nimport { z } from 'zod'\nimport { placementSchema } from '../placement.js'\nimport { textStyleSchemaShape } from '../text-style.js'\nimport { timeSchema } from '../time.js'\n\nexport const pricingCardSchema = z.object({\n ...textStyleSchemaShape,\n tier: z\n .string()\n .default('Pro')\n .describe(\"Tier name above the price (e.g. 'Pro'). Rendered uppercase.\"),\n price: z\n .string()\n .default('$29')\n .describe(\"The headline price, rendered large. Free-form: '$29', '\\u20ac19', 'Free'.\"),\n period: z\n .string()\n .default('/month')\n .describe(\"Billing period beneath the price (e.g. '/month'). Empty hides it.\"),\n features: z\n .array(z.string())\n .optional()\n .describe(\n 'Feature checklist \\u2014 each item gets an accent checkmark, revealed on a stagger.',\n ),\n cta: z.string().default('Get started').describe('Call-to-action button label.'),\n recommended: z\n .boolean()\n .default(false)\n .describe('Lifts + scales the card and shows an accent badge \\u2014 the highlighted tier.'),\n accent: z\n .string()\n .optional()\n .describe(\n 'The earned accent \\u2014 checkmarks, badge, CTA, recommended border + glow (default: theme accent).',\n ),\n delay: timeSchema.default(0).describe('Frames before the card enters.'),\n width: z.number().default(380).describe('Card width in px.'),\n priceSize: z.number().default(64).describe('Price font size in px (the large display number).'),\n background: z.string().optional().describe('Panel fill color (default: theme surface).'),\n borderColor: z\n .string()\n .optional()\n .describe('Panel border color (when not recommended) (default: theme border).'),\n dimColor: z\n .string()\n .optional()\n .describe('Dim color for the tier label (default: theme textMuted).'),\n faintColor: z\n .string()\n .optional()\n .describe('Faint color for the billing period (default: theme textMuted).'),\n bodyFontFamily: z\n .string()\n .optional()\n .describe('Body font for tier / features / CTA (default: theme fontFamily).'),\n x: z\n .number()\n .optional()\n .describe(\"Local-space x of the card's top-left. Omit to center on the composition.\"),\n y: z\n .number()\n .optional()\n .describe(\"Local-space y of the card's top-left. Omit to center on the composition.\"),\n placement: placementSchema\n .optional()\n .describe(\n \"Where the element sits: a region keyword ('center', 'lower-third', 'upper-third', 'top', 'bottom', 'left', 'right', 'top-left', 'top-right', 'bottom-left', 'bottom-right') or normalized {x,y} (0-1 canvas fractions, element-center anchored). Default 'center'.\",\n ),\n})\n\nexport type PricingCardSchemaProps = z.infer<typeof pricingCardSchema>\n","//! Runtime prop schema for {@link ProductWall} — @onda-native (mirrors ProductWallProps).\n\nimport { z } from 'zod'\n\nexport const productWallSchema = z.object({\n images: z\n .array(z.string())\n .default([])\n .describe('Product photo sources (resolved at render time by `onda render`).'),\n spans: z\n .array(z.tuple([z.number(), z.number()]))\n .optional()\n .describe(\n 'Per-image [colSpan, rowSpan] for the bento rhythm; cycled if shorter than images. Omit for a uniform 1×1 grid.',\n ),\n columns: z.number().int().default(4).describe('Grid columns.'),\n gap: z.number().default(16).describe('Gap between tiles in px.'),\n width: z.number().default(1680).describe('Overall grid width in px.'),\n rowHeight: z\n .number()\n .optional()\n .describe('Row-track height in px (defaults to the column-track width ≈ square tiles).'),\n delay: z.number().int().default(0).describe('Frames before the first tile enters.'),\n stagger: z.number().int().default(4).describe('Frames between successive tiles rising in.'),\n borderColor: z\n .string()\n .optional()\n .describe('Tile hairline border color (defaults to theme border).'),\n borderWidth: z.number().default(0).describe('Tile hairline border width in px (0 = no border).'),\n scrim: z\n .number()\n .default(0)\n .describe('Dark veil over every tile, 0..1, to unify a mixed set (0 = off).'),\n cameraFrom: z.number().default(1.06).describe('Camera scale at the start of the move.'),\n cameraTo: z.number().default(1.18).describe('Camera scale at the end (keep the delta gentle).'),\n cameraDriftX: z.number().default(-44).describe('Horizontal camera drift in px across the move.'),\n cameraDriftY: z.number().default(26).describe('Vertical camera drift in px across the move.'),\n cameraDurationInFrames: z\n .number()\n .int()\n .default(150)\n .describe('Frames over which the camera completes its push + drift.'),\n})\n\nexport type ProductWallSchemaProps = z.infer<typeof productWallSchema>\n","//! Runtime prop schema for {@link ProgressBar} — @onda-native (mirrors ProgressBarProps).\n//! GENERATED from the component's props. The Studio agent generates against this\n//! and the preview/export renderer validates with it. Edit the component +\n//! re-run the catalog codegen rather than hand-editing.\n\nimport { z } from 'zod'\nimport { textStyleSchemaShape } from '../text-style.js'\nimport { timeSchema } from '../time.js'\n\nexport const progressBarSchema = z.object({\n ...textStyleSchemaShape,\n value: z.number().default(64).describe('Target fill, 0-100. The bar grows from 0 to this value.'),\n delay: timeSchema.default(0).describe('Frames before the animation starts.'),\n duration: timeSchema.optional().describe('Frames to reach the full target value.'),\n width: z.number().default(640).describe('Track width in px \\u2014 the full 0%-100% travel.'),\n height: z.number().default(12).describe('Bar thickness in px.'),\n radius: z.number().default(999).describe('Corner radius in px. Defaults to a full pill.'),\n trackColor: z\n .string()\n .optional()\n .describe('Track color \\u2014 the unfilled portion (default: theme surface).'),\n accentColor: z.string().optional().describe('Fill color (default: theme accent).'),\n showValue: z\n .boolean()\n .default(true)\n .describe('Whether to render the ${value}% label beside the bar.'),\n fontSize: z.number().default(28).describe('Label font size in px.'),\n})\n\nexport type ProgressBarSchemaProps = z.infer<typeof progressBarSchema>\n","//! Runtime prop schema for {@link ProgressSteps} — @onda-native (mirrors ProgressStepsProps).\n//! GENERATED from the component's props. The Studio agent generates against this\n//! and the preview/export renderer validates with it. Edit the component +\n//! re-run the catalog codegen rather than hand-editing.\n\nimport { z } from 'zod'\nimport { textStyleSchemaShape } from '../text-style.js'\nimport { timeSchema } from '../time.js'\n\nexport const progressStepsSchema = z.object({\n ...textStyleSchemaShape,\n steps: z\n .array(z.string())\n .default(['Plan', 'Build', 'Render', 'Ship'])\n .describe('Step labels, left to right.'),\n current: z\n .number()\n .int()\n .default(2)\n .describe(\n 'How many steps are complete \\u2014 the fill animates to this index (0-based count).',\n ),\n delay: timeSchema.default(0).describe('Frames before the fill animates.'),\n duration: timeSchema.optional().describe('Frames for the fill to travel to `current`.'),\n accentColor: z\n .string()\n .optional()\n .describe('Completed / active color \\u2014 the earned accent (defaults to theme `accent`).'),\n dimColor: z\n .string()\n .optional()\n .describe('Pending color for dots and connector track (defaults to theme `border`).'),\n labelColor: z.string().optional().describe('Label color (defaults to theme `textMuted`).'),\n fontSize: z.number().default(34).describe('Label font size in px.'),\n width: z.number().default(1280).describe('Overall width in px (dots are spaced across this).'),\n dotSize: z.number().default(30).describe('Dot diameter in px.'),\n trackThickness: z.number().default(3).describe('Connector track thickness in px.'),\n})\n\nexport type ProgressStepsSchemaProps = z.infer<typeof progressStepsSchema>\n","//! Runtime prop schema for {@link PulsingIndicator} — @onda-native (mirrors PulsingIndicatorProps).\n//! GENERATED from the component's props. The Studio agent generates against this\n//! and the preview/export renderer validates with it. Edit the component +\n//! re-run the catalog codegen rather than hand-editing.\n\nimport { z } from 'zod'\nimport { textStyleSchemaShape } from '../text-style.js'\n\nexport const pulsingIndicatorSchema = z.object({\n ...textStyleSchemaShape,\n // `color` here is the dot/ring fill (not the label text color); its own\n // description overrides the shared text-style `color` above.\n color: z.string().optional().describe('Dot + ring color (defaults to theme accent).'),\n size: z.number().default(20).describe('Dot diameter in px.'),\n label: z\n .string()\n .default('LIVE')\n .describe('Optional label to the right of the dot; empty hides it.'),\n labelColor: z.string().optional().describe('Label color (defaults to theme textMuted).'),\n fontSize: z.number().default(28).describe('Label font size in px.'),\n period: z.number().int().default(45).describe('Frames per pulse cycle.'),\n x: z\n .number()\n .optional()\n .describe(\"X of the indicator's top-left; when omitted the dot + label assembly is centered.\"),\n y: z\n .number()\n .optional()\n .describe(\"Y of the indicator's top-left; when omitted the dot + label assembly is centered.\"),\n})\n\nexport type PulsingIndicatorSchemaProps = z.infer<typeof pulsingIndicatorSchema>\n","//! Runtime prop schema for {@link QuoteCard} — @onda-native (mirrors QuoteCardProps).\n//! GENERATED from the component's props. The Studio agent generates against this\n//! and the preview/export renderer validates with it. Edit the component +\n//! re-run the catalog codegen rather than hand-editing.\n\nimport { z } from 'zod'\nimport { placementSchema } from '../placement.js'\nimport { textStyleSchemaShape } from '../text-style.js'\nimport { timeSchema } from '../time.js'\n\nexport const quoteCardSchema = z.object({\n ...textStyleSchemaShape,\n quote: z\n .string()\n .default('Motion is the difference between art and craft.')\n .describe('The pull-quote body, revealed word-by-word on a slower-than-canonical stagger.'),\n author: z.string().default('Saul Bass').describe('Attribution name.'),\n role: z.string().default('Graphic Designer').describe('Attribution role / title.'),\n delay: timeSchema.default(0).describe('Frames before the quote starts.'),\n accent: z\n .boolean()\n .default(true)\n .describe('Show the accent divider between quote and attribution.'),\n quoteFontSize: z.number().default(56).describe('Quote font size in px.'),\n quoteFontWeight: z.number().default(600).describe('Quote font weight (display default 600).'),\n authorFontSize: z.number().default(22).describe('Author / role font size in px.'),\n authorFontWeight: z.number().default(500).describe('Author / role font weight.'),\n authorColor: z.string().optional().describe('Author / role color (defaults to theme textMuted).'),\n accentColor: z.string().optional().describe('Divider color (defaults to theme accent).'),\n quoteWidth: z\n .number()\n .optional()\n .describe('Wrap width for the quote in px (defaults to ~44% of the composition width).'),\n placement: placementSchema\n .optional()\n .describe(\n \"Where the element sits: a region keyword ('center', 'lower-third', 'upper-third', 'top', 'bottom', 'left', 'right', 'top-left', 'top-right', 'bottom-left', 'bottom-right') or normalized {x,y} (0-1 canvas fractions, element-center anchored). Default 'center'.\",\n ),\n})\n\nexport type QuoteCardSchemaProps = z.infer<typeof quoteCardSchema>\n","//! Runtime prop schema for {@link RgbGlitch} — @onda-native (mirrors RgbGlitchProps).\n//! GENERATED from the component's props. The Studio agent generates against this\n//! and the preview/export renderer validates with it. Edit the component +\n//! re-run the catalog codegen rather than hand-editing.\n\nimport { z } from 'zod'\nimport { textStyleSchemaShape } from '../text-style.js'\nimport { timeSchema } from '../time.js'\n\nexport const rgbGlitchSchema = z.object({\n ...textStyleSchemaShape,\n text: z.string().default('GLITCH').describe('The text to glitch.'),\n delay: timeSchema.default(0).describe('Frames before the effect starts.'),\n baseSplit: z\n .number()\n .default(2)\n .describe('Constant baseline channel split in px (the always-on chromatic edge).'),\n intensity: z.number().default(10).describe('Peak extra split in px during a glitch burst.'),\n glitchPeriod: z.number().int().default(48).describe('Frames between glitch bursts.'),\n glitchDuration: z.number().int().default(8).describe('Frames a glitch burst lasts.'),\n seed: z.number().int().default(7).describe('Seed for the (deterministic) burst jitter.'),\n redColor: z.string().optional().describe('Red-channel copy color (default: theme accent).'),\n cyanColor: z.string().optional().describe('Cyan-channel copy color (default: theme palette[1]).'),\n channelOpacity: z\n .number()\n .default(0.85)\n .describe(\n 'Opacity of the coloured channel copies (screen-blend approximation; lower keeps the center clean white).',\n ),\n fontSize: z.number().default(120).describe('Font size in px.'),\n align: z\n .enum(['left', 'center', 'right'])\n .default('center')\n .describe('Line alignment relative to the placement point.'),\n x: z\n .number()\n .optional()\n .describe('Absolute x of the alignment anchor (defaults to canvas horizontal center).'),\n y: z\n .number()\n .optional()\n .describe('Absolute y (top-ish) of the line (defaults to vertical center).'),\n variant: z\n .number()\n .int()\n .optional()\n .describe(\n \"Integer 'take' selector: derives a new deterministic seed from (seed, variant), so alternates never require hand-edited seeds. 0/omitted = the default take.\",\n ),\n})\n\nexport type RgbGlitchSchemaProps = z.infer<typeof rgbGlitchSchema>\n","//! Runtime prop schema for {@link RotateIn} — @onda-native (mirrors RotateInProps).\n//! GENERATED from the component's props. The Studio agent generates against this\n//! and the preview/export renderer validates with it. Edit the component +\n//! re-run the catalog codegen rather than hand-editing.\n\nimport { z } from 'zod'\nimport { timeSchema } from '../time.js'\n\nexport const rotateInSchema = z.object({\n delay: timeSchema.default(0).describe('Frames to wait before starting.'),\n durationInFrames: timeSchema\n .optional()\n .describe('Frames to settle to 0\\u00b0 (default DURATION.base = 18).'),\n fromDegrees: z\n .number()\n .default(-8)\n .describe('Starting angle in degrees (clockwise). Safe zone: [-12, +12].'),\n})\n\nexport type RotateInSchemaProps = z.infer<typeof rotateInSchema>\n","//! Runtime prop schema for {@link ScaleIn} — @onda-native (mirrors ScaleInProps).\n//! GENERATED from the component's props. The Studio agent generates against this\n//! and the preview/export renderer validates with it. Edit the component +\n//! re-run the catalog codegen rather than hand-editing.\n\nimport { z } from 'zod'\nimport { timeSchema } from '../time.js'\n\nexport const scaleInSchema = z.object({\n delay: timeSchema.default(0).describe('Frames to wait before the animation starts.'),\n durationInFrames: timeSchema\n .optional()\n .describe('Number of frames over which the entrance settles.'),\n from: z\n .number()\n .default(0.9)\n .describe('Starting scale that animates to 1 (below ~0.85 reads as a dramatic zoom).'),\n})\n\nexport type ScaleInSchemaProps = z.infer<typeof scaleInSchema>\n","//! Runtime prop schema for {@link Scrim} — @onda-native (mirrors ScrimProps).\n\nimport { z } from 'zod'\n\nexport const scrimSchema = z.object({\n color: z\n .string()\n .optional()\n .describe('Veil color (hex). Default white — lifts a busy photo so dark text reads.'),\n opacity: z.number().default(0.3).describe('Veil strength 0..1 (default 0.3).'),\n delay: z.number().int().default(0).describe('Frames before it appears.'),\n fadeIn: z.boolean().default(true).describe('Fade the veil in over the first 8 frames.'),\n})\n\nexport type ScrimSchemaProps = z.infer<typeof scrimSchema>\n","//! Runtime prop schema for {@link ShimmerSweep} — @onda-native (mirrors ShimmerSweepProps).\n//! GENERATED from the component's props. The Studio agent generates against this\n//! and the preview/export renderer validates with it. Edit the component +\n//! re-run the catalog codegen rather than hand-editing.\n\nimport { z } from 'zod'\nimport { textStyleSchemaShape } from '../text-style.js'\nimport { timeSchema } from '../time.js'\n\nexport const shimmerSweepSchema = z.object({\n ...textStyleSchemaShape,\n text: z.string().default('Onda').describe('The single line of text to sweep light across.'),\n delay: timeSchema.default(0).describe('Frames before the sweep starts.'),\n duration: timeSchema\n .optional()\n .describe('Frames for one sweep pass (default DURATION.slower = 30).'),\n loop: z.boolean().default(false).describe('Loop the sweep instead of a single pass.'),\n interval: timeSchema.default(60).describe('Frames between sweeps when looping.'),\n shimmerColor: z\n .string()\n .optional()\n .describe('The sweeping highlight color (default: theme text).'),\n angle: z\n .number()\n .default(110)\n .describe('Sweep angle in degrees (approximated by tilting the gradient band).'),\n fontSize: z.number().default(96).describe('Font size in px (default 96).'),\n width: z\n .number()\n .optional()\n .describe('Explicit text-box width in px. Overrides the glyph-count estimate.'),\n x: z.number().default(0).describe(\"Local-space placement of the component's top-left (x).\"),\n y: z.number().default(0).describe(\"Local-space placement of the component's top-left (y).\"),\n})\n\nexport type ShimmerSweepSchemaProps = z.infer<typeof shimmerSweepSchema>\n","//! Runtime prop schema for {@link SiteReveal} — @onda-native (mirrors SiteRevealProps).\n\nimport { z } from 'zod'\n\nexport const siteRevealSchema = z.object({\n src: z.string().default('').describe('Full-page screenshot (tall) — the homepage to scroll.'),\n url: z.string().default('').describe('Address-bar text.'),\n pageAspect: z\n .number()\n .default(4.48)\n .describe('Page height / width of src (drives the scroll extent).'),\n width: z.number().default(1360).describe('Card content width in px.'),\n height: z.number().default(770).describe('Viewport height in px below the chrome bar.'),\n offsetY: z\n .number()\n .default(56)\n .describe(\n 'Vertical nudge of the card from center (slightly low to leave room for a headline above).',\n ),\n delay: z.number().int().default(0).describe('Frames before the card enters.'),\n typeUrl: z\n .boolean()\n .default(true)\n .describe('Type the URL into the address bar (with a blinking cursor) before scrolling.'),\n typeDurationInFrames: z.number().int().default(26).describe('Frames the URL takes to type in.'),\n scrollStart: z\n .number()\n .default(0)\n .describe('Page fraction (0..1) shown at the start of the scroll.'),\n scrollEnd: z.number().default(0.62).describe('Page fraction (0..1) reached at the end.'),\n scrollDurationInFrames: z\n .number()\n .int()\n .default(150)\n .describe('Frames over which the scroll completes.'),\n surface: z.string().default('#fdfcf9').describe('Card body fill (near-white).'),\n barColor: z.string().default('#f1ece1').describe('Chrome bar fill (light warm gray).'),\n border: z\n .string()\n .optional()\n .describe('1px card border + chrome divider (defaults to theme border).'),\n dim: z.string().optional().describe('Address pill text color (defaults to theme textMuted).'),\n shadowColor: z.string().default('#2b201826').describe('Soft shadow color under the card.'),\n cardRadius: z.number().default(16).describe('Card corner radius in px.'),\n})\n\nexport type SiteRevealSchemaProps = z.infer<typeof siteRevealSchema>\n","//! Runtime prop schema for {@link SkeletonCard} — @onda-native (mirrors SkeletonCardProps).\n//! GENERATED from the component's props. The Studio agent generates against this\n//! and the preview/export renderer validates with it. Edit the component +\n//! re-run the catalog codegen rather than hand-editing.\n\nimport { z } from 'zod'\nimport { timeSchema } from '../time.js'\n\nexport const skeletonCardSchema = z.object({\n lines: z\n .number()\n .int()\n .default(3)\n .describe('Number of placeholder text bars below the (optional) thumbnail.'),\n thumbnail: z.boolean().default(true).describe('Show the leading thumbnail block above the bars.'),\n shimmerSpeed: z\n .number()\n .int()\n .default(96)\n .describe(\n 'Frames for one shimmer pass across the card. Lower = faster sweep. The default runs slow on purpose — a settled, premium loading state.',\n ),\n shimmerColor: z\n .string()\n .optional()\n .describe(\n 'The travelling highlight color \\u2014 a soft sheen over the bars (default: theme border).',\n ),\n barColor: z\n .string()\n .optional()\n .describe('Resting fill of the placeholder bars / thumbnail (default: theme surface).'),\n cardColor: z\n .string()\n .optional()\n .describe(\n 'Card (panel) background \\u2014 the translucent glass fill (default: theme background).',\n ),\n borderColor: z\n .string()\n .optional()\n .describe('Card border color (the 1px-equivalent stroke) (default: theme border).'),\n delay: timeSchema.default(0).describe('Frames before the card enters.'),\n width: z.number().default(480).describe('Card width in px.'),\n height: z\n .number()\n .optional()\n .describe('Card height in px. undefined sizes the card to its content.'),\n barHeight: z.number().default(18).describe('Base bar height in px.'),\n padding: z.number().default(32).describe('Inner padding of the card in px.'),\n})\n\nexport type SkeletonCardSchemaProps = z.infer<typeof skeletonCardSchema>\n","//! Runtime prop schema for {@link SlideIn} — @onda-native (mirrors SlideInProps).\n//! GENERATED from the component's props. The Studio agent generates against this\n//! and the preview/export renderer validates with it. Edit the component +\n//! re-run the catalog codegen rather than hand-editing.\n\nimport { z } from 'zod'\nimport { timeSchema } from '../time.js'\n\nexport const slideInSchema = z.object({\n delay: timeSchema.default(0).describe('Frames to wait before the animation starts.'),\n durationInFrames: timeSchema.optional().describe('Frames to fully settle into place.'),\n direction: z\n .enum(['up', 'down', 'left', 'right'])\n .default('up')\n .describe(\"Settling direction; 'up' rises into place from below.\"),\n distance: z.number().default(12).describe('Travel distance in px (12-24 Onda envelope).'),\n})\n\nexport type SlideInSchemaProps = z.infer<typeof slideInSchema>\n","//! Runtime prop schema for {@link SlideOut} — @onda-native (mirrors SlideOutProps).\n//! GENERATED from the component's props. The Studio agent generates against this\n//! and the preview/export renderer validates with it. Edit the component +\n//! re-run the catalog codegen rather than hand-editing.\n\nimport { z } from 'zod'\nimport { timeSchema } from '../time.js'\n\nexport const slideOutSchema = z.object({\n delay: timeSchema.default(0).describe('Frames before the exit animation starts.'),\n durationInFrames: timeSchema\n .optional()\n .describe('Frames to fully leave; exits are quicker than entrances.'),\n direction: z\n .enum(['up', 'down', 'left', 'right'])\n .default('down')\n .describe(\"Direction the element leaves toward ('down' drops it).\"),\n distance: z.number().default(12).describe('Travel distance in px for the slide.'),\n})\n\nexport type SlideOutSchemaProps = z.infer<typeof slideOutSchema>\n","//! Runtime prop schema for {@link SlotMachineRoll} — @onda-native (mirrors SlotMachineRollProps).\n//! GENERATED from the component's props. The Studio agent generates against this\n//! and the preview/export renderer validates with it. Edit the component +\n//! re-run the catalog codegen rather than hand-editing.\n\nimport { z } from 'zod'\nimport { placementSchema } from '../placement.js'\nimport { textStyleSchemaShape } from '../text-style.js'\nimport { timeSchema } from '../time.js'\n\nexport const slotMachineRollSchema = z.object({\n ...textStyleSchemaShape,\n text: z\n .string()\n .default('2026')\n .describe('The text that rolls into place. Best on short strings (years, counts).'),\n delay: timeSchema.default(0).describe('Frames before rolling starts.'),\n charDelay: timeSchema\n .default(5)\n .describe(\n 'Frames between successive characters starting their roll (default the house STAGGER = 5 - a settled, orchestrated wave left-to-right).',\n ),\n durationInFrames: timeSchema\n .optional()\n .describe(\n \"Frames for each character's reel to settle (default DURATION.slower = 34 - a slow, hard-decelerating odometer drop, not a constant-velocity spin).\",\n ),\n reelLength: z\n .number()\n .int()\n .default(12)\n .describe('How many filler glyphs spin past before the target lands.'),\n seed: z.number().int().default(7).describe('Seed for the (deterministic) filler glyphs.'),\n charset: z.string().default('0123456789').describe('Glyph pool the reel spins through.'),\n fontSize: z\n .number()\n .default(140)\n .describe('Font size in px (default 140). The cell height equals this.'),\n glow: z\n .boolean()\n .default(false)\n .describe(\n 'Render a soft radial accent bloom behind the landed row as the reels settle — a true falloff to transparent, not a solid wash. Default false (off).',\n ),\n align: z\n .enum(['left', 'center', 'right'])\n .default('center')\n .describe(\"Horizontal anchoring of the whole block (default 'center').\"),\n x: z\n .number()\n .optional()\n .describe(\n \"Absolute x of the block's anchor. Defaults to the canvas horizontal center (respecting align).\",\n ),\n y: z\n .number()\n .optional()\n .describe(\"Absolute y of the block's top. Defaults to vertically centering the row.\"),\n placement: placementSchema\n .optional()\n .describe(\n \"Where the element sits: a region keyword ('center', 'lower-third', 'upper-third', 'top', 'bottom', 'left', 'right', 'top-left', 'top-right', 'bottom-left', 'bottom-right') or normalized {x,y} (0-1 canvas fractions, element-center anchored). Default 'center'.\",\n ),\n fit: z\n .enum(['none', 'frame'])\n .optional()\n .describe(\n \"Opt-in auto-fit: 'frame' scales the font size DOWN (never up) so the line cannot exceed the frame minus the safe margins. Default 'none'.\",\n ),\n maxWidth: z\n .number()\n .optional()\n .describe('Explicit width cap in px for the line; combines with fit (the smaller cap wins).'),\n fitToClip: z\n .boolean()\n .optional()\n .describe(\n 'Compress the whole timing envelope (delay, stagger, durations) so the entrance settles at least hold before the end of the enclosing clip. Opt-in.',\n ),\n maxSettle: timeSchema\n .optional()\n .describe(\"Hard cap on the settle time (frames or '0.5s'). Wins over fitToClip.\"),\n hold: timeSchema\n .optional()\n .describe('Breathing room before the cut for fitToClip (default 6 frames).'),\n variant: z\n .number()\n .int()\n .optional()\n .describe(\n \"Integer 'take' selector: derives a new deterministic seed from (seed, variant), so alternates never require hand-edited seeds. 0/omitted = the default take.\",\n ),\n})\n\nexport type SlotMachineRollSchemaProps = z.infer<typeof slotMachineRollSchema>\n","//! Runtime prop schema for {@link SplitLockup} — @onda-native (mirrors SplitLockupProps).\n//! The Studio agent generates against this; the preview/export renderer validates with it.\n\nimport { z } from 'zod'\nimport { timeSchema } from '../time.js'\n\nexport const splitLockupSchema = z.object({\n line1: z.string().default('NEW').describe('Top line of the lockup.'),\n line2: z.string().default('PROJECT').describe('Bottom line of the lockup.'),\n fontSize: z.number().default(200).describe('Font size in px.'),\n color: z.string().optional().describe('Ink color (hex); defaults to theme `text`.'),\n fontFamily: z.string().optional().describe('Font family; defaults to the theme heading family.'),\n fontWeight: z.number().default(500).describe('Font weight (this look wants regular ≈ 400).'),\n letterSpacing: z\n .number()\n .optional()\n .describe('Tracking in px — keep it generous (default fontSize × 0.04).'),\n splitX: z\n .number()\n .optional()\n .describe('How far each line pulls HORIZONTALLY to its corner, px from center.'),\n splitY: z\n .number()\n .optional()\n .describe('How far each line pulls VERTICALLY to its corner, px from center.'),\n lineGap: z\n .number()\n .optional()\n .describe('Vertical gap between the two stacked lines in the lockup (px).'),\n assembleFrames: timeSchema\n .optional()\n .describe('Duration of the assemble (split → center) move (default 0.7s).'),\n disassembleFrames: timeSchema\n .optional()\n .describe('Duration of the disassemble (center → split) move (default 0.5s).'),\n durationInFrames: timeSchema\n .optional()\n .describe('Total clip length; defaults to the enclosing Sequence duration.'),\n})\n\nexport type SplitLockupSchemaProps = z.infer<typeof splitLockupSchema>\n","//! Runtime prop schema for {@link SplitScreen} — @onda-native (mirrors SplitScreenProps).\n//! GENERATED from the component's props. The Studio agent generates against this\n//! and the preview/export renderer validates with it. Edit the component +\n//! re-run the catalog codegen rather than hand-editing.\n\nimport { z } from 'zod'\nimport { textStyleSchemaShape } from '../text-style.js'\nimport { timeSchema } from '../time.js'\n\nexport const splitScreenSchema = z.object({\n ...textStyleSchemaShape,\n orientation: z\n .enum(['horizontal', 'vertical'])\n .default('horizontal')\n .describe('Pane axis: horizontal = side-by-side, vertical = stacked.'),\n ratio: z\n .number()\n .default(0.5)\n .describe('Fraction (0..1) of the main axis given to the left (or top) pane.'),\n gap: z.number().default(0).describe('Gap between the two panes in px.'),\n divider: z\n .boolean()\n .default(true)\n .describe('Draw a thin token divider in the gap between the panes.'),\n animate: z\n .boolean()\n .default(true)\n .describe('Slide the two panes apart from the center seam on the house spring.'),\n delay: timeSchema.default(0).describe('Frames before the entrance.'),\n width: z\n .number()\n .optional()\n .describe('Overall width in px. Defaults to the full composition width.'),\n height: z\n .number()\n .optional()\n .describe('Overall height in px. Defaults to the full composition height.'),\n paneBackground: z\n .string()\n .optional()\n .describe('Pane background fill (default: lifted surface fill).'),\n background: z\n .string()\n .optional()\n .describe(\n 'Outer (gutter) background fill, seen in the gap behind the divider (default: theme background).',\n ),\n dividerColor: z\n .string()\n .optional()\n .describe('Divider color (thin token line) (default: brighter hairline edge color).'),\n placeholderColor: z\n .string()\n .optional()\n .describe('Placeholder label color for an empty pane (default: theme textMuted).'),\n})\n\nexport type SplitScreenSchemaProps = z.infer<typeof splitScreenSchema>\n","//! Runtime prop schema for {@link Spotlight} — @onda-native (mirrors SpotlightProps).\n//! GENERATED from the component's props. The Studio agent generates against this\n//! and the preview/export renderer validates with it. Edit the component +\n//! re-run the catalog codegen rather than hand-editing.\n\nimport { z } from 'zod'\nimport { timeSchema } from '../time.js'\n\nexport const spotlightSchema = z.object({\n x: z\n .number()\n .default(0.5)\n .describe('Horizontal center of the spotlight as a 0\\u20131 fraction of canvas width.'),\n y: z\n .number()\n .default(0.5)\n .describe('Vertical center of the spotlight as a 0\\u20131 fraction of canvas height.'),\n radius: z\n .number()\n .default(40)\n .describe(\"Final radius as a percentage of the canvas's smaller dimension.\"),\n delay: timeSchema.default(0).describe('Frames before the reveal starts.'),\n durationInFrames: timeSchema\n .optional()\n .describe('Frames until the spotlight reaches its full radius.'),\n color: z\n .string()\n .optional()\n .describe('Light color (defaults to theme `text`). Hex `#rrggbb` / `#rrggbbaa`.'),\n softness: z\n .number()\n .default(60)\n .describe(\n 'Gradient softness \\u2014 % of the radius given over to the fade-to-transparent tail; 0 is a hard disc, 100 fades from the very center.',\n ),\n})\n\nexport type SpotlightSchemaProps = z.infer<typeof spotlightSchema>\n","//! Runtime prop schema for {@link SpotlightCard} — @onda-native (mirrors SpotlightCardProps).\n//! GENERATED from the component's props. The Studio agent generates against this\n//! and the preview/export renderer validates with it. Edit the component +\n//! re-run the catalog codegen rather than hand-editing.\n\nimport { z } from 'zod'\nimport { textStyleSchemaShape } from '../text-style.js'\nimport { timeSchema } from '../time.js'\n\nexport const spotlightCardSchema = z.object({\n ...textStyleSchemaShape,\n eyebrow: z\n .string()\n .default('FEATURE')\n .describe('Small uppercase kicker above the title; empty hides it.'),\n title: z\n .string()\n .default('Motion identity')\n .describe('Card headline rendered in the display font.'),\n body: z\n .string()\n .default('One consistent feel across every component.')\n .describe('Supporting body copy; empty hides it; single line.'),\n delay: timeSchema.default(0).describe('Frames before the card enters.'),\n glowColor: z\n .string()\n .optional()\n .describe('The drifting spotlight color \\u2014 the earned accent (default: theme accent).'),\n width: z.number().default(560).describe('Card width in px.'),\n height: z\n .number()\n .optional()\n .describe('Card height in px; if omitted, sized from content plus padding.'),\n padding: z.number().default(48).describe('Inner padding in px.'),\n align: z.enum(['left', 'center']).default('left').describe('Text alignment within the card.'),\n bodyFontFamily: z\n .string()\n .optional()\n .describe('Font family for the eyebrow and body copy (default: theme fontFamily).'),\n titleSize: z.number().default(44).describe('Title font size in px.'),\n bodySize: z.number().default(20).describe('Body font size in px.'),\n eyebrowSize: z.number().default(15).describe('Eyebrow font size in px.'),\n titleColor: z.string().optional().describe('Title color (default: theme text).'),\n bodyColor: z.string().optional().describe('Body color (default: theme textMuted).'),\n eyebrowColor: z.string().optional().describe('Eyebrow color (default: theme textMuted).'),\n background: z\n .string()\n .optional()\n .describe('Card glass fill, translucent dark by default (default: theme surface).'),\n borderColor: z\n .string()\n .optional()\n .describe('Card border (stroke) color (default: theme border).'),\n cornerRadius: z.number().optional().describe('Corner radius in px (default: theme radius).'),\n})\n\nexport type SpotlightCardSchemaProps = z.infer<typeof spotlightCardSchema>\n","//! Runtime prop schema for {@link StaggerGroup} — @onda-native (mirrors StaggerGroupProps).\n//! GENERATED from the component's props. The Studio agent generates against this\n//! and the preview/export renderer validates with it. Edit the component +\n//! re-run the catalog codegen rather than hand-editing.\n\nimport { z } from 'zod'\nimport { textStyleSchemaShape } from '../text-style.js'\nimport { timeSchema } from '../time.js'\n\nexport const staggerGroupSchema = z.object({\n ...textStyleSchemaShape,\n items: z\n .array(z.string())\n .default(['Less is more', 'Calm is power', 'Motion has a feel', 'Made to be edited'])\n .describe('The items to reveal, in source order.'),\n delay: timeSchema.default(0).describe('Frames before the first item starts.'),\n stagger: timeSchema\n .optional()\n .describe('Frames between consecutive items; canonical Onda stagger is 4.'),\n duration: timeSchema.optional().describe('Per-item reveal duration in frames.'),\n direction: z\n .enum(['row', 'column'])\n .default('column')\n .describe('Layout direction for the items.'),\n gap: z.number().default(16).describe('Pixels between items.'),\n align: z\n .enum(['start', 'center', 'end'])\n .default('center')\n .describe('Cross-axis alignment of items.'),\n fontSize: z.number().default(48).describe('Font size in px.'),\n})\n\nexport type StaggerGroupSchemaProps = z.infer<typeof staggerGroupSchema>\n","//! Runtime prop schema for {@link StatCard} — @onda-native (mirrors StatCardProps).\n//! GENERATED from the component's props. The Studio agent generates against this\n//! and the preview/export renderer validates with it. Edit the component +\n//! re-run the catalog codegen rather than hand-editing.\n\nimport { z } from 'zod'\nimport { placementSchema } from '../placement.js'\nimport { textStyleSchemaShape } from '../text-style.js'\nimport { timeSchema } from '../time.js'\n\nexport const statCardSchema = z.object({\n ...textStyleSchemaShape,\n value: z\n .string()\n .default('\\u2014')\n .describe('The headline metric, e.g. \"26.8 fps\" or \"100\\u00d7\" (a number is stringified).'),\n label: z\n .string()\n .default('')\n .describe('The label beneath the value, e.g. \"faster than Remotion\".'),\n valueSize: z.number().default(180).describe('Font size in px for the headline value.'),\n labelSize: z.number().default(34).describe('Font size in px for the label.'),\n valueColor: z.string().optional().describe('Value color (default: theme text).'),\n labelColor: z.string().optional().describe('Label color (default: theme textMuted).'),\n accent: z\n .any()\n .default(true)\n .describe(\n 'Show the accent rule beneath the value: true/undefined shows it (theme accent), false hides it, a string shows it in that color.',\n ),\n accentColor: z\n .string()\n .optional()\n .describe('Accent rule color (default: theme accent); wins over a string passed to accent.'),\n delay: timeSchema.default(0).describe('Frames to delay before the staggered fade-in begins.'),\n placement: placementSchema\n .optional()\n .describe(\n \"Where the element sits: a region keyword ('center', 'lower-third', 'upper-third', 'top', 'bottom', 'left', 'right', 'top-left', 'top-right', 'bottom-left', 'bottom-right') or normalized {x,y} (0-1 canvas fractions, element-center anchored). Default 'center'.\",\n ),\n})\n\nexport type StatCardSchemaProps = z.infer<typeof statCardSchema>\n","//! Runtime prop schema for {@link Terminal} — @onda-native (mirrors TerminalProps).\n//! GENERATED from the component's props. The Studio agent generates against this\n//! and the preview/export renderer validates with it. Edit the component +\n//! re-run the catalog codegen rather than hand-editing.\n\nimport { z } from 'zod'\nimport { placementSchema } from '../placement.js'\nimport { textStyleSchemaShape } from '../text-style.js'\nimport { timeSchema } from '../time.js'\n\nexport const terminalSchema = z.object({\n ...textStyleSchemaShape,\n command: z\n .string()\n .default('npx ondajs add code-block')\n .describe('The command that types itself out after the prompt.'),\n output: z\n .array(z.string())\n .default(['✓ added code-block', '✓ wrote 4 files'])\n .describe('Output lines that appear, staggered, once the command finishes typing.'),\n prompt: z.string().default('$').describe('The shell prompt glyph.'),\n title: z\n .string()\n .default('zsh')\n .describe('Title-bar label; empty hides it (dots still show if chrome is on).'),\n chrome: z.boolean().default(true).describe('Show window chrome (dots + title bar).'),\n delay: timeSchema.default(0).describe('Frames before typing starts.'),\n typeSpeed: timeSchema.default(30).describe('Frames to type the whole command (linear cadence).'),\n outputDelay: timeSchema\n .default(8)\n .describe('Frames after the command finishes before output begins.'),\n fontSize: z.number().default(48).describe('Font size in px, sized for a 1080p+ video canvas.'),\n width: z\n .number()\n .default(1100)\n .describe(\n 'Width of the window in px, fixed so the frame stays stable while the command types.',\n ),\n textColor: z.string().optional().describe('Command text color (default: theme text).'),\n promptColor: z\n .string()\n .optional()\n .describe('Prompt glyph color \\u2014 the earned accent (default: theme accent).'),\n outputColor: z.string().optional().describe('Output line color (default: theme textMuted).'),\n background: z.string().optional().describe('Window background color (default: theme surface).'),\n cornerRadius: z\n .number()\n .optional()\n .describe('Window corner radius in px (default: theme radius).'),\n x: z\n .number()\n .optional()\n .describe(\"Absolute x of the window's top-left; defaults to horizontally centered.\"),\n y: z\n .number()\n .optional()\n .describe(\"Absolute y of the window's top-left; defaults to vertically centered.\"),\n placement: placementSchema\n .optional()\n .describe(\n \"Where the element sits: a region keyword ('center', 'lower-third', 'upper-third', 'top', 'bottom', 'left', 'right', 'top-left', 'top-right', 'bottom-left', 'bottom-right') or normalized {x,y} (0-1 canvas fractions, element-center anchored). Default 'center'.\",\n ),\n})\n\nexport type TerminalSchemaProps = z.infer<typeof terminalSchema>\n","//! Runtime prop schema for {@link TextFadeReplace} — @onda-native (mirrors TextFadeReplaceProps).\n//! GENERATED from the component's props. The Studio agent generates against this\n//! and the preview/export renderer validates with it. Edit the component +\n//! re-run the catalog codegen rather than hand-editing.\n\nimport { z } from 'zod'\nimport { textStyleSchemaShape } from '../text-style.js'\nimport { timeSchema } from '../time.js'\n\nexport const textFadeReplaceSchema = z.object({\n ...textStyleSchemaShape,\n from: z.string().describe('The outgoing phrase (shown first, fades out).'),\n to: z.string().describe('The incoming phrase (fades in over `from`).'),\n delay: timeSchema\n .optional()\n .describe('Frames before the crossfade begins; until then only `from` is shown (default 45).'),\n durationInFrames: timeSchema\n .optional()\n .describe(\n 'Frames the crossfade takes \\u2014 old out over the first half, new in over the second (default 18).',\n ),\n fontSize: z.number().default(96).describe('Font size in px (default 96).'),\n})\n\nexport type TextFadeReplaceSchemaProps = z.infer<typeof textFadeReplaceSchema>\n","//! Runtime prop schema for {@link Timeline} — @onda-native (mirrors TimelineProps).\n//! GENERATED from the component's props. The Studio agent generates against this\n//! and the preview/export renderer validates with it. Edit the component +\n//! re-run the catalog codegen rather than hand-editing.\n\nimport { z } from 'zod'\nimport { textStyleSchemaShape } from '../text-style.js'\nimport { timeSchema } from '../time.js'\n\nexport const timelineSchema = z.object({\n ...textStyleSchemaShape,\n events: z\n .any()\n .optional()\n .describe(\n 'Anchor points down the timeline (each { label }). Order is preserved \\u2014 top to bottom.',\n ),\n delay: timeSchema.default(0).describe('Frames before the line begins to draw.'),\n lineDuration: timeSchema\n .optional()\n .describe('Frames over which the vertical line reveals itself top-to-bottom.'),\n dotDelay: z\n .number()\n .int()\n .default(8)\n .describe('Frames between the line completing and the first dot appearing.'),\n dotStagger: z\n .number()\n .int()\n .optional()\n .describe('Frames between consecutive dot entrances (canonical Onda stagger = 4).'),\n dotDuration: z.number().int().optional().describe('Per-dot entrance duration in frames.'),\n dotSize: z.number().default(18).describe('Dot diameter in px.'),\n spacing: z.number().default(110).describe('Vertical distance between consecutive events, in px.'),\n lineWidth: z.number().default(4).describe('Line thickness in px.'),\n lineColor: z.string().optional().describe('Line color (default: theme border).'),\n dotColor: z.string().optional().describe('Non-final dot color (default: theme text).'),\n accentColor: z\n .string()\n .optional()\n .describe('Final dot color \\u2014 the earned accent (default: theme accent).'),\n labelColor: z.string().optional().describe('Label color (default: theme textMuted).'),\n fontSize: z.number().default(28).describe('Label font size in px.'),\n})\n\nexport type TimelineSchemaProps = z.infer<typeof timelineSchema>\n","//! Runtime prop schema for {@link TitleCard} — @onda-native (mirrors TitleCardProps).\n//! GENERATED from the component's props. The Studio agent generates against this\n//! and the preview/export renderer validates with it. Edit the component +\n//! re-run the catalog codegen rather than hand-editing.\n\nimport { z } from 'zod'\nimport { placementSchema } from '../placement.js'\nimport { textStyleSchemaShape } from '../text-style.js'\nimport { timeSchema } from '../time.js'\n\nexport const titleCardSchema = z.object({\n ...textStyleSchemaShape,\n title: z.string().describe('The hero headline rendered as the large centered title.'),\n subtitle: z\n .string()\n .optional()\n .describe('Optional smaller phrase shown beneath the title, fading in one stagger step later.'),\n titleSize: z.number().default(120).describe('Title font size in px.'),\n subtitleSize: z.number().default(36).describe('Subtitle font size in px.'),\n titleColor: z.string().optional().describe('Title color (defaults to theme text).'),\n subtitleColor: z.string().optional().describe('Subtitle color (defaults to theme textMuted).'),\n delay: timeSchema\n .default(0)\n .describe('Frame the title begins fading in; the subtitle follows by one stagger step.'),\n placement: placementSchema\n .optional()\n .describe(\n \"Where the element sits: a region keyword ('center', 'lower-third', 'upper-third', 'top', 'bottom', 'left', 'right', 'top-left', 'top-right', 'bottom-left', 'bottom-right') or normalized {x,y} (0-1 canvas fractions, element-center anchored). Default 'center'.\",\n ),\n fit: z\n .enum(['none', 'frame'])\n .optional()\n .describe(\n \"Opt-in auto-fit: 'frame' scales the font size DOWN (never up) so the line cannot exceed the frame minus the safe margins. Default 'none'.\",\n ),\n maxWidth: z\n .number()\n .optional()\n .describe('Explicit width cap in px for the line; combines with fit (the smaller cap wins).'),\n})\n\nexport type TitleCardSchemaProps = z.infer<typeof titleCardSchema>\n","//! Runtime prop schema for {@link TrackingIn} — @onda-native (mirrors TrackingInProps).\n//! GENERATED from the component's props. The Studio agent generates against this\n//! and the preview/export renderer validates with it. Edit the component +\n//! re-run the catalog codegen rather than hand-editing.\n\nimport { z } from 'zod'\nimport { textStyleSchemaShape } from '../text-style.js'\nimport { timeSchema } from '../time.js'\n\nexport const trackingInSchema = z.object({\n ...textStyleSchemaShape,\n text: z.string().default('Onda').describe('The text to settle in.'),\n delay: timeSchema.default(0).describe('Frames before the entrance starts.'),\n durationInFrames: timeSchema\n .optional()\n .describe('Frames until the text settles (default DURATION.slow = 24).'),\n fromTracking: z\n .number()\n .default(0.5)\n .describe('Starting letter-spacing in em \\u2014 the text begins spread wide and contracts.'),\n tracking: z.number().default(-0.02).describe('Resting letter-spacing in em.'),\n blur: z\n .boolean()\n .default(true)\n .describe(\n 'Start the text soft and sharpen as it settles (approximated as a fading ghost layer).',\n ),\n fontSize: z.number().default(96).describe('Font size in px.'),\n align: z\n .enum(['left', 'center', 'right'])\n .default('center')\n .describe('Horizontal alignment of the line about x.'),\n advanceFactor: z\n .number()\n .optional()\n .describe(\n 'Deprecated and unused; accepted for compat (real shaped letter-spacing metrics are used now).',\n ),\n x: z.number().optional().describe('Absolute x anchor of the line (default canvas center).'),\n y: z.number().optional().describe(\"Absolute y of the line's top (default vertical center).\"),\n})\n\nexport type TrackingInSchemaProps = z.infer<typeof trackingInSchema>\n","//! Runtime prop schema for {@link Typewriter} — @onda-native (mirrors TypewriterProps).\n//! GENERATED from the component's props. The Studio agent generates against this\n//! and the preview/export renderer validates with it. Edit the component +\n//! re-run the catalog codegen rather than hand-editing.\n\nimport { z } from 'zod'\nimport { placementSchema } from '../placement.js'\nimport { textStyleSchemaShape } from '../text-style.js'\nimport { timeSchema } from '../time.js'\n\nexport const typewriterSchema = z.object({\n text: z.string().default('motion graphics').describe('What to type out.'),\n delay: timeSchema.default(0).describe('Frames before typing starts.'),\n durationInFrames: timeSchema\n .optional()\n .describe(\n 'Frames to type the full string; linear pacing means chars-per-frame is constant (default 24).',\n ),\n cursor: z\n .boolean()\n .default(true)\n .describe('Show a blinking cursor at the leading edge while typing.'),\n cursorColor: z.string().optional().describe('Cursor color (defaults to theme accent).'),\n ...textStyleSchemaShape,\n fontSize: z.number().default(64).describe('Font size in px.'),\n x: z\n .number()\n .optional()\n .describe(\n \"Absolute x of the text's left edge (defaults to a centered origin from the measured full-text width).\",\n ),\n y: z.number().optional().describe('Absolute y top of the text (defaults to vertical center).'),\n placement: placementSchema\n .optional()\n .describe(\n \"Where the element sits: a region keyword ('center', 'lower-third', 'upper-third', 'top', 'bottom', 'left', 'right', 'top-left', 'top-right', 'bottom-left', 'bottom-right') or normalized {x,y} (0-1 canvas fractions, element-center anchored). Default 'center'.\",\n ),\n fit: z\n .enum(['none', 'frame'])\n .optional()\n .describe(\n \"Opt-in auto-fit: 'frame' scales the font size DOWN (never up) so the line cannot exceed the frame minus the safe margins. Default 'none'.\",\n ),\n maxWidth: z\n .number()\n .optional()\n .describe('Explicit width cap in px for the line; combines with fit (the smaller cap wins).'),\n fitToClip: z\n .boolean()\n .optional()\n .describe(\n 'Compress the whole timing envelope (delay, stagger, durations) so the entrance settles at least hold before the end of the enclosing clip. Opt-in.',\n ),\n maxSettle: timeSchema\n .optional()\n .describe(\"Hard cap on the settle time (frames or '0.5s'). Wins over fitToClip.\"),\n hold: timeSchema\n .optional()\n .describe('Breathing room before the cut for fitToClip (default 6 frames).'),\n})\n\nexport type TypewriterSchemaProps = z.infer<typeof typewriterSchema>\n","//! Runtime prop schema for {@link Underline} — @onda-native (mirrors UnderlineProps).\n//! GENERATED from the component's props. The Studio agent generates against this\n//! and the preview/export renderer validates with it. Edit the component +\n//! re-run the catalog codegen rather than hand-editing.\n\nimport { z } from 'zod'\nimport { textStyleSchemaShape } from '../text-style.js'\nimport { timeSchema } from '../time.js'\n\nexport const underlineSchema = z.object({\n ...textStyleSchemaShape,\n text: z\n .string()\n .default('underline this')\n .describe('Text to reveal. Pass \"\" to draw the rule alone.'),\n delay: timeSchema.default(0).describe('Frames before the text starts revealing.'),\n duration: timeSchema\n .optional()\n .describe('Text reveal duration in frames (default DURATION.base = 18).'),\n lineDelay: timeSchema\n .default(8)\n .describe('Frames to wait after the text lands before the rule starts drawing.'),\n lineDuration: timeSchema\n .optional()\n .describe('Rule draw duration. Fast on purpose \\u2014 emphatic (default DURATION.fast).'),\n accentColor: z.string().optional().describe('Rule color (default: theme accent).'),\n lineThickness: z.number().default(3).describe('Rule thickness in px.'),\n lineOffset: z.number().default(6).describe('Pixel gap between the text box and the rule.'),\n fontSize: z.number().default(64).describe('Text size in px (default 64).'),\n align: z\n .enum(['left', 'center', 'right'])\n .default('left')\n .describe('Horizontal alignment of the rule under the text.'),\n})\n\nexport type UnderlineSchemaProps = z.infer<typeof underlineSchema>\n","//! Runtime prop schema for {@link VideoClip} — @onda-native (mirrors VideoClipProps).\n//! GENERATED from the component's props. The Studio agent generates against this\n//! and the preview/export renderer validates with it. Edit the component +\n//! re-run the catalog codegen rather than hand-editing.\n\nimport { z } from 'zod'\nimport { timeSchema } from '../time.js'\n\nexport const videoClipSchema = z.object({\n src: z\n .string()\n .describe(\n 'URL or path to the video, decoded per composition frame by the player or onda export.',\n ),\n startAt: z\n .number()\n .default(0)\n .describe(\"Seconds into the source shown at the clip's frame 0 (trims the head).\"),\n playbackRate: z\n .number()\n .default(1)\n .describe('Source seconds advanced per composition second (1 = realtime).'),\n endAt: z\n .number()\n .optional()\n .describe(\n \"Seconds into the source to stop at (trims the tail); omit to play to the source's end.\",\n ),\n loop: z\n .boolean()\n .optional()\n .describe('Loop the trimmed span [startAt, endAt) (requires endAt) while the clip is visible.'),\n previewFallback: z\n .enum(['skip', 'element'])\n .optional()\n .describe(\n \"Preview-only handling of a source the player can't composite: 'skip' blanks it, 'element' overlays a plain video.\",\n ),\n delay: timeSchema.default(0).describe('Frames the clip waits before its fade-in begins.'),\n fadeIn: z.number().int().optional().describe('Frames the fade-in takes (0 = hard cut in).'),\n fadeOut: z.number().int().optional().describe('Frames the fade-out takes (0 = hard cut out).'),\n durationInFrames: timeSchema\n .optional()\n .describe(\n 'Visible hold of the clip in frames, used to time the fade-out; omit to skip the fade-out.',\n ),\n fit: z\n .enum(['cover', 'contain'])\n .default('cover')\n .describe(\n \"How the frame fits its box: 'cover' crops to fill, 'contain' letterboxes against black.\",\n ),\n width: z\n .number()\n .optional()\n .describe('Box width in px the clip occupies (default = full composition width).'),\n height: z\n .number()\n .optional()\n .describe('Box height in px the clip occupies (default = full composition height).'),\n x: z.number().default(0).describe('Top-left x of the box in px.'),\n y: z.number().default(0).describe('Top-left y of the box in px.'),\n borderRadius: z\n .number()\n .optional()\n .describe('Rounded corner radius of the box in px (defaults to theme radius).'),\n letterbox: z\n .number()\n .default(0)\n .describe('Cinematic black letterbox bars top & bottom, each this many px tall (0 = none).'),\n backgroundColor: z\n .string()\n .optional()\n .describe('Backing color shown behind/around the poster (defaults to theme background).'),\n})\n\nexport type VideoClipSchemaProps = z.infer<typeof videoClipSchema>\n","//! Runtime prop schema for {@link Vignette} — @onda-native (mirrors VignetteProps).\n//! GENERATED from the component's props. The Studio agent generates against this\n//! and the preview/export renderer validates with it. Edit the component +\n//! re-run the catalog codegen rather than hand-editing.\n\nimport { z } from 'zod'\n\nexport const vignetteSchema = z.object({\n intensity: z\n .number()\n .default(0.5)\n .describe('Edge darkness. 0 = no vignette, 1 = fully dark edges.'),\n innerRadius: z\n .number()\n .default(40)\n .describe(\n 'Percent (0..100) from center where the darkening begins; larger means a bigger clean middle.',\n ),\n color: z\n .string()\n .optional()\n .describe(\n 'Edge color; defaults to the theme background (typically black for a classic cinematic frame).',\n ),\n})\n\nexport type VignetteSchemaProps = z.infer<typeof vignetteSchema>\n","//! Runtime prop schema for {@link WordRotate} — @onda-native (mirrors WordRotateProps).\n//! GENERATED from the component's props. The Studio agent generates against this\n//! and the preview/export renderer validates with it. Edit the component +\n//! re-run the catalog codegen rather than hand-editing.\n\nimport { z } from 'zod'\nimport { textStyleSchemaShape } from '../text-style.js'\nimport { timeSchema } from '../time.js'\n\nexport const wordRotateSchema = z.object({\n ...textStyleSchemaShape,\n phrases: z\n .array(z.string())\n .default(['fast', 'beautiful', 'restrained'])\n .describe('Phrases cycled in place, in order. One is visible at a time.'),\n delay: timeSchema.default(0).describe('Frames before the first phrase begins to enter.'),\n holdDuration: timeSchema\n .default(30)\n .describe('Frames each phrase holds at full opacity before the next arrives.'),\n transitionDuration: z\n .number()\n .int()\n .default(12)\n .describe('Frames for a single phrase to fade in (and, separately, fade out).'),\n fontSize: z.number().default(96).describe('Font size in px. Phrases are usually large.'),\n align: z\n .enum(['left', 'center', 'right'])\n .default('left')\n .describe(\n \"Horizontal anchor of each phrase relative to `x`; 'center'/'right' use the measured text width.\",\n ),\n x: z\n .number()\n .optional()\n .describe('Absolute x of the anchor point. Defaults to the composition horizontal center.'),\n y: z\n .number()\n .optional()\n .describe('Absolute y (top-ish) of the text. Defaults to vertical center.'),\n})\n\nexport type WordRotateSchemaProps = z.infer<typeof wordRotateSchema>\n","//! Runtime prop schema for {@link WordStagger} — @onda-native (mirrors WordStaggerProps).\n//! GENERATED from the component's props. The Studio agent generates against this\n//! and the preview/export renderer validates with it. Edit the component +\n//! re-run the catalog codegen rather than hand-editing.\n\nimport { z } from 'zod'\nimport { textStyleSchemaShape } from '../text-style.js'\nimport { timeSchema } from '../time.js'\n\nexport const wordStaggerSchema = z.object({\n ...textStyleSchemaShape,\n text: z\n .string()\n .default('motion that moves you')\n .describe('The phrase; split on whitespace into one reveal per word.'),\n fontSize: z.number().default(64).describe('Font size in px.'),\n width: z.number().default(1080).describe('Container width in px; the line wraps within this.'),\n justify: z\n .enum(['start', 'center', 'end'])\n .default('start')\n .describe('Horizontal alignment of words within each line.'),\n delay: timeSchema.default(0).describe('Frames before the first word starts.'),\n stagger: timeSchema\n .optional()\n .describe('Frames between consecutive words (defaults to STAGGER = 4).'),\n})\n\nexport type WordStaggerSchemaProps = z.infer<typeof wordStaggerSchema>\n","//! Per-component render fidelity on the @onda engine — the capability signal an\n//! AI agent (e.g. ONDA Studio) needs to choose components well, exposed through\n//! the machine-readable contract (apps/site /api/components.json + /llms.txt).\n//!\n//! - `fidelity` — first_class (faithful on native primitives) | degraded\n//! (works, visibly off until ONE engine feature lands) |\n//! apes_remotion (depends on a DOM/CSS capability the vector\n//! engine deliberately doesn't have — re-think, don't chase).\n//! - `engineNative` — true when the effect is what the engine does best\n//! (vector / layout / audio / determinism); false when it\n//! imitates a browser feature (blur/blend/backdrop/grain).\n//! - `needsFeature` — the single engine gap a degraded component waits on.\n//! - `backend` — `both` renders byte-identically on the CPU reference too;\n//! `gpu_only` needs Vello for a capability the CPU reference\n//! lacks: **rotation**, **clipping**, or **video** decode. (The\n//! CPU tiny-skia backend DOES render fills, strokes, gradients,\n//! and Bézier paths — those are no longer GPU-only.)\n//!\n//! Agent policy: prefer `first_class` + `engineNative`; reach for `degraded`\n//! only when the design demands it; never silently pick a `gpu_only` component\n//! for a CPU-verified render.\n\nexport type Fidelity = 'first_class' | 'degraded' | 'apes_remotion'\nexport type Backend = 'both' | 'gpu_only'\n\nexport interface ComponentFidelity {\n fidelity: Fidelity\n engineNative: boolean\n needsFeature: string | null\n backend: Backend\n}\n\nexport const COMPONENT_FIDELITY: Record<string, ComponentFidelity> = {\n AudioClip: { fidelity: 'first_class', engineNative: true, needsFeature: null, backend: 'both' },\n AudioVisualizer: {\n fidelity: 'first_class',\n engineNative: true,\n needsFeature: null,\n backend: 'gpu_only',\n },\n BarChart: { fidelity: 'first_class', engineNative: true, needsFeature: null, backend: 'both' },\n BentoGrid: {\n fidelity: 'first_class',\n engineNative: false,\n needsFeature: null,\n backend: 'both',\n },\n BlurReveal: {\n fidelity: 'first_class',\n engineNative: true,\n needsFeature: null,\n backend: 'both',\n },\n BoundingBox: {\n fidelity: 'first_class',\n engineNative: true,\n needsFeature: null,\n backend: 'both',\n },\n BrowserFrame: {\n fidelity: 'first_class',\n engineNative: true,\n needsFeature: null,\n backend: 'both',\n },\n Button: {\n fidelity: 'first_class',\n engineNative: true,\n needsFeature: null,\n backend: 'both',\n },\n Callout: {\n fidelity: 'first_class',\n engineNative: true,\n needsFeature: null,\n backend: 'both',\n },\n CameraShake: { fidelity: 'first_class', engineNative: true, needsFeature: null, backend: 'both' },\n Captions: {\n fidelity: 'first_class',\n engineNative: true,\n needsFeature: null,\n backend: 'both',\n },\n ChapterCard: {\n fidelity: 'first_class',\n engineNative: true,\n needsFeature: null,\n backend: 'both',\n },\n CodeBlock: {\n fidelity: 'first_class',\n engineNative: false,\n needsFeature: null,\n backend: 'both',\n },\n CodeDiff: { fidelity: 'first_class', engineNative: true, needsFeature: null, backend: 'both' },\n Confetti: { fidelity: 'first_class', engineNative: true, needsFeature: null, backend: 'both' },\n CountUp: { fidelity: 'first_class', engineNative: true, needsFeature: null, backend: 'both' },\n Cursor: {\n fidelity: 'first_class',\n engineNative: true,\n needsFeature: null,\n backend: 'both',\n },\n DeviceFrame: {\n fidelity: 'first_class',\n engineNative: true,\n needsFeature: null,\n backend: 'both',\n },\n DrawOn: { fidelity: 'first_class', engineNative: true, needsFeature: null, backend: 'both' },\n DynamicGrid: {\n fidelity: 'first_class',\n engineNative: true,\n needsFeature: null,\n backend: 'gpu_only',\n },\n EndCard: {\n fidelity: 'first_class',\n engineNative: true,\n needsFeature: null,\n backend: 'both',\n },\n FadeIn: { fidelity: 'first_class', engineNative: true, needsFeature: null, backend: 'both' },\n FadeOut: { fidelity: 'first_class', engineNative: true, needsFeature: null, backend: 'both' },\n FilmGrade: { fidelity: 'first_class', engineNative: true, needsFeature: null, backend: 'both' },\n GradientShift: {\n fidelity: 'first_class',\n engineNative: true,\n needsFeature: null,\n backend: 'gpu_only',\n },\n GrainOverlay: {\n fidelity: 'first_class',\n engineNative: true,\n needsFeature: null,\n backend: 'gpu_only',\n },\n Highlight: { fidelity: 'first_class', engineNative: true, needsFeature: null, backend: 'both' },\n IconPop: {\n fidelity: 'first_class',\n engineNative: true,\n needsFeature: null,\n backend: 'gpu_only',\n },\n ImageReveal: {\n fidelity: 'first_class',\n engineNative: true,\n needsFeature: null,\n backend: 'gpu_only',\n },\n InputField: {\n fidelity: 'first_class',\n engineNative: true,\n needsFeature: null,\n backend: 'both',\n },\n KanbanBoard: { fidelity: 'first_class', engineNative: true, needsFeature: null, backend: 'both' },\n KenBurns: { fidelity: 'first_class', engineNative: true, needsFeature: null, backend: 'both' },\n KineticText: {\n fidelity: 'first_class',\n engineNative: true,\n needsFeature: null,\n backend: 'both',\n },\n LineChart: {\n fidelity: 'first_class',\n engineNative: true,\n needsFeature: null,\n backend: 'gpu_only',\n },\n LogoSting: {\n fidelity: 'first_class',\n engineNative: true,\n needsFeature: null,\n backend: 'gpu_only',\n },\n LowerThird: {\n fidelity: 'first_class',\n engineNative: true,\n needsFeature: null,\n backend: 'both',\n },\n Marquee: { fidelity: 'first_class', engineNative: true, needsFeature: null, backend: 'both' },\n MaskReveal: { fidelity: 'first_class', engineNative: true, needsFeature: null, backend: 'both' },\n MatrixDecode: {\n fidelity: 'first_class',\n engineNative: true,\n needsFeature: null,\n backend: 'both',\n },\n MeshGradient: {\n fidelity: 'first_class',\n engineNative: true,\n needsFeature: null,\n backend: 'both',\n },\n NodeGraph: {\n fidelity: 'first_class',\n engineNative: true,\n needsFeature: null,\n backend: 'gpu_only',\n },\n Parallax: { fidelity: 'first_class', engineNative: true, needsFeature: null, backend: 'both' },\n PieReveal: {\n fidelity: 'first_class',\n engineNative: true,\n needsFeature: null,\n backend: 'gpu_only',\n },\n PricingCard: {\n fidelity: 'first_class',\n engineNative: true,\n needsFeature: null,\n backend: 'both',\n },\n ProgressBar: { fidelity: 'first_class', engineNative: true, needsFeature: null, backend: 'both' },\n ProgressSteps: {\n fidelity: 'first_class',\n engineNative: true,\n needsFeature: null,\n backend: 'both',\n },\n PulsingIndicator: {\n fidelity: 'first_class',\n engineNative: true,\n needsFeature: null,\n backend: 'both',\n },\n QuoteCard: { fidelity: 'first_class', engineNative: true, needsFeature: null, backend: 'both' },\n RgbGlitch: {\n fidelity: 'first_class',\n engineNative: true,\n needsFeature: null,\n backend: 'gpu_only',\n },\n RotateIn: {\n fidelity: 'first_class',\n engineNative: true,\n needsFeature: null,\n backend: 'gpu_only',\n },\n ScaleIn: {\n fidelity: 'first_class',\n engineNative: true,\n needsFeature: null,\n backend: 'both',\n },\n ShimmerSweep: {\n fidelity: 'first_class',\n engineNative: true,\n needsFeature: null,\n backend: 'gpu_only',\n },\n SkeletonCard: {\n fidelity: 'first_class',\n engineNative: false,\n needsFeature: null,\n backend: 'both',\n },\n SlideIn: { fidelity: 'first_class', engineNative: true, needsFeature: null, backend: 'both' },\n SlideOut: { fidelity: 'first_class', engineNative: true, needsFeature: null, backend: 'both' },\n SlotMachineRoll: {\n fidelity: 'first_class',\n engineNative: true,\n needsFeature: null,\n backend: 'both',\n },\n SplitScreen: {\n fidelity: 'first_class',\n engineNative: true,\n needsFeature: null,\n backend: 'both',\n },\n Spotlight: {\n fidelity: 'first_class',\n engineNative: true,\n needsFeature: null,\n backend: 'gpu_only',\n },\n SpotlightCard: {\n fidelity: 'first_class',\n engineNative: false,\n needsFeature: null,\n backend: 'both',\n },\n StaggerGroup: {\n fidelity: 'first_class',\n engineNative: true,\n needsFeature: null,\n backend: 'both',\n },\n StatCard: { fidelity: 'first_class', engineNative: true, needsFeature: null, backend: 'both' },\n Terminal: {\n fidelity: 'first_class',\n engineNative: true,\n needsFeature: null,\n backend: 'both',\n },\n TextFadeReplace: {\n fidelity: 'first_class',\n engineNative: true,\n needsFeature: null,\n backend: 'both',\n },\n Timeline: { fidelity: 'first_class', engineNative: true, needsFeature: null, backend: 'both' },\n TitleCard: { fidelity: 'first_class', engineNative: true, needsFeature: null, backend: 'both' },\n TrackingIn: {\n fidelity: 'first_class',\n engineNative: true,\n needsFeature: null,\n backend: 'both',\n },\n Typewriter: { fidelity: 'first_class', engineNative: true, needsFeature: null, backend: 'both' },\n Underline: { fidelity: 'first_class', engineNative: true, needsFeature: null, backend: 'both' },\n VideoClip: {\n fidelity: 'first_class',\n engineNative: true,\n needsFeature: null,\n backend: 'gpu_only',\n },\n Vignette: { fidelity: 'first_class', engineNative: true, needsFeature: null, backend: 'both' },\n WordRotate: { fidelity: 'first_class', engineNative: true, needsFeature: null, backend: 'both' },\n WordStagger: { fidelity: 'first_class', engineNative: true, needsFeature: null, backend: 'both' },\n}\n\nexport const FIDELITY_SUMMARY = {\n firstClass: 72,\n degraded: 0,\n apesRemotion: 0,\n} as const\n\n/** The safe, recommended palette: every first-class component. An agent can\n * default to these in one read and only escalate to degraded ones on demand. */\nexport const RECOMMENDED_PALETTE: readonly string[] = [\n 'AudioClip',\n 'AudioVisualizer',\n 'BentoGrid',\n 'BarChart',\n 'BlurReveal',\n 'BoundingBox',\n 'Button',\n 'BrowserFrame',\n 'Callout',\n 'ChapterCard',\n 'CameraShake',\n 'Captions',\n 'CodeBlock',\n 'CodeDiff',\n 'Confetti',\n 'CountUp',\n 'Cursor',\n 'DeviceFrame',\n 'DrawOn',\n 'DynamicGrid',\n 'EndCard',\n 'FadeIn',\n 'FadeOut',\n 'FilmGrade',\n 'GradientShift',\n 'GrainOverlay',\n 'Highlight',\n 'ImageReveal',\n 'InputField',\n 'IconPop',\n 'KanbanBoard',\n 'KenBurns',\n 'KineticText',\n 'LogoSting',\n 'LowerThird',\n 'LineChart',\n 'MatrixDecode',\n 'MeshGradient',\n 'Marquee',\n 'MaskReveal',\n 'NodeGraph',\n 'PricingCard',\n 'Parallax',\n 'PieReveal',\n 'ProgressBar',\n 'ProgressSteps',\n 'PulsingIndicator',\n 'QuoteCard',\n 'RgbGlitch',\n 'RotateIn',\n 'SkeletonCard',\n 'ScaleIn',\n 'ShimmerSweep',\n 'SlideIn',\n 'SlotMachineRoll',\n 'SpotlightCard',\n 'SplitScreen',\n 'SlideOut',\n 'Spotlight',\n 'StaggerGroup',\n 'StatCard',\n 'Terminal',\n 'TextFadeReplace',\n 'TrackingIn',\n 'Timeline',\n 'TitleCard',\n 'Typewriter',\n 'Underline',\n 'VideoClip',\n 'Vignette',\n 'WordRotate',\n 'WordStagger',\n]\n\n/** Engine capability statement — what the agent should lean on, and what it must\n * NOT author for. The \"don't chase\" features want a filter/blend/3D pipeline the\n * vector engine deliberately omits; the engine's job is the best deterministic\n * GPU vector renderer, not a headless browser. */\nexport const ENGINE_CAPABILITIES = {\n supported: [\n 'vector fills / strokes (cap/join/dash) / rounded-rect / arbitrary Bézier paths',\n 'linear + radial gradients with stops (CPU + GPU)',\n 'per-glyph vector text (resolution-independent) with letter-spacing / tracking',\n 'author-time text metrics (measureText width; fontMetrics capHeight/xHeight/capTop; glyphLayout kerning-accurate per-char positions)',\n 'taffy flexbox layout (direction/justify/align/gap/padding/wrap)',\n '2D affine transforms (translate / scale / rotate) with transform-origin pivot',\n 'clipping (rect / ellipse / path) in local space',\n 'images + video frames with cover/contain/fill fit',\n 'audio decode + FFT spectrum (symphonia + rustfft) + multi-track mix + mux into export',\n 'AUDIO-DRIVEN MOTION (sync to music) — `useAudioBeats(src)` analyzes a clip into `{ tempo, beats, onsets, onsetEnv }` in FRAME units (deterministic, preview == export). Drive motion with the pure helper `beatPulse(frame, beats, decay)` (a 1→0 punch on each beat): `scaleX={1 + 0.3 * beatPulse(frame, b.beats)}` HITS an element on the beat; `isBeat(frame, beats)` for hard cuts; `onsetEnv[frame]` (0..1) for transient-driven glows. The \"edited TO the music\" layer — cut on the beat, punch on the kick, drop text on a transient. Both backends + live preview',\n 'deterministic CPU==GPU verification; parallel frame export',\n 'blend modes (multiply / screen / overlay / soft-light / …, GPU)',\n 'procedural film grain (onda-noise source + overlay blend, GPU)',\n 'drop-shadow / glow (analytic blurred rounded-rect)',\n 'animated image blur — gaussian focus-pull in the image pass (CPU+GPU+native byte-identical)',\n 'content/text blur — screen-space gaussian over an arbitrary subtree (Group/Text/…) via the render-to-texture pass; the `blur` sugar prop, ramps for soft→sharp reveals (CPU+GPU)',\n 'backdrop blur — frosted-glass blur of what is BEHIND a node (CSS `backdrop-filter`); the `backdropBlur` node prop samples the already-composited backdrop, blurs + tints + brightens it, and draws it as the node’s backing (Vello samples the rendered backdrop, the CPU reference its live framebuffer)',\n \"mattes / masks — reveal one subtree THROUGH another's shape (CSS mask-image / SVG mask): the `matte` node prop (+ matteMode 'alpha'|'luminance') renders content + matte to textures and multiplies alpha — media-through-type, shape wipes, gradient reveals (render-to-texture)\",\n 'precomp / adjustment layers — `<Precomp>` flattens a subtree to ONE layer (render-to-texture) so its opacity/blend apply to the COMPOSITED result, not per-child (fixes fading-a-group double-darkening overlaps; AE precomp / collapse-transformations); an adjustment layer = a `<Group>` with an effect wrapping the layers below it. Both backends',\n 'bloom / glow — bright-pass → large-σ blur → additive composite, the single biggest premium tell; the `bloom` node prop (CPU+GPU)',\n 'cinematic color grade — per-pixel exposure / contrast / saturation / temperature / tint; the `grade` node prop, the \"land mixed/AI media into one look\" wedge (CPU+GPU)',\n 'goo / metaball morph — blur → alpha-threshold so overlapping shapes fuse into liquid forms with smooth necks; the `goo` node prop (GPU)',\n \"light-wrap — the blurred backdrop's light bleeds onto a cut-out node's feathered EDGES (the #1 'shot in, not pasted on' tell for landing a plate); the `lightWrap` node prop (GPU/export)\",\n 'directional / motion blur — a 1D gaussian smear of std-dev σ along an angle (the in-motion streak); the `directionalBlur` node prop (CPU+GPU)',\n 'per-pixel stylize, one shared compute pipeline: `chromaticAberration` (lens RGB split), `vignette` (radial edge darkening), `posterize` (quantize to N levels), `duotone` (luminance → two colors), `chromaKey` (green-screen knock-out with despill) — all CPU+GPU node props',\n 'fBm fractal-noise ANIMATED gradients (GPU compute over 2D simplex + domain-warp); CPU reference + WebGPU preview degrade to a smooth gradient, so judge on the native render',\n 'composition-level cinematic FINISH — a scene-linear HDR chain (bloom + warm halation + grade + vignette + grain) ending in ONE ACES film tone-map; the \"looks shot\" output transform via `<Composition finish={…}>` (GPU/export-only — preview/CPU render un-finished)',\n 'per-object MOTION BLUR — shutter-angle temporal supersampling via `<Composition motionBlur={…}>`: every moving element smears by its OWN motion (translation/rotation/scale), static stays sharp (export-only, N× render cost)',\n 'trim paths — `trimStart`/`trimEnd`/`trimOffset` (0..1) on any stroked shape draw only that arc-length slice of the outline; the mograph line-draw, animate `trimEnd` 0→1 (CPU+GPU)',\n 'repeater — `<Repeater count offsetX offsetY rotation scale startOpacity endOpacity>` stamps a subtree with COMPOUNDING transforms: grids (nest two), radial arrays, spirals, motion trails (all backends)',\n 'boolean ops (merge paths) — `<Merge op=\"union|difference|intersect|xor\">` combines shape children into ONE outline (ring = circle−circle, lens = circle∩circle, speech bubble = rect∪triangle); curves flattened, resolved on both backends (i_overlay)',\n 'particles — `<Particles count seed x y speed angle spread gravity lifetime emitOver loop size opacity colors spin>` is a DETERMINISTIC emitter (bursts / fountains / confetti / sparks / dust / snow): every particle is a pure function of frame+seed+index, frame-based, rendered as plain shapes (position/size/opacity/colour are CPU==GPU; `spin` is rotation → GPU-only)',\n 'Camera — pan / zoom viewport primitive for 2.5D camera moves',\n 'depth of field — 2.5D rack focus: layers carry a `depth`, the comp sets `dof={{ focus, aperture }}`, and each layer defocuses by its distance from the focus plane (animate `focus` for a focus pull); resolves to a per-layer blur, so both backends + live preview',\n '3D SCENE (3D layers + perspective camera) — `<Scene3D camera={{ position, target, fov }}>` places its children in ONE shared 3D world: each is a flat plane positioned by `position3d={[x,y,z]}` (z INTO the screen, AE convention) and tilted by `rotation3d={[x,y,z]}` degrees, viewed through a perspective camera with a real depth buffer (occlude + intersect by true depth). Camera fly-throughs, card walls / cover-flow, parallax, exploded UI. z=0 + no rotation == the 2D placement. GPU = true perspective + out-of-plane rotation; CPU/web preview degrade to a 2.5D depth-sorted projection (scale + position, no tilt) → judge 3D on a NATIVE/export render',\n 'EXTRUDED 3D solids (3D logos & titles) — inside a `<Scene3D>`, a shape or text layer becomes a LIT 3D SOLID via `extrude={depth}`: `<Text extrude={80}>ONDA</Text>` / `<Rect extrude={80}>` / `<Path extrude={80}>` grows front + back faces (lyon-tessellated, holes handled) + side walls, shaded by a directional light so it catches the light as it rotates — the spinning solid logo / kinetic 3D title. GPU only; the CPU reference + live preview draw the flat outline → judge on a NATIVE/export render',\n 'no-Chromium export (ffmpeg / GIF / PNG)',\n ],\n unsupported: [\n {\n feature:\n 'imported 3D MODELS / glTF meshes (3D *layers* AND extruded shapes/text ARE supported via <Scene3D> + extrude)',\n status: 'no-model-import',\n },\n { feature: 'SVG filters / embedded text+image / gradient paint', status: 'flattened-to-solid' },\n { feature: 'color / emoji glyphs / variable fonts', status: 'outline-only' },\n ],\n backendNotes:\n \"CPU reference (tiny-skia) renders fills, strokes (cap/join/dash), linear+radial gradients, and Bézier paths — byte-identical to Vello for those. It does NOT apply rotation or clipping (Vello-only) or decode video. A 'gpu_only' component needs one of those three; prefer 'both' components for a CPU-verified render.\",\n} as const\n","//! The @onda component catalog — the single source of truth the ONDA Studio\n//! agent reads. REPLACES the `ondajs` manifest, and is RICHER than it: each entry\n//! carries the @onda-native Zod prop schema PLUS capability metadata the engine\n//! uniquely knows — per-prop semantic `role` + `themeable`, the render `fidelity`\n//! / `backend` (from `fidelity.ts`), a `sceneRole` / `occlusion` classification,\n//! and an `example` prop set. So the agent generates higher-fidelity comps: it\n//! prefers first-class components, leaves themeable props to the theme, and feeds\n//! each prop a value that matches its meaning (frames, fractions, colors…).\n//!\n//! GENERATED by the catalog codegen (per-component descriptors -> this file +\n//! the `<Name>.schema.ts` siblings). Re-run the codegen after changing a\n//! component's props; don't hand-edit the entries.\n\nimport type { z } from 'zod'\nimport { audioClipSchema } from './components/AudioClip.schema.js'\nimport { audioVisualizerSchema } from './components/AudioVisualizer.schema.js'\nimport { barChartSchema } from './components/BarChart.schema.js'\nimport { bentoGridSchema } from './components/BentoGrid.schema.js'\nimport { blurRevealSchema } from './components/BlurReveal.schema.js'\nimport { boundingBoxSchema } from './components/BoundingBox.schema.js'\nimport { browserFrameSchema } from './components/BrowserFrame.schema.js'\nimport { buttonSchema } from './components/Button.schema.js'\nimport { calloutSchema } from './components/Callout.schema.js'\nimport { cameraShakeSchema } from './components/CameraShake.schema.js'\nimport { captionsSchema } from './components/Captions.schema.js'\nimport { cardShowcaseSchema } from './components/CardShowcase.schema.js'\nimport { chapterCardSchema } from './components/ChapterCard.schema.js'\nimport { codeBlockSchema } from './components/CodeBlock.schema.js'\nimport { codeDiffSchema } from './components/CodeDiff.schema.js'\nimport { confettiSchema } from './components/Confetti.schema.js'\nimport { countUpSchema } from './components/CountUp.schema.js'\nimport { cursorSchema } from './components/Cursor.schema.js'\nimport { deviceFrameSchema } from './components/DeviceFrame.schema.js'\nimport { drawOnSchema } from './components/DrawOn.schema.js'\nimport { dynamicGridSchema } from './components/DynamicGrid.schema.js'\nimport { endCardSchema } from './components/EndCard.schema.js'\nimport { fadeInSchema } from './components/FadeIn.schema.js'\nimport { fadeOutSchema } from './components/FadeOut.schema.js'\nimport { filmGradeSchema } from './components/FilmGrade.schema.js'\nimport { gradientShiftSchema } from './components/GradientShift.schema.js'\nimport { grainOverlaySchema } from './components/GrainOverlay.schema.js'\nimport { highlightSchema } from './components/Highlight.schema.js'\nimport { iconPopSchema } from './components/IconPop.schema.js'\nimport { imageRevealSchema } from './components/ImageReveal.schema.js'\nimport { inputFieldSchema } from './components/InputField.schema.js'\nimport { kanbanBoardSchema } from './components/KanbanBoard.schema.js'\nimport { kenBurnsSchema } from './components/KenBurns.schema.js'\nimport { keyframesSchema } from './components/Keyframes.schema.js'\nimport { kineticTextSchema } from './components/KineticText.schema.js'\nimport { lineChartSchema } from './components/LineChart.schema.js'\nimport { logoRevealSchema } from './components/LogoReveal.schema.js'\nimport { logoStingSchema } from './components/LogoSting.schema.js'\nimport { lookbookShotSchema } from './components/LookbookShot.schema.js'\nimport { lowerThirdSchema } from './components/LowerThird.schema.js'\nimport { marqueeSchema } from './components/Marquee.schema.js'\nimport { maskRevealSchema } from './components/MaskReveal.schema.js'\nimport { matrixDecodeSchema } from './components/MatrixDecode.schema.js'\nimport { meshGradientSchema } from './components/MeshGradient.schema.js'\nimport { moodboardSchema } from './components/Moodboard.schema.js'\nimport { nodeGraphSchema } from './components/NodeGraph.schema.js'\nimport { parallaxSchema } from './components/Parallax.schema.js'\nimport { pathMorphSchema } from './components/PathMorph.schema.js'\nimport { pieRevealSchema } from './components/PieReveal.schema.js'\nimport { priceTagSchema } from './components/PriceTag.schema.js'\nimport { pricingCardSchema } from './components/PricingCard.schema.js'\nimport { productWallSchema } from './components/ProductWall.schema.js'\nimport { progressBarSchema } from './components/ProgressBar.schema.js'\nimport { progressStepsSchema } from './components/ProgressSteps.schema.js'\nimport { pulsingIndicatorSchema } from './components/PulsingIndicator.schema.js'\nimport { quoteCardSchema } from './components/QuoteCard.schema.js'\nimport { rgbGlitchSchema } from './components/RgbGlitch.schema.js'\nimport { rotateInSchema } from './components/RotateIn.schema.js'\nimport { scaleInSchema } from './components/ScaleIn.schema.js'\nimport { scrimSchema } from './components/Scrim.schema.js'\nimport { shimmerSweepSchema } from './components/ShimmerSweep.schema.js'\nimport { siteRevealSchema } from './components/SiteReveal.schema.js'\nimport { skeletonCardSchema } from './components/SkeletonCard.schema.js'\nimport { slideInSchema } from './components/SlideIn.schema.js'\nimport { slideOutSchema } from './components/SlideOut.schema.js'\nimport { slotMachineRollSchema } from './components/SlotMachineRoll.schema.js'\nimport { splitLockupSchema } from './components/SplitLockup.schema.js'\nimport { splitScreenSchema } from './components/SplitScreen.schema.js'\nimport { spotlightSchema } from './components/Spotlight.schema.js'\nimport { spotlightCardSchema } from './components/SpotlightCard.schema.js'\nimport { staggerGroupSchema } from './components/StaggerGroup.schema.js'\nimport { statCardSchema } from './components/StatCard.schema.js'\nimport { terminalSchema } from './components/Terminal.schema.js'\nimport { textFadeReplaceSchema } from './components/TextFadeReplace.schema.js'\nimport { timelineSchema } from './components/Timeline.schema.js'\nimport { titleCardSchema } from './components/TitleCard.schema.js'\nimport { trackingInSchema } from './components/TrackingIn.schema.js'\nimport { typewriterSchema } from './components/Typewriter.schema.js'\nimport { underlineSchema } from './components/Underline.schema.js'\nimport { videoClipSchema } from './components/VideoClip.schema.js'\nimport { vignetteSchema } from './components/Vignette.schema.js'\nimport { wordRotateSchema } from './components/WordRotate.schema.js'\nimport { wordStaggerSchema } from './components/WordStagger.schema.js'\nimport { type Backend, COMPONENT_FIDELITY, type Fidelity } from './fidelity.js'\n\n/** Per-prop semantic metadata layered on top of the Zod schema. */\nexport interface PropMeta {\n /** Prop name. */\n name: string\n /** Underlying value kind — string | number | int | boolean | enum | stringArray … */\n type: string\n /** Semantic role — text | color | fontSize | durationFrames | fraction | url … */\n role: string\n /** Allowed values, when the prop is an enum. */\n enumValues?: string[]\n /** The default value (schema-derived, JSON-encoded), when the prop has one.\n * Always sourced from the Zod schema so it can't drift from what renders. */\n default?: string\n /** Minimum (inclusive) for a number prop, from the Zod schema. */\n min?: number\n /** Maximum (inclusive) for a number prop, from the Zod schema. */\n max?: number\n /** Display-unit hint for a number prop — 'px' | 'frames' | 'deg'. */\n unit?: string\n /** Defaults to a theme color/font token; the agent should usually OMIT it. */\n themeable: boolean\n /** Must be provided (no default, not optional). */\n required: boolean\n /** One-line description. */\n description: string\n}\n\n/** One catalog entry: identity + curation + capability + the @onda prop schema. */\nexport interface ManifestEntry {\n /** kebab-case slug — the scene-graph `component` value. */\n slug: string\n /** PascalCase component name — the `@onda-engine/components` export. */\n name: string\n /** Grouping for the catalog/agent (Text, Data, Media, …). */\n category: string\n /** Short human title. */\n title: string\n /** One-line description for the agent catalog. */\n description: string\n /** When the agent should reach for this. */\n pickWhen: string\n /** Components it commonly composes/pairs with. */\n composes: string[]\n /** How it sits in a scene (background | block | overlay | annotation | …). */\n sceneRole: string\n /** full_frame (fills the canvas) | non_occluding (decorates) | centered. */\n occlusion: string\n /** Render fidelity — the agent prefers `first_class`. From `fidelity.ts`. */\n fidelity: Fidelity\n /** `both` (CPU==GPU) | `gpu_only`. From `fidelity.ts`. */\n backend: Backend\n /** True when the look is engine-native (not a CSS-effect approximation). */\n engineNative: boolean\n /** A good example prop set (few-shot for the agent). */\n example: Record<string, unknown>\n /** Per-prop semantic metadata (alongside the Zod schema). */\n props: PropMeta[]\n /** The @onda-native Zod schema for this component's props. */\n schema: z.ZodTypeAny\n}\n\ntype RawEntry = Omit<ManifestEntry, 'fidelity' | 'backend' | 'engineNative'>\n\nconst RAW: RawEntry[] = [\n {\n slug: 'audio-clip',\n name: 'AudioClip',\n category: 'Media',\n title: 'Audio Clip',\n description:\n 'Schedules an audio file in a composition \\u2014 trims by startAt, sets volume or dB gain, and emits a non-visual Audio node the player plays during preview and export muxes.',\n pickWhen:\n 'Add music, voiceover, or sound effects to a composition; trim/level a source track. Renders nothing visually.',\n composes: [],\n sceneRole: 'media',\n occlusion: 'non_occluding',\n example: { src: 'https://www.w3schools.com/html/horse.mp3', startAt: '0:04', volume: 0.8 },\n props: [\n {\n name: 'src',\n type: 'string',\n role: 'url',\n themeable: false,\n required: false,\n default: \"'https://www.w3schools.com/html/horse.mp3'\",\n description: 'URL or path to the audio file. AAC-in-MP4 or WAV preferred.',\n },\n {\n name: 'startAt',\n type: 'unknown',\n role: 'other',\n themeable: false,\n required: false,\n default: '0',\n description:\n 'Where to start in the source audio. Time spec \\u2014 \"0:04\", \"30s\", \"500ms\", \"90f\", or a raw number of seconds.',\n },\n {\n name: 'endAt',\n type: 'unknown',\n role: 'other',\n themeable: false,\n required: false,\n description:\n \"Where to stop in the source (same time spec as startAt). When omitted, plays to the source's end; required for loop.\",\n },\n {\n name: 'volume',\n type: 'number',\n role: 'fraction',\n themeable: false,\n required: false,\n default: '1',\n description: 'Amplitude volume 0..1.',\n },\n {\n name: 'gainDb',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n description:\n 'Advanced gain in dB. When set, wins over volume. Converted via 10 ** (dB / 20): 0 = unity, -6 \\u2248 0.5, -20 \\u2248 0.1.',\n },\n {\n name: 'fade',\n type: 'boolean',\n role: 'boolean',\n themeable: false,\n required: false,\n description:\n 'Apply an entry/exit volume envelope (default true). Accepted for API parity; not yet applied in preview.',\n },\n {\n name: 'fadeDuration',\n type: 'int',\n role: 'durationFrames',\n themeable: false,\n required: false,\n description:\n \"Frames the fade-in / fade-out takes. Default 2 (~67ms @ 30fps). Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'loop',\n type: 'boolean',\n role: 'boolean',\n themeable: false,\n required: false,\n description: 'Loop the trimmed clip. Requires endAt. Not yet applied in preview.',\n },\n {\n name: 'muted',\n type: 'boolean',\n role: 'boolean',\n themeable: false,\n required: false,\n default: 'false',\n description: 'Mute the clip.',\n },\n {\n name: 'playbackRate',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n description: 'Playback speed. Not yet applied in preview.',\n },\n {\n name: 'acceptableTimeShiftSeconds',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n description: 'Acceptable time-shift threshold before resync (seconds).',\n },\n ],\n schema: audioClipSchema,\n },\n {\n slug: 'audio-visualizer',\n name: 'AudioVisualizer',\n category: 'Data',\n title: 'Audio Visualizer',\n description:\n 'An audio-spectrum visualizer with five render styles (bars, mirrored, waveform, radial, dots) driven by real FFT data from an audio file or a deterministic procedural fallback.',\n pickWhen:\n 'Use for music/podcast/audiogram scenes that need an animated frequency spectrum reacting to (or evoking) sound. Pass `src` for real audio-reactivity; omit it for a self-animating decorative spectrum.',\n composes: [],\n sceneRole: 'data-viz',\n occlusion: 'centered',\n example: {\n type: 'bars',\n src: 'https://www.w3schools.com/html/horse.mp3',\n barCount: 48,\n width: 720,\n height: 200,\n align: 'middle',\n gap: 4,\n },\n props: [\n {\n name: 'type',\n type: 'enum',\n role: 'enum',\n themeable: false,\n required: false,\n enumValues: ['bars', 'mirrored', 'waveform', 'radial', 'dots'],\n default: \"'bars'\",\n description:\n 'Render style: classic bars, mirrored EQ, smooth waveform ribbon, radial spectrum, or LED dot-matrix meter.',\n },\n {\n name: 'src',\n type: 'string',\n role: 'url',\n themeable: false,\n required: false,\n description:\n 'Audio file URL to drive the bars with real FFT frequency data; omit for the built-in procedural animation.',\n },\n {\n name: 'barCount',\n type: 'int',\n role: 'count',\n themeable: false,\n required: false,\n default: '48',\n description: 'Number of frequency bands.',\n },\n {\n name: 'color',\n type: 'unknown',\n role: 'color',\n themeable: true,\n required: false,\n description:\n 'Bar color: a single hex string for one tone, or a [top, bottom] array for a vertical gradient ramp (defaults to theme accent + palette[1]).',\n },\n {\n name: 'width',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '640',\n description: 'Overall width of the visualizer, in px.',\n },\n {\n name: 'height',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '160',\n description: 'Overall height of the visualizer (the tallest a band can reach), in px.',\n },\n {\n name: 'align',\n type: 'enum',\n role: 'enum',\n themeable: false,\n required: false,\n enumValues: ['top', 'middle', 'bottom'],\n default: \"'middle'\",\n description: 'Vertical placement of the bars within height (bars style only).',\n },\n {\n name: 'gap',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '4',\n description: 'Pixel gap between adjacent bars.',\n },\n {\n name: 'barRadius',\n type: 'number',\n role: 'number',\n themeable: true,\n required: false,\n description:\n 'Bar corner radius in px (also the minimum bar height so idle bars read); defaults to theme radius.',\n },\n {\n name: 'speed',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '1',\n description: \"Animation speed multiplier for the procedural spectrum's drift.\",\n },\n {\n name: 'seed',\n type: 'unknown',\n role: 'other',\n themeable: false,\n required: false,\n default: '1',\n description: 'Deterministic seed (number or string) for the procedural spectrum.',\n },\n {\n name: 'delay',\n type: 'int',\n role: 'delayFrames',\n themeable: false,\n required: false,\n default: '0',\n description:\n \"Frames before the visualizer fades/grows in. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'durationInFrames',\n type: 'int',\n role: 'durationFrames',\n themeable: false,\n required: false,\n default: 'DURATION.slow',\n description:\n \"Frames for the entrance grow-in. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'variant',\n type: 'int',\n role: 'integer',\n themeable: false,\n required: false,\n description:\n \"Integer 'take' selector: derives a new deterministic seed from (seed, variant), so alternates never require hand-edited seeds. 0/omitted = the default take.\",\n },\n ],\n schema: audioVisualizerSchema,\n },\n {\n slug: 'bar-chart',\n name: 'BarChart',\n category: 'Data',\n title: 'Bar Chart',\n description:\n 'Horizontal bars that grow from zero on a spring, staggered top-to-bottom; the largest bar earns the accent color while the rest sit dim.',\n pickWhen:\n 'Comparing a handful of labeled numeric values where one should stand out \\u2014 rankings, benchmarks, \"us vs them\" stats \\u2014 with optional count-up values and a headline.',\n composes: [],\n sceneRole: 'data-viz',\n occlusion: 'centered',\n example: {\n title: 'Frames per second',\n data: [\n { label: 'Onda', value: 120 },\n { label: 'Remotion', value: 38 },\n { label: 'After Effects', value: 24 },\n ],\n max: 120,\n showValues: true,\n countUp: true,\n barHeight: 40,\n gap: 20,\n },\n props: [\n {\n name: 'data',\n type: 'object',\n role: 'array',\n themeable: false,\n required: false,\n default:\n \"[{ label: 'Remotion', value: 92 }, { label: 'After Effects', value: 64 }, { label: 'Lottie', value: 38 }]\",\n description:\n 'Bars to render as { label, value } objects. Order is preserved \\u2014 top to bottom.',\n },\n {\n name: 'max',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '100',\n description: 'Value mapped to a full-width bar. Bars cap at 100% of the track.',\n },\n {\n name: 'delay',\n type: 'int',\n role: 'delayFrames',\n themeable: false,\n required: false,\n default: '0',\n description:\n \"Frames before the first bar starts. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'duration',\n type: 'int',\n role: 'durationFrames',\n themeable: false,\n required: false,\n default: 'DURATION.slow',\n description:\n \"Per-bar grow duration in frames. Bars want more time than text (default slow). Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'stagger',\n type: 'int',\n role: 'delayFrames',\n themeable: false,\n required: false,\n default: 'STAGGER',\n description:\n \"Frames between consecutive bars (canonical STAGGER = 4). Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'barHeight',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '32',\n description: 'Bar (and track) height in px.',\n },\n {\n name: 'gap',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '16',\n description: 'Pixel gap between rows.',\n },\n {\n name: 'labelWidth',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '220',\n description: 'Pixels reserved for the label column (left of the track).',\n },\n {\n name: 'labelGap',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '24',\n description: 'Gap between the label column and the track, in px.',\n },\n {\n name: 'trackWidth',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '760',\n description: 'Track length in px \\u2014 the full-width target for a bar at max.',\n },\n {\n name: 'accentColor',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Color of the largest bar \\u2014 the earned accent. Defaults to theme.accent.',\n },\n {\n name: 'barColor',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description:\n 'Color of non-largest bars. Defaults to theme.palette[0] (or theme.textMuted).',\n },\n {\n name: 'trackColor',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Bar track (background) color. Defaults to theme.surface.',\n },\n {\n name: 'color',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Label and value text color. Defaults to theme.text.',\n },\n {\n name: 'showValues',\n type: 'boolean',\n role: 'boolean',\n themeable: false,\n required: false,\n default: 'false',\n description: 'Show the numeric value at the end of each bar.',\n },\n {\n name: 'countUp',\n type: 'boolean',\n role: 'boolean',\n themeable: false,\n required: false,\n default: 'true',\n description:\n \"Count each value up from 0 in sync with its bar's growth. Only applies when showValues is on.\",\n },\n {\n name: 'title',\n type: 'string',\n role: 'text',\n themeable: false,\n required: false,\n description:\n 'Optional headline above the chart \\u2014 tells viewers what the numbers measure.',\n },\n {\n name: 'titleSize',\n type: 'number',\n role: 'fontSize',\n themeable: false,\n required: false,\n description: 'Title font size in px. Defaults to ~1.5x the label fontSize.',\n },\n {\n name: 'titleColor',\n type: 'string',\n role: 'color',\n themeable: false,\n required: false,\n description: 'Title color. Defaults to color.',\n },\n {\n name: 'fontSize',\n type: 'number',\n role: 'fontSize',\n themeable: false,\n required: false,\n default: '24',\n description: 'Label / value font size in px.',\n },\n {\n name: 'fontFamily',\n type: 'string',\n role: 'fontFamily',\n themeable: true,\n required: false,\n description: 'Loaded font family for labels and values. Defaults to theme.fontFamily.',\n },\n ],\n schema: barChartSchema,\n },\n {\n slug: 'bento-grid',\n name: 'BentoGrid',\n category: 'Layout',\n title: 'Bento Grid',\n description:\n 'A data-driven bento layout: a grid of glass cards with varying column/row spans, each rising and fading in on a staggered spring so the grid assembles as one calm left-to-right cascade.',\n pickWhen:\n 'Use to showcase a set of features, stats, or capabilities as a modern bento dashboard \\u2014 heterogeneous card sizes (spans) with one earned accent cell, assembling on a staggered entrance.',\n composes: [],\n sceneRole: 'block',\n occlusion: 'centered',\n example: {\n items: [\n {\n title: 'Motion identity',\n caption: 'One consistent feel across every component.',\n colSpan: 2,\n rowSpan: 1,\n },\n {\n title: 'Render',\n value: '4K',\n caption: 'Deterministic, frame-perfect.',\n colSpan: 1,\n rowSpan: 1,\n accent: true,\n },\n {\n title: 'Components',\n value: '40+',\n caption: 'Copied into your project.',\n colSpan: 1,\n rowSpan: 1,\n },\n {\n title: 'Spring physics',\n caption: 'No overshoot. Calm by default.',\n colSpan: 2,\n rowSpan: 1,\n },\n ],\n columns: 3,\n gap: 20,\n width: 960,\n fontSize: 30,\n stagger: 4,\n },\n props: [\n {\n name: 'items',\n type: 'object',\n role: 'array',\n themeable: false,\n required: false,\n default: 'DEFAULT_ITEMS',\n description:\n 'The cells, laid out left-to-right, top-to-bottom; each has title, optional value/caption, colSpan, rowSpan, and accent. Spans drive the rhythm.',\n },\n {\n name: 'columns',\n type: 'int',\n role: 'count',\n themeable: false,\n required: false,\n default: '3',\n description: 'Number of grid columns.',\n },\n {\n name: 'gap',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '20',\n description: 'Gap between cells in px.',\n },\n {\n name: 'width',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '960',\n description: 'Overall grid width in px.',\n },\n {\n name: 'rowHeight',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n description: 'Row-track height in px. Defaults to the column-track width (square cells).',\n },\n {\n name: 'padding',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '28',\n description: 'Inner padding of each cell in px.',\n },\n {\n name: 'delay',\n type: 'int',\n role: 'delayFrames',\n themeable: false,\n required: false,\n default: '0',\n description:\n \"Frames before the first cell enters. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'stagger',\n type: 'int',\n role: 'delayFrames',\n themeable: false,\n required: false,\n default: 'STAGGER',\n description:\n \"Frames between successive cells rising in. House stagger is 4. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'fontSize',\n type: 'number',\n role: 'fontSize',\n themeable: false,\n required: false,\n default: '30',\n description: 'Base title font size in px (value and caption sizes derive from it).',\n },\n {\n name: 'color',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Title color (defaults to theme text).',\n },\n {\n name: 'captionColor',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Caption color (defaults to theme textMuted).',\n },\n {\n name: 'accentColor',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Accent color for the earned accent cell (defaults to theme accent).',\n },\n {\n name: 'cardColor',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description:\n 'Card fill \\u2014 translucent dark, approximating glass (defaults to theme surface).',\n },\n {\n name: 'borderColor',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Card border color (defaults to theme border).',\n },\n {\n name: 'fontFamily',\n type: 'string',\n role: 'fontFamily',\n themeable: true,\n required: false,\n description:\n 'Display font family for titles and values (defaults to theme headingFamily ?? fontFamily).',\n },\n {\n name: 'captionFontFamily',\n type: 'string',\n role: 'fontFamily',\n themeable: true,\n required: false,\n description: 'Body font family for captions (defaults to theme fontFamily).',\n },\n ],\n schema: bentoGridSchema,\n },\n {\n slug: 'product-wall',\n name: 'ProductWall',\n category: 'Media',\n title: 'Product Wall',\n description:\n 'A bento grid of product photos under a slow camera move — the \"behold the whole collection\" beat. Tiles (mixed sizes via colSpan/rowSpan) stagger in, then a gentle push + diagonal drift dollies across the wall.',\n pickWhen:\n 'Use to showcase a whole set of images at once (a product collection, a portfolio, a moodboard) with cinematic life — one camera-moved grid instead of separate per-item shots. Photos crop to fill their tiles.',\n composes: [],\n sceneRole: 'background',\n occlusion: 'full_frame',\n example: {\n images: [\n 'https://picsum.photos/seed/a/600/600',\n 'https://picsum.photos/seed/b/600/600',\n 'https://picsum.photos/seed/c/600/600',\n 'https://picsum.photos/seed/d/600/600',\n ],\n spans: [\n [2, 2],\n [1, 1],\n [1, 1],\n [2, 1],\n ],\n columns: 4,\n },\n props: [\n {\n name: 'images',\n type: 'string[]',\n role: 'other',\n themeable: false,\n required: false,\n default: '[]',\n description: 'Product photo sources (resolved at render time by `onda render`).',\n },\n {\n name: 'spans',\n type: 'array',\n role: 'other',\n themeable: false,\n required: false,\n description:\n 'Per-image [colSpan, rowSpan] for the bento rhythm; cycled if shorter than images. Omit for a uniform grid.',\n },\n {\n name: 'columns',\n type: 'int',\n role: 'other',\n themeable: false,\n required: false,\n default: '4',\n description: 'Grid columns.',\n },\n {\n name: 'gap',\n type: 'number',\n role: 'other',\n themeable: false,\n required: false,\n default: '16',\n description: 'Gap between tiles in px.',\n },\n {\n name: 'width',\n type: 'number',\n role: 'other',\n themeable: false,\n required: false,\n default: '1680',\n description: 'Overall grid width in px.',\n },\n {\n name: 'delay',\n type: 'int',\n role: 'delayFrames',\n themeable: false,\n required: false,\n default: '0',\n description: 'Frames before the first tile enters.',\n },\n {\n name: 'stagger',\n type: 'int',\n role: 'other',\n themeable: false,\n required: false,\n default: '4',\n description: 'Frames between successive tiles rising in.',\n },\n {\n name: 'cameraFrom',\n type: 'number',\n role: 'other',\n themeable: false,\n required: false,\n default: '1.06',\n description: 'Camera scale at the start of the move.',\n },\n {\n name: 'cameraTo',\n type: 'number',\n role: 'other',\n themeable: false,\n required: false,\n default: '1.18',\n description: 'Camera scale at the end (keep the delta gentle).',\n },\n {\n name: 'cameraDriftX',\n type: 'number',\n role: 'other',\n themeable: false,\n required: false,\n default: '-44',\n description: 'Horizontal camera drift in px across the move.',\n },\n {\n name: 'cameraDriftY',\n type: 'number',\n role: 'other',\n themeable: false,\n required: false,\n default: '26',\n description: 'Vertical camera drift in px across the move.',\n },\n {\n name: 'cameraDurationInFrames',\n type: 'int',\n role: 'other',\n themeable: false,\n required: false,\n default: '150',\n description: 'Frames over which the camera completes its push + drift.',\n },\n ],\n schema: productWallSchema,\n },\n {\n slug: 'logo-reveal',\n name: 'LogoReveal',\n category: 'Media',\n title: 'Logo Reveal',\n description:\n \"A premium reveal for a RASTER (PNG/JPG) logo, centered on the canvas and animated in on the house spring. The companion to DrawOn / LogoSting (which need SVG paths) — this works with a client's bitmap logo, the common case. Default 'focus' preset is a soft→sharp focus-pull (the engine's first-class image blur), plus 'rise' and 'scale'.\",\n pickWhen:\n \"Use to reveal a client's logo when you only have a PNG/JPG (not an SVG path) — e.g. an intro stinger, an outro lockup, or a brand bumper. Prefer this over DrawOn/LogoSting for bitmap logos. Pass `fit`-safe `width`/`height` for the logo box; it is never cropped.\",\n composes: [],\n sceneRole: 'block',\n occlusion: 'centered',\n example: {\n src: 'https://picsum.photos/seed/onda-logo/520/260',\n width: 520,\n height: 260,\n preset: 'focus',\n },\n props: [\n {\n name: 'src',\n type: 'string',\n role: 'other',\n themeable: false,\n required: false,\n default: \"''\",\n description: 'Logo image source (resolved at render time by `onda render`).',\n },\n {\n name: 'width',\n type: 'number',\n role: 'size',\n themeable: false,\n required: false,\n default: '520',\n description: 'Logo box width in px (the image is fit=\"contain\" inside it — never cropped).',\n },\n {\n name: 'height',\n type: 'number',\n role: 'size',\n themeable: false,\n required: false,\n default: '260',\n description: 'Logo box height in px.',\n },\n {\n name: 'delay',\n type: 'int',\n role: 'delayFrames',\n themeable: false,\n required: false,\n default: '0',\n description: 'Frames before the reveal starts.',\n },\n {\n name: 'durationInFrames',\n type: 'int',\n role: 'durationFrames',\n themeable: false,\n required: false,\n default: '28',\n description: 'Frames over which the reveal completes (the house-spring duration).',\n },\n {\n name: 'preset',\n type: \"'focus' | 'rise' | 'scale'\",\n role: 'enum',\n themeable: false,\n required: false,\n enumValues: ['focus', 'rise', 'scale'],\n default: \"'focus'\",\n description: 'Reveal style — focus (blur pull, default), rise, or scale.',\n },\n {\n name: 'fromBlur',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '14',\n description: 'Starting blur sigma (px) for the focus pull.',\n },\n ],\n schema: logoRevealSchema,\n },\n {\n slug: 'lookbook-shot',\n name: 'LookbookShot',\n category: 'Media',\n title: 'Lookbook Shot',\n description:\n 'A single product presented like a printed lookbook page: the piece sits in a soft-shadowed mat (a framed print) inside the brand space, with the name in the display face and real negative space beside it. Editorial, not a full-bleed photo with a corner caption.',\n pickWhen:\n 'Use to feature ONE product/photo with premium, magazine-grade art direction (a craft/jewelry/fashion piece). Far more refined than a full-bleed image + LowerThird caption. Alternate spread-left/spread-right across successive shots for lookbook rhythm; centered for a gallery print.',\n composes: [],\n sceneRole: 'background',\n occlusion: 'full_frame',\n example: {\n src: 'https://picsum.photos/seed/onda/900/1200',\n name: 'Pink Sunfire Hoops',\n eyebrow: 'BEADED HOOP EARRINGS',\n detail: 'Glass beads · Handwoven',\n layout: 'spread-right',\n },\n props: [\n {\n name: 'src',\n type: 'string',\n role: 'other',\n themeable: false,\n required: false,\n default: \"''\",\n description: 'Product photo source (resolved at render time by `onda render`).',\n },\n {\n name: 'name',\n type: 'string',\n role: 'text',\n themeable: false,\n required: false,\n default: \"'Product'\",\n description: 'Product name — the headline, set in the display face.',\n },\n {\n name: 'eyebrow',\n type: 'string',\n role: 'text',\n themeable: false,\n required: false,\n default: \"''\",\n description: 'Small letterspaced eyebrow above the name (category), in the body face.',\n },\n {\n name: 'detail',\n type: 'string',\n role: 'text',\n themeable: false,\n required: false,\n default: \"''\",\n description: 'Quiet supporting line under the name (material / method), in the body face.',\n },\n {\n name: 'layout',\n type: \"'spread-right' | 'spread-left' | 'centered'\",\n role: 'other',\n themeable: false,\n required: false,\n default: \"'spread-right'\",\n description: 'Page composition. Alternate spread sides across shots for lookbook rhythm.',\n },\n {\n name: 'delay',\n type: 'int',\n role: 'delayFrames',\n themeable: false,\n required: false,\n default: '0',\n description: 'Frames before the card enters.',\n },\n {\n name: 'nameFontSize',\n type: 'number',\n role: 'fontSize',\n themeable: false,\n required: false,\n description: 'Name font size in px (default 86 for spreads, 58 for centered).',\n },\n {\n name: 'matColor',\n type: 'string',\n role: 'color',\n themeable: false,\n required: false,\n description: 'The mat/frame color (the print border). Default a near-white off the bg.',\n },\n {\n name: 'color',\n type: 'string',\n role: 'color',\n themeable: false,\n required: false,\n description: 'Name color (defaults to theme text).',\n },\n {\n name: 'accentColor',\n type: 'string',\n role: 'color',\n themeable: false,\n required: false,\n description: 'Eyebrow + rule color (defaults to theme accent).',\n },\n {\n name: 'detailColor',\n type: 'string',\n role: 'color',\n themeable: false,\n required: false,\n description: 'Detail line color (defaults to theme textMuted).',\n },\n {\n name: 'fontFamily',\n type: 'string',\n role: 'fontFamily',\n themeable: true,\n required: false,\n description: 'Display font for the name (defaults to theme headingFamily ?? fontFamily).',\n },\n {\n name: 'bodyFamily',\n type: 'string',\n role: 'fontFamily',\n themeable: true,\n required: false,\n description: 'Body font for eyebrow + detail (defaults to theme fontFamily).',\n },\n ],\n schema: lookbookShotSchema,\n },\n {\n slug: 'site-reveal',\n name: 'SiteReveal',\n category: 'Media',\n title: 'Site Reveal',\n description:\n 'The \"it\\'s live\" payoff for a launch film: a soft-shadowed browser card that scale-fades in and slowly auto-scrolls a full-page screenshot of the homepage, so the whole site reads as real and live.',\n pickWhen:\n 'Use to reveal a website in a launch/announcement film — the browser scrolls the homepage. Pair with a headline beat (\"Now live.\") placed as an EARLIER scene sibling. Needs a tall full-page screenshot + its pageAspect (height/width).',\n composes: [],\n sceneRole: 'background',\n occlusion: 'full_frame',\n example: {\n src: 'https://image.thum.io/get/width/1400/fullpage/https://example.com/',\n url: 'example.com',\n pageAspect: 4.48,\n scrollEnd: 0.62,\n },\n props: [\n {\n name: 'src',\n type: 'string',\n role: 'other',\n themeable: false,\n required: false,\n default: \"''\",\n description: 'Full-page screenshot (tall) — the homepage to scroll.',\n },\n {\n name: 'url',\n type: 'string',\n role: 'text',\n themeable: false,\n required: false,\n default: \"''\",\n description: 'Address-bar text.',\n },\n {\n name: 'pageAspect',\n type: 'number',\n role: 'other',\n themeable: false,\n required: false,\n default: '4.48',\n description: 'Page height / width of src (drives the scroll extent).',\n },\n {\n name: 'width',\n type: 'number',\n role: 'other',\n themeable: false,\n required: false,\n default: '1360',\n description: 'Card content width in px.',\n },\n {\n name: 'height',\n type: 'number',\n role: 'other',\n themeable: false,\n required: false,\n default: '770',\n description: 'Viewport height in px below the chrome bar.',\n },\n {\n name: 'offsetY',\n type: 'number',\n role: 'other',\n themeable: false,\n required: false,\n default: '56',\n description: 'Vertical nudge of the card from center (leave room for a headline above).',\n },\n {\n name: 'delay',\n type: 'int',\n role: 'delayFrames',\n themeable: false,\n required: false,\n default: '0',\n description: 'Frames before the card enters.',\n },\n {\n name: 'scrollStart',\n type: 'number',\n role: 'other',\n themeable: false,\n required: false,\n default: '0',\n description: 'Page fraction (0..1) shown at the start of the scroll.',\n },\n {\n name: 'scrollEnd',\n type: 'number',\n role: 'other',\n themeable: false,\n required: false,\n default: '0.62',\n description: 'Page fraction (0..1) reached at the end.',\n },\n {\n name: 'scrollDurationInFrames',\n type: 'int',\n role: 'other',\n themeable: false,\n required: false,\n default: '150',\n description: 'Frames over which the scroll completes.',\n },\n ],\n schema: siteRevealSchema,\n },\n {\n slug: 'blur-reveal',\n name: 'BlurReveal',\n category: 'Text',\n title: 'Blur Reveal',\n description:\n 'Reveals a headline with opacity, a small rise, and a real soft→sharp blur (focus-pull) on the house spring.',\n pickWhen:\n \"Use to introduce a single headline or word with a soft, restrained focus-in entrance (real blur ramp); the engine's reference reveal for title cards and kickers.\",\n composes: [],\n sceneRole: 'block',\n occlusion: 'centered',\n example: {\n text: 'Ship faster',\n fontSize: 120,\n fontWeight: 600,\n placement: 'center',\n delay: 6,\n durationInFrames: 22,\n },\n props: [\n {\n name: 'text',\n type: 'string',\n role: 'text',\n themeable: false,\n required: false,\n default: \"'Onda'\",\n description: 'What to reveal. Rendered as a single-line Text node.',\n },\n {\n name: 'delay',\n type: 'int',\n role: 'delayFrames',\n themeable: false,\n required: false,\n default: '0',\n description:\n \"Frames before the reveal starts. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'durationInFrames',\n type: 'int',\n role: 'durationFrames',\n themeable: false,\n required: false,\n default: 'DURATION.base',\n description:\n \"Frames until the reveal fully settles (DURATION.base = 18). Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'color',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Text color (hex #rrggbb / #rrggbbaa); defaults to theme text.',\n },\n {\n name: 'fontSize',\n type: 'number',\n role: 'fontSize',\n themeable: false,\n required: false,\n default: '96',\n description: 'Text size in px.',\n },\n {\n name: 'fontFamily',\n type: 'string',\n role: 'fontFamily',\n themeable: true,\n required: false,\n description: 'Loaded font family; defaults to theme fontFamily.',\n },\n {\n name: 'fontWeight',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '600',\n description: 'Font weight (display default 600).',\n },\n {\n name: 'placement',\n type: 'unknown',\n role: 'placement',\n themeable: false,\n required: false,\n default: \"'center'\",\n description:\n \"Where the reveal sits - the shared placement contract (region keyword or normalized {x,y}, element-center anchored). Legacy 'top'/'bottom' keep their historical edge-flush meaning.\",\n },\n {\n name: 'travelPx',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '16',\n description: 'Rise distance in px (small on purpose).',\n },\n {\n name: 'fromBlur',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '10',\n description:\n 'Starting blur in px (gaussian sigma) for the soft→sharp focus-pull; ramps to 0 as the reveal settles.',\n },\n {\n name: 'fit',\n type: 'enum',\n role: 'enum',\n themeable: false,\n required: false,\n enumValues: ['none', 'frame'],\n description:\n \"Opt-in auto-fit: 'frame' scales the font size DOWN (never up) so the line cannot exceed the frame minus the safe margins. Default 'none'.\",\n },\n {\n name: 'maxWidth',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n description:\n 'Explicit width cap in px for the line; combines with fit (the smaller cap wins).',\n },\n ],\n schema: blurRevealSchema,\n },\n {\n slug: 'bounding-box',\n name: 'BoundingBox',\n category: 'UI',\n title: 'Bounding Box',\n description:\n 'A stroked rectangle outline that draws on around a region of the frame, with an optional accent label tag pinned to its top-left corner.',\n pickWhen:\n 'Annotating a region of the frame in a docs, tutorial, or product demo \\u2014 drawing a selection-marquee outline around a UI element or area and labeling it.',\n composes: [],\n sceneRole: 'annotation',\n occlusion: 'non_occluding',\n example: {\n x: 0.25,\n y: 0.3,\n width: 0.5,\n height: 0.35,\n label: 'Hero CTA',\n drawDuration: 24,\n strokeWidth: 3,\n },\n props: [\n {\n name: 'x',\n type: 'number',\n role: 'fraction',\n themeable: false,\n required: false,\n default: '0.3',\n description: 'Box left edge as a 0..1 fraction of the composition width.',\n },\n {\n name: 'y',\n type: 'number',\n role: 'fraction',\n themeable: false,\n required: false,\n default: '0.3',\n description: 'Box top edge as a 0..1 fraction of the composition height.',\n },\n {\n name: 'width',\n type: 'number',\n role: 'fraction',\n themeable: false,\n required: false,\n default: '0.4',\n description: 'Box width as a 0..1 fraction of the composition width.',\n },\n {\n name: 'height',\n type: 'number',\n role: 'fraction',\n themeable: false,\n required: false,\n default: '0.4',\n description: 'Box height as a 0..1 fraction of the composition height.',\n },\n {\n name: 'label',\n type: 'string',\n role: 'text',\n themeable: false,\n required: false,\n default: \"''\",\n description:\n \"Optional label tag pinned to the box's top-left corner; empty string hides it.\",\n },\n {\n name: 'color',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Outline, tick, and tag color; defaults to the theme accent.',\n },\n {\n name: 'delay',\n type: 'number',\n role: 'delayFrames',\n themeable: false,\n required: false,\n default: '0',\n description:\n \"Frames before the outline starts revealing. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'drawDuration',\n type: 'number',\n role: 'durationFrames',\n themeable: false,\n required: false,\n default: 'DURATION.slow',\n description:\n \"Frames to reveal the full outline (default 24). Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'strokeWidth',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '3',\n description: 'Outline stroke width in px.',\n },\n {\n name: 'cornerRadius',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '0',\n description: 'Corner rounding for the outline rectangle in px (sharp by default).',\n },\n {\n name: 'labelColor',\n type: 'string',\n role: 'color',\n themeable: false,\n required: false,\n default: \"'#08080a'\",\n description: 'Label text color; a dark for contrast on the accent tag by default.',\n },\n {\n name: 'fontSize',\n type: 'number',\n role: 'fontSize',\n themeable: false,\n required: false,\n default: '16',\n description: 'Label font size in px.',\n },\n {\n name: 'fontFamily',\n type: 'string',\n role: 'fontFamily',\n themeable: true,\n required: false,\n description: 'Label font family; defaults to the theme heading family.',\n },\n ],\n schema: boundingBoxSchema,\n },\n {\n slug: 'browser-frame',\n name: 'BrowserFrame',\n category: 'UI',\n title: 'Browser Frame',\n description:\n 'A browser-window chrome (traffic-light dots + address pill) wrapping arbitrary content, an image, or a URL placeholder; scales-and-fades in on the house spring.',\n pickWhen:\n 'Use to present a website, app screenshot, or wrapped scene content inside a realistic browser window with a URL bar.',\n composes: [],\n sceneRole: 'wrapper',\n occlusion: 'centered',\n example: {\n url: 'onda.video',\n src: 'https://example.com/screenshot.png',\n width: 1280,\n height: 720,\n animate: true,\n delay: 6,\n },\n props: [\n {\n name: 'url',\n type: 'string',\n role: 'text',\n themeable: false,\n required: false,\n default: \"'onda.video'\",\n description: 'URL shown in the address pill (and as the placeholder when empty).',\n },\n {\n name: 'src',\n type: 'string',\n role: 'url',\n themeable: false,\n required: false,\n description:\n 'Image to show inside the frame when no children are passed; scaled to fill the content width.',\n },\n {\n name: 'delay',\n type: 'int',\n role: 'delayFrames',\n themeable: false,\n required: false,\n default: '0',\n description:\n \"Frames before the entrance. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'animate',\n type: 'boolean',\n role: 'boolean',\n themeable: false,\n required: false,\n default: 'true',\n description: 'Scale-and-fade the frame in on the house spring.',\n },\n {\n name: 'width',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '1280',\n description: 'Frame (and content) width in px.',\n },\n {\n name: 'height',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '720',\n description: 'Content height in px (excludes the chrome bar).',\n },\n {\n name: 'from',\n type: 'number',\n role: 'fraction',\n themeable: false,\n required: false,\n default: '0.96',\n description: 'Starting scale for the entrance (restrained, like ondajs).',\n },\n {\n name: 'surface',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Card body fill (default: theme surface).',\n },\n {\n name: 'border',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: '1px card border and chrome divider color (default: theme border).',\n },\n {\n name: 'borderLit',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Traffic-light dot color (default: theme border).',\n },\n {\n name: 'surface2',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Address-pill fill (default: theme surface).',\n },\n {\n name: 'bg',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Content canvas background (default: theme background).',\n },\n {\n name: 'dim',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Pill/URL text color (default: theme textMuted).',\n },\n {\n name: 'faint',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Placeholder text color (default: theme textMuted).',\n },\n {\n name: 'cardRadius',\n type: 'number',\n role: 'number',\n themeable: true,\n required: false,\n description: 'Card corner radius in px (default: theme radius).',\n },\n {\n name: 'pillRadius',\n type: 'number',\n role: 'number',\n themeable: true,\n required: false,\n description: 'Address-pill corner radius in px (default: theme radius).',\n },\n ],\n schema: browserFrameSchema,\n },\n {\n slug: 'button',\n name: 'Button',\n category: 'UI',\n title: 'Button',\n description:\n 'A styled CTA pill \\u2014 a rounded filled label that fades and rises in, then plays an optional press-dip click.',\n pickWhen:\n 'Use for a single call-to-action pill (primary accent fill or ghost outline) that animates in and optionally clicks; not for full button rows or menus.',\n composes: [],\n sceneRole: 'block',\n occlusion: 'centered',\n example: {\n label: 'Get started',\n variant: 'primary',\n width: 280,\n height: 72,\n fontSize: 24,\n press: true,\n pressFrame: 30,\n entrance: true,\n },\n props: [\n {\n name: 'label',\n type: 'string',\n role: 'text',\n themeable: false,\n required: false,\n default: \"'Get started'\",\n description: 'The button label.',\n },\n {\n name: 'variant',\n type: 'enum',\n role: 'enum',\n themeable: false,\n required: false,\n enumValues: ['primary', 'ghost'],\n default: \"'primary'\",\n description:\n \"'primary' = filled with color; 'ghost' = transparent with a color border and color-tinted label.\",\n },\n {\n name: 'color',\n type: 'string',\n role: 'color',\n themeable: true,\n required: true,\n description:\n 'Accent color \\u2014 the primary fill and the ghost border/label tint (default: theme accent).',\n },\n {\n name: 'textColor',\n type: 'string',\n role: 'color',\n themeable: true,\n required: true,\n description:\n \"Label color on the primary variant (default: theme text). Ignored by 'ghost', which tints the label with color.\",\n },\n {\n name: 'width',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '280',\n description: 'Pill width in px.',\n },\n {\n name: 'height',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '72',\n description: 'Pill height in px.',\n },\n {\n name: 'cornerRadius',\n type: 'number',\n role: 'number',\n themeable: true,\n required: true,\n description: 'Corner radius in px (default: theme radius).',\n },\n {\n name: 'borderWidth',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '2',\n description: \"Border thickness in px for the 'ghost' variant.\",\n },\n {\n name: 'fontSize',\n type: 'number',\n role: 'fontSize',\n themeable: false,\n required: false,\n default: '24',\n description: 'Label font size in px.',\n },\n {\n name: 'fontFamily',\n type: 'string',\n role: 'fontFamily',\n themeable: true,\n required: true,\n description:\n 'Loaded font family (e.g. a --font passed to onda render) (default: theme fontFamily).',\n },\n {\n name: 'fontWeight',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '600',\n description: 'Label font weight (display default 600).',\n },\n {\n name: 'centerX',\n type: 'number',\n role: 'fraction',\n themeable: false,\n required: false,\n default: '0.5',\n description:\n 'Horizontal center as a 0\\u20131 fraction of canvas width (default 0.5 \\u2014 centered).',\n },\n {\n name: 'centerY',\n type: 'number',\n role: 'fraction',\n themeable: false,\n required: false,\n default: '0.5',\n description: 'Vertical center as a 0\\u20131 fraction of canvas height (default 0.5).',\n },\n {\n name: 'entrance',\n type: 'boolean',\n role: 'boolean',\n themeable: false,\n required: false,\n default: 'true',\n description: 'Play the entrance (fade + rise on the house spring).',\n },\n {\n name: 'delay',\n type: 'int',\n role: 'delayFrames',\n themeable: false,\n required: false,\n default: '0',\n description:\n \"Frames before the entrance begins. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'durationInFrames',\n type: 'int',\n role: 'durationFrames',\n themeable: false,\n required: false,\n default: 'DURATION.base',\n description:\n \"Entrance duration in frames (default DURATION.base = 18). Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'press',\n type: 'boolean',\n role: 'boolean',\n themeable: false,\n required: false,\n default: 'true',\n description: 'Play the click-dip press animation.',\n },\n {\n name: 'pressFrame',\n type: 'int',\n role: 'delayFrames',\n themeable: false,\n required: false,\n default: '30',\n description:\n \"Frame the press dip lands on (relative to the local timeline). Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'placement',\n type: 'unknown',\n role: 'placement',\n themeable: false,\n required: false,\n description:\n \"Where the element sits: a region keyword ('center', 'lower-third', 'upper-third', 'top', 'bottom', 'left', 'right', 'top-left', 'top-right', 'bottom-left', 'bottom-right') or normalized {x,y} (0-1 canvas fractions, element-center anchored). The shared placement contract; default 'center'. Supersedes the deprecated centerX/centerY props.\",\n },\n ],\n schema: buttonSchema,\n },\n {\n slug: 'callout',\n name: 'Callout',\n category: 'Annotations',\n title: 'Callout',\n description:\n 'A speech-bubble annotation that lands on a spring and points at a spot on the canvas with a pointer triangle.',\n pickWhen:\n 'Use to call attention to or label a specific point on the canvas \\u2014 a bubble with a directional pointer aimed at an anchor.',\n composes: [],\n sceneRole: 'annotation',\n occlusion: 'non_occluding',\n example: { label: 'Tap here', x: 0.65, y: 0.4, direction: 'bottom', delay: 12, lineDelay: 6 },\n props: [\n {\n name: 'label',\n type: 'string',\n role: 'text',\n themeable: false,\n required: false,\n default: \"'Look here'\",\n description: 'Bubble label. Single line \\u2014 no auto-wrap.',\n },\n {\n name: 'x',\n type: 'number',\n role: 'fraction',\n themeable: false,\n required: false,\n default: '0.5',\n description: 'Bubble-center X as a 0..1 fraction of canvas width (default 0.5 = center).',\n },\n {\n name: 'y',\n type: 'number',\n role: 'fraction',\n themeable: false,\n required: false,\n default: '0.5',\n description: 'Bubble-center Y as a 0..1 fraction of canvas height (default 0.5 = center).',\n },\n {\n name: 'direction',\n type: 'enum',\n role: 'enum',\n themeable: false,\n required: false,\n enumValues: ['top', 'bottom', 'left', 'right'],\n default: \"'bottom'\",\n description:\n 'Side the pointer triangle sticks out from (and the rough direction the callout is aimed).',\n },\n {\n name: 'delay',\n type: 'int',\n role: 'delayFrames',\n themeable: false,\n required: false,\n default: '0',\n description:\n \"Frames before the bubble starts revealing. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'duration',\n type: 'int',\n role: 'durationFrames',\n themeable: false,\n required: false,\n default: 'DURATION.base',\n description:\n \"Bubble scale-and-fade reveal duration in frames. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'lineDelay',\n type: 'int',\n role: 'delayFrames',\n themeable: false,\n required: false,\n default: '6',\n description:\n \"Frames after the bubble starts before the pointer eases in. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'lineDuration',\n type: 'int',\n role: 'durationFrames',\n themeable: false,\n required: false,\n default: 'DURATION.base',\n description:\n \"Pointer reveal duration in frames. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'color',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Label color (default: theme text).',\n },\n {\n name: 'bgColor',\n type: 'string',\n role: 'color',\n themeable: false,\n required: false,\n description:\n 'Bubble background fill (default: an elevated translucent-white surface that lifts the bubble off the dark canvas).',\n },\n {\n name: 'borderColor',\n type: 'string',\n role: 'color',\n themeable: false,\n required: false,\n description: 'Bubble border color (default: a bright translucent-white hairline).',\n },\n {\n name: 'borderWidth',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '1',\n description: 'Bubble border width in px.',\n },\n {\n name: 'fontSize',\n type: 'number',\n role: 'fontSize',\n themeable: false,\n required: false,\n default: '20',\n description: 'Label font size in px.',\n },\n {\n name: 'fontFamily',\n type: 'string',\n role: 'fontFamily',\n themeable: true,\n required: false,\n description: 'Loaded font family (the Onda display font) (default: theme fontFamily).',\n },\n {\n name: 'fontWeight',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '500',\n description: 'Label font weight.',\n },\n {\n name: 'paddingX',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '14',\n description: 'Horizontal padding inside the bubble in px.',\n },\n {\n name: 'paddingY',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '8',\n description: 'Vertical padding inside the bubble in px.',\n },\n {\n name: 'cornerRadius',\n type: 'number',\n role: 'number',\n themeable: true,\n required: false,\n description: 'Bubble corner radius (default: theme radius).',\n },\n {\n name: 'pointerWidth',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '18',\n description: 'Pointer triangle base width in px.',\n },\n {\n name: 'pointerLength',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '12',\n description: 'Pointer triangle length (how far it pokes out) in px.',\n },\n {\n name: 'width',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n description: 'Explicit bubble width in px. Overrides the measured text extent.',\n },\n {\n name: 'placement',\n type: 'unknown',\n role: 'placement',\n themeable: false,\n required: false,\n description:\n \"Where the element sits: a region keyword ('center', 'lower-third', 'upper-third', 'top', 'bottom', 'left', 'right', 'top-left', 'top-right', 'bottom-left', 'bottom-right') or normalized {x,y} (0-1 canvas fractions, element-center anchored). The shared placement contract; default 'center'. Supersedes the deprecated fractional x/y props.\",\n },\n ],\n schema: calloutSchema,\n },\n {\n slug: 'camera-shake',\n name: 'CameraShake',\n category: 'Effects',\n title: 'Camera Shake',\n description:\n 'Wraps content in a deterministic, decaying camera shake \\u2014 a seeded x/y jitter (plus optional slight rotation) that fires only inside its window and settles to rest.',\n pickWhen:\n 'You want an impact/hit moment \\u2014 a jolt on a logo reveal, a stat slam, or a beat drop \\u2014 where content jitters briefly then settles, without displacing the centered layout.',\n composes: [],\n sceneRole: 'wrapper',\n occlusion: 'centered',\n example: { delay: 6, duration: 24, intensity: 8, rotationIntensity: 0.6, seed: 0, decay: true },\n props: [\n {\n name: 'delay',\n type: 'int',\n role: 'delayFrames',\n themeable: false,\n required: false,\n default: '0',\n description:\n \"Frames before the shake starts; outside the window the offset is 0. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'duration',\n type: 'int',\n role: 'durationFrames',\n themeable: false,\n required: false,\n default: 'DURATION.slow',\n description:\n \"Frames the shake lasts; before delay and after delay + duration the offset is exactly 0. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'intensity',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '4',\n description:\n 'Maximum positional offset in px; restrained by default, bump for impact moments.',\n },\n {\n name: 'rotationIntensity',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '0.6',\n description:\n 'Maximum rotation amplitude in degrees (GPU/Vello only); set 0 for pure translational shake.',\n },\n {\n name: 'seed',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '0',\n description: 'PRNG seed \\u2014 the same seed always produces the same deterministic shake.',\n },\n {\n name: 'decay',\n type: 'boolean',\n role: 'boolean',\n themeable: false,\n required: false,\n default: 'true',\n description:\n 'Linearly decay intensity and rotation to 0 over duration so the camera settles to rest by the end.',\n },\n {\n name: 'x',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '0',\n description:\n 'Rest x offset of the wrapper in px relative to center; the shake jitters around this.',\n },\n {\n name: 'y',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '0',\n description:\n 'Rest y offset of the wrapper in px relative to center; the shake jitters around this.',\n },\n {\n name: 'variant',\n type: 'int',\n role: 'integer',\n themeable: false,\n required: false,\n description:\n \"Integer 'take' selector: derives a new deterministic seed from (seed, variant), so alternates never require hand-edited seeds. 0/omitted = the default take.\",\n },\n ],\n schema: cameraShakeSchema,\n },\n {\n slug: 'captions',\n name: 'Captions',\n category: 'Text',\n title: 'Captions',\n description:\n 'Sequential subtitle captions driven by a timed transcript \\u2014 one active word shows at a time in a lower-third band with a subtle scale pulse.',\n pickWhen:\n 'Use to render speech-to-text / transcript-driven subtitles where each word appears on its own `[startMs, endMs)` window, replacing the previous one in place (karaoke/kinetic captions).',\n composes: [],\n sceneRole: 'overlay',\n occlusion: 'non_occluding',\n example: {\n captions: [\n { text: 'Ship', startMs: 0, endMs: 600 },\n { text: 'faster', startMs: 600, endMs: 1400 },\n { text: 'with', startMs: 1400, endMs: 1900 },\n { text: 'Onda', startMs: 1900, endMs: 3000 },\n ],\n fontSize: 88,\n fontWeight: 600,\n placement: 'lower-third',\n align: 'center',\n maxWidth: 0.8,\n },\n props: [\n {\n name: 'captions',\n type: 'object',\n role: 'array',\n themeable: false,\n required: false,\n default:\n \"[{ text: 'Onda', startMs: 0, endMs: 1500 }, { text: 'kinetic', startMs: 1500, endMs: 3000 }, { text: 'captions', startMs: 3000, endMs: 4500 }]\",\n description:\n 'The transcript timeline; each entry is a word plus its [startMs, endMs) activation window.',\n },\n {\n name: 'delay',\n type: 'int',\n role: 'delayFrames',\n themeable: false,\n required: false,\n default: '0',\n description:\n \"Frames before the timeline starts (shifts every startMs by this). Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'color',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description:\n 'Inactive word color (defaults to theme textMuted); accepted for ondajs parity but not applied since only the active caption is drawn.',\n },\n {\n name: 'accentColor',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description:\n 'Active caption color (defaults to theme text); the contrast is brightness against the dim canvas, not a rose accent.',\n },\n {\n name: 'fontSize',\n type: 'number',\n role: 'fontSize',\n themeable: false,\n required: false,\n default: '96',\n description: 'Font size in px.',\n },\n {\n name: 'fontFamily',\n type: 'string',\n role: 'fontFamily',\n themeable: true,\n required: false,\n description: 'Loaded font family (defaults to theme fontFamily).',\n },\n {\n name: 'fontWeight',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '600',\n description: 'Font weight (display default 600).',\n },\n {\n name: 'letterSpacing',\n type: 'string',\n role: 'other',\n themeable: false,\n required: false,\n description:\n \"CSS letter-spacing (e.g. '-0.02em' or '2px'); applied to the caption and folded into its measured width so centering stays exact.\",\n },\n {\n name: 'lineHeight',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n description:\n 'Unitless line height; accepted for ondajs parity but not applied (the scene Text uses a fixed text box).',\n },\n {\n name: 'align',\n type: 'enum',\n role: 'enum',\n themeable: false,\n required: false,\n enumValues: ['left', 'center', 'right'],\n default: \"'center'\",\n description: 'Text alignment of the caption block within its line(s).',\n },\n {\n name: 'placement',\n type: 'enum',\n role: 'enum',\n themeable: false,\n required: false,\n enumValues: ['center', 'top', 'bottom', 'upper-third', 'lower-third'],\n default: \"'lower-third'\",\n description:\n 'Vertical placement band of the caption block (defaults to the broadcast lower-third subtitle position); also accepts a normalized {x,y} point (0-1, line center) per the shared placement contract.',\n },\n {\n name: 'maxWidth',\n type: 'number',\n role: 'fraction',\n themeable: false,\n required: false,\n default: '0.8',\n description:\n 'Max line width as a 0\\u20131 fraction of canvas width; the block wraps within this safe band.',\n },\n ],\n schema: captionsSchema,\n },\n {\n slug: 'chapter-card',\n name: 'ChapterCard',\n category: 'Text',\n title: 'Chapter Card',\n description:\n 'A numbered eyebrow fades in above a large chapter title that springs into place, with an optional accent underline drawing beneath.',\n pickWhen:\n 'Use to mark a new section or chapter with a numbered title card \\u2014 a full-frame centered divider between segments of a video.',\n composes: ['FadeIn'],\n sceneRole: 'block',\n occlusion: 'centered',\n example: {\n chapter: 'The setup',\n number: '01',\n accent: true,\n titleFontSize: 96,\n numberFontSize: 32,\n },\n props: [\n {\n name: 'chapter',\n type: 'string',\n role: 'text',\n themeable: false,\n required: true,\n description: 'The chapter heading \\u2014 the focal text on the card.',\n },\n {\n name: 'number',\n type: 'string',\n role: 'text',\n themeable: false,\n required: false,\n default: \"'01'\",\n description:\n 'Numbered index above the chapter; a string so leading zeros (\"01\") read as intended.',\n },\n {\n name: 'delay',\n type: 'int',\n role: 'delayFrames',\n themeable: false,\n required: false,\n default: '0',\n description:\n \"Frames before the number starts fading in; the whole card sequences off this. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'accent',\n type: 'boolean',\n role: 'boolean',\n themeable: false,\n required: false,\n default: 'true',\n description:\n 'When true, the number takes numberColor (the rose) and an underline punctuates the title.',\n },\n {\n name: 'numberColor',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Number color when accent is true (the Onda rose); defaults to theme accent.',\n },\n {\n name: 'color',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Chapter title color; defaults to theme text.',\n },\n {\n name: 'subtitleColor',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description:\n 'Number color when accent is false \\u2014 quiet metadata dim; defaults to theme textMuted.',\n },\n {\n name: 'numberFontSize',\n type: 'number',\n role: 'fontSize',\n themeable: false,\n required: false,\n default: '32',\n description: 'Number font size in px \\u2014 smaller than the title, sitting above it.',\n },\n {\n name: 'numberFontWeight',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '600',\n description: 'Number font weight.',\n },\n {\n name: 'titleFontSize',\n type: 'number',\n role: 'fontSize',\n themeable: false,\n required: false,\n default: '96',\n description: 'Chapter title font size in px \\u2014 the focal element.',\n },\n {\n name: 'titleFontWeight',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '600',\n description: 'Title font weight.',\n },\n {\n name: 'fontFamily',\n type: 'string',\n role: 'fontFamily',\n themeable: true,\n required: false,\n description:\n 'Onda display font applied to both number and title; defaults to theme headingFamily ?? fontFamily.',\n },\n {\n name: 'placement',\n type: 'unknown',\n role: 'placement',\n themeable: false,\n required: false,\n description:\n \"Where the element sits: a region keyword ('center', 'lower-third', 'upper-third', 'top', 'bottom', 'left', 'right', 'top-left', 'top-right', 'bottom-left', 'bottom-right') or normalized {x,y} (0-1 canvas fractions, element-center anchored). The shared placement contract; default 'center'.\",\n },\n {\n name: 'fit',\n type: 'enum',\n role: 'enum',\n themeable: false,\n required: false,\n enumValues: ['none', 'frame'],\n description:\n \"Opt-in auto-fit: 'frame' scales the font size DOWN (never up) so the line cannot exceed the frame minus the safe margins. Default 'none'.\",\n },\n {\n name: 'maxWidth',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n description:\n 'Explicit width cap in px for the line; combines with fit (the smaller cap wins).',\n },\n ],\n schema: chapterCardSchema,\n },\n {\n slug: 'code-block',\n name: 'CodeBlock',\n category: 'Code',\n title: 'Code Block',\n description:\n 'Syntax-highlighted source on a dark rounded panel with macOS-style window chrome, revealed line-by-line on a stagger.',\n pickWhen:\n 'Use to show a snippet of code, a config, or a terminal-style listing \\u2014 especially when each line should cascade in. Reach for it in dev/product explainers where source is the hero.',\n composes: [],\n sceneRole: 'block',\n occlusion: 'centered',\n example: {\n code: 'export function add(a, b) {\\n // sum two numbers\\n return a + b;\\n}',\n title: 'math.ts',\n chrome: true,\n revealLines: true,\n lineDelay: 4,\n fontSize: 48,\n width: 1000,\n },\n props: [\n {\n name: 'code',\n type: 'string',\n role: 'text',\n themeable: false,\n required: false,\n default: '\"const onda = motion(\\'identity\\');\\\\nexport default onda;\"',\n description: 'The source to render. Newlines split into reveal-able lines.',\n },\n {\n name: 'title',\n type: 'string',\n role: 'text',\n themeable: false,\n required: false,\n default: \"'onda.ts'\",\n description:\n 'Filename shown in the title bar. Empty hides the title (dots still show if chrome).',\n },\n {\n name: 'chrome',\n type: 'boolean',\n role: 'boolean',\n themeable: false,\n required: false,\n default: 'true',\n description: 'Show the macOS-style window chrome (three dots + title bar).',\n },\n {\n name: 'revealLines',\n type: 'boolean',\n role: 'boolean',\n themeable: false,\n required: false,\n default: 'true',\n description: 'Reveal lines one-by-one instead of all at once.',\n },\n {\n name: 'delay',\n type: 'int',\n role: 'delayFrames',\n themeable: false,\n required: false,\n default: '0',\n description:\n \"Frames before the first line appears. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'lineDelay',\n type: 'int',\n role: 'delayFrames',\n themeable: false,\n required: false,\n default: '3',\n description:\n \"Frames between successive line reveals. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'fontFamily',\n type: 'string',\n role: 'fontFamily',\n themeable: true,\n required: true,\n description:\n 'Monospace font stack; code needs column alignment (defaults to theme monoFamily).',\n },\n {\n name: 'fontSize',\n type: 'number',\n role: 'fontSize',\n themeable: false,\n required: false,\n default: '48',\n description: 'Code font size in px. Sized for a video canvas, not a screen UI.',\n },\n {\n name: 'width',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '900',\n description: 'Panel width in px.',\n },\n {\n name: 'textColor',\n type: 'string',\n role: 'color',\n themeable: true,\n required: true,\n description:\n 'Default text color for identifiers, punctuation, operators (defaults to theme text).',\n },\n {\n name: 'keywordColor',\n type: 'string',\n role: 'color',\n themeable: true,\n required: true,\n description: 'Keyword color \\u2014 a muted, dusty violet (defaults to theme palette[1]).',\n },\n {\n name: 'stringColor',\n type: 'string',\n role: 'color',\n themeable: true,\n required: true,\n description: 'String literal color \\u2014 dusty sage (defaults to theme palette[3]).',\n },\n {\n name: 'commentColor',\n type: 'string',\n role: 'color',\n themeable: true,\n required: true,\n description: 'Comment color (defaults to theme textMuted).',\n },\n {\n name: 'numberColor',\n type: 'string',\n role: 'color',\n themeable: true,\n required: true,\n description: 'Numeric literal color \\u2014 dusty amber (defaults to theme palette[2]).',\n },\n {\n name: 'tagColor',\n type: 'string',\n role: 'color',\n themeable: true,\n required: true,\n description: 'JSX / HTML tag-name color \\u2014 dusty cyan (defaults to theme palette[1]).',\n },\n {\n name: 'panelColor',\n type: 'string',\n role: 'color',\n themeable: true,\n required: true,\n description: 'Panel background fill \\u2014 the glass surface (defaults to theme surface).',\n },\n {\n name: 'borderColor',\n type: 'string',\n role: 'color',\n themeable: true,\n required: true,\n description: 'Panel border color (defaults to theme border).',\n },\n ],\n schema: codeBlockSchema,\n },\n {\n slug: 'code-diff',\n name: 'CodeDiff',\n category: 'Code',\n title: 'Code Diff',\n description:\n 'A unified code diff panel revealed line-by-line, with added/removed lines carrying a colored left border, gutter symbol, and tinted row backing.',\n pickWhen:\n 'Use to show a before/after code change, a unified diff, or a commit-style edit reveal \\u2014 when you want added (+) and removed (\\u2212) lines highlighted in a window-chrome code panel.',\n composes: [],\n sceneRole: 'block',\n occlusion: 'centered',\n example: {\n lines: [\n { text: 'function greet(name) {', type: 'context' },\n { text: \" console.log('Hi ' + name)\", type: 'remove' },\n { text: ' console.log(`Hi ${name}`)', type: 'add' },\n { text: '}', type: 'context' },\n ],\n title: 'greet.ts',\n chrome: true,\n revealLines: true,\n fontSize: 44,\n width: 760,\n },\n props: [\n {\n name: 'lines',\n type: 'object',\n role: 'array',\n themeable: false,\n required: false,\n default:\n \"[{ text: \\\"const onda = motion('default');\\\", type: 'remove' }, { text: \\\"const onda = motion('identity');\\\", type: 'add' }, { text: 'export default onda;', type: 'context' }]\",\n description:\n \"The diff lines, top to bottom; each is { text, type?: 'add' | 'remove' | 'context' }.\",\n },\n {\n name: 'title',\n type: 'string',\n role: 'text',\n themeable: false,\n required: false,\n default: \"'motion.ts'\",\n description: 'Filename shown in the title bar.',\n },\n {\n name: 'chrome',\n type: 'boolean',\n role: 'boolean',\n themeable: false,\n required: false,\n default: 'true',\n description: 'Show window chrome (traffic-light dots + title bar).',\n },\n {\n name: 'revealLines',\n type: 'boolean',\n role: 'boolean',\n themeable: false,\n required: false,\n default: 'true',\n description: 'Reveal lines one-by-one (else all appear together).',\n },\n {\n name: 'delay',\n type: 'int',\n role: 'delayFrames',\n themeable: false,\n required: false,\n default: '0',\n description:\n \"Frames before the first line appears. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'lineDelay',\n type: 'int',\n role: 'delayFrames',\n themeable: false,\n required: false,\n default: 'STAGGER',\n description:\n \"Frames between consecutive line reveals (canonical STAGGER = 4). Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'fontFamily',\n type: 'string',\n role: 'fontFamily',\n themeable: true,\n required: true,\n description:\n 'Monospace font stack for code and title (defaults to theme monoFamily ?? fontFamily).',\n },\n {\n name: 'fontSize',\n type: 'number',\n role: 'fontSize',\n themeable: false,\n required: false,\n default: '44',\n description: 'Code font size in px.',\n },\n {\n name: 'width',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '760',\n description: 'Panel width in px.',\n },\n {\n name: 'textColor',\n type: 'string',\n role: 'color',\n themeable: true,\n required: true,\n description: 'Default (context) text color (defaults to theme textMuted).',\n },\n {\n name: 'addColor',\n type: 'string',\n role: 'color',\n themeable: true,\n required: true,\n description: 'Added-line color (defaults to theme palette[3]).',\n },\n {\n name: 'removeColor',\n type: 'string',\n role: 'color',\n themeable: true,\n required: true,\n description: 'Removed-line color (defaults to theme accent).',\n },\n {\n name: 'surfaceColor',\n type: 'string',\n role: 'color',\n themeable: true,\n required: true,\n description: 'Panel surface (glass) fill (defaults to theme surface).',\n },\n {\n name: 'borderColor',\n type: 'string',\n role: 'color',\n themeable: true,\n required: true,\n description: 'Panel border / chrome divider color (defaults to theme border).',\n },\n {\n name: 'cornerRadius',\n type: 'number',\n role: 'number',\n themeable: true,\n required: true,\n description: 'Panel corner radius in px (defaults to theme radius).',\n },\n {\n name: 'chromeDotsColor',\n type: 'string',\n role: 'color',\n themeable: true,\n required: true,\n description: 'Window-chrome traffic-light dot color (defaults to theme border).',\n },\n {\n name: 'chromeTitleColor',\n type: 'string',\n role: 'color',\n themeable: true,\n required: true,\n description: 'Window-chrome title (filename) color (defaults to theme textMuted).',\n },\n ],\n schema: codeDiffSchema,\n },\n {\n slug: 'confetti',\n name: 'Confetti',\n category: 'Effects',\n title: 'Confetti',\n description:\n 'A celebratory particle burst over the whole canvas \\u2014 pieces launch from an origin, fan outward, arc back under gravity, tumble and fade.',\n pickWhen:\n 'Use to celebrate a win, reveal, or call-to-action moment with a deterministic confetti burst layered over other scene content.',\n composes: [],\n sceneRole: 'overlay',\n occlusion: 'non_occluding',\n example: {\n seed: 7,\n count: 80,\n originX: 0.5,\n originY: 0.35,\n delay: 0,\n duration: 70,\n spread: 120,\n gravity: 1,\n pieceSize: 12,\n },\n props: [\n {\n name: 'seed',\n type: 'int',\n role: 'integer',\n themeable: false,\n required: false,\n default: '7',\n description:\n 'Seed for every per-piece random (angle, velocity, spin, color, size) \\u2014 the same seed always produces the same burst.',\n },\n {\n name: 'count',\n type: 'int',\n role: 'count',\n themeable: false,\n required: false,\n default: '80',\n description: 'Number of confetti pieces; ~80 reads full without thrashing the render.',\n },\n {\n name: 'colors',\n type: 'stringArray',\n role: 'array',\n themeable: true,\n required: false,\n description:\n 'Palette pieces are picked from; defaults to the theme accent plus tasteful neutrals.',\n },\n {\n name: 'originX',\n type: 'number',\n role: 'fraction',\n themeable: false,\n required: false,\n default: '0.5',\n description: 'Burst origin X, as a fraction of canvas width (0 = left, 1 = right).',\n },\n {\n name: 'originY',\n type: 'number',\n role: 'fraction',\n themeable: false,\n required: false,\n default: '0.35',\n description: 'Burst origin Y, as a fraction of canvas height (0 = top, 1 = bottom).',\n },\n {\n name: 'delay',\n type: 'int',\n role: 'delayFrames',\n themeable: false,\n required: false,\n default: '0',\n description:\n \"Frames before the burst launches. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'duration',\n type: 'int',\n role: 'durationFrames',\n themeable: false,\n required: false,\n default: '70',\n description:\n \"Frames over which a piece travels, tumbles and fades out. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'spread',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '120',\n description: 'Launch spread, in degrees, around straight up; wider = more fan-out.',\n },\n {\n name: 'gravity',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '1',\n description: 'Downward acceleration; higher = pieces fall back faster.',\n },\n {\n name: 'pieceSize',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '12',\n description: 'Base piece size in pixels \\u2014 each piece varies around this.',\n },\n {\n name: 'variant',\n type: 'int',\n role: 'integer',\n themeable: false,\n required: false,\n description:\n \"Integer 'take' selector: derives a new deterministic seed from (seed, variant), so alternates never require hand-edited seeds. 0/omitted = the default take.\",\n },\n ],\n schema: confettiSchema,\n },\n {\n slug: 'count-up',\n name: 'CountUp',\n category: 'Text',\n title: 'Count Up',\n description:\n 'An animated number that springs from `from` to `to`, formatted with optional prefix/suffix, decimals, and thousands grouping.',\n pickWhen:\n 'Use to reveal a metric, statistic, price, or score that ticks up to its final value as it fades in.',\n composes: [],\n sceneRole: 'block',\n occlusion: 'centered',\n example: {\n from: 0,\n to: 12847,\n prefix: '$',\n decimals: 0,\n useGrouping: true,\n fontSize: 160,\n fontWeight: 700,\n durationInFrames: 36,\n },\n props: [\n {\n name: 'from',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '0',\n description: 'Starting value the counter animates from.',\n },\n {\n name: 'to',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '100',\n description: 'Ending value the counter settles on.',\n },\n {\n name: 'delay',\n type: 'int',\n role: 'delayFrames',\n themeable: false,\n required: false,\n default: '0',\n description:\n \"Frames to wait before the count starts. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'durationInFrames',\n type: 'int',\n role: 'durationFrames',\n themeable: false,\n required: false,\n default: 'DURATION.slow',\n description:\n \"Frames spent counting from `from` to `to`. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'decimals',\n type: 'int',\n role: 'integer',\n themeable: false,\n required: false,\n default: '0',\n description: 'Number of fraction digits to render.',\n },\n {\n name: 'useGrouping',\n type: 'boolean',\n role: 'boolean',\n themeable: false,\n required: false,\n default: 'true',\n description: 'Insert en-US thousands separators.',\n },\n {\n name: 'prefix',\n type: 'string',\n role: 'text',\n themeable: false,\n required: false,\n default: \"''\",\n description: \"Text prepended to the number, e.g. '$'.\",\n },\n {\n name: 'suffix',\n type: 'string',\n role: 'text',\n themeable: false,\n required: false,\n default: \"''\",\n description: \"Text appended to the number, e.g. '%'.\",\n },\n {\n name: 'color',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Text color; defaults to the theme `text` color.',\n },\n {\n name: 'fontSize',\n type: 'number',\n role: 'fontSize',\n themeable: false,\n required: false,\n default: '120',\n description: 'Font size in px; counters are usually large.',\n },\n {\n name: 'fontFamily',\n type: 'string',\n role: 'fontFamily',\n themeable: true,\n required: false,\n description: 'Loaded font family; defaults to the theme `fontFamily`.',\n },\n {\n name: 'fontWeight',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '600',\n description: 'Font weight of the rendered number.',\n },\n {\n name: 'snappy',\n type: 'boolean',\n role: 'boolean',\n themeable: false,\n required: false,\n default: 'false',\n description: 'Use the snappier spring for the count instead of the smooth one.',\n },\n {\n name: 'x',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '0',\n description: 'Pixel translate on the x axis for placement.',\n },\n {\n name: 'y',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '0',\n description: 'Pixel translate on the y axis for placement.',\n },\n {\n name: 'placement',\n type: 'unknown',\n role: 'placement',\n themeable: false,\n required: false,\n description:\n \"Where the element sits: a region keyword ('center', 'lower-third', 'upper-third', 'top', 'bottom', 'left', 'right', 'top-left', 'top-right', 'bottom-left', 'bottom-right') or normalized {x,y} (0-1 canvas fractions, element-center anchored). The shared placement contract; default 'center'. Omitted -> the legacy origin-relative x/y translate.\",\n },\n {\n name: 'fit',\n type: 'enum',\n role: 'enum',\n themeable: false,\n required: false,\n enumValues: ['none', 'frame'],\n description:\n \"Opt-in auto-fit: 'frame' scales the font size DOWN (never up) so the line cannot exceed the frame minus the safe margins. Default 'none'.\",\n },\n {\n name: 'maxWidth',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n description:\n 'Explicit width cap in px for the line; combines with fit (the smaller cap wins).',\n },\n {\n name: 'fitToClip',\n type: 'boolean',\n role: 'boolean',\n themeable: false,\n required: false,\n description:\n 'Compress the whole timing envelope (delay, stagger, durations) so the entrance settles at least hold before the end of the enclosing clip. Opt-in.',\n },\n {\n name: 'maxSettle',\n type: 'unknown',\n role: 'durationFrames',\n themeable: false,\n required: false,\n description: \"Hard cap on the settle time (frames or '0.5s'). Wins over fitToClip.\",\n },\n {\n name: 'hold',\n type: 'unknown',\n role: 'durationFrames',\n themeable: false,\n required: false,\n description: 'Breathing room before the cut for fitToClip (default 6 frames).',\n },\n ],\n schema: countUpSchema,\n },\n {\n slug: 'cursor',\n name: 'Cursor',\n category: 'Motion',\n title: 'Cursor',\n description:\n 'An animated mouse pointer that travels between two canvas points on a spring and emits a single click ripple on arrival.',\n pickWhen:\n 'Use to simulate a user clicking somewhere on screen \\u2014 guiding attention to a UI target, demoing an interaction, or punctuating a product walkthrough with a pointer move + click.',\n composes: [],\n sceneRole: 'overlay',\n occlusion: 'non_occluding',\n example: {\n fromX: 0.28,\n fromY: 0.72,\n toX: 0.6,\n toY: 0.42,\n delay: 6,\n click: true,\n color: '#F2F2F4',\n size: 56,\n },\n props: [\n {\n name: 'fromX',\n type: 'number',\n role: 'fraction',\n themeable: false,\n required: false,\n default: '0.28',\n description: 'Start X as a 0..1 fraction of canvas width.',\n },\n {\n name: 'fromY',\n type: 'number',\n role: 'fraction',\n themeable: false,\n required: false,\n default: '0.72',\n description: 'Start Y as a 0..1 fraction of canvas height.',\n },\n {\n name: 'toX',\n type: 'number',\n role: 'fraction',\n themeable: false,\n required: false,\n default: '0.6',\n description: 'End X as a 0..1 fraction of canvas width.',\n },\n {\n name: 'toY',\n type: 'number',\n role: 'fraction',\n themeable: false,\n required: false,\n default: '0.42',\n description: 'End Y as a 0..1 fraction of canvas height.',\n },\n {\n name: 'delay',\n type: 'int',\n role: 'delayFrames',\n themeable: false,\n required: false,\n default: '6',\n description:\n \"Frames before the cursor starts moving. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'travelDuration',\n type: 'int',\n role: 'durationFrames',\n themeable: false,\n required: false,\n default: 'DURATION.slow',\n description:\n \"Frames to travel from start to end on the house spring. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'click',\n type: 'boolean',\n role: 'boolean',\n themeable: false,\n required: false,\n default: 'true',\n description: 'Emit a click ripple on arrival.',\n },\n {\n name: 'clickDelay',\n type: 'int',\n role: 'delayFrames',\n themeable: false,\n required: false,\n default: '6',\n description:\n \"Frames after arrival before the click fires. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'color',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Pointer + ripple color (hex #rrggbb / #rrggbbaa). Defaults to theme text.',\n },\n {\n name: 'size',\n type: 'number',\n role: 'fontSize',\n themeable: false,\n required: false,\n default: '56',\n description: 'Pointer height in px.',\n },\n ],\n schema: cursorSchema,\n },\n {\n slug: 'device-frame',\n name: 'DeviceFrame',\n category: 'Layout',\n title: 'Device Frame',\n description:\n 'A centered phone or laptop bezel that wraps content (scene children) or an image inside a rounded, masked screen, with a soft drop shadow and a spring scale-and-fade entrance.',\n pickWhen:\n 'Use to present a screenshot, UI mockup, or nested scene inside a realistic phone or laptop device mockup centered on the canvas.',\n composes: [],\n sceneRole: 'wrapper',\n occlusion: 'centered',\n example: { device: 'phone', src: 'DEMO_IMAGE', width: 420, animate: true, delay: 6 },\n props: [\n {\n name: 'device',\n type: 'enum',\n role: 'enum',\n themeable: false,\n required: false,\n enumValues: ['phone', 'laptop'],\n default: \"'phone'\",\n description: 'Which device bezel to draw.',\n },\n {\n name: 'src',\n type: 'string',\n role: 'url',\n themeable: false,\n required: false,\n description:\n 'Image src shown inside when no children are passed (use the literal \"DEMO_IMAGE\" token in demos).',\n },\n {\n name: 'delay',\n type: 'int',\n role: 'delayFrames',\n themeable: false,\n required: false,\n default: '0',\n description:\n \"Frames before the entrance begins. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'animate',\n type: 'boolean',\n role: 'boolean',\n themeable: false,\n required: false,\n default: 'true',\n description: 'Scale-and-fade the device in on the house spring.',\n },\n {\n name: 'width',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '420',\n description:\n 'Device width in px (height is derived from the device aspect; shrunk to fit the canvas height).',\n },\n {\n name: 'color',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Bezel color (hex #rrggbb / #rrggbbaa); defaults to theme surface.',\n },\n ],\n schema: deviceFrameSchema,\n },\n {\n slug: 'draw-on',\n name: 'DrawOn',\n category: 'Motion',\n title: 'Draw On',\n description:\n 'An SVG path that draws itself on \\u2014 the substrate for animated logos, icons, and signature flourishes.',\n pickWhen:\n 'Reach for this to reveal a line, logo, signature, or icon by stroking its SVG path in left-to-right.',\n composes: [],\n sceneRole: 'block',\n occlusion: 'non_occluding',\n example: { d: 'M 10 50 Q 100 10 190 50', strokeWidth: 4, delay: 6, durationInFrames: 30 },\n props: [\n {\n name: 'd',\n type: 'string',\n role: 'other',\n themeable: false,\n required: false,\n default: \"'M 10 50 Q 100 10 190 50'\",\n description:\n \"SVG path `d` attribute (in the path's own coordinate space); the default is a gentle wave.\",\n },\n {\n name: 'color',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Stroke color (hex `#rrggbb` / `#rrggbbaa`); defaults to theme `text`.',\n },\n {\n name: 'strokeWidth',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '3',\n description: 'Stroke width in path coordinate units.',\n },\n {\n name: 'delay',\n type: 'int',\n role: 'delayFrames',\n themeable: false,\n required: false,\n default: '0',\n description:\n \"Frames before the draw-on starts. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'durationInFrames',\n type: 'int',\n role: 'durationFrames',\n themeable: false,\n required: false,\n default: 'DURATION.slow',\n description:\n \"Frames to fully draw the path in (default `DURATION.slow` = 24). Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n ],\n schema: drawOnSchema,\n },\n {\n slug: 'path-morph',\n name: 'PathMorph',\n category: 'Motion',\n title: 'Path Morph',\n description:\n 'One filled SVG shape continuously morphing into another — the \"magic move\" (a logo emblem flowing into a divider, one icon transforming into the next).',\n pickWhen:\n 'Reach for a continuous shape-morph: a logo/emblem flowing into a line, one icon transforming into another, an Apple-style magic move.',\n composes: [],\n sceneRole: 'block',\n occlusion: 'non_occluding',\n example: {\n from: 'M10 10 L90 10 L50 90 Z',\n to: 'M10 50 L90 50 L90 56 L10 56 Z',\n durationInFrames: 40,\n scale: 4,\n },\n props: [\n {\n name: 'from',\n type: 'string',\n role: 'other',\n themeable: false,\n required: true,\n description:\n 'SVG path `d` to morph FROM (e.g. a logo emblem), in its own coordinate space.',\n },\n {\n name: 'to',\n type: 'string',\n role: 'other',\n themeable: false,\n required: true,\n description: 'SVG path `d` to morph TO (e.g. a divider line), in the SAME space.',\n },\n {\n name: 'color',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Fill color (hex); defaults to theme `text`.',\n },\n {\n name: 'delay',\n type: 'int',\n role: 'delayFrames',\n themeable: false,\n required: false,\n default: '0',\n description: 'Frames before the morph starts.',\n },\n {\n name: 'durationInFrames',\n type: 'int',\n role: 'durationFrames',\n themeable: false,\n required: false,\n default: 'DURATION.slow',\n description: 'Frames the morph takes (default `DURATION.slow` = 24).',\n },\n {\n name: 'x',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '0',\n description: \"Composition x of the morph's local origin.\",\n },\n {\n name: 'y',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '0',\n description: \"Composition y of the morph's local origin.\",\n },\n {\n name: 'scale',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '1',\n description: \"Uniform scale of the path's coordinate space.\",\n },\n {\n name: 'fadeIn',\n type: 'boolean',\n role: 'other',\n themeable: false,\n required: false,\n default: 'true',\n description: 'Fade the shape in over the first 8 frames.',\n },\n ],\n schema: pathMorphSchema,\n },\n {\n slug: 'dynamic-grid',\n name: 'DynamicGrid',\n category: 'Backgrounds',\n title: 'Dynamic Grid',\n description:\n 'A full-canvas technical grid (ruled lines or dot lattice) that drifts diagonally, with an optional centered accent glow \\u2014 an atmosphere layer for dashboard, data, and dev scenes.',\n pickWhen:\n 'Reach for this as a background when a scene needs a subtle technical/dev atmosphere \\u2014 a drifting grid or dot lattice behind dashboard, data, or code content.',\n composes: [],\n sceneRole: 'background',\n occlusion: 'full_frame',\n example: { variant: 'lines', cell: 48, speed: 0.4, opacity: 0.6, glow: true, thickness: 1 },\n props: [\n {\n name: 'cell',\n type: 'int',\n role: 'number',\n themeable: false,\n required: false,\n default: '48',\n description: 'Cell size in px (the lattice pitch).',\n },\n {\n name: 'variant',\n type: 'enum',\n role: 'enum',\n themeable: false,\n required: false,\n enumValues: ['lines', 'dots'],\n default: \"'lines'\",\n description: 'Ruled lines or a dot lattice.',\n },\n {\n name: 'color',\n type: 'string',\n role: 'color',\n themeable: true,\n required: true,\n description: 'Grid color (hex #rrggbb / #rrggbbaa); defaults to theme border.',\n },\n {\n name: 'speed',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '0.4',\n description: 'Diagonal drift speed in px/frame; negative drifts the other way.',\n },\n {\n name: 'opacity',\n type: 'number',\n role: 'fraction',\n themeable: false,\n required: false,\n default: '0.6',\n description: 'Grid opacity, 0..1 \\u2014 a grid is scaffold, not subject.',\n },\n {\n name: 'glow',\n type: 'boolean',\n role: 'boolean',\n themeable: false,\n required: false,\n default: 'true',\n description: 'Add a centered accent glow over the grid.',\n },\n {\n name: 'glowColor',\n type: 'string',\n role: 'color',\n themeable: true,\n required: true,\n description:\n 'Glow color (hex); the meaningful color on the CPU fallback (first stop); defaults to theme accent.',\n },\n {\n name: 'background',\n type: 'string',\n role: 'color',\n themeable: true,\n required: true,\n description: 'Canvas color painted behind the grid; defaults to theme background.',\n },\n {\n name: 'thickness',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '1',\n description: 'Stroke thickness (lines) / dot radius in px (dots).',\n },\n ],\n schema: dynamicGridSchema,\n },\n {\n slug: 'end-card',\n name: 'EndCard',\n category: 'Text',\n title: 'End Card',\n description:\n 'Closing outro/credits block: a hero CTA reveals with an optional accent underline drawing beneath it, then a faint staggered row of social handles or URLs fades in last.',\n pickWhen:\n 'Use to end a video \\u2014 an outro/sign-off card with a call-to-action headline plus a contact strip of handles or URLs.',\n composes: ['FadeIn'],\n sceneRole: 'block',\n occlusion: 'centered',\n example: {\n cta: 'Made with Onda',\n handles: ['@onda.video', 'onda.video/components'],\n accent: true,\n ctaFontSize: 96,\n handlesFontSize: 24,\n },\n props: [\n {\n name: 'cta',\n type: 'string',\n role: 'text',\n themeable: false,\n required: false,\n default: \"'Made with Onda'\",\n description: 'Hero CTA / headline line.',\n },\n {\n name: 'handles',\n type: 'stringArray',\n role: 'array',\n themeable: false,\n required: false,\n default: \"['@onda.video', 'onda.video/components']\",\n description: 'Social handles or URLs displayed in a row beneath the CTA.',\n },\n {\n name: 'delay',\n type: 'int',\n role: 'delayFrames',\n themeable: false,\n required: false,\n default: '0',\n description:\n \"Frames before the CTA starts; the whole card is sequenced relative to this. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'accent',\n type: 'boolean',\n role: 'boolean',\n themeable: false,\n required: false,\n default: 'true',\n description: 'Show the accent underline beneath the CTA.',\n },\n {\n name: 'ctaFontSize',\n type: 'number',\n role: 'fontSize',\n themeable: false,\n required: false,\n default: '96',\n description: 'CTA font size in px.',\n },\n {\n name: 'ctaFontWeight',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '600',\n description: 'Font weight for the CTA.',\n },\n {\n name: 'handlesFontSize',\n type: 'number',\n role: 'fontSize',\n themeable: false,\n required: false,\n default: '24',\n description: 'Handles row font size in px.',\n },\n {\n name: 'handlesFontWeight',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '600',\n description: 'Font weight for the handles row.',\n },\n {\n name: 'color',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'CTA color (defaults to theme text).',\n },\n {\n name: 'handlesColor',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Handles color, kept quiet (defaults to theme textMuted).',\n },\n {\n name: 'accentColor',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Underline color (defaults to theme accent).',\n },\n {\n name: 'fontFamily',\n type: 'string',\n role: 'fontFamily',\n themeable: true,\n required: false,\n description: 'Loaded display font for both CTA and handles (defaults to theme fontFamily).',\n },\n {\n name: 'placement',\n type: 'unknown',\n role: 'placement',\n themeable: false,\n required: false,\n description:\n \"Where the element sits: a region keyword ('center', 'lower-third', 'upper-third', 'top', 'bottom', 'left', 'right', 'top-left', 'top-right', 'bottom-left', 'bottom-right') or normalized {x,y} (0-1 canvas fractions, element-center anchored). The shared placement contract; default 'center'.\",\n },\n ],\n schema: endCardSchema,\n },\n {\n slug: 'fade-in',\n name: 'FadeIn',\n category: 'Motion',\n title: 'Fade In',\n description:\n 'Pure opacity reveal (no movement) that fades its children in; layout-safe so it composes cleanly inside any layout.',\n pickWhen:\n 'Reach for it to gently reveal any content by opacity alone, with no slide or scale \\u2014 ideal for wrapping layout children where positional motion would break alignment.',\n composes: [],\n sceneRole: 'wrapper',\n occlusion: 'non_occluding',\n example: { delay: 6, durationInFrames: 18 },\n props: [\n {\n name: 'delay',\n type: 'number',\n role: 'delayFrames',\n themeable: false,\n required: false,\n default: '0',\n description:\n \"Frames to wait before starting the fade. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'durationInFrames',\n type: 'number',\n role: 'durationFrames',\n themeable: false,\n required: false,\n default: 'DURATION.base',\n description:\n \"Frames the fade takes to settle (default DURATION.base = 18). Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n ],\n schema: fadeInSchema,\n },\n {\n slug: 'fade-out',\n name: 'FadeOut',\n category: 'Motion',\n title: 'Fade Out',\n description:\n 'Fades its children from opacity 1 to 0 on the house ease \\u2014 the exit counterpart to FadeIn. Layout-safe (animates opacity only).',\n pickWhen:\n 'Wrap any content that should gracefully disappear at the end of a shot; use as the exit half of an enter/hold/exit sequence.',\n composes: [],\n sceneRole: 'wrapper',\n occlusion: 'non_occluding',\n example: { delay: 60, durationInFrames: 10 },\n props: [\n {\n name: 'delay',\n type: 'int',\n role: 'delayFrames',\n themeable: false,\n required: false,\n default: '0',\n description:\n \"Frame at which the exit (fade-out) begins. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'durationInFrames',\n type: 'int',\n role: 'durationFrames',\n themeable: false,\n required: false,\n default: 'DURATION.fast',\n description:\n \"Frames the fade-out takes (default DURATION.fast = 10 \\u2014 exits are quick). Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n ],\n schema: fadeOutSchema,\n },\n {\n slug: 'film-grade',\n name: 'FilmGrade',\n category: 'Effects',\n title: 'Film Grade',\n description:\n 'A one-prop cinematic color look over the engine’s per-node grade effect — wrap a whole composition in a single named film look (warm, cool, noir, teal-orange, vibrant, film, faded) to unify mismatched, especially AI-generated, media into one graded film.',\n pickWhen:\n 'Reach for this to give an entire scene a consistent cinematic grade — most valuable over mixed AI-generated clips whose white balance and saturation clash, so they read as one film. Wrap the composition (or a subtree) in it and pick a `look`; dial `intensity` down for subtlety or set explicit exposure/contrast/saturation/temperature/tint overrides to fine-tune.',\n composes: ['Vignette', 'GrainOverlay'],\n sceneRole: 'overlay',\n occlusion: 'full_frame',\n example: { look: 'teal-orange', intensity: 0.85 },\n props: [\n {\n name: 'look',\n type: 'enum',\n role: 'enum',\n themeable: false,\n required: false,\n enumValues: ['warm', 'cool', 'noir', 'teal-orange', 'vibrant', 'film', 'faded'],\n default: \"'film'\",\n description:\n 'The named cinematic look applied to the whole subtree: warm, cool, noir (b&w), teal-orange (blockbuster split-tone), vibrant, film (subtle default), or faded (matte/washed).',\n },\n {\n name: 'intensity',\n type: 'number',\n role: 'fraction',\n themeable: false,\n required: false,\n default: '1',\n description:\n 'Strength of the look, 0..1. Lerps every grade param from neutral toward the look: 0 = no grade (pass-through), 1 = the full look.',\n },\n {\n name: 'exposure',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n description:\n 'Explicit linear-exposure override (2^exposure; 0 = identity), applied on top of the look.',\n },\n {\n name: 'contrast',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n description: 'Explicit contrast override (1 = identity), applied on top of the look.',\n },\n {\n name: 'saturation',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n description:\n 'Explicit saturation override (1 = identity, 0 = grayscale), applied on top of the look.',\n },\n {\n name: 'temperature',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n description:\n 'Explicit warm/cool override (R up / B down for positive; 0 = neutral), applied on top.',\n },\n {\n name: 'tint',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n description:\n 'Explicit green/magenta override (positive = green; 0 = neutral), applied on top.',\n },\n ],\n schema: filmGradeSchema,\n },\n {\n slug: 'gradient-shift',\n name: 'GradientShift',\n category: 'Backgrounds',\n title: 'Gradient Shift',\n description:\n 'A quiet, drifting two-color linear gradient background whose angle rotates at a constant degrees-per-frame.',\n pickWhen:\n 'Reach for an atmospheric, slowly rotating gradient backdrop behind other content \\u2014 low-saturation, never focal. GPU/Vello-only effect (CPU backend collapses to a flat fill of `from`).',\n composes: [],\n sceneRole: 'background',\n occlusion: 'full_frame',\n example: { from: '#0E0E12', to: '#1C1C22', angle: 135, speed: 0.5, delay: 0 },\n props: [\n {\n name: 'from',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description:\n 'Gradient start color (`#rrggbb` / `#rrggbbaa`); the meaningful first stop. Defaults to theme `background`.',\n },\n {\n name: 'to',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description:\n 'Gradient end color, intentionally near-identical to `from` so the shift is a whisper. Defaults to theme `surface`.',\n },\n {\n name: 'angle',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '135',\n description:\n 'Starting gradient angle in degrees (CSS convention: `0deg` points up, increasing clockwise).',\n },\n {\n name: 'speed',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '0.5',\n description:\n 'Rotation rate in degrees per frame; keep low \\u2014 atmospheric, not focal (0.5 is a 24s full rotation at 30fps).',\n },\n {\n name: 'delay',\n type: 'number',\n role: 'delayFrames',\n themeable: false,\n required: false,\n default: '0',\n description:\n \"Frames before the drift starts; while `frame < delay` the gradient sits at `angle`. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n ],\n schema: gradientShiftSchema,\n },\n {\n slug: 'grain-overlay',\n name: 'GrainOverlay',\n category: 'Effects',\n title: 'Grain Overlay',\n description:\n 'A full-canvas film-grain texture overlay-blended over everything beneath it, adding tactile, cinematic noise.',\n pickWhen:\n 'Reach for it to add filmic texture or analog warmth over a whole scene \\u2014 layer it on top of other content as a finishing pass.',\n composes: [],\n sceneRole: 'overlay',\n occlusion: 'non_occluding',\n example: {\n opacity: 0.05,\n baseFrequency: 0.9,\n numOctaves: 1,\n seed: 0,\n animate: true,\n animateEvery: 2,\n },\n props: [\n {\n name: 'opacity',\n type: 'number',\n role: 'fraction',\n themeable: false,\n required: false,\n default: '0.05',\n description:\n 'Grain strength (peak luminance deviation), capped at 0.15 to match the house 2-15% range.',\n },\n {\n name: 'baseFrequency',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '0.9',\n description:\n 'Grain fineness: higher = finer, tighter speckle; lower = coarser photo-grain.',\n },\n {\n name: 'numOctaves',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '1',\n description:\n 'Grain contrast: widens the deviation so the texture gains punch, clamped to 1..4.',\n },\n {\n name: 'seed',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '0',\n description:\n 'Deterministic variation \\u2014 the same seed always produces the same grain field.',\n },\n {\n name: 'animate',\n type: 'boolean',\n role: 'boolean',\n themeable: false,\n required: false,\n default: 'false',\n description:\n 'When true, the field re-seeds on a frame bucket so the grain shimmers; off by default (static set-dressing).',\n },\n {\n name: 'animateEvery',\n type: 'number',\n role: 'durationFrames',\n themeable: false,\n required: false,\n default: '2',\n description:\n \"Frames per re-seed bucket when animate is on; lower = busier shimmer. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'count',\n type: 'number',\n role: 'count',\n themeable: false,\n required: false,\n description:\n 'Deprecated and ignored \\u2014 grain is now a continuous per-pixel field, not scattered dots; accepted for compat only.',\n },\n {\n name: 'color',\n type: 'string',\n role: 'color',\n themeable: false,\n required: false,\n description:\n 'Deprecated and ignored \\u2014 grain is monochrome luminance noise (overlay-blended); accepted for compat only.',\n },\n {\n name: 'variant',\n type: 'int',\n role: 'integer',\n themeable: false,\n required: false,\n description:\n \"Integer 'take' selector: derives a new deterministic seed from (seed, variant), so alternates never require hand-edited seeds. 0/omitted = the default take.\",\n },\n ],\n schema: grainOverlaySchema,\n },\n {\n slug: 'highlight',\n name: 'Highlight',\n category: 'Text',\n title: 'Highlight',\n description:\n 'Marker-style emphasis: text fades in, then an accent bar wipes in behind it to highlight a phrase.',\n pickWhen:\n 'Use to emphasize a short word or phrase with a sweeping highlighter-pen bar behind the text. Best for single-line callouts and key terms, not full sentences or paragraphs.',\n composes: [],\n sceneRole: 'block',\n occlusion: 'centered',\n example: {\n text: 'highlight this',\n accentColor: '#D96B82',\n fontSize: 72,\n lineDelay: 8,\n paddingX: 10,\n },\n props: [\n {\n name: 'text',\n type: 'string',\n role: 'text',\n themeable: false,\n required: false,\n default: \"'highlight this'\",\n description: 'Text to highlight.',\n },\n {\n name: 'delay',\n type: 'int',\n role: 'delayFrames',\n themeable: false,\n required: false,\n default: '0',\n description:\n \"Frames before the text starts revealing. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'duration',\n type: 'int',\n role: 'durationFrames',\n themeable: false,\n required: false,\n default: 'DURATION.base',\n description:\n \"Text reveal duration in frames (default DURATION.base = 18). Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'lineDelay',\n type: 'int',\n role: 'delayFrames',\n themeable: false,\n required: false,\n default: '8',\n description:\n \"Frames to wait after the text appears before the accent bar wipes in. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'lineDuration',\n type: 'int',\n role: 'durationFrames',\n themeable: false,\n required: false,\n default: 'DURATION.fast',\n description:\n \"Accent-bar wipe duration. Fast on purpose \\u2014 emphatic (default DURATION.fast). Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'color',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Text color (default: theme text).',\n },\n {\n name: 'accentColor',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Accent (highlight) bar color (default: theme accent).',\n },\n {\n name: 'fontSize',\n type: 'number',\n role: 'fontSize',\n themeable: false,\n required: false,\n default: '64',\n description: 'Font size in px (default 64).',\n },\n {\n name: 'fontFamily',\n type: 'string',\n role: 'fontFamily',\n themeable: true,\n required: false,\n description: 'Loaded font family (default: theme fontFamily).',\n },\n {\n name: 'fontWeight',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '600',\n description: 'Font weight (display default 600).',\n },\n {\n name: 'paddingX',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '8',\n description: 'Pixels past the text edges that the accent bar extends (default 8).',\n },\n {\n name: 'width',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n description: 'Explicit text width in px. Overrides the glyph-count estimate when known.',\n },\n {\n name: 'x',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '0',\n description: \"Local-space placement of the component's top-left.\",\n },\n {\n name: 'y',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '0',\n description: \"Local-space placement of the component's top-left.\",\n },\n ],\n schema: highlightSchema,\n },\n {\n slug: 'icon-pop',\n name: 'IconPop',\n category: 'Motion',\n title: 'Icon Pop',\n description:\n 'An icon \\u2014 a glyph/emoji or a built-in shape (check/cross/dot/star) \\u2014 popping into place with an overshoot spring that scales from 0, peaks past 1, then settles.',\n pickWhen:\n 'Reach for this to punctuate a moment with a single icon that springs in \\u2014 a checkmark on success, a star/sparkle accent, an emoji reaction \\u2014 anywhere you want a small, lively pop rather than a static badge.',\n composes: [],\n sceneRole: 'annotation',\n occlusion: 'centered',\n example: { glyph: '\\ud83c\\udf89', iconSize: 120, overshoot: 0.22, delay: 6, x: 960, y: 540 },\n props: [\n {\n name: 'glyph',\n type: 'string',\n role: 'text',\n themeable: false,\n required: false,\n description:\n 'A character/emoji to pop in (e.g. \"\\u2726\", \"\\u2605\", \"\\ud83c\\udf89\"); takes precedence over `shape` when set, rendered as text so it works on both backends.',\n },\n {\n name: 'shape',\n type: 'enum',\n role: 'enum',\n themeable: false,\n required: false,\n enumValues: ['check', 'cross', 'dot', 'star'],\n default: \"'check'\",\n description:\n 'One of the four built-in shapes, used when `glyph` is not set; drawn as a Path (GPU/Vello only).',\n },\n {\n name: 'iconSize',\n type: 'number',\n role: 'fontSize',\n themeable: false,\n required: false,\n default: '96',\n description: 'Icon size in px (the icon is square-ish, centered on its placement point).',\n },\n {\n name: 'color',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Icon color; defaults to the theme `accent` when omitted.',\n },\n {\n name: 'strokeWidth',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '3',\n description:\n 'Stroke width for the outline shapes (check, cross); ignored by glyph and by the filled shapes (dot, star).',\n },\n {\n name: 'delay',\n type: 'number',\n role: 'delayFrames',\n themeable: false,\n required: false,\n default: '0',\n description:\n \"Frames before the pop starts. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'durationInFrames',\n type: 'number',\n role: 'durationFrames',\n themeable: false,\n required: false,\n default: 'DURATION.base',\n description:\n \"Frames the pop takes to settle (defaults to DURATION.base = 18). Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'overshoot',\n type: 'number',\n role: 'fraction',\n themeable: false,\n required: false,\n default: '0.18',\n description:\n 'Overshoot amount \\u2014 how far past 1.0 the scale peaks before settling, as a fraction (0.18 \\u2248 an 18% bump); 0 disables the overshoot.',\n },\n {\n name: 'x',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '0',\n description: \"Canvas x of the icon's CENTER (the pop grows from here).\",\n },\n {\n name: 'y',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '0',\n description: \"Canvas y of the icon's CENTER.\",\n },\n ],\n schema: iconPopSchema,\n },\n {\n slug: 'image-reveal',\n name: 'ImageReveal',\n category: 'Media',\n title: 'Image Reveal',\n description:\n 'An image that enters with a signature motion fingerprint \\u2014 blur focus-pull, fade, center-pivot scale, or left-to-right wipe \\u2014 or held still with motion:\"none\".',\n pickWhen:\n 'Use to bring a photo or image onscreen with a polished entrance \\u2014 hero photos, product shots, or any image that should reveal rather than pop in. For a logo or precise still that should NOT drift or reveal, pass motion:\"none\" (a held image with this component\\'s box/fit/rounded-corner ergonomics). Default fills the whole composition; pass width/height/x/y to place a sized image.',\n composes: [],\n sceneRole: 'media',\n occlusion: 'full_frame',\n example: {\n src: 'https://picsum.photos/seed/onda-image-reveal/1920/1080',\n motion: 'blur',\n blurAmount: 24,\n fit: 'cover',\n durationInFrames: 18,\n },\n props: [\n {\n name: 'src',\n type: 'string',\n role: 'url',\n themeable: false,\n required: true,\n description: 'Image URL or path (resolved at render time).',\n },\n {\n name: 'motion',\n type: 'enum',\n role: 'enum',\n themeable: false,\n required: false,\n enumValues: ['blur', 'fade', 'scale', 'wipe', 'none'],\n default: \"'blur'\",\n description:\n \"Which motion fingerprint the entrance uses: 'blur' soft-to-sharp focus pull, 'fade' opacity, 'scale' center-pivot grow, 'wipe' left-to-right reveal, or 'none' to place the image with no entrance (held still — for logos and precise product stills).\",\n },\n {\n name: 'blurAmount',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '24',\n description:\n \"Peak blur for the 'blur' motion \\u2014 the starting gaussian sigma (source px) before resolving to sharp; ignored by other motions.\",\n },\n {\n name: 'fit',\n type: 'enum',\n role: 'enum',\n themeable: false,\n required: false,\n enumValues: ['cover', 'contain'],\n default: \"'cover'\",\n description: \"How the image fits its box: 'cover' crops to fill, 'contain' letterboxes.\",\n },\n {\n name: 'durationInFrames',\n type: 'int',\n role: 'durationFrames',\n themeable: false,\n required: false,\n default: 'DURATION.base',\n description:\n \"Frames to fully reveal the image (default DURATION.base = 18). Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'delay',\n type: 'int',\n role: 'delayFrames',\n themeable: false,\n required: false,\n default: '0',\n description:\n \"Frames before the reveal starts. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'x',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '0',\n description: 'Box top-left X in px (default 0).',\n },\n {\n name: 'y',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '0',\n description: 'Box top-left Y in px (default 0).',\n },\n {\n name: 'width',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n description: 'Box width in px; defaults to the full composition width (fill mode).',\n },\n {\n name: 'height',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n description: 'Box height in px; defaults to the full composition height (fill mode).',\n },\n {\n name: 'cornerRadius',\n type: 'number',\n role: 'number',\n themeable: true,\n required: false,\n default: 'theme.radius',\n description:\n 'Corner radius of the box, clipping the image to a rounded rect (defaults to theme radius).',\n },\n ],\n schema: imageRevealSchema,\n },\n {\n slug: 'input-field',\n name: 'InputField',\n category: 'UI',\n title: 'Input Field',\n description:\n 'A glass UI text-input mockup with an optional uppercase label that self-types its value behind a blinking accent caret and an accent focus ring.',\n pickWhen:\n 'Use to mock a form/text input in a product demo or sign-up flow \\u2014 especially to show a value typing itself in (e.g. an email) with a blinking caret and focus glow.',\n composes: [],\n sceneRole: 'ui-mock',\n occlusion: 'centered',\n example: {\n value: 'hello@onda.video',\n placeholder: 'Enter your email',\n label: 'Email',\n typed: true,\n delay: 12,\n typeDuration: 36,\n focusRing: true,\n width: 640,\n fontSize: 36,\n x: 0.5,\n y: 0.5,\n },\n props: [\n {\n name: 'value',\n type: 'string',\n role: 'text',\n themeable: false,\n required: false,\n default: \"'hello@onda.video'\",\n description: \"The field's value; with `typed` on, this is what types itself in.\",\n },\n {\n name: 'placeholder',\n type: 'string',\n role: 'text',\n themeable: false,\n required: false,\n default: \"'Enter your email'\",\n description: 'Placeholder shown while the field is empty, before any glyph is revealed.',\n },\n {\n name: 'label',\n type: 'string',\n role: 'text',\n themeable: false,\n required: false,\n default: \"'Email'\",\n description: 'Label above the field; an empty string hides it.',\n },\n {\n name: 'typed',\n type: 'boolean',\n role: 'boolean',\n themeable: false,\n required: false,\n default: 'true',\n description: 'Animate `value` typing itself in character-by-character via useTextReveal.',\n },\n {\n name: 'delay',\n type: 'int',\n role: 'delayFrames',\n themeable: false,\n required: false,\n default: '0',\n description:\n \"Frames before typing starts. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'typeDuration',\n type: 'int',\n role: 'durationFrames',\n themeable: false,\n required: false,\n default: '36',\n description:\n \"Frames to type the whole value, linear pacing. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'focusRing',\n type: 'boolean',\n role: 'boolean',\n themeable: false,\n required: false,\n default: 'true',\n description: 'Show the accent focus ring around the field once typing begins.',\n },\n {\n name: 'width',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '640',\n description: 'Field width in px, sized for a 1080p+ video canvas, not a screen UI.',\n },\n {\n name: 'fontSize',\n type: 'number',\n role: 'fontSize',\n themeable: false,\n required: false,\n default: '36',\n description: 'Text size in px.',\n },\n {\n name: 'fontFamily',\n type: 'string',\n role: 'fontFamily',\n themeable: true,\n required: false,\n description: 'UI font family; defaults to the theme `fontFamily`.',\n },\n {\n name: 'textColor',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Value text color; defaults to the theme `text`.',\n },\n {\n name: 'placeholderColor',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Placeholder text color; defaults to the theme `textMuted`.',\n },\n {\n name: 'labelColor',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Label text color; defaults to the theme `textMuted`.',\n },\n {\n name: 'accentColor',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description:\n 'Caret and focus-ring color, the one earned accent; defaults to the theme `accent`.',\n },\n {\n name: 'borderColor',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Resting (unfocused) field border color; defaults to the theme `border`.',\n },\n {\n name: 'fieldColor',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Field background fill, the glass surface; defaults to the theme `surface`.',\n },\n {\n name: 'x',\n type: 'number',\n role: 'fraction',\n themeable: false,\n required: false,\n default: '0.5',\n description: 'Horizontal center of the field as a 0\\u20131 fraction of canvas width.',\n },\n {\n name: 'y',\n type: 'number',\n role: 'fraction',\n themeable: false,\n required: false,\n default: '0.5',\n description: 'Vertical center of the field as a 0\\u20131 fraction of canvas height.',\n },\n {\n name: 'placement',\n type: 'unknown',\n role: 'placement',\n themeable: false,\n required: false,\n description:\n \"Where the element sits: a region keyword ('center', 'lower-third', 'upper-third', 'top', 'bottom', 'left', 'right', 'top-left', 'top-right', 'bottom-left', 'bottom-right') or normalized {x,y} (0-1 canvas fractions, element-center anchored). The shared placement contract; default 'center'. Supersedes the deprecated fractional x/y props.\",\n },\n ],\n schema: inputFieldSchema,\n },\n {\n slug: 'kanban-board',\n name: 'KanbanBoard',\n category: 'Data',\n title: 'Kanban Board',\n description:\n 'A row of glass columns \\u2014 each with a status dot, title, and ticket count \\u2014 over a vertical stack of small ticket cards that rise and fade in on a staggered cascade.',\n pickWhen:\n 'Use to visualize a project board, workflow status, or task pipeline as labeled columns of ticket cards assembling in one calm left-to-right, top-to-bottom cascade.',\n composes: [],\n sceneRole: 'block',\n occlusion: 'centered',\n example: {\n columns: [\n { title: 'Backlog', cards: ['Research competitors', 'Draft brief', 'Collect references'] },\n { title: 'In Progress', accent: '#d96b82', cards: ['Build the hero', 'Wire the API'] },\n { title: 'Shipped', cards: ['Landing page', 'Onboarding flow', 'Pricing tiers'] },\n ],\n width: 1040,\n gap: 20,\n stagger: 4,\n fontSize: 22,\n },\n props: [\n {\n name: 'columns',\n type: 'object',\n role: 'array',\n themeable: false,\n required: false,\n default:\n \"[{ title: 'Todo', cards: ['Storyboard the intro', 'Source b-roll', 'Write VO script'] }, { title: 'In Progress', accent: '#d96b82', cards: ['Animate the title card', 'Color-grade scene 2'] }, { title: 'Done', cards: ['Lock the edit', 'Render preview', 'Sound pass', 'Export master'] }]\",\n description:\n 'The columns, laid out left-to-right; each is { title, accent?, cards? } and holds its own ticket cards.',\n },\n {\n name: 'width',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '1040',\n description: 'Overall board width in px, split evenly across the columns.',\n },\n {\n name: 'gap',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '20',\n description: 'Gap between columns (and between cards within a column) in px.',\n },\n {\n name: 'delay',\n type: 'int',\n role: 'delayFrames',\n themeable: false,\n required: false,\n default: '0',\n description:\n \"Frames before the first card enters. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'stagger',\n type: 'int',\n role: 'delayFrames',\n themeable: false,\n required: false,\n default: 'STAGGER',\n description:\n \"Frames between successive cards rising in (house stagger = 4). Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'fontSize',\n type: 'number',\n role: 'fontSize',\n themeable: false,\n required: false,\n default: '22',\n description: 'Base column-header font size in px (ticket labels derive from it).',\n },\n {\n name: 'fontFamily',\n type: 'string',\n role: 'fontFamily',\n themeable: true,\n required: false,\n description:\n 'Loaded font family for headers and ticket labels (defaults to theme fontFamily).',\n },\n {\n name: 'accent',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description:\n 'Default accent for the dot/count when a column omits its own (defaults to theme accent).',\n },\n {\n name: 'textColor',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Header / title text color (defaults to theme text).',\n },\n {\n name: 'cardTextColor',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Ticket-label text color (defaults to theme textMuted).',\n },\n {\n name: 'faintColor',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description:\n 'Faint color for neutral dots, counts, and card accent stripes (defaults to theme textMuted).',\n },\n {\n name: 'columnFill',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Glass column fill, translucent (defaults to theme surface).',\n },\n {\n name: 'columnStroke',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Glass column border color (defaults to theme border).',\n },\n {\n name: 'cardFill',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Ticket card fill, translucent (defaults to theme surface).',\n },\n ],\n schema: kanbanBoardSchema,\n },\n {\n slug: 'ken-burns',\n name: 'KenBurns',\n category: 'Media',\n title: 'Ken Burns',\n description:\n 'A slow cinematic zoom and pan over a still photo \\u2014 the iconic documentary motion that fills the whole frame.',\n pickWhen:\n 'Use to add steady, multi-second cinematic life to a still image (photo backgrounds, documentary-style intros, slideshow shots).',\n composes: [],\n sceneRole: 'background',\n occlusion: 'full_frame',\n example: {\n src: 'https://picsum.photos/seed/onda/1920/1080',\n duration: 150,\n fromScale: 1.0,\n toScale: 1.15,\n fromX: 0.4,\n fromY: 0.45,\n toX: 0.6,\n toY: 0.55,\n },\n props: [\n {\n name: 'src',\n type: 'string',\n role: 'url',\n themeable: false,\n required: true,\n description: 'Image source, resolved at render time by `onda render`.',\n },\n {\n name: 'delay',\n type: 'int',\n role: 'delayFrames',\n themeable: false,\n required: false,\n default: '0',\n description:\n \"Frames before the drift starts. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'duration',\n type: 'int',\n role: 'durationFrames',\n themeable: false,\n required: false,\n default: '150',\n description:\n \"Frames over which the zoom and pan completes (150f \\u2248 5s @ 30fps). Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'fromScale',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '1.0',\n description: 'Starting scale atop the cover fit.',\n },\n {\n name: 'toScale',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '1.1',\n description: 'Ending scale \\u2014 keep the delta restrained (1.0 \\u2192 1.1).',\n },\n {\n name: 'fromX',\n type: 'number',\n role: 'fraction',\n themeable: false,\n required: false,\n default: '0.5',\n description: 'Starting pan origin X (0 = left, 1 = right).',\n },\n {\n name: 'fromY',\n type: 'number',\n role: 'fraction',\n themeable: false,\n required: false,\n default: '0.5',\n description: 'Starting pan origin Y (0 = top, 1 = bottom).',\n },\n {\n name: 'toX',\n type: 'number',\n role: 'fraction',\n themeable: false,\n required: false,\n default: '0.5',\n description: 'Ending pan origin X.',\n },\n {\n name: 'toY',\n type: 'number',\n role: 'fraction',\n themeable: false,\n required: false,\n default: '0.5',\n description: 'Ending pan origin Y.',\n },\n ],\n schema: kenBurnsSchema,\n },\n {\n slug: 'kinetic-text',\n name: 'KineticText',\n category: 'Text',\n title: 'Kinetic Text',\n description:\n 'An opinionated per-glyph kinetic-type entrance: each glyph of a single line is placed absolutely by its real shaped advance and animates in on the house stagger with a chosen preset (rise, fade, scale, blur focus-pull, or a traveling wave).',\n pickWhen:\n 'Use for a hero headline or single line of copy that should choreograph in letter-by-letter (the kinetic-type signature move) rather than as a block; reach for the blur preset for a per-glyph soft→sharp focus-pull, or wave for a rippling entrance.',\n composes: [],\n sceneRole: 'block',\n occlusion: 'centered',\n example: {\n text: 'kinetic',\n fontSize: 140,\n preset: 'rise',\n align: 'center',\n stagger: 5,\n durationInFrames: 22,\n },\n props: [\n {\n name: 'text',\n type: 'string',\n role: 'text',\n themeable: false,\n required: false,\n default: \"'kinetic'\",\n description: 'The line to choreograph; laid out as one row of absolutely-placed glyphs.',\n },\n {\n name: 'fontSize',\n type: 'number',\n role: 'fontSize',\n themeable: false,\n required: false,\n default: '96',\n description: 'Font size in px.',\n },\n {\n name: 'preset',\n type: 'enum',\n role: 'enum',\n themeable: false,\n required: false,\n enumValues: ['rise', 'fade', 'scale', 'blur', 'wave'],\n default: \"'rise'\",\n description:\n 'Per-glyph entrance flavor: rise (translateY + fade), fade (opacity only), scale (grow from center + fade), blur (real soft→sharp focus-pull + fade), wave (rippling sine offset + fade).',\n },\n {\n name: 'stagger',\n type: 'int',\n role: 'delayFrames',\n themeable: false,\n required: false,\n default: 'STAGGER',\n description:\n \"Frames between consecutive glyphs entering (canonical STAGGER = 5). Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'durationInFrames',\n type: 'int',\n role: 'durationFrames',\n themeable: false,\n required: false,\n default: 'DURATION.base',\n description: \"Frames each glyph's entrance takes to settle (DURATION.base = 22).\",\n },\n {\n name: 'delay',\n type: 'int',\n role: 'delayFrames',\n themeable: false,\n required: false,\n default: '0',\n description:\n \"Frames before the first glyph starts. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'align',\n type: 'enum',\n role: 'enum',\n themeable: false,\n required: false,\n enumValues: ['left', 'center', 'right'],\n default: \"'center'\",\n description: 'Horizontal alignment of the line about its anchor.',\n },\n {\n name: 'color',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Text color; defaults to theme text color.',\n },\n {\n name: 'fontFamily',\n type: 'string',\n role: 'fontFamily',\n themeable: true,\n required: false,\n description: 'Loaded font family; defaults to theme font family.',\n },\n {\n name: 'fontWeight',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '600',\n description: 'Font weight (display default).',\n },\n {\n name: 'placement',\n type: 'unknown',\n role: 'placement',\n themeable: false,\n required: false,\n description:\n \"Where the element sits: a region keyword ('center', 'lower-third', 'upper-third', 'top', 'bottom', 'left', 'right', 'top-left', 'top-right', 'bottom-left', 'bottom-right') or normalized {x,y} (0-1 canvas fractions, element-center anchored). The shared placement contract; default 'center'.\",\n },\n {\n name: 'fit',\n type: 'enum',\n role: 'enum',\n themeable: false,\n required: false,\n enumValues: ['none', 'frame'],\n description:\n \"Opt-in auto-fit: 'frame' scales the font size DOWN (never up) so the line cannot exceed the frame minus the safe margins. Default 'none'.\",\n },\n {\n name: 'maxWidth',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n description:\n 'Explicit width cap in px for the line; combines with fit (the smaller cap wins).',\n },\n {\n name: 'fitToClip',\n type: 'boolean',\n role: 'boolean',\n themeable: false,\n required: false,\n description:\n 'Compress the whole timing envelope (delay, stagger, durations) so the entrance settles at least hold before the end of the enclosing clip. Opt-in.',\n },\n {\n name: 'maxSettle',\n type: 'unknown',\n role: 'durationFrames',\n themeable: false,\n required: false,\n description: \"Hard cap on the settle time (frames or '0.5s'). Wins over fitToClip.\",\n },\n {\n name: 'hold',\n type: 'unknown',\n role: 'durationFrames',\n themeable: false,\n required: false,\n description: 'Breathing room before the cut for fitToClip (default 6 frames).',\n },\n ],\n schema: kineticTextSchema,\n },\n {\n slug: 'line-chart',\n name: 'LineChart',\n category: 'Data',\n title: 'Line Chart',\n description:\n 'A polyline that draws on left-to-right with an optional soft gradient area fill and per-point dots that pop as the line reaches them.',\n pickWhen:\n 'Use to show a trend or time series \\u2014 a single metric rising/falling across ordered points \\u2014 with a draw-on reveal.',\n composes: [],\n sceneRole: 'data-viz',\n occlusion: 'centered',\n example: {\n data: [12, 18, 15, 24, 22, 31, 28, 38],\n color: '#D96B82',\n strokeWidth: 4,\n width: 900,\n height: 440,\n fill: true,\n showDots: true,\n duration: 40,\n },\n props: [\n {\n name: 'data',\n type: 'numberArray',\n role: 'array',\n themeable: false,\n required: false,\n default: '[12, 18, 15, 24, 22, 31, 28, 38]',\n description: 'The series values, left to right.',\n },\n {\n name: 'delay',\n type: 'int',\n role: 'delayFrames',\n themeable: false,\n required: false,\n default: '0',\n description:\n \"Frames before the line starts drawing. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'duration',\n type: 'int',\n role: 'durationFrames',\n themeable: false,\n required: false,\n default: '40',\n description:\n \"Frames for the line to fully draw on. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'color',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Line + dot color \\u2014 the earned accent (defaults to theme accent).',\n },\n {\n name: 'strokeWidth',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '4',\n description: 'Stroke width in px.',\n },\n {\n name: 'width',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '900',\n description: 'Chart width in px.',\n },\n {\n name: 'height',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '440',\n description: 'Chart height in px.',\n },\n {\n name: 'fill',\n type: 'boolean',\n role: 'boolean',\n themeable: false,\n required: false,\n default: 'true',\n description: 'Fill a soft gradient area under the line.',\n },\n {\n name: 'showDots',\n type: 'boolean',\n role: 'boolean',\n themeable: false,\n required: false,\n default: 'true',\n description: 'Show a dot at each data point as the line reaches it.',\n },\n ],\n schema: lineChartSchema,\n },\n {\n slug: 'logo-sting',\n name: 'LogoSting',\n category: 'Motion',\n title: 'Logo Sting',\n description:\n 'A restrained branded reveal: a logo mark strokes on left-to-right, a title settles beneath it, and a single accent rule lands last.',\n pickWhen:\n 'Use for an intro/outro brand bumper or logo reveal where a wordmark plus an SVG mark animate in cleanly with one earned accent moment.',\n composes: ['ScaleIn', 'Underline'],\n sceneRole: 'block',\n occlusion: 'centered',\n example: {\n d: 'M 50 60 Q 100 20 150 60 T 250 60',\n title: 'Onda',\n accent: true,\n viewBox: '0 0 300 120',\n pathWidth: 400,\n pathHeight: 160,\n strokeWidth: 3,\n titleFontSize: 96,\n fontWeight: 600,\n },\n props: [\n {\n name: 'd',\n type: 'string',\n role: 'other',\n themeable: false,\n required: false,\n default: \"'M 50 60 Q 100 20 150 60 T 250 60'\",\n description: 'SVG path `d` for the logo mark, in viewBox coordinate space.',\n },\n {\n name: 'title',\n type: 'string',\n role: 'text',\n themeable: false,\n required: false,\n default: \"'Onda'\",\n description: 'The brand / product title beneath the mark.',\n },\n {\n name: 'delay',\n type: 'number',\n role: 'delayFrames',\n themeable: false,\n required: false,\n default: '0',\n description:\n \"Frames before the sting starts. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'accent',\n type: 'boolean',\n role: 'boolean',\n themeable: false,\n required: false,\n default: 'true',\n description: 'Draw the accent rule beneath the title (the single earned-color moment).',\n },\n {\n name: 'viewBox',\n type: 'string',\n role: 'other',\n themeable: false,\n required: false,\n default: \"'0 0 300 120'\",\n description: 'SVG viewBox \"minX minY width height\" \\u2014 must match the space of `d`.',\n },\n {\n name: 'pathWidth',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '400',\n description: 'Rendered width of the mark in px.',\n },\n {\n name: 'pathHeight',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '160',\n description: 'Rendered height of the mark in px.',\n },\n {\n name: 'strokeWidth',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '3',\n description: 'Stroke width in px (after the viewBox-to-pixel scale).',\n },\n {\n name: 'stroke',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Logo stroke color (defaults to theme `text`).',\n },\n {\n name: 'accentColor',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description:\n 'Underline accent color \\u2014 the signature dusty rose (defaults to theme `accent`).',\n },\n {\n name: 'titleFontSize',\n type: 'number',\n role: 'fontSize',\n themeable: false,\n required: false,\n default: '96',\n description: 'Title font size in px.',\n },\n {\n name: 'color',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Title color (defaults to theme `text`).',\n },\n {\n name: 'fontFamily',\n type: 'string',\n role: 'fontFamily',\n themeable: true,\n required: false,\n description:\n 'Display font family, must be loaded at render time (defaults to theme `headingFamily`).',\n },\n {\n name: 'fontWeight',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '600',\n description: 'Title font weight (display default 600).',\n },\n ],\n schema: logoStingSchema,\n },\n {\n slug: 'lower-third',\n name: 'LowerThird',\n category: 'UI',\n title: 'Lower Third',\n description:\n 'Broadcast-style name + role bar that slides and fades into a canvas corner, finished by a single earned accent rule.',\n pickWhen:\n 'Use to identify a speaker or label a subject \\u2014 a name with a secondary role line anchored in a corner, like a TV broadcast caption.',\n composes: [],\n sceneRole: 'lower-third',\n occlusion: 'non_occluding',\n example: {\n name: 'Rodrigo Silva',\n role: 'Founder, Onda',\n placement: 'bottom-left',\n accent: true,\n fontSize: 56,\n roleFontSize: 24,\n },\n props: [\n {\n name: 'name',\n type: 'string',\n role: 'text',\n themeable: false,\n required: false,\n default: \"'Rodrigo'\",\n description: \"The person's name (the primary line).\",\n },\n {\n name: 'role',\n type: 'string',\n role: 'text',\n themeable: false,\n required: false,\n default: \"'CEO, Onda'\",\n description: \"The person's role / title (the secondary line).\",\n },\n {\n name: 'placement',\n type: 'enum',\n role: 'enum',\n themeable: false,\n required: false,\n enumValues: ['bottom-left', 'bottom-right', 'top-left', 'top-right'],\n default: \"'bottom-left'\",\n description:\n 'Which canvas corner the bar sits in; drives the slide-in direction and flush alignment.',\n },\n {\n name: 'delay',\n type: 'int',\n role: 'delayFrames',\n themeable: false,\n required: false,\n default: '0',\n description:\n \"Frames before the name slides in. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'accent',\n type: 'boolean',\n role: 'boolean',\n themeable: false,\n required: false,\n default: 'true',\n description: 'Show the accent rule beneath the name.',\n },\n {\n name: 'color',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Name color (defaults to theme text).',\n },\n {\n name: 'roleColor',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Role color (defaults to theme textMuted).',\n },\n {\n name: 'accentColor',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Accent rule color (defaults to theme accent).',\n },\n {\n name: 'fontSize',\n type: 'number',\n role: 'fontSize',\n themeable: false,\n required: false,\n default: '48',\n description: 'Name font size in px.',\n },\n {\n name: 'nameFontWeight',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '600',\n description: 'Name font weight.',\n },\n {\n name: 'roleFontSize',\n type: 'number',\n role: 'fontSize',\n themeable: false,\n required: false,\n default: '22',\n description: 'Role font size in px.',\n },\n {\n name: 'roleFontWeight',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '500',\n description: 'Role font weight.',\n },\n {\n name: 'fontFamily',\n type: 'string',\n role: 'fontFamily',\n themeable: true,\n required: false,\n description: 'Loaded font family for both lines (defaults to theme fontFamily).',\n },\n {\n name: 'cornerRadius',\n type: 'number',\n role: 'number',\n themeable: true,\n required: false,\n description:\n 'Accent rule corner radius in px, capped so a thin sliver never bulges (defaults to theme radius).',\n },\n ],\n schema: lowerThirdSchema,\n },\n {\n slug: 'marquee',\n name: 'Marquee',\n category: 'Motion',\n title: 'Marquee',\n description:\n 'A seamless looping horizontal scroll for logo strips, ticker tape, or \"as featured in\" rows.',\n pickWhen:\n 'Use for a continuously scrolling horizontal strip of short text items (logos, tickers, featured-in rows) that loops without a visible seam.',\n composes: [],\n sceneRole: 'block',\n occlusion: 'centered',\n example: {\n items: ['REACT', 'TYPESCRIPT', 'GPU-NATIVE', 'RUST', 'VELLO'],\n speed: 40,\n direction: 'left',\n gap: 80,\n fontSize: 36,\n fontWeight: 600,\n height: 120,\n },\n props: [\n {\n name: 'items',\n type: 'stringArray',\n role: 'array',\n themeable: false,\n required: false,\n default: \"['ONDA', 'TYPESCRIPT', 'REACT']\",\n description: 'Items to scroll; the list is repeated as needed for a seamless wrap.',\n },\n {\n name: 'speed',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '30',\n description: 'Scroll speed in pixels per second; keep low for restraint.',\n },\n {\n name: 'direction',\n type: 'enum',\n role: 'enum',\n themeable: false,\n required: false,\n enumValues: ['left', 'right'],\n default: \"'left'\",\n description: 'Scroll direction.',\n },\n {\n name: 'gap',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '64',\n description: 'Pixels between items.',\n },\n {\n name: 'color',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Text color; defaults to the theme textMuted token.',\n },\n {\n name: 'fontSize',\n type: 'number',\n role: 'fontSize',\n themeable: false,\n required: false,\n default: '32',\n description: 'Font size in pixels.',\n },\n {\n name: 'fontFamily',\n type: 'string',\n role: 'fontFamily',\n themeable: true,\n required: false,\n description: 'Loaded font family; defaults to the theme fontFamily token.',\n },\n {\n name: 'fontWeight',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '500',\n description: 'CSS font weight, 1 to 1000.',\n },\n {\n name: 'width',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n description: 'Viewport width to scroll within; defaults to the full composition width.',\n },\n {\n name: 'height',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n description: 'Viewport height (the clip band); defaults to the full composition height.',\n },\n ],\n schema: marqueeSchema,\n },\n {\n slug: 'mask-reveal',\n name: 'MaskReveal',\n category: 'Text',\n title: 'Mask Reveal',\n description:\n 'Reveals a single line of text with a hard-edge clip mask that retreats from one side \\u2014 pixel-sharp wipe, no opacity fade.',\n pickWhen:\n 'Use for a crisp, directional text reveal where the moving clip edge is the effect \\u2014 punchy headlines, kickers, or logo wordmarks that wipe in from a side. Reach for BlurReveal or TypeOn instead when you want a soft fade or per-character typing.',\n composes: [],\n sceneRole: 'block',\n occlusion: 'centered',\n example: {\n text: 'Ship faster',\n direction: 'left',\n fontSize: 120,\n fontWeight: 600,\n duration: 24,\n },\n props: [\n {\n name: 'text',\n type: 'string',\n role: 'text',\n themeable: false,\n required: false,\n default: \"'Onda'\",\n description: 'The single line of text to reveal.',\n },\n {\n name: 'delay',\n type: 'int',\n role: 'delayFrames',\n themeable: false,\n required: false,\n default: '0',\n description:\n \"Frames before the reveal starts. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'duration',\n type: 'int',\n role: 'durationFrames',\n themeable: false,\n required: false,\n default: 'DURATION.base',\n description:\n \"Frames for the mask to fully retreat. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'direction',\n type: 'enum',\n role: 'enum',\n themeable: false,\n required: false,\n enumValues: ['left', 'right', 'top', 'bottom'],\n default: \"'left'\",\n description:\n 'The side the content appears to come in from; the mask retreats toward this side.',\n },\n {\n name: 'color',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Text color as a hex string; defaults to the theme text color.',\n },\n {\n name: 'fontSize',\n type: 'number',\n role: 'fontSize',\n themeable: false,\n required: false,\n default: '96',\n description: 'Text size in px.',\n },\n {\n name: 'fontFamily',\n type: 'string',\n role: 'fontFamily',\n themeable: true,\n required: false,\n description: 'Loaded font family; defaults to the theme heading or base font family.',\n },\n {\n name: 'fontWeight',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '600',\n description: 'Font weight (display default 600).',\n },\n {\n name: 'italic',\n type: 'boolean',\n role: 'boolean',\n themeable: false,\n required: false,\n default: 'false',\n description: 'Render the text in italic.',\n },\n {\n name: 'width',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n description: 'Clip-box width in px; otherwise estimated from the measured text.',\n },\n {\n name: 'height',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n description: 'Clip-box height in px; otherwise fontSize times 1.2.',\n },\n {\n name: 'placement',\n type: 'unknown',\n role: 'placement',\n themeable: false,\n required: false,\n description:\n \"Where the element sits: a region keyword ('center', 'lower-third', 'upper-third', 'top', 'bottom', 'left', 'right', 'top-left', 'top-right', 'bottom-left', 'bottom-right') or normalized {x,y} (0-1 canvas fractions, element-center anchored). The shared placement contract; default 'center'.\",\n },\n {\n name: 'fit',\n type: 'enum',\n role: 'enum',\n themeable: false,\n required: false,\n enumValues: ['none', 'frame'],\n description:\n \"Opt-in auto-fit: 'frame' scales the font size DOWN (never up) so the line cannot exceed the frame minus the safe margins. Default 'none'.\",\n },\n {\n name: 'maxWidth',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n description:\n 'Explicit width cap in px for the line; combines with fit (the smaller cap wins).',\n },\n ],\n schema: maskRevealSchema,\n },\n {\n slug: 'matrix-decode',\n name: 'MatrixDecode',\n category: 'Text',\n title: 'Matrix Decode',\n description:\n 'Text whose glyphs flicker through random characters then settle left-to-right in a deterministic \"decode\" reveal.',\n pickWhen:\n 'Use for a hacker/terminal-style headline reveal where characters scramble through random glyphs before locking into the final word.',\n composes: [],\n sceneRole: 'block',\n occlusion: 'centered',\n example: {\n text: 'ACCESS GRANTED',\n fontSize: 96,\n charDelay: 3,\n scrambleDuration: 18,\n scrambleSpeed: 2,\n align: 'center',\n },\n props: [\n {\n name: 'text',\n type: 'string',\n role: 'text',\n themeable: false,\n required: false,\n default: \"'ONDA'\",\n description: 'The text that decodes into place.',\n },\n {\n name: 'delay',\n type: 'int',\n role: 'delayFrames',\n themeable: false,\n required: false,\n default: '0',\n description:\n \"Frames before decoding starts. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'charDelay',\n type: 'int',\n role: 'durationFrames',\n themeable: false,\n required: false,\n default: '3',\n description:\n \"Frames between successive characters settling (left-to-right). Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'scrambleDuration',\n type: 'int',\n role: 'durationFrames',\n themeable: false,\n required: false,\n default: '18',\n description:\n \"Frames each character scrambles before it settles (min 1). Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'scrambleSpeed',\n type: 'int',\n role: 'durationFrames',\n themeable: false,\n required: false,\n default: '2',\n description:\n \"Frames between glyph swaps while scrambling. Lower = faster flicker (min 1). Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'seed',\n type: 'int',\n role: 'integer',\n themeable: false,\n required: false,\n default: '7',\n description: 'Seed for the deterministic glyph picks.',\n },\n {\n name: 'charset',\n type: 'string',\n role: 'text',\n themeable: false,\n required: false,\n default: \"'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789#$%&*+=<>/'\",\n description: 'Glyph pool drawn from while scrambling.',\n },\n {\n name: 'color',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Settled text color (default: theme text).',\n },\n {\n name: 'scrambleColor',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description:\n 'Color of still-scrambling glyphs \\u2014 the earned accent (default: theme accent).',\n },\n {\n name: 'fontSize',\n type: 'number',\n role: 'fontSize',\n themeable: false,\n required: false,\n default: '120',\n description: 'Font size in px.',\n },\n {\n name: 'fontFamily',\n type: 'string',\n role: 'fontFamily',\n themeable: true,\n required: false,\n description:\n 'Monospace stack keeps the advance steady as glyphs flicker (default: theme monoFamily).',\n },\n {\n name: 'fontWeight',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '600',\n description: 'Font weight.',\n },\n {\n name: 'italic',\n type: 'boolean',\n role: 'boolean',\n themeable: false,\n required: false,\n default: 'false',\n description: 'Italic text.',\n },\n {\n name: 'align',\n type: 'enum',\n role: 'enum',\n themeable: false,\n required: false,\n enumValues: ['left', 'center', 'right'],\n default: \"'center'\",\n description: 'Horizontal anchoring of the single line (approximate).',\n },\n {\n name: 'x',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n description: 'Absolute x of the line. Defaults to the canvas center (per align).',\n },\n {\n name: 'y',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n description: 'Absolute y (top-ish) of the line. Defaults to vertical center.',\n },\n {\n name: 'placement',\n type: 'unknown',\n role: 'placement',\n themeable: false,\n required: false,\n description:\n \"Where the element sits: a region keyword ('center', 'lower-third', 'upper-third', 'top', 'bottom', 'left', 'right', 'top-left', 'top-right', 'bottom-left', 'bottom-right') or normalized {x,y} (0-1 canvas fractions, element-center anchored). The shared placement contract; default 'center'. Supersedes the deprecated px x/y props.\",\n },\n {\n name: 'fit',\n type: 'enum',\n role: 'enum',\n themeable: false,\n required: false,\n enumValues: ['none', 'frame'],\n description:\n \"Opt-in auto-fit: 'frame' scales the font size DOWN (never up) so the line cannot exceed the frame minus the safe margins. Default 'none'.\",\n },\n {\n name: 'maxWidth',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n description:\n 'Explicit width cap in px for the line; combines with fit (the smaller cap wins).',\n },\n {\n name: 'fitToClip',\n type: 'boolean',\n role: 'boolean',\n themeable: false,\n required: false,\n description:\n 'Compress the whole timing envelope (delay, stagger, durations) so the entrance settles at least hold before the end of the enclosing clip. Opt-in.',\n },\n {\n name: 'maxSettle',\n type: 'unknown',\n role: 'durationFrames',\n themeable: false,\n required: false,\n description: \"Hard cap on the settle time (frames or '0.5s'). Wins over fitToClip.\",\n },\n {\n name: 'hold',\n type: 'unknown',\n role: 'durationFrames',\n themeable: false,\n required: false,\n description: 'Breathing room before the cut for fitToClip (default 6 frames).',\n },\n {\n name: 'variant',\n type: 'int',\n role: 'integer',\n themeable: false,\n required: false,\n description:\n \"Integer 'take' selector: derives a new deterministic seed from (seed, variant), so alternates never require hand-edited seeds. 0/omitted = the default take.\",\n },\n ],\n schema: matrixDecodeSchema,\n },\n {\n slug: 'mesh-gradient',\n name: 'MeshGradient',\n category: 'Backgrounds',\n title: 'Mesh Gradient',\n description:\n 'A drifting mesh-gradient backdrop: several large, soft radial blobs in palette colors slowly drift over a near-black canvas, blending into a single atmospheric gradient.',\n pickWhen:\n 'Reach for this when a scene needs a soft, living color backdrop \\u2014 atmosphere behind a title, lower-third, or stat block \\u2014 rather than a flat or hard-edged background.',\n composes: [],\n sceneRole: 'background',\n occlusion: 'full_frame',\n example: {\n colors: ['#d96b82', '#e89aab', '#26262e'],\n background: '#08080a',\n speed: 1,\n seed: 7,\n opacity: 0.5,\n },\n props: [\n {\n name: 'colors',\n type: 'stringArray',\n role: 'color',\n themeable: true,\n required: false,\n description:\n 'Blob colors; 2-4 reads best, drifting over the background canvas (defaults to theme palette[0]).',\n },\n {\n name: 'background',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Base canvas color behind the blobs (defaults to theme background).',\n },\n {\n name: 'speed',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '1',\n description: 'Drift speed multiplier; keep low since this is atmosphere, not motion.',\n },\n {\n name: 'seed',\n type: 'int',\n role: 'integer',\n themeable: false,\n required: false,\n default: '7',\n description: 'Seed for the blob phase/amplitude offsets (deterministic).',\n },\n {\n name: 'opacity',\n type: 'number',\n role: 'fraction',\n themeable: false,\n required: false,\n default: '0.5',\n description: 'Overall blob opacity over the canvas (0..1).',\n },\n {\n name: 'variant',\n type: 'int',\n role: 'integer',\n themeable: false,\n required: false,\n description:\n \"Integer 'take' selector: derives a new deterministic seed from (seed, variant), so alternates never require hand-edited seeds. 0/omitted = the default take.\",\n },\n ],\n schema: meshGradientSchema,\n },\n {\n slug: 'node-graph',\n name: 'NodeGraph',\n category: 'Data',\n title: 'Node Graph',\n description:\n 'A hub-and-spoke constellation: a labeled central hub with satellite nodes that fly in from off-frame, settle into elliptical orbits, and connect to the hub by lines that periodically light up.',\n pickWhen:\n 'Use to visualize a system, network, or architecture as a central concept surrounded by orbiting, connected components \\u2014 ideal for \"X powers everything\" diagrams.',\n composes: [],\n sceneRole: 'data-viz',\n occlusion: 'full_frame',\n example: {\n hubLabel: 'AI',\n satellites: [\n { label: 'data', radius: 300, speed: 0.006, startAngle: -2.199 },\n { label: 'model', radius: 300, speed: 0.006, startAngle: -0.943 },\n { label: 'render', radius: 300, speed: 0.006, startAngle: 0.314 },\n { label: 'audio', radius: 300, speed: 0.006, startAngle: 1.571 },\n { label: 'scene', radius: 300, speed: 0.006, startAngle: 2.827 },\n ],\n ellipse: 0.92,\n seed: 7,\n glow: true,\n hubDiameter: 120,\n hubFontSize: 34,\n },\n props: [\n {\n name: 'hubLabel',\n type: 'string',\n role: 'text',\n themeable: false,\n required: false,\n default: \"'AI'\",\n description: 'Label inside the central hub node \\u2014 a single character or short word.',\n },\n {\n name: 'satellites',\n type: 'object',\n role: 'array',\n themeable: false,\n required: false,\n default: 'DEFAULT_SATELLITES',\n description:\n 'The orbiting satellites; each ({ label, radius, speed, startAngle }) flies in from off-frame, then settles into its elliptical orbit.',\n },\n {\n name: 'accent',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description:\n 'The earned accent \\u2014 hub fill tint, the connection lines, and the glow (default: theme accent).',\n },\n {\n name: 'ellipse',\n type: 'number',\n role: 'fraction',\n themeable: false,\n required: false,\n default: '0.92',\n description: 'Vertical squash of every orbit (1 = circular, <1 = elliptical).',\n },\n {\n name: 'seed',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '7',\n description: 'Seed for the deterministic fly-in directions and connection-pulse phases.',\n },\n {\n name: 'delay',\n type: 'int',\n role: 'delayFrames',\n themeable: false,\n required: false,\n default: '0',\n description:\n \"Frames before the constellation begins assembling. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'glow',\n type: 'boolean',\n role: 'boolean',\n themeable: false,\n required: false,\n default: 'true',\n description: 'Show the soft accent glow behind the hub.',\n },\n {\n name: 'hubDiameter',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '120',\n description: 'Hub node diameter in px.',\n },\n {\n name: 'hubFontSize',\n type: 'number',\n role: 'fontSize',\n themeable: false,\n required: false,\n default: '34',\n description: 'Hub label size in px.',\n },\n {\n name: 'background',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description:\n 'Background canvas color behind the constellation (default: theme background).',\n },\n {\n name: 'surface',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Surface (fill) color of the satellite pills (default: theme surface).',\n },\n {\n name: 'borderColor',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Border color of the satellite pills (default: theme border).',\n },\n {\n name: 'textColor',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Text color of every label (default: theme text).',\n },\n {\n name: 'satelliteFontSize',\n type: 'number',\n role: 'fontSize',\n themeable: false,\n required: false,\n default: '20',\n description: 'Satellite label font size in px.',\n },\n {\n name: 'fontFamily',\n type: 'string',\n role: 'fontFamily',\n themeable: true,\n required: false,\n description: 'Display font for every label (default: theme fontFamily).',\n },\n {\n name: 'centerX',\n type: 'number',\n role: 'fraction',\n themeable: false,\n required: false,\n default: '0.5',\n description:\n 'Horizontal center of the constellation as a 0\\u20131 fraction of canvas width.',\n },\n {\n name: 'centerY',\n type: 'number',\n role: 'fraction',\n themeable: false,\n required: false,\n default: '0.5',\n description:\n 'Vertical center of the constellation as a 0\\u20131 fraction of canvas height.',\n },\n {\n name: 'variant',\n type: 'int',\n role: 'integer',\n themeable: false,\n required: false,\n description:\n \"Integer 'take' selector: derives a new deterministic seed from (seed, variant), so alternates never require hand-edited seeds. 0/omitted = the default take.\",\n },\n ],\n schema: nodeGraphSchema,\n },\n {\n slug: 'parallax',\n name: 'Parallax',\n category: 'Media',\n title: 'Parallax',\n description:\n 'Slow, linear drift of one or more image layers at different rates for a living, depth-rich background.',\n pickWhen:\n 'Use for backgrounds or b-roll that should feel alive without pulling focus \\u2014 a lighter, no-zoom complement to KenBurns. Pass multiple layers at different speeds for parallax depth.',\n composes: [],\n sceneRole: 'background',\n occlusion: 'full_frame',\n example: {\n layers: [\n { src: 'https://picsum.photos/seed/onda-bg/1920/1080', speed: 0.4 },\n { src: 'https://picsum.photos/seed/onda-fg/1920/1080', speed: 1.2, opacity: 0.85 },\n ],\n direction: 'left',\n distance: 60,\n duration: 180,\n },\n props: [\n {\n name: 'src',\n type: 'string',\n role: 'url',\n themeable: false,\n required: false,\n description:\n 'Single image layer URL/path; use src OR layers (layers wins when both are set).',\n },\n {\n name: 'layers',\n type: 'object',\n role: 'array',\n themeable: false,\n required: false,\n description:\n 'Multiple layers drawn back-to-front, each with its own src, speed, scale, and opacity, drifting at its own rate.',\n },\n {\n name: 'delay',\n type: 'int',\n role: 'delayFrames',\n themeable: false,\n required: false,\n default: '0',\n description:\n \"Frames before the drift starts. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'duration',\n type: 'int',\n role: 'durationFrames',\n themeable: false,\n required: false,\n default: '180',\n description:\n \"Frames over which the drift completes (180f is about 6s at 30fps). Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'direction',\n type: 'enum',\n role: 'enum',\n themeable: false,\n required: false,\n enumValues: ['left', 'right', 'up', 'down'],\n default: \"'left'\",\n description: 'The edge the layers drift toward as time advances.',\n },\n {\n name: 'distance',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '40',\n description:\n 'Base drift in pixels across duration, per-layer scaled by speed; keep restrained (past ~120px reads as a pan).',\n },\n {\n name: 'scale',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '1.05',\n description:\n \"Default oversize applied to layers that don't set their own scale, hiding drifting edges.\",\n },\n ],\n schema: parallaxSchema,\n },\n {\n slug: 'pie-reveal',\n name: 'PieReveal',\n category: 'Data',\n title: 'Pie Reveal',\n description:\n \"A pie or donut chart whose slices sweep in from 0, growing clockwise from 12 o'clock with a staggered spring; optional center total and per-slice labels.\",\n pickWhen:\n \"Reach for this to animate a proportional breakdown (market share, budget split, poll results) as a pie or donut whose wedges sweep into place. GPU/Vello backend only \\u2014 the wedge paths don't render on the CPU reference.\",\n composes: [],\n sceneRole: 'data-viz',\n occlusion: 'centered',\n example: {\n data: [\n { value: 64, color: '#d96b82', label: 'Mobile' },\n { value: 22, color: '#8e8e98', label: 'Desktop' },\n { value: 14, color: '#3a3a44', label: 'Tablet' },\n ],\n radius: 180,\n innerRadius: 110,\n showLabel: true,\n label: '100%',\n x: 0.5,\n y: 0.5,\n fontSize: 56,\n },\n props: [\n {\n name: 'data',\n type: 'object',\n role: 'array',\n themeable: false,\n required: false,\n default:\n \"[{ value: 64, color: '#d96b82', label: 'A' }, { value: 22, color: '#8e8e98', label: 'B' }, { value: 14, color: '#3a3a44', label: 'C' }]\",\n description:\n \"Slices to render, each `{ value, color, label? }`, drawn clockwise from 12 o'clock in array order; values split the circle proportionally.\",\n },\n {\n name: 'radius',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '180',\n description: 'Outer radius of the pie, in px.',\n },\n {\n name: 'innerRadius',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '0',\n description:\n 'Inner radius (donut hole) in px; `0` is a solid pie. The hole is filled with holeColor.',\n },\n {\n name: 'holeColor',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description:\n 'Color filling the donut hole; match the composition background (default: theme `background`).',\n },\n {\n name: 'delay',\n type: 'number',\n role: 'delayFrames',\n themeable: false,\n required: false,\n default: '0',\n description:\n \"Frames before the first slice starts sweeping. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'duration',\n type: 'number',\n role: 'durationFrames',\n themeable: false,\n required: false,\n default: 'DURATION.slow',\n description:\n \"Per-slice sweep duration on the house spring, in frames. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'stagger',\n type: 'number',\n role: 'delayFrames',\n themeable: false,\n required: false,\n default: 'STAGGER',\n description:\n \"Frames between consecutive slices starting (default canonical STAGGER). Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'x',\n type: 'number',\n role: 'fraction',\n themeable: false,\n required: false,\n default: '0.5',\n description: 'Horizontal center as a 0\\u20131 fraction of canvas width.',\n },\n {\n name: 'y',\n type: 'number',\n role: 'fraction',\n themeable: false,\n required: false,\n default: '0.5',\n description: 'Vertical center as a 0\\u20131 fraction of canvas height.',\n },\n {\n name: 'showLabel',\n type: 'boolean',\n role: 'boolean',\n themeable: false,\n required: false,\n default: 'false',\n description:\n \"Show labels: the center total (donut only) plus each slice's `label` drawn just outside the ring.\",\n },\n {\n name: 'label',\n type: 'string',\n role: 'text',\n themeable: false,\n required: false,\n description: 'Center label text; defaults to the slice count.',\n },\n {\n name: 'labelColor',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Center label color (default: theme `text`).',\n },\n {\n name: 'fontSize',\n type: 'number',\n role: 'fontSize',\n themeable: false,\n required: false,\n default: '56',\n description: 'Center label font size in px.',\n },\n {\n name: 'fontFamily',\n type: 'string',\n role: 'fontFamily',\n themeable: true,\n required: false,\n description:\n 'Center label font family, must be loaded by the renderer (default: theme `headingFamily ?? fontFamily`).',\n },\n ],\n schema: pieRevealSchema,\n },\n {\n slug: 'price-tag',\n name: 'PriceTag',\n category: 'Data',\n title: 'Price Tag',\n description:\n 'A compact, premium PRODUCT price chip for e-commerce shots: the product name in the display face with the price emphasized beside it, in a rounded surface chip (hairline border + soft shadow). Distinct from PricingCard (subscription tiers) — this is a small label/tag for a product photo. `sold` dims + strikes the price and adds a muted SOLD pill.',\n pickWhen:\n 'Use to label a single product with its name + price next to or beneath its photo (an e-comm/Shopify shot). Prefer this over faking a price with Highlight. Set `sold` for an out-of-stock state. Centered by default; pass x/y for the chip top-left.',\n composes: [],\n sceneRole: 'block',\n occlusion: 'centered',\n example: {\n name: 'Montana Dangles',\n price: '$70',\n sold: false,\n },\n props: [\n {\n name: 'name',\n type: 'string',\n role: 'text',\n themeable: false,\n required: false,\n default: \"'Product'\",\n description: 'Product name — the label, set in the display face.',\n },\n {\n name: 'price',\n type: 'string',\n role: 'text',\n themeable: false,\n required: false,\n default: \"'$0'\",\n description: \"Price as a string so any currency works (e.g. '$70', '€19', '£12.50').\",\n },\n {\n name: 'sold',\n type: 'boolean',\n role: 'other',\n themeable: false,\n required: false,\n default: 'false',\n description: 'Show the SOLD state — dims + strikes the price and appends a muted pill.',\n },\n {\n name: 'soldLabel',\n type: 'string',\n role: 'text',\n themeable: false,\n required: false,\n default: \"'SOLD'\",\n description: 'The SOLD pill label.',\n },\n {\n name: 'delay',\n type: 'int',\n role: 'delayFrames',\n themeable: false,\n required: false,\n default: '0',\n description: 'Frames before the chip enters.',\n },\n {\n name: 'size',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '1',\n description:\n 'Base scale for the chip (1 = the default size). Scales type + padding together.',\n },\n {\n name: 'color',\n type: 'string',\n role: 'color',\n themeable: false,\n required: false,\n description: 'Name text color (defaults to theme text).',\n },\n {\n name: 'priceColor',\n type: 'string',\n role: 'color',\n themeable: false,\n required: false,\n description: 'Price text color (defaults to theme accent).',\n },\n {\n name: 'accentColor',\n type: 'string',\n role: 'color',\n themeable: false,\n required: false,\n description: 'Divider + SOLD-pill accent color (defaults to theme accent).',\n },\n {\n name: 'surface',\n type: 'string',\n role: 'color',\n themeable: false,\n required: false,\n description: 'Chip fill color (defaults to theme surface).',\n },\n {\n name: 'border',\n type: 'string',\n role: 'color',\n themeable: false,\n required: false,\n description: 'Chip hairline border color (defaults to theme border).',\n },\n {\n name: 'fontFamily',\n type: 'string',\n role: 'fontFamily',\n themeable: true,\n required: false,\n description: 'Display font for the name (defaults to theme headingFamily ?? fontFamily).',\n },\n {\n name: 'bodyFamily',\n type: 'string',\n role: 'fontFamily',\n themeable: true,\n required: false,\n description: 'Body font for the price + SOLD pill (defaults to theme fontFamily).',\n },\n {\n name: 'x',\n type: 'number',\n role: 'other',\n themeable: false,\n required: false,\n description: \"Local-space x of the chip's top-left. Omit to center on the composition.\",\n },\n {\n name: 'y',\n type: 'number',\n role: 'other',\n themeable: false,\n required: false,\n description: \"Local-space y of the chip's top-left. Omit to center on the composition.\",\n },\n ],\n schema: priceTagSchema,\n },\n {\n slug: 'pricing-card',\n name: 'PricingCard',\n category: 'UI',\n title: 'Pricing Card',\n description:\n 'A single pricing tier: a rounded glass panel with the tier name, a large price plus billing period, an accent-checkmark feature list that staggers in, and a CTA button. `recommended` lifts/scales the card, adds an accent badge, and floats a soft accent glow.',\n pickWhen:\n 'Use to present one pricing tier or plan \\u2014 a glass card with price, billing period, a checkmark feature list, and a CTA. Set `recommended` for the highlighted plan. Place several side by side (via `x`) for a pricing table.',\n composes: [],\n sceneRole: 'block',\n occlusion: 'centered',\n example: {\n tier: 'Pro',\n price: '$29',\n period: '/month',\n features: [\n 'Unlimited renders',\n 'Signature motion identity',\n 'Source you own, copied in',\n 'Priority support',\n ],\n cta: 'Get started',\n recommended: true,\n priceSize: 64,\n width: 380,\n delay: 8,\n },\n props: [\n {\n name: 'tier',\n type: 'string',\n role: 'text',\n themeable: false,\n required: false,\n default: \"'Pro'\",\n description: \"Tier name above the price (e.g. 'Pro'). Rendered uppercase.\",\n },\n {\n name: 'price',\n type: 'string',\n role: 'text',\n themeable: false,\n required: false,\n default: \"'$29'\",\n description: \"The headline price, rendered large. Free-form: '$29', '\\u20ac19', 'Free'.\",\n },\n {\n name: 'period',\n type: 'string',\n role: 'text',\n themeable: false,\n required: false,\n default: \"'/month'\",\n description: \"Billing period beneath the price (e.g. '/month'). Empty hides it.\",\n },\n {\n name: 'features',\n type: 'stringArray',\n role: 'array',\n themeable: false,\n required: false,\n default: 'DEFAULT_FEATURES',\n description:\n 'Feature checklist \\u2014 each item gets an accent checkmark, revealed on a stagger.',\n },\n {\n name: 'cta',\n type: 'string',\n role: 'text',\n themeable: false,\n required: false,\n default: \"'Get started'\",\n description: 'Call-to-action button label.',\n },\n {\n name: 'recommended',\n type: 'boolean',\n role: 'boolean',\n themeable: false,\n required: false,\n default: 'false',\n description:\n 'Lifts + scales the card and shows an accent badge \\u2014 the highlighted tier.',\n },\n {\n name: 'accent',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description:\n 'The earned accent \\u2014 checkmarks, badge, CTA, recommended border + glow (default: theme accent).',\n },\n {\n name: 'delay',\n type: 'number',\n role: 'delayFrames',\n themeable: false,\n required: false,\n default: '0',\n description:\n \"Frames before the card enters. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'width',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '380',\n description: 'Card width in px.',\n },\n {\n name: 'priceSize',\n type: 'number',\n role: 'fontSize',\n themeable: false,\n required: false,\n default: '64',\n description: 'Price font size in px (the large display number).',\n },\n {\n name: 'background',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Panel fill color (default: theme surface).',\n },\n {\n name: 'borderColor',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Panel border color (when not recommended) (default: theme border).',\n },\n {\n name: 'color',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Primary text color (price, features) (default: theme text).',\n },\n {\n name: 'dimColor',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Dim color for the tier label (default: theme textMuted).',\n },\n {\n name: 'faintColor',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Faint color for the billing period (default: theme textMuted).',\n },\n {\n name: 'fontFamily',\n type: 'string',\n role: 'fontFamily',\n themeable: true,\n required: false,\n description: 'Display font for the price (default: theme headingFamily ?? fontFamily).',\n },\n {\n name: 'bodyFontFamily',\n type: 'string',\n role: 'fontFamily',\n themeable: true,\n required: false,\n description: 'Body font for tier / features / CTA (default: theme fontFamily).',\n },\n {\n name: 'x',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n description: \"Local-space x of the card's top-left. Omit to center on the composition.\",\n },\n {\n name: 'y',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n description: \"Local-space y of the card's top-left. Omit to center on the composition.\",\n },\n {\n name: 'placement',\n type: 'unknown',\n role: 'placement',\n themeable: false,\n required: false,\n description:\n \"Where the element sits: a region keyword ('center', 'lower-third', 'upper-third', 'top', 'bottom', 'left', 'right', 'top-left', 'top-right', 'bottom-left', 'bottom-right') or normalized {x,y} (0-1 canvas fractions, element-center anchored). The shared placement contract; default 'center'. Supersedes the deprecated px x/y props.\",\n },\n ],\n schema: pricingCardSchema,\n },\n {\n slug: 'progress-bar',\n name: 'ProgressBar',\n category: 'Data',\n title: 'Progress Bar',\n description:\n 'A horizontal bar that springs from 0 to a target percentage, with an optional value label.',\n pickWhen:\n 'Use to animate a single 0-100 metric, completion, or loading/progress value as a filling pill bar.',\n composes: [],\n sceneRole: 'data-viz',\n occlusion: 'centered',\n example: {\n value: 72,\n width: 720,\n height: 16,\n accentColor: '#D96B82',\n showValue: true,\n fontSize: 32,\n },\n props: [\n {\n name: 'value',\n type: 'number',\n role: 'fraction',\n themeable: false,\n required: false,\n default: '64',\n description: 'Target fill, 0-100. The bar grows from 0 to this value.',\n },\n {\n name: 'delay',\n type: 'int',\n role: 'delayFrames',\n themeable: false,\n required: false,\n default: '0',\n description:\n \"Frames before the animation starts. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'duration',\n type: 'int',\n role: 'durationFrames',\n themeable: false,\n required: false,\n default: 'DURATION.slow',\n description:\n \"Frames to reach the full target value. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'width',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '640',\n description: 'Track width in px \\u2014 the full 0%-100% travel.',\n },\n {\n name: 'height',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '12',\n description: 'Bar thickness in px.',\n },\n {\n name: 'radius',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '999',\n description: 'Corner radius in px. Defaults to a full pill.',\n },\n {\n name: 'trackColor',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Track color \\u2014 the unfilled portion (default: theme surface).',\n },\n {\n name: 'accentColor',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Fill color (default: theme accent).',\n },\n {\n name: 'showValue',\n type: 'boolean',\n role: 'boolean',\n themeable: false,\n required: false,\n default: 'true',\n description: 'Whether to render the ${value}% label beside the bar.',\n },\n {\n name: 'color',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Label color (default: theme text).',\n },\n {\n name: 'fontSize',\n type: 'number',\n role: 'fontSize',\n themeable: false,\n required: false,\n default: '28',\n description: 'Label font size in px.',\n },\n {\n name: 'fontFamily',\n type: 'string',\n role: 'fontFamily',\n themeable: true,\n required: false,\n description:\n 'Label font family (must be loaded by the renderer; default: theme fontFamily).',\n },\n ],\n schema: progressBarSchema,\n },\n {\n slug: 'progress-steps',\n name: 'ProgressSteps',\n category: 'Data',\n title: 'Progress Steps',\n description:\n 'A horizontal stepper whose accent fill travels along the connecting track to the current step on the house spring; completed dots earn the accent, the active step gets a soft glow ring, and pending steps stay neutral.',\n pickWhen:\n 'Use to show progress through a fixed, ordered sequence of named stages (a process, pipeline, onboarding, or roadmap) with an animated fill reaching the current step.',\n composes: [],\n sceneRole: 'data-viz',\n occlusion: 'centered',\n example: {\n steps: ['Plan', 'Build', 'Render', 'Ship'],\n current: 2,\n duration: 40,\n width: 1280,\n fontSize: 34,\n },\n props: [\n {\n name: 'steps',\n type: 'stringArray',\n role: 'array',\n themeable: false,\n required: false,\n default: \"['Plan', 'Build', 'Render', 'Ship']\",\n description: 'Step labels, left to right.',\n },\n {\n name: 'current',\n type: 'int',\n role: 'integer',\n themeable: false,\n required: false,\n default: '2',\n description:\n 'How many steps are complete \\u2014 the fill animates to this index (0-based count).',\n },\n {\n name: 'delay',\n type: 'int',\n role: 'delayFrames',\n themeable: false,\n required: false,\n default: '0',\n description:\n \"Frames before the fill animates. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'duration',\n type: 'int',\n role: 'durationFrames',\n themeable: false,\n required: false,\n default: 'DURATION.slower',\n description:\n \"Frames for the fill to travel to `current`. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'accentColor',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description:\n 'Completed / active color \\u2014 the earned accent (defaults to theme `accent`).',\n },\n {\n name: 'dimColor',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Pending color for dots and connector track (defaults to theme `border`).',\n },\n {\n name: 'labelColor',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Label color (defaults to theme `textMuted`).',\n },\n {\n name: 'fontFamily',\n type: 'string',\n role: 'fontFamily',\n themeable: true,\n required: false,\n description: 'Loaded font family for labels (defaults to theme `fontFamily`).',\n },\n {\n name: 'fontSize',\n type: 'number',\n role: 'fontSize',\n themeable: false,\n required: false,\n default: '34',\n description: 'Label font size in px.',\n },\n {\n name: 'width',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '1280',\n description: 'Overall width in px (dots are spaced across this).',\n },\n {\n name: 'dotSize',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '30',\n description: 'Dot diameter in px.',\n },\n {\n name: 'trackThickness',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '3',\n description: 'Connector track thickness in px.',\n },\n ],\n schema: progressStepsSchema,\n },\n {\n slug: 'pulsing-indicator',\n name: 'PulsingIndicator',\n category: 'UI',\n title: 'Pulsing Indicator',\n description:\n 'A live status dot with a calm expanding-ring pulse and an optional label, looping seamlessly off the frame.',\n pickWhen:\n 'Use to signal \"live\", \"online\", \"recording\", or any active status with a small animated dot and optional label.',\n composes: [],\n sceneRole: 'annotation',\n occlusion: 'non_occluding',\n example: { label: 'LIVE', size: 20, fontSize: 28, period: 45 },\n props: [\n {\n name: 'color',\n type: 'string',\n role: 'color',\n themeable: true,\n required: true,\n description: 'Dot + ring color (defaults to theme accent).',\n },\n {\n name: 'size',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '20',\n description: 'Dot diameter in px.',\n },\n {\n name: 'label',\n type: 'string',\n role: 'text',\n themeable: false,\n required: false,\n default: \"'LIVE'\",\n description: 'Optional label to the right of the dot; empty hides it.',\n },\n {\n name: 'labelColor',\n type: 'string',\n role: 'color',\n themeable: true,\n required: true,\n description: 'Label color (defaults to theme textMuted).',\n },\n {\n name: 'fontFamily',\n type: 'string',\n role: 'fontFamily',\n themeable: true,\n required: true,\n description:\n 'Label font family, must be loaded by the renderer (defaults to theme fontFamily).',\n },\n {\n name: 'fontSize',\n type: 'number',\n role: 'fontSize',\n themeable: false,\n required: false,\n default: '28',\n description: 'Label font size in px.',\n },\n {\n name: 'period',\n type: 'int',\n role: 'durationFrames',\n themeable: false,\n required: false,\n default: '45',\n description:\n \"Frames per pulse cycle. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'x',\n type: 'number',\n role: 'other',\n themeable: false,\n required: false,\n description:\n \"X of the indicator's top-left; when omitted the dot + label assembly is centered.\",\n },\n {\n name: 'y',\n type: 'number',\n role: 'other',\n themeable: false,\n required: false,\n description:\n \"Y of the indicator's top-left; when omitted the dot + label assembly is centered.\",\n },\n ],\n schema: pulsingIndicatorSchema,\n },\n {\n slug: 'quote-card',\n name: 'QuoteCard',\n category: 'Text',\n title: 'Quote Card',\n description:\n 'A centered pull-quote: a word-staggered quote, an accent divider that draws in from the left, and an author + role attribution that fades in last.',\n pickWhen:\n 'Use for a testimonial, pull-quote, or attributed citation that needs a slow, readable word-by-word reveal with an author credit.',\n composes: ['WordStagger', 'FadeIn'],\n sceneRole: 'block',\n occlusion: 'centered',\n example: {\n quote: 'Design is not just what it looks like and feels like. Design is how it works.',\n author: 'Steve Jobs',\n role: 'Co-founder, Apple',\n accent: true,\n quoteFontSize: 56,\n authorFontSize: 22,\n },\n props: [\n {\n name: 'quote',\n type: 'string',\n role: 'text',\n themeable: false,\n required: false,\n default: \"'Motion is the difference between art and craft.'\",\n description:\n 'The pull-quote body, revealed word-by-word on a slower-than-canonical stagger.',\n },\n {\n name: 'author',\n type: 'string',\n role: 'text',\n themeable: false,\n required: false,\n default: \"'Saul Bass'\",\n description: 'Attribution name.',\n },\n {\n name: 'role',\n type: 'string',\n role: 'text',\n themeable: false,\n required: false,\n default: \"'Graphic Designer'\",\n description: 'Attribution role / title.',\n },\n {\n name: 'delay',\n type: 'int',\n role: 'delayFrames',\n themeable: false,\n required: false,\n default: '0',\n description:\n \"Frames before the quote starts. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'accent',\n type: 'boolean',\n role: 'boolean',\n themeable: false,\n required: false,\n default: 'true',\n description: 'Show the accent divider between quote and attribution.',\n },\n {\n name: 'quoteFontSize',\n type: 'number',\n role: 'fontSize',\n themeable: false,\n required: false,\n default: '56',\n description: 'Quote font size in px.',\n },\n {\n name: 'quoteFontWeight',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '600',\n description: 'Quote font weight (display default 600).',\n },\n {\n name: 'authorFontSize',\n type: 'number',\n role: 'fontSize',\n themeable: false,\n required: false,\n default: '22',\n description: 'Author / role font size in px.',\n },\n {\n name: 'authorFontWeight',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '500',\n description: 'Author / role font weight.',\n },\n {\n name: 'color',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Quote color (defaults to theme text).',\n },\n {\n name: 'authorColor',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Author / role color (defaults to theme textMuted).',\n },\n {\n name: 'accentColor',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Divider color (defaults to theme accent).',\n },\n {\n name: 'fontFamily',\n type: 'string',\n role: 'fontFamily',\n themeable: true,\n required: false,\n description: 'Loaded font family for every line (defaults to theme fontFamily).',\n },\n {\n name: 'quoteWidth',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n description: 'Wrap width for the quote in px (defaults to ~44% of the composition width).',\n },\n {\n name: 'placement',\n type: 'unknown',\n role: 'placement',\n themeable: false,\n required: false,\n description:\n \"Where the element sits: a region keyword ('center', 'lower-third', 'upper-third', 'top', 'bottom', 'left', 'right', 'top-left', 'top-right', 'bottom-left', 'bottom-right') or normalized {x,y} (0-1 canvas fractions, element-center anchored). The shared placement contract; default 'center'.\",\n },\n ],\n schema: quoteCardSchema,\n },\n {\n slug: 'rgb-glitch',\n name: 'RgbGlitch',\n category: 'Text',\n title: 'RGB Glitch Text',\n description:\n 'Chromatic-aberration glitch headline: a red and cyan channel copy split off a clean white center, with periodic deterministic glitch bursts that widen the split and jitter vertically.',\n pickWhen:\n 'Reach for this when you want a digital/cyberpunk glitch title with RGB channel-split chromatic aberration and intermittent glitch bursts.',\n composes: [],\n sceneRole: 'block',\n occlusion: 'centered',\n example: {\n text: 'GLITCH',\n fontSize: 140,\n intensity: 14,\n baseSplit: 3,\n glitchPeriod: 48,\n glitchDuration: 8,\n seed: 7,\n },\n props: [\n {\n name: 'text',\n type: 'string',\n role: 'text',\n themeable: false,\n required: false,\n default: \"'GLITCH'\",\n description: 'The text to glitch.',\n },\n {\n name: 'delay',\n type: 'int',\n role: 'delayFrames',\n themeable: false,\n required: false,\n default: '0',\n description:\n \"Frames before the effect starts. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'baseSplit',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '2',\n description: 'Constant baseline channel split in px (the always-on chromatic edge).',\n },\n {\n name: 'intensity',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '10',\n description: 'Peak extra split in px during a glitch burst.',\n },\n {\n name: 'glitchPeriod',\n type: 'int',\n role: 'durationFrames',\n themeable: false,\n required: false,\n default: '48',\n description:\n \"Frames between glitch bursts. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'glitchDuration',\n type: 'int',\n role: 'durationFrames',\n themeable: false,\n required: false,\n default: '8',\n description:\n \"Frames a glitch burst lasts. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'seed',\n type: 'int',\n role: 'integer',\n themeable: false,\n required: false,\n default: '7',\n description: 'Seed for the (deterministic) burst jitter.',\n },\n {\n name: 'color',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Base (center) text color (default: theme text).',\n },\n {\n name: 'redColor',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Red-channel copy color (default: theme accent).',\n },\n {\n name: 'cyanColor',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Cyan-channel copy color (default: theme palette[1]).',\n },\n {\n name: 'channelOpacity',\n type: 'number',\n role: 'fraction',\n themeable: false,\n required: false,\n default: '0.85',\n description:\n 'Opacity of the coloured channel copies (screen-blend approximation; lower keeps the center clean white).',\n },\n {\n name: 'fontSize',\n type: 'number',\n role: 'fontSize',\n themeable: false,\n required: false,\n default: '120',\n description: 'Font size in px.',\n },\n {\n name: 'fontFamily',\n type: 'string',\n role: 'fontFamily',\n themeable: true,\n required: false,\n description: 'Loaded font family (default: theme fontFamily).',\n },\n {\n name: 'fontWeight',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '600',\n description: 'Font weight (default 600).',\n },\n {\n name: 'italic',\n type: 'boolean',\n role: 'boolean',\n themeable: false,\n required: false,\n default: 'false',\n description: 'Italic text.',\n },\n {\n name: 'align',\n type: 'enum',\n role: 'enum',\n themeable: false,\n required: false,\n enumValues: ['left', 'center', 'right'],\n default: \"'center'\",\n description: 'Line alignment relative to the placement point.',\n },\n {\n name: 'x',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n description: 'Absolute x of the alignment anchor (defaults to canvas horizontal center).',\n },\n {\n name: 'y',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n description: 'Absolute y (top-ish) of the line (defaults to vertical center).',\n },\n {\n name: 'variant',\n type: 'int',\n role: 'integer',\n themeable: false,\n required: false,\n description:\n \"Integer 'take' selector: derives a new deterministic seed from (seed, variant), so alternates never require hand-edited seeds. 0/omitted = the default take.\",\n },\n ],\n schema: rgbGlitchSchema,\n },\n {\n slug: 'rotate-in',\n name: 'RotateIn',\n category: 'Motion',\n title: 'Rotate In',\n description:\n 'Reveals its children by fading in while settling from a small starting angle to 0\\u00b0 on a calm, no-overshoot spring.',\n pickWhen:\n 'Wrap a centered headline or element to land it with a gentle rotational settle and fade \\u2014 a softer entrance than a straight slide or scale.',\n composes: [],\n sceneRole: 'wrapper',\n occlusion: 'centered',\n example: { fromDegrees: -8, durationInFrames: 18, delay: 0 },\n props: [\n {\n name: 'delay',\n type: 'int',\n role: 'delayFrames',\n themeable: false,\n required: false,\n default: '0',\n description:\n \"Frames to wait before starting. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'durationInFrames',\n type: 'int',\n role: 'durationFrames',\n themeable: false,\n required: false,\n default: 'DURATION.base',\n description:\n \"Frames to settle to 0\\u00b0 (default DURATION.base = 18). Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'fromDegrees',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '-8',\n description: 'Starting angle in degrees (clockwise). Safe zone: [-12, +12].',\n },\n ],\n schema: rotateInSchema,\n },\n {\n slug: 'scale-in',\n name: 'ScaleIn',\n category: 'Motion',\n title: 'Scale In',\n description:\n 'Wraps content and reveals it with a restrained opacity + scale-up animation on the house spring, pivoting on the composition center so centered content grows in place.',\n pickWhen:\n 'Use to make a centered element (title, logo, card) grow gently into view; reach for it when you want a subtle scale entrance rather than a slide or fade.',\n composes: [],\n sceneRole: 'wrapper',\n occlusion: 'centered',\n example: { delay: 6, durationInFrames: 24, from: 0.9 },\n props: [\n {\n name: 'delay',\n type: 'int',\n role: 'delayFrames',\n themeable: false,\n required: false,\n default: '0',\n description:\n \"Frames to wait before the animation starts. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'durationInFrames',\n type: 'int',\n role: 'durationFrames',\n themeable: false,\n required: false,\n default: 'DURATION.base',\n description:\n \"Number of frames over which the entrance settles. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'from',\n type: 'number',\n role: 'fraction',\n themeable: false,\n required: false,\n default: '0.9',\n description: 'Starting scale that animates to 1 (below ~0.85 reads as a dramatic zoom).',\n },\n ],\n schema: scaleInSchema,\n },\n {\n slug: 'scrim',\n name: 'Scrim',\n category: 'Effects',\n title: 'Scrim',\n description:\n 'A flat, full-frame semi-transparent color veil — mute a busy photo/video so overlaid text reads (a light scrim lifts a dark photo; a dark one deepens a bright one).',\n pickWhen:\n 'Reach for this to lift or deepen a busy image so text on top stays legible — a soft veil between the photo and the type.',\n composes: [],\n sceneRole: 'block',\n occlusion: 'non_occluding',\n example: { color: '#ffffff', opacity: 0.3 },\n props: [\n {\n name: 'color',\n type: 'string',\n role: 'color',\n themeable: false,\n required: false,\n default: \"'#ffffff'\",\n description: 'Veil color (hex). Default white — lifts a busy photo so dark text reads.',\n },\n {\n name: 'opacity',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '0.3',\n description: 'Veil strength 0..1.',\n },\n {\n name: 'delay',\n type: 'int',\n role: 'delayFrames',\n themeable: false,\n required: false,\n default: '0',\n description: 'Frames before it appears.',\n },\n {\n name: 'fadeIn',\n type: 'boolean',\n role: 'other',\n themeable: false,\n required: false,\n default: 'true',\n description: 'Fade the veil in over the first 8 frames.',\n },\n ],\n schema: scrimSchema,\n },\n {\n slug: 'shimmer-sweep',\n name: 'ShimmerSweep',\n category: 'Text',\n title: 'Shimmer Sweep',\n description:\n 'A single bright band of light sweeps once across a line of dim text, drawing the eye without moving the layout.',\n pickWhen:\n 'Add restrained shine to a headline or word \\u2014 a one-pass (or looping) highlight sweep on static text. GPU/Vello-only effect; CPU shows the base text. Use for emphasis, not a disco.',\n composes: [],\n sceneRole: 'block',\n occlusion: 'centered',\n example: {\n text: 'Onda',\n fontSize: 120,\n fontWeight: 600,\n duration: 30,\n loop: true,\n interval: 75,\n angle: 110,\n },\n props: [\n {\n name: 'text',\n type: 'string',\n role: 'text',\n themeable: false,\n required: false,\n default: \"'Onda'\",\n description: 'The single line of text to sweep light across.',\n },\n {\n name: 'delay',\n type: 'int',\n role: 'delayFrames',\n themeable: false,\n required: false,\n default: '0',\n description:\n \"Frames before the sweep starts. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'duration',\n type: 'int',\n role: 'durationFrames',\n themeable: false,\n required: false,\n default: 'DURATION.slower',\n description:\n \"Frames for one sweep pass (default DURATION.slower = 30). Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'loop',\n type: 'boolean',\n role: 'boolean',\n themeable: false,\n required: false,\n default: 'false',\n description: 'Loop the sweep instead of a single pass.',\n },\n {\n name: 'interval',\n type: 'int',\n role: 'durationFrames',\n themeable: false,\n required: false,\n default: '60',\n description:\n \"Frames between sweeps when looping. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'color',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description:\n 'Base (dim) text color so the bright band reads as a highlight (default: theme textMuted).',\n },\n {\n name: 'shimmerColor',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'The sweeping highlight color (default: theme text).',\n },\n {\n name: 'angle',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '110',\n description: 'Sweep angle in degrees (approximated by tilting the gradient band).',\n },\n {\n name: 'fontSize',\n type: 'number',\n role: 'fontSize',\n themeable: false,\n required: false,\n default: '96',\n description: 'Font size in px (default 96).',\n },\n {\n name: 'fontFamily',\n type: 'string',\n role: 'fontFamily',\n themeable: true,\n required: false,\n description:\n 'Loaded font family (e.g. a --font passed to onda render) (default: theme fontFamily).',\n },\n {\n name: 'fontWeight',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '600',\n description: 'Font weight (display default 600).',\n },\n {\n name: 'width',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n description: 'Explicit text-box width in px. Overrides the glyph-count estimate.',\n },\n {\n name: 'x',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '0',\n description: \"Local-space placement of the component's top-left (x).\",\n },\n {\n name: 'y',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '0',\n description: \"Local-space placement of the component's top-left (y).\",\n },\n ],\n schema: shimmerSweepSchema,\n },\n {\n slug: 'skeleton-card',\n name: 'SkeletonCard',\n category: 'UI',\n title: 'Skeleton Card',\n description:\n 'A loading-placeholder card: an optional thumbnail block plus a stack of rounded bars, with a highlight band sweeping across them on a frame-driven shimmer loop.',\n pickWhen:\n 'Use to mock a loading/placeholder state \\u2014 a glassy card with shimmering skeleton bars and an optional thumbnail, to dramatize \"content loading\" before a UI reveal.',\n composes: [],\n sceneRole: 'ui-mock',\n occlusion: 'centered',\n example: { lines: 3, thumbnail: true, shimmerSpeed: 48, width: 480, delay: 0 },\n props: [\n {\n name: 'lines',\n type: 'int',\n role: 'count',\n themeable: false,\n required: false,\n default: '3',\n description: 'Number of placeholder text bars below the (optional) thumbnail.',\n },\n {\n name: 'thumbnail',\n type: 'boolean',\n role: 'boolean',\n themeable: false,\n required: false,\n default: 'true',\n description: 'Show the leading thumbnail block above the bars.',\n },\n {\n name: 'shimmerSpeed',\n type: 'int',\n role: 'durationFrames',\n themeable: false,\n required: false,\n default: '48',\n description:\n \"Frames for one shimmer pass across the card. Lower = faster sweep. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'shimmerColor',\n type: 'string',\n role: 'color',\n themeable: true,\n required: true,\n description:\n 'The travelling highlight color \\u2014 a soft sheen over the bars (default: theme border).',\n },\n {\n name: 'barColor',\n type: 'string',\n role: 'color',\n themeable: true,\n required: true,\n description: 'Resting fill of the placeholder bars / thumbnail (default: theme surface).',\n },\n {\n name: 'cardColor',\n type: 'string',\n role: 'color',\n themeable: true,\n required: true,\n description:\n 'Card (panel) background \\u2014 the translucent glass fill (default: theme background).',\n },\n {\n name: 'borderColor',\n type: 'string',\n role: 'color',\n themeable: true,\n required: true,\n description: 'Card border color (the 1px-equivalent stroke) (default: theme border).',\n },\n {\n name: 'delay',\n type: 'int',\n role: 'delayFrames',\n themeable: false,\n required: false,\n default: '0',\n description:\n \"Frames before the card enters. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'width',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '480',\n description: 'Card width in px.',\n },\n {\n name: 'height',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n description: 'Card height in px. undefined sizes the card to its content.',\n },\n {\n name: 'barHeight',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '18',\n description: 'Base bar height in px.',\n },\n {\n name: 'padding',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '32',\n description: 'Inner padding of the card in px.',\n },\n ],\n schema: skeletonCardSchema,\n },\n {\n slug: 'slide-in',\n name: 'SlideIn',\n category: 'Motion',\n title: 'Slide In',\n description:\n 'Wraps content in a directional translate + fade entrance on the house spring; direction names the settling direction.',\n pickWhen:\n 'Reach for this to bring a block of content into place with a short directional slide-and-fade entrance.',\n composes: [],\n sceneRole: 'wrapper',\n occlusion: 'non_occluding',\n example: { direction: 'up', distance: 16, delay: 6, durationInFrames: 30 },\n props: [\n {\n name: 'delay',\n type: 'int',\n role: 'delayFrames',\n themeable: false,\n required: false,\n default: '0',\n description:\n \"Frames to wait before the animation starts. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'durationInFrames',\n type: 'int',\n role: 'durationFrames',\n themeable: false,\n required: false,\n default: 'DURATION.base',\n description:\n \"Frames to fully settle into place. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'direction',\n type: 'enum',\n role: 'enum',\n themeable: false,\n required: false,\n enumValues: ['up', 'down', 'left', 'right'],\n default: \"'up'\",\n description: \"Settling direction; 'up' rises into place from below.\",\n },\n {\n name: 'distance',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '12',\n description: 'Travel distance in px (12-24 Onda envelope).',\n },\n ],\n schema: slideInSchema,\n },\n {\n slug: 'slide-out',\n name: 'SlideOut',\n category: 'Motion',\n title: 'Slide Out',\n description:\n 'Wraps content and animates a directional translate + fade-out on the house ease; `direction` names where it leaves toward.',\n pickWhen:\n 'Use to exit a content block off-frame with a short directional slide and fade \\u2014 the counterpart to a slide-in entrance.',\n composes: [],\n sceneRole: 'wrapper',\n occlusion: 'non_occluding',\n example: { direction: 'down', distance: 16, durationInFrames: 12, delay: 0 },\n props: [\n {\n name: 'delay',\n type: 'int',\n role: 'delayFrames',\n themeable: false,\n required: false,\n default: '0',\n description:\n \"Frames before the exit animation starts. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'durationInFrames',\n type: 'int',\n role: 'durationFrames',\n themeable: false,\n required: false,\n default: 'DURATION.fast',\n description:\n \"Frames to fully leave; exits are quicker than entrances. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'direction',\n type: 'enum',\n role: 'enum',\n themeable: false,\n required: false,\n enumValues: ['up', 'down', 'left', 'right'],\n default: \"'down'\",\n description: \"Direction the element leaves toward ('down' drops it).\",\n },\n {\n name: 'distance',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '12',\n description: 'Travel distance in px for the slide.',\n },\n ],\n schema: slideOutSchema,\n },\n {\n slug: 'slot-machine-roll',\n name: 'SlotMachineRoll',\n category: 'Text',\n title: 'Slot Machine Roll',\n description:\n 'Each character spins down a reel of glyphs and lands on its target, staggered left-to-right like a slot machine settling.',\n pickWhen:\n 'Reveal a short string (a year, count, score, or code) with a number-roll / slot-machine spin where each character settles in turn.',\n composes: [],\n sceneRole: 'block',\n occlusion: 'centered',\n example: {\n text: '2026',\n charDelay: 4,\n reelLength: 14,\n charset: '0123456789',\n fontSize: 160,\n fontWeight: 700,\n align: 'center',\n },\n props: [\n {\n name: 'text',\n type: 'string',\n role: 'text',\n themeable: false,\n required: false,\n default: \"'2026'\",\n description: 'The text that rolls into place. Best on short strings (years, counts).',\n },\n {\n name: 'delay',\n type: 'int',\n role: 'delayFrames',\n themeable: false,\n required: false,\n default: '0',\n description:\n \"Frames before rolling starts. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'charDelay',\n type: 'int',\n role: 'delayFrames',\n themeable: false,\n required: false,\n default: '4',\n description:\n \"Frames between successive characters starting their roll. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'durationInFrames',\n type: 'int',\n role: 'durationFrames',\n themeable: false,\n required: false,\n default: 'DURATION.slow',\n description: \"Frames for each character's reel to settle (default DURATION.slow = 24).\",\n },\n {\n name: 'reelLength',\n type: 'int',\n role: 'count',\n themeable: false,\n required: false,\n default: '12',\n description: 'How many filler glyphs spin past before the target lands.',\n },\n {\n name: 'seed',\n type: 'int',\n role: 'integer',\n themeable: false,\n required: false,\n default: '7',\n description: 'Seed for the (deterministic) filler glyphs.',\n },\n {\n name: 'charset',\n type: 'string',\n role: 'text',\n themeable: false,\n required: false,\n default: \"'0123456789'\",\n description: 'Glyph pool the reel spins through.',\n },\n {\n name: 'color',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Text color (default: theme text).',\n },\n {\n name: 'fontSize',\n type: 'number',\n role: 'fontSize',\n themeable: false,\n required: false,\n default: '140',\n description: 'Font size in px (default 140). The cell height equals this.',\n },\n {\n name: 'fontFamily',\n type: 'string',\n role: 'fontFamily',\n themeable: true,\n required: false,\n description:\n 'Monospace/display stack keeps reels column-aligned (default: theme fontFamily).',\n },\n {\n name: 'fontWeight',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '600',\n description: 'Font weight (default 600).',\n },\n {\n name: 'italic',\n type: 'boolean',\n role: 'boolean',\n themeable: false,\n required: false,\n default: 'false',\n description: 'Italic glyphs.',\n },\n {\n name: 'align',\n type: 'enum',\n role: 'enum',\n themeable: false,\n required: false,\n enumValues: ['left', 'center', 'right'],\n default: \"'center'\",\n description: \"Horizontal anchoring of the whole block (default 'center').\",\n },\n {\n name: 'x',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n description:\n \"Absolute x of the block's anchor. Defaults to the canvas horizontal center (respecting align).\",\n },\n {\n name: 'y',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n description: \"Absolute y of the block's top. Defaults to vertically centering the row.\",\n },\n {\n name: 'placement',\n type: 'unknown',\n role: 'placement',\n themeable: false,\n required: false,\n description:\n \"Where the element sits: a region keyword ('center', 'lower-third', 'upper-third', 'top', 'bottom', 'left', 'right', 'top-left', 'top-right', 'bottom-left', 'bottom-right') or normalized {x,y} (0-1 canvas fractions, element-center anchored). The shared placement contract; default 'center'. Supersedes the deprecated px x/y props.\",\n },\n {\n name: 'fit',\n type: 'enum',\n role: 'enum',\n themeable: false,\n required: false,\n enumValues: ['none', 'frame'],\n description:\n \"Opt-in auto-fit: 'frame' scales the font size DOWN (never up) so the line cannot exceed the frame minus the safe margins. Default 'none'.\",\n },\n {\n name: 'maxWidth',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n description:\n 'Explicit width cap in px for the line; combines with fit (the smaller cap wins).',\n },\n {\n name: 'fitToClip',\n type: 'boolean',\n role: 'boolean',\n themeable: false,\n required: false,\n description:\n 'Compress the whole timing envelope (delay, stagger, durations) so the entrance settles at least hold before the end of the enclosing clip. Opt-in.',\n },\n {\n name: 'maxSettle',\n type: 'unknown',\n role: 'durationFrames',\n themeable: false,\n required: false,\n description: \"Hard cap on the settle time (frames or '0.5s'). Wins over fitToClip.\",\n },\n {\n name: 'hold',\n type: 'unknown',\n role: 'durationFrames',\n themeable: false,\n required: false,\n description: 'Breathing room before the cut for fitToClip (default 6 frames).',\n },\n {\n name: 'variant',\n type: 'int',\n role: 'integer',\n themeable: false,\n required: false,\n description:\n \"Integer 'take' selector: derives a new deterministic seed from (seed, variant), so alternates never require hand-edited seeds. 0/omitted = the default take.\",\n },\n ],\n schema: slotMachineRollSchema,\n },\n {\n slug: 'split-screen',\n name: 'SplitScreen',\n category: 'Layout',\n title: 'Split Screen',\n description:\n 'Two side-by-side (or stacked) content panes divided by a thin token line, sliding apart from the center seam on entrance.',\n pickWhen:\n 'Use to show two pieces of content at once \\u2014 before/after, comparison, dual-pane layouts \\u2014 each pane clipped to its own rect with a divider between them.',\n composes: [],\n sceneRole: 'wrapper',\n occlusion: 'full_frame',\n example: { orientation: 'horizontal', ratio: 0.5, gap: 24, divider: true, animate: true },\n props: [\n {\n name: 'orientation',\n type: 'enum',\n role: 'enum',\n themeable: false,\n required: false,\n enumValues: ['horizontal', 'vertical'],\n default: \"'horizontal'\",\n description: 'Pane axis: horizontal = side-by-side, vertical = stacked.',\n },\n {\n name: 'ratio',\n type: 'number',\n role: 'fraction',\n themeable: false,\n required: false,\n default: '0.5',\n description: 'Fraction (0..1) of the main axis given to the left (or top) pane.',\n },\n {\n name: 'gap',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '0',\n description: 'Gap between the two panes in px.',\n },\n {\n name: 'divider',\n type: 'boolean',\n role: 'boolean',\n themeable: false,\n required: false,\n default: 'true',\n description: 'Draw a thin token divider in the gap between the panes.',\n },\n {\n name: 'animate',\n type: 'boolean',\n role: 'boolean',\n themeable: false,\n required: false,\n default: 'true',\n description: 'Slide the two panes apart from the center seam on the house spring.',\n },\n {\n name: 'delay',\n type: 'int',\n role: 'delayFrames',\n themeable: false,\n required: false,\n default: '0',\n description:\n \"Frames before the entrance. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'width',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n description: 'Overall width in px. Defaults to the full composition width.',\n },\n {\n name: 'height',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n description: 'Overall height in px. Defaults to the full composition height.',\n },\n {\n name: 'paneBackground',\n type: 'string',\n role: 'color',\n themeable: false,\n required: false,\n description: 'Pane background fill (default: lifted surface fill).',\n },\n {\n name: 'background',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description:\n 'Outer (gutter) background fill, seen in the gap behind the divider (default: theme background).',\n },\n {\n name: 'dividerColor',\n type: 'string',\n role: 'color',\n themeable: false,\n required: false,\n description: 'Divider color (thin token line) (default: brighter hairline edge color).',\n },\n {\n name: 'placeholderColor',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Placeholder label color for an empty pane (default: theme textMuted).',\n },\n {\n name: 'fontFamily',\n type: 'string',\n role: 'fontFamily',\n themeable: true,\n required: false,\n description: 'Loaded font family for empty-pane placeholders (default: theme fontFamily).',\n },\n ],\n schema: splitScreenSchema,\n },\n {\n slug: 'spotlight',\n name: 'Spotlight',\n category: 'Effects',\n title: 'Spotlight',\n description:\n 'A soft radial light that grows from radius 0 to its target, revealing whatever sits beneath it through a fade-to-transparent disc.',\n pickWhen:\n 'Use to spotlight or reveal content with an expanding circle of light over a darker scene; pair as an overlay above other components. Note: the soft gradient renders only on the GPU/Vello backend (CPU collapses it to a solid disc).',\n composes: [],\n sceneRole: 'overlay',\n occlusion: 'full_frame',\n example: { x: 0.5, y: 0.4, radius: 45, delay: 6, softness: 70 },\n props: [\n {\n name: 'x',\n type: 'number',\n role: 'fraction',\n themeable: false,\n required: false,\n default: '0.5',\n description: 'Horizontal center of the spotlight as a 0\\u20131 fraction of canvas width.',\n },\n {\n name: 'y',\n type: 'number',\n role: 'fraction',\n themeable: false,\n required: false,\n default: '0.5',\n description: 'Vertical center of the spotlight as a 0\\u20131 fraction of canvas height.',\n },\n {\n name: 'radius',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '40',\n description: \"Final radius as a percentage of the canvas's smaller dimension.\",\n },\n {\n name: 'delay',\n type: 'int',\n role: 'delayFrames',\n themeable: false,\n required: false,\n default: '0',\n description:\n \"Frames before the reveal starts. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'durationInFrames',\n type: 'int',\n role: 'durationFrames',\n themeable: false,\n required: false,\n default: 'DURATION.slow',\n description:\n \"Frames until the spotlight reaches its full radius. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'color',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Light color (defaults to theme `text`). Hex `#rrggbb` / `#rrggbbaa`.',\n },\n {\n name: 'softness',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '60',\n description:\n 'Gradient softness \\u2014 % of the radius given over to the fade-to-transparent tail; 0 is a hard disc, 100 fades from the very center.',\n },\n ],\n schema: spotlightSchema,\n },\n {\n slug: 'spotlight-card',\n name: 'SpotlightCard',\n category: 'UI',\n title: 'Spotlight Card',\n description:\n 'A centered glass card that rises in on the house spring with a soft spotlight drifting behind eyebrow/title/body content.',\n pickWhen:\n 'Use to present a single feature or value-prop on a polished, living glass panel \\u2014 when you want one focused card with a drifting accent glow, not a grid or full-bleed layout.',\n composes: ['Spotlight', 'FadeIn'],\n sceneRole: 'block',\n occlusion: 'centered',\n example: {\n eyebrow: 'FEATURE',\n title: 'Motion identity',\n body: 'One consistent feel across every component.',\n width: 560,\n padding: 48,\n align: 'left',\n titleSize: 44,\n bodySize: 20,\n eyebrowSize: 15,\n },\n props: [\n {\n name: 'eyebrow',\n type: 'string',\n role: 'text',\n themeable: false,\n required: false,\n default: \"'FEATURE'\",\n description: 'Small uppercase kicker above the title; empty hides it.',\n },\n {\n name: 'title',\n type: 'string',\n role: 'text',\n themeable: false,\n required: false,\n default: \"'Motion identity'\",\n description: 'Card headline rendered in the display font.',\n },\n {\n name: 'body',\n type: 'string',\n role: 'text',\n themeable: false,\n required: false,\n default: \"'One consistent feel across every component.'\",\n description: 'Supporting body copy; empty hides it; single line.',\n },\n {\n name: 'delay',\n type: 'number',\n role: 'delayFrames',\n themeable: false,\n required: false,\n default: '0',\n description:\n \"Frames before the card enters. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'glowColor',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description:\n 'The drifting spotlight color \\u2014 the earned accent (default: theme accent).',\n },\n {\n name: 'width',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '560',\n description: 'Card width in px.',\n },\n {\n name: 'height',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n description: 'Card height in px; if omitted, sized from content plus padding.',\n },\n {\n name: 'padding',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '48',\n description: 'Inner padding in px.',\n },\n {\n name: 'align',\n type: 'enum',\n role: 'enum',\n themeable: false,\n required: false,\n enumValues: ['left', 'center'],\n default: \"'left'\",\n description: 'Text alignment within the card.',\n },\n {\n name: 'fontFamily',\n type: 'string',\n role: 'fontFamily',\n themeable: true,\n required: false,\n description:\n 'Display font for the title (default: theme headingFamily ?? theme.fontFamily).',\n },\n {\n name: 'bodyFontFamily',\n type: 'string',\n role: 'fontFamily',\n themeable: true,\n required: false,\n description: 'Font family for the eyebrow and body copy (default: theme fontFamily).',\n },\n {\n name: 'titleSize',\n type: 'number',\n role: 'fontSize',\n themeable: false,\n required: false,\n default: '44',\n description: 'Title font size in px.',\n },\n {\n name: 'bodySize',\n type: 'number',\n role: 'fontSize',\n themeable: false,\n required: false,\n default: '20',\n description: 'Body font size in px.',\n },\n {\n name: 'eyebrowSize',\n type: 'number',\n role: 'fontSize',\n themeable: false,\n required: false,\n default: '15',\n description: 'Eyebrow font size in px.',\n },\n {\n name: 'titleColor',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Title color (default: theme text).',\n },\n {\n name: 'bodyColor',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Body color (default: theme textMuted).',\n },\n {\n name: 'eyebrowColor',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Eyebrow color (default: theme textMuted).',\n },\n {\n name: 'background',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Card glass fill, translucent dark by default (default: theme surface).',\n },\n {\n name: 'borderColor',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Card border (stroke) color (default: theme border).',\n },\n {\n name: 'cornerRadius',\n type: 'number',\n role: 'number',\n themeable: true,\n required: false,\n description: 'Corner radius in px (default: theme radius).',\n },\n ],\n schema: spotlightCardSchema,\n },\n {\n slug: 'stagger-group',\n name: 'StaggerGroup',\n category: 'Motion',\n title: 'Stagger Group',\n description:\n 'Reveals a list of text lines in sequence on the canonical Onda stagger cascade, each item fading and rising in offset from the last.',\n pickWhen:\n 'Use to reveal a short list of lines (features, principles, steps) one after another with the signature Onda staggered fade-and-rise cascade.',\n composes: [],\n sceneRole: 'block',\n occlusion: 'centered',\n example: {\n items: ['Less is more', 'Calm is power', 'Motion has a feel', 'Made to be edited'],\n direction: 'column',\n gap: 16,\n align: 'center',\n fontSize: 48,\n fontWeight: 600,\n stagger: 4,\n },\n props: [\n {\n name: 'items',\n type: 'stringArray',\n role: 'array',\n themeable: false,\n required: false,\n default: \"['Less is more', 'Calm is power', 'Motion has a feel', 'Made to be edited']\",\n description: 'The items to reveal, in source order.',\n },\n {\n name: 'delay',\n type: 'int',\n role: 'delayFrames',\n themeable: false,\n required: false,\n default: '0',\n description:\n \"Frames before the first item starts. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'stagger',\n type: 'int',\n role: 'delayFrames',\n themeable: false,\n required: false,\n default: 'STAGGER',\n description:\n \"Frames between consecutive items; canonical Onda stagger is 4. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'duration',\n type: 'int',\n role: 'durationFrames',\n themeable: false,\n required: false,\n default: 'DURATION.base',\n description:\n \"Per-item reveal duration in frames. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'direction',\n type: 'enum',\n role: 'enum',\n themeable: false,\n required: false,\n enumValues: ['row', 'column'],\n default: \"'column'\",\n description: 'Layout direction for the items.',\n },\n {\n name: 'gap',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '16',\n description: 'Pixels between items.',\n },\n {\n name: 'align',\n type: 'enum',\n role: 'enum',\n themeable: false,\n required: false,\n enumValues: ['start', 'center', 'end'],\n default: \"'center'\",\n description: 'Cross-axis alignment of items.',\n },\n {\n name: 'color',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Text color; defaults to theme text.',\n },\n {\n name: 'fontSize',\n type: 'number',\n role: 'fontSize',\n themeable: false,\n required: false,\n default: '48',\n description: 'Font size in px.',\n },\n {\n name: 'fontFamily',\n type: 'string',\n role: 'fontFamily',\n themeable: true,\n required: false,\n description: 'Loaded font family; defaults to theme fontFamily.',\n },\n {\n name: 'fontWeight',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '600',\n description: 'Font weight; display default 600.',\n },\n ],\n schema: staggerGroupSchema,\n },\n {\n slug: 'card-showcase',\n name: 'CardShowcase',\n category: 'Content',\n title: 'Card Showcase',\n description:\n 'A premium card/product showcase: a tilted 3×3 grid of cards (a colored brand HERO in the center + muted tier variants) that settles with a slight zoom, slides its three rows apart on diagonals, then converges to a centered cluster as the middle parts to reveal the brand. Built for fintech/brand/product ads.',\n pickWhen:\n 'Use to launch a card-based product or a brand (fintech cards, membership tiers, app screens) with a confident, ad-grade reveal that lands on the brand in the center.',\n composes: [],\n sceneRole: 'block',\n occlusion: 'full_frame',\n example: {\n brand: 'Lumen',\n network: 'VISA',\n heroColor: '#3D2BE0',\n tierColors: ['#111114', '#F3F3F6', '#8E93A1', '#5B3EE0'],\n duration: '8s',\n },\n props: [\n {\n name: 'brand',\n type: 'string',\n role: 'text',\n themeable: false,\n required: false,\n default: \"'Lumen'\",\n description: 'Brand wordmark shown big on the hero card + as the centered logo.',\n },\n {\n name: 'network',\n type: 'string',\n role: 'text',\n themeable: false,\n required: false,\n default: \"'VISA'\",\n description: 'Payment-network mark on the hero card (e.g. VISA, Mastercard).',\n },\n {\n name: 'cardNumber',\n type: 'string',\n role: 'text',\n themeable: false,\n required: false,\n default: \"'···· 3346'\",\n description: 'Masked card number on the hero card.',\n },\n {\n name: 'heroColor',\n type: 'string',\n role: 'color',\n themeable: false,\n required: false,\n default: \"'#3D2BE0'\",\n description: 'Hero card fill — the brand color.',\n },\n {\n name: 'heroTextColor',\n type: 'string',\n role: 'color',\n themeable: false,\n required: false,\n default: \"'#EAEAFF'\",\n description: 'Text color on the hero card.',\n },\n {\n name: 'tierColors',\n type: 'stringArray',\n role: 'color',\n themeable: false,\n required: false,\n description: 'Palette for the surrounding tier cards (4–6 reads best).',\n },\n {\n name: 'background',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n default: \"'#ECECEF'\",\n description: 'Canvas behind the cards.',\n },\n {\n name: 'tilt',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '-22',\n unit: 'deg',\n description: 'Grid tilt in degrees; rotates to 0 (flat) at the end.',\n },\n {\n name: 'speed',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '320',\n description: 'Slide speed in px/sec.',\n },\n {\n name: 'logo',\n type: 'string',\n role: 'text',\n themeable: false,\n required: false,\n default: \"''\",\n description: 'Center logo text revealed at the end (e.g. a brand). Empty = none.',\n },\n {\n name: 'logoColor',\n type: 'string',\n role: 'color',\n themeable: false,\n required: false,\n description: 'Logo color (default: heroColor).',\n },\n {\n name: 'duration',\n type: 'int',\n role: 'durationFrames',\n themeable: false,\n required: false,\n default: \"'10s'\",\n description:\n \"Total length of the choreography. Accepts frames or a time string ('10s', '600f').\",\n },\n ],\n schema: cardShowcaseSchema,\n },\n {\n slug: 'stat-card',\n name: 'StatCard',\n category: 'Data',\n title: 'Stat Card',\n description:\n 'A single headline metric: a big value, a label beneath it, and a short accent rule, stacked and centered with a staggered fade-in.',\n pickWhen:\n 'Use to spotlight one key number or KPI (e.g. \"100\\u00d7\", \"26.8 fps\") with a supporting label, centered on its own scene.',\n composes: ['FadeIn'],\n sceneRole: 'block',\n occlusion: 'centered',\n example: {\n value: '100\\u00d7',\n label: 'faster than Remotion',\n valueSize: 160,\n labelSize: 36,\n accent: true,\n },\n props: [\n {\n name: 'value',\n type: 'string',\n role: 'text',\n themeable: false,\n required: true,\n description:\n 'The headline metric, e.g. \"26.8 fps\" or \"100\\u00d7\" (a number is stringified).',\n },\n {\n name: 'label',\n type: 'string',\n role: 'text',\n themeable: false,\n required: true,\n description: 'The label beneath the value, e.g. \"faster than Remotion\".',\n },\n {\n name: 'valueSize',\n type: 'number',\n role: 'fontSize',\n themeable: false,\n required: false,\n default: '140',\n description: 'Font size in px for the headline value.',\n },\n {\n name: 'labelSize',\n type: 'number',\n role: 'fontSize',\n themeable: false,\n required: false,\n default: '34',\n description: 'Font size in px for the label.',\n },\n {\n name: 'valueColor',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Value color (default: theme text).',\n },\n {\n name: 'labelColor',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Label color (default: theme textMuted).',\n },\n {\n name: 'accent',\n type: 'unknown',\n role: 'other',\n themeable: false,\n required: false,\n default: 'true',\n description:\n 'Show the accent rule beneath the value: true/undefined shows it (theme accent), false hides it, a string shows it in that color.',\n },\n {\n name: 'accentColor',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description:\n 'Accent rule color (default: theme accent); wins over a string passed to accent.',\n },\n {\n name: 'fontFamily',\n type: 'string',\n role: 'fontFamily',\n themeable: true,\n required: false,\n description: 'Loaded font family for both value and label (default: theme body family).',\n },\n {\n name: 'delay',\n type: 'number',\n role: 'delayFrames',\n themeable: false,\n required: false,\n default: '0',\n description:\n \"Frames to delay before the staggered fade-in begins. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'placement',\n type: 'unknown',\n role: 'placement',\n themeable: false,\n required: false,\n description:\n \"Where the element sits: a region keyword ('center', 'lower-third', 'upper-third', 'top', 'bottom', 'left', 'right', 'top-left', 'top-right', 'bottom-left', 'bottom-right') or normalized {x,y} (0-1 canvas fractions, element-center anchored). The shared placement contract; default 'center'.\",\n },\n ],\n schema: statCardSchema,\n },\n {\n slug: 'terminal',\n name: 'Terminal',\n category: 'UI',\n title: 'Terminal',\n description:\n 'A terminal window where a command types itself out after the prompt, a block cursor blinks, then output lines fade in one by one.',\n pickWhen:\n 'Use to dramatize a CLI command \\u2014 installing a package, running a build, scaffolding a project \\u2014 with realistic typing and staggered output. Reach for it for developer-tooling and code-product demos.',\n composes: [],\n sceneRole: 'block',\n occlusion: 'centered',\n example: {\n command: 'pnpm add @onda-engine/react',\n output: ['\\u2713 resolved 42 packages', '\\u2713 linked dependencies', 'Done in 1.2s'],\n prompt: '$',\n title: 'zsh',\n typeSpeed: 36,\n outputDelay: 10,\n width: 1200,\n },\n props: [\n {\n name: 'command',\n type: 'string',\n role: 'text',\n themeable: false,\n required: false,\n default: \"'npx ondajs add code-block'\",\n description: 'The command that types itself out after the prompt.',\n },\n {\n name: 'output',\n type: 'stringArray',\n role: 'array',\n themeable: false,\n required: false,\n default: \"['\\u2713 added code-block', '\\u2713 wrote 4 files']\",\n description: 'Output lines that appear, staggered, once the command finishes typing.',\n },\n {\n name: 'prompt',\n type: 'string',\n role: 'text',\n themeable: false,\n required: false,\n default: \"'$'\",\n description: 'The shell prompt glyph.',\n },\n {\n name: 'title',\n type: 'string',\n role: 'text',\n themeable: false,\n required: false,\n default: \"'zsh'\",\n description: 'Title-bar label; empty hides it (dots still show if chrome is on).',\n },\n {\n name: 'chrome',\n type: 'boolean',\n role: 'boolean',\n themeable: false,\n required: false,\n default: 'true',\n description: 'Show window chrome (dots + title bar).',\n },\n {\n name: 'delay',\n type: 'int',\n role: 'delayFrames',\n themeable: false,\n required: false,\n default: '0',\n description:\n \"Frames before typing starts. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'typeSpeed',\n type: 'int',\n role: 'durationFrames',\n themeable: false,\n required: false,\n default: '30',\n description:\n \"Frames to type the whole command (linear cadence). Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'outputDelay',\n type: 'int',\n role: 'delayFrames',\n themeable: false,\n required: false,\n default: '8',\n description:\n \"Frames after the command finishes before output begins. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'fontFamily',\n type: 'string',\n role: 'fontFamily',\n themeable: true,\n required: false,\n description: 'Monospace font stack (default: theme monoFamily).',\n },\n {\n name: 'fontSize',\n type: 'number',\n role: 'fontSize',\n themeable: false,\n required: false,\n default: '48',\n description: 'Font size in px, sized for a 1080p+ video canvas.',\n },\n {\n name: 'width',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '1100',\n description:\n 'Width of the window in px, fixed so the frame stays stable while the command types.',\n },\n {\n name: 'textColor',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Command text color (default: theme text).',\n },\n {\n name: 'promptColor',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Prompt glyph color \\u2014 the earned accent (default: theme accent).',\n },\n {\n name: 'outputColor',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Output line color (default: theme textMuted).',\n },\n {\n name: 'background',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Window background color (default: theme surface).',\n },\n {\n name: 'cornerRadius',\n type: 'number',\n role: 'number',\n themeable: true,\n required: false,\n description: 'Window corner radius in px (default: theme radius).',\n },\n {\n name: 'x',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n description: \"Absolute x of the window's top-left; defaults to horizontally centered.\",\n },\n {\n name: 'y',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n description: \"Absolute y of the window's top-left; defaults to vertically centered.\",\n },\n {\n name: 'placement',\n type: 'unknown',\n role: 'placement',\n themeable: false,\n required: false,\n description:\n \"Where the element sits: a region keyword ('center', 'lower-third', 'upper-third', 'top', 'bottom', 'left', 'right', 'top-left', 'top-right', 'bottom-left', 'bottom-right') or normalized {x,y} (0-1 canvas fractions, element-center anchored). The shared placement contract; default 'center'. Supersedes the deprecated px x/y props.\",\n },\n ],\n schema: terminalSchema,\n },\n {\n slug: 'text-fade-replace',\n name: 'TextFadeReplace',\n category: 'Text',\n title: 'Text Fade Replace',\n description:\n 'Crossfades one phrase into another in place \\u2014 the old text fades out as the new text fades in, with no layout shift.',\n pickWhen:\n 'Use to swap one short tagline or value prop for another in the same spot, e.g. \"ship\" \\u2192 \"render\", without the line moving.',\n composes: [],\n sceneRole: 'block',\n occlusion: 'centered',\n example: {\n from: 'Ideas',\n to: 'Reality',\n delay: 45,\n durationInFrames: 18,\n fontSize: 110,\n fontWeight: 700,\n },\n props: [\n {\n name: 'from',\n type: 'string',\n role: 'text',\n themeable: false,\n required: true,\n description: 'The outgoing phrase (shown first, fades out).',\n },\n {\n name: 'to',\n type: 'string',\n role: 'text',\n themeable: false,\n required: true,\n description: 'The incoming phrase (fades in over `from`).',\n },\n {\n name: 'delay',\n type: 'int',\n role: 'delayFrames',\n themeable: false,\n required: false,\n default: 'DURATION.hold',\n description:\n \"Frames before the crossfade begins; until then only `from` is shown (default 45). Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'durationInFrames',\n type: 'int',\n role: 'durationFrames',\n themeable: false,\n required: false,\n default: 'DURATION.base',\n description:\n \"Frames the crossfade takes \\u2014 old out over the first half, new in over the second (default 18). Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'fontSize',\n type: 'number',\n role: 'fontSize',\n themeable: false,\n required: false,\n default: '96',\n description: 'Font size in px (default 96).',\n },\n {\n name: 'color',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Text color (hex #rrggbb / #rrggbbaa); defaults to theme `text`.',\n },\n {\n name: 'fontFamily',\n type: 'string',\n role: 'fontFamily',\n themeable: true,\n required: false,\n description: 'Loaded font family; defaults to theme `headingFamily`.',\n },\n {\n name: 'fontWeight',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '600',\n description: 'Font weight (default 600).',\n },\n ],\n schema: textFadeReplaceSchema,\n },\n {\n slug: 'timeline',\n name: 'Timeline',\n category: 'Data',\n title: 'Timeline',\n description:\n 'A vertical event timeline: a line draws on top-to-bottom, dots cascade down with the canonical stagger, and labels fade in beside each dot \\u2014 the final dot earns the accent.',\n pickWhen:\n 'Use to present an ordered sequence of milestones, phases, or steps down the canvas where the last item is the focal/earned moment.',\n composes: [],\n sceneRole: 'data-viz',\n occlusion: 'centered',\n example: {\n events: [{ label: 'Concept' }, { label: 'Prototype' }, { label: 'Build' }, { label: 'Ship' }],\n spacing: 120,\n dotSize: 18,\n fontSize: 30,\n },\n props: [\n {\n name: 'events',\n type: 'object',\n role: 'array',\n themeable: false,\n required: false,\n default: 'DEFAULT_EVENTS',\n description:\n 'Anchor points down the timeline (each { label }). Order is preserved \\u2014 top to bottom.',\n },\n {\n name: 'delay',\n type: 'int',\n role: 'delayFrames',\n themeable: false,\n required: false,\n default: '0',\n description:\n \"Frames before the line begins to draw. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'lineDuration',\n type: 'int',\n role: 'durationFrames',\n themeable: false,\n required: false,\n default: 'DURATION.slow',\n description:\n \"Frames over which the vertical line reveals itself top-to-bottom. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'dotDelay',\n type: 'int',\n role: 'delayFrames',\n themeable: false,\n required: false,\n default: '8',\n description:\n \"Frames between the line completing and the first dot appearing. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'dotStagger',\n type: 'int',\n role: 'delayFrames',\n themeable: false,\n required: false,\n default: 'STAGGER',\n description:\n \"Frames between consecutive dot entrances (canonical Onda stagger = 4). Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'dotDuration',\n type: 'int',\n role: 'durationFrames',\n themeable: false,\n required: false,\n default: 'DURATION.base',\n description:\n \"Per-dot entrance duration in frames. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'dotSize',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '18',\n description: 'Dot diameter in px.',\n },\n {\n name: 'spacing',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '110',\n description: 'Vertical distance between consecutive events, in px.',\n },\n {\n name: 'lineWidth',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '4',\n description: 'Line thickness in px.',\n },\n {\n name: 'lineColor',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Line color (default: theme border).',\n },\n {\n name: 'dotColor',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Non-final dot color (default: theme text).',\n },\n {\n name: 'accentColor',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Final dot color \\u2014 the earned accent (default: theme accent).',\n },\n {\n name: 'labelColor',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Label color (default: theme textMuted).',\n },\n {\n name: 'fontSize',\n type: 'number',\n role: 'fontSize',\n themeable: false,\n required: false,\n default: '28',\n description: 'Label font size in px.',\n },\n {\n name: 'fontFamily',\n type: 'string',\n role: 'fontFamily',\n themeable: true,\n required: false,\n description: 'Loaded font family for labels (default: theme headingFamily ?? fontFamily).',\n },\n ],\n schema: timelineSchema,\n },\n {\n slug: 'title-card',\n name: 'TitleCard',\n category: 'Text',\n title: 'Title Card',\n description: 'A centered title with an optional subtitle, each fading in with a short stagger.',\n pickWhen:\n 'Use for an opening hero title or section intro \\u2014 a large centered headline with an optional subtitle beneath it, both fading in.',\n composes: ['FadeIn'],\n sceneRole: 'block',\n occlusion: 'centered',\n example: {\n title: 'Onda',\n subtitle: 'premium motion graphics',\n titleSize: 120,\n subtitleSize: 40,\n delay: 6,\n },\n props: [\n {\n name: 'title',\n type: 'string',\n role: 'text',\n themeable: false,\n required: true,\n description: 'The hero headline rendered as the large centered title.',\n },\n {\n name: 'subtitle',\n type: 'string',\n role: 'text',\n themeable: false,\n required: false,\n description:\n 'Optional smaller phrase shown beneath the title, fading in one stagger step later.',\n },\n {\n name: 'titleSize',\n type: 'number',\n role: 'fontSize',\n themeable: false,\n required: false,\n default: '96',\n description: 'Title font size in px.',\n },\n {\n name: 'subtitleSize',\n type: 'number',\n role: 'fontSize',\n themeable: false,\n required: false,\n default: '36',\n description: 'Subtitle font size in px.',\n },\n {\n name: 'titleColor',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Title color (defaults to theme text).',\n },\n {\n name: 'subtitleColor',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Subtitle color (defaults to theme textMuted).',\n },\n {\n name: 'fontFamily',\n type: 'string',\n role: 'fontFamily',\n themeable: true,\n required: false,\n description: 'Loaded font family (defaults to theme heading family, else body family).',\n },\n {\n name: 'delay',\n type: 'number',\n role: 'delayFrames',\n themeable: false,\n required: false,\n default: '0',\n description:\n \"Frame the title begins fading in; the subtitle follows by one stagger step. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'placement',\n type: 'unknown',\n role: 'placement',\n themeable: false,\n required: false,\n description:\n \"Where the element sits: a region keyword ('center', 'lower-third', 'upper-third', 'top', 'bottom', 'left', 'right', 'top-left', 'top-right', 'bottom-left', 'bottom-right') or normalized {x,y} (0-1 canvas fractions, element-center anchored). The shared placement contract; default 'center'.\",\n },\n {\n name: 'fit',\n type: 'enum',\n role: 'enum',\n themeable: false,\n required: false,\n enumValues: ['none', 'frame'],\n description:\n \"Opt-in auto-fit: 'frame' scales the font size DOWN (never up) so the line cannot exceed the frame minus the safe margins. Default 'none'.\",\n },\n {\n name: 'maxWidth',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n description:\n 'Explicit width cap in px for the line; combines with fit (the smaller cap wins).',\n },\n ],\n schema: titleCardSchema,\n },\n {\n slug: 'tracking-in',\n name: 'TrackingIn',\n category: 'Text',\n title: 'Tracking In',\n description:\n 'A cinematic title that begins spread wide and contracts its letter-spacing to rest, fading in as it settles.',\n pickWhen:\n 'Use for a confident, cinematic single-line title or hero word entrance where the text tightens from wide tracking and fades into place.',\n composes: [],\n sceneRole: 'block',\n occlusion: 'centered',\n example: {\n text: 'ONDA',\n fontSize: 120,\n fromTracking: 0.6,\n tracking: -0.02,\n blur: true,\n fontWeight: 600,\n },\n props: [\n {\n name: 'text',\n type: 'string',\n role: 'text',\n themeable: false,\n required: false,\n default: \"'Onda'\",\n description: 'The text to settle in.',\n },\n {\n name: 'delay',\n type: 'int',\n role: 'delayFrames',\n themeable: false,\n required: false,\n default: '0',\n description:\n \"Frames before the entrance starts. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'durationInFrames',\n type: 'int',\n role: 'durationFrames',\n themeable: false,\n required: false,\n default: 'DURATION.slow',\n description:\n \"Frames until the text settles (default DURATION.slow = 24). Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'color',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Text color (hex #rrggbb / #rrggbbaa); defaults to theme text.',\n },\n {\n name: 'fromTracking',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '0.5',\n description:\n 'Starting letter-spacing in em \\u2014 the text begins spread wide and contracts.',\n },\n {\n name: 'tracking',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '-0.02',\n description: 'Resting letter-spacing in em.',\n },\n {\n name: 'blur',\n type: 'boolean',\n role: 'boolean',\n themeable: false,\n required: false,\n default: 'true',\n description:\n 'Start the text soft and sharpen as it settles (approximated as a fading ghost layer).',\n },\n {\n name: 'fontSize',\n type: 'number',\n role: 'fontSize',\n themeable: false,\n required: false,\n default: '96',\n description: 'Font size in px.',\n },\n {\n name: 'fontFamily',\n type: 'string',\n role: 'fontFamily',\n themeable: true,\n required: false,\n description:\n 'Loaded font family (e.g. a --font passed to onda render); defaults to theme fontFamily.',\n },\n {\n name: 'fontWeight',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '600',\n description: 'Font weight (display default 600).',\n },\n {\n name: 'italic',\n type: 'boolean',\n role: 'boolean',\n themeable: false,\n required: false,\n default: 'false',\n description: 'Italic text.',\n },\n {\n name: 'align',\n type: 'enum',\n role: 'enum',\n themeable: false,\n required: false,\n enumValues: ['left', 'center', 'right'],\n default: \"'center'\",\n description: 'Horizontal alignment of the line about x.',\n },\n {\n name: 'advanceFactor',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n description:\n 'Deprecated and unused; accepted for compat (real shaped letter-spacing metrics are used now).',\n },\n {\n name: 'x',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n description: 'Absolute x anchor of the line (default canvas center).',\n },\n {\n name: 'y',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n description: \"Absolute y of the line's top (default vertical center).\",\n },\n ],\n schema: trackingInSchema,\n },\n {\n slug: 'typewriter',\n name: 'Typewriter',\n category: 'Text',\n title: 'Typewriter',\n description:\n 'Reveals a single line of text character-by-character at a constant cadence, with an optional blinking cursor at the leading edge.',\n pickWhen:\n 'Use for a terminal/keyboard-style typing reveal of one short line; reach for a different text component when you need multi-line copy, word-by-word, or spring-based reveals.',\n composes: [],\n sceneRole: 'block',\n occlusion: 'centered',\n example: {\n text: 'building the future',\n durationInFrames: 30,\n fontSize: 72,\n fontWeight: 500,\n cursor: true,\n },\n props: [\n {\n name: 'text',\n type: 'string',\n role: 'text',\n themeable: false,\n required: false,\n default: \"'motion graphics'\",\n description: 'What to type out.',\n },\n {\n name: 'delay',\n type: 'int',\n role: 'delayFrames',\n themeable: false,\n required: false,\n default: '0',\n description:\n \"Frames before typing starts. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'durationInFrames',\n type: 'int',\n role: 'durationFrames',\n themeable: false,\n required: false,\n default: 'DURATION.slow',\n description:\n \"Frames to type the full string; linear pacing means chars-per-frame is constant (default 24). Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'cursor',\n type: 'boolean',\n role: 'boolean',\n themeable: false,\n required: false,\n default: 'true',\n description: 'Show a blinking cursor at the leading edge while typing.',\n },\n {\n name: 'cursorColor',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Cursor color (defaults to theme accent).',\n },\n {\n name: 'color',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Text color (defaults to theme text).',\n },\n {\n name: 'fontSize',\n type: 'number',\n role: 'fontSize',\n themeable: false,\n required: false,\n default: '64',\n description: 'Font size in px.',\n },\n {\n name: 'fontFamily',\n type: 'string',\n role: 'fontFamily',\n themeable: true,\n required: false,\n description: 'Loaded font family (defaults to theme fontFamily).',\n },\n {\n name: 'fontWeight',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '500',\n description: \"Font weight (default 500 reads more 'terminal').\",\n },\n {\n name: 'italic',\n type: 'boolean',\n role: 'boolean',\n themeable: false,\n required: false,\n default: 'false',\n description: 'Italic text.',\n },\n {\n name: 'x',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n description:\n \"Absolute x of the text's left edge (defaults to a centered origin from the measured full-text width).\",\n },\n {\n name: 'y',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n description: 'Absolute y top of the text (defaults to vertical center).',\n },\n {\n name: 'placement',\n type: 'unknown',\n role: 'placement',\n themeable: false,\n required: false,\n description:\n \"Where the element sits: a region keyword ('center', 'lower-third', 'upper-third', 'top', 'bottom', 'left', 'right', 'top-left', 'top-right', 'bottom-left', 'bottom-right') or normalized {x,y} (0-1 canvas fractions, element-center anchored). The shared placement contract; default 'center'. Supersedes the deprecated px x/y props.\",\n },\n {\n name: 'fit',\n type: 'enum',\n role: 'enum',\n themeable: false,\n required: false,\n enumValues: ['none', 'frame'],\n description:\n \"Opt-in auto-fit: 'frame' scales the font size DOWN (never up) so the line cannot exceed the frame minus the safe margins. Default 'none'.\",\n },\n {\n name: 'maxWidth',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n description:\n 'Explicit width cap in px for the line; combines with fit (the smaller cap wins).',\n },\n {\n name: 'fitToClip',\n type: 'boolean',\n role: 'boolean',\n themeable: false,\n required: false,\n description:\n 'Compress the whole timing envelope (delay, stagger, durations) so the entrance settles at least hold before the end of the enclosing clip. Opt-in.',\n },\n {\n name: 'maxSettle',\n type: 'unknown',\n role: 'durationFrames',\n themeable: false,\n required: false,\n description: \"Hard cap on the settle time (frames or '0.5s'). Wins over fitToClip.\",\n },\n {\n name: 'hold',\n type: 'unknown',\n role: 'durationFrames',\n themeable: false,\n required: false,\n description: 'Breathing room before the cut for fitToClip (default 6 frames).',\n },\n ],\n schema: typewriterSchema,\n },\n {\n slug: 'underline',\n name: 'Underline',\n category: 'Text',\n title: 'Underline',\n description:\n 'Text fades in, then a rounded accent rule draws beneath it (width 0 to full) \\u2014 a two-phase emphasis reveal.',\n pickWhen:\n \"Use to emphasize a short word or phrase with an animated accent underline that draws in after the text lands; one of the catalog's rare earned-color moments.\",\n composes: [],\n sceneRole: 'block',\n occlusion: 'centered',\n example: {\n text: 'ship faster',\n fontSize: 96,\n fontWeight: 600,\n align: 'center',\n lineThickness: 4,\n lineDelay: 8,\n },\n props: [\n {\n name: 'text',\n type: 'string',\n role: 'text',\n themeable: false,\n required: false,\n default: \"'underline this'\",\n description: 'Text to reveal. Pass \"\" to draw the rule alone.',\n },\n {\n name: 'delay',\n type: 'int',\n role: 'delayFrames',\n themeable: false,\n required: false,\n default: '0',\n description:\n \"Frames before the text starts revealing. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'duration',\n type: 'int',\n role: 'durationFrames',\n themeable: false,\n required: false,\n default: 'DURATION.base',\n description:\n \"Text reveal duration in frames (default DURATION.base = 18). Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'lineDelay',\n type: 'int',\n role: 'delayFrames',\n themeable: false,\n required: false,\n default: '8',\n description:\n \"Frames to wait after the text lands before the rule starts drawing. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'lineDuration',\n type: 'int',\n role: 'durationFrames',\n themeable: false,\n required: false,\n default: 'DURATION.fast',\n description:\n \"Rule draw duration. Fast on purpose \\u2014 emphatic (default DURATION.fast). Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'color',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Text color (default: theme text).',\n },\n {\n name: 'accentColor',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Rule color (default: theme accent).',\n },\n {\n name: 'lineThickness',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '3',\n description: 'Rule thickness in px.',\n },\n {\n name: 'lineOffset',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '6',\n description: 'Pixel gap between the text box and the rule.',\n },\n {\n name: 'fontSize',\n type: 'number',\n role: 'fontSize',\n themeable: false,\n required: false,\n default: '64',\n description: 'Text size in px (default 64).',\n },\n {\n name: 'fontFamily',\n type: 'string',\n role: 'fontFamily',\n themeable: true,\n required: false,\n description:\n 'Loaded font family (e.g. a --font passed to onda render); defaults to theme font.',\n },\n {\n name: 'fontWeight',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '600',\n description: 'Font weight (display default 600).',\n },\n {\n name: 'align',\n type: 'enum',\n role: 'enum',\n themeable: false,\n required: false,\n enumValues: ['left', 'center', 'right'],\n default: \"'left'\",\n description: 'Horizontal alignment of the rule under the text.',\n },\n ],\n schema: underlineSchema,\n },\n {\n slug: 'video-clip',\n name: 'VideoClip',\n category: 'Media',\n title: 'Video Clip',\n description:\n 'A trimmed, fade-enveloped video clip fitted into a box \\u2014 decoded per composition frame, with head/tail trim, re-timing, looping, and optional cinematic letterbox bars.',\n pickWhen:\n \"Use to play a real video source (a b-roll shot, screen capture, or stock clip) inside a composition with Onda's fade-in/out envelope, trimmed and fitted to a box. Prefer over raw Video when you want the motion fingerprint, rounded clipping, or letterbox bars.\",\n composes: [],\n sceneRole: 'media',\n occlusion: 'full_frame',\n example: {\n src: 'https://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4',\n startAt: 2,\n endAt: 8,\n fit: 'cover',\n fadeIn: 18,\n fadeOut: 18,\n durationInFrames: 150,\n letterbox: 80,\n borderRadius: 16,\n },\n props: [\n {\n name: 'src',\n type: 'string',\n role: 'url',\n themeable: false,\n required: true,\n description:\n 'URL or path to the video, decoded per composition frame by the player or onda export.',\n },\n {\n name: 'startAt',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '0',\n description: \"Seconds into the source shown at the clip's frame 0 (trims the head).\",\n },\n {\n name: 'playbackRate',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '1',\n description: 'Source seconds advanced per composition second (1 = realtime).',\n },\n {\n name: 'endAt',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n description:\n \"Seconds into the source to stop at (trims the tail); omit to play to the source's end.\",\n },\n {\n name: 'loop',\n type: 'boolean',\n role: 'boolean',\n themeable: false,\n required: false,\n description:\n 'Loop the trimmed span [startAt, endAt) (requires endAt) while the clip is visible.',\n },\n {\n name: 'previewFallback',\n type: 'enum',\n role: 'enum',\n themeable: false,\n required: false,\n enumValues: ['skip', 'element'],\n description:\n \"Preview-only handling of a source the player can't composite: 'skip' blanks it, 'element' overlays a plain video.\",\n },\n {\n name: 'delay',\n type: 'int',\n role: 'delayFrames',\n themeable: false,\n required: false,\n default: '0',\n description:\n \"Frames the clip waits before its fade-in begins. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'fadeIn',\n type: 'int',\n role: 'durationFrames',\n themeable: false,\n required: false,\n default: 'DURATION.base',\n description:\n \"Frames the fade-in takes (0 = hard cut in). Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'fadeOut',\n type: 'int',\n role: 'durationFrames',\n themeable: false,\n required: false,\n default: 'DURATION.base',\n description:\n \"Frames the fade-out takes (0 = hard cut out). Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'durationInFrames',\n type: 'int',\n role: 'durationFrames',\n themeable: false,\n required: false,\n description:\n \"Visible hold of the clip in frames, used to time the fade-out; omit to skip the fade-out. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'fit',\n type: 'enum',\n role: 'enum',\n themeable: false,\n required: false,\n enumValues: ['cover', 'contain'],\n default: \"'cover'\",\n description:\n \"How the frame fits its box: 'cover' crops to fill, 'contain' letterboxes against black.\",\n },\n {\n name: 'width',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n description: 'Box width in px the clip occupies (default = full composition width).',\n },\n {\n name: 'height',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n description: 'Box height in px the clip occupies (default = full composition height).',\n },\n {\n name: 'x',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '0',\n description: 'Top-left x of the box in px.',\n },\n {\n name: 'y',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '0',\n description: 'Top-left y of the box in px.',\n },\n {\n name: 'borderRadius',\n type: 'number',\n role: 'number',\n themeable: true,\n required: false,\n description: 'Rounded corner radius of the box in px (defaults to theme radius).',\n },\n {\n name: 'letterbox',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '0',\n description:\n 'Cinematic black letterbox bars top & bottom, each this many px tall (0 = none).',\n },\n {\n name: 'backgroundColor',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Backing color shown behind/around the poster (defaults to theme background).',\n },\n ],\n schema: videoClipSchema,\n },\n {\n slug: 'vignette',\n name: 'Vignette',\n category: 'Effects',\n title: 'Vignette',\n description:\n 'A static cinematic darkening at the canvas edges that pulls the eye toward the center.',\n pickWhen:\n 'Reach for this to add an atmospheric, film-like edge darkening over an entire scene to focus attention on the center; it is motionless and identical on every frame.',\n composes: [],\n sceneRole: 'overlay',\n occlusion: 'non_occluding',\n example: { intensity: 0.6, innerRadius: 35, color: '#000000' },\n props: [\n {\n name: 'intensity',\n type: 'number',\n role: 'fraction',\n themeable: false,\n required: false,\n default: '0.5',\n description: 'Edge darkness. 0 = no vignette, 1 = fully dark edges.',\n },\n {\n name: 'innerRadius',\n type: 'number',\n role: 'fraction',\n themeable: false,\n required: false,\n default: '40',\n description:\n 'Percent (0..100) from center where the darkening begins; larger means a bigger clean middle.',\n },\n {\n name: 'color',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description:\n 'Edge color; defaults to the theme background (typically black for a classic cinematic frame).',\n },\n ],\n schema: vignetteSchema,\n },\n {\n slug: 'word-rotate',\n name: 'WordRotate',\n category: 'Text',\n title: 'Word Rotate',\n description:\n 'Cycles a list of phrases in place, one at a time \\u2014 each rises in, holds, then fades down as the next arrives.',\n pickWhen:\n 'Use to swap a single word/phrase in a headline (e.g. \"build something fast / beautiful / restrained\") with a smooth rise-and-fade between phrases. Reach for this over a static Text when one slot of the line should animate through several values.',\n composes: [],\n sceneRole: 'block',\n occlusion: 'centered',\n example: {\n phrases: ['fast', 'beautiful', 'restrained'],\n fontSize: 120,\n fontWeight: 600,\n align: 'center',\n holdDuration: 36,\n transitionDuration: 14,\n },\n props: [\n {\n name: 'phrases',\n type: 'stringArray',\n role: 'array',\n themeable: false,\n required: false,\n default: \"['fast', 'beautiful', 'restrained']\",\n description: 'Phrases cycled in place, in order. One is visible at a time.',\n },\n {\n name: 'delay',\n type: 'int',\n role: 'delayFrames',\n themeable: false,\n required: false,\n default: '0',\n description:\n \"Frames before the first phrase begins to enter. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'holdDuration',\n type: 'int',\n role: 'durationFrames',\n themeable: false,\n required: false,\n default: '30',\n description:\n \"Frames each phrase holds at full opacity before the next arrives. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'transitionDuration',\n type: 'int',\n role: 'durationFrames',\n themeable: false,\n required: false,\n default: '12',\n description:\n \"Frames for a single phrase to fade in (and, separately, fade out). Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'color',\n type: 'string',\n role: 'color',\n themeable: true,\n required: false,\n description: 'Text color. Defaults to theme `text`.',\n },\n {\n name: 'fontSize',\n type: 'number',\n role: 'fontSize',\n themeable: false,\n required: false,\n default: '96',\n description: 'Font size in px. Phrases are usually large.',\n },\n {\n name: 'fontFamily',\n type: 'string',\n role: 'fontFamily',\n themeable: true,\n required: false,\n description: 'Loaded font family. Defaults to theme `fontFamily`.',\n },\n {\n name: 'fontWeight',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '600',\n description: 'Font weight (display default 600).',\n },\n {\n name: 'italic',\n type: 'boolean',\n role: 'boolean',\n themeable: false,\n required: false,\n default: 'false',\n description: 'Italic text.',\n },\n {\n name: 'align',\n type: 'enum',\n role: 'enum',\n themeable: false,\n required: false,\n enumValues: ['left', 'center', 'right'],\n default: \"'left'\",\n description:\n \"Horizontal anchor of each phrase relative to `x`; 'center'/'right' use the measured text width.\",\n },\n {\n name: 'x',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n description:\n 'Absolute x of the anchor point. Defaults to the composition horizontal center.',\n },\n {\n name: 'y',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n description: 'Absolute y (top-ish) of the text. Defaults to vertical center.',\n },\n ],\n schema: wordRotateSchema,\n },\n {\n slug: 'word-stagger',\n name: 'WordStagger',\n category: 'Text',\n title: 'Word Stagger',\n description:\n 'Splits a phrase into words and reveals them left-to-right with a per-word fade-in stagger, wrapping within a fixed width.',\n pickWhen:\n 'Use for taglines, quotes, or short phrases that should cascade in word-by-word; reach for it when you want a wrapping line of copy to build up sequentially rather than appear all at once.',\n composes: ['FadeIn'],\n sceneRole: 'block',\n occlusion: 'centered',\n example: {\n text: 'motion that moves you',\n fontSize: 72,\n fontWeight: 600,\n justify: 'center',\n width: 1080,\n stagger: 4,\n },\n props: [\n {\n name: 'text',\n type: 'string',\n role: 'text',\n themeable: false,\n required: false,\n default: \"'motion that moves you'\",\n description: 'The phrase; split on whitespace into one reveal per word.',\n },\n {\n name: 'fontSize',\n type: 'number',\n role: 'fontSize',\n themeable: false,\n required: false,\n default: '64',\n description: 'Font size in px.',\n },\n {\n name: 'color',\n type: 'string',\n role: 'color',\n themeable: true,\n required: true,\n description: 'Text color; defaults to theme text color.',\n },\n {\n name: 'width',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '1080',\n description: 'Container width in px; the line wraps within this.',\n },\n {\n name: 'fontFamily',\n type: 'string',\n role: 'fontFamily',\n themeable: true,\n required: true,\n description: 'Loaded font family; defaults to theme font family.',\n },\n {\n name: 'fontWeight',\n type: 'number',\n role: 'number',\n themeable: false,\n required: false,\n default: '600',\n description: 'Font weight (display default).',\n },\n {\n name: 'justify',\n type: 'enum',\n role: 'enum',\n themeable: false,\n required: false,\n enumValues: ['start', 'center', 'end'],\n default: \"'start'\",\n description: 'Horizontal alignment of words within each line.',\n },\n {\n name: 'delay',\n type: 'int',\n role: 'delayFrames',\n themeable: false,\n required: false,\n default: '0',\n description:\n \"Frames before the first word starts. Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n {\n name: 'stagger',\n type: 'int',\n role: 'delayFrames',\n themeable: false,\n required: false,\n description:\n \"Frames between consecutive words (defaults to STAGGER = 4). Accepts frames (number) or a time string ('0.5s', '500ms', '12f').\",\n },\n ],\n schema: wordStaggerSchema,\n },\n {\n slug: 'split-lockup',\n name: 'SplitLockup',\n category: 'Text',\n title: 'Split Lockup',\n description:\n 'Two lines that START split to opposite corners, CONVERGE into a centered stacked left-aligned lockup (ease-out, no overshoot), HOLD, then DISASSEMBLE back to the corners — the exit is the entrance reversed.',\n pickWhen:\n 'A two-word title card that should split open and reassemble (e.g. NEW / PROJECT) — the signature image-cascade / showcase intro lockup. Pair with Moodboard for the surrounding tiles.',\n composes: ['Moodboard'],\n sceneRole: 'block',\n occlusion: 'centered',\n example: { line1: 'NEW', line2: 'PROJECT', fontSize: 180, fontWeight: 400, letterSpacing: 8 },\n props: [],\n schema: splitLockupSchema,\n },\n {\n slug: 'moodboard',\n name: 'Moodboard',\n category: 'Media',\n title: 'Moodboard',\n description:\n 'A seeded scatter-grid of image tiles arranged AROUND a central exclusion zone (where a title sits). Places exactly one tile per image, mixed aspect/size; each cascades in (fade + drift) on a visible stagger and exits on the mirrored stagger.',\n pickWhen:\n 'A portfolio / moodboard spread of tiles cascading in around a centered title (pair with SplitLockup) — the image-cascade showcase. Feed it N images; it auto-distributes them.',\n composes: ['SplitLockup'],\n sceneRole: 'background',\n occlusion: 'non_occluding',\n example: {\n images: [],\n seed: 11,\n columns: 5,\n rows: 4,\n exclusionWidth: 0.52,\n exclusionHeight: 0.42,\n stagger: 4,\n },\n props: [],\n schema: moodboardSchema,\n },\n {\n slug: 'keyframes',\n name: 'Keyframes',\n category: 'Motion',\n title: 'Keyframes',\n description:\n \"Animate ONE element along explicit per-channel tracks — position / scale / scaleX / scaleY (non-uniform) / opacity / rotation — each key carrying its own easing (a named curve OR a raw cubic-bezier [x1,y1,x2,y2]). The element is set by `content.kind`: 'image' = a card/tile whose FILL is an image `src`, a solid `color`, OR a `gradient` (linear/radial/fbm), plus `cornerRadius`/`width`/`height` (omit `src` for a color/gradient placeholder the user swaps a photo into); 'ellipse' or 'path' = vector shapes with a `color`/`gradient` fill and/or a `stroke`+`strokeWidth` (rings, dots, bars, geometric marks); 'text' = an editable line (text/fontSize/color/fontFamily/fontWeight/letterSpacing). Arbitrary motion + any shape/fill, not a fixed preset.\",\n pickWhen:\n 'EXACT custom motion (transcribe an AE/Lottie ref) OR an animated SHAPE/CARD: a colored / gradient / image BACKGROUND card, a ring / dot / line / geometric mark, or a swappable photo tile. Fills are editable — set content.color (solid), content.gradient, or content.src (image); shapes add content.stroke/strokeWidth. Use scaleX/scaleY to grow a bar in one axis.',\n composes: [],\n sceneRole: 'block',\n occlusion: 'unknown',\n example: {\n // A gradient card (omit `gradient` + set `color` for a flat fill, or `src` for a photo).\n content: {\n kind: 'image',\n gradient: {\n type: 'linear',\n start: [0, 0],\n end: [320, 320],\n stops: [\n { offset: 0, color: '#6E8BFF' },\n { offset: 1, color: '#3B2A6B' },\n ],\n },\n width: 320,\n height: 320,\n cornerRadius: 16,\n },\n position: [{ at: 0, x: 960, y: 540 }],\n scale: [\n { at: 0, v: 0 },\n { at: 12, v: 1, ease: 'easeOut' },\n ],\n opacity: [\n { at: 0, v: 0 },\n { at: 6, v: 1 },\n ],\n },\n props: [],\n schema: keyframesSchema,\n },\n]\n\n// ─── Schema → PropMeta reconciliation (the \"codegen\", live at build time) ────\n//\n// The curated `props` arrays are hand-written, but the Zod `schema` is the source\n// of truth — and now carries the SHARED text-style props (color/fontFamily/\n// fontWeight/italic/letterSpacing/uppercase via `textStyleSchemaShape`). The two\n// drift the moment a schema gains a prop the curated list doesn't mention — and\n// the studio reads `props` (PropMeta names) to decide what's a KNOWN prop, so a\n// missing entry means the agent's `letterSpacing`/`uppercase` get STRIPPED.\n//\n// So we derive a PropMeta for any schema prop the curated list is missing. Adding\n// a prop to a schema (or to the shared mixin) now shows up in the agent catalog,\n// the /llms.txt + /api/components.json docs, and the studio's allowed-prop set\n// automatically — no hand-maintenance, no codegen file to go stale.\n\nfunction unwrapZod(field: z.ZodTypeAny): {\n def: { typeName?: string; [k: string]: unknown }\n default?: string\n min?: number\n max?: number\n} {\n let f = field as unknown as {\n _def?: { typeName?: string; innerType?: unknown; defaultValue?: () => unknown }\n }\n let dflt: string | undefined\n for (let i = 0; i < 8 && f?._def; i++) {\n const tn = f._def.typeName\n if (tn === 'ZodOptional' || tn === 'ZodNullable') {\n f = f._def.innerType as typeof f\n continue\n }\n if (tn === 'ZodDefault') {\n try {\n dflt = JSON.stringify(f._def.defaultValue?.())\n } catch {\n /* non-serializable default — leave undefined */\n }\n f = f._def.innerType as typeof f\n continue\n }\n break\n }\n const def = (f?._def ?? {}) as { typeName?: string; checks?: { kind?: string; value?: number }[] }\n // Number constraints — min/max from the Zod `.min()/.max()` checks.\n let min: number | undefined\n let max: number | undefined\n if (Array.isArray(def.checks)) {\n for (const c of def.checks) {\n if (c.kind === 'min' && typeof c.value === 'number') min = c.value\n if (c.kind === 'max' && typeof c.value === 'number') max = c.value\n }\n }\n return { def, default: dflt, min, max }\n}\n\nfunction zodKind(def: { typeName?: string; checks?: { kind?: string }[]; values?: string[] }): {\n type: string\n enumValues?: string[]\n} {\n switch (def.typeName) {\n case 'ZodString':\n return { type: 'string' }\n case 'ZodNumber':\n return { type: (def.checks ?? []).some((c) => c.kind === 'int') ? 'int' : 'number' }\n case 'ZodBoolean':\n return { type: 'boolean' }\n case 'ZodEnum':\n return { type: 'enum', enumValues: def.values }\n case 'ZodArray':\n return { type: 'array' }\n default:\n return { type: 'unknown' }\n }\n}\n\nfunction roleFor(name: string, type: string): string {\n if (name === 'color' || /[Cc]olor$/.test(name)) return 'color'\n if (name === 'fontFamily' || /[Ff]ontFamily$/.test(name)) return 'font'\n if (name === 'fontSize') return 'fontSize'\n if (name === 'text') return 'text'\n if (type === 'enum') return 'enum'\n if (type === 'boolean') return 'boolean'\n if (type === 'int' || type === 'number') return 'number'\n return 'other'\n}\n\n/** A display-unit hint for a number prop, from its role / name / description.\n * Conservative — only the unambiguous cases (px, frames, deg). */\nfunction unitFor(name: string, role: string, description: string): string | undefined {\n const d = description.toLowerCase()\n if (/\\bframes?\\b/.test(d) || /(?:InFrames|Frames)$/.test(name) || /duration/i.test(name))\n return 'frames'\n if (role === 'fontSize' || /\\bin px\\b|\\bpx\\b|\\bpixels?\\b/.test(d)) return 'px'\n if (/degrees?|°/.test(d) || /(?:rotation|angle|tilt|skew)/i.test(name)) return 'deg'\n return undefined\n}\n\n/** Reconcile curated PropMeta against the Zod schema (the source of truth):\n * every prop's `default`, `enumValues`, `min`, `max`, `unit` are DERIVED from the\n * schema so they can never drift from what actually renders (the curated `default`\n * used to go stale — e.g. TitleCard.titleSize 96 vs the schema's 120). Curated\n * `type`/`role`/`description`/`themeable` are kept (richer than what's inferable),\n * and any schema prop the curated list omits gets a fully-derived entry. */\nfunction reconcileProps(entry: RawEntry): PropMeta[] {\n const shape = (entry.schema as { shape?: Record<string, z.ZodTypeAny> }).shape\n if (!shape || typeof shape !== 'object') return entry.props\n\n // Enrich a curated prop with schema-authoritative default/enum/min/max/unit.\n const enrich = (p: PropMeta): PropMeta => {\n const field = shape[p.name]\n if (!field) return p\n const { def, default: dflt, min, max } = unwrapZod(field)\n const { enumValues } = zodKind(def)\n const unit = unitFor(p.name, p.role, p.description)\n return {\n ...p,\n ...(enumValues ? { enumValues } : {}),\n ...(dflt !== undefined ? { default: dflt } : {}), // schema wins → no drift\n ...(min !== undefined ? { min } : {}),\n ...(max !== undefined ? { max } : {}),\n ...(unit ? { unit } : {}),\n }\n }\n\n const have = new Set(entry.props.map((p) => p.name))\n const curated = entry.props.map(enrich)\n const derived: PropMeta[] = []\n for (const [name, field] of Object.entries(shape)) {\n if (have.has(name)) continue\n const { def, default: dflt, min, max } = unwrapZod(field)\n const { type, enumValues } = zodKind(def)\n const role = roleFor(name, type)\n const description = (field as { description?: string }).description ?? ''\n const unit = unitFor(name, role, description)\n derived.push({\n name,\n type,\n role,\n ...(enumValues ? { enumValues } : {}),\n ...(dflt !== undefined ? { default: dflt } : {}),\n ...(min !== undefined ? { min } : {}),\n ...(max !== undefined ? { max } : {}),\n ...(unit ? { unit } : {}),\n themeable: name === 'color' || name === 'fontFamily',\n required: false,\n description,\n })\n }\n return [...curated, ...derived]\n}\n\n/** The catalog — RAW entries enriched with the live fidelity rating + the\n * schema-reconciled prop list (so curated `props` can never drift from `schema`). */\nexport const MANIFEST: ManifestEntry[] = RAW.map((e) => {\n const f = COMPONENT_FIDELITY[e.name]\n return {\n ...e,\n props: reconcileProps(e),\n fidelity: f?.fidelity ?? 'first_class',\n backend: f?.backend ?? 'both',\n engineNative: f?.engineNative ?? true,\n }\n})\n\n/** The PascalCase names of every catalogued component. */\nexport const MANIFEST_NAMES: readonly string[] = MANIFEST.map((e) => e.name)\n\n// ─── CAPABILITIES — the engine's \"verbs\" (the director applies them) ────────────\n//\n// `MANIFEST` is the NOUNS — placeable components. `CAPABILITIES` is the VERBS — the\n// composition treatments, per-node effects, 3D modes, and audio moves a director\n// reaches for. They're NOT components (they're props/options/APIs), so they never\n// showed up in the catalog the agent reads — which is exactly why the Studio couldn't\n// direct a cinematic finish, a 3D logo, or a generated score. Carried here, in the\n// pure-data manifest the Studio consumes, so the agent knows the FULL toolbox.\n\n/** A capability the director APPLIES (a verb), vs. a `MANIFEST` component (a noun). */\nexport interface Capability {\n /** Stable id. */\n id: string\n /** composition (whole-comp) | effect (per-node) | 3d | audio. */\n category: 'composition' | 'effect' | '3d' | 'audio'\n /** Short title. */\n title: string\n /** What it does + when to reach for it. */\n description: string\n /** HOW to apply it — the prop/option/API, with a concrete example. */\n apply: string\n /** `both` = CPU==GPU + live preview | `gpu` = needs Vello | `export` = N×-cost, export-only. */\n backend: 'both' | 'gpu' | 'export'\n /** A caveat the agent MUST respect (e.g. judge the look on a native render). */\n note?: string\n}\n\nexport const CAPABILITIES: Capability[] = [\n // — Composition-level treatments —\n {\n id: 'cinematic-finish',\n category: 'composition',\n title: 'Cinematic finish',\n description:\n \"The 'looks shot' output transform as ONE composition prop — the whole finishing chain run in scene-linear HDR ending in a single ACES film tone-map (bloom bleeds REAL light past 1.0, plus halation, grade, vignette, grain), landing the comp as one photographed image. The #1 premium tell for cinematic/luxury/brand-film work.\",\n apply:\n '<Composition finish={{ bloom: { sigma: 16, threshold: 0.6, intensity: 1.4 }, halation: 0.3, temperature: 0.2, contrast: 1.1, saturation: 1.05, vignette: 0.4, grain: 0.05 }}>',\n backend: 'export',\n note: 'GPU/export only — the live preview shows the raw gamma frame; judge the look on a native/export render.',\n },\n {\n id: 'depth-of-field',\n category: 'composition',\n title: 'Depth of field (rack focus)',\n description:\n 'Give each layer a `depth` and the comp a `dof`; every layer defocuses by its distance from the focus plane. Animate `focus` for a rack-focus pull between layers — the lens move that separates a subject from its world.',\n apply: '<Composition dof={{ focus: 400, aperture: 0.06 }}> with <Group depth={900}>…</Group>',\n backend: 'both',\n },\n {\n id: 'motion-blur',\n category: 'composition',\n title: 'Per-object motion blur',\n description:\n 'Shutter-angle temporal supersampling — every MOVING element smears by its own motion (translation/rotation/scale) while static stays razor-sharp. The single biggest amateur-vs-pro tell in motion.',\n apply: '<Composition motionBlur={{ shutter: 180, samples: 16 }}>',\n backend: 'export',\n note: 'N× render cost — export-only (the live preview shows the sharp frame).',\n },\n // — Per-node effects (render-to-texture) —\n {\n id: 'bloom',\n category: 'effect',\n title: 'Bloom',\n description:\n 'Bright pixels bleed a soft halo of real light — the most-reached-for premium glow. Put it on accents, highlights, or a logo.',\n apply: 'bloom={{ sigma: 14, threshold: 0.7, intensity: 1.2 }}',\n backend: 'gpu',\n },\n {\n id: 'grade',\n category: 'effect',\n title: 'Color grade',\n description:\n \"Grade a node's exposure/contrast/saturation/temperature/tint. The agent's main tool to MATCH dropped-in AI/stock media to the comp's look (warm it, darken it, punch it).\",\n apply: 'grade={{ exposure: -0.1, contrast: 1.12, saturation: 1.08, temperature: 0.16 }}',\n backend: 'gpu',\n },\n {\n id: 'film-grain',\n category: 'effect',\n title: 'Film grain',\n description:\n 'Luminance-banded monochrome noise over a node — ties mismatched sources (AI plate, real product, vector type) into ONE photographed image and dithers 8-bit banding. Animate `seed` with the frame so it lives.',\n apply: 'grain={{ intensity: 0.05, size: 1.2, seed: frame }}',\n backend: 'gpu',\n },\n {\n id: 'light-wrap',\n category: 'effect',\n title: 'Light-wrap',\n description:\n \"Bleed the blurred backdrop light onto a subject's feathered edges so it reads SHOT IN the scene, not pasted on. The #1 tell for landing AI-generated or stock media inside a composition.\",\n apply: 'lightWrap={{ sigma: 30, strength: 1 }} // on an Image/Video',\n backend: 'gpu',\n note: 'Native/export only.',\n },\n {\n id: 'backdrop-blur',\n category: 'effect',\n title: 'Backdrop blur (frosted glass)',\n description:\n 'Blur the rendered scene BEHIND a node (sampled), composited under it — frosted-glass panels, depth.',\n apply: 'backdropBlur={{ sigma: 20 }}',\n backend: 'gpu',\n },\n {\n id: 'blur',\n category: 'effect',\n title: 'Gaussian blur',\n description: 'Blur a node + its subtree — soft reveals, focus, depth.',\n apply: 'blur={24} // px std-dev',\n backend: 'both',\n },\n {\n id: 'chromatic-aberration',\n category: 'effect',\n title: 'Chromatic aberration (RGB split)',\n description:\n 'Split the R/B channels by a few px — a glitch/energy accent (pulse it on the beat) or a subtle lens-real edge.',\n apply: 'chromaticAberration={6}',\n backend: 'gpu',\n },\n {\n id: 'chroma-key',\n category: 'effect',\n title: 'Chroma key',\n description:\n 'Knock out a key color (with a soft matte) to composite real media onto a new background.',\n apply: 'chromaKey={{ color: \"#00ff00\", threshold: 0.4, smoothness: 0.1 }}',\n backend: 'gpu',\n },\n {\n id: 'stylize',\n category: 'effect',\n title: 'Stylize (vignette / posterize / duotone)',\n description:\n 'Per-pixel looks: `vignette` (radial edge darkening), `posterize` (quantize to N levels — poster/retro), `duotone` (map luminance to two colors — bold editorial).',\n apply:\n 'vignette={0.4} · posterize={6} · duotone={{ shadow: \"#1a0b2e\", highlight: \"#f5b942\" }}',\n backend: 'gpu',\n },\n // — 3D —\n {\n id: 'scene-3d',\n category: '3d',\n title: '3D scene (layers + perspective camera)',\n description:\n 'Place layers in ONE shared perspective 3D world — each a flat plane positioned by `position3d` and tilted by `rotation3d`, viewed through a perspective camera with a real depth buffer. Camera fly-throughs, card walls / cover-flow, parallax, exploded UI, billboard text.',\n apply:\n '<Scene3D camera={{ position: [960, 540, -1400], fov: 45 }}><Card position3d={[640, 540, 250]} rotation3d={[0, 40, 0]} /></Scene3D>',\n backend: 'gpu',\n note: 'GPU runs true perspective + out-of-plane rotation; CPU/web preview degrade to a 2.5D projection → judge 3D on a native/export render.',\n },\n {\n id: 'extrude-3d',\n category: '3d',\n title: 'Extruded 3D solids (logos & titles)',\n description:\n 'Extrude a shape, path, or TEXT into a LIT 3D SOLID (front/back faces + side walls) inside a <Scene3D> — the spinning solid logo / kinetic 3D title. Built from your vector shapes and fonts, no model files.',\n apply: '<Text extrude={80} position3d={[960, 540, 0]} rotation3d={[14, 28, 0]}>BRAND</Text>',\n backend: 'gpu',\n note: 'GPU only; the live preview + CPU draw the flat outline → judge on a native/export render.',\n },\n // — Audio —\n {\n id: 'audio-beats',\n category: 'audio',\n title: 'Audio-driven motion (sync to the beat)',\n description:\n 'Analyze a track into beats / onsets / tempo (frame units), then drive motion with `beatPulse(frame, beats)` — a 1→0 punch on each beat. Cut on the beat, punch on the kick, drop text on a transient. The #1 professionally-edited tell for music-driven content.',\n apply:\n \"const b = useAudioBeats('/music.mp3'); …scaleX={1 + 0.3 * beatPulse(frame, b?.beats ?? [])}\",\n backend: 'both',\n },\n {\n id: 'audio-synth',\n category: 'audio',\n title: 'Generate a score / SFX',\n description:\n 'GENERATE a bespoke soundtrack + sound design — a declarative audio graph (oscillators/chords/noise → envelopes → filter → reverb) synthesized to a track and muxed into the export. Pads, drones, risers, impacts, whooshes, chimes, simple beats — the score + SFX layer.',\n apply:\n 'an AudioGraph of timed Voices (Source.Osc/Chord/Noise + Envelope + Filter + Reverb) → synthesize() → mux',\n backend: 'both',\n note: 'Great for ambient beds / risers / impacts / SFX / simple beats — NOT real vocals, orchestra, or foley (bring real audio for those).',\n },\n]\n\n/** Look up a manifest entry by slug or PascalCase name. */\nexport function manifestEntry(key: string): ManifestEntry | undefined {\n return MANIFEST.find((e) => e.slug === key || e.name === key)\n}\n\n/** Only the first-class components — the agent's safe default palette. */\nexport function firstClassEntries(): ManifestEntry[] {\n return MANIFEST.filter((e) => e.fidelity === 'first_class')\n}\n\n/** A compact, grouped text catalog for the agent prompt: one bullet per\n * component with its fidelity, when-to-use, and its prop roles. */\nexport function compactCatalog(opts: { firstClassOnly?: boolean } = {}): string {\n const entries = opts.firstClassOnly ? firstClassEntries() : MANIFEST\n const byCat = new Map<string, ManifestEntry[]>()\n for (const e of entries) {\n const list = byCat.get(e.category) ?? []\n list.push(e)\n byCat.set(e.category, list)\n }\n const out: string[] = []\n for (const [cat, list] of [...byCat.entries()].sort()) {\n out.push(`## ${cat}`)\n for (const e of list.sort((a, b) => a.name.localeCompare(b.name))) {\n const tag = e.fidelity === 'first_class' ? '' : ` [${e.fidelity}]`\n const props = e.props.map((p) => `${p.name}${p.required ? '*' : ''}:${p.role}`).join(', ')\n out.push(\n `- **${e.name}**${tag} — ${e.description}${e.pickWhen ? ` (use: ${e.pickWhen})` : ''}`,\n )\n if (props) out.push(` props: ${props}`)\n }\n }\n return out.join('\\n')\n}\n"]}