@s-ui/react-molecule-field
Version:
`MoleculeField` is a component that wraps a composition of Label + some input (input, textarea, ...) + Validation Messages.
25 lines • 1.12 kB
JavaScript
import { isElement } from 'react-is';
import AtomLabel from '@s-ui/react-atom-label';
import { jsx as _jsx } from "react/jsx-runtime";
export var BASE_CLASS = 'sui-MoleculeField';
export var CLASS_INLINE = BASE_CLASS + "--inline";
export var CLASS_AUTO_HIDE = BASE_CLASS + "--autohide";
export var CLASS_FULLWIDTH = BASE_CLASS + "--fullWidth";
export var CLASS_INLINE_REVERSE = CLASS_INLINE + "-reverse";
export var CLASS_NODE_LABEL_CONTAINER = BASE_CLASS + "-nodeLabelContainer";
export var CLASS_INPUT_CONTAINER = BASE_CLASS + "-inputContainer";
export var CLASS_LABEL_CONTAINER = BASE_CLASS + "-labelContainer";
export function isDOMTypeElement(element) {
return isElement(element) && typeof element.type === 'string';
}
export function isCompositeTypeElement(element) {
return isElement(element) && typeof element.type === 'function';
}
export var getLabeled = function getLabeled(element) {
if (isDOMTypeElement(element) && element.type === 'label' || isCompositeTypeElement(element) && element.type === AtomLabel) {
return element;
}
return /*#__PURE__*/_jsx(AtomLabel, {
text: element
});
};