'use client';
import { HTMLAttributes } from 'react';
import styles from './light-beams.module.css';
export interface LightBeamsProps extends HTMLAttributes {
/** Beam color */
color?: string;
/** Animation intensity */
intensity?: 'subtle' | 'moderate' | 'intense';
/** Blur amount */
blur?: 'sharp' | 'medium' | 'blurred';
/** Animation duration in seconds */
duration?: number;
/** Which beams to show */
position?: 'edges' | 'corners' | 'all';
/** Custom class for beams container */
beamsClassName?: string;
}
export function LightBeams({
color = 'rgba(255, 255, 255, 0.8)',
intensity = 'moderate',
blur = 'medium',
duration = 4,
position = 'all',
beamsClassName,
className,
style,
children,
...props
}: LightBeamsProps) {
const intensityClass = styles[`intensity-${intensity}`];
const blurClass = styles[blur];
const renderBeams = () => {
const beams = [];
const delayClasses = [
styles.delay1,
styles.delay2,
styles.delay3,
styles.delay4,
];
if (position === 'edges' || position === 'all') {
beams.push(
,
,
,
);
}
if (position === 'corners' || position === 'all') {
beams.push(
,
,
,
);
}
return beams;
};
return (
{renderBeams()}
{children}
);
}
LightBeams.displayName = 'LightBeams';
export default LightBeams;