/** * EffectsSettingsSectionCompact * * Compact animation and interaction effect settings for the constructor sidebar. * Uses smaller inputs and labels to fit in the narrow sidebar. */ import React from 'react'; import type { EffectsSettingsFormValues } from './types'; import type { CanvasElementType } from '../../types/constructor'; interface EffectsSettingsSectionCompactProps { values: EffectsSettingsFormValues; onChange: (prop: keyof EffectsSettingsFormValues, value: string) => void; elementType?: CanvasElementType; } const EffectsSettingsSectionCompact: React.FC< EffectsSettingsSectionCompactProps > = ({ values, onChange, elementType }) => { const showSlideTransition = elementType === 'gallery' || elementType === 'carousel'; return (
{/* Appear Animation */}

Appear Animation

onChange('appearAnimationDuration', e.target.value) } placeholder='0.3' />
{/* Hover Effects */}

Hover Effects

onChange('hoverScale', e.target.value)} placeholder='1.05' />
onChange('hoverOpacity', e.target.value)} placeholder='0..1' />
onChange('hoverBackgroundColor', e.target.value)} placeholder='#B39368' />
onChange('hoverColor', e.target.value)} placeholder='#FFFFFF' />
onChange('hoverBoxShadow', e.target.value)} placeholder='0 4px 12px rgba(...)' />
onChange('hoverTransitionDuration', e.target.value) } placeholder='0.2' />
{/* Hover Reveal Subsection */}

Hover Reveal

onChange('hoverRevealInitialOpacity', e.target.value) } placeholder='0' disabled={values.hoverReveal !== 'true'} />
onChange('hoverRevealTargetOpacity', e.target.value) } placeholder='1' disabled={values.hoverReveal !== 'true'} />
onChange('hoverRevealDuration', e.target.value)} placeholder='0.3' disabled={values.hoverReveal !== 'true'} />
onChange('hoverRevealDelay', e.target.value)} placeholder='0' disabled={values.hoverReveal !== 'true'} />
{/* Focus Effects */}

Focus Effects

onChange('focusScale', e.target.value)} placeholder='1.02' />
onChange('focusOpacity', e.target.value)} placeholder='0..1' />
onChange('focusOutline', e.target.value)} placeholder='2px solid #B39368' />
onChange('focusBoxShadow', e.target.value)} placeholder='0 0 0 3px rgba(...)' />
{/* Active/Press Effects */}

Active/Press Effects

onChange('activeScale', e.target.value)} placeholder='0.95' />
onChange('activeOpacity', e.target.value)} placeholder='0..1' />
onChange('activeBackgroundColor', e.target.value) } placeholder='#131C22' />
{/* Slide Transition Override - Gallery/Carousel only */} {showSlideTransition && (

Slide Transition

Override page transition for slides. Leave empty for defaults.

{/* Type */}
{/* Duration */}
onChange('slideTransitionDurationMs', e.target.value) } placeholder='400' min='0' step='50' />
{/* Easing */}
{/* Overlay Color */}
onChange('slideTransitionOverlayColor', e.target.value) } /> onChange('slideTransitionOverlayColor', e.target.value) } placeholder='#000000' />
)}
); }; export default EffectsSettingsSectionCompact;