@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
25 lines • 3.07 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.RadioButtonGroupStandAlone = void 0;
const jsx_runtime_1 = require("react/jsx-runtime");
//vendors
const react_1 = __importDefault(require("react"));
const text_1 = require("../../components/text/text");
const component_1 = require("../../components/text/types/component");
const useId_1 = require("../../hooks/useId/useId");
const screenReaderOnly_1 = require("../screenReaderOnly/screenReaderOnly");
const infoIconWithTooltipStandAlone_1 = require("./components/infoIconWithTooltipStandAlone/infoIconWithTooltipStandAlone");
const radioButton_1 = require("./components/radioButton/radioButton");
// styles
const radioButtonGroup_styled_1 = require("./radioButtonGroup.styled");
const state_1 = require("./types/state");
const RadioButtonGroupStandAloneComponent = ({ dataTestId = 'radio-button-group', requiredSymbol = '*', state = state_1.RadioButtonGroupStateType.DEFAULT, legendComponent = component_1.TextComponentType.LEGEND, ...props }, ref) => {
const uniqueId = (0, useId_1.useId)('radiogroup');
const screenReaderId = `${uniqueId}ScreenReader`;
return ((0, jsx_runtime_1.jsxs)(radioButtonGroup_styled_1.RadioButtonGroupStyled, { ref: ref, "aria-errormessage": props.errorMessageId, "data-testid": dataTestId, disabled: state === state_1.RadioButtonGroupStateType.DISABLED || props.disabled, name: props.name, styles: props.styles, children: [props.legend && ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: (0, jsx_runtime_1.jsxs)(text_1.Text, { component: legendComponent, customTypography: props.styles?.[state]?.title, children: [props.legend, (0, jsx_runtime_1.jsx)(infoIconWithTooltipStandAlone_1.InfoIconWithTooltipStandAlone, { infoIcon: props.infoIcon, styles: props.styles, tooltip: props.tooltip }), props.required && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [requiredSymbol, (0, jsx_runtime_1.jsx)(screenReaderOnly_1.ScreenReaderOnly, { children: props.requiredScreenReaderText })] }))] }) })), props.options.map((o, index) => ((0, jsx_runtime_1.jsx)(radioButton_1.RadioButton, { checked: props.selectedOption?.value === o.value, disabled: o.disabled, error: o.error, errorAriaLiveType: o.errorAriaLiveType, errorIcon: o.errorIcon, errorMessage: o.errorMessage, label: { content: o.label }, lastChild: index === props.options.length - 1, name: props.name, screenReaderId: o.screenReader ? screenReaderId : undefined, state: o.state, styles: props.styles, subTitle: { content: o.description }, value: o.value, variant: props.variant, onBlur: props.onBlur, onChange: props.onChange }, o.value))), (0, jsx_runtime_1.jsx)(screenReaderOnly_1.ScreenReaderOnly, { id: screenReaderId, children: props.screenReaderText })] }));
};
exports.RadioButtonGroupStandAlone = react_1.default.forwardRef(RadioButtonGroupStandAloneComponent);
//# sourceMappingURL=radioButtonGroupStandAlone.js.map