UNPKG

@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
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 }); };