@voyantjs/finance-ui 0.73.1 → 0.74.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"record-booking-payment-dialog.d.ts","sourceRoot":"","sources":["../../src/components/record-booking-payment-dialog.tsx"],"names":[],"mappings":"AAsCA,MAAM,WAAW,+BAA+B;IAC9C,IAAI,EAAE,OAAO,CAAA;IACb,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACrC,SAAS,EAAE,MAAM,CAAA;IACjB,0DAA0D;IAC1D,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAA;CACxB;AAkCD,wBAAgB,0BAA0B,CAAC,EACzC,IAAI,EACJ,YAAY,EACZ,SAAS,EACT,eAAuB,EACvB,UAAU,GACX,EAAE,+BAA+B,2CAwOjC"}
1
+ {"version":3,"file":"record-booking-payment-dialog.d.ts","sourceRoot":"","sources":["../../src/components/record-booking-payment-dialog.tsx"],"names":[],"mappings":"AAwCA,MAAM,WAAW,+BAA+B;IAC9C,IAAI,EAAE,OAAO,CAAA;IACb,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACrC,SAAS,EAAE,MAAM,CAAA;IACjB,0DAA0D;IAC1D,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAA;CACxB;AA6DD,wBAAgB,0BAA0B,CAAC,EACzC,IAAI,EACJ,YAAY,EACZ,SAAS,EACT,eAAuB,EACvB,UAAU,GACX,EAAE,+BAA+B,2CA8YjC"}
@@ -1,8 +1,9 @@
1
1
  "use client";
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { paymentMethodSchema, paymentStatusSchema, useInvoicePaymentMutation, useInvoices, } from "@voyantjs/finance-react";
3
+ import { paymentMethodSchema, paymentStatusSchema, useInvoiceFxRate, useInvoicePaymentMutation, useInvoices, } from "@voyantjs/finance-react";
4
4
  import { formatMessage } from "@voyantjs/i18n";
5
5
  import { Button, Dialog, DialogBody, DialogContent, DialogFooter, DialogHeader, DialogTitle, Input, Label, Select, SelectContent, SelectItem, SelectTrigger, SelectValue, Textarea, } from "@voyantjs/ui/components";
6
+ import { CurrencyCombobox } from "@voyantjs/ui/components/currency-combobox";
6
7
  import { CurrencyInput } from "@voyantjs/ui/components/currency-input";
7
8
  import { DatePicker } from "@voyantjs/ui/components/date-picker";
8
9
  import { Loader2 } from "lucide-react";
@@ -18,6 +19,9 @@ function buildInitialFormState(currency) {
18
19
  invoiceId: "",
19
20
  amountCents: 0,
20
21
  currency,
22
+ baseAmountCents: 0,
23
+ fxRate: "",
24
+ fxRateSource: null,
21
25
  paymentMethod: "bank_transfer",
22
26
  status: "completed",
23
27
  paymentDate: todayIso(),
@@ -28,6 +32,25 @@ function buildInitialFormState(currency) {
28
32
  function formatAmount(cents) {
29
33
  return (cents / 100).toFixed(2);
30
34
  }
35
+ function normalizeCurrency(currency) {
36
+ return currency?.trim().toUpperCase() ?? "";
37
+ }
38
+ function parseFxRate(raw) {
39
+ const normalized = raw.trim().replace(",", ".");
40
+ if (!normalized)
41
+ return null;
42
+ const value = Number.parseFloat(normalized);
43
+ return Number.isFinite(value) && value > 0 ? value : null;
44
+ }
45
+ function deriveBaseAmountCents(amountCents, fxRateRaw) {
46
+ const fxRate = parseFxRate(fxRateRaw);
47
+ if (!fxRate || amountCents <= 0)
48
+ return null;
49
+ return Math.round(amountCents / fxRate);
50
+ }
51
+ function formatFxRateInput(rate) {
52
+ return String(rate);
53
+ }
31
54
  export function RecordBookingPaymentDialog({ open, onOpenChange, bookingId, defaultCurrency = "EUR", onRecorded, }) {
32
55
  const messages = useFinanceUiMessagesOrDefault();
33
56
  const dialog = messages.recordBookingPaymentDialog;
@@ -56,13 +79,86 @@ export function RecordBookingPaymentDialog({ open, onOpenChange, bookingId, defa
56
79
  invoiceId: target?.id ?? "",
57
80
  amountCents: target?.balanceDueCents ?? 0,
58
81
  currency: target?.currency ?? defaultCurrency,
82
+ baseAmountCents: 0,
83
+ fxRate: "",
84
+ fxRateSource: null,
59
85
  });
60
86
  initializedRef.current = true;
61
87
  }
62
88
  }, [open, invoicesQuery.isLoading, selectableInvoices, defaultCurrency]);
63
89
  const selectedInvoice = invoices.find((inv) => inv.id === state.invoiceId) ?? null;
90
+ const invoiceCurrency = selectedInvoice?.currency ?? "";
91
+ const normalizedInvoiceCurrency = normalizeCurrency(invoiceCurrency);
92
+ const paymentCurrency = normalizeCurrency(state.currency);
93
+ const isCrossCurrency = Boolean(normalizedInvoiceCurrency && paymentCurrency && normalizedInvoiceCurrency !== paymentCurrency);
94
+ const requiresBaseAmount = isCrossCurrency && state.status === "completed";
64
95
  const mutation = useInvoicePaymentMutation(state.invoiceId);
96
+ const fxRateQuery = useInvoiceFxRate({
97
+ baseCurrency: normalizedInvoiceCurrency || undefined,
98
+ quoteCurrency: paymentCurrency || undefined,
99
+ date: state.paymentDate || undefined,
100
+ enabled: open && isCrossCurrency,
101
+ });
102
+ const automaticFxRate = fxRateQuery.data?.data.rate;
65
103
  const set = (key, value) => setState((prev) => ({ ...prev, [key]: value }));
104
+ const setAmountCents = (amountCents) => {
105
+ setState((prev) => ({
106
+ ...prev,
107
+ amountCents,
108
+ baseAmountCents: deriveBaseAmountCents(amountCents, prev.fxRate) ?? prev.baseAmountCents,
109
+ }));
110
+ };
111
+ const setPaymentCurrency = (currency) => {
112
+ const nextCurrency = normalizeCurrency(currency) || normalizedInvoiceCurrency || defaultCurrency;
113
+ setState((prev) => {
114
+ const previousCurrency = normalizeCurrency(prev.currency);
115
+ const sameCurrency = previousCurrency === nextCurrency;
116
+ const nextIsCrossCurrency = Boolean(normalizedInvoiceCurrency) && nextCurrency !== normalizedInvoiceCurrency;
117
+ return {
118
+ ...prev,
119
+ amountCents: nextIsCrossCurrency &&
120
+ previousCurrency === normalizedInvoiceCurrency &&
121
+ prev.amountCents === selectedInvoice?.balanceDueCents
122
+ ? 0
123
+ : prev.amountCents,
124
+ currency: nextCurrency,
125
+ baseAmountCents: nextIsCrossCurrency
126
+ ? prev.baseAmountCents || selectedInvoice?.balanceDueCents || 0
127
+ : 0,
128
+ fxRate: nextIsCrossCurrency && sameCurrency ? prev.fxRate : "",
129
+ fxRateSource: sameCurrency ? prev.fxRateSource : null,
130
+ };
131
+ });
132
+ };
133
+ const setFxRate = (fxRate) => {
134
+ setState((prev) => ({
135
+ ...prev,
136
+ fxRate,
137
+ fxRateSource: "manual",
138
+ baseAmountCents: deriveBaseAmountCents(prev.amountCents, fxRate) ?? prev.baseAmountCents,
139
+ }));
140
+ };
141
+ React.useEffect(() => {
142
+ if (!isCrossCurrency || typeof automaticFxRate !== "number" || automaticFxRate <= 0)
143
+ return;
144
+ const fxRate = formatFxRateInput(automaticFxRate);
145
+ setState((prev) => {
146
+ if (prev.fxRateSource === "manual")
147
+ return prev;
148
+ const baseAmountCents = deriveBaseAmountCents(prev.amountCents, fxRate);
149
+ if (prev.fxRate === fxRate &&
150
+ prev.fxRateSource === "auto" &&
151
+ (baseAmountCents == null || prev.baseAmountCents === baseAmountCents)) {
152
+ return prev;
153
+ }
154
+ return {
155
+ ...prev,
156
+ fxRate,
157
+ fxRateSource: "auto",
158
+ baseAmountCents: baseAmountCents ?? prev.baseAmountCents,
159
+ };
160
+ });
161
+ }, [automaticFxRate, isCrossCurrency]);
66
162
  const handleSubmit = async (event) => {
67
163
  event.preventDefault();
68
164
  setSubmitError(null);
@@ -74,10 +170,18 @@ export function RecordBookingPaymentDialog({ open, onOpenChange, bookingId, defa
74
170
  setSubmitError(dialog.validation.amountMinimum);
75
171
  return;
76
172
  }
173
+ if (requiresBaseAmount && state.baseAmountCents <= 0) {
174
+ setSubmitError(dialog.validation.baseAmountRequired);
175
+ return;
176
+ }
77
177
  try {
78
178
  await mutation.mutateAsync({
79
179
  amountCents: state.amountCents,
80
- currency: state.currency,
180
+ currency: isCrossCurrency
181
+ ? paymentCurrency || state.currency
182
+ : invoiceCurrency || state.currency,
183
+ baseCurrency: isCrossCurrency ? invoiceCurrency : null,
184
+ baseAmountCents: isCrossCurrency && state.baseAmountCents > 0 ? state.baseAmountCents : null,
81
185
  paymentMethod: state.paymentMethod,
82
186
  status: state.status,
83
187
  paymentDate: state.paymentDate,
@@ -100,6 +204,9 @@ export function RecordBookingPaymentDialog({ open, onOpenChange, bookingId, defa
100
204
  invoiceId: id,
101
205
  amountCents: next?.balanceDueCents ?? prev.amountCents,
102
206
  currency: next?.currency ?? prev.currency,
207
+ baseAmountCents: 0,
208
+ fxRate: "",
209
+ fxRateSource: null,
103
210
  }));
104
211
  }, children: [_jsx(SelectTrigger, { id: "record-invoice", className: "w-full", children: _jsx(SelectValue, { placeholder: dialog.placeholders.invoice }) }), _jsx(SelectContent, { children: selectableInvoices.map((inv) => (_jsx(SelectItem, { value: inv.id, children: formatMessage(dialog.invoiceOption, {
105
212
  number: inv.invoiceNumber,
@@ -111,5 +218,24 @@ export function RecordBookingPaymentDialog({ open, onOpenChange, bookingId, defa
111
218
  paid: formatAmount(selectedInvoice.paidCents),
112
219
  due: formatAmount(selectedInvoice.balanceDueCents),
113
220
  currency: selectedInvoice.currency,
114
- }) })) : null] }), _jsxs("div", { className: "grid grid-cols-3 gap-4", children: [_jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { htmlFor: "record-amount", children: dialog.fields.amountCents }), _jsx(CurrencyInput, { value: state.amountCents, onChange: (next) => set("amountCents", next ?? 0), currency: state.currency })] }), _jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { htmlFor: "record-date", children: dialog.fields.paymentDate }), _jsx(DatePicker, { value: state.paymentDate || null, onChange: (next) => set("paymentDate", next ?? ""), className: "w-full" })] }), _jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { children: dialog.fields.status }), _jsxs(Select, { value: state.status, onValueChange: (value) => set("status", (value ?? "completed")), children: [_jsx(SelectTrigger, { className: "w-full", children: _jsx(SelectValue, {}) }), _jsx(SelectContent, { children: PAYMENT_STATUSES.map((value) => (_jsx(SelectItem, { value: value, children: statusLabels[value] }, value))) })] })] })] }), _jsxs("div", { className: "grid grid-cols-2 gap-4", children: [_jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { children: dialog.fields.paymentMethod }), _jsxs(Select, { value: state.paymentMethod, onValueChange: (value) => set("paymentMethod", (value ?? "bank_transfer")), children: [_jsx(SelectTrigger, { className: "w-full", children: _jsx(SelectValue, {}) }), _jsx(SelectContent, { children: PAYMENT_METHODS.map((value) => (_jsx(SelectItem, { value: value, children: methodLabels[value] }, value))) })] })] }), _jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { htmlFor: "record-ref", children: dialog.fields.referenceNumber }), _jsx(Input, { id: "record-ref", value: state.referenceNumber, onChange: (event) => set("referenceNumber", event.target.value), placeholder: dialog.placeholders.referenceNumber })] })] }), _jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { htmlFor: "record-notes", children: dialog.fields.notes }), _jsx(Textarea, { id: "record-notes", value: state.notes, onChange: (event) => set("notes", event.target.value), rows: 3 })] }), submitError ? _jsx("p", { className: "text-sm text-destructive", children: submitError }) : null] }), _jsxs(DialogFooter, { children: [_jsx(Button, { type: "button", variant: "ghost", onClick: () => onOpenChange(false), children: messages.common.cancel }), _jsxs(Button, { type: "submit", disabled: mutation.isPending || !state.invoiceId || state.amountCents <= 0, children: [mutation.isPending ? _jsx(Loader2, { className: "mr-2 h-4 w-4 animate-spin" }) : null, dialog.actions.record] })] })] })] }) }));
221
+ }) })) : null] }), _jsxs("div", { className: "grid gap-4 sm:grid-cols-3", children: [_jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { htmlFor: "record-amount", children: dialog.fields.amountCents }), _jsx(CurrencyInput, { id: "record-amount", value: state.amountCents, onChange: (next) => setAmountCents(next ?? 0), currency: state.currency })] }), _jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { children: dialog.fields.currency }), _jsx(CurrencyCombobox, { value: state.currency || null, onChange: (next) => setPaymentCurrency(next ?? selectedInvoice?.currency ?? defaultCurrency), placeholder: dialog.placeholders.currency })] }), _jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { htmlFor: "record-date", children: dialog.fields.paymentDate }), _jsx(DatePicker, { value: state.paymentDate || null, onChange: (next) => set("paymentDate", next ?? ""), className: "w-full" })] })] }), isCrossCurrency ? (_jsxs("div", { className: "rounded-md border bg-muted/20 p-3", children: [_jsxs("div", { className: "mb-3 space-y-1", children: [_jsx("h3", { className: "text-sm font-medium", children: dialog.fx.title }), _jsx("p", { className: "text-xs text-muted-foreground", children: formatMessage(dialog.fx.help, {
222
+ invoiceCurrency,
223
+ paymentCurrency,
224
+ }) })] }), _jsxs("div", { className: "grid gap-4 sm:grid-cols-3", children: [_jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { htmlFor: "record-base-amount", children: dialog.fields.baseAmountCents }), _jsx(CurrencyInput, { id: "record-base-amount", value: state.baseAmountCents, onChange: (next) => set("baseAmountCents", next ?? 0), currency: normalizedInvoiceCurrency || invoiceCurrency })] }), _jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { htmlFor: "record-fx-rate", children: dialog.fields.fxRate }), _jsx(Input, { id: "record-fx-rate", value: state.fxRate, onChange: (event) => setFxRate(event.target.value), inputMode: "decimal", placeholder: formatMessage(dialog.placeholders.fxRate, {
225
+ invoiceCurrency,
226
+ paymentCurrency,
227
+ }) })] }), _jsx("div", { className: "flex items-end", children: _jsx("p", { className: "pb-2 text-xs text-muted-foreground", children: fxRateQuery.isFetching
228
+ ? dialog.fx.loadingRate
229
+ : state.fxRateSource === "auto"
230
+ ? formatMessage(dialog.fx.autoRateHint, {
231
+ invoiceCurrency,
232
+ paymentCurrency,
233
+ })
234
+ : formatMessage(dialog.fx.rateHint, {
235
+ invoiceCurrency,
236
+ paymentCurrency,
237
+ }) }) })] })] })) : null, _jsxs("div", { className: "grid gap-4 sm:grid-cols-3", children: [_jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { children: dialog.fields.status }), _jsxs(Select, { value: state.status, onValueChange: (value) => set("status", (value ?? "completed")), children: [_jsx(SelectTrigger, { className: "w-full", children: _jsx(SelectValue, {}) }), _jsx(SelectContent, { children: PAYMENT_STATUSES.map((value) => (_jsx(SelectItem, { value: value, children: statusLabels[value] }, value))) })] })] }), _jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { children: dialog.fields.paymentMethod }), _jsxs(Select, { value: state.paymentMethod, onValueChange: (value) => set("paymentMethod", (value ?? "bank_transfer")), children: [_jsx(SelectTrigger, { className: "w-full", children: _jsx(SelectValue, {}) }), _jsx(SelectContent, { children: PAYMENT_METHODS.map((value) => (_jsx(SelectItem, { value: value, children: methodLabels[value] }, value))) })] })] }), _jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { htmlFor: "record-ref", children: dialog.fields.referenceNumber }), _jsx(Input, { id: "record-ref", value: state.referenceNumber, onChange: (event) => set("referenceNumber", event.target.value), placeholder: dialog.placeholders.referenceNumber })] })] }), _jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { htmlFor: "record-notes", children: dialog.fields.notes }), _jsx(Textarea, { id: "record-notes", value: state.notes, onChange: (event) => set("notes", event.target.value), rows: 3 })] }), submitError ? _jsx("p", { className: "text-sm text-destructive", children: submitError }) : null] }), _jsxs(DialogFooter, { children: [_jsx(Button, { type: "button", variant: "ghost", onClick: () => onOpenChange(false), children: messages.common.cancel }), _jsxs(Button, { type: "submit", disabled: mutation.isPending ||
238
+ !state.invoiceId ||
239
+ state.amountCents <= 0 ||
240
+ (requiresBaseAmount && state.baseAmountCents <= 0), children: [mutation.isPending ? _jsx(Loader2, { className: "mr-2 h-4 w-4 animate-spin" }) : null, dialog.actions.record] })] })] })] }) }));
115
241
  }
package/dist/i18n/en.d.ts CHANGED
@@ -508,6 +508,9 @@ export declare const financeUiEn: {
508
508
  fields: {
509
509
  invoice: string;
510
510
  amountCents: string;
511
+ currency: string;
512
+ baseAmountCents: string;
513
+ fxRate: string;
511
514
  paymentDate: string;
512
515
  paymentMethod: string;
513
516
  status: string;
@@ -516,8 +519,17 @@ export declare const financeUiEn: {
516
519
  };
517
520
  placeholders: {
518
521
  invoice: string;
522
+ currency: string;
523
+ fxRate: string;
519
524
  referenceNumber: string;
520
525
  };
526
+ fx: {
527
+ title: string;
528
+ help: string;
529
+ rateHint: string;
530
+ loadingRate: string;
531
+ autoRateHint: string;
532
+ };
521
533
  invoiceOption: string;
522
534
  invoiceMeta: string;
523
535
  loadingInvoices: string;
@@ -528,6 +540,7 @@ export declare const financeUiEn: {
528
540
  validation: {
529
541
  invoiceRequired: string;
530
542
  amountMinimum: string;
543
+ baseAmountRequired: string;
531
544
  recordFailed: string;
532
545
  };
533
546
  };
@@ -1 +1 @@
1
- {"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../src/i18n/en.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkiBK,CAAA"}
1
+ {"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../src/i18n/en.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAijBK,CAAA"}
package/dist/i18n/en.js CHANGED
@@ -508,6 +508,9 @@ export const financeUiEn = {
508
508
  fields: {
509
509
  invoice: "Invoice",
510
510
  amountCents: "Amount",
511
+ currency: "Payment currency",
512
+ baseAmountCents: "Invoice-currency amount",
513
+ fxRate: "FX rate",
511
514
  paymentDate: "Payment date",
512
515
  paymentMethod: "Method",
513
516
  status: "Status",
@@ -516,8 +519,17 @@ export const financeUiEn = {
516
519
  },
517
520
  placeholders: {
518
521
  invoice: "Select invoice",
522
+ currency: "Select currency...",
523
+ fxRate: "1 {invoiceCurrency} = ? {paymentCurrency}",
519
524
  referenceNumber: "Bank reference, receipt number, etc.",
520
525
  },
526
+ fx: {
527
+ title: "Cross-currency settlement",
528
+ help: "Record the received amount in {paymentCurrency} and the value applied to the invoice in {invoiceCurrency}.",
529
+ rateHint: "Use the rate as {paymentCurrency} per 1 {invoiceCurrency}; entering it updates the invoice-currency amount.",
530
+ loadingRate: "Loading FX rate...",
531
+ autoRateHint: "Using the current {paymentCurrency} per 1 {invoiceCurrency} rate; edit it if needed.",
532
+ },
521
533
  invoiceOption: "{number} — {status} — {balance} {currency} due",
522
534
  invoiceMeta: "Total {total} {currency} • paid {paid} {currency} • due {due} {currency}",
523
535
  loadingInvoices: "Loading invoices…",
@@ -528,6 +540,7 @@ export const financeUiEn = {
528
540
  validation: {
529
541
  invoiceRequired: "Select an invoice to record this payment against.",
530
542
  amountMinimum: "Amount must be greater than zero.",
543
+ baseAmountRequired: "Enter the amount to apply in the invoice currency.",
531
544
  recordFailed: "Failed to record payment.",
532
545
  },
533
546
  },
@@ -368,6 +368,9 @@ export type FinanceUiMessages = {
368
368
  fields: {
369
369
  invoice: string;
370
370
  amountCents: string;
371
+ currency: string;
372
+ baseAmountCents: string;
373
+ fxRate: string;
371
374
  paymentDate: string;
372
375
  paymentMethod: string;
373
376
  status: string;
@@ -376,8 +379,21 @@ export type FinanceUiMessages = {
376
379
  };
377
380
  placeholders: {
378
381
  invoice: string;
382
+ currency: string;
383
+ /** Placeholder for manual FX rate. Placeholders: `{invoiceCurrency} {paymentCurrency}`. */
384
+ fxRate: string;
379
385
  referenceNumber: string;
380
386
  };
387
+ fx: {
388
+ title: string;
389
+ /** Help text. Placeholders: `{invoiceCurrency} {paymentCurrency}`. */
390
+ help: string;
391
+ /** Inline hint. Placeholders: `{invoiceCurrency} {paymentCurrency}`. */
392
+ rateHint: string;
393
+ loadingRate: string;
394
+ /** Auto-rate hint. Placeholders: `{invoiceCurrency} {paymentCurrency}`. */
395
+ autoRateHint: string;
396
+ };
381
397
  /** Per-row option label. Placeholders: `{number} {status} {balance} {currency}`. */
382
398
  invoiceOption: string;
383
399
  /** Caption under the picker. Placeholders: `{total} {paid} {due} {currency}`. */
@@ -390,6 +406,7 @@ export type FinanceUiMessages = {
390
406
  validation: {
391
407
  invoiceRequired: string;
392
408
  amountMinimum: string;
409
+ baseAmountRequired: string;
393
410
  recordFailed: string;
394
411
  };
395
412
  };
@@ -1 +1 @@
1
- {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/i18n/messages.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,aAAa,EACb,qBAAqB,EACtB,MAAM,yBAAyB,CAAA;AAEhC,eAAO,MAAM,eAAe,yEAOlB,CAAA;AAEV,eAAO,MAAM,sBAAsB,sEAMzB,CAAA;AAEV,eAAO,MAAM,cAAc,wHAUjB,CAAA;AAEV,eAAO,MAAM,uBAAuB,yDAA0D,CAAA;AAE9F,MAAM,MAAM,aAAa,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAA;AACnD,MAAM,MAAM,WAAW,GAAG,WAAW,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAA;AACnE,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAA;AAC3D,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAA;AAC3E,MAAM,MAAM,qBAAqB,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAA;AACnE,MAAM,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAA;AAEzD,MAAM,MAAM,mBAAmB,GAC3B,OAAO,GACP,aAAa,GACb,QAAQ,GACR,OAAO,GACP,UAAU,GACV,MAAM,GACN,QAAQ,GACR,eAAe,GACf,gBAAgB,GAChB,eAAe,GACf,eAAe,GACf,oBAAoB,GACpB,sBAAsB,GACtB,qBAAqB,GACrB,sBAAsB,GACtB,4BAA4B,GAC5B,2BAA2B,GAC3B,iCAAiC,GACjC,6BAA6B,GAC7B,mCAAmC,GACnC,mBAAmB,GACnB,sBAAsB,GACtB,mBAAmB,GACnB,gBAAgB,GAChB,gBAAgB,GAChB,eAAe,GACf,gBAAgB,GAChB,wBAAwB,GACxB,cAAc,GACd,oBAAoB,GACpB,0BAA0B,GAC1B,mBAAmB,GACnB,yBAAyB,GACzB,0BAA0B,GAC1B,gCAAgC,GAChC,iBAAiB,GACjB,uBAAuB,GACvB,iBAAiB,GACjB,WAAW,GACX,mBAAmB,GACnB,qBAAqB,GACrB,2BAA2B,GAC3B,wBAAwB,GACxB,8BAA8B,GAC9B,aAAa,GACb,QAAQ,GACR,aAAa,GACb,WAAW,GACX,wBAAwB,GACxB,uBAAuB,GACvB,YAAY,GACZ,aAAa,GACb,mBAAmB,GACnB,kBAAkB,GAClB,eAAe,GACf,aAAa,GACb,kBAAkB,GAClB,4BAA4B,GAC5B,yBAAyB,GACzB,6BAA6B,GAC7B,4BAA4B,GAC5B,0BAA0B,GAC1B,yBAAyB,GACzB,wBAAwB,GACxB,8BAA8B,GAC9B,wBAAwB,GACxB,8BAA8B,GAC9B,+BAA+B,GAC/B,qCAAqC,GACrC,qBAAqB,GACrB,iBAAiB,GACjB,qBAAqB,GACrB,2BAA2B,GAC3B,sBAAsB,GACtB,6BAA6B,GAC7B,mCAAmC,GACnC,0BAA0B,GAC1B,uBAAuB,GACvB,kCAAkC,GAClC,wBAAwB,GACxB,wBAAwB,GACxB,oBAAoB,GACpB,uBAAuB,GACvB,iBAAiB,GACjB,4BAA4B,GAC5B,kCAAkC,GAClC,qBAAqB,GACrB,sBAAsB,GACtB,wBAAwB,GACxB,kBAAkB,GAClB,gBAAgB,GAChB,eAAe,GACf,oBAAoB,GACpB,gBAAgB,GAChB,eAAe,GACf,qBAAqB,GACrB,kBAAkB,GAClB,qCAAqC,GACrC,iCAAiC,GACjC,kCAAkC,GAClC,oCAAoC,GACpC,qCAAqC,GACrC,sCAAsC,GACtC,yBAAyB,GACzB,sBAAsB,CAAA;AAE1B,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE;QACN,MAAM,EAAE,MAAM,CAAA;QACd,WAAW,EAAE,MAAM,CAAA;QACnB,mBAAmB,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,CAAA;QAClD,mBAAmB,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,CAAA;QAClD,2BAA2B,EAAE,MAAM,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAA;QAClE,2BAA2B,EAAE,MAAM,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAA;KACnE,CAAA;IACD,aAAa,EAAE;QACb,MAAM,EAAE;YACN,MAAM,EAAE,MAAM,CAAA;YACd,IAAI,EAAE,MAAM,CAAA;SACb,CAAA;QACD,MAAM,EAAE;YACN,aAAa,EAAE,MAAM,CAAA;YACrB,MAAM,EAAE,MAAM,CAAA;YACd,SAAS,EAAE,MAAM,CAAA;YACjB,QAAQ,EAAE,MAAM,CAAA;YAChB,aAAa,EAAE,MAAM,CAAA;YACrB,QAAQ,EAAE,MAAM,CAAA;YAChB,UAAU,EAAE,MAAM,CAAA;YAClB,SAAS,EAAE,MAAM,CAAA;YACjB,OAAO,EAAE,MAAM,CAAA;YACf,KAAK,EAAE,MAAM,CAAA;SACd,CAAA;QACD,YAAY,EAAE;YACZ,aAAa,EAAE,MAAM,CAAA;YACrB,SAAS,EAAE,MAAM,CAAA;YACjB,SAAS,EAAE,MAAM,CAAA;YACjB,OAAO,EAAE,MAAM,CAAA;YACf,KAAK,EAAE,MAAM,CAAA;SACd,CAAA;QACD,OAAO,EAAE;YACP,MAAM,EAAE,MAAM,CAAA;SACf,CAAA;QACD,UAAU,EAAE;YACV,qBAAqB,EAAE,MAAM,CAAA;YAC7B,iBAAiB,EAAE,MAAM,CAAA;YACzB,eAAe,EAAE,MAAM,CAAA;YACvB,iBAAiB,EAAE,MAAM,CAAA;YACzB,eAAe,EAAE,MAAM,CAAA;SACxB,CAAA;KACF,CAAA;IACD,YAAY,EAAE;QACZ,KAAK,EAAE,MAAM,CAAA;QACb,WAAW,EAAE,MAAM,CAAA;QACnB,iBAAiB,EAAE,MAAM,CAAA;QACzB,OAAO,EAAE;YACP,UAAU,EAAE,MAAM,CAAA;SACnB,CAAA;QACD,WAAW,EAAE;YACX,gBAAgB,EAAE,MAAM,CAAA;YACxB,cAAc,EAAE,MAAM,CAAA;YACtB,QAAQ,EAAE,MAAM,CAAA;YAChB,eAAe,EAAE,MAAM,CAAA;YACvB,aAAa,EAAE,MAAM,CAAA;YACrB,mBAAmB,EAAE,MAAM,CAAA;YAC3B,eAAe,EAAE,MAAM,CAAA;YACvB,aAAa,EAAE,MAAM,CAAA;YACrB,YAAY,EAAE,MAAM,CAAA;YACpB,kBAAkB,EAAE,MAAM,CAAA;YAC1B,YAAY,EAAE,MAAM,CAAA;YACpB,kBAAkB,EAAE,MAAM,CAAA;SAC3B,CAAA;QACD,OAAO,EAAE;YACP,MAAM,EAAE,MAAM,CAAA;YACd,WAAW,EAAE,MAAM,CAAA;YACnB,SAAS,EAAE,MAAM,CAAA;YACjB,aAAa,EAAE,MAAM,CAAA;YACrB,WAAW,EAAE,MAAM,CAAA;YACnB,YAAY,EAAE,MAAM,CAAA;YACpB,OAAO,EAAE,MAAM,CAAA;YACf,KAAK,EAAE,MAAM,CAAA;SACd,CAAA;QACD,OAAO,EAAE;YACP,aAAa,EAAE,MAAM,CAAA;YACrB,MAAM,EAAE,MAAM,CAAA;YACd,KAAK,EAAE,MAAM,CAAA;YACb,IAAI,EAAE,MAAM,CAAA;YACZ,UAAU,EAAE,MAAM,CAAA;YAClB,OAAO,EAAE,MAAM,CAAA;SAChB,CAAA;QACD,KAAK,EAAE,MAAM,CAAA;QACb,UAAU,EAAE,MAAM,CAAA;QAClB,UAAU,EAAE;YACV,OAAO,EAAE,MAAM,CAAA;YACf,IAAI,EAAE,MAAM,CAAA;YACZ,QAAQ,EAAE,MAAM,CAAA;YAChB,IAAI,EAAE,MAAM,CAAA;SACb,CAAA;KACF,CAAA;IACD,YAAY,EAAE;QACZ,KAAK,EAAE,MAAM,CAAA;QACb,WAAW,EAAE,MAAM,CAAA;QACnB,iBAAiB,EAAE,MAAM,CAAA;QACzB,OAAO,EAAE;YACP,aAAa,EAAE,MAAM,CAAA;SACtB,CAAA;QACD,UAAU,EAAE;YACV,QAAQ,EAAE,MAAM,CAAA;YAChB,QAAQ,EAAE,MAAM,CAAA;SACjB,CAAA;QACD,OAAO,EAAE;YACP,MAAM,EAAE,MAAM,CAAA;YACd,SAAS,EAAE,MAAM,CAAA;YACjB,OAAO,EAAE,MAAM,CAAA;YACf,WAAW,EAAE,MAAM,CAAA;YACnB,SAAS,EAAE,MAAM,CAAA;YACjB,WAAW,EAAE,MAAM,CAAA;YACnB,SAAS,EAAE,MAAM,CAAA;YACjB,aAAa,EAAE,MAAM,CAAA;YACrB,WAAW,EAAE,MAAM,CAAA;YACnB,aAAa,EAAE,MAAM,CAAA;YACrB,aAAa,EAAE,MAAM,CAAA;YACrB,WAAW,EAAE,MAAM,CAAA;YACnB,gBAAgB,EAAE,MAAM,CAAA;YACxB,OAAO,EAAE,MAAM,CAAA;YACf,KAAK,EAAE,MAAM,CAAA;SACd,CAAA;QACD,OAAO,EAAE;YACP,IAAI,EAAE,MAAM,CAAA;YACZ,SAAS,EAAE,MAAM,CAAA;YACjB,KAAK,EAAE,MAAM,CAAA;YACb,MAAM,EAAE,MAAM,CAAA;YACd,MAAM,EAAE,MAAM,CAAA;YACd,IAAI,EAAE,MAAM,CAAA;YACZ,MAAM,EAAE,MAAM,CAAA;SACf,CAAA;QACD,OAAO,EAAE,MAAM,CAAA;QACf,KAAK,EAAE,MAAM,CAAA;QACb,UAAU,EAAE,MAAM,CAAA;QAClB,UAAU,EAAE;YACV,OAAO,EAAE,MAAM,CAAA;YACf,IAAI,EAAE,MAAM,CAAA;YACZ,QAAQ,EAAE,MAAM,CAAA;YAChB,IAAI,EAAE,MAAM,CAAA;SACb,CAAA;KACF,CAAA;IACD,iBAAiB,EAAE;QACjB,OAAO,EAAE;YACP,IAAI,EAAE,MAAM,CAAA;YACZ,WAAW,EAAE,MAAM,CAAA;YACnB,WAAW,EAAE,MAAM,CAAA;YACnB,UAAU,EAAE,MAAM,CAAA;YAClB,gBAAgB,EAAE,MAAM,CAAA;YACxB,YAAY,EAAE,MAAM,CAAA;SACrB,CAAA;QACD,MAAM,EAAE;YACN,OAAO,EAAE,MAAM,CAAA;YACf,KAAK,EAAE,MAAM,CAAA;YACb,QAAQ,EAAE,MAAM,CAAA;SACjB,CAAA;QACD,MAAM,EAAE;YACN,MAAM,EAAE,MAAM,CAAA;YACd,UAAU,EAAE,MAAM,CAAA;YAClB,MAAM,EAAE,MAAM,CAAA;YACd,MAAM,EAAE,MAAM,CAAA;YACd,MAAM,EAAE,MAAM,CAAA;YACd,IAAI,EAAE,MAAM,CAAA;YACZ,SAAS,EAAE,MAAM,CAAA;YACjB,KAAK,EAAE,MAAM,CAAA;YACb,IAAI,EAAE,MAAM,CAAA;YACZ,MAAM,EAAE,MAAM,CAAA;YACd,MAAM,EAAE,MAAM,CAAA;YACd,YAAY,EAAE,MAAM,CAAA;YACpB,OAAO,EAAE,MAAM,CAAA;YACf,OAAO,EAAE,MAAM,CAAA;YACf,SAAS,EAAE,MAAM,CAAA;YACjB,SAAS,EAAE,MAAM,CAAA;SAClB,CAAA;QACD,MAAM,EAAE;YACN,OAAO,EAAE,MAAM,CAAA;YACf,UAAU,EAAE,MAAM,CAAA;YAClB,QAAQ,EAAE,MAAM,CAAA;YAChB,OAAO,EAAE,MAAM,CAAA;SAChB,CAAA;KACF,CAAA;IACD,iBAAiB,EAAE;QACjB,KAAK,EAAE,MAAM,CAAA;QACb,iBAAiB,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,CAAA;QAC9C,OAAO,EAAE;YACP,IAAI,EAAE,MAAM,CAAA;YACZ,IAAI,EAAE,MAAM,CAAA;YACZ,MAAM,EAAE,MAAM,CAAA;YACd,WAAW,EAAE,MAAM,CAAA;YACnB,iBAAiB,EAAE,MAAM,CAAA;YACzB,eAAe,EAAE,MAAM,CAAA;YACvB,WAAW,EAAE,MAAM,CAAA;YACnB,UAAU,EAAE,MAAM,CAAA;YAClB,gBAAgB,EAAE,MAAM,CAAA;YACxB,WAAW,EAAE,MAAM,CAAA;YACnB,YAAY,EAAE,MAAM,CAAA;YACpB,mBAAmB,EAAE,MAAM,CAAA;YAC3B,mBAAmB,EAAE,MAAM,CAAA;YAC3B,yBAAyB,EAAE,MAAM,CAAA;YACjC,aAAa,EAAE,MAAM,CAAA;YACrB,aAAa,EAAE,MAAM,CAAA;YACrB,OAAO,EAAE,MAAM,CAAA;YACf,aAAa,EAAE,MAAM,CAAA;YACrB,cAAc,EAAE,MAAM,CAAA;YACtB,qBAAqB,EAAE,MAAM,CAAA;YAC7B,qBAAqB,EAAE,MAAM,CAAA;YAC7B,2BAA2B,EAAE,MAAM,CAAA;YACnC,qBAAqB,EAAE,MAAM,CAAA;SAC9B,CAAA;QACD,MAAM,EAAE;YACN,OAAO,EAAE,MAAM,CAAA;YACf,KAAK,EAAE,MAAM,CAAA;YACb,SAAS,EAAE,MAAM,CAAA;YACjB,QAAQ,EAAE,MAAM,CAAA;YAChB,WAAW,EAAE,MAAM,CAAA;YACnB,KAAK,EAAE,MAAM,CAAA;YACb,WAAW,EAAE,MAAM,CAAA;YACnB,YAAY,EAAE,MAAM,CAAA;SACrB,CAAA;QACD,MAAM,EAAE;YACN,QAAQ,EAAE,MAAM,CAAA;YAChB,QAAQ,EAAE,MAAM,CAAA;YAChB,GAAG,EAAE,MAAM,CAAA;YACX,KAAK,EAAE,MAAM,CAAA;YACb,IAAI,EAAE,MAAM,CAAA;YACZ,UAAU,EAAE,MAAM,CAAA;YAClB,MAAM,EAAE,MAAM,CAAA;YACd,SAAS,EAAE,MAAM,CAAA;YACjB,OAAO,EAAE,MAAM,CAAA;YACf,OAAO,EAAE,MAAM,CAAA;YACf,MAAM,EAAE,MAAM,CAAA;YACd,YAAY,EAAE,MAAM,CAAA;YACpB,KAAK,EAAE,MAAM,CAAA;YACb,SAAS,EAAE,MAAM,CAAA;YACjB,SAAS,EAAE,MAAM,CAAA;YACjB,IAAI,EAAE,MAAM,CAAA;YACZ,IAAI,EAAE,MAAM,CAAA;YACZ,QAAQ,EAAE,MAAM,CAAA;YAChB,QAAQ,EAAE,MAAM,CAAA;YAChB,UAAU,EAAE,MAAM,CAAA;YAClB,QAAQ,EAAE,MAAM,CAAA;SACjB,CAAA;QACD,OAAO,EAAE;YACP,WAAW,EAAE,MAAM,CAAA;YACnB,QAAQ,EAAE,MAAM,CAAA;YAChB,SAAS,EAAE,MAAM,CAAA;YACjB,KAAK,EAAE,MAAM,CAAA;YACb,OAAO,EAAE,MAAM,CAAA;YACf,IAAI,EAAE,MAAM,CAAA;YACZ,IAAI,EAAE,MAAM,CAAA;YACZ,QAAQ,EAAE,MAAM,CAAA;YAChB,IAAI,EAAE,MAAM,CAAA;SACb,CAAA;QACD,MAAM,EAAE;YACN,OAAO,EAAE,MAAM,CAAA;YACf,UAAU,EAAE,MAAM,CAAA;YAClB,QAAQ,EAAE,MAAM,CAAA;YAChB,OAAO,EAAE,MAAM,CAAA;YACf,WAAW,EAAE,MAAM,CAAA;YACnB,UAAU,EAAE,MAAM,CAAA;YAClB,aAAa,EAAE,MAAM,CAAA;YACrB,OAAO,EAAE,MAAM,CAAA;YACf,aAAa,EAAE,MAAM,CAAA;YACrB,cAAc,EAAE,MAAM,CAAA;YACtB,sBAAsB,EAAE,MAAM,CAAA;SAC/B,CAAA;QACD,YAAY,EAAE;YACZ,IAAI,EAAE,MAAM,CAAA;YACZ,cAAc,EAAE,MAAM,CAAA;YACtB,cAAc,EAAE,MAAM,CAAA;YACtB,kBAAkB,EAAE,MAAM,CAAA;YAC1B,kBAAkB,EAAE,MAAM,CAAA;YAC1B,oBAAoB,EAAE,MAAM,CAAA;YAC5B,kBAAkB,EAAE,MAAM,CAAA;SAC3B,CAAA;QACD,gBAAgB,EAAE;YAChB,WAAW,EAAE,MAAM,CAAA;YACnB,SAAS,EAAE,MAAM,CAAA;YACjB,YAAY,EAAE,MAAM,CAAA;YACpB,YAAY,EAAE,MAAM,CAAA;SACrB,CAAA;QACD,UAAU,EAAE;YACV,KAAK,EAAE,MAAM,CAAA;YACb,YAAY,EAAE,MAAM,CAAA;YACpB,eAAe,EAAE,MAAM,CAAA;SACxB,CAAA;QACD,sBAAsB,EAAE,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAA;KACzD,CAAA;IACD,aAAa,EAAE;QACb,IAAI,EAAE;YACJ,OAAO,EAAE;gBACP,KAAK,EAAE,MAAM,CAAA;gBACb,IAAI,EAAE,MAAM,CAAA;gBACZ,YAAY,EAAE,MAAM,CAAA;aACrB,CAAA;YACD,WAAW,EAAE;gBACX,KAAK,EAAE,MAAM,CAAA;gBACb,OAAO,EAAE,MAAM,CAAC,MAAM,GAAG,SAAS,GAAG,aAAa,EAAE,MAAM,CAAC,CAAA;aAC5D,CAAA;YACD,YAAY,EAAE;gBACZ,YAAY,EAAE,MAAM,CAAA;gBACpB,UAAU,EAAE,MAAM,CAAA;aACnB,CAAA;YACD,YAAY,EAAE,MAAM,CAAC,MAAM,GAAG,SAAS,GAAG,aAAa,EAAE,MAAM,CAAC,CAAA;YAChE,IAAI,EAAE;gBACJ,YAAY,EAAE,MAAM,CAAA;gBACpB,WAAW,EAAE,MAAM,CAAA;gBACnB,gBAAgB,EAAE,MAAM,CAAA;gBACxB,eAAe,EAAE,MAAM,CAAA;gBACvB,cAAc,EAAE,MAAM,CAAA;gBACtB,aAAa,EAAE,MAAM,CAAA;gBACrB,YAAY,EAAE,MAAM,CAAA;gBACpB,MAAM,EAAE,MAAM,CAAA;aACf,CAAA;SACF,CAAA;QACD,OAAO,EAAE;YACP,UAAU,EAAE,MAAM,CAAA;YAClB,MAAM,EAAE,MAAM,CAAA;YACd,aAAa,EAAE,MAAM,CAAC,SAAS,GAAG,SAAS,GAAG,MAAM,EAAE,MAAM,CAAC,CAAA;YAC7D,GAAG,EAAE,MAAM,CAAA;SACZ,CAAA;KACF,CAAA;IACD,SAAS,EAAE,MAAM,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAA;IAC9C,qBAAqB,EAAE;QACrB,KAAK,EAAE,MAAM,CAAA;QACb,MAAM,EAAE;YACN,SAAS,EAAE,MAAM,CAAA;YACjB,UAAU,EAAE,MAAM,CAAA;YAClB,WAAW,EAAE,MAAM,CAAA;YACnB,QAAQ,EAAE,MAAM,CAAA;YAChB,WAAW,EAAE,MAAM,CAAA;YACnB,aAAa,EAAE,MAAM,CAAA;YACrB,MAAM,EAAE,MAAM,CAAA;YACd,eAAe,EAAE,MAAM,CAAA;YACvB,KAAK,EAAE,MAAM,CAAA;SACd,CAAA;QACD,YAAY,EAAE;YACZ,SAAS,EAAE,MAAM,CAAA;YACjB,UAAU,EAAE,MAAM,CAAA;YAClB,WAAW,EAAE,MAAM,CAAA;YACnB,eAAe,EAAE,MAAM,CAAA;YACvB,KAAK,EAAE,MAAM,CAAA;SACd,CAAA;QACD,OAAO,EAAE;YACP,MAAM,EAAE,MAAM,CAAA;SACf,CAAA;QACD,UAAU,EAAE;YACV,iBAAiB,EAAE,MAAM,CAAA;YACzB,aAAa,EAAE,MAAM,CAAA;YACrB,mBAAmB,EAAE,MAAM,CAAA;SAC5B,CAAA;KACF,CAAA;IACD,0BAA0B,EAAE;QAC1B,KAAK,EAAE,MAAM,CAAA;QACb,kFAAkF;QAClF,WAAW,EAAE,MAAM,CAAA;QACnB,yDAAyD;QACzD,iBAAiB,EAAE,MAAM,CAAA;QACzB,MAAM,EAAE;YACN,OAAO,EAAE,MAAM,CAAA;YACf,WAAW,EAAE,MAAM,CAAA;YACnB,WAAW,EAAE,MAAM,CAAA;YACnB,aAAa,EAAE,MAAM,CAAA;YACrB,MAAM,EAAE,MAAM,CAAA;YACd,eAAe,EAAE,MAAM,CAAA;YACvB,KAAK,EAAE,MAAM,CAAA;SACd,CAAA;QACD,YAAY,EAAE;YACZ,OAAO,EAAE,MAAM,CAAA;YACf,eAAe,EAAE,MAAM,CAAA;SACxB,CAAA;QACD,oFAAoF;QACpF,aAAa,EAAE,MAAM,CAAA;QACrB,iFAAiF;QACjF,WAAW,EAAE,MAAM,CAAA;QACnB,eAAe,EAAE,MAAM,CAAA;QACvB,UAAU,EAAE,MAAM,CAAA;QAClB,OAAO,EAAE;YACP,MAAM,EAAE,MAAM,CAAA;SACf,CAAA;QACD,UAAU,EAAE;YACV,eAAe,EAAE,MAAM,CAAA;YACvB,aAAa,EAAE,MAAM,CAAA;YACrB,YAAY,EAAE,MAAM,CAAA;SACrB,CAAA;KACF,CAAA;CACF,CAAA"}
1
+ {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/i18n/messages.ts"],"names":[],"mappings":"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"}
@@ -512,6 +512,9 @@ export declare const financeUiMessageDefinitions: {
512
512
  fields: {
513
513
  invoice: string;
514
514
  amountCents: string;
515
+ currency: string;
516
+ baseAmountCents: string;
517
+ fxRate: string;
515
518
  paymentDate: string;
516
519
  paymentMethod: string;
517
520
  status: string;
@@ -520,8 +523,17 @@ export declare const financeUiMessageDefinitions: {
520
523
  };
521
524
  placeholders: {
522
525
  invoice: string;
526
+ currency: string;
527
+ fxRate: string;
523
528
  referenceNumber: string;
524
529
  };
530
+ fx: {
531
+ title: string;
532
+ help: string;
533
+ rateHint: string;
534
+ loadingRate: string;
535
+ autoRateHint: string;
536
+ };
525
537
  invoiceOption: string;
526
538
  invoiceMeta: string;
527
539
  loadingInvoices: string;
@@ -532,6 +544,7 @@ export declare const financeUiMessageDefinitions: {
532
544
  validation: {
533
545
  invoiceRequired: string;
534
546
  amountMinimum: string;
547
+ baseAmountRequired: string;
535
548
  recordFailed: string;
536
549
  };
537
550
  };
@@ -1046,6 +1059,9 @@ export declare const financeUiMessageDefinitions: {
1046
1059
  fields: {
1047
1060
  invoice: string;
1048
1061
  amountCents: string;
1062
+ currency: string;
1063
+ baseAmountCents: string;
1064
+ fxRate: string;
1049
1065
  paymentDate: string;
1050
1066
  paymentMethod: string;
1051
1067
  status: string;
@@ -1054,8 +1070,17 @@ export declare const financeUiMessageDefinitions: {
1054
1070
  };
1055
1071
  placeholders: {
1056
1072
  invoice: string;
1073
+ currency: string;
1074
+ fxRate: string;
1057
1075
  referenceNumber: string;
1058
1076
  };
1077
+ fx: {
1078
+ title: string;
1079
+ help: string;
1080
+ rateHint: string;
1081
+ loadingRate: string;
1082
+ autoRateHint: string;
1083
+ };
1059
1084
  invoiceOption: string;
1060
1085
  invoiceMeta: string;
1061
1086
  loadingInvoices: string;
@@ -1066,6 +1091,7 @@ export declare const financeUiMessageDefinitions: {
1066
1091
  validation: {
1067
1092
  invoiceRequired: string;
1068
1093
  amountMinimum: string;
1094
+ baseAmountRequired: string;
1069
1095
  recordFailed: string;
1070
1096
  };
1071
1097
  };
@@ -1 +1 @@
1
- {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/i18n/provider.tsx"],"names":[],"mappings":"AAEA,OAAO,EAIL,KAAK,sBAAsB,EAC3B,KAAK,gBAAgB,EAEtB,MAAM,gBAAgB,CAAA;AACvB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAGtC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAKtD,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAGe,CAAA;AAEvD,MAAM,MAAM,yBAAyB,GAAG,sBAAsB,CAAC,iBAAiB,CAAC,CAAA;AASjF,wBAAgB,wBAAwB,CAAC,EACvC,MAAM,EACN,SAAS,GACV,EAAE;IACD,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;IACjC,SAAS,CAAC,EAAE,yBAAyB,GAAG,IAAI,CAAA;CAC7C,qBAOA;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,MAAM,EACN,SAAS,GACV,EAAE;IACD,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;IAClC,SAAS,CAAC,EAAE,yBAAyB,GAAG,IAAI,CAAA;CAC7C,GAAG,gBAAgB,CAAC,iBAAiB,CAAC,CAStC;AAED,wBAAgB,yBAAyB,CAAC,EACxC,QAAQ,EACR,MAAM,EACN,SAAS,GACV,EAAE;IACD,QAAQ,EAAE,SAAS,CAAA;IACnB,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;IACjC,SAAS,CAAC,EAAE,yBAAyB,GAAG,IAAI,CAAA;CAC7C,2CAWA;AAED,eAAO,MAAM,gBAAgB,2CAA2B,CAAA;AACxD,eAAO,MAAM,oBAAoB,yBAA+B,CAAA;AAEhE,wBAAgB,yBAAyB,wCAExC;AAED,wBAAgB,6BAA6B,sBAE5C"}
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/i18n/provider.tsx"],"names":[],"mappings":"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"}
package/dist/i18n/ro.d.ts CHANGED
@@ -508,6 +508,9 @@ export declare const financeUiRo: {
508
508
  fields: {
509
509
  invoice: string;
510
510
  amountCents: string;
511
+ currency: string;
512
+ baseAmountCents: string;
513
+ fxRate: string;
511
514
  paymentDate: string;
512
515
  paymentMethod: string;
513
516
  status: string;
@@ -516,8 +519,17 @@ export declare const financeUiRo: {
516
519
  };
517
520
  placeholders: {
518
521
  invoice: string;
522
+ currency: string;
523
+ fxRate: string;
519
524
  referenceNumber: string;
520
525
  };
526
+ fx: {
527
+ title: string;
528
+ help: string;
529
+ rateHint: string;
530
+ loadingRate: string;
531
+ autoRateHint: string;
532
+ };
521
533
  invoiceOption: string;
522
534
  invoiceMeta: string;
523
535
  loadingInvoices: string;
@@ -528,6 +540,7 @@ export declare const financeUiRo: {
528
540
  validation: {
529
541
  invoiceRequired: string;
530
542
  amountMinimum: string;
543
+ baseAmountRequired: string;
531
544
  recordFailed: string;
532
545
  };
533
546
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ro.d.ts","sourceRoot":"","sources":["../../src/i18n/ro.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwiBK,CAAA"}
1
+ {"version":3,"file":"ro.d.ts","sourceRoot":"","sources":["../../src/i18n/ro.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAujBK,CAAA"}
package/dist/i18n/ro.js CHANGED
@@ -508,6 +508,9 @@ export const financeUiRo = {
508
508
  fields: {
509
509
  invoice: "Factura",
510
510
  amountCents: "Suma",
511
+ currency: "Moneda platii",
512
+ baseAmountCents: "Suma in moneda facturii",
513
+ fxRate: "Curs valutar",
511
514
  paymentDate: "Data platii",
512
515
  paymentMethod: "Metoda",
513
516
  status: "Status",
@@ -516,8 +519,17 @@ export const financeUiRo = {
516
519
  },
517
520
  placeholders: {
518
521
  invoice: "Selecteaza factura",
522
+ currency: "Selecteaza moneda...",
523
+ fxRate: "1 {invoiceCurrency} = ? {paymentCurrency}",
519
524
  referenceNumber: "Referinta bancara, numar de chitanta etc.",
520
525
  },
526
+ fx: {
527
+ title: "Decontare in alta moneda",
528
+ help: "Inregistreaza suma incasata in {paymentCurrency} si valoarea aplicata pe factura in {invoiceCurrency}.",
529
+ rateHint: "Foloseste cursul ca {paymentCurrency} pentru 1 {invoiceCurrency}; completarea lui actualizeaza suma in moneda facturii.",
530
+ loadingRate: "Se incarca cursul valutar...",
531
+ autoRateHint: "Foloseste cursul curent {paymentCurrency} pentru 1 {invoiceCurrency}; il poti modifica daca este nevoie.",
532
+ },
521
533
  invoiceOption: "{number} — {status} — {balance} {currency} de incasat",
522
534
  invoiceMeta: "Total {total} {currency} • platit {paid} {currency} • de incasat {due} {currency}",
523
535
  loadingInvoices: "Se incarca facturile…",
@@ -528,6 +540,7 @@ export const financeUiRo = {
528
540
  validation: {
529
541
  invoiceRequired: "Selecteaza o factura pentru aceasta plata.",
530
542
  amountMinimum: "Suma trebuie sa fie mai mare decat zero.",
543
+ baseAmountRequired: "Introdu suma care se aplica in moneda facturii.",
531
544
  recordFailed: "Inregistrarea platii a esuat.",
532
545
  },
533
546
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@voyantjs/finance-ui",
3
- "version": "0.73.1",
3
+ "version": "0.74.1",
4
4
  "license": "Apache-2.0",
5
5
  "repository": {
6
6
  "type": "git",
@@ -45,14 +45,14 @@
45
45
  "react-dom": "^19.0.0",
46
46
  "react-hook-form": "^7.60.0",
47
47
  "zod": "^4.3.6",
48
- "@voyantjs/bookings-ui": "0.73.1",
49
- "@voyantjs/finance": "0.73.1",
50
- "@voyantjs/finance-react": "0.73.1",
51
- "@voyantjs/suppliers-ui": "0.73.1",
52
- "@voyantjs/ui": "0.73.1"
48
+ "@voyantjs/bookings-ui": "0.74.1",
49
+ "@voyantjs/finance": "0.74.1",
50
+ "@voyantjs/finance-react": "0.74.1",
51
+ "@voyantjs/suppliers-ui": "0.74.1",
52
+ "@voyantjs/ui": "0.74.1"
53
53
  },
54
54
  "dependencies": {
55
- "@voyantjs/i18n": "0.73.1"
55
+ "@voyantjs/i18n": "0.74.1"
56
56
  },
57
57
  "devDependencies": {
58
58
  "@tanstack/react-query": "^5.100.11",
@@ -65,12 +65,12 @@
65
65
  "typescript": "^6.0.2",
66
66
  "vitest": "^4.1.2",
67
67
  "zod": "^4.3.6",
68
- "@voyantjs/bookings-ui": "0.73.1",
69
- "@voyantjs/finance": "0.73.1",
70
- "@voyantjs/finance-react": "0.73.1",
71
- "@voyantjs/i18n": "0.73.1",
72
- "@voyantjs/suppliers-ui": "0.73.1",
73
- "@voyantjs/ui": "0.73.1",
68
+ "@voyantjs/bookings-ui": "0.74.1",
69
+ "@voyantjs/finance": "0.74.1",
70
+ "@voyantjs/finance-react": "0.74.1",
71
+ "@voyantjs/i18n": "0.74.1",
72
+ "@voyantjs/suppliers-ui": "0.74.1",
73
+ "@voyantjs/ui": "0.74.1",
74
74
  "@voyantjs/voyant-typescript-config": "0.1.0"
75
75
  },
76
76
  "files": [