@agg-market/ui 0.0.3 → 0.0.4
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.
- package/dist/badge.d.mts +2 -2
- package/dist/badge.d.ts +2 -2
- package/dist/badge.mjs +2 -2
- package/dist/button.d.mts +2 -2
- package/dist/button.d.ts +2 -2
- package/dist/button.js +1 -0
- package/dist/button.mjs +3 -3
- package/dist/card.mjs +2 -2
- package/dist/chart.mjs +3 -3
- package/dist/{chunk-YUIZZ6XE.mjs → chunk-3O4U3E5I.mjs} +1 -1
- package/dist/{chunk-JLLMIPIX.mjs → chunk-4VUDTWH7.mjs} +1 -1
- package/dist/{chunk-MG243DSX.mjs → chunk-AEMAY3MR.mjs} +1 -1
- package/dist/{chunk-FYV3MDIL.mjs → chunk-BJNHDIDW.mjs} +4 -4
- package/dist/{chunk-LY6474C4.mjs → chunk-BLSHXIAH.mjs} +36 -71
- package/dist/{chunk-DQ6XFBYJ.mjs → chunk-DYEWXEEY.mjs} +1 -1
- package/dist/{chunk-OUOIDPGX.mjs → chunk-EXF4SESB.mjs} +1 -1
- package/dist/chunk-F236MLT6.mjs +1337 -0
- package/dist/{chunk-PAQ542ER.mjs → chunk-GHB3GOCW.mjs} +4 -2
- package/dist/{chunk-GC3QIIH7.mjs → chunk-GJ4U5NCE.mjs} +23 -1
- package/dist/chunk-HM3CGN32.mjs +669 -0
- package/dist/chunk-I4YUYVJJ.mjs +472 -0
- package/dist/{chunk-NFYS557L.mjs → chunk-JH5VMNDL.mjs} +3 -3
- package/dist/{chunk-TTOR7JCT.mjs → chunk-JRS2M5GY.mjs} +1 -1
- package/dist/{chunk-QXFDXXDB.mjs → chunk-LWTQD345.mjs} +3 -3
- package/dist/{chunk-QE46DVJG.mjs → chunk-MNSHWA6M.mjs} +3 -3
- package/dist/{chunk-JQ4FUHXE.mjs → chunk-MXBPDNMC.mjs} +7 -7
- package/dist/{chunk-VYNVBJK6.mjs → chunk-NDG43KGL.mjs} +1 -1
- package/dist/chunk-O2XH4A3G.mjs +654 -0
- package/dist/{chunk-KDBYDMYV.mjs → chunk-OBCHURW5.mjs} +1 -1
- package/dist/{chunk-FZTAHWOS.mjs → chunk-OGI343OV.mjs} +2 -2
- package/dist/{chunk-XDAEEJYR.mjs → chunk-P23GR7NX.mjs} +2 -2
- package/dist/{chunk-J6L5BLKX.mjs → chunk-PGSPYQOW.mjs} +2 -2
- package/dist/{chunk-J7OETCZ7.mjs → chunk-QFQHD2V6.mjs} +19 -20
- package/dist/chunk-RGZQHSNJ.mjs +845 -0
- package/dist/{chunk-7XRKA6XF.mjs → chunk-RXACBTON.mjs} +5 -5
- package/dist/{chunk-A4QJAOZW.mjs → chunk-USLTNDJA.mjs} +7 -7
- package/dist/{chunk-FACIYUNK.mjs → chunk-VC7LTPQD.mjs} +2 -2
- package/dist/{chunk-CKTAVEW2.mjs → chunk-VIP7HSOU.mjs} +2 -2
- package/dist/{chunk-5MN6ZNFA.mjs → chunk-VUDJ3PYM.mjs} +9 -9
- package/dist/{chunk-2NCBX6XI.mjs → chunk-W2DMBW4E.mjs} +8 -8
- package/dist/{chunk-764YUN2J.mjs → chunk-XELWY7SO.mjs} +150 -49
- package/dist/chunk-ZDF7QP4G.mjs +160 -0
- package/dist/{chunk-4NK2FNAG.mjs → chunk-ZHKMDK5M.mjs} +244 -112
- package/dist/{chunk-C4OI72SM.mjs → chunk-ZVBVGWSP.mjs} +1 -0
- package/dist/chunk-ZYREURXK.mjs +470 -0
- package/dist/connect-button.js +767 -292
- package/dist/connect-button.mjs +8 -8
- package/dist/deposit-modal.d.mts +34 -0
- package/dist/deposit-modal.d.ts +34 -0
- package/dist/deposit-modal.js +2787 -0
- package/dist/deposit-modal.mjs +15 -0
- package/dist/event-list-item-details.js +271 -173
- package/dist/event-list-item-details.mjs +13 -13
- package/dist/event-list-item.js +903 -426
- package/dist/event-list-item.mjs +11 -11
- package/dist/event-list.js +1104 -517
- package/dist/event-list.mjs +14 -14
- package/dist/event-market-page.d.mts +1 -1
- package/dist/event-market-page.d.ts +1 -1
- package/dist/event-market-page.js +1505 -681
- package/dist/event-market-page.mjs +23 -23
- package/dist/hello-world.mjs +3 -3
- package/dist/home-page.d.mts +1 -1
- package/dist/home-page.d.ts +1 -1
- package/dist/home-page.js +1120 -533
- package/dist/home-page.mjs +15 -15
- package/dist/icon.d.mts +74 -4
- package/dist/icon.d.ts +74 -4
- package/dist/icon.js +668 -123
- package/dist/icon.mjs +32 -4
- package/dist/index.d.mts +15 -7
- package/dist/index.d.ts +15 -7
- package/dist/index.js +5301 -2147
- package/dist/index.mjs +80 -32
- package/dist/loading-icon.d.mts +1 -1
- package/dist/loading-icon.d.ts +1 -1
- package/dist/loading-icon.js +1 -0
- package/dist/loading-icon.mjs +3 -3
- package/dist/market-details.d.mts +2 -2
- package/dist/market-details.d.ts +2 -2
- package/dist/market-details.js +1097 -411
- package/dist/market-details.mjs +16 -16
- package/dist/modal.mjs +3 -3
- package/dist/number-value.mjs +2 -2
- package/dist/onboarding-modal.js +1249 -672
- package/dist/onboarding-modal.mjs +8 -8
- package/dist/place-order.d.mts +1 -1
- package/dist/place-order.d.ts +1 -1
- package/dist/place-order.js +1091 -506
- package/dist/place-order.mjs +12 -12
- package/dist/profile-modal.d.mts +66 -0
- package/dist/profile-modal.d.ts +66 -0
- package/dist/profile-modal.js +2429 -0
- package/dist/profile-modal.mjs +14 -0
- package/dist/{registry-CVn79H3I.d.mts → registry-DfSCFAdC.d.mts} +72 -0
- package/dist/{registry-CVn79H3I.d.ts → registry-DfSCFAdC.d.ts} +72 -0
- package/dist/search.d.mts +2 -2
- package/dist/search.d.ts +2 -2
- package/dist/search.js +740 -265
- package/dist/search.mjs +6 -6
- package/dist/select.d.mts +2 -0
- package/dist/select.d.ts +2 -0
- package/dist/select.js +814 -187
- package/dist/select.mjs +5 -5
- package/dist/settlement.d.mts +1 -1
- package/dist/settlement.d.ts +1 -1
- package/dist/settlement.js +891 -417
- package/dist/settlement.mjs +9 -9
- package/dist/skeleton.js +1 -1
- package/dist/skeleton.mjs +3 -3
- package/dist/styles.css +1 -1
- package/dist/switch-button.mjs +2 -2
- package/dist/tabs.js +854 -227
- package/dist/tabs.mjs +6 -6
- package/dist/tailwind.css +1 -1
- package/dist/types-Bed6Q0EK.d.mts +3 -0
- package/dist/types-Bed6Q0EK.d.ts +3 -0
- package/dist/typography.mjs +2 -2
- package/dist/user-profile-page.d.mts +133 -0
- package/dist/user-profile-page.d.ts +133 -0
- package/dist/user-profile-page.js +3335 -0
- package/dist/user-profile-page.mjs +15 -0
- package/dist/venue-logo.d.mts +2 -2
- package/dist/venue-logo.d.ts +2 -2
- package/dist/venue-logo.js +28 -70
- package/dist/venue-logo.mjs +2 -2
- package/dist/{venue-logo.types-Bg8eXtGp.d.ts → venue-logo.types-BSAuY84j.d.ts} +1 -1
- package/dist/{venue-logo.types-B1iPJgiD.d.mts → venue-logo.types-DACqcTvY.d.mts} +1 -1
- package/dist/withdraw-modal.d.mts +36 -0
- package/dist/withdraw-modal.d.ts +36 -0
- package/dist/withdraw-modal.js +2442 -0
- package/dist/withdraw-modal.mjs +14 -0
- package/package.json +43 -3
- package/dist/chunk-DA6KZWSK.mjs +0 -807
- package/dist/chunk-IY2AA3OL.mjs +0 -50
- package/dist/chunk-R3DRVI4J.mjs +0 -741
- package/dist/types-CayJ8tWA.d.mts +0 -3
- package/dist/types-CayJ8tWA.d.ts +0 -3
- package/dist/{types-C5JigCSX.d.mts → types-DkGlbmXq.d.mts} +2 -2
- package/dist/{types-C5JigCSX.d.ts → types-DkGlbmXq.d.ts} +2 -2
|
@@ -0,0 +1,470 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Modal
|
|
3
|
+
} from "./chunk-VIP7HSOU.mjs";
|
|
4
|
+
import {
|
|
5
|
+
VenueLogo,
|
|
6
|
+
venueLogoLabels
|
|
7
|
+
} from "./chunk-BLSHXIAH.mjs";
|
|
8
|
+
import {
|
|
9
|
+
BankIcon,
|
|
10
|
+
ChevronLeftIcon,
|
|
11
|
+
ChevronRightIcon,
|
|
12
|
+
ExternalLinkIcon,
|
|
13
|
+
WalletIcon
|
|
14
|
+
} from "./chunk-F236MLT6.mjs";
|
|
15
|
+
import {
|
|
16
|
+
Button
|
|
17
|
+
} from "./chunk-PGSPYQOW.mjs";
|
|
18
|
+
import {
|
|
19
|
+
cn,
|
|
20
|
+
formatAmountDisplay,
|
|
21
|
+
formatCompactUsd
|
|
22
|
+
} from "./chunk-GJ4U5NCE.mjs";
|
|
23
|
+
|
|
24
|
+
// src/withdraw/index.tsx
|
|
25
|
+
import { useState as useState2 } from "react";
|
|
26
|
+
|
|
27
|
+
// src/withdraw/withdraw-modal.constants.ts
|
|
28
|
+
var KALSHI_VENUE = "kalshi";
|
|
29
|
+
var KALSHI_WITHDRAW_URL_DEFAULT = "https://kalshi.com/account/withdraw";
|
|
30
|
+
|
|
31
|
+
// src/withdraw/steps/venue-selection.tsx
|
|
32
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
33
|
+
var VenueRow = ({ venue, onSelect }) => {
|
|
34
|
+
var _a, _b;
|
|
35
|
+
const displayName = (_a = venueLogoLabels[venue.venue]) != null ? _a : venue.venue;
|
|
36
|
+
const isDisabled = venue.disabled === true;
|
|
37
|
+
return /* @__PURE__ */ jsxs(
|
|
38
|
+
"div",
|
|
39
|
+
{
|
|
40
|
+
className: cn(
|
|
41
|
+
"flex items-center gap-3 sm:gap-4",
|
|
42
|
+
"rounded-xl border border-separator",
|
|
43
|
+
"p-3 sm:p-4",
|
|
44
|
+
"transition-colors",
|
|
45
|
+
isDisabled ? "opacity-50 cursor-not-allowed" : "hover:bg-secondary-hover cursor-pointer"
|
|
46
|
+
),
|
|
47
|
+
role: "button",
|
|
48
|
+
tabIndex: isDisabled ? -1 : 0,
|
|
49
|
+
"aria-disabled": isDisabled,
|
|
50
|
+
onClick: () => {
|
|
51
|
+
if (!isDisabled)
|
|
52
|
+
onSelect(venue.venue);
|
|
53
|
+
},
|
|
54
|
+
onKeyDown: (e) => {
|
|
55
|
+
if (!isDisabled && (e.key === "Enter" || e.key === " ")) {
|
|
56
|
+
e.preventDefault();
|
|
57
|
+
onSelect(venue.venue);
|
|
58
|
+
}
|
|
59
|
+
},
|
|
60
|
+
children: [
|
|
61
|
+
/* @__PURE__ */ jsx("div", { className: "shrink-0", children: /* @__PURE__ */ jsx(VenueLogo, { venue: venue.venue, size: "xl", className: "rounded-lg" }) }),
|
|
62
|
+
/* @__PURE__ */ jsxs("div", { className: "flex-1 min-w-0", children: [
|
|
63
|
+
/* @__PURE__ */ jsx("p", { className: "text-base font-bold text-foreground leading-6", children: displayName }),
|
|
64
|
+
/* @__PURE__ */ jsxs("p", { className: "text-sm text-muted-foreground leading-5", children: [
|
|
65
|
+
"Balance ",
|
|
66
|
+
formatCompactUsd(venue.balance)
|
|
67
|
+
] })
|
|
68
|
+
] }),
|
|
69
|
+
isDisabled ? /* @__PURE__ */ jsx("div", { className: "shrink-0", children: /* @__PURE__ */ jsx("span", { className: "text-sm text-muted-foreground", children: (_b = venue.disabledReason) != null ? _b : "Unavailable" }) }) : /* @__PURE__ */ jsx("div", { className: "shrink-0", children: /* @__PURE__ */ jsx(
|
|
70
|
+
Button,
|
|
71
|
+
{
|
|
72
|
+
variant: "secondary",
|
|
73
|
+
size: "s",
|
|
74
|
+
suffix: /* @__PURE__ */ jsx(ChevronRightIcon, {}),
|
|
75
|
+
onClick: (e) => {
|
|
76
|
+
e.stopPropagation();
|
|
77
|
+
onSelect(venue.venue);
|
|
78
|
+
},
|
|
79
|
+
children: "Select"
|
|
80
|
+
}
|
|
81
|
+
) })
|
|
82
|
+
]
|
|
83
|
+
}
|
|
84
|
+
);
|
|
85
|
+
};
|
|
86
|
+
var VenueSelectionStep = ({
|
|
87
|
+
venues,
|
|
88
|
+
onSelectVenue
|
|
89
|
+
}) => /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
90
|
+
/* @__PURE__ */ jsx(Modal.Header, { title: "Withdraw", hideBorder: true }),
|
|
91
|
+
/* @__PURE__ */ jsx(Modal.Body, { classNames: { root: "px-5 pt-0 pb-6 sm:px-8 sm:pt-0 sm:pb-8" }, children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-4", children: [
|
|
92
|
+
/* @__PURE__ */ jsx("p", { className: "text-base text-foreground leading-6", children: "Choose where to withdraw funds from:" }),
|
|
93
|
+
/* @__PURE__ */ jsx("div", { className: "flex flex-col gap-3", children: venues.map((venue) => /* @__PURE__ */ jsx(VenueRow, { venue, onSelect: onSelectVenue }, venue.venue)) })
|
|
94
|
+
] }) })
|
|
95
|
+
] });
|
|
96
|
+
|
|
97
|
+
// src/withdraw/steps/withdraw-method.tsx
|
|
98
|
+
import { Fragment as Fragment2, jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
99
|
+
var WithdrawMethodCard = ({
|
|
100
|
+
icon,
|
|
101
|
+
title,
|
|
102
|
+
description,
|
|
103
|
+
onContinue
|
|
104
|
+
}) => /* @__PURE__ */ jsxs2(
|
|
105
|
+
"div",
|
|
106
|
+
{
|
|
107
|
+
className: cn(
|
|
108
|
+
"flex items-center gap-3 sm:gap-4",
|
|
109
|
+
"rounded-xl border border-separator",
|
|
110
|
+
"p-3 sm:p-4",
|
|
111
|
+
"hover:bg-secondary-hover transition-colors cursor-pointer"
|
|
112
|
+
),
|
|
113
|
+
role: "button",
|
|
114
|
+
tabIndex: 0,
|
|
115
|
+
onClick: onContinue,
|
|
116
|
+
onKeyDown: (e) => {
|
|
117
|
+
if (e.key === "Enter" || e.key === " ") {
|
|
118
|
+
e.preventDefault();
|
|
119
|
+
onContinue();
|
|
120
|
+
}
|
|
121
|
+
},
|
|
122
|
+
children: [
|
|
123
|
+
/* @__PURE__ */ jsx2("div", { className: "shrink-0 flex items-center justify-center h-10 w-10 rounded-lg bg-secondary-hover", children: icon }),
|
|
124
|
+
/* @__PURE__ */ jsxs2("div", { className: "flex-1 min-w-0", children: [
|
|
125
|
+
/* @__PURE__ */ jsx2("p", { className: "text-base font-bold text-foreground leading-6", children: title }),
|
|
126
|
+
/* @__PURE__ */ jsx2("p", { className: "text-sm text-muted-foreground leading-5", children: description })
|
|
127
|
+
] }),
|
|
128
|
+
/* @__PURE__ */ jsx2("div", { className: "shrink-0", children: /* @__PURE__ */ jsx2(
|
|
129
|
+
Button,
|
|
130
|
+
{
|
|
131
|
+
variant: "secondary",
|
|
132
|
+
size: "s",
|
|
133
|
+
suffix: /* @__PURE__ */ jsx2(ChevronRightIcon, {}),
|
|
134
|
+
onClick: (e) => {
|
|
135
|
+
e.stopPropagation();
|
|
136
|
+
onContinue();
|
|
137
|
+
},
|
|
138
|
+
children: "Continue"
|
|
139
|
+
}
|
|
140
|
+
) })
|
|
141
|
+
]
|
|
142
|
+
}
|
|
143
|
+
);
|
|
144
|
+
var WithdrawMethodStep = ({
|
|
145
|
+
venue,
|
|
146
|
+
onBack,
|
|
147
|
+
onSelectMethod
|
|
148
|
+
}) => {
|
|
149
|
+
var _a;
|
|
150
|
+
const displayName = (_a = venueLogoLabels[venue.venue]) != null ? _a : venue.venue;
|
|
151
|
+
return /* @__PURE__ */ jsxs2(Fragment2, { children: [
|
|
152
|
+
/* @__PURE__ */ jsx2(
|
|
153
|
+
Modal.Header,
|
|
154
|
+
{
|
|
155
|
+
title: `Withdraw from ${displayName}`,
|
|
156
|
+
hideBorder: true,
|
|
157
|
+
leftElement: /* @__PURE__ */ jsx2(
|
|
158
|
+
"button",
|
|
159
|
+
{
|
|
160
|
+
type: "button",
|
|
161
|
+
className: "flex items-center justify-center text-foreground hover:text-foreground/80 transition-colors hover:cursor-pointer mr-2",
|
|
162
|
+
onClick: onBack,
|
|
163
|
+
"aria-label": "Go back",
|
|
164
|
+
children: /* @__PURE__ */ jsx2(ChevronLeftIcon, { className: "h-6 w-6" })
|
|
165
|
+
}
|
|
166
|
+
)
|
|
167
|
+
}
|
|
168
|
+
),
|
|
169
|
+
/* @__PURE__ */ jsx2(Modal.Body, { classNames: { root: "px-5 pt-0 pb-6 sm:px-8 sm:pt-0 sm:pb-8" }, children: /* @__PURE__ */ jsxs2("div", { className: "flex flex-col gap-4", children: [
|
|
170
|
+
/* @__PURE__ */ jsxs2("div", { className: "flex items-center gap-2", children: [
|
|
171
|
+
/* @__PURE__ */ jsx2(VenueLogo, { venue: venue.venue, size: "xs", className: "rounded-sm" }),
|
|
172
|
+
/* @__PURE__ */ jsxs2("p", { className: "text-sm text-muted-foreground leading-5", children: [
|
|
173
|
+
displayName,
|
|
174
|
+
" balance: ",
|
|
175
|
+
formatCompactUsd(venue.balance)
|
|
176
|
+
] })
|
|
177
|
+
] }),
|
|
178
|
+
/* @__PURE__ */ jsxs2("div", { className: "flex flex-col gap-3", children: [
|
|
179
|
+
/* @__PURE__ */ jsx2(
|
|
180
|
+
WithdrawMethodCard,
|
|
181
|
+
{
|
|
182
|
+
icon: /* @__PURE__ */ jsx2(WalletIcon, { className: "h-6 w-6 text-foreground" }),
|
|
183
|
+
title: "Withdraw to Wallet",
|
|
184
|
+
description: "Send funds to your crypto wallet as USDC.",
|
|
185
|
+
onContinue: () => onSelectMethod("wallet")
|
|
186
|
+
}
|
|
187
|
+
),
|
|
188
|
+
/* @__PURE__ */ jsx2(
|
|
189
|
+
WithdrawMethodCard,
|
|
190
|
+
{
|
|
191
|
+
icon: /* @__PURE__ */ jsx2(BankIcon, { className: "h-6 w-6 text-foreground" }),
|
|
192
|
+
title: "Withdraw to Bank",
|
|
193
|
+
description: "Transfer funds to your linked bank account.",
|
|
194
|
+
onContinue: () => onSelectMethod("bank")
|
|
195
|
+
}
|
|
196
|
+
)
|
|
197
|
+
] })
|
|
198
|
+
] }) })
|
|
199
|
+
] });
|
|
200
|
+
};
|
|
201
|
+
|
|
202
|
+
// src/withdraw/steps/withdraw-amount.tsx
|
|
203
|
+
import { useCallback, useState } from "react";
|
|
204
|
+
import { Fragment as Fragment3, jsx as jsx3, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
205
|
+
var WithdrawAmountStep = ({
|
|
206
|
+
venue,
|
|
207
|
+
method,
|
|
208
|
+
onBack,
|
|
209
|
+
onContinue
|
|
210
|
+
}) => {
|
|
211
|
+
var _a;
|
|
212
|
+
const [rawAmount, setRawAmount] = useState("");
|
|
213
|
+
const displayName = (_a = venueLogoLabels[venue.venue]) != null ? _a : venue.venue;
|
|
214
|
+
const numericAmount = Number(rawAmount) || 0;
|
|
215
|
+
const isValid = numericAmount > 0 && numericAmount <= venue.balance;
|
|
216
|
+
const exceedsBalance = numericAmount > venue.balance;
|
|
217
|
+
const methodLabel = method === "wallet" ? "Wallet" : "Bank";
|
|
218
|
+
const handleAmountChange = useCallback((e) => {
|
|
219
|
+
const v = e.target.value.replace(/[^0-9.]/g, "");
|
|
220
|
+
const parts = v.split(".");
|
|
221
|
+
const sanitized = parts.length > 2 ? `${parts[0]}.${parts.slice(1).join("")}` : v;
|
|
222
|
+
setRawAmount(sanitized);
|
|
223
|
+
}, []);
|
|
224
|
+
const handleMax = useCallback(() => {
|
|
225
|
+
setRawAmount(venue.balance.toString());
|
|
226
|
+
}, [venue.balance]);
|
|
227
|
+
return /* @__PURE__ */ jsxs3(Fragment3, { children: [
|
|
228
|
+
/* @__PURE__ */ jsx3(
|
|
229
|
+
Modal.Header,
|
|
230
|
+
{
|
|
231
|
+
title: `Withdraw to ${methodLabel}`,
|
|
232
|
+
hideBorder: true,
|
|
233
|
+
leftElement: /* @__PURE__ */ jsx3(
|
|
234
|
+
"button",
|
|
235
|
+
{
|
|
236
|
+
type: "button",
|
|
237
|
+
className: "flex items-center justify-center text-foreground hover:text-foreground/80 transition-colors hover:cursor-pointer mr-2",
|
|
238
|
+
onClick: onBack,
|
|
239
|
+
"aria-label": "Go back",
|
|
240
|
+
children: /* @__PURE__ */ jsx3(ChevronLeftIcon, { className: "h-6 w-6" })
|
|
241
|
+
}
|
|
242
|
+
)
|
|
243
|
+
}
|
|
244
|
+
),
|
|
245
|
+
/* @__PURE__ */ jsx3(Modal.Body, { classNames: { root: "px-5 pt-0 pb-6 sm:px-8 sm:pt-0 sm:pb-8" }, children: /* @__PURE__ */ jsxs3("div", { className: "flex flex-col gap-6", children: [
|
|
246
|
+
/* @__PURE__ */ jsxs3("div", { className: "flex items-center justify-between", children: [
|
|
247
|
+
/* @__PURE__ */ jsxs3("div", { className: "flex items-center gap-2", children: [
|
|
248
|
+
/* @__PURE__ */ jsx3(VenueLogo, { venue: venue.venue, size: "xs", className: "rounded-sm" }),
|
|
249
|
+
/* @__PURE__ */ jsxs3("p", { className: "text-sm text-muted-foreground leading-5", children: [
|
|
250
|
+
displayName,
|
|
251
|
+
" balance: ",
|
|
252
|
+
formatCompactUsd(venue.balance)
|
|
253
|
+
] })
|
|
254
|
+
] }),
|
|
255
|
+
/* @__PURE__ */ jsx3(
|
|
256
|
+
"button",
|
|
257
|
+
{
|
|
258
|
+
type: "button",
|
|
259
|
+
className: "text-sm font-bold text-primary hover:text-primary/80 transition-colors",
|
|
260
|
+
onClick: handleMax,
|
|
261
|
+
children: "Max"
|
|
262
|
+
}
|
|
263
|
+
)
|
|
264
|
+
] }),
|
|
265
|
+
/* @__PURE__ */ jsxs3("div", { className: "flex-1 min-w-0", children: [
|
|
266
|
+
/* @__PURE__ */ jsxs3("div", { className: "flex items-baseline", children: [
|
|
267
|
+
/* @__PURE__ */ jsx3("span", { className: "text-3xl sm:text-4xl font-bold text-foreground leading-none", children: "$" }),
|
|
268
|
+
/* @__PURE__ */ jsx3(
|
|
269
|
+
"input",
|
|
270
|
+
{
|
|
271
|
+
type: "text",
|
|
272
|
+
inputMode: "decimal",
|
|
273
|
+
"aria-label": "Amount",
|
|
274
|
+
className: cn(
|
|
275
|
+
"w-full bg-transparent text-3xl sm:text-4xl font-bold leading-none outline-none",
|
|
276
|
+
exceedsBalance ? "text-error" : numericAmount > 0 ? "text-foreground" : "text-muted-foreground"
|
|
277
|
+
),
|
|
278
|
+
placeholder: "0",
|
|
279
|
+
value: rawAmount ? formatAmountDisplay(rawAmount) : "",
|
|
280
|
+
onChange: handleAmountChange
|
|
281
|
+
}
|
|
282
|
+
)
|
|
283
|
+
] }),
|
|
284
|
+
exceedsBalance ? /* @__PURE__ */ jsx3("p", { className: "mt-2 text-sm text-error", children: "Amount exceeds available balance" }) : null
|
|
285
|
+
] }),
|
|
286
|
+
/* @__PURE__ */ jsx3(
|
|
287
|
+
Button,
|
|
288
|
+
{
|
|
289
|
+
variant: "primary",
|
|
290
|
+
size: "xl",
|
|
291
|
+
className: "w-full",
|
|
292
|
+
disabled: !isValid,
|
|
293
|
+
onClick: () => onContinue(numericAmount),
|
|
294
|
+
children: "Continue"
|
|
295
|
+
}
|
|
296
|
+
)
|
|
297
|
+
] }) })
|
|
298
|
+
] });
|
|
299
|
+
};
|
|
300
|
+
|
|
301
|
+
// src/withdraw/steps/kalshi-withdraw.tsx
|
|
302
|
+
import { Fragment as Fragment4, jsx as jsx4, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
303
|
+
var KalshiStepCard = ({
|
|
304
|
+
step,
|
|
305
|
+
title,
|
|
306
|
+
description,
|
|
307
|
+
children
|
|
308
|
+
}) => /* @__PURE__ */ jsxs4("div", { className: "flex flex-col gap-2 rounded-xl bg-secondary-hover p-4", children: [
|
|
309
|
+
/* @__PURE__ */ jsxs4("p", { className: "text-xs font-bold uppercase leading-4 text-muted-foreground", children: [
|
|
310
|
+
"Step ",
|
|
311
|
+
step
|
|
312
|
+
] }),
|
|
313
|
+
/* @__PURE__ */ jsxs4("div", { className: "flex flex-col gap-1", children: [
|
|
314
|
+
/* @__PURE__ */ jsx4("p", { className: "text-sm font-bold text-foreground leading-5", children: title }),
|
|
315
|
+
/* @__PURE__ */ jsx4("p", { className: "text-sm text-foreground leading-5", children: description })
|
|
316
|
+
] }),
|
|
317
|
+
children
|
|
318
|
+
] });
|
|
319
|
+
var KalshiWithdrawStep = ({
|
|
320
|
+
withdrawUrl,
|
|
321
|
+
onDone
|
|
322
|
+
}) => /* @__PURE__ */ jsxs4(Fragment4, { children: [
|
|
323
|
+
/* @__PURE__ */ jsx4(Modal.Header, { title: "", hideBorder: true }),
|
|
324
|
+
/* @__PURE__ */ jsx4(Modal.Body, { classNames: { root: "px-5 pt-0 pb-6 sm:px-8 sm:pt-0 sm:pb-8" }, children: /* @__PURE__ */ jsxs4("div", { className: "flex flex-col items-center gap-8", children: [
|
|
325
|
+
/* @__PURE__ */ jsx4(
|
|
326
|
+
VenueLogo,
|
|
327
|
+
{
|
|
328
|
+
venue: "kalshi",
|
|
329
|
+
size: "xl",
|
|
330
|
+
className: "h-[60px] w-[60px] rounded-lg"
|
|
331
|
+
}
|
|
332
|
+
),
|
|
333
|
+
/* @__PURE__ */ jsxs4("div", { className: "flex flex-col items-center gap-4 text-center", children: [
|
|
334
|
+
/* @__PURE__ */ jsx4("h2", { className: "text-2xl font-bold text-foreground leading-8", children: "Withdraw from Kalshi" }),
|
|
335
|
+
/* @__PURE__ */ jsx4("p", { className: "text-base text-foreground leading-6", children: "To withdraw from Kalshi you'll need to initiate the withdrawal from your Kalshi account directly on Kalshi's site." })
|
|
336
|
+
] }),
|
|
337
|
+
/* @__PURE__ */ jsxs4("div", { className: "flex w-full flex-col gap-4", children: [
|
|
338
|
+
/* @__PURE__ */ jsx4(
|
|
339
|
+
KalshiStepCard,
|
|
340
|
+
{
|
|
341
|
+
step: 1,
|
|
342
|
+
title: "Open Kalshi Withdraw Page",
|
|
343
|
+
description: "Sign in to your Kalshi account and go to Withdraw from your account menu.",
|
|
344
|
+
children: /* @__PURE__ */ jsx4("div", { className: "mt-1", children: /* @__PURE__ */ jsx4(
|
|
345
|
+
Button,
|
|
346
|
+
{
|
|
347
|
+
variant: "secondary",
|
|
348
|
+
size: "s",
|
|
349
|
+
suffix: /* @__PURE__ */ jsx4(ExternalLinkIcon, { className: "h-3.5 w-3.5" }),
|
|
350
|
+
onClick: () => {
|
|
351
|
+
window.open(withdrawUrl, "_blank", "noopener,noreferrer");
|
|
352
|
+
},
|
|
353
|
+
children: "Open Kalshi"
|
|
354
|
+
}
|
|
355
|
+
) })
|
|
356
|
+
}
|
|
357
|
+
),
|
|
358
|
+
/* @__PURE__ */ jsx4(
|
|
359
|
+
KalshiStepCard,
|
|
360
|
+
{
|
|
361
|
+
step: 2,
|
|
362
|
+
title: "Choose a Withdrawal Method",
|
|
363
|
+
description: "Select a withdrawal method: Bank transfer (ACH), Wire, or USDC (crypto)."
|
|
364
|
+
}
|
|
365
|
+
),
|
|
366
|
+
/* @__PURE__ */ jsx4(
|
|
367
|
+
KalshiStepCard,
|
|
368
|
+
{
|
|
369
|
+
step: 3,
|
|
370
|
+
title: "Complete Your Withdrawal",
|
|
371
|
+
description: "Follow the on-screen instructions to confirm your withdrawal. Funds may take a few business days to arrive."
|
|
372
|
+
}
|
|
373
|
+
)
|
|
374
|
+
] }),
|
|
375
|
+
/* @__PURE__ */ jsx4(Button, { variant: "secondary", size: "l", onClick: onDone, children: "Done" })
|
|
376
|
+
] }) })
|
|
377
|
+
] });
|
|
378
|
+
|
|
379
|
+
// src/withdraw/index.tsx
|
|
380
|
+
import { jsx as jsx5, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
381
|
+
var WithdrawModal = ({
|
|
382
|
+
open,
|
|
383
|
+
onOpenChange,
|
|
384
|
+
venues,
|
|
385
|
+
onSelectVenue,
|
|
386
|
+
onSelectWithdrawMethod,
|
|
387
|
+
onContinueWalletWithdraw,
|
|
388
|
+
onContinueBankWithdraw,
|
|
389
|
+
onDoneKalshi,
|
|
390
|
+
kalshiWithdrawUrl = KALSHI_WITHDRAW_URL_DEFAULT
|
|
391
|
+
}) => {
|
|
392
|
+
const [step, setStep] = useState2("venues");
|
|
393
|
+
const [selectedVenue, setSelectedVenue] = useState2(null);
|
|
394
|
+
const [selectedMethod, setSelectedMethod] = useState2(null);
|
|
395
|
+
const handleSelectVenue = (venueSlug) => {
|
|
396
|
+
onSelectVenue(venueSlug);
|
|
397
|
+
if (venueSlug === KALSHI_VENUE) {
|
|
398
|
+
setStep("kalshi");
|
|
399
|
+
return;
|
|
400
|
+
}
|
|
401
|
+
const venueData = venues.find((v) => v.venue === venueSlug);
|
|
402
|
+
if (venueData) {
|
|
403
|
+
setSelectedVenue(venueData);
|
|
404
|
+
setStep("method");
|
|
405
|
+
}
|
|
406
|
+
};
|
|
407
|
+
const handleBackToVenues = () => {
|
|
408
|
+
setStep("venues");
|
|
409
|
+
setSelectedVenue(null);
|
|
410
|
+
setSelectedMethod(null);
|
|
411
|
+
};
|
|
412
|
+
const handleBackToMethod = () => {
|
|
413
|
+
setStep("method");
|
|
414
|
+
setSelectedMethod(null);
|
|
415
|
+
};
|
|
416
|
+
const handleSelectMethod = (method) => {
|
|
417
|
+
if (!selectedVenue)
|
|
418
|
+
return;
|
|
419
|
+
setSelectedMethod(method);
|
|
420
|
+
setStep("withdraw-amount");
|
|
421
|
+
onSelectWithdrawMethod == null ? void 0 : onSelectWithdrawMethod(selectedVenue.venue, method);
|
|
422
|
+
};
|
|
423
|
+
const handleContinueWithdraw = (amount) => {
|
|
424
|
+
if (!selectedVenue || !selectedMethod)
|
|
425
|
+
return;
|
|
426
|
+
if (selectedMethod === "wallet") {
|
|
427
|
+
onContinueWalletWithdraw == null ? void 0 : onContinueWalletWithdraw(selectedVenue.venue, amount);
|
|
428
|
+
} else {
|
|
429
|
+
onContinueBankWithdraw == null ? void 0 : onContinueBankWithdraw(selectedVenue.venue, amount);
|
|
430
|
+
}
|
|
431
|
+
};
|
|
432
|
+
const handleDoneKalshi = () => {
|
|
433
|
+
onDoneKalshi == null ? void 0 : onDoneKalshi();
|
|
434
|
+
onOpenChange(false);
|
|
435
|
+
};
|
|
436
|
+
const handleOpenChange = (isOpen) => {
|
|
437
|
+
if (!isOpen) {
|
|
438
|
+
setStep("venues");
|
|
439
|
+
setSelectedVenue(null);
|
|
440
|
+
setSelectedMethod(null);
|
|
441
|
+
}
|
|
442
|
+
onOpenChange(isOpen);
|
|
443
|
+
};
|
|
444
|
+
return /* @__PURE__ */ jsx5(Modal, { open, onOpenChange: handleOpenChange, children: /* @__PURE__ */ jsxs5(Modal.Container, { maxWidth: "600px", "aria-label": "Withdraw", children: [
|
|
445
|
+
step === "venues" ? /* @__PURE__ */ jsx5(VenueSelectionStep, { venues, onSelectVenue: handleSelectVenue }) : null,
|
|
446
|
+
step === "method" && selectedVenue ? /* @__PURE__ */ jsx5(
|
|
447
|
+
WithdrawMethodStep,
|
|
448
|
+
{
|
|
449
|
+
venue: selectedVenue,
|
|
450
|
+
onBack: handleBackToVenues,
|
|
451
|
+
onSelectMethod: handleSelectMethod
|
|
452
|
+
}
|
|
453
|
+
) : null,
|
|
454
|
+
step === "withdraw-amount" && selectedVenue && selectedMethod ? /* @__PURE__ */ jsx5(
|
|
455
|
+
WithdrawAmountStep,
|
|
456
|
+
{
|
|
457
|
+
venue: selectedVenue,
|
|
458
|
+
method: selectedMethod,
|
|
459
|
+
onBack: handleBackToMethod,
|
|
460
|
+
onContinue: handleContinueWithdraw
|
|
461
|
+
}
|
|
462
|
+
) : null,
|
|
463
|
+
step === "kalshi" ? /* @__PURE__ */ jsx5(KalshiWithdrawStep, { withdrawUrl: kalshiWithdrawUrl, onDone: handleDoneKalshi }) : null
|
|
464
|
+
] }) });
|
|
465
|
+
};
|
|
466
|
+
WithdrawModal.displayName = "WithdrawModal";
|
|
467
|
+
|
|
468
|
+
export {
|
|
469
|
+
WithdrawModal
|
|
470
|
+
};
|