UNPKG

@frontify/fondue

Version:
82 lines (81 loc) 2.54 kB
import { jsxs as j, jsx as B } from "react/jsx-runtime"; import { useButton as I } from "@react-aria/button"; import { useFocusRing as O } from "@react-aria/focus"; import { forwardRef as V, cloneElement as _ } from "react"; import { buttonTypeMap as k, buttonIconSizeMap as z } from "./mappings.es.js"; import { FOCUS_VISIBLE_STYLE as T } from "../../utilities/focusStyle.es.js"; import { merge as r } from "../../utilities/merge.es.js"; import { useForwardedRef as U } from "../../utilities/useForwardedRef.es.js"; import { ButtonStyleClasses as W, ButtonDisabledClasses as Y, ButtonCommonClasses as q, ButtonRoundingClasses as v, ButtonSizeClasses as d, IconSpacingClasses as A } from "./ButtonClasses.es.js"; import { ButtonStyle as o, ButtonEmphasis as u, ButtonType as G, ButtonRounding as H, ButtonSize as J } from "./ButtonTypes.es.js"; const K = ({ type: S = G.Button, title: b = "", style: t = o.Default, size: s = J.Medium, rounding: y = H.Medium, emphasis: n = u.Strong, hideLabel: i = !1, disabled: e = !1, icon: m, children: a, onClick: p, hugWidth: C = !0, "aria-label": g, "aria-describedby": w, formId: D, solid: x, inverted: F, "data-test-id": f = "button" }, N) => { t === o.Primary ? (t = o.Default, n = u.Strong) : t === o.Secondary && (t = o.Default, n = u.Default), x === !1 && (n = u.Weak); const c = U(N), { buttonProps: R } = I( { onPress: () => p && p(), isDisabled: e, type: k[S] }, c ), { isFocusVisible: E, focusProps: M } = O(), l = ($) => e ? Y : `${W[n][t][$]}`, P = r([ l("button"), q, v[y], m && !a || i ? d[s].iconOnly : d[s].default, !C && "tw-w-full" ]); return /* @__PURE__ */ j( "button", { "data-test-id": f, "aria-label": g, "aria-disabled": e, "aria-describedby": w, ref: c, className: r([P, F && "tw-dark", E && T]), disabled: e, form: D, title: b, ...R, ...M, children: [ m && /* @__PURE__ */ B( "span", { "data-test-id": `${f}-icon`, className: r([a && !i ? A[s] : "", l("icon")]), children: _(m, { size: z[s] }) } ), a && /* @__PURE__ */ B( "span", { "data-test-id": `${f}-text`, className: r([l("text"), i && "tw-sr-only"]), children: a } ) ] } ); }, L = V(K); L.displayName = "FondueButton"; export { L as Button }; //# sourceMappingURL=Button.es.js.map