"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.bodyLineHeight = exports.bodyFontSize = exports.Body = void 0;
var _react = _interopRequireWildcard(require("react"));
var _reactNative = require("react-native");
var _context = require("../../context");
var _IOText = require("./IOText");
var _jsxRuntime = require("react/jsx-runtime");
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
const bodyFontSize = exports.bodyFontSize = 16;
const bodyLineHeight = exports.bodyLineHeight = 24;
const fontName = "Titillio";
const legacyFontName = "TitilliumSansPro";

/**
 * `Body` typographic style
 */
const Body = exports.Body = /*#__PURE__*/(0, _react.forwardRef)(({
  weight: customWeight,
  color: customColor,
  asLink,
  avoidPressable,
  accessibilityRole = "link",
  textStyle: customTextStyle,
  onPress,
  ...props
}, ref) => {
  const theme = (0, _context.useIOTheme)();
  const {
    newTypefaceEnabled
  } = (0, _context.useIONewTypeface)();
  const defaultColor = asLink ? theme["interactiveElem-default"] : theme["textBody-tertiary"];
  const BodyProps = {
    ...props,
    dynamicTypeRamp: "body",
    // iOS only
    font: newTypefaceEnabled ? fontName : legacyFontName,
    weight: customWeight ? customWeight : "Regular",
    size: bodyFontSize,
    lineHeight: bodyLineHeight,
    color: customColor ?? defaultColor,
    ...(asLink ? {
      accessibilityRole,
      textStyle: customTextStyle ?? {
        textDecorationLine: "underline"
      }
    } : {})
  };
  if (asLink && !avoidPressable) {
    return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Pressable, {
      onPress: onPress,
      ref: ref,
      accessibilityRole: accessibilityRole,
      children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_IOText.IOText, {
        ...BodyProps,
        children: props.children
      })
    });
  }
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_IOText.IOText, {
    ref: ref,
    ...BodyProps,
    onPress: asLink && avoidPressable ? onPress : undefined,
    children: props.children
  });
});
//# sourceMappingURL=Body.js.map