UNPKG

@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
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