UNPKG

@crossed/ui

Version:

A universal & performant styling library for React Native, Next.js & React

59 lines (58 loc) 2.71 kB
var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); var Icon_exports = {}; __export(Icon_exports, { ButtonIcon: () => ButtonIcon }); module.exports = __toCommonJS(Icon_exports); var import_styled = require("@crossed/styled"); var import_react = require("react"); var import_context = require("./context"); var import_styles = require("./styles"); const ButtonIcon = ({ children, style }) => { const { variant, state, disabled } = (0, import_react.useContext)(import_context.buttonContext); const { hover, active } = state; const color = (0, import_react.useMemo)(() => { return (0, import_styled.composeStyles)( import_styles.textStyles.default, variant === "primary" && import_styles.buttonPrimaryStyles.text, variant === "primary" && hover && import_styles.buttonPrimaryStyles.textHover, variant === "primary" && active && import_styles.buttonPrimaryStyles.textActive, variant === "secondary" && import_styles.buttonSecondaryStyles.text, variant === "secondary" && hover && import_styles.buttonSecondaryStyles.textHover, variant === "secondary" && active && import_styles.buttonSecondaryStyles.text, variant === "tertiary" && import_styles.buttonTertiaryStyles.textActive, variant === "tertiary" && hover && import_styles.buttonTertiaryStyles.textHover, variant === "tertiary" && active && import_styles.buttonTertiaryStyles.textActive, variant === "error" && import_styles.buttonErrorStyles.text, variant === "success" && import_styles.buttonSuccessStyles.text, disabled && import_styles.textStyles.disabled, style ).style(state).style.color; }, [variant, state]); return (0, import_react.isValidElement)(children) ? (0, import_react.cloneElement)(children, { color }) : children; }; ButtonIcon.displayName = "Button.Icon"; // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { ButtonIcon }); //# sourceMappingURL=Icon.js.map