@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
18 lines • 2.01 kB
JavaScript
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
import React from 'react';
import { Text } from '../../components/text/text';
import { useId } from '../../hooks/useId/useId';
import { ScreenReaderOnly } from '../screenReaderOnly/screenReaderOnly';
import { TextComponentType } from '../text/types/component';
import { ToggleControlled } from '../toggle/toggleControlled';
import { ToggleWithLabelStyled } from './toggleWithLabel.styled';
const ToggleWithLabelStandAloneComponent = ({ screenReaderText, id, displayRow, styles, label, required, requiredSymbol, textVariant, toggleVariant, labelPosition, onFieldSetClick, dataTestId = 'toggle-with-label', ...props }, ref) => {
const uniqueId = useId('toggle');
const toggleId = id ?? uniqueId;
const screenReaderId = `${uniqueId}ScreenReader`;
const labelId = `${uniqueId}Label`;
const legendStyles = props.disabled && styles?.legend?.disabled ? styles?.legend?.disabled : styles?.legend;
return (_jsxs(ToggleWithLabelStyled, { ref: ref, as: label ? 'fieldset' : 'div', "data-testid": dataTestId, displayRow: displayRow, labelPosition: labelPosition, styles: styles, onClick: onFieldSetClick, children: [label && (_jsxs(Text, { component: TextComponentType.LEGEND, customTypography: legendStyles, id: labelId, variant: textVariant ?? styles?.legend?.font_variant, ...label, children: [label.content, required && (_jsx(Text, { "aria-hidden": true, color: styles?.required?.color, component: TextComponentType.SPAN, variant: styles?.required?.font_variant, weight: styles?.required?.font_weight, ...requiredSymbol, children: requiredSymbol?.content }))] })), _jsx(ToggleControlled, { ...props, "aria-describedby": labelId, id: toggleId, screenReaderId: screenReaderId, variant: toggleVariant }), _jsx(ScreenReaderOnly, { id: screenReaderId, children: screenReaderText })] }));
};
export const ToggleWithLabelStandAlone = React.forwardRef(ToggleWithLabelStandAloneComponent);
//# sourceMappingURL=toggleWithLabelStandAlone.js.map