@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 • 3.05 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 text_1 = require("../../components/text/text");
const useId_1 = require("../../hooks/useId/useId");
const aria_1 = require("../../utils/aria/aria");
const elementOrIcon_1 = require("../elementOrIcon/elementOrIcon");
const inputType_1 = require("../input/types/inputType");
const component_1 = require("../text/types/component");
const pill_styled_1 = require("./pill.styled");
const state_utils_1 = require("./utils/state.utils");
const PillStandAloneComponent = ({ styles, decorativeIcon, selectedIcon, dataTestId = 'pill', children, multiSelect = false, disabled, selected, name, onFocus, tabIndex, onPillChange, onKeyDown, value, ...props }, ref) => {
const ariaProps = (0, aria_1.pickAriaProps)(props);
const id = (0, useId_1.useId)('pill');
const component = multiSelect ? inputType_1.InputTypeType.CHECKBOX : inputType_1.InputTypeType.RADIO;
const state = (0, state_utils_1.getPillState)(selected, disabled);
const stateStyles = styles[state];
return ((0, jsx_runtime_1.jsxs)(pill_styled_1.ParentContainerStyled, { styles: stateStyles, children: [(0, jsx_runtime_1.jsxs)(pill_styled_1.PillStyled, { ref: ref, "data-testid": dataTestId, styles: stateStyles, tabIndex: tabIndex, onKeyDown: onKeyDown?.(value || ''), children: [(0, jsx_runtime_1.jsx)(pill_styled_1.PillInputStyled, { "aria-checked": selected, ...ariaProps, checked: selected, "data-testid": `${dataTestId}-input`, disabled: disabled, id: id, name: name, styles: stateStyles, tabIndex: -1, type: component, value: value, onChange: onPillChange, onFocus: onFocus }), decorativeIcon && ((0, jsx_runtime_1.jsx)(pill_styled_1.IconContainerStyled, { styles: stateStyles, children: (0, jsx_runtime_1.jsx)(elementOrIcon_1.ElementOrIcon, { color: stateStyles?.decorativeIcon?.color, height: stateStyles?.decorativeIcon?.height, width: stateStyles?.decorativeIcon?.width, ...decorativeIcon }) })), (0, jsx_runtime_1.jsx)(pill_styled_1.PillLabelStyled, { htmlFor: id, styles: stateStyles, children: children }), selectedIcon && selected && ((0, jsx_runtime_1.jsx)(elementOrIcon_1.ElementOrIcon, { color: stateStyles?.selectedIcon?.color, height: stateStyles?.selectedIcon?.height, width: stateStyles?.selectedIcon?.width, ...selectedIcon }))] }), props.label?.content && props.label.content !== null && ((0, jsx_runtime_1.jsx)(pill_styled_1.LabelContainerStyled, { styles: stateStyles, children: (0, jsx_runtime_1.jsx)(text_1.Text, { component: component_1.TextComponentType.PARAGRAPH, customTypography: stateStyles?.labelContent, ...props.label, children: props.label.content }) }))] }));
};
exports.PillStandAlone = react_1.default.forwardRef(PillStandAloneComponent);
//# sourceMappingURL=pillStandAlone.js.map