UNPKG

koval-ui

Version:

React components collection with minimalistic design. Supports theming, layout, and input validation.

70 lines (69 loc) 1.68 kB
"use client"; import { jsx as l } from "react/jsx-runtime"; import { forwardRef as p, useMemo as x } from "react"; import N from "classnames"; import { useBrowserLocale as b } from "../../internal/locale/useBrowserLocale.js"; import D from "./Number.module.css.js"; import { SignDisplayModes as S, Styles as w, LocaleMatchers as y } from "./types.js"; const F = p( ({ value: i, className: u, locale: e, localeMatcher: t = y["best fit"], digitsConfig: m = { integer: { minimum: 1 }, significant: { minimum: 1, maximum: 21 }, fraction: {} }, grouping: n, signDisplay: r = S.auto, ...s }, o) => { const f = b(), a = e || f, c = x( () => i ? new Intl.NumberFormat(a, { localeMatcher: t, style: w.percent, minimumIntegerDigits: m.integer?.minimum, minimumFractionDigits: m.fraction?.minimum, minimumSignificantDigits: m.significant?.minimum, maximumSignificantDigits: m.significant?.maximum, maximumFractionDigits: m.fraction?.maximum, useGrouping: n, signDisplay: r }).format(i) : "", [ m.fraction?.maximum, m.fraction?.minimum, m.integer?.minimum, m.significant?.maximum, m.significant?.minimum, n, a, t, r, i ] ); return i && /* @__PURE__ */ l( "span", { ...s, title: c, className: N(D.number, u), ref: o, children: c } ); } ); F.displayName = "NumberPercent"; export { F as NumberPercent }; //# sourceMappingURL=NumberPercent.js.map