UNPKG

braid-design-system

Version:
36 lines (35 loc) 1.6 kB
"use strict"; const assert = require("assert"); const clsx = require("clsx"); const react = require("react"); const lib_css_atoms_atoms_cjs = require("../../css/atoms/atoms.cjs"); const lib_components_Heading_HeadingContext_cjs = require("../Heading/HeadingContext.cjs"); const lib_components_Text_TextContext_cjs = require("../Text/TextContext.cjs"); const lib_hooks_useIcon_icon_css_cjs = require("../../hooks/useIcon/icon.css.cjs"); const _interopDefaultCompat = (e) => e && typeof e === "object" && "default" in e ? e : { default: e }; const assert__default = /* @__PURE__ */ _interopDefaultCompat(assert); const clsx__default = /* @__PURE__ */ _interopDefaultCompat(clsx); const iconInlineSize = ({ alignY = "uppercase", verticalCorrection = "none" } = {}) => clsx__default.default( lib_css_atoms_atoms_cjs.atoms({ display: "inlineBlock", position: "relative" }), lib_hooks_useIcon_icon_css_cjs.size, lib_hooks_useIcon_icon_css_cjs.inlineCrop, lib_hooks_useIcon_icon_css_cjs.inline, lib_hooks_useIcon_icon_css_cjs.alignY[alignY][verticalCorrection] ); const IconRenderer = ({ children }) => { const textContext = react.useContext(lib_components_Text_TextContext_cjs.TextContext); const headingContext = react.useContext(lib_components_Heading_HeadingContext_cjs.HeadingContext); assert__default.default( Boolean(textContext || headingContext), `IconRenderer must be inside either a \`Text\` or \`Heading\` component.` ); return children({ className: iconInlineSize() }); }; exports.IconRenderer = IconRenderer; exports.iconInlineSize = iconInlineSize;