@voyantjs/checkout-ui 0.81.14 → 0.81.16

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":"collect-payment-dialog.d.ts","sourceRoot":"","sources":["../../src/components/collect-payment-dialog.tsx"],"names":[],"mappings":"AAkCA;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,OAAO,CAAA;IACb,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACrC,SAAS,EAAE,MAAM,CAAA;IACjB,eAAe,EAAE,MAAM,CAAA;IACvB,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAClC,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACpC;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,oEAAoE;IACpE,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAID,wBAAgB,oBAAoB,CAAC,EACnC,IAAI,EACJ,YAAY,EACZ,SAAS,EACT,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,oBAAoB,EACpB,SAAS,EACT,SAAS,EACT,YAAY,GACb,EAAE,yBAAyB,2CAiK3B"}
1
+ {"version":3,"file":"collect-payment-dialog.d.ts","sourceRoot":"","sources":["../../src/components/collect-payment-dialog.tsx"],"names":[],"mappings":"AAkCA;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,OAAO,CAAA;IACb,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACrC,SAAS,EAAE,MAAM,CAAA;IACjB,eAAe,EAAE,MAAM,CAAA;IACvB,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAClC,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACpC;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,oEAAoE;IACpE,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAID,wBAAgB,oBAAoB,CAAC,EACnC,IAAI,EACJ,YAAY,EACZ,SAAS,EACT,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,oBAAoB,EACpB,SAAS,EACT,SAAS,EACT,YAAY,GACb,EAAE,yBAAyB,2CA4K3B"}
@@ -5,11 +5,12 @@ import { buildPaymentLinkUrl } from "@voyantjs/finance/payment-link";
5
5
  import { useBookingPaymentSchedules, } from "@voyantjs/finance-react";
6
6
  import { formatMessage } from "@voyantjs/i18n";
7
7
  import { Button } from "@voyantjs/ui/components/button";
8
- import { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, } from "@voyantjs/ui/components/dialog";
9
- import { Input } from "@voyantjs/ui/components/input";
8
+ import { CurrencyCombobox } from "@voyantjs/ui/components/currency-combobox";
9
+ import { CurrencyInput } from "@voyantjs/ui/components/currency-input";
10
+ import { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle, } from "@voyantjs/ui/components/dialog";
10
11
  import { Label } from "@voyantjs/ui/components/label";
11
12
  import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from "@voyantjs/ui/components/select";
12
- import { CheckCircle2, Copy, ExternalLink, Loader2 } from "lucide-react";
13
+ import { CheckCircle2, Copy, ExternalLink, Loader2, X } from "lucide-react";
13
14
  import { useEffect, useMemo, useRef, useState } from "react";
14
15
  import { toast } from "sonner";
15
16
  import { useCheckoutUiMessagesOrDefault } from "../i18n/provider.js";
@@ -18,6 +19,7 @@ export function CollectPaymentDialog({ open, onOpenChange, bookingId, defaultCur
18
19
  const messages = useCheckoutUiMessagesOrDefault().collectPaymentDialog;
19
20
  const [amountCents, setAmountCents] = useState(defaultAmountCents ?? 0);
20
21
  const [scheduleId, setScheduleId] = useState(FULL_AMOUNT_VALUE);
22
+ const [currency, setCurrency] = useState(defaultCurrency);
21
23
  const [result, setResult] = useState(null);
22
24
  const schedulesQuery = useBookingPaymentSchedules(bookingId, { enabled: open });
23
25
  // Only the open schedules are useful pre-fills. Paid / waived /
@@ -32,7 +34,6 @@ export function CollectPaymentDialog({ open, onOpenChange, bookingId, defaultCur
32
34
  returnUrl,
33
35
  cancelUrl,
34
36
  });
35
- const amountInputValue = useMemo(() => (amountCents > 0 ? (amountCents / 100).toFixed(2) : ""), [amountCents]);
36
37
  // Re-seed the amount from the latest props only on the closed→open
37
38
  // transition. Watching state mid-flight would clobber manual edits.
38
39
  const wasOpenRef = useRef(false);
@@ -40,12 +41,14 @@ export function CollectPaymentDialog({ open, onOpenChange, bookingId, defaultCur
40
41
  if (open && !wasOpenRef.current) {
41
42
  setAmountCents(defaultAmountCents ?? 0);
42
43
  setScheduleId(FULL_AMOUNT_VALUE);
44
+ setCurrency(defaultCurrency);
43
45
  }
44
46
  wasOpenRef.current = open;
45
- }, [open, defaultAmountCents]);
47
+ }, [open, defaultAmountCents, defaultCurrency]);
46
48
  function reset() {
47
49
  setAmountCents(defaultAmountCents ?? 0);
48
50
  setScheduleId(FULL_AMOUNT_VALUE);
51
+ setCurrency(defaultCurrency);
49
52
  setResult(null);
50
53
  collect.reset();
51
54
  }
@@ -67,26 +70,21 @@ export function CollectPaymentDialog({ open, onOpenChange, bookingId, defaultCur
67
70
  onOpenChange(next);
68
71
  if (!next)
69
72
  reset();
70
- }, children: _jsxs(DialogContent, { className: "max-w-xl", children: [_jsxs(DialogHeader, { children: [_jsx(DialogTitle, { children: messages.title }), _jsx(DialogDescription, { children: messages.description })] }), result ? (_jsx(ResultPanel, { result: result })) : (_jsxs("div", { className: "flex flex-col gap-5", children: [schedules.length > 0 ? (_jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { htmlFor: "collect-schedule", children: messages.scheduleLabel }), _jsxs(Select, { value: scheduleId, onValueChange: (v) => {
71
- const next = v ?? FULL_AMOUNT_VALUE;
72
- setScheduleId(next);
73
- if (next === FULL_AMOUNT_VALUE) {
74
- setAmountCents(defaultAmountCents ?? 0);
75
- }
76
- else {
77
- const schedule = schedules.find((s) => s.id === next);
78
- if (schedule)
79
- setAmountCents(schedule.amountCents);
80
- }
81
- }, children: [_jsx(SelectTrigger, { id: "collect-schedule", children: _jsx(SelectValue, {}) }), _jsxs(SelectContent, { children: [_jsx(SelectItem, { value: FULL_AMOUNT_VALUE, children: formatMessage(messages.scheduleFullAmount, {
82
- amount: formatAmount(defaultAmountCents ?? 0, defaultCurrency),
83
- }) }), schedules.map((schedule) => (_jsx(SelectItem, { value: schedule.id, children: formatScheduleOption(schedule, messages.scheduleTypeLabels) }, schedule.id)))] })] }), _jsx("p", { className: "text-muted-foreground text-xs", children: messages.scheduleHelp })] })) : null, _jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { htmlFor: "collect-amount", children: formatMessage(messages.amountLabel, { currency: defaultCurrency }) }), _jsx(Input, { id: "collect-amount", type: "number", inputMode: "decimal", step: "0.01", min: "0", value: amountInputValue, onChange: (e) => {
84
- // Manual edit detaches the amount from the picked
85
- // schedule so the user can charge a custom amount.
86
- setScheduleId(FULL_AMOUNT_VALUE);
87
- const raw = Number.parseFloat(e.target.value);
88
- setAmountCents(Number.isFinite(raw) ? Math.round(raw * 100) : 0);
89
- } }), _jsx("p", { className: "text-muted-foreground text-xs", children: messages.amountHelp })] })] })), _jsx(DialogFooter, { children: result ? (_jsx(Button, { onClick: () => onOpenChange(false), children: messages.done })) : (_jsxs(_Fragment, { children: [_jsx(Button, { variant: "outline", onClick: () => onOpenChange(false), disabled: collect.isPending, children: messages.cancel }), _jsxs(Button, { onClick: submit, disabled: collect.isPending || amountCents <= 0, children: [collect.isPending && _jsx(Loader2, { className: "mr-2 h-4 w-4 animate-spin" }), messages.generateLink] })] })) })] }) }));
73
+ }, children: _jsxs(DialogContent, { className: "max-w-lg gap-0 p-0", children: [_jsxs(DialogHeader, { className: "border-b px-6 py-4", children: [_jsx(DialogTitle, { children: messages.title }), _jsx(DialogDescription, { children: messages.description })] }), result ? (_jsx("div", { className: "px-6 py-5", children: _jsx(ResultPanel, { result: result }) })) : (_jsxs("div", { className: "flex flex-col gap-4 px-6 py-5", children: [schedules.length > 0 ? (_jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { htmlFor: "collect-schedule", children: messages.scheduleLabel }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsxs(Select, { value: scheduleId, onValueChange: (v) => {
74
+ const next = v ?? FULL_AMOUNT_VALUE;
75
+ setScheduleId(next);
76
+ if (next !== FULL_AMOUNT_VALUE) {
77
+ const schedule = schedules.find((s) => s.id === next);
78
+ if (schedule) {
79
+ setAmountCents(schedule.amountCents);
80
+ setCurrency(schedule.currency);
81
+ }
82
+ }
83
+ }, children: [_jsx(SelectTrigger, { id: "collect-schedule", className: "w-full", children: _jsx(SelectValue, { placeholder: messages.scheduleCustomPlaceholder }) }), _jsx(SelectContent, { children: schedules.map((schedule) => (_jsx(SelectItem, { value: schedule.id, children: formatScheduleOption(schedule, messages.scheduleTypeLabels) }, schedule.id))) })] }), scheduleId !== FULL_AMOUNT_VALUE ? (_jsx(Button, { variant: "ghost", size: "icon-sm", "aria-label": messages.scheduleClear, onClick: () => {
84
+ setScheduleId(FULL_AMOUNT_VALUE);
85
+ setAmountCents(defaultAmountCents ?? 0);
86
+ setCurrency(defaultCurrency);
87
+ }, children: _jsx(X, { className: "h-4 w-4" }) })) : null] })] })) : null, scheduleId === FULL_AMOUNT_VALUE ? (_jsxs("div", { className: "grid grid-cols-[1fr_minmax(8rem,12rem)] gap-3", children: [_jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { htmlFor: "collect-amount", children: messages.amountLabelShort }), _jsx(CurrencyInput, { id: "collect-amount", value: amountCents, onChange: (next) => setAmountCents(next ?? 0), currency: currency })] }), _jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { htmlFor: "collect-currency", children: messages.currencyLabel }), _jsx(CurrencyCombobox, { value: currency, onChange: (next) => setCurrency(next ?? defaultCurrency) })] })] })) : null] })), _jsx("div", { className: "flex items-center justify-end gap-2 px-6 pb-6", children: result ? (_jsx(Button, { onClick: () => onOpenChange(false), children: messages.done })) : (_jsxs(_Fragment, { children: [_jsx(Button, { variant: "outline", onClick: () => onOpenChange(false), disabled: collect.isPending, children: messages.cancel }), _jsxs(Button, { onClick: submit, disabled: collect.isPending || amountCents <= 0, children: [collect.isPending && _jsx(Loader2, { className: "mr-2 h-4 w-4 animate-spin" }), messages.generateLink] })] })) })] }) }));
90
88
  }
91
89
  function formatAmount(cents, currency) {
92
90
  if (cents <= 0)
@@ -1 +1 @@
1
- {"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../src/i18n/en.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAEvD,eAAO,MAAM,YAAY,EAAE,kBAgI1B,CAAA"}
1
+ {"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../src/i18n/en.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAEvD,eAAO,MAAM,YAAY,EAAE,kBAiI1B,CAAA"}
package/dist/i18n/en.js CHANGED
@@ -91,9 +91,11 @@ export const checkoutUiEn = {
91
91
  },
92
92
  collectPaymentDialog: {
93
93
  title: "Generate payment link",
94
- description: "Produce a payment link the customer can open to pay by card or bank transfer. Share it however you prefer (email, chat, etc.).",
94
+ description: "Share with the customer to collect payment.",
95
95
  scheduleLabel: "Charge",
96
- scheduleHelp: "Pick a scheduled installment or the full amount. Edit the amount below for a custom charge.",
96
+ scheduleHelp: "",
97
+ scheduleCustomPlaceholder: "Custom amount",
98
+ scheduleClear: "Clear schedule",
97
99
  scheduleFullAmount: "Full amount ({amount})",
98
100
  scheduleTypeLabels: {
99
101
  deposit: "Deposit",
@@ -103,7 +105,9 @@ export const checkoutUiEn = {
103
105
  other: "Other",
104
106
  },
105
107
  amountLabel: "Amount ({currency})",
106
- amountHelp: "Defaults to the booking's sell amount. Override for a deposit or partial collection.",
108
+ amountLabelShort: "Amount",
109
+ currencyLabel: "Currency",
110
+ amountHelp: "",
107
111
  cancel: "Cancel",
108
112
  done: "Done",
109
113
  generateLink: "Generate link",
@@ -89,11 +89,17 @@ export type CheckoutUiMessages = {
89
89
  scheduleLabel: string;
90
90
  /** Caption under the picker. */
91
91
  scheduleHelp: string;
92
+ /** Placeholder when no schedule is selected — operator types a custom amount. */
93
+ scheduleCustomPlaceholder: string;
94
+ /** Aria-label / tooltip for the X button that clears the picked schedule. */
95
+ scheduleClear: string;
92
96
  /** "Full amount ({amount})" option label. */
93
97
  scheduleFullAmount: string;
94
98
  /** Localized labels for each `payment_schedule_type` enum value. */
95
99
  scheduleTypeLabels: Record<"deposit" | "installment" | "balance" | "hold" | "other", string>;
96
100
  amountLabel: string;
101
+ amountLabelShort: string;
102
+ currencyLabel: string;
97
103
  amountHelp: string;
98
104
  cancel: string;
99
105
  done: string;
@@ -1 +1 @@
1
- {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/i18n/messages.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/i18n/messages.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ro.d.ts","sourceRoot":"","sources":["../../src/i18n/ro.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAEvD,eAAO,MAAM,YAAY,EAAE,kBAiI1B,CAAA"}
1
+ {"version":3,"file":"ro.d.ts","sourceRoot":"","sources":["../../src/i18n/ro.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAEvD,eAAO,MAAM,YAAY,EAAE,kBAkI1B,CAAA"}
package/dist/i18n/ro.js CHANGED
@@ -91,9 +91,11 @@ export const checkoutUiRo = {
91
91
  },
92
92
  collectPaymentDialog: {
93
93
  title: "Genereaza link de plata",
94
- description: "Genereaza un link de plata pe care clientul il poate deschide pentru plata cu cardul sau transfer bancar. Distribuie-l cum preferi (email, chat etc.).",
94
+ description: "Trimite clientului pentru a incasa plata.",
95
95
  scheduleLabel: "Incaseaza",
96
- scheduleHelp: "Alege o transa din planul de plata sau suma totala. Editeaza suma de mai jos pentru o incasare personalizata.",
96
+ scheduleHelp: "",
97
+ scheduleCustomPlaceholder: "Suma personalizata",
98
+ scheduleClear: "Anuleaza selectia",
97
99
  scheduleFullAmount: "Suma totala ({amount})",
98
100
  scheduleTypeLabels: {
99
101
  deposit: "Avans",
@@ -103,7 +105,9 @@ export const checkoutUiRo = {
103
105
  other: "Alta",
104
106
  },
105
107
  amountLabel: "Suma ({currency})",
106
- amountHelp: "Implicit este suma de vanzare a rezervarii. Modifica pentru avans sau plata partiala.",
108
+ amountLabelShort: "Suma",
109
+ currencyLabel: "Moneda",
110
+ amountHelp: "",
107
111
  cancel: "Anuleaza",
108
112
  done: "Gata",
109
113
  generateLink: "Genereaza link",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@voyantjs/checkout-ui",
3
- "version": "0.81.14",
3
+ "version": "0.81.16",
4
4
  "license": "Apache-2.0",
5
5
  "repository": {
6
6
  "type": "git",
@@ -44,12 +44,12 @@
44
44
  "react": "^19.0.0",
45
45
  "react-dom": "^19.0.0",
46
46
  "sonner": "^2.0.0",
47
- "@voyantjs/checkout": "0.81.14",
48
- "@voyantjs/checkout-react": "0.81.14",
49
- "@voyantjs/finance": "0.81.14",
50
- "@voyantjs/finance-react": "0.81.14",
51
- "@voyantjs/i18n": "0.81.14",
52
- "@voyantjs/ui": "0.81.14"
47
+ "@voyantjs/checkout": "0.81.16",
48
+ "@voyantjs/checkout-react": "0.81.16",
49
+ "@voyantjs/finance": "0.81.16",
50
+ "@voyantjs/finance-react": "0.81.16",
51
+ "@voyantjs/i18n": "0.81.16",
52
+ "@voyantjs/ui": "0.81.16"
53
53
  },
54
54
  "devDependencies": {
55
55
  "@tanstack/react-query": "^5.100.11",
@@ -61,12 +61,12 @@
61
61
  "sonner": "^2.0.7",
62
62
  "typescript": "^6.0.2",
63
63
  "vitest": "^4.1.2",
64
- "@voyantjs/checkout": "0.81.14",
65
- "@voyantjs/checkout-react": "0.81.14",
66
- "@voyantjs/finance": "0.81.14",
67
- "@voyantjs/finance-react": "0.81.14",
68
- "@voyantjs/i18n": "0.81.14",
69
- "@voyantjs/ui": "0.81.14",
64
+ "@voyantjs/checkout": "0.81.16",
65
+ "@voyantjs/checkout-react": "0.81.16",
66
+ "@voyantjs/finance": "0.81.16",
67
+ "@voyantjs/finance-react": "0.81.16",
68
+ "@voyantjs/i18n": "0.81.16",
69
+ "@voyantjs/ui": "0.81.16",
70
70
  "@voyantjs/voyant-typescript-config": "0.1.0"
71
71
  },
72
72
  "files": [