@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.84 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.PillStandAlone = void 0;
const jsx_runtime_1 = require("react/jsx-runtime");
const react_1 = __importDefault(require("react"));
const useId_1 = require("../../hooks/useId/useId");
const inputType_1 = require("../../types/inputType/inputType");
const aria_1 = require("../../utils/aria/aria");
const role_1 = require("../../types/role/role");
const type_1 = require("../button/types/type");
const elementOrIcon_1 = require("../elementOrIcon/elementOrIcon");
const text_1 = require("../text/text");
const component_1 = require("../text/types/component");
const pill_styled_1 = require("./pill.styled");
const pillType_1 = require("./types/pillType");
const PillStandAloneComponent = ({ dataTestId = 'pill', type = pillType_1.PillType.BUTTON, ...props }, ref) => {
const ariaProps = (0, aria_1.pickAriaProps)(props);
const id = (0, useId_1.useId)('pill');
const pillContentId = `${id}-content`;
return ((0, jsx_runtime_1.jsxs)(pill_styled_1.PillRootContainerStyled, { ref: ref, ...ariaProps, "aria-selected": type === pillType_1.PillType.TAB ? props.selected : undefined, as: ([pillType_1.PillType.BUTTON, pillType_1.PillType.TAB].includes(type) ? pill_styled_1.PillAsButton : undefined), "data-testid": dataTestId, role: type === pillType_1.PillType.TAB ? role_1.ROLES.TAB : undefined, styles: props.styles, type: [pillType_1.PillType.BUTTON, pillType_1.PillType.TAB].includes(type) ? type_1.ButtonType.BUTTON : undefined, onClick: props.onClick, children: [(0, jsx_runtime_1.jsxs)(pill_styled_1.PillContentContainerStyled, { "data-pill-content": true, id: pillContentId, styles: props.styles, children: [(0, jsx_runtime_1.jsx)(elementOrIcon_1.ElementOrIcon, { customIconStyles: props.styles?.leftIcon, ...props.leftIcon }), (0, jsx_runtime_1.jsx)(text_1.Text, { component: component_1.TextComponentType.SPAN, customTypography: props.styles?.label, ...props.label, children: props.label?.content }), (0, jsx_runtime_1.jsx)(elementOrIcon_1.ElementOrIcon, { customIconStyles: props.styles?.rightIcon, ...props.rightIcon })] }), [pillType_1.PillType.SELECTOR_SIMPLE, pillType_1.PillType.SELECTOR_MULTIPLE].includes(type) && ((0, jsx_runtime_1.jsx)(pill_styled_1.PillInputStyled, { "aria-labelledby": pillContentId, checked: props.selected, disabled: props.disabled, name: props.name, styles: props.styles, type: type === pillType_1.PillType.SELECTOR_SIMPLE ? inputType_1.InputTypeType.RADIO : inputType_1.InputTypeType.CHECKBOX, value: props.value, onChange: props.onChange }))] }));
};
exports.PillStandAlone = react_1.default.forwardRef(PillStandAloneComponent);
//# sourceMappingURL=pillStandAlone.js.map