@crossed/primitive
Version:
A universal & performant styling library for React Native, Next.js & React
33 lines (32 loc) • 776 B
JavaScript
import {
Children,
cloneElement,
forwardRef,
isValidElement
} from "react";
const VisibilityHidden = forwardRef(
({ children, hidden = false }, ref) => {
if (typeof children === "string") {
throw new Error(`"VisibilityHidden" not accept string children`);
}
return Children.map(children, (c) => {
return isValidElement(c) ? cloneElement(c, {
"aria-hidden": hidden.toString(),
ref,
...hidden ? {
style: {
position: "absolute",
overflow: "hidden",
clip: "rect(0, 0, 0, 0)",
whiteSpace: "nowrap",
wordWrap: "normal"
}
} : {}
}) : null;
});
}
);
export {
VisibilityHidden
};
//# sourceMappingURL=VisibilityHidden.js.map