import * as CSS from 'csstype'; // // Nav // export interface IStepDescription { stepContent: () => JSX.Element; stepStateColor?: string; stepStatusCircleSize?: number; onClickHandler?: () => void | undefined; } export interface IStepperNavProps { steps: IStepDescription[]; } export const StepperNav = (props: IStepperNavProps): JSX.Element => { return ( ); }; // // Separator // const separatorStyles = { height: '5vh', width: 2, border: '1px solid #E1E1E1', background: '#E1E1E1', }; export interface ISeparator { height?: string | number; } export const Separator = ({ height }: ISeparator): JSX.Element => { return
; }; // // Step // export interface IStep { stepContent: () => JSX.Element; statusColor?: string; statusCircleSize?: number; onClickHandler?: ( event?: React.MouseEvent, ) => void | undefined; } const buttonContainerStyles: CSS.Properties = { display: 'inline-flex', flexWrap: 'wrap', gap: '12px', padding: '2px', cursor: 'pointer', }; export const Step = ({ stepContent, statusColor, statusCircleSize, onClickHandler, }: IStep): JSX.Element => { const circleStyles = { borderRadius: statusCircleSize ?? 16, width: statusCircleSize ?? 16, height: statusCircleSize ?? 16, border: '2px solid #E1E1E1', background: statusColor ?? 'white', }; const keyDownHandler = (event: React.KeyboardEvent) => { if (event.keyCode === 13 || event.keyCode === 32) { onClickHandler?.(); } }; return (
{stepContent()}
); };