import { GpuShaderDefinition } from '../../gpu/porters'; import { transformPosition, transformColor } from '../../utilities/transformations'; import { ColorStop } from '../../utilities/colorStops'; import { BoundingBoxOrigin } from '../../types'; 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 glass 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 glass shape (1 = default size) * * Accepts a number between 0.1 and 3. * @default 1 */ scale: number; /** * Rotation of the glass shape in degrees * * Accepts a number between 0 and 360. * @default 0 */ rotation: number; /** * The dark body of the glass — what the faces looking straight at you show. Keep it deep for the iridescence to pop. * * Accepts hex strings (`#ff0000`), RGB objects (`{ r, g, b }`), or CSS color names (`limegreen`). * @default "#06071a" */ bodyColor: Parameters[0]; /** * First iridescent color (two-color fallback when stops are cleared) * * Accepts hex strings (`#ff0000`), RGB objects (`{ r, g, b }`), or CSS color names (`limegreen`). * @default "#ff2f7a" */ colorA: Parameters[0]; /** * Second iridescent color (two-color fallback when stops are cleared) * * Accepts hex strings (`#ff0000`), RGB objects (`{ r, g, b }`), or CSS color names (`limegreen`). * @default "#5fe6ff" */ colorB: Parameters[0]; stops: ColorStop[] | null; /** * Color space for color interpolation * * Accepts one of the predefined option values. * @default "oklab" */ colorSpace: string; /** * Strength of the colour on the oblique surfaces — 0 = plain dark glass, above 1 = saturated neon walls * * @default 1 */ iridescence: number; /** * How far in from edge-on the colour reaches — small keeps it to the steepest walls, large lets it creep across gently turning faces * * @default 0.55 */ rimWidth: number; /** * Softness of the transition from dark face to coloured wall * * @default 0.25 */ rimSoftness: number; /** * Direction the gradient flows across the surface, in degrees * * Accepts a number between 0 and 360. * @default 30 */ flowAngle: number; /** * How many times the palette cycles across the shape — higher = tighter colour bands * * @default 1 */ flowScale: number; /** * Speed the gradient flows along the walls. 0 pauses. * * Accepts a number between 0 and 4. * @default 0.5 */ speed: number; /** * Strength of the studio softboxes reflected in the glass — the pale highlights riding the top edges * * @default 0.35 */ gloss: number; envRotation: number; /** * Width of the edge bevel on flat shapes — the band that turns away from the viewer and catches the colour * * @default 0.08 */ bevelWidth: number; /** * Bevel profile — 0 = one smooth round fillet, 1 = machined: a steep outer fillet, a chamfer plateau and an inner knee * * @default 0 */ bevelShape: number; edgeSoftness: number; /** * Serialized shape configuration (JSON) * * @default "DEFAULT_SHAPE_CONFIG" */ shape: string | Record; /** * URL to a pre-generated SDF .bin file * * @default "" */ shapeSdfUrl: string; /** * Active SDF shape type * * @default "" */ shapeType: string; } export declare const componentDefinition: GpuShaderDefinition; export default componentDefinition; //# sourceMappingURL=index.d.ts.map