@moneydevkit/core 0.0.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.
Files changed (131) hide show
  1. package/dist/actions.d.ts +2510 -0
  2. package/dist/actions.js +77 -0
  3. package/dist/actions.js.map +1 -0
  4. package/dist/client-actions.d.ts +1665 -0
  5. package/dist/client-actions.js +28 -0
  6. package/dist/client-actions.js.map +1 -0
  7. package/dist/client.d.ts +4 -0
  8. package/dist/client.js +5 -0
  9. package/dist/client.js.map +1 -0
  10. package/dist/components/Checkout.d.ts +6 -0
  11. package/dist/components/Checkout.js +135 -0
  12. package/dist/components/Checkout.js.map +1 -0
  13. package/dist/components/checkout/ExpiredCheckout.d.ts +11 -0
  14. package/dist/components/checkout/ExpiredCheckout.js +24 -0
  15. package/dist/components/checkout/ExpiredCheckout.js.map +1 -0
  16. package/dist/components/checkout/PaymentReceivedCheckout.d.ts +6 -0
  17. package/dist/components/checkout/PaymentReceivedCheckout.js +25 -0
  18. package/dist/components/checkout/PaymentReceivedCheckout.js.map +1 -0
  19. package/dist/components/checkout/PendingPaymentCheckout.d.ts +9 -0
  20. package/dist/components/checkout/PendingPaymentCheckout.js +62 -0
  21. package/dist/components/checkout/PendingPaymentCheckout.js.map +1 -0
  22. package/dist/components/checkout/UnconfirmedCheckout.d.ts +9 -0
  23. package/dist/components/checkout/UnconfirmedCheckout.js +53 -0
  24. package/dist/components/checkout/UnconfirmedCheckout.js.map +1 -0
  25. package/dist/components/ui/button.d.ts +10 -0
  26. package/dist/components/ui/button.js +32 -0
  27. package/dist/components/ui/button.js.map +1 -0
  28. package/dist/components/ui/card.d.ts +9 -0
  29. package/dist/components/ui/card.js +25 -0
  30. package/dist/components/ui/card.js.map +1 -0
  31. package/dist/components/ui/collapsible.d.ts +5 -0
  32. package/dist/components/ui/collapsible.js +14 -0
  33. package/dist/components/ui/collapsible.js.map +1 -0
  34. package/dist/components/ui/dialog.d.ts +15 -0
  35. package/dist/components/ui/dialog.js +37 -0
  36. package/dist/components/ui/dialog.js.map +1 -0
  37. package/dist/components/ui/drawer.d.ts +13 -0
  38. package/dist/components/ui/drawer.js +36 -0
  39. package/dist/components/ui/drawer.js.map +1 -0
  40. package/dist/components/ui/form.d.ts +24 -0
  41. package/dist/components/ui/form.js +60 -0
  42. package/dist/components/ui/form.js.map +1 -0
  43. package/dist/components/ui/input.d.ts +3 -0
  44. package/dist/components/ui/input.js +7 -0
  45. package/dist/components/ui/input.js.map +1 -0
  46. package/dist/components/ui/label.d.ts +4 -0
  47. package/dist/components/ui/label.js +9 -0
  48. package/dist/components/ui/label.js.map +1 -0
  49. package/dist/components/ui/select.d.ts +15 -0
  50. package/dist/components/ui/select.js +39 -0
  51. package/dist/components/ui/select.js.map +1 -0
  52. package/dist/components/ui/textarea.d.ts +3 -0
  53. package/dist/components/ui/textarea.js +7 -0
  54. package/dist/components/ui/textarea.js.map +1 -0
  55. package/dist/constants.d.ts +1 -0
  56. package/dist/constants.js +2 -0
  57. package/dist/constants.js.map +1 -0
  58. package/dist/handlers/balance.d.ts +1 -0
  59. package/dist/handlers/balance.js +19 -0
  60. package/dist/handlers/balance.js.map +1 -0
  61. package/dist/handlers/checkout.d.ts +2 -0
  62. package/dist/handlers/checkout.js +62 -0
  63. package/dist/handlers/checkout.js.map +1 -0
  64. package/dist/handlers/index.d.ts +7 -0
  65. package/dist/handlers/index.js +8 -0
  66. package/dist/handlers/index.js.map +1 -0
  67. package/dist/handlers/list_channels.d.ts +1 -0
  68. package/dist/handlers/list_channels.js +15 -0
  69. package/dist/handlers/list_channels.js.map +1 -0
  70. package/dist/handlers/pay_bolt_11.d.ts +1 -0
  71. package/dist/handlers/pay_bolt_11.js +19 -0
  72. package/dist/handlers/pay_bolt_11.js.map +1 -0
  73. package/dist/handlers/pay_bolt_12.d.ts +1 -0
  74. package/dist/handlers/pay_bolt_12.js +25 -0
  75. package/dist/handlers/pay_bolt_12.js.map +1 -0
  76. package/dist/handlers/pay_ln_url.d.ts +1 -0
  77. package/dist/handlers/pay_ln_url.js +25 -0
  78. package/dist/handlers/pay_ln_url.js.map +1 -0
  79. package/dist/handlers/ping.d.ts +1 -0
  80. package/dist/handlers/ping.js +13 -0
  81. package/dist/handlers/ping.js.map +1 -0
  82. package/dist/handlers/webhooks.d.ts +1 -0
  83. package/dist/handlers/webhooks.js +45 -0
  84. package/dist/handlers/webhooks.js.map +1 -0
  85. package/dist/hooks/useCheckout.d.ts +5 -0
  86. package/dist/hooks/useCheckout.js +26 -0
  87. package/dist/hooks/useCheckout.js.map +1 -0
  88. package/dist/hooks/useCheckoutSuccess.d.ts +5 -0
  89. package/dist/hooks/useCheckoutSuccess.js +69 -0
  90. package/dist/hooks/useCheckoutSuccess.js.map +1 -0
  91. package/dist/index.d.ts +9 -0
  92. package/dist/index.js +10 -0
  93. package/dist/index.js.map +1 -0
  94. package/dist/lib/utils.d.ts +2 -0
  95. package/dist/lib/utils.js +6 -0
  96. package/dist/lib/utils.js.map +1 -0
  97. package/dist/lightning-logs.d.ts +5 -0
  98. package/dist/lightning-logs.js +170 -0
  99. package/dist/lightning-logs.js.map +1 -0
  100. package/dist/lightning-node.d.ts +42 -0
  101. package/dist/lightning-node.js +141 -0
  102. package/dist/lightning-node.js.map +1 -0
  103. package/dist/logging.d.ts +3 -0
  104. package/dist/logging.js +17 -0
  105. package/dist/logging.js.map +1 -0
  106. package/dist/mdk-client.d.ts +3341 -0
  107. package/dist/mdk-client.js +39 -0
  108. package/dist/mdk-client.js.map +1 -0
  109. package/dist/mdk-config.d.ts +18 -0
  110. package/dist/mdk-config.js +19 -0
  111. package/dist/mdk-config.js.map +1 -0
  112. package/dist/mdk-styles.css +2436 -0
  113. package/dist/mdk.d.ts +6 -0
  114. package/dist/mdk.js +69 -0
  115. package/dist/mdk.js.map +1 -0
  116. package/dist/money-dev-kit.d.ts +11 -0
  117. package/dist/money-dev-kit.js +3 -0
  118. package/dist/money-dev-kit.js.map +1 -0
  119. package/dist/payment-state.d.ts +3 -0
  120. package/dist/payment-state.js +32 -0
  121. package/dist/payment-state.js.map +1 -0
  122. package/dist/providers.d.ts +7 -0
  123. package/dist/providers.js +16 -0
  124. package/dist/providers.js.map +1 -0
  125. package/dist/route.d.ts +9 -0
  126. package/dist/route.js +133 -0
  127. package/dist/route.js.map +1 -0
  128. package/dist/undici-dispatcher.d.ts +4 -0
  129. package/dist/undici-dispatcher.js +13 -0
  130. package/dist/undici-dispatcher.js.map +1 -0
  131. package/package.json +71 -0
@@ -0,0 +1,28 @@
1
+ const API_PATH = '/api/mdk';
2
+ async function postToMdk(handler, payload) {
3
+ const response = await fetch(API_PATH, {
4
+ method: 'POST',
5
+ headers: { 'content-type': 'application/json' },
6
+ body: JSON.stringify({ handler, ...payload }),
7
+ });
8
+ if (!response.ok) {
9
+ const errorBody = await response.text();
10
+ throw new Error(`MDK request failed (${response.status}): ${errorBody}`);
11
+ }
12
+ return (await response.json());
13
+ }
14
+ export async function clientCreateCheckout(params) {
15
+ const response = await postToMdk('create_checkout', { params });
16
+ if (!response?.data) {
17
+ throw new Error('Invalid create checkout response');
18
+ }
19
+ return response.data;
20
+ }
21
+ export async function clientGetCheckout(checkoutId) {
22
+ const response = await postToMdk('get_checkout', { checkoutId });
23
+ if (!response?.data) {
24
+ throw new Error('Checkout not found');
25
+ }
26
+ return response.data;
27
+ }
28
+ //# sourceMappingURL=client-actions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client-actions.js","sourceRoot":"","sources":["../src/client-actions.ts"],"names":[],"mappings":"AAGA,MAAM,QAAQ,GAAG,UAAU,CAAA;AAE3B,KAAK,UAAU,SAAS,CAAI,OAAe,EAAE,OAAgC;IAC3E,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,QAAQ,EAAE;QACrC,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;QAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC;KAC9C,CAAC,CAAA;IAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;QACvC,MAAM,IAAI,KAAK,CAAC,uBAAuB,QAAQ,CAAC,MAAM,MAAM,SAAS,EAAE,CAAC,CAAA;IAC1E,CAAC;IAED,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAM,CAAA;AACrC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,MAA4B;IACrE,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAyB,iBAAiB,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;IACvF,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAA;IACrD,CAAC;IACD,OAAO,QAAQ,CAAC,IAAI,CAAA;AACtB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,UAAkB;IACxD,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAyB,cAAc,EAAE,EAAE,UAAU,EAAE,CAAC,CAAA;IACxF,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAA;IACvC,CAAC;IACD,OAAO,QAAQ,CAAC,IAAI,CAAA;AACtB,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from './components/Checkout';
2
+ export * from './hooks/useCheckout';
3
+ export * from './hooks/useCheckoutSuccess';
4
+ export * from './providers';
package/dist/client.js ADDED
@@ -0,0 +1,5 @@
1
+ export * from './components/Checkout';
2
+ export * from './hooks/useCheckout';
3
+ export * from './hooks/useCheckoutSuccess';
4
+ export * from './providers';
5
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAA;AACrC,cAAc,qBAAqB,CAAA;AACnC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,aAAa,CAAA"}
@@ -0,0 +1,6 @@
1
+ import '../mdk-styles.css';
2
+ export interface CheckoutProps {
3
+ id: string;
4
+ }
5
+ export declare function Checkout(props: CheckoutProps): import("react/jsx-runtime").JSX.Element;
6
+ export default Checkout;
@@ -0,0 +1,135 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useQuery } from '@tanstack/react-query';
3
+ import { useCallback, useEffect, useState } from 'react';
4
+ import { CHECKOUT_ID_QUERY_PARAM } from '../constants';
5
+ import '../mdk-styles.css';
6
+ import { clientCreateCheckout, clientGetCheckout } from '../client-actions';
7
+ import { log } from '../logging';
8
+ import { MdkCheckoutProvider } from '../providers';
9
+ import ExpiredCheckout from './checkout/ExpiredCheckout';
10
+ import PaymentReceivedCheckout from './checkout/PaymentReceivedCheckout';
11
+ import PendingPaymentCheckout from './checkout/PendingPaymentCheckout';
12
+ import UnconfirmedCheckout from './checkout/UnconfirmedCheckout';
13
+ const POLLING_STATUSES = new Set(['UNCONFIRMED', 'CONFIRMED', 'PENDING_PAYMENT']);
14
+ function CheckoutLayout({ checkout, children }) {
15
+ const title = checkout?.userMetadata?.title;
16
+ const description = checkout?.userMetadata?.description;
17
+ return (_jsxs("div", { className: "w-fit mx-auto", style: { width: '380px' }, children: [(title || description) && (_jsxs("div", { className: "text-center mb-6", children: [title && (_jsx("h2", { className: "text-2xl font-semibold text-white mb-2 font-sans tracking-tight", children: title })), description && (_jsx("p", { className: "text-gray-300", children: description }))] })), _jsx("div", { className: "bg-gray-800 rounded-2xl p-6 text-white font-sans", children: children }), _jsx("div", { className: "text-center mt-6", children: _jsxs("p", { className: "text-xs text-gray-500 font-sans", children: ["Powered by", ' ', _jsx("a", { href: "https://www.moneydevkit.com", target: "_blank", rel: "noopener noreferrer", className: "text-gray-400 hover:text-white transition-colors underline decoration-gray-600 hover:decoration-white", children: "moneydevkit" })] }) })] }));
18
+ }
19
+ function CheckoutInternal({ id }) {
20
+ const [isWindowVisible, setIsWindowVisible] = useState(() => {
21
+ if (typeof document === 'undefined') {
22
+ return true;
23
+ }
24
+ return document.visibilityState === 'visible';
25
+ });
26
+ const [isRestarting, setIsRestarting] = useState(false);
27
+ useEffect(() => {
28
+ if (typeof document === 'undefined' || typeof window === 'undefined') {
29
+ return;
30
+ }
31
+ const handleVisibility = () => {
32
+ setIsWindowVisible(document.visibilityState === 'visible');
33
+ };
34
+ const handlePageHide = () => {
35
+ setIsWindowVisible(false);
36
+ };
37
+ document.addEventListener('visibilitychange', handleVisibility);
38
+ window.addEventListener('pagehide', handlePageHide);
39
+ return () => {
40
+ document.removeEventListener('visibilitychange', handleVisibility);
41
+ window.removeEventListener('pagehide', handlePageHide);
42
+ };
43
+ }, []);
44
+ const { data: checkout } = useQuery({
45
+ queryKey: ['mdk-checkout', id],
46
+ queryFn: () => clientGetCheckout(id).then((checkout) => checkout),
47
+ enabled: !!id,
48
+ refetchInterval: ({ state: { data } }) => {
49
+ if (!isWindowVisible) {
50
+ return false;
51
+ }
52
+ if (!data) {
53
+ return 1000;
54
+ }
55
+ const invoiceSettled = (data.invoice?.amountSatsReceived ?? 0) > 0;
56
+ if (!POLLING_STATUSES.has(data.status) || invoiceSettled) {
57
+ return false;
58
+ }
59
+ return 1000;
60
+ },
61
+ });
62
+ const paymentReceived = checkout?.status === 'PAYMENT_RECEIVED' ||
63
+ (checkout?.invoice?.amountSatsReceived ?? 0) > 0;
64
+ const handleSuccess = useCallback((paidCheckout) => {
65
+ if (typeof window === 'undefined') {
66
+ return;
67
+ }
68
+ const configuredSuccessUrl = paidCheckout.userMetadata?.successUrl ?? paidCheckout.successUrl ?? '/success';
69
+ let destination = configuredSuccessUrl;
70
+ try {
71
+ const successUrl = new URL(configuredSuccessUrl, window.location.origin);
72
+ successUrl.searchParams.set(CHECKOUT_ID_QUERY_PARAM, paidCheckout.id);
73
+ destination = successUrl.toString();
74
+ }
75
+ catch (error) {
76
+ log('Failed to generate checkout success URL, falling back to provided path.', error);
77
+ }
78
+ window.location.href = destination;
79
+ }, []);
80
+ const handleRestart = useCallback(async () => {
81
+ if (!checkout)
82
+ return;
83
+ const amount = checkout.currency === 'SAT'
84
+ ? checkout.invoiceAmountSats ?? checkout.netAmount ?? checkout.providedAmount ?? checkout.totalAmount
85
+ : checkout.providedAmount ?? checkout.totalAmount ?? checkout.netAmount ?? checkout.invoice?.fiatAmount;
86
+ if (!amount) {
87
+ window.location.reload();
88
+ return;
89
+ }
90
+ const checkoutPath = typeof window !== 'undefined'
91
+ ? window.location.pathname.split('/').slice(0, -1).join('/') || '/checkout'
92
+ : '/checkout';
93
+ try {
94
+ setIsRestarting(true);
95
+ const newCheckout = await clientCreateCheckout({
96
+ title: checkout.userMetadata?.title || 'Checkout',
97
+ description: checkout.userMetadata?.description || '',
98
+ amount,
99
+ currency: checkout.currency,
100
+ successUrl: checkout.userMetadata?.successUrl ?? checkout.successUrl ?? undefined,
101
+ metadata: checkout.userMetadata ?? undefined,
102
+ });
103
+ window.location.href = `${checkoutPath}/${newCheckout.id}`;
104
+ }
105
+ catch (error) {
106
+ console.error('Failed to restart checkout', error);
107
+ setIsRestarting(false);
108
+ }
109
+ }, [checkout]);
110
+ if (!checkout) {
111
+ return (_jsx("div", { className: "flex items-center justify-center min-h-screen", children: _jsx("div", { className: "animate-spin rounded-full h-8 w-8 border-b-2 border-white" }) }));
112
+ }
113
+ return (_jsx("div", { className: "flex justify-center min-h-screen p-4 pt-8 bg-gradient-to-br from-slate-900 via-gray-900 to-slate-800", children: _jsx("div", { className: "w-full max-w-md", children: (() => {
114
+ if (paymentReceived) {
115
+ return (_jsx(CheckoutLayout, { checkout: checkout, children: _jsx(PaymentReceivedCheckout, { checkout: checkout, onSuccess: handleSuccess }) }));
116
+ }
117
+ switch (checkout.status) {
118
+ case 'UNCONFIRMED':
119
+ return (_jsx(CheckoutLayout, { checkout: checkout, children: _jsx(UnconfirmedCheckout, { checkout: checkout }) }));
120
+ case 'CONFIRMED':
121
+ return (_jsx(CheckoutLayout, { checkout: checkout, children: _jsxs("div", { className: "text-center", children: [_jsx("div", { className: "animate-spin rounded-full h-8 w-8 border-b-2 border-white mx-auto mb-4" }), _jsx("p", { className: "text-gray-300", children: "Generating invoice..." })] }) }));
122
+ case 'PENDING_PAYMENT':
123
+ return (_jsx(CheckoutLayout, { checkout: checkout, children: _jsx(PendingPaymentCheckout, { checkout: checkout }) }));
124
+ case 'EXPIRED':
125
+ return (_jsx(CheckoutLayout, { checkout: checkout, children: _jsx(ExpiredCheckout, { checkout: checkout, onRestart: handleRestart, isRestarting: isRestarting }) }));
126
+ default:
127
+ return null;
128
+ }
129
+ })() }) }));
130
+ }
131
+ export function Checkout(props) {
132
+ return (_jsx(MdkCheckoutProvider, { children: _jsx(CheckoutInternal, { ...props }) }));
133
+ }
134
+ export default Checkout;
135
+ //# sourceMappingURL=Checkout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Checkout.js","sourceRoot":"","sources":["../../src/components/Checkout.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { Checkout } from '@moneydevkit/api-contract';
2
+ type ExpiredCheckoutType = Extract<Checkout, {
3
+ status: 'EXPIRED';
4
+ }>;
5
+ export interface ExpiredCheckoutProps {
6
+ checkout: ExpiredCheckoutType;
7
+ onRestart?: () => void;
8
+ isRestarting?: boolean;
9
+ }
10
+ export default function ExpiredCheckout({ checkout, onRestart, isRestarting }: ExpiredCheckoutProps): import("react/jsx-runtime").JSX.Element;
11
+ export {};
@@ -0,0 +1,24 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ export default function ExpiredCheckout({ checkout, onRestart, isRestarting = false }) {
3
+ const formatCurrency = (amount, currency) => {
4
+ return new Intl.NumberFormat('en-US', {
5
+ style: 'currency',
6
+ currency,
7
+ }).format(amount / 100);
8
+ };
9
+ const formatSats = (sats) => {
10
+ return new Intl.NumberFormat('en-US').format(sats);
11
+ };
12
+ const ClockIcon = () => (_jsxs("svg", { className: "w-12 h-12 text-red-500", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", strokeWidth: 2, children: [_jsx("circle", { cx: "12", cy: "12", r: "10" }), _jsx("polyline", { points: "12,6 12,12 16,14" })] }));
13
+ const handleRestart = () => {
14
+ if (onRestart) {
15
+ onRestart();
16
+ }
17
+ else {
18
+ window.location.reload();
19
+ }
20
+ };
21
+ return (_jsxs(_Fragment, { children: [_jsxs("div", { className: "text-center mb-6", children: [_jsx("div", { className: "bg-red-500/20 rounded-full w-20 h-20 flex items-center justify-center mx-auto mb-4", children: _jsx(ClockIcon, {}) }), _jsx("p", { className: "text-gray-300", children: "This checkout session has expired." })] }), _jsxs("div", { className: "bg-gray-700 rounded-lg p-4 mb-6", children: [_jsx("h3", { className: "text-sm text-center font-bold text-gray-300 mb-3", children: "Payment Details" }), _jsxs("div", { className: "space-y-2 text-sm", children: [_jsxs("div", { className: "flex justify-between", children: [_jsx("span", { className: "text-gray-400", children: "Amount Fiat:" }), _jsx("span", { className: "text-white font-medium", children: checkout.invoice?.fiatAmount && checkout.currency &&
22
+ formatCurrency(checkout.invoice.fiatAmount, checkout.currency) })] }), _jsxs("div", { className: "flex justify-between", children: [_jsx("span", { className: "text-gray-400", children: "Amount BTC:" }), _jsx("span", { className: "text-white font-medium", children: checkout.invoice?.amountSats && `${formatSats(checkout.invoice.amountSats)} sats` })] }), _jsxs("div", { className: "flex justify-between", children: [_jsx("span", { className: "text-gray-400", children: "Checkout ID:" }), _jsx("span", { className: "text-white font-medium", children: checkout.id })] })] })] }), _jsx("div", { className: "text-center mb-6", children: _jsx("p", { className: "text-gray-300", children: "Checkout sessions only last 15 minutes. Please restart the flow to proceed." }) }), _jsx("button", { onClick: handleRestart, disabled: isRestarting, className: "w-full bg-white hover:bg-gray-100 disabled:opacity-70 disabled:cursor-not-allowed text-gray-900 font-medium py-3 px-4 rounded-lg transition-colors", children: isRestarting ? 'Restarting...' : 'Restart' })] }));
23
+ }
24
+ //# sourceMappingURL=ExpiredCheckout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExpiredCheckout.js","sourceRoot":"","sources":["../../../src/components/checkout/ExpiredCheckout.tsx"],"names":[],"mappings":";AAUA,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,GAAG,KAAK,EAAwB;IACzG,MAAM,cAAc,GAAG,CAAC,MAAc,EAAE,QAAgB,EAAE,EAAE;QAC1D,OAAO,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;YACpC,KAAK,EAAE,UAAU;YACjB,QAAQ;SACT,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,CAAA;IACzB,CAAC,CAAA;IAED,MAAM,UAAU,GAAG,CAAC,IAAY,EAAE,EAAE;QAClC,OAAO,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACpD,CAAC,CAAA;IAED,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC,CACtB,eAAK,SAAS,EAAC,wBAAwB,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,OAAO,EAAC,WAAW,EAAC,WAAW,EAAE,CAAC,aAC1G,iBAAQ,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,GAAG,EACjC,mBAAU,MAAM,EAAC,kBAAkB,GAAG,IAClC,CACP,CAAA;IAED,MAAM,aAAa,GAAG,GAAG,EAAE;QACzB,IAAI,SAAS,EAAE,CAAC;YACd,SAAS,EAAE,CAAA;QACb,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAA;QAC1B,CAAC;IACH,CAAC,CAAA;IAED,OAAO,CACL,8BACE,eAAK,SAAS,EAAC,kBAAkB,aAC/B,cAAK,SAAS,EAAC,oFAAoF,YACjG,KAAC,SAAS,KAAG,GACT,EAEN,YAAG,SAAS,EAAC,eAAe,mDAAuC,IAC/D,EAEN,eAAK,SAAS,EAAC,iCAAiC,aAC9C,aAAI,SAAS,EAAC,kDAAkD,gCAAqB,EAErF,eAAK,SAAS,EAAC,mBAAmB,aAChC,eAAK,SAAS,EAAC,sBAAsB,aACnC,eAAM,SAAS,EAAC,eAAe,6BAAoB,EACnD,eAAM,SAAS,EAAC,wBAAwB,YACrC,QAAQ,CAAC,OAAO,EAAE,UAAU,IAAI,QAAQ,CAAC,QAAQ;4CAChD,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAC3D,IACH,EAEN,eAAK,SAAS,EAAC,sBAAsB,aACnC,eAAM,SAAS,EAAC,eAAe,4BAAmB,EAClD,eAAM,SAAS,EAAC,wBAAwB,YACrC,QAAQ,CAAC,OAAO,EAAE,UAAU,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,GAC7E,IACH,EAEN,eAAK,SAAS,EAAC,sBAAsB,aACnC,eAAM,SAAS,EAAC,eAAe,6BAAoB,EACnD,eAAM,SAAS,EAAC,wBAAwB,YAAE,QAAQ,CAAC,EAAE,GAAQ,IACzD,IACF,IACF,EAEN,cAAK,SAAS,EAAC,kBAAkB,YAC/B,YAAG,SAAS,EAAC,eAAe,4FAAgF,GACxG,EAEN,iBACE,OAAO,EAAE,aAAa,EACtB,QAAQ,EAAE,YAAY,EACtB,SAAS,EAAC,oJAAoJ,YAE7J,YAAY,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,GACpC,IACR,CACJ,CAAA;AACH,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { Checkout } from '@moneydevkit/api-contract';
2
+ export interface PaymentReceivedCheckoutProps {
3
+ checkout: Checkout;
4
+ onSuccess: (checkout: Checkout) => void;
5
+ }
6
+ export default function PaymentReceivedCheckout({ checkout, onSuccess }: PaymentReceivedCheckoutProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,25 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ export default function PaymentReceivedCheckout({ checkout, onSuccess }) {
3
+ const formatCurrency = (amount, currency) => {
4
+ return new Intl.NumberFormat('en-US', {
5
+ style: 'currency',
6
+ currency,
7
+ }).format(amount / 100);
8
+ };
9
+ const formatSats = (sats) => {
10
+ return new Intl.NumberFormat('en-US', {
11
+ minimumFractionDigits: 0,
12
+ maximumFractionDigits: 3,
13
+ }).format(sats);
14
+ };
15
+ const handleContinue = () => {
16
+ onSuccess(checkout);
17
+ };
18
+ const CheckmarkIcon = () => (_jsx("svg", { className: "w-12 h-12 text-green-500", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M5 13l4 4L19 7" }) }));
19
+ const satsReceived = checkout.invoice?.amountSatsReceived
20
+ ? checkout.invoice.amountSatsReceived / 1000
21
+ : undefined;
22
+ return (_jsxs(_Fragment, { children: [_jsxs("div", { className: "text-center mb-6", children: [_jsx("div", { className: "bg-green-500/20 rounded-full w-20 h-20 flex items-center justify-center mx-auto mb-4", children: _jsx(CheckmarkIcon, {}) }), _jsx("p", { className: "text-gray-300", children: "Your payment has been received." })] }), _jsxs("div", { className: "bg-gray-700 rounded-lg p-4 mb-6", children: [_jsx("h3", { className: "text-sm text-center font-bold text-gray-300 mb-3", children: "Payment Details" }), _jsxs("div", { className: "space-y-2 text-sm", children: [_jsxs("div", { className: "flex justify-between", children: [_jsx("span", { className: "text-gray-400", children: "Amount Fiat:" }), _jsx("span", { className: "text-white font-medium", children: checkout.invoice?.fiatAmount && checkout.currency &&
23
+ formatCurrency(checkout.invoice.fiatAmount, checkout.currency) })] }), _jsxs("div", { className: "flex justify-between", children: [_jsx("span", { className: "text-gray-400", children: "Amount BTC:" }), _jsx("span", { className: "text-white font-medium", children: satsReceived !== undefined && `${formatSats(satsReceived)} sats` })] }), _jsxs("div", { className: "flex justify-between", children: [_jsx("span", { className: "text-gray-400", children: "Checkout ID:" }), _jsx("span", { className: "text-white font-medium", children: checkout.id })] })] })] }), _jsx("div", { className: "text-center text-xs text-gray-400 mt-6 mb-6", children: _jsx("p", { children: "Thank you for your business!" }) }), _jsx("div", { className: "text-center mb-4", children: _jsx("button", { onClick: handleContinue, className: "w-full bg-white hover:bg-gray-200 text-black font-medium py-3 px-4 rounded-lg transition-colors", children: "Continue" }) })] }));
24
+ }
25
+ //# sourceMappingURL=PaymentReceivedCheckout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PaymentReceivedCheckout.js","sourceRoot":"","sources":["../../../src/components/checkout/PaymentReceivedCheckout.tsx"],"names":[],"mappings":";AAOA,MAAM,CAAC,OAAO,UAAU,uBAAuB,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAgC;IACnG,MAAM,cAAc,GAAG,CAAC,MAAc,EAAE,QAAgB,EAAE,EAAE;QAC1D,OAAO,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;YACpC,KAAK,EAAE,UAAU;YACjB,QAAQ;SACT,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,CAAA;IACzB,CAAC,CAAA;IAED,MAAM,UAAU,GAAG,CAAC,IAAY,EAAE,EAAE;QAClC,OAAO,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;YACpC,qBAAqB,EAAE,CAAC;YACxB,qBAAqB,EAAE,CAAC;SACzB,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACjB,CAAC,CAAA;IAED,MAAM,cAAc,GAAG,GAAG,EAAE;QAC1B,SAAS,CAAC,QAAQ,CAAC,CAAA;IACrB,CAAC,CAAA;IAED,MAAM,aAAa,GAAG,GAAG,EAAE,CAAC,CAC1B,cAAK,SAAS,EAAC,0BAA0B,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,OAAO,EAAC,WAAW,YAC7F,eAAM,aAAa,EAAC,OAAO,EAAC,cAAc,EAAC,OAAO,EAAC,WAAW,EAAE,CAAC,EAAE,CAAC,EAAC,gBAAgB,GAAG,GACpF,CACP,CAAA;IAED,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,EAAE,kBAAkB;QACvD,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,kBAAkB,GAAG,IAAI;QAC5C,CAAC,CAAC,SAAS,CAAA;IAEb,OAAO,CACL,8BACE,eAAK,SAAS,EAAC,kBAAkB,aAC/B,cAAK,SAAS,EAAC,sFAAsF,YACnG,KAAC,aAAa,KAAG,GACb,EACN,YAAG,SAAS,EAAC,eAAe,gDAAoC,IAC5D,EAEN,eAAK,SAAS,EAAC,iCAAiC,aAC9C,aAAI,SAAS,EAAC,kDAAkD,gCAAqB,EAErF,eAAK,SAAS,EAAC,mBAAmB,aAChC,eAAK,SAAS,EAAC,sBAAsB,aACnC,eAAM,SAAS,EAAC,eAAe,6BAAoB,EACnD,eAAM,SAAS,EAAC,wBAAwB,YACrC,QAAQ,CAAC,OAAO,EAAE,UAAU,IAAI,QAAQ,CAAC,QAAQ;4CAChD,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAC3D,IACH,EAEN,eAAK,SAAS,EAAC,sBAAsB,aACnC,eAAM,SAAS,EAAC,eAAe,4BAAmB,EAClD,eAAM,SAAS,EAAC,wBAAwB,YACrC,YAAY,KAAK,SAAS,IAAI,GAAG,UAAU,CAAC,YAAY,CAAC,OAAO,GAC5D,IACH,EAEN,eAAK,SAAS,EAAC,sBAAsB,aACnC,eAAM,SAAS,EAAC,eAAe,6BAAoB,EACnD,eAAM,SAAS,EAAC,wBAAwB,YAAE,QAAQ,CAAC,EAAE,GAAQ,IACzD,IACF,IACF,EAEN,cAAK,SAAS,EAAC,6CAA6C,YAC1D,uDAAmC,GAC/B,EAEN,cAAK,SAAS,EAAC,kBAAkB,YAC/B,iBACE,OAAO,EAAE,cAAc,EACvB,SAAS,EAAC,iGAAiG,yBAGpG,GACL,IACL,CACJ,CAAA;AACH,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { Checkout } from '@moneydevkit/api-contract';
2
+ type PendingPaymentCheckoutType = Extract<Checkout, {
3
+ status: 'PENDING_PAYMENT';
4
+ }>;
5
+ export interface PendingPaymentCheckoutProps {
6
+ checkout: PendingPaymentCheckoutType;
7
+ }
8
+ export default function PendingPaymentCheckout({ checkout }: PendingPaymentCheckoutProps): import("react/jsx-runtime").JSX.Element;
9
+ export {};
@@ -0,0 +1,62 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { ChevronDown } from 'lucide-react';
3
+ import { QRCodeSVG } from 'qrcode.react';
4
+ import { useEffect, useState } from 'react';
5
+ import { Collapsible, CollapsibleContent, CollapsibleTrigger } from '../ui/collapsible';
6
+ export default function PendingPaymentCheckout({ checkout }) {
7
+ const [timeRemaining, setTimeRemaining] = useState('');
8
+ const [copySuccess, setCopySuccess] = useState(false);
9
+ const [detailsOpen, setDetailsOpen] = useState(false);
10
+ useEffect(() => {
11
+ const updateTimer = () => {
12
+ if (!checkout.invoice?.expiresAt)
13
+ return;
14
+ const now = new Date().getTime();
15
+ const expiry = new Date(checkout.invoice.expiresAt).getTime();
16
+ const diff = expiry - now;
17
+ if (diff <= 0) {
18
+ setTimeRemaining('Expired');
19
+ return;
20
+ }
21
+ const minutes = Math.floor(diff / (1000 * 60));
22
+ const seconds = Math.floor((diff % (1000 * 60)) / 1000);
23
+ setTimeRemaining(`${minutes}:${seconds.toString().padStart(2, '0')}`);
24
+ };
25
+ updateTimer();
26
+ const interval = setInterval(updateTimer, 1000);
27
+ return () => clearInterval(interval);
28
+ }, [checkout.invoice?.expiresAt]);
29
+ const formatCurrency = (amount, currency) => {
30
+ return new Intl.NumberFormat('en-US', {
31
+ style: 'currency',
32
+ currency,
33
+ }).format(amount / 100);
34
+ };
35
+ const formatSats = (sats) => {
36
+ return new Intl.NumberFormat('en-US').format(sats);
37
+ };
38
+ const copyToClipboard = async () => {
39
+ if (checkout.invoice?.invoice) {
40
+ try {
41
+ await navigator.clipboard.writeText(checkout.invoice.invoice);
42
+ setCopySuccess(true);
43
+ setTimeout(() => setCopySuccess(false), 2000);
44
+ }
45
+ catch (error) {
46
+ console.error('Failed to copy invoice:', error);
47
+ }
48
+ }
49
+ };
50
+ const truncateInvoice = (invoice, maxLength = 40) => {
51
+ if (invoice.length <= maxLength)
52
+ return invoice;
53
+ const start = Math.floor((maxLength - 3) / 2);
54
+ const end = Math.ceil((maxLength - 3) / 2);
55
+ return `${invoice.slice(0, start)}...${invoice.slice(-end)}`;
56
+ };
57
+ const CopyIcon = () => (_jsx("svg", { className: "w-4 h-4 text-gray-400 hover:text-white cursor-pointer transition-colors", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z" }) }));
58
+ const CheckmarkIcon = () => (_jsx("svg", { className: "w-4 h-4 text-green-500 cursor-pointer transition-colors", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M5 13l4 4L19 7" }) }));
59
+ return (_jsxs(_Fragment, { children: [_jsxs("div", { className: "text-center mb-6 w-full", children: [_jsx("div", { className: "mb-4 w-full", children: _jsx("div", { className: "text-2xl font-semibold mb-2 font-sans tracking-tight", children: checkout.invoice?.amountSats && `${formatSats(checkout.invoice.amountSats)} sats` }) }), _jsx("div", { className: "w-full", children: _jsxs(Collapsible, { open: detailsOpen, onOpenChange: setDetailsOpen, children: [_jsxs(CollapsibleTrigger, { className: "flex items-center justify-center gap-2 text-gray-400 hover:text-white transition-colors text-sm w-full font-medium", children: ["View Details", _jsx(ChevronDown, { className: `w-4 h-4 transition-transform duration-300 ease-in-out ${detailsOpen ? 'rotate-180' : ''}` })] }), _jsx(CollapsibleContent, { className: "w-full overflow-hidden transition-all duration-300 ease-in-out data-[state=closed]:animate-[collapsible-up_300ms_ease-in-out] data-[state=open]:animate-[collapsible-down_300ms_ease-in-out]", children: _jsxs("div", { className: "mt-4 space-y-3 text-sm w-full", children: [_jsxs("div", { className: "flex justify-between w-full", children: [_jsx("span", { className: "text-gray-400", children: "Total Fiat" }), _jsx("span", { className: "text-white", children: checkout.invoice?.fiatAmount && checkout.currency &&
60
+ formatCurrency(checkout.invoice.fiatAmount, checkout.currency) })] }), _jsxs("div", { className: "flex justify-between w-full", children: [_jsx("span", { className: "text-gray-400", children: "Exchange Rate" }), _jsx("span", { className: "text-white", children: checkout.invoice?.btcPrice && `$${new Intl.NumberFormat('en-US').format(checkout.invoice.btcPrice)}` })] }), timeRemaining && (_jsxs("div", { className: "flex justify-between w-full", children: [_jsx("span", { className: "text-gray-400", children: "Expires in" }), _jsx("span", { className: "text-white", children: timeRemaining })] }))] }) })] }) })] }), _jsx("div", { className: "flex justify-center mb-4 w-full", children: _jsx("div", { className: "bg-white p-3 rounded-lg shadow cursor-pointer hover:shadow-lg transition-shadow", onClick: copyToClipboard, title: "Click to copy invoice", children: _jsx(QRCodeSVG, { value: checkout.invoice?.invoice ?? '', size: 320, bgColor: "#ffffff", fgColor: "#000000", level: "Q" }) }) }), checkout.invoice?.invoice && (_jsxs("div", { className: "flex items-center gap-2 mb-6 bg-gray-700 p-3 rounded-lg w-full", children: [_jsx("code", { className: "text-xs text-gray-300 font-mono flex-1 text-center min-w-0", children: truncateInvoice(checkout.invoice.invoice) }), _jsx("div", { onClick: copyToClipboard, title: "Copy invoice", className: "flex-shrink-0", children: copySuccess ? _jsx(CheckmarkIcon, {}) : _jsx(CopyIcon, {}) })] }))] }));
61
+ }
62
+ //# sourceMappingURL=PendingPaymentCheckout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PendingPaymentCheckout.js","sourceRoot":"","sources":["../../../src/components/checkout/PendingPaymentCheckout.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { Checkout } from '@moneydevkit/api-contract';
2
+ type UnconfirmedCheckoutType = Extract<Checkout, {
3
+ status: 'UNCONFIRMED';
4
+ }>;
5
+ export interface UnconfirmedCheckoutProps {
6
+ checkout: UnconfirmedCheckoutType;
7
+ }
8
+ export default function UnconfirmedCheckout({ checkout }: UnconfirmedCheckoutProps): import("react/jsx-runtime").JSX.Element;
9
+ export {};
@@ -0,0 +1,53 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { zodResolver } from '@hookform/resolvers/zod';
3
+ import { useMutation, useQueryClient } from '@tanstack/react-query';
4
+ import { useForm } from 'react-hook-form';
5
+ import { z } from 'zod';
6
+ import { confirmCheckout } from '../../actions';
7
+ import { Button } from '../ui/button';
8
+ import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage, } from '../ui/form';
9
+ import { Input } from '../ui/input';
10
+ const CustomerFormSchema = z.object({
11
+ customerEmail: z.string().email('Please enter a valid email address').optional(),
12
+ customerName: z.string().optional(),
13
+ });
14
+ export default function UnconfirmedCheckout({ checkout }) {
15
+ const queryClient = useQueryClient();
16
+ const needsEmail = checkout.requireCustomerFields?.customerEmail && !checkout.customerEmail;
17
+ const needsName = checkout.requireCustomerFields?.customerName && !checkout.customerName;
18
+ const form = useForm({
19
+ resolver: zodResolver(CustomerFormSchema),
20
+ defaultValues: {
21
+ customerEmail: checkout.customerEmail || '',
22
+ customerName: checkout.customerName || '',
23
+ },
24
+ });
25
+ const confirmMutation = useMutation({
26
+ mutationFn: async (data) => {
27
+ return await confirmCheckout({
28
+ checkoutId: checkout.id,
29
+ customerEmail: data.customerEmail || undefined,
30
+ customerName: data.customerName || undefined,
31
+ });
32
+ },
33
+ onSuccess: () => {
34
+ queryClient.invalidateQueries({ queryKey: ['mdk-checkout', checkout.id] });
35
+ },
36
+ onError: (error) => {
37
+ form.setError('root', {
38
+ message: error instanceof Error ? error.message : 'Something went wrong',
39
+ });
40
+ },
41
+ });
42
+ const onSubmit = (data) => {
43
+ confirmMutation.mutate(data);
44
+ };
45
+ const formatCurrency = (amount, currency) => {
46
+ return new Intl.NumberFormat('en-US', {
47
+ style: 'currency',
48
+ currency,
49
+ }).format(amount / 100);
50
+ };
51
+ return (_jsxs(_Fragment, { children: [_jsxs("div", { className: "text-center mb-6", children: [checkout.type === 'PRODUCTS' && checkout.products && (_jsx("div", { className: "space-y-2", children: checkout.products.map((product) => (_jsxs("div", { className: "text-left", children: [_jsx("h3", { className: "font-medium text-white", children: product.name }), product.description && _jsx("p", { className: "text-sm text-gray-400", children: product.description }), product.prices.map((price) => (_jsxs("div", { className: "text-sm text-gray-300", children: [price.amountType === 'FIXED' && price.priceAmount && (_jsx("span", { children: formatCurrency(price.priceAmount, checkout.currency) })), product.recurringInterval && (_jsxs("span", { className: "text-gray-400", children: ["/", product.recurringInterval.toLowerCase()] }))] }, price.id)))] }, product.id))) })), checkout.type === 'AMOUNT' && checkout.providedAmount && (_jsx("div", { className: "text-sm font-medium text-white" })), checkout.type === 'TOP_UP' && _jsx("div", { className: "text-lg text-white", children: "Account Top-up" })] }), _jsx(Form, { ...form, children: _jsxs("form", { onSubmit: form.handleSubmit(onSubmit), className: "space-y-4", children: [needsEmail && (_jsx(FormField, { control: form.control, name: "customerEmail", render: ({ field }) => (_jsxs(FormItem, { children: [_jsx(FormLabel, { className: "text-gray-300", children: "Email Address *" }), _jsx(FormControl, { children: _jsx(Input, { ...field, type: "email", placeholder: "Enter your email", className: "bg-gray-700 border-gray-600 focus:ring-purple-500 focus:border-purple-500 text-white placeholder-gray-400" }) }), _jsx(FormMessage, {})] })) })), needsName && (_jsx(FormField, { control: form.control, name: "customerName", render: ({ field }) => (_jsxs(FormItem, { children: [_jsx(FormLabel, { className: "text-gray-300", children: "Full Name *" }), _jsx(FormControl, { children: _jsx(Input, { ...field, type: "text", placeholder: "Enter your full name", className: "bg-gray-700 border-gray-600 focus:ring-purple-500 focus:border-purple-500 text-white placeholder-gray-400" }) }), _jsx(FormMessage, {})] })) })), form.formState.errors.root && (_jsxs("div", { className: "text-red-400 text-sm", children: ["Error: ", form.formState.errors.root.message] })), _jsx(Button, { type: "submit", disabled: form.formState.isSubmitting || confirmMutation.isPending, className: "w-full bg-white hover:bg-gray-100 text-black font-medium py-3 px-4 rounded-lg transition-colors border border-gray-200", children: form.formState.isSubmitting || confirmMutation.isPending ? (_jsxs("div", { className: "flex items-center justify-center", children: [_jsx("div", { className: "animate-spin rounded-full h-4 w-4 border-b-2 border-white mr-2" }), "Generating invoice..."] })) : ('Proceed to Payment') })] }) })] }));
52
+ }
53
+ //# sourceMappingURL=UnconfirmedCheckout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UnconfirmedCheckout.js","sourceRoot":"","sources":["../../../src/components/checkout/UnconfirmedCheckout.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import * as React from "react";
2
+ import { type VariantProps } from "class-variance-authority";
3
+ declare const buttonVariants: (props?: ({
4
+ variant?: "link" | "default" | "destructive" | "outline" | "secondary" | "ghost" | null | undefined;
5
+ size?: "default" | "sm" | "lg" | "icon" | null | undefined;
6
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
7
+ declare function Button({ className, variant, size, asChild, ...props }: React.ComponentProps<"button"> & VariantProps<typeof buttonVariants> & {
8
+ asChild?: boolean;
9
+ }): import("react/jsx-runtime").JSX.Element;
10
+ export { Button, buttonVariants };
@@ -0,0 +1,32 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Slot } from "@radix-ui/react-slot";
3
+ import { cva } from "class-variance-authority";
4
+ import { cn } from "../../lib/utils";
5
+ const buttonVariants = cva("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive", {
6
+ variants: {
7
+ variant: {
8
+ default: "bg-primary text-primary-foreground shadow-xs hover:bg-primary/90",
9
+ destructive: "bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",
10
+ outline: "border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",
11
+ secondary: "bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80",
12
+ ghost: "hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",
13
+ link: "text-primary underline-offset-4 hover:underline",
14
+ },
15
+ size: {
16
+ default: "h-9 px-4 py-2 has-[>svg]:px-3",
17
+ sm: "h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",
18
+ lg: "h-10 rounded-md px-6 has-[>svg]:px-4",
19
+ icon: "size-9",
20
+ },
21
+ },
22
+ defaultVariants: {
23
+ variant: "default",
24
+ size: "default",
25
+ },
26
+ });
27
+ function Button({ className, variant, size, asChild = false, ...props }) {
28
+ const Comp = asChild ? Slot : "button";
29
+ return (_jsx(Comp, { "data-slot": "button", className: cn(buttonVariants({ variant, size, className })), ...props }));
30
+ }
31
+ export { Button, buttonVariants };
32
+ //# sourceMappingURL=button.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"button.js","sourceRoot":"","sources":["../../../src/components/ui/button.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAA;AAC3C,OAAO,EAAE,GAAG,EAAqB,MAAM,0BAA0B,CAAA;AAEjE,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAA;AAEpC,MAAM,cAAc,GAAG,GAAG,CACxB,6bAA6b,EAC7b;IACE,QAAQ,EAAE;QACR,OAAO,EAAE;YACP,OAAO,EACL,kEAAkE;YACpE,WAAW,EACT,6JAA6J;YAC/J,OAAO,EACL,uIAAuI;YACzI,SAAS,EACP,wEAAwE;YAC1E,KAAK,EACH,sEAAsE;YACxE,IAAI,EAAE,iDAAiD;SACxD;QACD,IAAI,EAAE;YACJ,OAAO,EAAE,+BAA+B;YACxC,EAAE,EAAE,+CAA+C;YACnD,EAAE,EAAE,sCAAsC;YAC1C,IAAI,EAAE,QAAQ;SACf;KACF;IACD,eAAe,EAAE;QACf,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE,SAAS;KAChB;CACF,CACF,CAAA;AAED,SAAS,MAAM,CAAC,EACd,SAAS,EACT,OAAO,EACP,IAAI,EACJ,OAAO,GAAG,KAAK,EACf,GAAG,KAAK,EAIP;IACD,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAA;IAEtC,OAAO,CACL,KAAC,IAAI,iBACO,QAAQ,EAClB,SAAS,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,KACvD,KAAK,GACT,CACH,CAAA;AACH,CAAC;AAED,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAA"}
@@ -0,0 +1,9 @@
1
+ import * as React from "react";
2
+ declare function Card({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
3
+ declare function CardHeader({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
4
+ declare function CardTitle({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
5
+ declare function CardDescription({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
6
+ declare function CardAction({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
7
+ declare function CardContent({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
8
+ declare function CardFooter({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
9
+ export { Card, CardHeader, CardFooter, CardTitle, CardAction, CardDescription, CardContent, };
@@ -0,0 +1,25 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { cn } from "../../lib/utils";
3
+ function Card({ className, ...props }) {
4
+ return (_jsx("div", { "data-slot": "card", className: cn("bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm", className), ...props }));
5
+ }
6
+ function CardHeader({ className, ...props }) {
7
+ return (_jsx("div", { "data-slot": "card-header", className: cn("@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6", className), ...props }));
8
+ }
9
+ function CardTitle({ className, ...props }) {
10
+ return (_jsx("div", { "data-slot": "card-title", className: cn("leading-none font-semibold", className), ...props }));
11
+ }
12
+ function CardDescription({ className, ...props }) {
13
+ return (_jsx("div", { "data-slot": "card-description", className: cn("text-muted-foreground text-sm", className), ...props }));
14
+ }
15
+ function CardAction({ className, ...props }) {
16
+ return (_jsx("div", { "data-slot": "card-action", className: cn("col-start-2 row-span-2 row-start-1 self-start justify-self-end", className), ...props }));
17
+ }
18
+ function CardContent({ className, ...props }) {
19
+ return (_jsx("div", { "data-slot": "card-content", className: cn("px-6", className), ...props }));
20
+ }
21
+ function CardFooter({ className, ...props }) {
22
+ return (_jsx("div", { "data-slot": "card-footer", className: cn("flex items-center px-6 [.border-t]:pt-6", className), ...props }));
23
+ }
24
+ export { Card, CardHeader, CardFooter, CardTitle, CardAction, CardDescription, CardContent, };
25
+ //# sourceMappingURL=card.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"card.js","sourceRoot":"","sources":["../../../src/components/ui/card.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAA;AAEpC,SAAS,IAAI,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAA+B;IAChE,OAAO,CACL,2BACY,MAAM,EAChB,SAAS,EAAE,EAAE,CACX,mFAAmF,EACnF,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAA;AACH,CAAC;AAED,SAAS,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAA+B;IACtE,OAAO,CACL,2BACY,aAAa,EACvB,SAAS,EAAE,EAAE,CACX,4JAA4J,EAC5J,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAA;AACH,CAAC;AAED,SAAS,SAAS,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAA+B;IACrE,OAAO,CACL,2BACY,YAAY,EACtB,SAAS,EAAE,EAAE,CAAC,4BAA4B,EAAE,SAAS,CAAC,KAClD,KAAK,GACT,CACH,CAAA;AACH,CAAC;AAED,SAAS,eAAe,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAA+B;IAC3E,OAAO,CACL,2BACY,kBAAkB,EAC5B,SAAS,EAAE,EAAE,CAAC,+BAA+B,EAAE,SAAS,CAAC,KACrD,KAAK,GACT,CACH,CAAA;AACH,CAAC;AAED,SAAS,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAA+B;IACtE,OAAO,CACL,2BACY,aAAa,EACvB,SAAS,EAAE,EAAE,CACX,gEAAgE,EAChE,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAA;AACH,CAAC;AAED,SAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAA+B;IACvE,OAAO,CACL,2BACY,cAAc,EACxB,SAAS,EAAE,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,KAC5B,KAAK,GACT,CACH,CAAA;AACH,CAAC;AAED,SAAS,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAA+B;IACtE,OAAO,CACL,2BACY,aAAa,EACvB,SAAS,EAAE,EAAE,CAAC,yCAAyC,EAAE,SAAS,CAAC,KAC/D,KAAK,GACT,CACH,CAAA;AACH,CAAC;AAED,OAAO,EACL,IAAI,EACJ,UAAU,EACV,UAAU,EACV,SAAS,EACT,UAAU,EACV,eAAe,EACf,WAAW,GACZ,CAAA"}
@@ -0,0 +1,5 @@
1
+ import * as CollapsiblePrimitive from "@radix-ui/react-collapsible";
2
+ declare function Collapsible({ ...props }: React.ComponentProps<typeof CollapsiblePrimitive.Root>): import("react/jsx-runtime").JSX.Element;
3
+ declare function CollapsibleTrigger({ ...props }: React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleTrigger>): import("react/jsx-runtime").JSX.Element;
4
+ declare function CollapsibleContent({ ...props }: React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleContent>): import("react/jsx-runtime").JSX.Element;
5
+ export { Collapsible, CollapsibleTrigger, CollapsibleContent };
@@ -0,0 +1,14 @@
1
+ "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import * as CollapsiblePrimitive from "@radix-ui/react-collapsible";
4
+ function Collapsible({ ...props }) {
5
+ return _jsx(CollapsiblePrimitive.Root, { "data-slot": "collapsible", ...props });
6
+ }
7
+ function CollapsibleTrigger({ ...props }) {
8
+ return (_jsx(CollapsiblePrimitive.CollapsibleTrigger, { "data-slot": "collapsible-trigger", ...props }));
9
+ }
10
+ function CollapsibleContent({ ...props }) {
11
+ return (_jsx(CollapsiblePrimitive.CollapsibleContent, { "data-slot": "collapsible-content", ...props }));
12
+ }
13
+ export { Collapsible, CollapsibleTrigger, CollapsibleContent };
14
+ //# sourceMappingURL=collapsible.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collapsible.js","sourceRoot":"","sources":["../../../src/components/ui/collapsible.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,KAAK,oBAAoB,MAAM,6BAA6B,CAAA;AAEnE,SAAS,WAAW,CAAC,EACnB,GAAG,KAAK,EAC+C;IACvD,OAAO,KAAC,oBAAoB,CAAC,IAAI,iBAAW,aAAa,KAAK,KAAK,GAAI,CAAA;AACzE,CAAC;AAED,SAAS,kBAAkB,CAAC,EAC1B,GAAG,KAAK,EAC6D;IACrE,OAAO,CACL,KAAC,oBAAoB,CAAC,kBAAkB,iBAC5B,qBAAqB,KAC3B,KAAK,GACT,CACH,CAAA;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,EAC1B,GAAG,KAAK,EAC6D;IACrE,OAAO,CACL,KAAC,oBAAoB,CAAC,kBAAkB,iBAC5B,qBAAqB,KAC3B,KAAK,GACT,CACH,CAAA;AACH,CAAC;AAED,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,CAAA"}