__vite_ssr_exportName__("isZeroDecimal", () => { try { return isZeroDecimal } catch {} });
__vite_ssr_exportName__("toMinorUnits", () => { try { return toMinorUnits } catch {} });
__vite_ssr_exportName__("sumMoney", () => { try { return sumMoney } catch {} });
const ZERO_DECIMAL = /* @__PURE__ */ new Set([
  "BIF",
  "CLP",
  "DJF",
  "GNF",
  "JPY",
  "KMF",
  "KRW",
  "MGA",
  "PYG",
  "RWF",
  "UGX",
  "VND",
  "VUV",
  "XAF",
  "XOF",
  "XPF"
]);
function isZeroDecimal(currency) {
  return !!currency && ZERO_DECIMAL.has(currency.toUpperCase());
};
function toMinorUnits(amount, currency) {
  const text = String(amount).trim();
  if (!/^\d+(\.\d+)?$/.test(text)) {
    throw new Error(`Invalid money amount: ${text}`);
  };
  const [whole, fraction = ""] = text.split(".");
  if (isZeroDecimal(currency)) {
    return Number(whole) + (fraction && Number(fraction[0]) >= 5 ? 1 : 0);
  };
  const cents = (fraction + "00").slice(0, 2);
  const roundUp = fraction.length > 2 && Number(fraction[2]) >= 5 ? 1 : 0;
  return Number(whole) * 100 + Number(cents) + roundUp;
};
function sumMoney(values) {
  let cents = 0;
  for (const value of values) {
    cents += toMinorUnits(value, null);
  };
  const whole = Math.floor(cents / 100);
  const rest = String(cents % 100).padStart(2, "0");
  return `${whole}.${rest}`;
}
//# sourceMappingSource=vite-generated
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJtYXBwaW5ncyI6IkFBQUEsQ0FBQTs7O0FBRUEsTUFBTSxlQUFlLG9CQUFJLElBQUk7QUFBQSxFQUMzQjtBQUFBLEVBQU87QUFBQSxFQUFPO0FBQUEsRUFBTztBQUFBLEVBQU87QUFBQSxFQUFPO0FBQUEsRUFBTztBQUFBLEVBQU87QUFBQSxFQUNqRDtBQUFBLEVBQU87QUFBQSxFQUFPO0FBQUEsRUFBTztBQUFBLEVBQU87QUFBQSxFQUFPO0FBQUEsRUFBTztBQUFBLEVBQU87QUFDbkQsQ0FBQztBQUVNLFNBQVMsY0FBYyxVQUFtQztBQUMvRCxTQUFPLENBQUMsQ0FBQyxZQUFZLGFBQWEsSUFBSSxTQUFTLFlBQVksQ0FBQztBQUM5RDtBQU9PLFNBQVMsYUFDZCxRQUNBLFVBQ1E7QUFDUixRQUFNLE9BQU8sT0FBTyxNQUFNLEVBQUUsS0FBSztBQUNqQyxNQUFJLENBQUMsZ0JBQWdCLEtBQUssSUFBSSxHQUFHO0FBQy9CLFVBQU0sSUFBSSxNQUFNLHlCQUF5QixJQUFJLEVBQUU7QUFBQSxFQUNqRDtBQUNBLFFBQU0sQ0FBQyxPQUFPLFdBQVcsRUFBRSxJQUFJLEtBQUssTUFBTSxHQUFHO0FBRTdDLE1BQUksY0FBYyxRQUFRLEdBQUc7QUFDM0IsV0FBTyxPQUFPLEtBQUssS0FBSyxZQUFZLE9BQU8sU0FBUyxDQUFDLENBQUMsS0FBSyxJQUFJLElBQUk7QUFBQSxFQUNyRTtBQUVBLFFBQU0sU0FBUyxXQUFXLE1BQU0sTUFBTSxHQUFHLENBQUM7QUFDMUMsUUFBTSxVQUFVLFNBQVMsU0FBUyxLQUFLLE9BQU8sU0FBUyxDQUFDLENBQUMsS0FBSyxJQUFJLElBQUk7QUFDdEUsU0FBTyxPQUFPLEtBQUssSUFBSSxNQUFNLE9BQU8sS0FBSyxJQUFJO0FBQy9DO0FBR08sU0FBUyxTQUFTLFFBQXdDO0FBQy9ELE1BQUksUUFBUTtBQUNaLGFBQVcsU0FBUyxRQUFRO0FBQzFCLGFBQVMsYUFBYSxPQUFPLElBQUk7QUFBQSxFQUNuQztBQUNBLFFBQU0sUUFBUSxLQUFLLE1BQU0sUUFBUSxHQUFHO0FBQ3BDLFFBQU0sT0FBTyxPQUFPLFFBQVEsR0FBRyxFQUFFLFNBQVMsR0FBRyxHQUFHO0FBQ2hELFNBQU8sR0FBRyxLQUFLLElBQUksSUFBSTtBQUN6QiIsIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZXMiOlsibW9uZXkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gRmlyc3RQcm9tb3RlciB3YW50cyBhbW91bnRzIGluIGNlbnRzLCBleGNlcHQgZm9yIHplcm8tZGVjaW1hbCBjdXJyZW5jaWVzXG4vLyAoZS5nLiBKUFkpLCB3aGljaCBhcmUgc2VudCBhcyB3aG9sZSB2YWx1ZXMuXG5jb25zdCBaRVJPX0RFQ0lNQUwgPSBuZXcgU2V0KFtcbiAgXCJCSUZcIiwgXCJDTFBcIiwgXCJESkZcIiwgXCJHTkZcIiwgXCJKUFlcIiwgXCJLTUZcIiwgXCJLUldcIiwgXCJNR0FcIixcbiAgXCJQWUdcIiwgXCJSV0ZcIiwgXCJVR1hcIiwgXCJWTkRcIiwgXCJWVVZcIiwgXCJYQUZcIiwgXCJYT0ZcIiwgXCJYUEZcIixcbl0pO1xuXG5leHBvcnQgZnVuY3Rpb24gaXNaZXJvRGVjaW1hbChjdXJyZW5jeT86IHN0cmluZyB8IG51bGwpOiBib29sZWFuIHtcbiAgcmV0dXJuICEhY3VycmVuY3kgJiYgWkVST19ERUNJTUFMLmhhcyhjdXJyZW5jeS50b1VwcGVyQ2FzZSgpKTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhIGRlY2ltYWwgbW9uZXkgc3RyaW5nIChcIjE5Ljk5XCIpIHRvIEZpcnN0UHJvbW90ZXIncyBpbnRlZ2VyIHVuaXQuXG4gKiBVc2VzIHN0cmluZyBtYXRocyBzbyBcIjEuMDA1XCIgc3R5bGUgdmFsdWVzIG5ldmVyIGhpdCBmbG9hdCByb3VuZGluZyBlcnJvcnMuXG4gKiBUaHJvd3Mgb24gYW55dGhpbmcgdGhhdCBpcyBub3QgYSBub24tbmVnYXRpdmUgZGVjaW1hbC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvTWlub3JVbml0cyhcbiAgYW1vdW50OiBzdHJpbmcgfCBudW1iZXIsXG4gIGN1cnJlbmN5Pzogc3RyaW5nIHwgbnVsbCxcbik6IG51bWJlciB7XG4gIGNvbnN0IHRleHQgPSBTdHJpbmcoYW1vdW50KS50cmltKCk7XG4gIGlmICghL15cXGQrKFxcLlxcZCspPyQvLnRlc3QodGV4dCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgbW9uZXkgYW1vdW50OiAke3RleHR9YCk7XG4gIH1cbiAgY29uc3QgW3dob2xlLCBmcmFjdGlvbiA9IFwiXCJdID0gdGV4dC5zcGxpdChcIi5cIik7XG5cbiAgaWYgKGlzWmVyb0RlY2ltYWwoY3VycmVuY3kpKSB7XG4gICAgcmV0dXJuIE51bWJlcih3aG9sZSkgKyAoZnJhY3Rpb24gJiYgTnVtYmVyKGZyYWN0aW9uWzBdKSA+PSA1ID8gMSA6IDApO1xuICB9XG5cbiAgY29uc3QgY2VudHMgPSAoZnJhY3Rpb24gKyBcIjAwXCIpLnNsaWNlKDAsIDIpO1xuICBjb25zdCByb3VuZFVwID0gZnJhY3Rpb24ubGVuZ3RoID4gMiAmJiBOdW1iZXIoZnJhY3Rpb25bMl0pID49IDUgPyAxIDogMDtcbiAgcmV0dXJuIE51bWJlcih3aG9sZSkgKiAxMDAgKyBOdW1iZXIoY2VudHMpICsgcm91bmRVcDtcbn1cblxuLyoqIEFkZHMgZGVjaW1hbCBtb25leSBzdHJpbmdzIHdpdGhvdXQgZmxvYXQgZHJpZnQ7IHJldHVybnMgYSAyZHAgc3RyaW5nLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN1bU1vbmV5KHZhbHVlczogQXJyYXk8c3RyaW5nIHwgbnVtYmVyPik6IHN0cmluZyB7XG4gIGxldCBjZW50cyA9IDA7XG4gIGZvciAoY29uc3QgdmFsdWUgb2YgdmFsdWVzKSB7XG4gICAgY2VudHMgKz0gdG9NaW5vclVuaXRzKHZhbHVlLCBudWxsKTtcbiAgfVxuICBjb25zdCB3aG9sZSA9IE1hdGguZmxvb3IoY2VudHMgLyAxMDApO1xuICBjb25zdCByZXN0ID0gU3RyaW5nKGNlbnRzICUgMTAwKS5wYWRTdGFydCgyLCBcIjBcIik7XG4gIHJldHVybiBgJHt3aG9sZX0uJHtyZXN0fWA7XG59XG4iXSwiZmlsZSI6Ii9hcHAvbGliL21vbmV5LnRzIn0=

//# vitestCache=W3siZmlsZSI6IjEiLCJpZCI6IjEiLCJ1cmwiOiIyIiwiaW1wb3J0cyI6IjMiLCJtYXBwaW5ncyI6ZmFsc2UsImRlcHMiOiI0IiwiZHluYW1pY0RlcHMiOiI1Iiwic3RhdGljTW9ja3MiOm51bGx9LCIvVXNlcnMvZGF3aWQvRGVza3RvcC9maXJzdHByb21vdGVyLXNob3BpZnktYXBwL2FwcC9saWIvbW9uZXkudHMiLCIvYXBwL2xpYi9tb25leS50cyIseyJ1cmxzIjoiNiIsImlkcyI6IjcifSxbXSxbXSxbXSx7fV0=