@kubit-ui-web/react-components
Version:
Kubit React Components is a customizable, accessible library of React web components, designed to enhance your application's user experience
26 lines • 2.09 kB
JavaScript
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
import React from 'react';
import { Text } from '../../components/text/text';
import { TextComponentType } from '../../components/text/types/component';
import { useId } from '../../hooks/useId/useId';
import { AriaLiveOptionType } from '../../types/ariaLiveOption/ariaLiveOption';
// helpers
import { currentPercentage } from './helpers/currentPercentage';
// styles
import { StepperProgressContainerStyled, StepperProgressHelpText, StepperProgressStyled, } from './stepperProgress.styled';
const maxProgress = 100;
const StepperProgressStandAloneComponent = ({ dataTestId = 'stepper-progress', id, styles, initialStep, maxSteps, currentStep, prefixAriaLabel = {
step: 'step',
of: 'of',
completed: 'completed',
steps: 'steps',
}, }, ref) => {
const _currentStep = Math.min(Math.max(currentStep, initialStep), maxSteps);
const currentProgress = currentPercentage(_currentStep, initialStep, maxSteps);
const uniqueId = useId('stepperProgress');
const stepperProgressId = id ?? uniqueId;
prefixAriaLabel.step = _currentStep === 1 ? prefixAriaLabel.step : prefixAriaLabel.steps;
return (_jsxs(StepperProgressContainerStyled, { ref: ref, styles: styles, children: [_jsx(StepperProgressStyled, { "aria-hidden": true, "data-testid": dataTestId, id: stepperProgressId, max: maxProgress, styles: styles, value: currentProgress }), _jsx(StepperProgressHelpText, { "aria-describedby": stepperProgressId, "aria-live": AriaLiveOptionType.POLITE, "data-testid": dataTestId + '-help-text', styles: styles, children: _jsxs(Text, { component: TextComponentType.SPAN, customTypography: styles.currentStep, children: [`${_currentStep} ${prefixAriaLabel?.step || ''} `, _jsx(Text, { component: TextComponentType.SPAN, customTypography: styles.maxStep, children: `${prefixAriaLabel?.of || ''} ${maxSteps} ${prefixAriaLabel?.completed || ''}` })] }) })] }));
};
export const StepperProgressStandAlone = React.forwardRef(StepperProgressStandAloneComponent);
//# sourceMappingURL=stepperProgressStandAlone.js.map