"use client";
import { jsx as x } from "react/jsx-runtime";
import { forwardRef as f, useMemo as p } from "react";
import { c as g } from "./cn-ct4n7r74mh8y0f48.js";
const s = {
  variant: {
    heading1: {
      classes: "text-3xl font-semibold",
      description: "Large heading for page titles"
    },
    heading2: {
      classes: "text-2xl font-semibold",
      description: "Medium heading for section titles"
    },
    heading3: {
      classes: "text-lg font-semibold",
      description: "Small heading for subsections"
    },
    body: {
      classes: "text-kumo-default",
      description: "Default body text"
    },
    secondary: {
      classes: "text-kumo-subtle",
      description: "Muted text for secondary information"
    },
    success: {
      classes: "text-kumo-link",
      description: "Success state text"
    },
    error: {
      classes: "text-kumo-danger",
      description: "Error state text"
    },
    mono: {
      classes: "font-mono",
      description: "Monospace text for code"
    },
    "mono-secondary": {
      classes: "font-mono text-kumo-subtle",
      description: "Muted monospace text"
    }
  },
  size: {
    xs: {
      classes: "text-xs",
      description: "Extra small text"
    },
    sm: {
      classes: "text-sm",
      description: "Small text"
    },
    base: {
      classes: "text-base",
      description: "Default text size"
    },
    lg: {
      classes: "text-lg",
      description: "Large text"
    }
  }
};
function b({
  variant: e = "body",
  bold: i = !1,
  size: o = "base",
  children: c,
  DANGEROUS_className: r,
  DANGEROUS_style: a,
  as: t,
  ...l
}, d) {
  const n = ["body", "secondary", "success", "error"].includes(e), m = ["mono", "mono-secondary"].includes(e), u = p(() => t || (e === "heading1" ? "h1" : e === "heading2" ? "h2" : e === "heading3" ? "h3" : ["mono", "mono-secondary"].includes(e) ? "span" : "p"), [e, t]);
  return /* @__PURE__ */ x(
    u,
    {
      ref: d,
      className: g(
        "text-kumo-default",
        s.variant[e].classes,
        n ? s.size[o].classes : "",
        n && i ? "font-medium" : "",
        // Monospace fonts need to be 1pt smaller than body text to optically match
        m && (o === "lg" ? s.size.base.classes : s.size.sm.classes),
        r
      ),
      style: a,
      ...l,
      children: c
    }
  );
}
const M = f(b);
export {
  M as T
};
//# sourceMappingURL=text-gzt92mlji1lug13d.js.map
