@cedros/pay-react 1.1.24 → 1.1.26

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 (174) hide show
  1. package/dist/{AISettingsSection-Dw0ZlxMf.mjs → AISettingsSection-BlIv3CzS.mjs} +2 -2
  2. package/dist/{AISettingsSection-IXS1Wt_1.js → AISettingsSection-DELur7D2.js} +1 -1
  3. package/dist/{AutosaveIndicator-BJsg_kFZ.mjs → AutosaveIndicator-Bed0-ekg.mjs} +1 -1
  4. package/dist/{AutosaveIndicator-CY_YHM1D.js → AutosaveIndicator-Dn_qA2hK.js} +1 -1
  5. package/dist/CedrosContext-C2RjHLaQ.js +6 -0
  6. package/dist/{CedrosContext-DQUbL8yP.mjs → CedrosContext-CY6zvjvJ.mjs} +768 -617
  7. package/dist/ChatLogsSection-BH5tLA4T.js +1 -0
  8. package/dist/ChatLogsSection-v4zwzCTC.mjs +201 -0
  9. package/dist/ComplianceSection-CemgfDrL.mjs +650 -0
  10. package/dist/ComplianceSection-DP2a9-S0.js +1 -0
  11. package/dist/{CryptoButton-D1BCZBk4.mjs → CryptoButton-BV9owVe2.mjs} +2 -2
  12. package/dist/{CryptoButton-C1AAOOfj.js → CryptoButton-DpiCnyXE.js} +1 -1
  13. package/dist/CustomersSection-CBwy_waO.js +1 -0
  14. package/dist/CustomersSection-D_j7OrfS.mjs +207 -0
  15. package/dist/DisputesSection-BLjIk60n.js +1 -0
  16. package/dist/DisputesSection-BcAbXp3K.mjs +230 -0
  17. package/dist/{FAQSection-C78MnK4k.mjs → FAQSection-Dn38OhB_.mjs} +1 -1
  18. package/dist/{FAQSection-BmgmzDN5.js → FAQSection-wNeH0i6Q.js} +1 -1
  19. package/dist/ImagesSection-0ZzKlzMJ.js +1 -0
  20. package/dist/ImagesSection-Ctw9Icym.mjs +216 -0
  21. package/dist/InventorySection-DmhjUlRZ.mjs +150 -0
  22. package/dist/InventorySection-zV6lTmue.js +1 -0
  23. package/dist/{MessagingSection-De3t8bSI.mjs → MessagingSection-B1FaGxkp.mjs} +2 -2
  24. package/dist/{MessagingSection-CWLZcg11.js → MessagingSection-B_wdFR0j.js} +1 -1
  25. package/dist/{OrdersSection-_xKVzjSZ.mjs → OrdersSection-Bj8bPdg8.mjs} +6 -6
  26. package/dist/{OrdersSection-BKOxsZw0.js → OrdersSection-Dw2FX-1d.js} +1 -1
  27. package/dist/{PaymentSettingsSection-BTEn9Dxb.js → PaymentSettingsSection-BYF4D-GR.js} +1 -1
  28. package/dist/{PaymentSettingsSection-KjU_dN_d.mjs → PaymentSettingsSection-EnMxeWjv.mjs} +1 -1
  29. package/dist/ReturnsSection-BC0L8r2e.mjs +267 -0
  30. package/dist/ReturnsSection-D_pJVxuG.js +1 -0
  31. package/dist/{SettingsSection-8QHZB59k.mjs → SettingsSection-KYdEizq_.mjs} +19 -13
  32. package/dist/SettingsSection-vdYFSNxB.js +1 -0
  33. package/dist/ShippingSection-1DRSTu49.js +1 -0
  34. package/dist/ShippingSection-BOgto6_9.mjs +434 -0
  35. package/dist/{SingleCategorySettings-CRXTMTo5.js → SingleCategorySettings-DwCnBdRf.js} +1 -1
  36. package/dist/{SingleCategorySettings--LK0TZW0.mjs → SingleCategorySettings-suJ8z9d8.mjs} +4 -4
  37. package/dist/{StorefrontSection-CeCpr8hn.mjs → StorefrontSection-BRvIGBEJ.mjs} +2 -2
  38. package/dist/{StorefrontSection-C9DzCmOf.js → StorefrontSection-RumGkb3C.js} +1 -1
  39. package/dist/{SubscriptionsSection-Dn5SY6S_.js → SubscriptionsSection-C2aLLn7L.js} +1 -1
  40. package/dist/{SubscriptionsSection-C2xk8ApF.mjs → SubscriptionsSection-D60qrX9a.mjs} +7 -7
  41. package/dist/TaxSection-C7-pv-Rl.mjs +294 -0
  42. package/dist/TaxSection-Dt1DnM51.js +1 -0
  43. package/dist/Token22Section-CrHLQ0EB.mjs +2260 -0
  44. package/dist/Token22Section-DY3mUwTY.js +1 -0
  45. package/dist/{WalletManager-Bwk3rgr1.js → WalletManager-B3UdQ5pQ.js} +1 -1
  46. package/dist/{WalletManager-CXvQ0Zu9.mjs → WalletManager-BIwH8Dw_.mjs} +1 -1
  47. package/dist/WebhooksSection-CKeiJ7Py.js +1 -0
  48. package/dist/WebhooksSection-COPW4Ec0.mjs +223 -0
  49. package/dist/{configApi-Ch0Rr7TD.mjs → configApi-6XhAJGKX.mjs} +31 -0
  50. package/dist/{configApi-CxEbCAgG.js → configApi-DkduMQg1.js} +1 -1
  51. package/dist/crypto-only.js +1 -1
  52. package/dist/crypto-only.mjs +85 -83
  53. package/dist/index-C0g-JxJk.js +84 -0
  54. package/dist/{index-BHF82XBB.mjs → index-DXnuQp5x.mjs} +8643 -7678
  55. package/dist/index.js +1 -1
  56. package/dist/index.mjs +42 -40
  57. package/dist/{sections-C1rb9YRh.mjs → sections-C1NpK7hk.mjs} +2 -2
  58. package/dist/{sections-8e5Y3ukY.js → sections-DVVSZBhW.js} +1 -1
  59. package/dist/src/admin/plugin.d.ts.map +1 -1
  60. package/dist/src/components/ComplianceGatePage.d.ts +40 -0
  61. package/dist/src/components/ComplianceGatePage.d.ts.map +1 -0
  62. package/dist/src/components/SubscribeButton.d.ts +1 -5
  63. package/dist/src/components/SubscribeButton.d.ts.map +1 -1
  64. package/dist/src/components/admin/AdminAuthManager.d.ts +7 -3
  65. package/dist/src/components/admin/AdminAuthManager.d.ts.map +1 -1
  66. package/dist/src/components/admin/AssetClassesTab.d.ts.map +1 -1
  67. package/dist/src/components/admin/CedrosPayAdminDashboard.d.ts +1 -1
  68. package/dist/src/components/admin/CedrosPayAdminDashboard.d.ts.map +1 -1
  69. package/dist/src/components/admin/ChatLogsSection.d.ts +3 -0
  70. package/dist/src/components/admin/ChatLogsSection.d.ts.map +1 -0
  71. package/dist/src/components/admin/ComplianceKycTab.d.ts +3 -0
  72. package/dist/src/components/admin/ComplianceKycTab.d.ts.map +1 -0
  73. package/dist/src/components/admin/ComplianceRequirementsEditor.d.ts +8 -0
  74. package/dist/src/components/admin/ComplianceRequirementsEditor.d.ts.map +1 -0
  75. package/dist/src/components/admin/ComplianceSanctionsApi.d.ts +3 -0
  76. package/dist/src/components/admin/ComplianceSanctionsApi.d.ts.map +1 -0
  77. package/dist/src/components/admin/ComplianceSection.d.ts +3 -0
  78. package/dist/src/components/admin/ComplianceSection.d.ts.map +1 -0
  79. package/dist/src/components/admin/CustomersSection.d.ts +3 -0
  80. package/dist/src/components/admin/CustomersSection.d.ts.map +1 -0
  81. package/dist/src/components/admin/DisputesSection.d.ts +3 -0
  82. package/dist/src/components/admin/DisputesSection.d.ts.map +1 -0
  83. package/dist/src/components/admin/GiftCardAnalytics.d.ts +3 -0
  84. package/dist/src/components/admin/GiftCardAnalytics.d.ts.map +1 -0
  85. package/dist/src/components/admin/GiftCardManager.d.ts +3 -0
  86. package/dist/src/components/admin/GiftCardManager.d.ts.map +1 -0
  87. package/dist/src/components/admin/ImagesSection.d.ts +3 -0
  88. package/dist/src/components/admin/ImagesSection.d.ts.map +1 -0
  89. package/dist/src/components/admin/InventorySection.d.ts +3 -0
  90. package/dist/src/components/admin/InventorySection.d.ts.map +1 -0
  91. package/dist/src/components/admin/LiquidityPoolTab.d.ts.map +1 -1
  92. package/dist/src/components/admin/NftMetadataPreview.d.ts +20 -0
  93. package/dist/src/components/admin/NftMetadataPreview.d.ts.map +1 -0
  94. package/dist/src/components/admin/PoolManagementView.d.ts +14 -0
  95. package/dist/src/components/admin/PoolManagementView.d.ts.map +1 -0
  96. package/dist/src/components/admin/ProductsSection.d.ts.map +1 -1
  97. package/dist/src/components/admin/RefundsSection.d.ts.map +1 -1
  98. package/dist/src/components/admin/ReturnsSection.d.ts +3 -0
  99. package/dist/src/components/admin/ReturnsSection.d.ts.map +1 -0
  100. package/dist/src/components/admin/SettingsSection.d.ts.map +1 -1
  101. package/dist/src/components/admin/ShippingSection.d.ts +3 -0
  102. package/dist/src/components/admin/ShippingSection.d.ts.map +1 -0
  103. package/dist/src/components/admin/TaxSection.d.ts +3 -0
  104. package/dist/src/components/admin/TaxSection.d.ts.map +1 -0
  105. package/dist/src/components/admin/Token22Section.d.ts.map +1 -1
  106. package/dist/src/components/admin/WebhooksSection.d.ts +3 -0
  107. package/dist/src/components/admin/WebhooksSection.d.ts.map +1 -0
  108. package/dist/src/components/admin/complianceTypes.d.ts +74 -0
  109. package/dist/src/components/admin/complianceTypes.d.ts.map +1 -0
  110. package/dist/src/components/admin/configApi.d.ts.map +1 -1
  111. package/dist/src/components/admin/icons.d.ts +1 -0
  112. package/dist/src/components/admin/icons.d.ts.map +1 -1
  113. package/dist/src/components/admin/useAdminAuth.d.ts +1 -1
  114. package/dist/src/components/admin/useAdminAuth.d.ts.map +1 -1
  115. package/dist/src/context/CedrosContext.d.ts.map +1 -1
  116. package/dist/src/ecommerce/adapters/CommerceAdapter.d.ts +36 -0
  117. package/dist/src/ecommerce/adapters/CommerceAdapter.d.ts.map +1 -1
  118. package/dist/src/ecommerce/adapters/paywall/paywallAdapter.d.ts.map +1 -1
  119. package/dist/src/ecommerce/components/catalog/TokenDisplay.d.ts +36 -0
  120. package/dist/src/ecommerce/components/catalog/TokenDisplay.d.ts.map +1 -0
  121. package/dist/src/ecommerce/components/chat/ShopChatPanel.d.ts +8 -5
  122. package/dist/src/ecommerce/components/chat/ShopChatPanel.d.ts.map +1 -1
  123. package/dist/src/ecommerce/components/checkout/CheckoutForm.d.ts.map +1 -1
  124. package/dist/src/ecommerce/components/checkout/SendAsGiftSection.d.ts +15 -0
  125. package/dist/src/ecommerce/components/checkout/SendAsGiftSection.d.ts.map +1 -0
  126. package/dist/src/ecommerce/components/gift-cards/GiftCardBalanceChecker.d.ts +19 -0
  127. package/dist/src/ecommerce/components/gift-cards/GiftCardBalanceChecker.d.ts.map +1 -0
  128. package/dist/src/ecommerce/components/orders/MyRedemptionsPage.d.ts +13 -0
  129. package/dist/src/ecommerce/components/orders/MyRedemptionsPage.d.ts.map +1 -0
  130. package/dist/src/ecommerce/components/orders/MyTokensPage.d.ts +15 -0
  131. package/dist/src/ecommerce/components/orders/MyTokensPage.d.ts.map +1 -0
  132. package/dist/src/ecommerce/components/orders/OrderDetails.d.ts.map +1 -1
  133. package/dist/src/ecommerce/hooks/useCartInventory.d.ts.map +1 -1
  134. package/dist/src/ecommerce/index.d.ts +12 -2
  135. package/dist/src/ecommerce/index.d.ts.map +1 -1
  136. package/dist/src/ecommerce/state/checkout/checkoutSchema.d.ts +3 -0
  137. package/dist/src/ecommerce/state/checkout/checkoutSchema.d.ts.map +1 -1
  138. package/dist/src/ecommerce/state/checkout/useCheckout.d.ts.map +1 -1
  139. package/dist/src/ecommerce/types.d.ts +6 -0
  140. package/dist/src/ecommerce/types.d.ts.map +1 -1
  141. package/dist/src/ecommerce/utils/cartItemMetadata.d.ts.map +1 -1
  142. package/dist/src/hooks/useComplianceCheck.d.ts +30 -0
  143. package/dist/src/hooks/useComplianceCheck.d.ts.map +1 -0
  144. package/dist/src/hooks/useSubscriptionManagement.d.ts.map +1 -1
  145. package/dist/src/index.d.ts +4 -0
  146. package/dist/src/index.d.ts.map +1 -1
  147. package/dist/src/managers/CreditsManager.d.ts.map +1 -1
  148. package/dist/src/managers/ManagerCache.d.ts +2 -2
  149. package/dist/src/managers/ManagerCache.d.ts.map +1 -1
  150. package/dist/src/managers/StripeManager.d.ts +7 -1
  151. package/dist/src/managers/StripeManager.d.ts.map +1 -1
  152. package/dist/src/managers/SubscriptionChangeManager.d.ts.map +1 -1
  153. package/dist/src/managers/SubscriptionManager.d.ts.map +1 -1
  154. package/dist/src/types/index.d.ts +14 -0
  155. package/dist/src/types/index.d.ts.map +1 -1
  156. package/dist/src/types/subscription.d.ts +21 -33
  157. package/dist/src/types/subscription.d.ts.map +1 -1
  158. package/dist/src/utils/exponentialBackoff.d.ts +22 -0
  159. package/dist/src/utils/exponentialBackoff.d.ts.map +1 -1
  160. package/dist/stripe-only.js +1 -1
  161. package/dist/stripe-only.mjs +2 -2
  162. package/dist/styles-BT4bhFey.js +1 -0
  163. package/dist/{styles-Ag-7ZvAB.mjs → styles-D4SQkuV3.mjs} +606 -609
  164. package/dist/testing/index.js +1 -1
  165. package/dist/testing/index.mjs +1 -1
  166. package/dist/{walletPool-C_0P4mTw.mjs → walletPool-DE-t1wSW.mjs} +1 -1
  167. package/dist/{walletPool-Ddv33tej.js → walletPool-IS7R3MR1.js} +1 -1
  168. package/package.json +1 -1
  169. package/dist/CedrosContext-7dwmEeUY.js +0 -6
  170. package/dist/SettingsSection-cKF0tLnS.js +0 -1
  171. package/dist/Token22Section-DUUl59dZ.js +0 -1
  172. package/dist/Token22Section-HygkDNtL.mjs +0 -1685
  173. package/dist/index-OaWkrl0G.js +0 -84
  174. package/dist/styles-21F1-oqx.js +0 -1
@@ -0,0 +1,650 @@
1
+ import { jsxs as n, jsx as e, Fragment as O } from "react/jsx-runtime";
2
+ import { useState as i, useCallback as L, useEffect as U } from "react";
3
+ import { I as $, k as E, E as me, j as Z } from "./index-DXnuQp5x.mjs";
4
+ import { i as v } from "./CedrosContext-CY6zvjvJ.mjs";
5
+ const b = (s) => s.length > 12 ? `${s.slice(0, 6)}...${s.slice(-4)}` : s, he = (s) => {
6
+ switch (s) {
7
+ case "active":
8
+ return "success";
9
+ case "frozen":
10
+ return "failed";
11
+ case "thawed":
12
+ return "pending";
13
+ default:
14
+ return "muted";
15
+ }
16
+ }, ee = (s) => {
17
+ switch (s) {
18
+ case "freeze":
19
+ return "failed";
20
+ case "thaw":
21
+ return "success";
22
+ case "sweep_freeze":
23
+ return "failed";
24
+ case "report_generated":
25
+ return "muted";
26
+ default:
27
+ return "muted";
28
+ }
29
+ }, ue = (s) => {
30
+ switch (s) {
31
+ case "verified":
32
+ return "success";
33
+ case "pending":
34
+ return "pending";
35
+ case "expired":
36
+ return "failed";
37
+ case "none":
38
+ default:
39
+ return "muted";
40
+ }
41
+ }, pe = "https://explorer.solana.com/tx/", fe = {
42
+ apiUrl: "",
43
+ refreshIntervalSecs: 3600,
44
+ enabled: !1
45
+ };
46
+ function ge({ serverUrl: s, apiKey: h, authManager: u }) {
47
+ const [c, l] = i(fe), [S, k] = i(!0), [p, g] = i(!1), [r, C] = i(!1), [A, _] = i(null), [T, y] = i(null), w = L(async (a, m) => {
48
+ if (u?.isAuthenticated())
49
+ return u.fetchWithAuth(a, m);
50
+ const N = { "Content-Type": "application/json" };
51
+ h && (N["X-API-Key"] = h);
52
+ const F = await fetch(`${s}${a}`, { ...m, headers: { ...N, ...m?.headers } });
53
+ if (!F.ok) throw new Error(`Request failed: ${F.status}`);
54
+ return F.json();
55
+ }, [s, h, u]);
56
+ U(() => {
57
+ (async () => {
58
+ try {
59
+ const a = await w("/admin/compliance/sanctions-api");
60
+ l(a);
61
+ } catch (a) {
62
+ v().error("[ComplianceSanctionsApi] Failed to fetch settings:", a);
63
+ } finally {
64
+ k(!1);
65
+ }
66
+ })();
67
+ }, [w]);
68
+ const z = async () => {
69
+ g(!0), _(null), y(null);
70
+ try {
71
+ await w("/admin/compliance/sanctions-api", {
72
+ method: "PUT",
73
+ body: JSON.stringify(c)
74
+ }), y("Settings saved");
75
+ } catch (a) {
76
+ v().error("[ComplianceSanctionsApi] Save failed:", a), _("Failed to save settings");
77
+ } finally {
78
+ g(!1);
79
+ }
80
+ }, d = async () => {
81
+ C(!0), _(null), y(null);
82
+ try {
83
+ await w("/admin/compliance/sanctions-api/refresh", { method: "POST" }), y("Sanctions list refreshed");
84
+ } catch (a) {
85
+ v().error("[ComplianceSanctionsApi] Refresh failed:", a), _("Failed to refresh sanctions list");
86
+ } finally {
87
+ C(!1);
88
+ }
89
+ };
90
+ return S ? /* @__PURE__ */ n("div", { className: "cedros-admin__loading", children: [
91
+ $.loading,
92
+ " Loading sanctions API settings..."
93
+ ] }) : /* @__PURE__ */ n("div", { style: { maxWidth: "500px", display: "flex", flexDirection: "column", gap: "1rem" }, children: [
94
+ /* @__PURE__ */ e("div", { className: "cedros-admin__section-header", children: /* @__PURE__ */ e("h3", { className: "cedros-admin__section-title", children: "Dynamic Sanctions API" }) }),
95
+ A && /* @__PURE__ */ e("div", { className: "cedros-admin__badge cedros-admin__badge--failed", style: { padding: "0.5rem" }, children: A }),
96
+ T && /* @__PURE__ */ e("div", { className: "cedros-admin__badge cedros-admin__badge--success", style: { padding: "0.5rem" }, children: T }),
97
+ /* @__PURE__ */ n("label", { style: { display: "flex", alignItems: "center", gap: "0.5rem", fontSize: "0.9rem" }, children: [
98
+ /* @__PURE__ */ e(
99
+ "input",
100
+ {
101
+ type: "checkbox",
102
+ checked: c.enabled,
103
+ onChange: (a) => l((m) => ({ ...m, enabled: a.target.checked }))
104
+ }
105
+ ),
106
+ "Enable dynamic sanctions list"
107
+ ] }),
108
+ /* @__PURE__ */ n("label", { style: { display: "flex", flexDirection: "column", gap: "0.25rem", fontSize: "0.85rem" }, children: [
109
+ "API URL",
110
+ /* @__PURE__ */ e(
111
+ "input",
112
+ {
113
+ type: "url",
114
+ className: "cedros-admin__input",
115
+ placeholder: "https://sunscreen.cedros.io",
116
+ value: c.apiUrl,
117
+ onChange: (a) => l((m) => ({ ...m, apiUrl: a.target.value }))
118
+ }
119
+ )
120
+ ] }),
121
+ /* @__PURE__ */ n("label", { style: { display: "flex", flexDirection: "column", gap: "0.25rem", fontSize: "0.85rem" }, children: [
122
+ "Refresh interval (seconds, min 60)",
123
+ /* @__PURE__ */ e(
124
+ "input",
125
+ {
126
+ type: "number",
127
+ className: "cedros-admin__input",
128
+ min: 60,
129
+ value: c.refreshIntervalSecs,
130
+ onChange: (a) => l((m) => ({ ...m, refreshIntervalSecs: Number(a.target.value) })),
131
+ style: { width: "160px" }
132
+ }
133
+ )
134
+ ] }),
135
+ /* @__PURE__ */ n("div", { style: { display: "flex", gap: "0.5rem" }, children: [
136
+ /* @__PURE__ */ e(
137
+ "button",
138
+ {
139
+ className: "cedros-admin__button cedros-admin__button--primary",
140
+ onClick: z,
141
+ disabled: p,
142
+ children: p ? "Saving..." : "Save Settings"
143
+ }
144
+ ),
145
+ /* @__PURE__ */ e(
146
+ "button",
147
+ {
148
+ className: "cedros-admin__button cedros-admin__button--ghost",
149
+ onClick: d,
150
+ disabled: r || !c.enabled || !c.apiUrl,
151
+ children: r ? "Refreshing..." : "Force Refresh"
152
+ }
153
+ )
154
+ ] })
155
+ ] });
156
+ }
157
+ function _e({ serverUrl: s, apiKey: h, authManager: u }) {
158
+ const [c, l] = i(""), [S, k] = i(!1), [p, g] = i(null), [r, C] = i(null), [A, _] = i(!1), T = L(async (d, a) => {
159
+ if (u?.isAuthenticated())
160
+ return u.fetchWithAuth(d, a);
161
+ const m = { "Content-Type": "application/json" };
162
+ h && (m["X-API-Key"] = h);
163
+ const N = await fetch(`${s}${d}`, { ...a, headers: { ...m, ...a?.headers } });
164
+ if (!N.ok) throw new Error(`Request failed: ${N.status}`);
165
+ return N.json();
166
+ }, [s, h, u]), y = async () => {
167
+ const d = c.trim();
168
+ if (d) {
169
+ k(!0), g(null), C(null), _(!0);
170
+ try {
171
+ const a = await T(
172
+ `/admin/compliance/user-status/${encodeURIComponent(d)}`
173
+ );
174
+ C(a);
175
+ } catch (a) {
176
+ v().error("[ComplianceKycTab] Lookup failed:", a), g("Failed to fetch user compliance status. Ensure cedros-login is configured.");
177
+ } finally {
178
+ k(!1);
179
+ }
180
+ }
181
+ }, w = (d) => {
182
+ d.key === "Enter" && y();
183
+ }, z = (d) => {
184
+ switch (d) {
185
+ case "verified":
186
+ return "Verified";
187
+ case "pending":
188
+ return "Pending";
189
+ case "expired":
190
+ return "Expired";
191
+ case "none":
192
+ default:
193
+ return "Not Started";
194
+ }
195
+ };
196
+ return /* @__PURE__ */ n("div", { children: [
197
+ /* @__PURE__ */ e("div", { className: "cedros-admin__section-header", children: /* @__PURE__ */ e("h3", { className: "cedros-admin__section-title", children: "KYC & Accredited Investor Status" }) }),
198
+ /* @__PURE__ */ e("p", { style: { fontSize: "0.85rem", color: "var(--cedros-admin-text-muted, #888)", marginBottom: "1rem" }, children: "Look up a user's KYC verification and accredited investor status from cedros-login." }),
199
+ /* @__PURE__ */ n("div", { style: { display: "flex", gap: "0.5rem", alignItems: "flex-end", marginBottom: "1.5rem", maxWidth: "500px" }, children: [
200
+ /* @__PURE__ */ n("label", { style: { flex: 1, display: "flex", flexDirection: "column", gap: "0.25rem", fontSize: "0.85rem" }, children: [
201
+ "User ID",
202
+ /* @__PURE__ */ e(
203
+ "input",
204
+ {
205
+ type: "text",
206
+ className: "cedros-admin__input",
207
+ placeholder: "user_abc123",
208
+ value: c,
209
+ onChange: (d) => l(d.target.value),
210
+ onKeyDown: w
211
+ }
212
+ )
213
+ ] }),
214
+ /* @__PURE__ */ e(
215
+ "button",
216
+ {
217
+ className: "cedros-admin__button cedros-admin__button--primary",
218
+ onClick: y,
219
+ disabled: S || !c.trim(),
220
+ children: S ? "Looking up..." : "Look Up"
221
+ }
222
+ )
223
+ ] }),
224
+ p && /* @__PURE__ */ e("div", { className: "cedros-admin__badge cedros-admin__badge--failed", style: { padding: "0.5rem", marginBottom: "1rem" }, children: p }),
225
+ S && /* @__PURE__ */ n("div", { className: "cedros-admin__loading", children: [
226
+ $.loading,
227
+ " Fetching compliance status..."
228
+ ] }),
229
+ r && !S && /* @__PURE__ */ n("div", { style: { maxWidth: "500px" }, children: [
230
+ /* @__PURE__ */ e("div", { className: "cedros-admin__table-container", children: /* @__PURE__ */ e("table", { className: "cedros-admin__table", children: /* @__PURE__ */ n("tbody", { children: [
231
+ /* @__PURE__ */ n("tr", { children: [
232
+ /* @__PURE__ */ e("td", { style: { fontWeight: 600, width: "40%" }, children: "User ID" }),
233
+ /* @__PURE__ */ e("td", { children: /* @__PURE__ */ e("code", { children: r.userId }) })
234
+ ] }),
235
+ /* @__PURE__ */ n("tr", { children: [
236
+ /* @__PURE__ */ e("td", { style: { fontWeight: 600 }, children: "KYC Status" }),
237
+ /* @__PURE__ */ e("td", { children: /* @__PURE__ */ e("span", { className: `cedros-admin__badge cedros-admin__badge--${ue(r.kycStatus)}`, children: z(r.kycStatus) }) })
238
+ ] }),
239
+ /* @__PURE__ */ n("tr", { children: [
240
+ /* @__PURE__ */ e("td", { style: { fontWeight: 600 }, children: "Accredited Investor" }),
241
+ /* @__PURE__ */ e("td", { children: /* @__PURE__ */ e("span", { className: `cedros-admin__badge cedros-admin__badge--${r.accreditedInvestor ? "success" : "muted"}`, children: r.accreditedInvestor ? "Yes" : "No" }) })
242
+ ] }),
243
+ r.accreditedVerifiedAt && /* @__PURE__ */ n("tr", { children: [
244
+ /* @__PURE__ */ e("td", { style: { fontWeight: 600 }, children: "Accredited Since" }),
245
+ /* @__PURE__ */ e("td", { children: E(r.accreditedVerifiedAt) })
246
+ ] })
247
+ ] }) }) }),
248
+ /* @__PURE__ */ e("div", { style: {
249
+ marginTop: "0.75rem",
250
+ padding: "0.75rem",
251
+ borderRadius: "4px",
252
+ fontSize: "0.85rem",
253
+ background: r.kycStatus === "verified" ? "var(--cedros-admin-bg-success, #f0fdf4)" : "var(--cedros-admin-bg-muted, #f5f5f5)",
254
+ color: "var(--cedros-admin-text, #333)"
255
+ }, children: r.kycStatus === "verified" && r.accreditedInvestor ? "This user is fully verified and accredited. They can access all compliance-gated products." : r.kycStatus === "verified" ? "This user has KYC verification but is not an accredited investor." : r.kycStatus === "pending" ? "This user has submitted KYC documents. Verification is in progress." : r.kycStatus === "expired" ? "This user's KYC verification has expired. They will need to re-verify." : "This user has not started KYC verification." })
256
+ ] }),
257
+ A && !r && !S && !p && /* @__PURE__ */ e("div", { className: "cedros-admin__empty", children: "No compliance record found for this user." })
258
+ ] });
259
+ }
260
+ function we({ serverUrl: s, apiKey: h, pageSize: u = 50, authManager: c }) {
261
+ const [l, S] = i("holders"), [k, p] = i(null), [g, r] = i([]), [C, A] = i(!0), [_, T] = i(""), [y, w] = i([]), [z, d] = i(!0), [a, m] = i(null), [N, F] = i(!1), [H, te] = i(""), [Y, ne] = i(""), [K, J] = i({ enabled: !0, batchSize: 100 }), [ae, ie] = i(!0), [G, V] = i(!1), [f, I] = i(null), [P, W] = i(""), [D, X] = i(!1), x = L(async (t, o) => {
262
+ if (c?.isAuthenticated())
263
+ return c.fetchWithAuth(t, o);
264
+ const R = { "Content-Type": "application/json" };
265
+ h && (R["X-API-Key"] = h);
266
+ const q = await fetch(`${s}${t}`, { ...o, headers: { ...R, ...o?.headers } });
267
+ if (!q.ok) throw new Error(`Request failed: ${q.status}`);
268
+ return q.json();
269
+ }, [s, h, c]), j = L(async () => {
270
+ try {
271
+ const t = _ ? `&status=${_}` : "", o = await x(
272
+ `/admin/compliance/holders?limit=${u}&offset=0${t}`
273
+ );
274
+ r(o.holders || []);
275
+ } catch (t) {
276
+ v().error("[ComplianceSection] Failed to fetch holders:", t), r([]), p("Failed to load token holders");
277
+ } finally {
278
+ A(!1);
279
+ }
280
+ }, [x, u, _]), B = L(async () => {
281
+ try {
282
+ const t = await x(
283
+ `/admin/compliance/actions?limit=${u}&offset=0`
284
+ );
285
+ w(t.actions || []);
286
+ } catch (t) {
287
+ v().error("[ComplianceSection] Failed to fetch actions:", t), w([]), p("Failed to load compliance actions");
288
+ } finally {
289
+ d(!1);
290
+ }
291
+ }, [x, u]), M = L(async () => {
292
+ try {
293
+ const t = await x("/admin/compliance/sweep-settings");
294
+ J(t);
295
+ } catch (t) {
296
+ v().error("[ComplianceSection] Failed to fetch sweep settings:", t);
297
+ } finally {
298
+ ie(!1);
299
+ }
300
+ }, [x]), se = async () => {
301
+ V(!0);
302
+ try {
303
+ await x("/admin/compliance/sweep-settings", {
304
+ method: "PUT",
305
+ body: JSON.stringify(K)
306
+ });
307
+ } catch (t) {
308
+ v().error("[ComplianceSection] Failed to save sweep settings:", t), p("Failed to save sweep settings");
309
+ } finally {
310
+ V(!1);
311
+ }
312
+ };
313
+ U(() => {
314
+ j();
315
+ }, [j]), U(() => {
316
+ B();
317
+ }, [B]), U(() => {
318
+ M();
319
+ }, [M]);
320
+ const re = async () => {
321
+ if (!(!f || !P.trim())) {
322
+ X(!0);
323
+ try {
324
+ const t = f.action === "freeze" ? "/admin/compliance/freeze" : "/admin/compliance/thaw";
325
+ await x(t, {
326
+ method: "POST",
327
+ body: JSON.stringify({ holderId: f.holder.id, reason: P })
328
+ }), I(null), W(""), await j(), await B();
329
+ } catch (t) {
330
+ v().error(`[ComplianceSection] ${f.action} failed:`, t), p(`Failed to ${f.action} holder`);
331
+ } finally {
332
+ X(!1);
333
+ }
334
+ }
335
+ }, ce = async () => {
336
+ F(!0);
337
+ try {
338
+ const t = new URLSearchParams();
339
+ H && t.set("from", new Date(H).toISOString()), Y && t.set("to", new Date(Y).toISOString());
340
+ const o = await x(
341
+ `/admin/compliance/report?${t.toString()}`
342
+ );
343
+ m(o.report);
344
+ } catch (t) {
345
+ v().error("[ComplianceSection] Failed to generate report:", t), p("Failed to generate compliance report");
346
+ } finally {
347
+ F(!1);
348
+ }
349
+ }, de = () => {
350
+ if (!a) return;
351
+ const t = new Blob([JSON.stringify(a, null, 2)], { type: "application/json" }), o = URL.createObjectURL(t), R = document.createElement("a");
352
+ R.href = o, R.download = `compliance-report-${(/* @__PURE__ */ new Date()).toISOString().slice(0, 10)}.json`, R.click(), URL.revokeObjectURL(o);
353
+ }, oe = g.length, Q = g.filter((t) => t.status === "frozen").length, le = g.filter((t) => t.status === "active").length;
354
+ return /* @__PURE__ */ n("div", { className: "cedros-admin__page", children: [
355
+ /* @__PURE__ */ e(me, { message: k, onRetry: () => {
356
+ j(), B();
357
+ } }),
358
+ /* @__PURE__ */ e(
359
+ Z,
360
+ {
361
+ stats: [
362
+ { label: "Total Holders", value: oe },
363
+ { label: "Active", value: le, variant: "success" },
364
+ { label: "Frozen", value: Q, variant: Q > 0 ? "warning" : "muted" },
365
+ { label: "Actions Logged", value: y.length }
366
+ ],
367
+ isLoading: C || z
368
+ }
369
+ ),
370
+ /* @__PURE__ */ e("div", { className: "cedros-admin__tabs", style: { display: "flex", gap: "0.5rem", marginBottom: "1rem" }, children: ["holders", "actions", "reports", "sweep-settings", "sanctions-api", "kyc"].map((t) => /* @__PURE__ */ e(
371
+ "button",
372
+ {
373
+ type: "button",
374
+ className: `cedros-admin__button ${l === t ? "cedros-admin__button--primary" : "cedros-admin__button--ghost"}`,
375
+ onClick: () => S(t),
376
+ children: t === "holders" ? "Token Holders" : t === "actions" ? "Actions Log" : t === "reports" ? "Reports" : t === "sweep-settings" ? "Sweep Settings" : t === "sanctions-api" ? "Sanctions API" : "KYC & Accreditation"
377
+ },
378
+ t
379
+ )) }),
380
+ l === "holders" && /* @__PURE__ */ n(O, { children: [
381
+ /* @__PURE__ */ n("div", { className: "cedros-admin__section-header", style: { display: "flex", alignItems: "center", gap: "0.75rem" }, children: [
382
+ /* @__PURE__ */ e("h3", { className: "cedros-admin__section-title", children: "Token Holders" }),
383
+ /* @__PURE__ */ n(
384
+ "select",
385
+ {
386
+ value: _,
387
+ onChange: (t) => {
388
+ T(t.target.value), A(!0);
389
+ },
390
+ className: "cedros-admin__input",
391
+ style: { width: "auto", padding: "0.25rem 0.5rem", fontSize: "0.85rem" },
392
+ children: [
393
+ /* @__PURE__ */ e("option", { value: "", children: "All statuses" }),
394
+ /* @__PURE__ */ e("option", { value: "active", children: "Active" }),
395
+ /* @__PURE__ */ e("option", { value: "frozen", children: "Frozen" }),
396
+ /* @__PURE__ */ e("option", { value: "thawed", children: "Thawed" })
397
+ ]
398
+ }
399
+ )
400
+ ] }),
401
+ C ? /* @__PURE__ */ n("div", { className: "cedros-admin__loading", children: [
402
+ $.loading,
403
+ " Loading holders..."
404
+ ] }) : g.length === 0 ? /* @__PURE__ */ e("div", { className: "cedros-admin__empty", children: "No token holders found." }) : /* @__PURE__ */ e("div", { className: "cedros-admin__table-container", children: /* @__PURE__ */ n("table", { className: "cedros-admin__table", children: [
405
+ /* @__PURE__ */ e("thead", { children: /* @__PURE__ */ n("tr", { children: [
406
+ /* @__PURE__ */ e("th", { children: "Wallet" }),
407
+ /* @__PURE__ */ e("th", { children: "Collection" }),
408
+ /* @__PURE__ */ e("th", { children: "Mint" }),
409
+ /* @__PURE__ */ e("th", { children: "Amount" }),
410
+ /* @__PURE__ */ e("th", { children: "Status" }),
411
+ /* @__PURE__ */ e("th", { children: "Created" }),
412
+ /* @__PURE__ */ e("th", { children: "Actions" })
413
+ ] }) }),
414
+ /* @__PURE__ */ e("tbody", { children: g.map((t) => /* @__PURE__ */ n("tr", { children: [
415
+ /* @__PURE__ */ e("td", { children: /* @__PURE__ */ e("code", { title: t.walletAddress, children: b(t.walletAddress) }) }),
416
+ /* @__PURE__ */ e("td", { children: /* @__PURE__ */ e("code", { title: t.collectionId, children: b(t.collectionId) }) }),
417
+ /* @__PURE__ */ e("td", { children: /* @__PURE__ */ e("code", { title: t.mintAddress, children: b(t.mintAddress) }) }),
418
+ /* @__PURE__ */ e("td", { children: t.amountMinted }),
419
+ /* @__PURE__ */ e("td", { children: /* @__PURE__ */ e("span", { className: `cedros-admin__badge cedros-admin__badge--${he(t.status)}`, children: t.status }) }),
420
+ /* @__PURE__ */ e("td", { children: E(t.createdAt) }),
421
+ /* @__PURE__ */ e("td", { children: t.status === "active" || t.status === "thawed" ? /* @__PURE__ */ e(
422
+ "button",
423
+ {
424
+ className: "cedros-admin__button cedros-admin__button--danger cedros-admin__button--sm",
425
+ onClick: () => {
426
+ I({ holder: t, action: "freeze" }), W("");
427
+ },
428
+ children: "Freeze"
429
+ }
430
+ ) : t.status === "frozen" ? /* @__PURE__ */ e(
431
+ "button",
432
+ {
433
+ className: "cedros-admin__button cedros-admin__button--primary cedros-admin__button--sm",
434
+ onClick: () => {
435
+ I({ holder: t, action: "thaw" }), W("");
436
+ },
437
+ children: "Thaw"
438
+ }
439
+ ) : null })
440
+ ] }, t.id)) })
441
+ ] }) })
442
+ ] }),
443
+ l === "actions" && /* @__PURE__ */ n(O, { children: [
444
+ /* @__PURE__ */ e("div", { className: "cedros-admin__section-header", children: /* @__PURE__ */ e("h3", { className: "cedros-admin__section-title", children: "Compliance Actions" }) }),
445
+ z ? /* @__PURE__ */ n("div", { className: "cedros-admin__loading", children: [
446
+ $.loading,
447
+ " Loading actions..."
448
+ ] }) : y.length === 0 ? /* @__PURE__ */ e("div", { className: "cedros-admin__empty", children: "No compliance actions recorded." }) : /* @__PURE__ */ e("div", { className: "cedros-admin__table-container", children: /* @__PURE__ */ n("table", { className: "cedros-admin__table", children: [
449
+ /* @__PURE__ */ e("thead", { children: /* @__PURE__ */ n("tr", { children: [
450
+ /* @__PURE__ */ e("th", { children: "Timestamp" }),
451
+ /* @__PURE__ */ e("th", { children: "Type" }),
452
+ /* @__PURE__ */ e("th", { children: "Wallet" }),
453
+ /* @__PURE__ */ e("th", { children: "Reason" }),
454
+ /* @__PURE__ */ e("th", { children: "Actor" }),
455
+ /* @__PURE__ */ e("th", { children: "Tx Signature" })
456
+ ] }) }),
457
+ /* @__PURE__ */ e("tbody", { children: y.map((t) => /* @__PURE__ */ n("tr", { children: [
458
+ /* @__PURE__ */ e("td", { children: E(t.createdAt) }),
459
+ /* @__PURE__ */ e("td", { children: /* @__PURE__ */ e("span", { className: `cedros-admin__badge cedros-admin__badge--${ee(t.actionType)}`, children: t.actionType }) }),
460
+ /* @__PURE__ */ e("td", { children: /* @__PURE__ */ e("code", { title: t.walletAddress, children: b(t.walletAddress) }) }),
461
+ /* @__PURE__ */ e("td", { children: t.reason || "—" }),
462
+ /* @__PURE__ */ e("td", { children: /* @__PURE__ */ e("code", { children: b(t.actor) }) }),
463
+ /* @__PURE__ */ e("td", { children: t.txSignature ? /* @__PURE__ */ e(
464
+ "a",
465
+ {
466
+ href: `${pe}${t.txSignature}`,
467
+ target: "_blank",
468
+ rel: "noopener noreferrer",
469
+ className: "cedros-admin__link",
470
+ children: b(t.txSignature)
471
+ }
472
+ ) : "—" })
473
+ ] }, t.id)) })
474
+ ] }) })
475
+ ] }),
476
+ l === "reports" && /* @__PURE__ */ n(O, { children: [
477
+ /* @__PURE__ */ e("div", { className: "cedros-admin__section-header", children: /* @__PURE__ */ e("h3", { className: "cedros-admin__section-title", children: "Compliance Report" }) }),
478
+ /* @__PURE__ */ n("div", { style: { display: "flex", gap: "0.75rem", alignItems: "flex-end", marginBottom: "1rem" }, children: [
479
+ /* @__PURE__ */ n("label", { style: { display: "flex", flexDirection: "column", gap: "0.25rem", fontSize: "0.85rem" }, children: [
480
+ "From",
481
+ /* @__PURE__ */ e("input", { type: "date", className: "cedros-admin__input", value: H, onChange: (t) => te(t.target.value) })
482
+ ] }),
483
+ /* @__PURE__ */ n("label", { style: { display: "flex", flexDirection: "column", gap: "0.25rem", fontSize: "0.85rem" }, children: [
484
+ "To",
485
+ /* @__PURE__ */ e("input", { type: "date", className: "cedros-admin__input", value: Y, onChange: (t) => ne(t.target.value) })
486
+ ] }),
487
+ /* @__PURE__ */ e(
488
+ "button",
489
+ {
490
+ className: "cedros-admin__button cedros-admin__button--primary",
491
+ onClick: ce,
492
+ disabled: N,
493
+ children: N ? "Generating..." : "Generate Report"
494
+ }
495
+ )
496
+ ] }),
497
+ a && /* @__PURE__ */ n("div", { children: [
498
+ /* @__PURE__ */ e(
499
+ Z,
500
+ {
501
+ stats: [
502
+ { label: "Total Holders", value: a.totalHolders },
503
+ { label: "Frozen", value: a.totalFrozen, variant: a.totalFrozen > 0 ? "warning" : "muted" },
504
+ { label: "Freezes", value: a.freezeCount },
505
+ { label: "Thaws", value: a.thawCount },
506
+ { label: "Sweep Freezes", value: a.sweepFreezeCount, variant: a.sweepFreezeCount > 0 ? "warning" : "muted" }
507
+ ],
508
+ isLoading: !1
509
+ }
510
+ ),
511
+ /* @__PURE__ */ n("div", { style: { display: "flex", justifyContent: "space-between", alignItems: "center", margin: "1rem 0 0.5rem" }, children: [
512
+ /* @__PURE__ */ n("span", { style: { fontSize: "0.85rem", color: "var(--cedros-admin-text-muted, #888)" }, children: [
513
+ "Generated ",
514
+ E(a.generatedAt),
515
+ " · ",
516
+ a.actionsInPeriod,
517
+ " actions in period"
518
+ ] }),
519
+ /* @__PURE__ */ e("button", { className: "cedros-admin__button cedros-admin__button--ghost", onClick: de, children: "Download JSON" })
520
+ ] }),
521
+ a.actions.length > 0 && /* @__PURE__ */ e("div", { className: "cedros-admin__table-container", children: /* @__PURE__ */ n("table", { className: "cedros-admin__table", children: [
522
+ /* @__PURE__ */ e("thead", { children: /* @__PURE__ */ n("tr", { children: [
523
+ /* @__PURE__ */ e("th", { children: "Timestamp" }),
524
+ /* @__PURE__ */ e("th", { children: "Type" }),
525
+ /* @__PURE__ */ e("th", { children: "Wallet" }),
526
+ /* @__PURE__ */ e("th", { children: "Reason" }),
527
+ /* @__PURE__ */ e("th", { children: "Actor" })
528
+ ] }) }),
529
+ /* @__PURE__ */ e("tbody", { children: a.actions.map((t) => /* @__PURE__ */ n("tr", { children: [
530
+ /* @__PURE__ */ e("td", { children: E(t.createdAt) }),
531
+ /* @__PURE__ */ e("td", { children: /* @__PURE__ */ e("span", { className: `cedros-admin__badge cedros-admin__badge--${ee(t.actionType)}`, children: t.actionType }) }),
532
+ /* @__PURE__ */ e("td", { children: /* @__PURE__ */ e("code", { title: t.walletAddress, children: b(t.walletAddress) }) }),
533
+ /* @__PURE__ */ e("td", { children: t.reason || "—" }),
534
+ /* @__PURE__ */ e("td", { children: /* @__PURE__ */ e("code", { children: b(t.actor) }) })
535
+ ] }, t.id)) })
536
+ ] }) })
537
+ ] })
538
+ ] }),
539
+ l === "sweep-settings" && /* @__PURE__ */ n(O, { children: [
540
+ /* @__PURE__ */ e("div", { className: "cedros-admin__section-header", children: /* @__PURE__ */ e("h3", { className: "cedros-admin__section-title", children: "Sanctions Sweep Settings" }) }),
541
+ ae ? /* @__PURE__ */ n("div", { className: "cedros-admin__loading", children: [
542
+ $.loading,
543
+ " Loading settings..."
544
+ ] }) : /* @__PURE__ */ n("div", { style: { maxWidth: "400px", display: "flex", flexDirection: "column", gap: "1rem" }, children: [
545
+ /* @__PURE__ */ n("label", { style: { display: "flex", alignItems: "center", gap: "0.5rem", fontSize: "0.9rem" }, children: [
546
+ /* @__PURE__ */ e(
547
+ "input",
548
+ {
549
+ type: "checkbox",
550
+ checked: K.enabled,
551
+ onChange: (t) => J((o) => ({ ...o, enabled: t.target.checked }))
552
+ }
553
+ ),
554
+ "Enable automated sanctions sweep"
555
+ ] }),
556
+ /* @__PURE__ */ n("label", { style: { display: "flex", flexDirection: "column", gap: "0.25rem", fontSize: "0.85rem" }, children: [
557
+ "Batch size (1 – 10,000)",
558
+ /* @__PURE__ */ e(
559
+ "input",
560
+ {
561
+ type: "number",
562
+ className: "cedros-admin__input",
563
+ min: 1,
564
+ max: 1e4,
565
+ value: K.batchSize,
566
+ onChange: (t) => J((o) => ({ ...o, batchSize: Number(t.target.value) })),
567
+ style: { width: "160px" }
568
+ }
569
+ )
570
+ ] }),
571
+ /* @__PURE__ */ e(
572
+ "button",
573
+ {
574
+ className: "cedros-admin__button cedros-admin__button--primary",
575
+ onClick: se,
576
+ disabled: G,
577
+ style: { alignSelf: "flex-start" },
578
+ children: G ? "Saving..." : "Save Settings"
579
+ }
580
+ )
581
+ ] })
582
+ ] }),
583
+ l === "sanctions-api" && /* @__PURE__ */ e(ge, { serverUrl: s, apiKey: h, authManager: c }),
584
+ l === "kyc" && /* @__PURE__ */ e(_e, { serverUrl: s, apiKey: h, authManager: c }),
585
+ f && /* @__PURE__ */ e("div", { className: "cedros-admin__modal-overlay", onClick: () => !D && I(null), children: /* @__PURE__ */ n("div", { className: "cedros-admin__modal", onClick: (t) => t.stopPropagation(), children: [
586
+ /* @__PURE__ */ n("div", { className: "cedros-admin__modal-header", children: [
587
+ /* @__PURE__ */ n("h4", { className: "cedros-admin__modal-title", children: [
588
+ f.action === "freeze" ? "Freeze" : "Thaw",
589
+ " Token Account"
590
+ ] }),
591
+ /* @__PURE__ */ e(
592
+ "button",
593
+ {
594
+ type: "button",
595
+ className: "cedros-admin__modal-close",
596
+ onClick: () => !D && I(null),
597
+ children: $.close
598
+ }
599
+ )
600
+ ] }),
601
+ /* @__PURE__ */ n("div", { className: "cedros-admin__modal-body", children: [
602
+ /* @__PURE__ */ n("p", { style: { marginBottom: "0.5rem", fontSize: "0.9rem" }, children: [
603
+ "Wallet: ",
604
+ /* @__PURE__ */ e("code", { children: b(f.holder.walletAddress) })
605
+ ] }),
606
+ /* @__PURE__ */ n("p", { style: { marginBottom: "0.75rem", fontSize: "0.9rem" }, children: [
607
+ "Mint: ",
608
+ /* @__PURE__ */ e("code", { children: b(f.holder.mintAddress) })
609
+ ] }),
610
+ /* @__PURE__ */ n("label", { style: { display: "flex", flexDirection: "column", gap: "0.25rem", fontSize: "0.85rem" }, children: [
611
+ "Reason (required)",
612
+ /* @__PURE__ */ e(
613
+ "textarea",
614
+ {
615
+ className: "cedros-admin__input",
616
+ rows: 3,
617
+ value: P,
618
+ onChange: (t) => W(t.target.value),
619
+ placeholder: `Reason for ${f.action}...`,
620
+ maxLength: 1024
621
+ }
622
+ )
623
+ ] })
624
+ ] }),
625
+ /* @__PURE__ */ n("div", { className: "cedros-admin__modal-footer", children: [
626
+ /* @__PURE__ */ e(
627
+ "button",
628
+ {
629
+ className: "cedros-admin__button cedros-admin__button--ghost",
630
+ onClick: () => I(null),
631
+ disabled: D,
632
+ children: "Cancel"
633
+ }
634
+ ),
635
+ /* @__PURE__ */ e(
636
+ "button",
637
+ {
638
+ className: `cedros-admin__button ${f.action === "freeze" ? "cedros-admin__button--danger" : "cedros-admin__button--primary"}`,
639
+ onClick: re,
640
+ disabled: D || !P.trim(),
641
+ children: D ? "Processing..." : f.action === "freeze" ? "Freeze Account" : "Thaw Account"
642
+ }
643
+ )
644
+ ] })
645
+ ] }) })
646
+ ] });
647
+ }
648
+ export {
649
+ we as ComplianceSection
650
+ };