import { GpuShaderDefinition } from '../../gpu/porters'; import { transformPosition, transformColor } from '../../utilities/transformations'; import { BoundingBoxOrigin } from '../../types'; /** Resolve the active analytic shape type (compile-time `shapeType`, else the shape JSON's type). */ export interface ComponentProps { /** * Reference edge the center position is measured from (center default). Lets you pin the shape relative to a corner or the canvas centre. * * @default "center" */ origin: BoundingBoxOrigin; /** * Center position of the shape * * Accepts `{ x, y }` objects with values from 0 to 1, or CSS positions like `top center`. * @default {"x":0.5,"y":0.5} */ center: Parameters[0]; /** * Scale of the shape (1 = default size) * * @default 1 */ scale: number; /** * Rotation of the shape in degrees * * Accepts a number between 0 and 360. * @default 0 */ rotation: number; /** * Rim brightness — values above 1 push the edge past white for HDR bloom * * @default 1 */ intensity: number; /** * How far inward from the edge the iridescence reaches * * @default 1 */ rimWidth: number; /** * Softness of the shape boundary * * @default 0.3 */ edgeSoftness: number; /** * Film thickness — higher values pack more spectral bands across the rim * * @default 0.5 */ thickness: number; /** * How strongly colour separates around the perimeter (warm vs cool sides) * * @default 0.5 */ dispersion: number; /** * Spectral saturation — 0 = white rim, 1 = full iridescence * * @default 1 */ saturation: number; /** * Rotate the spectrum to reposition the colours * * @default 0 */ hueShift: number; /** * Light angle in degrees — sets which side of the rim runs warm vs cool * * Accepts a number between 0 and 360. * @default 300 */ lightAngle: number; /** * Speed at which the colours rotate around the rim (0 = static) * * Accepts a number between -1 and 1. * @default 0.1 */ speed: number; /** * Rainbow uses the full iridescent spectrum; Custom cycles through your three chosen colours * * Accepts one of: `"rainbow"`, `"custom"`. * @default "rainbow" */ mode: string; /** * First colour in the rim cycle * * Accepts hex strings (`#ff0000`), RGB objects (`{ r, g, b }`), or CSS color names (`limegreen`). * @default "#2b6fff" */ colorA: Parameters[0]; /** * Second colour in the rim cycle * * Accepts hex strings (`#ff0000`), RGB objects (`{ r, g, b }`), or CSS color names (`limegreen`). * @default "#ffffff" */ colorB: Parameters[0]; /** * Third colour in the rim cycle * * Accepts hex strings (`#ff0000`), RGB objects (`{ r, g, b }`), or CSS color names (`limegreen`). * @default "#ff7a21" */ colorC: Parameters[0]; /** * Colour space used to blend between custom colours * * Accepts one of the predefined option values. * @default "oklch" */ colorSpace: string; /** * Serialized shape configuration (JSON) * * @default "DEFAULT_SHAPE_CONFIG" */ shape: string | Record; /** * URL to a pre-generated SDF .bin file — when non-empty, activates SVG mode and triggers a shader recompile * * @default "" */ shapeSdfUrl: string; /** * Active SDF shape type — triggers recompile when shape is switched. When empty, derived from shape JSON at mount time. * * @default "" */ shapeType: string; } export declare const componentDefinition: GpuShaderDefinition; export default componentDefinition; //# sourceMappingURL=index.d.ts.map