@djangocfg/ext-payments 1.0.8 → 1.0.10

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/hooks.cjs CHANGED
@@ -5,13 +5,14 @@ var pRetry = require('p-retry');
5
5
  var zod = require('zod');
6
6
  var api = require('@djangocfg/ext-base/api');
7
7
  var lucideReact = require('lucide-react');
8
- var uiNextjs = require('@djangocfg/ui-nextjs');
8
+ var uiCore = require('@djangocfg/ui-core');
9
9
  var react = require('react');
10
10
  var useSWR = require('swr');
11
11
  var jsxRuntime = require('react/jsx-runtime');
12
12
  var reactHookForm = require('react-hook-form');
13
13
  var zod$1 = require('@hookform/resolvers/zod');
14
14
  var moment = require('moment');
15
+ var components = require('@djangocfg/ui-nextjs/components');
15
16
  var extBase = require('@djangocfg/ext-base');
16
17
 
17
18
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
@@ -128,7 +129,7 @@ var models_exports = {};
128
129
  // src/api/generated/ext_payments/http.ts
129
130
  var FetchAdapter = class {
130
131
  async request(request) {
131
- const { method, url, headers, body, params, formData } = request;
132
+ const { method, url, headers, body, params, formData, binaryBody } = request;
132
133
  let finalUrl = url;
133
134
  if (params) {
134
135
  const searchParams = new URLSearchParams();
@@ -146,6 +147,9 @@ var FetchAdapter = class {
146
147
  let requestBody;
147
148
  if (formData) {
148
149
  requestBody = formData;
150
+ } else if (binaryBody) {
151
+ finalHeaders["Content-Type"] = "application/octet-stream";
152
+ requestBody = binaryBody;
149
153
  } else if (body) {
150
154
  finalHeaders["Content-Type"] = "application/json";
151
155
  requestBody = JSON.stringify(body);
@@ -470,11 +474,13 @@ var APIClient = class {
470
474
  httpClient;
471
475
  logger = null;
472
476
  retryConfig = null;
477
+ tokenGetter = null;
473
478
  // Sub-clients
474
479
  ext_payments_payments;
475
480
  constructor(baseUrl, options) {
476
481
  this.baseUrl = baseUrl.replace(/\/$/, "");
477
482
  this.httpClient = options?.httpClient || new FetchAdapter();
483
+ this.tokenGetter = options?.tokenGetter || null;
478
484
  if (options?.loggerConfig !== void 0) {
479
485
  this.logger = new APILogger(options.loggerConfig);
480
486
  }
@@ -497,6 +503,19 @@ var APIClient = class {
497
503
  }
498
504
  return null;
499
505
  }
506
+ /**
507
+ * Get the base URL for building streaming/download URLs.
508
+ */
509
+ getBaseUrl() {
510
+ return this.baseUrl;
511
+ }
512
+ /**
513
+ * Get JWT token for URL authentication (used in streaming endpoints).
514
+ * Returns null if no token getter is configured or no token is available.
515
+ */
516
+ getToken() {
517
+ return this.tokenGetter ? this.tokenGetter() : null;
518
+ }
500
519
  /**
501
520
  * Make HTTP request with Django CSRF and session handling.
502
521
  * Automatically retries on network errors and 5xx server errors.
@@ -527,7 +546,7 @@ var APIClient = class {
527
546
  const headers = {
528
547
  ...options?.headers || {}
529
548
  };
530
- if (!options?.formData && !headers["Content-Type"]) {
549
+ if (!options?.formData && !options?.binaryBody && !headers["Content-Type"]) {
531
550
  headers["Content-Type"] = "application/json";
532
551
  }
533
552
  if (this.logger) {
@@ -546,7 +565,8 @@ var APIClient = class {
546
565
  headers,
547
566
  params: options?.params,
548
567
  body: options?.body,
549
- formData: options?.formData
568
+ formData: options?.formData,
569
+ binaryBody: options?.binaryBody
550
570
  });
551
571
  const duration = Date.now() - startTime;
552
572
  if (response.status >= 400) {
@@ -882,7 +902,7 @@ var PaymentDetailSchema = zod.z.object({
882
902
  status_display: zod.z.string(),
883
903
  pay_address: zod.z.string().nullable(),
884
904
  qr_code_url: zod.z.string().nullable(),
885
- payment_url: zod.z.url().nullable(),
905
+ payment_url: zod.z.union([zod.z.url(), zod.z.literal("")]).nullable(),
886
906
  transaction_hash: zod.z.string().nullable(),
887
907
  explorer_link: zod.z.string().nullable(),
888
908
  confirmations_count: zod.z.int(),
@@ -967,15 +987,28 @@ __export(fetchers_exports, {
967
987
 
968
988
  // src/api/generated/ext_payments/api-instance.ts
969
989
  var globalAPI = null;
990
+ var autoConfigAttempted = false;
991
+ function tryAutoConfigureFromEnv() {
992
+ if (autoConfigAttempted) return;
993
+ autoConfigAttempted = true;
994
+ if (globalAPI) return;
995
+ if (typeof process === "undefined" || !process.env) return;
996
+ const baseUrl = process.env.NEXT_PUBLIC_API_URL || process.env.VITE_API_URL || process.env.REACT_APP_API_URL || process.env.API_URL;
997
+ if (baseUrl) {
998
+ globalAPI = new API(baseUrl);
999
+ }
1000
+ }
970
1001
  function getAPIInstance() {
1002
+ tryAutoConfigureFromEnv();
971
1003
  if (!globalAPI) {
972
1004
  throw new Error(
973
- 'API not configured. Call configureAPI() with your base URL before using fetchers or hooks.\n\nExample:\n import { configureAPI } from "./api-instance"\n configureAPI({ baseUrl: "https://api.example.com" })'
1005
+ 'API not configured. Call configureAPI() with your base URL before using fetchers or hooks.\n\nExample:\n import { configureAPI } from "./api-instance"\n configureAPI({ baseUrl: "https://api.example.com" })\n\nOr set environment variable: NEXT_PUBLIC_API_URL, VITE_API_URL, or REACT_APP_API_URL'
974
1006
  );
975
1007
  }
976
1008
  return globalAPI;
977
1009
  }
978
1010
  function isAPIConfigured() {
1011
+ tryAutoConfigureFromEnv();
979
1012
  return globalAPI !== null;
980
1013
  }
981
1014
  function configureAPI(config) {
@@ -1290,7 +1323,8 @@ var API = class {
1290
1323
  this._loadTokensFromStorage();
1291
1324
  this._client = new APIClient(this.baseUrl, {
1292
1325
  retryConfig: this.options?.retryConfig,
1293
- loggerConfig: this.options?.loggerConfig
1326
+ loggerConfig: this.options?.loggerConfig,
1327
+ tokenGetter: () => this.getToken()
1294
1328
  });
1295
1329
  this._injectAuthHeader();
1296
1330
  this.ext_payments_payments = this._client.ext_payments_payments;
@@ -1302,7 +1336,8 @@ var API = class {
1302
1336
  _reinitClients() {
1303
1337
  this._client = new APIClient(this.baseUrl, {
1304
1338
  retryConfig: this.options?.retryConfig,
1305
- loggerConfig: this.options?.loggerConfig
1339
+ loggerConfig: this.options?.loggerConfig,
1340
+ tokenGetter: () => this.getToken()
1306
1341
  });
1307
1342
  this._injectAuthHeader();
1308
1343
  this.ext_payments_payments = this._client.ext_payments_payments;
@@ -1393,6 +1428,7 @@ var API = class {
1393
1428
  return "./schema.json";
1394
1429
  }
1395
1430
  };
1431
+ api.initializeExtensionAPI(configureAPI);
1396
1432
  var apiPayments = api.createExtensionAPI(API);
1397
1433
  function usePaymentsBalanceRetrieve(client) {
1398
1434
  return useSWR__default.default(
@@ -1752,21 +1788,21 @@ var CreatePaymentDialog = () => {
1752
1788
  setIsSubmitting(false);
1753
1789
  }
1754
1790
  };
1755
- return /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.Dialog, { open, onOpenChange: (isOpen) => !isOpen && handleClose(), children: /* @__PURE__ */ jsxRuntime.jsxs(uiNextjs.DialogContent, { className: "sm:max-w-md", children: [
1756
- /* @__PURE__ */ jsxRuntime.jsxs(uiNextjs.DialogHeader, { children: [
1757
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.DialogTitle, { children: "Create Payment" }),
1758
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.DialogDescription, { children: "Create a new payment to add funds to your account." })
1791
+ return /* @__PURE__ */ jsxRuntime.jsx(uiCore.Dialog, { open, onOpenChange: (isOpen) => !isOpen && handleClose(), children: /* @__PURE__ */ jsxRuntime.jsxs(uiCore.DialogContent, { className: "sm:max-w-md", children: [
1792
+ /* @__PURE__ */ jsxRuntime.jsxs(uiCore.DialogHeader, { children: [
1793
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.DialogTitle, { children: "Create Payment" }),
1794
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.DialogDescription, { children: "Create a new payment to add funds to your account." })
1759
1795
  ] }),
1760
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.Form, { ...form, children: /* @__PURE__ */ jsxRuntime.jsxs("form", { onSubmit: form.handleSubmit(handleSubmit), className: "space-y-4", children: [
1796
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.Form, { ...form, children: /* @__PURE__ */ jsxRuntime.jsxs("form", { onSubmit: form.handleSubmit(handleSubmit), className: "space-y-4", children: [
1761
1797
  /* @__PURE__ */ jsxRuntime.jsx(
1762
- uiNextjs.FormField,
1798
+ uiCore.FormField,
1763
1799
  {
1764
1800
  control: form.control,
1765
1801
  name: "amount_usd",
1766
- render: ({ field }) => /* @__PURE__ */ jsxRuntime.jsxs(uiNextjs.FormItem, { children: [
1767
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.FormLabel, { children: "Amount (USD)" }),
1768
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.FormControl, { children: /* @__PURE__ */ jsxRuntime.jsx(
1769
- uiNextjs.Input,
1802
+ render: ({ field }) => /* @__PURE__ */ jsxRuntime.jsxs(uiCore.FormItem, { children: [
1803
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.FormLabel, { children: "Amount (USD)" }),
1804
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.FormControl, { children: /* @__PURE__ */ jsxRuntime.jsx(
1805
+ uiCore.Input,
1770
1806
  {
1771
1807
  type: "number",
1772
1808
  step: "0.01",
@@ -1776,28 +1812,28 @@ var CreatePaymentDialog = () => {
1776
1812
  onChange: (e) => field.onChange(parseFloat(e.target.value) || 0)
1777
1813
  }
1778
1814
  ) }),
1779
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.FormDescription, { children: "The amount you want to pay in USD." }),
1780
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.FormMessage, {})
1815
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.FormDescription, { children: "The amount you want to pay in USD." }),
1816
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.FormMessage, {})
1781
1817
  ] })
1782
1818
  }
1783
1819
  ),
1784
1820
  /* @__PURE__ */ jsxRuntime.jsx(
1785
- uiNextjs.FormField,
1821
+ uiCore.FormField,
1786
1822
  {
1787
1823
  control: form.control,
1788
1824
  name: "currency_code",
1789
- render: ({ field }) => /* @__PURE__ */ jsxRuntime.jsxs(uiNextjs.FormItem, { children: [
1790
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.FormLabel, { children: "Currency" }),
1825
+ render: ({ field }) => /* @__PURE__ */ jsxRuntime.jsxs(uiCore.FormItem, { children: [
1826
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.FormLabel, { children: "Currency" }),
1791
1827
  /* @__PURE__ */ jsxRuntime.jsxs(
1792
- uiNextjs.Select,
1828
+ uiCore.Select,
1793
1829
  {
1794
1830
  onValueChange: field.onChange,
1795
1831
  defaultValue: field.value,
1796
1832
  disabled: isLoadingCurrencies,
1797
1833
  children: [
1798
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.FormControl, { children: /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.SelectTrigger, { children: /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.SelectValue, { placeholder: "Select currency..." }) }) }),
1799
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.SelectContent, { children: currencyOptions.map((curr) => /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.SelectItem, { value: curr.code, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
1800
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.TokenIcon, { symbol: curr.code, size: 16 }),
1834
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.FormControl, { children: /* @__PURE__ */ jsxRuntime.jsx(uiCore.SelectTrigger, { children: /* @__PURE__ */ jsxRuntime.jsx(uiCore.SelectValue, { placeholder: "Select currency..." }) }) }),
1835
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.SelectContent, { children: currencyOptions.map((curr) => /* @__PURE__ */ jsxRuntime.jsx(uiCore.SelectItem, { value: curr.code, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
1836
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.TokenIcon, { symbol: curr.code, size: 16 }),
1801
1837
  /* @__PURE__ */ jsxRuntime.jsx("span", { children: curr.code }),
1802
1838
  curr.network && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-xs text-muted-foreground", children: [
1803
1839
  "(",
@@ -1808,8 +1844,8 @@ var CreatePaymentDialog = () => {
1808
1844
  ]
1809
1845
  }
1810
1846
  ),
1811
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.FormDescription, { children: "The cryptocurrency to use for payment." }),
1812
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.FormMessage, {})
1847
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.FormDescription, { children: "The cryptocurrency to use for payment." }),
1848
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.FormMessage, {})
1813
1849
  ] })
1814
1850
  }
1815
1851
  ),
@@ -1817,7 +1853,7 @@ var CreatePaymentDialog = () => {
1817
1853
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between", children: [
1818
1854
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm text-muted-foreground", children: "You will send" }),
1819
1855
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
1820
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.TokenIcon, { symbol: calculateCryptoAmount.currency, size: 16 }),
1856
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.TokenIcon, { symbol: calculateCryptoAmount.currency, size: 16 }),
1821
1857
  /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "font-mono font-semibold", children: [
1822
1858
  calculateCryptoAmount.amount.toFixed(8),
1823
1859
  " ",
@@ -1847,9 +1883,9 @@ var CreatePaymentDialog = () => {
1847
1883
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm font-medium", children: calculateCryptoAmount.network })
1848
1884
  ] }) })
1849
1885
  ] }),
1850
- /* @__PURE__ */ jsxRuntime.jsxs(uiNextjs.DialogFooter, { children: [
1851
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.Button, { type: "button", variant: "outline", onClick: handleClose, disabled: isSubmitting, children: "Cancel" }),
1852
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.Button, { type: "submit", disabled: isSubmitting || currencyOptions.length === 0, children: isSubmitting ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1886
+ /* @__PURE__ */ jsxRuntime.jsxs(uiCore.DialogFooter, { children: [
1887
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.Button, { type: "button", variant: "outline", onClick: handleClose, disabled: isSubmitting, children: "Cancel" }),
1888
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.Button, { type: "submit", disabled: isSubmitting || currencyOptions.length === 0, children: isSubmitting ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1853
1889
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.RefreshCw, { className: "h-4 w-4 mr-2 animate-spin" }),
1854
1890
  "Creating..."
1855
1891
  ] }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
@@ -1930,34 +1966,34 @@ var PaymentDetailsDialog = () => {
1930
1966
  };
1931
1967
  if (!open) return null;
1932
1968
  if (isLoading) {
1933
- return /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.Dialog, { open, onOpenChange: (isOpen) => !isOpen && handleClose(), children: /* @__PURE__ */ jsxRuntime.jsxs(uiNextjs.DialogContent, { className: "sm:max-w-lg", children: [
1934
- /* @__PURE__ */ jsxRuntime.jsxs(uiNextjs.DialogHeader, { children: [
1935
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.DialogTitle, { children: "Payment Details" }),
1936
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.DialogDescription, { children: "Loading payment information..." })
1969
+ return /* @__PURE__ */ jsxRuntime.jsx(uiCore.Dialog, { open, onOpenChange: (isOpen) => !isOpen && handleClose(), children: /* @__PURE__ */ jsxRuntime.jsxs(uiCore.DialogContent, { className: "sm:max-w-lg", children: [
1970
+ /* @__PURE__ */ jsxRuntime.jsxs(uiCore.DialogHeader, { children: [
1971
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.DialogTitle, { children: "Payment Details" }),
1972
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.DialogDescription, { children: "Loading payment information..." })
1937
1973
  ] }),
1938
1974
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center justify-center py-12", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.RefreshCw, { className: "h-8 w-8 animate-spin text-muted-foreground" }) })
1939
1975
  ] }) });
1940
1976
  }
1941
1977
  if (shouldFetch && !isLoading && (error || !payment)) {
1942
- return /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.Dialog, { open, onOpenChange: (isOpen) => !isOpen && handleClose(), children: /* @__PURE__ */ jsxRuntime.jsxs(uiNextjs.DialogContent, { className: "sm:max-w-lg", children: [
1943
- /* @__PURE__ */ jsxRuntime.jsxs(uiNextjs.DialogHeader, { children: [
1944
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.DialogTitle, { children: "Payment Details" }),
1945
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.DialogDescription, { children: "Failed to load payment information" })
1978
+ return /* @__PURE__ */ jsxRuntime.jsx(uiCore.Dialog, { open, onOpenChange: (isOpen) => !isOpen && handleClose(), children: /* @__PURE__ */ jsxRuntime.jsxs(uiCore.DialogContent, { className: "sm:max-w-lg", children: [
1979
+ /* @__PURE__ */ jsxRuntime.jsxs(uiCore.DialogHeader, { children: [
1980
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.DialogTitle, { children: "Payment Details" }),
1981
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.DialogDescription, { children: "Failed to load payment information" })
1946
1982
  ] }),
1947
1983
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-center justify-center py-12 space-y-4", children: [
1948
1984
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.XCircle, { className: "h-12 w-12 text-destructive" }),
1949
1985
  /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-muted-foreground", children: error ? `Error: ${error}` : "Payment not found" }),
1950
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.Button, { onClick: () => mutate(), children: "Try Again" })
1986
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.Button, { onClick: () => mutate(), children: "Try Again" })
1951
1987
  ] })
1952
1988
  ] }) });
1953
1989
  }
1954
1990
  const statusInfo = getStatusInfo();
1955
1991
  const StatusIcon = statusInfo.icon;
1956
1992
  const qrCodeUrl = payment.pay_address ? `https://api.qrserver.com/v1/create-qr-code/?size=200x200&data=${encodeURIComponent(payment.pay_address)}` : null;
1957
- return /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.Dialog, { open, onOpenChange: (isOpen) => !isOpen && handleClose(), children: /* @__PURE__ */ jsxRuntime.jsxs(uiNextjs.DialogContent, { className: "sm:max-w-lg", children: [
1958
- /* @__PURE__ */ jsxRuntime.jsxs(uiNextjs.DialogHeader, { children: [
1959
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.DialogTitle, { children: "Payment Details" }),
1960
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.DialogDescription, { children: "Send cryptocurrency to complete your payment" })
1993
+ return /* @__PURE__ */ jsxRuntime.jsx(uiCore.Dialog, { open, onOpenChange: (isOpen) => !isOpen && handleClose(), children: /* @__PURE__ */ jsxRuntime.jsxs(uiCore.DialogContent, { className: "sm:max-w-lg", children: [
1994
+ /* @__PURE__ */ jsxRuntime.jsxs(uiCore.DialogHeader, { children: [
1995
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.DialogTitle, { children: "Payment Details" }),
1996
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.DialogDescription, { children: "Send cryptocurrency to complete your payment" })
1961
1997
  ] }),
1962
1998
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-6", children: [
1963
1999
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: `flex items-center gap-3 p-4 rounded-sm ${statusInfo.bg}`, children: [
@@ -1974,7 +2010,7 @@ var PaymentDetailsDialog = () => {
1974
2010
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between p-4 bg-muted rounded-sm", children: [
1975
2011
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm text-muted-foreground", children: "Amount to send" }),
1976
2012
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
1977
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.TokenIcon, { symbol: String(payment.currency_code || "BTC"), size: 20 }),
2013
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.TokenIcon, { symbol: String(payment.currency_code || "BTC"), size: 20 }),
1978
2014
  /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "font-mono font-bold text-lg", children: [
1979
2015
  payment.pay_amount || "0.00000000",
1980
2016
  " ",
@@ -2004,7 +2040,7 @@ var PaymentDetailsDialog = () => {
2004
2040
  /* @__PURE__ */ jsxRuntime.jsx("label", { className: "text-sm font-medium", children: "Payment Address" }),
2005
2041
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
2006
2042
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-1 p-3 bg-muted rounded-sm font-mono text-sm break-all", children: payment.pay_address }),
2007
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.CopyButton, { value: payment.pay_address, variant: "outline" })
2043
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.CopyButton, { value: payment.pay_address, variant: "outline" })
2008
2044
  ] })
2009
2045
  ] }),
2010
2046
  payment.transaction_hash && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
@@ -2012,7 +2048,7 @@ var PaymentDetailsDialog = () => {
2012
2048
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "p-3 bg-muted rounded-sm font-mono text-sm break-all", children: payment.transaction_hash })
2013
2049
  ] }),
2014
2050
  payment.payment_url && payment.status === "pending" && /* @__PURE__ */ jsxRuntime.jsxs(
2015
- uiNextjs.Button,
2051
+ uiCore.Button,
2016
2052
  {
2017
2053
  variant: "outline",
2018
2054
  className: "w-full",
@@ -2038,9 +2074,9 @@ var PaymentDetailsDialog = () => {
2038
2074
  ] })
2039
2075
  ] })
2040
2076
  ] }),
2041
- /* @__PURE__ */ jsxRuntime.jsxs(uiNextjs.DialogFooter, { children: [
2042
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.Button, { variant: "outline", onClick: handleClose, children: "Close" }),
2043
- /* @__PURE__ */ jsxRuntime.jsxs(uiNextjs.Button, { onClick: () => mutate(), variant: "ghost", size: "sm", children: [
2077
+ /* @__PURE__ */ jsxRuntime.jsxs(uiCore.DialogFooter, { children: [
2078
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.Button, { variant: "outline", onClick: handleClose, children: "Close" }),
2079
+ /* @__PURE__ */ jsxRuntime.jsxs(uiCore.Button, { onClick: () => mutate(), variant: "ghost", size: "sm", children: [
2044
2080
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.RefreshCw, { className: "h-4 w-4 mr-2" }),
2045
2081
  "Refresh"
2046
2082
  ] })
@@ -2070,17 +2106,17 @@ var BalanceCard = () => {
2070
2106
  }
2071
2107
  };
2072
2108
  if (isLoadingBalance) {
2073
- return /* @__PURE__ */ jsxRuntime.jsxs(uiNextjs.Card, { children: [
2074
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.CardHeader, { children: /* @__PURE__ */ jsxRuntime.jsxs(uiNextjs.CardTitle, { className: "flex items-center justify-between", children: [
2109
+ return /* @__PURE__ */ jsxRuntime.jsxs(uiCore.Card, { children: [
2110
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.CardHeader, { children: /* @__PURE__ */ jsxRuntime.jsxs(uiCore.CardTitle, { className: "flex items-center justify-between", children: [
2075
2111
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
2076
2112
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Wallet, { className: "h-5 w-5" }),
2077
2113
  "Account Balance"
2078
2114
  ] }),
2079
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.Skeleton, { className: "h-8 w-20" })
2115
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.Skeleton, { className: "h-8 w-20" })
2080
2116
  ] }) }),
2081
- /* @__PURE__ */ jsxRuntime.jsxs(uiNextjs.CardContent, { className: "space-y-4", children: [
2082
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.Skeleton, { className: "h-10 w-32" }),
2083
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.Skeleton, { className: "h-4 w-48" })
2117
+ /* @__PURE__ */ jsxRuntime.jsxs(uiCore.CardContent, { className: "space-y-4", children: [
2118
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.Skeleton, { className: "h-10 w-32" }),
2119
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.Skeleton, { className: "h-4 w-48" })
2084
2120
  ] })
2085
2121
  ] });
2086
2122
  }
@@ -2090,21 +2126,21 @@ var BalanceCard = () => {
2090
2126
  const totalWithdrawn = balanceData?.total_withdrawn ?? 0;
2091
2127
  const lastTransactionAt = balanceData?.last_transaction_at;
2092
2128
  const isEmpty = amountUsd === 0 && totalDeposited === 0;
2093
- return /* @__PURE__ */ jsxRuntime.jsxs(uiNextjs.Card, { children: [
2094
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.CardHeader, { children: /* @__PURE__ */ jsxRuntime.jsxs(uiNextjs.CardTitle, { className: "flex items-center justify-between", children: [
2129
+ return /* @__PURE__ */ jsxRuntime.jsxs(uiCore.Card, { children: [
2130
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.CardHeader, { children: /* @__PURE__ */ jsxRuntime.jsxs(uiCore.CardTitle, { className: "flex items-center justify-between", children: [
2095
2131
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
2096
2132
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Wallet, { className: "h-5 w-5" }),
2097
2133
  "Account Balance"
2098
2134
  ] }),
2099
2135
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
2100
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.Button, { variant: "ghost", size: "sm", onClick: refreshBalance, children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.RefreshCw, { className: "h-4 w-4" }) }),
2101
- /* @__PURE__ */ jsxRuntime.jsxs(uiNextjs.Button, { size: "sm", onClick: () => openCreatePaymentDialog(), children: [
2136
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.Button, { variant: "ghost", size: "sm", onClick: refreshBalance, children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.RefreshCw, { className: "h-4 w-4" }) }),
2137
+ /* @__PURE__ */ jsxRuntime.jsxs(uiCore.Button, { size: "sm", onClick: () => openCreatePaymentDialog(), children: [
2102
2138
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Plus, { className: "h-4 w-4 mr-2" }),
2103
2139
  "Add Funds"
2104
2140
  ] })
2105
2141
  ] })
2106
2142
  ] }) }),
2107
- /* @__PURE__ */ jsxRuntime.jsxs(uiNextjs.CardContent, { className: "space-y-4", children: [
2143
+ /* @__PURE__ */ jsxRuntime.jsxs(uiCore.CardContent, { className: "space-y-4", children: [
2108
2144
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
2109
2145
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-4xl font-bold", children: formatCurrency(amountUsd) }),
2110
2146
  /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "text-sm text-muted-foreground mt-1", children: [
@@ -2123,8 +2159,8 @@ var BalanceCard = () => {
2123
2159
  ] })
2124
2160
  ] }),
2125
2161
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
2126
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.Badge, { variant: !isEmpty ? "default" : "secondary", children: !isEmpty ? "Active" : "New Account" }),
2127
- isEmpty && /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.Badge, { variant: "outline", children: "Empty Balance" })
2162
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.Badge, { variant: !isEmpty ? "default" : "secondary", children: !isEmpty ? "Active" : "New Account" }),
2163
+ isEmpty && /* @__PURE__ */ jsxRuntime.jsx(uiCore.Badge, { variant: "outline", children: "Empty Balance" })
2128
2164
  ] })
2129
2165
  ] })
2130
2166
  ] });
@@ -2167,33 +2203,33 @@ var RecentPayments = () => {
2167
2203
  }
2168
2204
  };
2169
2205
  if (isLoadingPayments) {
2170
- return /* @__PURE__ */ jsxRuntime.jsxs(uiNextjs.Card, { children: [
2171
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.CardHeader, { children: /* @__PURE__ */ jsxRuntime.jsxs(uiNextjs.CardTitle, { className: "flex items-center gap-2", children: [
2206
+ return /* @__PURE__ */ jsxRuntime.jsxs(uiCore.Card, { children: [
2207
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.CardHeader, { children: /* @__PURE__ */ jsxRuntime.jsxs(uiCore.CardTitle, { className: "flex items-center gap-2", children: [
2172
2208
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.History, { className: "h-5 w-5" }),
2173
2209
  "Recent Payments"
2174
2210
  ] }) }),
2175
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.CardContent, { className: "space-y-3", children: Array.from({ length: 5 }).map((_, i) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between p-3 border rounded-sm", children: [
2211
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.CardContent, { className: "space-y-3", children: Array.from({ length: 5 }).map((_, i) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between p-3 border rounded-sm", children: [
2176
2212
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
2177
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.Skeleton, { className: "h-4 w-32" }),
2178
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.Skeleton, { className: "h-3 w-24" })
2213
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.Skeleton, { className: "h-4 w-32" }),
2214
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.Skeleton, { className: "h-3 w-24" })
2179
2215
  ] }),
2180
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.Skeleton, { className: "h-6 w-16" })
2216
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.Skeleton, { className: "h-6 w-16" })
2181
2217
  ] }, i)) })
2182
2218
  ] });
2183
2219
  }
2184
2220
  const recentPaymentsList = payments?.results?.slice(0, 5) || [];
2185
- return /* @__PURE__ */ jsxRuntime.jsxs(uiNextjs.Card, { children: [
2186
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.CardHeader, { children: /* @__PURE__ */ jsxRuntime.jsxs(uiNextjs.CardTitle, { className: "flex items-center justify-between", children: [
2221
+ return /* @__PURE__ */ jsxRuntime.jsxs(uiCore.Card, { children: [
2222
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.CardHeader, { children: /* @__PURE__ */ jsxRuntime.jsxs(uiCore.CardTitle, { className: "flex items-center justify-between", children: [
2187
2223
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
2188
2224
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.History, { className: "h-5 w-5" }),
2189
2225
  "Recent Payments"
2190
2226
  ] }),
2191
- /* @__PURE__ */ jsxRuntime.jsxs(uiNextjs.Button, { variant: "ghost", size: "sm", children: [
2227
+ /* @__PURE__ */ jsxRuntime.jsxs(uiCore.Button, { variant: "ghost", size: "sm", children: [
2192
2228
  "View All",
2193
2229
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ExternalLink, { className: "h-4 w-4 ml-2" })
2194
2230
  ] })
2195
2231
  ] }) }),
2196
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.CardContent, { children: recentPaymentsList.length === 0 ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-center py-8 text-muted-foreground", children: [
2232
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.CardContent, { children: recentPaymentsList.length === 0 ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-center py-8 text-muted-foreground", children: [
2197
2233
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.History, { className: "h-12 w-12 mx-auto mb-4 opacity-50" }),
2198
2234
  /* @__PURE__ */ jsxRuntime.jsx("p", { children: "No recent payments" }),
2199
2235
  /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm mt-2", children: "Create your first payment to get started" })
@@ -2206,7 +2242,7 @@ var RecentPayments = () => {
2206
2242
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-1", children: [
2207
2243
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
2208
2244
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-medium", children: formatCurrency(payment.amount_usd) }),
2209
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.Badge, { variant: getStatusVariant(payment.status), className: "text-xs", children: payment.status })
2245
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.Badge, { variant: getStatusVariant(payment.status), className: "text-xs", children: payment.status })
2210
2246
  ] }),
2211
2247
  /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "text-sm text-muted-foreground", children: [
2212
2248
  getRelativeTime(payment.created_at),
@@ -2228,7 +2264,7 @@ var OverviewView = () => {
2228
2264
  ] }) });
2229
2265
  };
2230
2266
  var PaymentsList = () => {
2231
- const pagination = uiNextjs.useDRFPagination(1, 20);
2267
+ const pagination = components.useDRFPagination(1, 20);
2232
2268
  const {
2233
2269
  data: payments,
2234
2270
  error,
@@ -2299,26 +2335,26 @@ var PaymentsList = () => {
2299
2335
  relativeTime: getRelativeTime(payment.created_at),
2300
2336
  truncatedId: truncateId(payment.id)
2301
2337
  }));
2302
- return /* @__PURE__ */ jsxRuntime.jsxs(uiNextjs.Card, { children: [
2303
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.CardHeader, { children: /* @__PURE__ */ jsxRuntime.jsxs(uiNextjs.CardTitle, { className: "flex items-center justify-between", children: [
2338
+ return /* @__PURE__ */ jsxRuntime.jsxs(uiCore.Card, { children: [
2339
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.CardHeader, { children: /* @__PURE__ */ jsxRuntime.jsxs(uiCore.CardTitle, { className: "flex items-center justify-between", children: [
2304
2340
  /* @__PURE__ */ jsxRuntime.jsx("span", { children: "Payment History" }),
2305
2341
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
2306
- /* @__PURE__ */ jsxRuntime.jsxs(uiNextjs.Button, { variant: "outline", size: "sm", onClick: () => refreshPayments(), disabled: isLoadingPayments, children: [
2342
+ /* @__PURE__ */ jsxRuntime.jsxs(uiCore.Button, { variant: "outline", size: "sm", onClick: () => refreshPayments(), disabled: isLoadingPayments, children: [
2307
2343
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.RefreshCw, { className: `h-4 w-4 mr-2 ${isLoadingPayments ? "animate-spin" : ""}` }),
2308
2344
  "Refresh"
2309
2345
  ] }),
2310
- /* @__PURE__ */ jsxRuntime.jsxs(uiNextjs.Button, { size: "sm", onClick: () => openCreatePaymentDialog(), children: [
2346
+ /* @__PURE__ */ jsxRuntime.jsxs(uiCore.Button, { size: "sm", onClick: () => openCreatePaymentDialog(), children: [
2311
2347
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Plus, { className: "h-4 w-4 mr-2" }),
2312
2348
  "New Payment"
2313
2349
  ] })
2314
2350
  ] })
2315
2351
  ] }) }),
2316
- /* @__PURE__ */ jsxRuntime.jsxs(uiNextjs.CardContent, { className: "space-y-4", children: [
2352
+ /* @__PURE__ */ jsxRuntime.jsxs(uiCore.CardContent, { className: "space-y-4", children: [
2317
2353
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col sm:flex-row gap-4", children: [
2318
2354
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative flex-1", children: [
2319
2355
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Search, { className: "absolute left-3 top-1/2 transform -translate-y-1/2 h-4 w-4 text-muted-foreground" }),
2320
2356
  /* @__PURE__ */ jsxRuntime.jsx(
2321
- uiNextjs.Input,
2357
+ uiCore.Input,
2322
2358
  {
2323
2359
  placeholder: "Search by ID, status, or currency...",
2324
2360
  value: searchTerm,
@@ -2327,63 +2363,63 @@ var PaymentsList = () => {
2327
2363
  }
2328
2364
  )
2329
2365
  ] }),
2330
- /* @__PURE__ */ jsxRuntime.jsxs(uiNextjs.Select, { value: statusFilter, onValueChange: handleStatusFilter, children: [
2331
- /* @__PURE__ */ jsxRuntime.jsxs(uiNextjs.SelectTrigger, { className: "w-full sm:w-48", children: [
2366
+ /* @__PURE__ */ jsxRuntime.jsxs(uiCore.Select, { value: statusFilter, onValueChange: handleStatusFilter, children: [
2367
+ /* @__PURE__ */ jsxRuntime.jsxs(uiCore.SelectTrigger, { className: "w-full sm:w-48", children: [
2332
2368
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Filter, { className: "h-4 w-4 mr-2" }),
2333
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.SelectValue, { placeholder: "Filter by status" })
2369
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.SelectValue, { placeholder: "Filter by status" })
2334
2370
  ] }),
2335
- /* @__PURE__ */ jsxRuntime.jsxs(uiNextjs.SelectContent, { children: [
2336
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.SelectItem, { value: "all", children: "All Statuses" }),
2337
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.SelectItem, { value: "completed", children: "Completed" }),
2338
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.SelectItem, { value: "pending", children: "Pending" }),
2339
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.SelectItem, { value: "confirming", children: "Confirming" }),
2340
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.SelectItem, { value: "failed", children: "Failed" }),
2341
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.SelectItem, { value: "expired", children: "Expired" })
2371
+ /* @__PURE__ */ jsxRuntime.jsxs(uiCore.SelectContent, { children: [
2372
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.SelectItem, { value: "all", children: "All Statuses" }),
2373
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.SelectItem, { value: "completed", children: "Completed" }),
2374
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.SelectItem, { value: "pending", children: "Pending" }),
2375
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.SelectItem, { value: "confirming", children: "Confirming" }),
2376
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.SelectItem, { value: "failed", children: "Failed" }),
2377
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.SelectItem, { value: "expired", children: "Expired" })
2342
2378
  ] })
2343
2379
  ] })
2344
2380
  ] }),
2345
2381
  isLoadingPayments ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-3", children: Array.from({ length: 5 }).map((_, i) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between p-4 border rounded-sm", children: [
2346
2382
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
2347
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.Skeleton, { className: "h-4 w-32" }),
2348
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.Skeleton, { className: "h-3 w-24" })
2383
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.Skeleton, { className: "h-4 w-32" }),
2384
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.Skeleton, { className: "h-3 w-24" })
2349
2385
  ] }),
2350
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.Skeleton, { className: "h-6 w-16" })
2386
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.Skeleton, { className: "h-6 w-16" })
2351
2387
  ] }, i)) }) : filteredPayments.length === 0 ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-center py-12", children: [
2352
2388
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-16 h-16 mx-auto mb-4 bg-muted rounded-full flex items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Search, { className: "w-8 h-8 text-muted-foreground" }) }),
2353
2389
  /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-lg font-semibold mb-2", children: "No Payments Found" }),
2354
2390
  /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-muted-foreground mb-4", children: searchTerm || statusFilter !== "all" ? "No payments match your current filters" : "You haven't made any payments yet" }),
2355
- /* @__PURE__ */ jsxRuntime.jsxs(uiNextjs.Button, { onClick: () => openCreatePaymentDialog(), children: [
2391
+ /* @__PURE__ */ jsxRuntime.jsxs(uiCore.Button, { onClick: () => openCreatePaymentDialog(), children: [
2356
2392
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Plus, { className: "h-4 w-4 mr-2" }),
2357
2393
  "Create Payment"
2358
2394
  ] })
2359
2395
  ] }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
2360
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "rounded-md border", children: /* @__PURE__ */ jsxRuntime.jsxs(uiNextjs.Table, { children: [
2361
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.TableHeader, { children: /* @__PURE__ */ jsxRuntime.jsxs(uiNextjs.TableRow, { children: [
2362
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.TableHead, { children: "Date" }),
2363
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.TableHead, { children: "Amount" }),
2364
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.TableHead, { children: "Currency" }),
2365
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.TableHead, { children: "Status" }),
2366
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.TableHead, { children: "Provider" }),
2367
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.TableHead, { children: "Payment ID" }),
2368
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.TableHead, { className: "text-right", children: "Actions" })
2396
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "rounded-md border", children: /* @__PURE__ */ jsxRuntime.jsxs(uiCore.Table, { children: [
2397
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.TableHeader, { children: /* @__PURE__ */ jsxRuntime.jsxs(uiCore.TableRow, { children: [
2398
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.TableHead, { children: "Date" }),
2399
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.TableHead, { children: "Amount" }),
2400
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.TableHead, { children: "Currency" }),
2401
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.TableHead, { children: "Status" }),
2402
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.TableHead, { children: "Provider" }),
2403
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.TableHead, { children: "Payment ID" }),
2404
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.TableHead, { className: "text-right", children: "Actions" })
2369
2405
  ] }) }),
2370
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.TableBody, { children: filteredPayments.map((payment) => /* @__PURE__ */ jsxRuntime.jsxs(
2371
- uiNextjs.TableRow,
2406
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.TableBody, { children: filteredPayments.map((payment) => /* @__PURE__ */ jsxRuntime.jsxs(
2407
+ uiCore.TableRow,
2372
2408
  {
2373
2409
  className: "cursor-pointer hover:bg-accent",
2374
2410
  onClick: () => openPaymentDetailsDialog(String(payment.id)),
2375
2411
  children: [
2376
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.TableCell, { children: /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
2412
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.TableCell, { children: /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
2377
2413
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "font-medium", children: payment.formattedDate }),
2378
2414
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-sm text-muted-foreground", children: payment.relativeTime })
2379
2415
  ] }) }),
2380
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.TableCell, { className: "font-mono font-semibold", children: formatCurrency(payment.amount_usd) }),
2381
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.TableCell, { children: /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.Badge, { variant: "outline", children: payment.currency_code || "USD" }) }),
2382
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.TableCell, { children: /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.Badge, { variant: getStatusVariant(payment.status), children: payment.status }) }),
2383
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.TableCell, { className: "text-sm text-muted-foreground", children: "NowPayments" }),
2384
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.TableCell, { className: "font-mono text-sm text-muted-foreground", children: payment.truncatedId }),
2385
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.TableCell, { className: "text-right", children: /* @__PURE__ */ jsxRuntime.jsx(
2386
- uiNextjs.Button,
2416
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.TableCell, { className: "font-mono font-semibold", children: formatCurrency(payment.amount_usd) }),
2417
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.TableCell, { children: /* @__PURE__ */ jsxRuntime.jsx(uiCore.Badge, { variant: "outline", children: payment.currency_code || "USD" }) }),
2418
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.TableCell, { children: /* @__PURE__ */ jsxRuntime.jsx(uiCore.Badge, { variant: getStatusVariant(payment.status), children: payment.status }) }),
2419
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.TableCell, { className: "text-sm text-muted-foreground", children: "NowPayments" }),
2420
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.TableCell, { className: "font-mono text-sm text-muted-foreground", children: payment.truncatedId }),
2421
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.TableCell, { className: "text-right", children: /* @__PURE__ */ jsxRuntime.jsx(
2422
+ uiCore.Button,
2387
2423
  {
2388
2424
  variant: "ghost",
2389
2425
  size: "sm",
@@ -2400,7 +2436,7 @@ var PaymentsList = () => {
2400
2436
  )) })
2401
2437
  ] }) }),
2402
2438
  /* @__PURE__ */ jsxRuntime.jsx(
2403
- uiNextjs.StaticPagination,
2439
+ components.StaticPagination,
2404
2440
  {
2405
2441
  data: payments,
2406
2442
  onPageChange: pagination.setPage,
@@ -2490,37 +2526,37 @@ var TransactionsList = () => {
2490
2526
  truncatedRef: truncateId(transaction.reference || transaction.payment_id)
2491
2527
  }));
2492
2528
  if (isLoadingTransactions) {
2493
- return /* @__PURE__ */ jsxRuntime.jsxs(uiNextjs.Card, { children: [
2494
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.CardHeader, { children: /* @__PURE__ */ jsxRuntime.jsxs(uiNextjs.CardTitle, { className: "flex items-center gap-2", children: [
2529
+ return /* @__PURE__ */ jsxRuntime.jsxs(uiCore.Card, { children: [
2530
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.CardHeader, { children: /* @__PURE__ */ jsxRuntime.jsxs(uiCore.CardTitle, { className: "flex items-center gap-2", children: [
2495
2531
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.History, { className: "h-5 w-5" }),
2496
2532
  "Transaction History"
2497
2533
  ] }) }),
2498
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.CardContent, { className: "space-y-3", children: Array.from({ length: 5 }).map((_, i) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between p-4 border rounded-sm", children: [
2534
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.CardContent, { className: "space-y-3", children: Array.from({ length: 5 }).map((_, i) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between p-4 border rounded-sm", children: [
2499
2535
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
2500
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.Skeleton, { className: "h-4 w-32" }),
2501
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.Skeleton, { className: "h-3 w-24" })
2536
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.Skeleton, { className: "h-4 w-32" }),
2537
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.Skeleton, { className: "h-3 w-24" })
2502
2538
  ] }),
2503
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.Skeleton, { className: "h-6 w-16" })
2539
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.Skeleton, { className: "h-6 w-16" })
2504
2540
  ] }, i)) })
2505
2541
  ] });
2506
2542
  }
2507
- return /* @__PURE__ */ jsxRuntime.jsxs(uiNextjs.Card, { children: [
2508
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.CardHeader, { children: /* @__PURE__ */ jsxRuntime.jsxs(uiNextjs.CardTitle, { className: "flex items-center justify-between", children: [
2543
+ return /* @__PURE__ */ jsxRuntime.jsxs(uiCore.Card, { children: [
2544
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.CardHeader, { children: /* @__PURE__ */ jsxRuntime.jsxs(uiCore.CardTitle, { className: "flex items-center justify-between", children: [
2509
2545
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
2510
2546
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.History, { className: "h-5 w-5" }),
2511
2547
  "Transaction History"
2512
2548
  ] }),
2513
- /* @__PURE__ */ jsxRuntime.jsxs(uiNextjs.Button, { variant: "outline", size: "sm", onClick: refreshTransactions, disabled: isLoadingTransactions, children: [
2549
+ /* @__PURE__ */ jsxRuntime.jsxs(uiCore.Button, { variant: "outline", size: "sm", onClick: refreshTransactions, disabled: isLoadingTransactions, children: [
2514
2550
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.RefreshCw, { className: `h-4 w-4 mr-2 ${isLoadingTransactions ? "animate-spin" : ""}` }),
2515
2551
  "Refresh"
2516
2552
  ] })
2517
2553
  ] }) }),
2518
- /* @__PURE__ */ jsxRuntime.jsxs(uiNextjs.CardContent, { className: "space-y-4", children: [
2554
+ /* @__PURE__ */ jsxRuntime.jsxs(uiCore.CardContent, { className: "space-y-4", children: [
2519
2555
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col sm:flex-row gap-4", children: [
2520
2556
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative flex-1", children: [
2521
2557
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Search, { className: "absolute left-3 top-1/2 transform -translate-y-1/2 h-4 w-4 text-muted-foreground" }),
2522
2558
  /* @__PURE__ */ jsxRuntime.jsx(
2523
- uiNextjs.Input,
2559
+ uiCore.Input,
2524
2560
  {
2525
2561
  placeholder: "Search by ID, description, or type...",
2526
2562
  value: searchTerm,
@@ -2529,15 +2565,15 @@ var TransactionsList = () => {
2529
2565
  }
2530
2566
  )
2531
2567
  ] }),
2532
- /* @__PURE__ */ jsxRuntime.jsxs(uiNextjs.Select, { value: typeFilter, onValueChange: handleTypeFilter, children: [
2533
- /* @__PURE__ */ jsxRuntime.jsxs(uiNextjs.SelectTrigger, { className: "w-full sm:w-48", children: [
2568
+ /* @__PURE__ */ jsxRuntime.jsxs(uiCore.Select, { value: typeFilter, onValueChange: handleTypeFilter, children: [
2569
+ /* @__PURE__ */ jsxRuntime.jsxs(uiCore.SelectTrigger, { className: "w-full sm:w-48", children: [
2534
2570
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Filter, { className: "h-4 w-4 mr-2" }),
2535
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.SelectValue, { placeholder: "Filter by type" })
2571
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.SelectValue, { placeholder: "Filter by type" })
2536
2572
  ] }),
2537
- /* @__PURE__ */ jsxRuntime.jsxs(uiNextjs.SelectContent, { children: [
2538
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.SelectItem, { value: "all", children: "All Types" }),
2539
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.SelectItem, { value: "deposit", children: "Deposits" }),
2540
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.SelectItem, { value: "withdrawal", children: "Withdrawals" })
2573
+ /* @__PURE__ */ jsxRuntime.jsxs(uiCore.SelectContent, { children: [
2574
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.SelectItem, { value: "all", children: "All Types" }),
2575
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.SelectItem, { value: "deposit", children: "Deposits" }),
2576
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.SelectItem, { value: "withdrawal", children: "Withdrawals" })
2541
2577
  ] })
2542
2578
  ] })
2543
2579
  ] }),
@@ -2545,31 +2581,31 @@ var TransactionsList = () => {
2545
2581
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-16 h-16 mx-auto mb-4 bg-muted rounded-full flex items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.History, { className: "w-8 h-8 text-muted-foreground" }) }),
2546
2582
  /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-lg font-semibold mb-2", children: "No Transactions Found" }),
2547
2583
  /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-muted-foreground", children: searchTerm || typeFilter !== "all" ? "No transactions match your current filters" : "You don't have any transactions yet" })
2548
- ] }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "rounded-md border", children: /* @__PURE__ */ jsxRuntime.jsxs(uiNextjs.Table, { children: [
2549
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.TableHeader, { children: /* @__PURE__ */ jsxRuntime.jsxs(uiNextjs.TableRow, { children: [
2550
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.TableHead, { children: "Date & Time" }),
2551
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.TableHead, { children: "Type" }),
2552
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.TableHead, { children: "Amount" }),
2553
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.TableHead, { children: "Balance After" }),
2554
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.TableHead, { children: "Description" }),
2555
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.TableHead, { children: "Reference" })
2584
+ ] }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "rounded-md border", children: /* @__PURE__ */ jsxRuntime.jsxs(uiCore.Table, { children: [
2585
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.TableHeader, { children: /* @__PURE__ */ jsxRuntime.jsxs(uiCore.TableRow, { children: [
2586
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.TableHead, { children: "Date & Time" }),
2587
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.TableHead, { children: "Type" }),
2588
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.TableHead, { children: "Amount" }),
2589
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.TableHead, { children: "Balance After" }),
2590
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.TableHead, { children: "Description" }),
2591
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.TableHead, { children: "Reference" })
2556
2592
  ] }) }),
2557
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.TableBody, { children: filteredTransactions.map((transaction, index) => /* @__PURE__ */ jsxRuntime.jsxs(uiNextjs.TableRow, { children: [
2558
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.TableCell, { children: /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
2593
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.TableBody, { children: filteredTransactions.map((transaction, index) => /* @__PURE__ */ jsxRuntime.jsxs(uiCore.TableRow, { children: [
2594
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.TableCell, { children: /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
2559
2595
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "font-medium", children: transaction.formattedDate }),
2560
2596
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-sm text-muted-foreground", children: transaction.relativeTime })
2561
2597
  ] }) }),
2562
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.TableCell, { children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
2598
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.TableCell, { children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
2563
2599
  getTypeIcon(transaction.type),
2564
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.Badge, { variant: getTypeVariant(transaction.type), children: transaction.type || "Unknown" })
2600
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.Badge, { variant: getTypeVariant(transaction.type), children: transaction.type || "Unknown" })
2565
2601
  ] }) }),
2566
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.TableCell, { className: "font-mono font-semibold", children: /* @__PURE__ */ jsxRuntime.jsxs("span", { className: transaction.isDeposit ? "text-green-600" : "text-red-600", children: [
2602
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.TableCell, { className: "font-mono font-semibold", children: /* @__PURE__ */ jsxRuntime.jsxs("span", { className: transaction.isDeposit ? "text-green-600" : "text-red-600", children: [
2567
2603
  transaction.isDeposit ? "+" : "-",
2568
2604
  formatCurrency(Math.abs(transaction.amount || transaction.amount_usd || 0))
2569
2605
  ] }) }),
2570
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.TableCell, { className: "font-mono", children: formatCurrency(transaction.balance_after || 0) }),
2571
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.TableCell, { className: "text-sm", children: transaction.description || transaction.note || "No description" }),
2572
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.TableCell, { className: "font-mono text-sm text-muted-foreground", children: transaction.truncatedRef })
2606
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.TableCell, { className: "font-mono", children: formatCurrency(transaction.balance_after || 0) }),
2607
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.TableCell, { className: "text-sm", children: transaction.description || transaction.note || "No description" }),
2608
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.TableCell, { className: "font-mono text-sm text-muted-foreground", children: transaction.truncatedRef })
2573
2609
  ] }, transaction.id || index)) })
2574
2610
  ] }) })
2575
2611
  ] })
@@ -2584,30 +2620,30 @@ var PaymentsLayout = () => {
2584
2620
  /* @__PURE__ */ jsxRuntime.jsx("h1", { className: "text-3xl font-bold tracking-tight", children: "Payments" }),
2585
2621
  /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-muted-foreground", children: "Manage your payments, balance, and transaction history" })
2586
2622
  ] }),
2587
- /* @__PURE__ */ jsxRuntime.jsxs(uiNextjs.Tabs, { defaultValue: "overview", className: "space-y-6", children: [
2588
- /* @__PURE__ */ jsxRuntime.jsxs(uiNextjs.TabsList, { className: "inline-flex h-10 items-center justify-center rounded-md bg-muted p-1 text-muted-foreground", children: [
2589
- /* @__PURE__ */ jsxRuntime.jsxs(uiNextjs.TabsTrigger, { value: "overview", className: "inline-flex items-center gap-2 px-3 py-1.5", children: [
2623
+ /* @__PURE__ */ jsxRuntime.jsxs(uiCore.Tabs, { defaultValue: "overview", className: "space-y-6", children: [
2624
+ /* @__PURE__ */ jsxRuntime.jsxs(uiCore.TabsList, { className: "inline-flex h-10 items-center justify-center rounded-md bg-muted p-1 text-muted-foreground", children: [
2625
+ /* @__PURE__ */ jsxRuntime.jsxs(uiCore.TabsTrigger, { value: "overview", className: "inline-flex items-center gap-2 px-3 py-1.5", children: [
2590
2626
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Wallet, { className: "h-4 w-4" }),
2591
2627
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "hidden sm:inline", children: "Overview" })
2592
2628
  ] }),
2593
- /* @__PURE__ */ jsxRuntime.jsxs(uiNextjs.TabsTrigger, { value: "payments", className: "inline-flex items-center gap-2 px-3 py-1.5", children: [
2629
+ /* @__PURE__ */ jsxRuntime.jsxs(uiCore.TabsTrigger, { value: "payments", className: "inline-flex items-center gap-2 px-3 py-1.5", children: [
2594
2630
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CreditCard, { className: "h-4 w-4" }),
2595
2631
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "hidden sm:inline", children: "Payments" })
2596
2632
  ] }),
2597
- /* @__PURE__ */ jsxRuntime.jsxs(uiNextjs.TabsTrigger, { value: "transactions", className: "inline-flex items-center gap-2 px-3 py-1.5", children: [
2633
+ /* @__PURE__ */ jsxRuntime.jsxs(uiCore.TabsTrigger, { value: "transactions", className: "inline-flex items-center gap-2 px-3 py-1.5", children: [
2598
2634
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.History, { className: "h-4 w-4" }),
2599
2635
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "hidden sm:inline", children: "Transactions" })
2600
2636
  ] })
2601
2637
  ] }),
2602
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.TabsContent, { value: "overview", className: "space-y-6", children: /* @__PURE__ */ jsxRuntime.jsx(OverviewProvider, { children: /* @__PURE__ */ jsxRuntime.jsxs(PaymentsProvider, { children: [
2638
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.TabsContent, { value: "overview", className: "space-y-6", children: /* @__PURE__ */ jsxRuntime.jsx(OverviewProvider, { children: /* @__PURE__ */ jsxRuntime.jsxs(PaymentsProvider, { children: [
2603
2639
  /* @__PURE__ */ jsxRuntime.jsx(OverviewView, {}),
2604
2640
  /* @__PURE__ */ jsxRuntime.jsx(CreatePaymentDialog, {})
2605
2641
  ] }) }) }),
2606
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.TabsContent, { value: "payments", className: "space-y-6", children: /* @__PURE__ */ jsxRuntime.jsxs(PaymentsProvider, { children: [
2642
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.TabsContent, { value: "payments", className: "space-y-6", children: /* @__PURE__ */ jsxRuntime.jsxs(PaymentsProvider, { children: [
2607
2643
  /* @__PURE__ */ jsxRuntime.jsx(PaymentsView, {}),
2608
2644
  /* @__PURE__ */ jsxRuntime.jsx(CreatePaymentDialog, {})
2609
2645
  ] }) }),
2610
- /* @__PURE__ */ jsxRuntime.jsx(uiNextjs.TabsContent, { value: "transactions", className: "space-y-6", children: /* @__PURE__ */ jsxRuntime.jsx(OverviewProvider, { children: /* @__PURE__ */ jsxRuntime.jsx(TransactionsView, {}) }) })
2646
+ /* @__PURE__ */ jsxRuntime.jsx(uiCore.TabsContent, { value: "transactions", className: "space-y-6", children: /* @__PURE__ */ jsxRuntime.jsx(OverviewProvider, { children: /* @__PURE__ */ jsxRuntime.jsx(TransactionsView, {}) }) })
2611
2647
  ] }),
2612
2648
  /* @__PURE__ */ jsxRuntime.jsx(PaymentDetailsDialog, {})
2613
2649
  ] }) });
@@ -2616,7 +2652,7 @@ var PaymentsLayout = () => {
2616
2652
  // package.json
2617
2653
  var package_default = {
2618
2654
  name: "@djangocfg/ext-payments",
2619
- version: "1.0.8",
2655
+ version: "1.0.10",
2620
2656
  description: "Payments system extension for DjangoCFG",
2621
2657
  keywords: [
2622
2658
  "django",
@@ -2677,6 +2713,7 @@ var package_default = {
2677
2713
  peerDependencies: {
2678
2714
  "@djangocfg/api": "workspace:*",
2679
2715
  "@djangocfg/ext-base": "workspace:*",
2716
+ "@djangocfg/ui-core": "workspace:*",
2680
2717
  "@djangocfg/ui-nextjs": "workspace:*",
2681
2718
  consola: "^3.4.2",
2682
2719
  "lucide-react": "^0.545.0",
@@ -2691,6 +2728,7 @@ var package_default = {
2691
2728
  "@djangocfg/api": "workspace:*",
2692
2729
  "@djangocfg/ext-base": "workspace:*",
2693
2730
  "@djangocfg/typescript-config": "workspace:*",
2731
+ "@djangocfg/ui-nextjs": "workspace:*",
2694
2732
  "@types/node": "^24.7.2",
2695
2733
  "@types/react": "^19.0.0",
2696
2734
  consola: "^3.4.2",