/**
* Pure HTML+CSS lucky wheel component.
* Uses conic-gradient for segment colors, absolute positioned labels,
* border for outer ring, and rotated divs for radius lines.
*/
import React from "react";
export interface WheelPrize {
option: string;
style?: {
backgroundColor?: string;
textColor?: string;
};
}
export interface WheelComponentProps {
/** Size of the wheel in pixels */
containerSize: string;
/** Array of prize segments */
prizes: WheelPrize[];
/** Outer border width in px */
outerBorderWidth?: number;
/** Outer border color */
outerBorderColor?: string;
/** Radius line width in px */
radiusLineWidth?: number;
/** Radius line color */
radiusLineColor?: string;
/** Font size in px */
fontSize?: number;
/** Center dot size in px */
centerDotSize?: number;
/** Center dot color */
centerDotColor?: string;
/** Pointer (indicator arrow) color */
pointerColor?: string;
/** Extra rotation applied to the wheel disc (degrees) */
rotation?: number;
/** CSS class name for the wheel disc (used by dom2Svg overwrite) */
discClassName?: string;
/** When set, show a larger center circle with this text (e.g. "Click To Play") */
centerButtonText?: string;
/** Center button background color when centerButtonText is set */
centerButtonBackgroundColor?: string;
/** Center button text color when centerButtonText is set */
centerButtonTextColor?: string;
/** Center button outer border color when centerButtonText is set */
centerButtonBorderColor?: string;
/** Center button outer border width in px when centerButtonText is set */
centerButtonBorderWidth?: number;
/** Preview state: 0 = default, 1 = spinning, 2 = win. Controls center text and data-index. */
stateIndex?: 0 | 1 | 2;
/** Text shown on main button while spinning (state 1) */
stopButtonText?: string;
/** Center button text after spin / on win (state 2) */
centerButtonResultText?: string;
/** Center button text on the wheel while spinning (state 1); falls back to stopButtonText */
centerButtonSpinningText?: string;
}
export declare const WheelComponent: React.FC;