@cedros/pay-react 1.0.3 → 1.0.5

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 (61) hide show
  1. package/README.md +110 -3
  2. package/dist/CedrosContext-CFEXGwQg.mjs +2163 -0
  3. package/dist/CedrosContext-DbndTsTA.js +11 -0
  4. package/dist/components/CryptoSubscribeButton.d.ts +50 -0
  5. package/dist/components/CryptoSubscribeButton.d.ts.map +1 -0
  6. package/dist/components/SubscribeButton.d.ts +55 -0
  7. package/dist/components/SubscribeButton.d.ts.map +1 -0
  8. package/dist/components/SubscriptionManagementPanel.d.ts +67 -0
  9. package/dist/components/SubscriptionManagementPanel.d.ts.map +1 -0
  10. package/dist/components/subscriptionPanelStyles.d.ts +13 -0
  11. package/dist/components/subscriptionPanelStyles.d.ts.map +1 -0
  12. package/dist/context/CedrosContext.d.ts +4 -0
  13. package/dist/context/CedrosContext.d.ts.map +1 -1
  14. package/dist/crypto-only.js +1 -1
  15. package/dist/crypto-only.mjs +2 -2
  16. package/dist/en-C739WV_-.mjs +19 -0
  17. package/dist/en-Cz4OpvN-.js +1 -0
  18. package/dist/hooks/useCryptoSubscription.d.ts +42 -0
  19. package/dist/hooks/useCryptoSubscription.d.ts.map +1 -0
  20. package/dist/hooks/useSubscription.d.ts +42 -0
  21. package/dist/hooks/useSubscription.d.ts.map +1 -0
  22. package/dist/hooks/useSubscriptionManagement.d.ts +88 -0
  23. package/dist/hooks/useSubscriptionManagement.d.ts.map +1 -0
  24. package/dist/i18n/index.d.ts +7 -0
  25. package/dist/i18n/index.d.ts.map +1 -1
  26. package/dist/i18n/useTranslation.d.ts.map +1 -1
  27. package/dist/index.d.ts +12 -2
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/index.js +1 -1
  30. package/dist/index.mjs +1658 -360
  31. package/dist/managers/ManagerCache.d.ts +4 -0
  32. package/dist/managers/ManagerCache.d.ts.map +1 -1
  33. package/dist/managers/SubscriptionChangeManager.d.ts +42 -0
  34. package/dist/managers/SubscriptionChangeManager.d.ts.map +1 -0
  35. package/dist/managers/SubscriptionManager.d.ts +113 -0
  36. package/dist/managers/SubscriptionManager.d.ts.map +1 -0
  37. package/dist/pay-react.css +1 -1
  38. package/dist/stripe-only.js +1 -1
  39. package/dist/stripe-only.mjs +2 -2
  40. package/dist/{styles-zgmHs6Hs.mjs → styles-DFcRS8Uu.mjs} +303 -278
  41. package/dist/styles-Dup9uK6S.js +1 -0
  42. package/dist/testing/index.js +1 -1
  43. package/dist/testing/index.mjs +1 -1
  44. package/dist/types/index.d.ts +1 -0
  45. package/dist/types/index.d.ts.map +1 -1
  46. package/dist/types/subscription.d.ts +300 -0
  47. package/dist/types/subscription.d.ts.map +1 -0
  48. package/dist/utils/__tests__/couponHelpers.test.d.ts +2 -0
  49. package/dist/utils/__tests__/couponHelpers.test.d.ts.map +1 -0
  50. package/dist/utils/couponHelpers.d.ts +46 -0
  51. package/dist/utils/couponHelpers.d.ts.map +1 -1
  52. package/dist/utils/index.d.ts +1 -1
  53. package/dist/utils/index.d.ts.map +1 -1
  54. package/dist/utils/uuid-shim.d.ts +9 -0
  55. package/dist/utils/uuid-shim.d.ts.map +1 -0
  56. package/package.json +1 -1
  57. package/dist/CedrosContext-B3iCqN6e.js +0 -11
  58. package/dist/CedrosContext-vX9uqZKp.mjs +0 -1796
  59. package/dist/en-CSsJl3nf.mjs +0 -19
  60. package/dist/en-D-uY3ltT.js +0 -1
  61. package/dist/styles-D3XGpsqb.js +0 -1
@@ -1,6 +1,8 @@
1
1
  import { IStripeManager } from './StripeManager';
2
2
  import { IX402Manager } from './X402Manager';
3
3
  import { IWalletManager } from './WalletManager';
4
+ import { ISubscriptionManager } from './SubscriptionManager';
5
+ import { ISubscriptionChangeManager } from './SubscriptionChangeManager';
4
6
  import { RouteDiscoveryManager } from './RouteDiscoveryManager';
5
7
  import { SolanaCluster } from '../types';
6
8
  /**
@@ -15,6 +17,8 @@ export declare function getOrCreateManagers(stripePublicKey: string, serverUrl:
15
17
  stripeManager: IStripeManager;
16
18
  x402Manager: IX402Manager;
17
19
  walletManager: IWalletManager;
20
+ subscriptionManager: ISubscriptionManager;
21
+ subscriptionChangeManager: ISubscriptionChangeManager;
18
22
  routeDiscovery: RouteDiscoveryManager;
19
23
  };
20
24
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"ManagerCache.d.ts","sourceRoot":"","sources":["../../src/managers/ManagerCache.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACrE,OAAO,EAAe,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAC/D,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAgD9C;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,eAAe,EAAE,MAAM,EACvB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,aAAa,EAC5B,cAAc,CAAC,EAAE,MAAM,EACvB,2BAA2B,CAAC,EAAE,OAAO,GACpC;IACD,aAAa,EAAE,cAAc,CAAC;IAC9B,WAAW,EAAE,YAAY,CAAC;IAC1B,aAAa,EAAE,cAAc,CAAC;IAC9B,cAAc,EAAE,qBAAqB,CAAC;CACvC,CAiDA;AAED;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAC7B,eAAe,EAAE,MAAM,EACvB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,aAAa,EAC5B,cAAc,CAAC,EAAE,MAAM,EACvB,2BAA2B,CAAC,EAAE,OAAO,GACpC,IAAI,CA4BN;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAGxC;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB;;;;;;EAQnC"}
1
+ {"version":3,"file":"ManagerCache.d.ts","sourceRoot":"","sources":["../../src/managers/ManagerCache.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACrE,OAAO,EAAe,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAC/D,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACrE,OAAO,EAAuB,KAAK,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AACvF,OAAO,EAA6B,KAAK,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AACzG,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAkD9C;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,eAAe,EAAE,MAAM,EACvB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,aAAa,EAC5B,cAAc,CAAC,EAAE,MAAM,EACvB,2BAA2B,CAAC,EAAE,OAAO,GACpC;IACD,aAAa,EAAE,cAAc,CAAC;IAC9B,WAAW,EAAE,YAAY,CAAC;IAC1B,aAAa,EAAE,cAAc,CAAC;IAC9B,mBAAmB,EAAE,oBAAoB,CAAC;IAC1C,yBAAyB,EAAE,0BAA0B,CAAC;IACtD,cAAc,EAAE,qBAAqB,CAAC;CACvC,CAqDA;AAED;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAC7B,eAAe,EAAE,MAAM,EACvB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,aAAa,EAC5B,cAAc,CAAC,EAAE,MAAM,EACvB,2BAA2B,CAAC,EAAE,OAAO,GACpC,IAAI,CA4BN;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAGxC;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB;;;;;;EAQnC"}
@@ -0,0 +1,42 @@
1
+ import { ChangeSubscriptionRequest, ChangeSubscriptionResponse, ChangePreviewRequest, ChangePreviewResponse, SubscriptionDetails, CancelSubscriptionRequest, CancelSubscriptionResponse, BillingPortalRequest, BillingPortalResponse } from '../types';
2
+ import { RouteDiscoveryManager } from './RouteDiscoveryManager';
3
+ /**
4
+ * Public interface for subscription change operations.
5
+ */
6
+ export interface ISubscriptionChangeManager {
7
+ /** Change subscription plan (upgrade or downgrade) */
8
+ changeSubscription(request: ChangeSubscriptionRequest): Promise<ChangeSubscriptionResponse>;
9
+ /** Preview subscription change (get proration details) */
10
+ previewChange(request: ChangePreviewRequest): Promise<ChangePreviewResponse>;
11
+ /** Get full subscription details */
12
+ getDetails(resource: string, userId: string): Promise<SubscriptionDetails>;
13
+ /** Cancel a subscription */
14
+ cancel(request: CancelSubscriptionRequest): Promise<CancelSubscriptionResponse>;
15
+ /** Get Stripe billing portal URL */
16
+ getBillingPortalUrl(request: BillingPortalRequest): Promise<BillingPortalResponse>;
17
+ }
18
+ /**
19
+ * Internal implementation of subscription change operations.
20
+ *
21
+ * @internal
22
+ */
23
+ export declare class SubscriptionChangeManager implements ISubscriptionChangeManager {
24
+ private readonly routeDiscovery;
25
+ private readonly rateLimiter;
26
+ private readonly queryRateLimiter;
27
+ private readonly circuitBreaker;
28
+ constructor(routeDiscovery: RouteDiscoveryManager);
29
+ /** Internal helper: execute with rate limiting, circuit breaker, and retry */
30
+ private executeWithResilience;
31
+ /** Change subscription plan (upgrade or downgrade) */
32
+ changeSubscription(request: ChangeSubscriptionRequest): Promise<ChangeSubscriptionResponse>;
33
+ /** Preview subscription change (get proration details) */
34
+ previewChange(request: ChangePreviewRequest): Promise<ChangePreviewResponse>;
35
+ /** Get full subscription details */
36
+ getDetails(resource: string, userId: string): Promise<SubscriptionDetails>;
37
+ /** Cancel a subscription */
38
+ cancel(request: CancelSubscriptionRequest): Promise<CancelSubscriptionResponse>;
39
+ /** Get Stripe billing portal URL */
40
+ getBillingPortalUrl(request: BillingPortalRequest): Promise<BillingPortalResponse>;
41
+ }
42
+ //# sourceMappingURL=SubscriptionChangeManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SubscriptionChangeManager.d.ts","sourceRoot":"","sources":["../../src/managers/SubscriptionChangeManager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EACV,yBAAyB,EACzB,0BAA0B,EAC1B,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,EACnB,yBAAyB,EACzB,0BAA0B,EAC1B,oBAAoB,EACpB,qBAAqB,EACtB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAQhE;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,sDAAsD;IACtD,kBAAkB,CAAC,OAAO,EAAE,yBAAyB,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAAC;IAE5F,0DAA0D;IAC1D,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAE7E,oCAAoC;IACpC,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAE3E,4BAA4B;IAC5B,MAAM,CAAC,OAAO,EAAE,yBAAyB,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAAC;IAEhF,oCAAoC;IACpC,mBAAmB,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;CACpF;AAED;;;;GAIG;AACH,qBAAa,yBAA0B,YAAW,0BAA0B;IAC1E,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAwB;IACvD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAmD;IAC/E,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAiD;IAElF,OAAO,CAAC,QAAQ,CAAC,cAAc,CAI5B;gBAES,cAAc,EAAE,qBAAqB;IAIjD,8EAA8E;YAChE,qBAAqB;IAsBnC,sDAAsD;IAChD,kBAAkB,CAAC,OAAO,EAAE,yBAAyB,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAqBjG,0DAA0D;IACpD,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAqBlF,oCAAoC;IAC9B,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAqBhF,4BAA4B;IACtB,MAAM,CAAC,OAAO,EAAE,yBAAyB,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAqBrF,oCAAoC;IAC9B,mBAAmB,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,CAAC;CAoBzF"}
@@ -0,0 +1,113 @@
1
+ import { PaymentResult, SubscriptionSessionRequest, SubscriptionSessionResponse, SubscriptionStatusRequest, SubscriptionStatusResponse, SubscriptionQuote, BillingInterval, CancelSubscriptionRequest, CancelSubscriptionResponse, BillingPortalRequest, BillingPortalResponse, ActivateX402SubscriptionRequest, ActivateX402SubscriptionResponse } from '../types';
2
+ import { RouteDiscoveryManager } from './RouteDiscoveryManager';
3
+ /**
4
+ * Options for requesting a subscription quote (x402)
5
+ */
6
+ export interface SubscriptionQuoteOptions {
7
+ /** Coupon code for discount */
8
+ couponCode?: string;
9
+ /** Custom interval in days (for 'custom' interval) */
10
+ intervalDays?: number;
11
+ }
12
+ /**
13
+ * Public interface for subscription management.
14
+ *
15
+ * Use this interface for type annotations instead of the concrete SubscriptionManager class.
16
+ *
17
+ * @example
18
+ * ```tsx
19
+ * function MyComponent() {
20
+ * const { subscriptionManager } = useCedrosContext();
21
+ * await subscriptionManager.processSubscription({
22
+ * resource: 'plan-pro',
23
+ * interval: 'monthly',
24
+ * });
25
+ * }
26
+ * ```
27
+ */
28
+ export interface ISubscriptionManager {
29
+ /**
30
+ * Initialize Stripe.js library (for redirect flow)
31
+ */
32
+ initialize(): Promise<void>;
33
+ /**
34
+ * Create a Stripe subscription checkout session
35
+ */
36
+ createSubscriptionSession(request: SubscriptionSessionRequest): Promise<SubscriptionSessionResponse>;
37
+ /**
38
+ * Redirect to Stripe checkout page
39
+ */
40
+ redirectToCheckout(sessionId: string): Promise<PaymentResult>;
41
+ /**
42
+ * Complete subscription flow: create session and redirect (Stripe)
43
+ */
44
+ processSubscription(request: SubscriptionSessionRequest): Promise<PaymentResult>;
45
+ /**
46
+ * Check subscription status (for x402 gating)
47
+ */
48
+ checkSubscriptionStatus(request: SubscriptionStatusRequest): Promise<SubscriptionStatusResponse>;
49
+ /**
50
+ * Request a subscription quote for x402 crypto payment
51
+ */
52
+ requestSubscriptionQuote(resource: string, interval: BillingInterval, options?: SubscriptionQuoteOptions): Promise<SubscriptionQuote>;
53
+ /**
54
+ * Cancel a subscription
55
+ */
56
+ cancelSubscription(request: CancelSubscriptionRequest): Promise<CancelSubscriptionResponse>;
57
+ /**
58
+ * Get Stripe billing portal URL for subscription management
59
+ */
60
+ getBillingPortalUrl(request: BillingPortalRequest): Promise<BillingPortalResponse>;
61
+ /**
62
+ * Activate x402 subscription after payment verification
63
+ */
64
+ activateX402Subscription(request: ActivateX402SubscriptionRequest): Promise<ActivateX402SubscriptionResponse>;
65
+ }
66
+ /**
67
+ * Internal implementation of subscription management.
68
+ *
69
+ * @internal
70
+ * **DO NOT USE THIS CLASS DIRECTLY**
71
+ *
72
+ * @see {@link ISubscriptionManager} for the stable interface
73
+ */
74
+ export declare class SubscriptionManager implements ISubscriptionManager {
75
+ private stripe;
76
+ private readonly publicKey;
77
+ private readonly routeDiscovery;
78
+ private readonly sessionRateLimiter;
79
+ private readonly statusRateLimiter;
80
+ private readonly circuitBreaker;
81
+ constructor(publicKey: string, routeDiscovery: RouteDiscoveryManager);
82
+ /** Initialize Stripe.js library */
83
+ initialize(): Promise<void>;
84
+ /** Internal helper: execute with rate limiting, circuit breaker, and retry */
85
+ private executeWithResilience;
86
+ /**
87
+ * Create a Stripe subscription checkout session
88
+ */
89
+ createSubscriptionSession(request: SubscriptionSessionRequest): Promise<SubscriptionSessionResponse>;
90
+ /**
91
+ * Redirect to Stripe checkout
92
+ */
93
+ redirectToCheckout(sessionId: string): Promise<PaymentResult>;
94
+ /**
95
+ * Complete subscription flow: create session and redirect
96
+ */
97
+ processSubscription(request: SubscriptionSessionRequest): Promise<PaymentResult>;
98
+ /**
99
+ * Check subscription status (for x402 gating)
100
+ */
101
+ checkSubscriptionStatus(request: SubscriptionStatusRequest): Promise<SubscriptionStatusResponse>;
102
+ /**
103
+ * Request a subscription quote for x402 crypto payment
104
+ */
105
+ requestSubscriptionQuote(resource: string, interval: BillingInterval, options?: SubscriptionQuoteOptions): Promise<SubscriptionQuote>;
106
+ /** Cancel a subscription */
107
+ cancelSubscription(request: CancelSubscriptionRequest): Promise<CancelSubscriptionResponse>;
108
+ /** Get Stripe billing portal URL for subscription management */
109
+ getBillingPortalUrl(request: BillingPortalRequest): Promise<BillingPortalResponse>;
110
+ /** Activate x402 subscription after payment verification */
111
+ activateX402Subscription(request: ActivateX402SubscriptionRequest): Promise<ActivateX402SubscriptionResponse>;
112
+ }
113
+ //# sourceMappingURL=SubscriptionManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SubscriptionManager.d.ts","sourceRoot":"","sources":["../../src/managers/SubscriptionManager.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- .cedros-theme-root{--cedros-surface-bg: transparent;--cedros-surface-text: #111827;--cedros-surface-border: transparent;--cedros-stripe-bg: linear-gradient(135deg, #635bff 0%, #4f46e5 100%);--cedros-stripe-text: #ffffff;--cedros-stripe-shadow: rgba(79, 70, 229, .25);--cedros-crypto-bg: linear-gradient(135deg, #14f195 0%, #9945ff 100%);--cedros-crypto-text: #ffffff;--cedros-crypto-shadow: rgba(99, 102, 241, .25);--cedros-error-bg: #fee2e2;--cedros-error-border: #fca5a5;--cedros-error-text: #b91c1c;--cedros-success-bg: #dcfce7;--cedros-success-border: #86efac;--cedros-success-text: #166534;--cedros-modal-overlay: rgba(0, 0, 0, .5);--cedros-modal-bg: #ffffff;--cedros-modal-border: rgba(15, 23, 42, .08);--cedros-button-radius: 8px;--cedros-button-padding: .75rem 1.5rem;--cedros-button-font-size: 1rem;--cedros-button-font-weight: 600}.cedros-theme.cedros-theme--dark{--cedros-surface-bg: transparent;--cedros-surface-text: #f9fafb;--cedros-surface-border: transparent;--cedros-stripe-bg: linear-gradient(135deg, #4f46e5 0%, #3730a3 100%);--cedros-stripe-text: #f5f3ff;--cedros-stripe-shadow: rgba(99, 102, 241, .35);--cedros-crypto-bg: linear-gradient(135deg, #1dd4a6 0%, #6d28d9 100%);--cedros-crypto-text: #ecfeff;--cedros-crypto-shadow: rgba(75, 85, 99, .35);--cedros-error-bg: #7f1d1d;--cedros-error-border: #fca5a5;--cedros-error-text: #fecaca;--cedros-success-bg: #14532d;--cedros-success-border: #4ade80;--cedros-success-text: #bbf7d0;--cedros-modal-overlay: rgba(0, 0, 0, .75);--cedros-modal-bg: #1f2937;--cedros-modal-border: rgba(148, 163, 184, .25)}.cedros-theme__pay{display:flex;flex-direction:column;gap:1rem;max-width:400px;background:var(--cedros-surface-bg);color:var(--cedros-surface-text);border:none;box-sizing:border-box}.cedros-theme__pay-content{display:flex;flex-direction:column;gap:.75rem}.cedros-theme__pay-content--horizontal{flex-direction:row;gap:.75rem}.cedros-theme__pay-content--vertical{flex-direction:column}.cedros-theme__button{padding:var(--cedros-button-padding);font-size:var(--cedros-button-font-size);font-weight:var(--cedros-button-font-weight);border:none;border-radius:var(--cedros-button-radius);cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,opacity .2s ease;width:100%;text-align:center}.cedros-theme__button:hover:not(:disabled){transform:translateY(-1px)}.cedros-theme__button:disabled{opacity:.6;cursor:not-allowed}.cedros-theme__stripe{background:var(--cedros-stripe-bg);color:var(--cedros-stripe-text);box-shadow:0 4px 12px var(--cedros-stripe-shadow)}.cedros-theme__stripe:hover:not(:disabled){box-shadow:0 8px 18px var(--cedros-stripe-shadow)}.cedros-theme__crypto{background:var(--cedros-crypto-bg);color:var(--cedros-crypto-text);box-shadow:0 4px 12px var(--cedros-crypto-shadow)}.cedros-theme__crypto:hover:not(:disabled){box-shadow:0 8px 18px var(--cedros-crypto-shadow)}.cedros-theme__error{padding:.75rem;background-color:var(--cedros-error-bg);border:1px solid var(--cedros-error-border);border-radius:8px;color:var(--cedros-error-text);font-size:.875rem;margin-top:.5rem}.cedros-theme__success{padding:.75rem;background-color:var(--cedros-success-bg);border:1px solid var(--cedros-success-border);border-radius:8px;color:var(--cedros-success-text);font-size:.875rem;margin-top:.5rem}.cedros-theme__notice{padding:.75rem;background-color:#0e74901f;border:1px solid rgba(14,116,144,.3);border-radius:8px;color:#0f172a;font-size:.875rem;margin-bottom:.75rem}@media(max-width:640px){.cedros-theme__pay{max-width:100%}.cedros-theme__button{font-size:.875rem;padding:.625rem 1.25rem}.cedros-theme__pay-content--horizontal{flex-direction:column}}
1
+ .cedros-theme-root{--cedros-surface-bg: transparent;--cedros-surface-text: #111827;--cedros-surface-border: transparent;--cedros-stripe-bg: linear-gradient(135deg, #635bff 0%, #4f46e5 100%);--cedros-stripe-text: #ffffff;--cedros-stripe-shadow: rgba(79, 70, 229, .25);--cedros-crypto-bg: linear-gradient(135deg, #14f195 0%, #9945ff 100%);--cedros-crypto-text: #ffffff;--cedros-crypto-shadow: rgba(99, 102, 241, .25);--cedros-error-bg: #fee2e2;--cedros-error-border: #fca5a5;--cedros-error-text: #b91c1c;--cedros-success-bg: #dcfce7;--cedros-success-border: #86efac;--cedros-success-text: #166534;--cedros-modal-overlay: rgba(0, 0, 0, .5);--cedros-modal-bg: #ffffff;--cedros-modal-border: rgba(15, 23, 42, .08);--cedros-button-radius: 8px;--cedros-button-padding: .75rem 1.5rem;--cedros-button-font-size: 1rem;--cedros-button-font-weight: 600}.cedros-theme.cedros-theme--dark{--cedros-surface-bg: transparent;--cedros-surface-text: #f9fafb;--cedros-surface-border: transparent;--cedros-stripe-bg: linear-gradient(135deg, #4f46e5 0%, #3730a3 100%);--cedros-stripe-text: #f5f3ff;--cedros-stripe-shadow: rgba(99, 102, 241, .35);--cedros-crypto-bg: linear-gradient(135deg, #1dd4a6 0%, #6d28d9 100%);--cedros-crypto-text: #ecfeff;--cedros-crypto-shadow: rgba(75, 85, 99, .35);--cedros-error-bg: #7f1d1d;--cedros-error-border: #fca5a5;--cedros-error-text: #fecaca;--cedros-success-bg: #14532d;--cedros-success-border: #4ade80;--cedros-success-text: #bbf7d0;--cedros-modal-overlay: rgba(0, 0, 0, .75);--cedros-modal-bg: #1f2937;--cedros-modal-border: rgba(148, 163, 184, .25)}.cedros-theme__pay{display:flex;flex-direction:column;gap:1rem;max-width:400px;background:var(--cedros-surface-bg);color:var(--cedros-surface-text);border:none;box-sizing:border-box}.cedros-theme__pay-content{display:flex;flex-direction:column;gap:.75rem}.cedros-theme__pay-content--horizontal{flex-direction:row;gap:.75rem}.cedros-theme__pay-content--horizontal .cedros-theme__button{flex:1;min-width:0}.cedros-theme__pay-content--vertical{flex-direction:column}.cedros-theme__button{padding:var(--cedros-button-padding);font-size:var(--cedros-button-font-size);font-weight:var(--cedros-button-font-weight);border:none;border-radius:var(--cedros-button-radius);cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,opacity .2s ease;width:100%;text-align:center}.cedros-theme__button:hover:not(:disabled){transform:translateY(-1px)}.cedros-theme__button:disabled{opacity:.6;cursor:not-allowed}.cedros-theme__stripe{background:var(--cedros-stripe-bg);color:var(--cedros-stripe-text);box-shadow:0 4px 12px var(--cedros-stripe-shadow)}.cedros-theme__stripe:hover:not(:disabled){box-shadow:0 8px 18px var(--cedros-stripe-shadow)}.cedros-theme__crypto{background:var(--cedros-crypto-bg);color:var(--cedros-crypto-text);box-shadow:0 4px 12px var(--cedros-crypto-shadow)}.cedros-theme__crypto:hover:not(:disabled){box-shadow:0 8px 18px var(--cedros-crypto-shadow)}.cedros-theme__error{padding:.75rem;background-color:var(--cedros-error-bg);border:1px solid var(--cedros-error-border);border-radius:8px;color:var(--cedros-error-text);font-size:.875rem;margin-top:.5rem}.cedros-theme__success{padding:.75rem;background-color:var(--cedros-success-bg);border:1px solid var(--cedros-success-border);border-radius:8px;color:var(--cedros-success-text);font-size:.875rem;margin-top:.5rem}.cedros-theme__notice{padding:.75rem;background-color:#0e74901f;border:1px solid rgba(14,116,144,.3);border-radius:8px;color:#0f172a;font-size:.875rem;margin-bottom:.75rem}@media(max-width:640px){.cedros-theme__pay{max-width:100%}.cedros-theme__button{font-size:.875rem;padding:.625rem 1.25rem}.cedros-theme__pay-content--horizontal{flex-direction:column}}
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./CedrosContext-B3iCqN6e.js"),e=require("./styles-D3XGpsqb.js");require("@solana/wallet-adapter-wallets");exports.CedrosProvider=r.CedrosProvider;exports.LogLevel=r.LogLevel;exports.Logger=r.Logger;exports.RATE_LIMITER_PRESETS=r.RATE_LIMITER_PRESETS;exports.createLogger=r.createLogger;exports.createRateLimiter=r.createRateLimiter;exports.getLogger=r.getLogger;exports.useCedrosContext=r.useCedrosContext;exports.useCedrosTheme=r.useCedrosTheme;exports.validateConfig=r.validateConfig;exports.CEDROS_EVENTS=e.CEDROS_EVENTS;exports.ERROR_CATEGORIES=e.ERROR_CATEGORIES;exports.PaymentMethodBadge=e.PaymentMethodBadge;exports.PaymentModal=e.PaymentModal;exports.ProductPrice=e.ProductPrice;exports.StripeButton=e.StripeButton;exports.calculateDiscountPercentage=e.calculateDiscountPercentage;exports.emitPaymentError=e.emitPaymentError;exports.emitPaymentProcessing=e.emitPaymentProcessing;exports.emitPaymentStart=e.emitPaymentStart;exports.emitPaymentSuccess=e.emitPaymentSuccess;exports.formatCouponCodes=e.formatCouponCodes;exports.getUserErrorMessage=e.getUserErrorMessage;exports.isRetryableError=e.isRetryableError;exports.parseCouponCodes=e.parseCouponCodes;exports.parseStructuredErrorResponse=e.parseErrorResponse;exports.usePaymentMode=e.usePaymentMode;exports.useStripeCheckout=e.useStripeCheckout;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./CedrosContext-DbndTsTA.js"),e=require("./styles-Dup9uK6S.js");require("@solana/wallet-adapter-wallets");exports.CedrosProvider=r.CedrosProvider;exports.LogLevel=r.LogLevel;exports.Logger=r.Logger;exports.RATE_LIMITER_PRESETS=r.RATE_LIMITER_PRESETS;exports.createLogger=r.createLogger;exports.createRateLimiter=r.createRateLimiter;exports.getLogger=r.getLogger;exports.useCedrosContext=r.useCedrosContext;exports.useCedrosTheme=r.useCedrosTheme;exports.validateConfig=r.validateConfig;exports.CEDROS_EVENTS=e.CEDROS_EVENTS;exports.ERROR_CATEGORIES=e.ERROR_CATEGORIES;exports.PaymentMethodBadge=e.PaymentMethodBadge;exports.PaymentModal=e.PaymentModal;exports.ProductPrice=e.ProductPrice;exports.StripeButton=e.StripeButton;exports.calculateDiscountPercentage=e.calculateDiscountPercentage;exports.emitPaymentError=e.emitPaymentError;exports.emitPaymentProcessing=e.emitPaymentProcessing;exports.emitPaymentStart=e.emitPaymentStart;exports.emitPaymentSuccess=e.emitPaymentSuccess;exports.formatCouponCodes=e.formatCouponCodes;exports.getUserErrorMessage=e.getUserErrorMessage;exports.isRetryableError=e.isRetryableError;exports.parseCouponCodes=e.parseCouponCodes;exports.parseStructuredErrorResponse=e.parseErrorResponse;exports.usePaymentMode=e.usePaymentMode;exports.useStripeCheckout=e.useStripeCheckout;
@@ -1,5 +1,5 @@
1
- import { C as r, L as t, b as o, R as i, d as m, c as g, g as n, u, a as c, v as d } from "./CedrosContext-vX9uqZKp.mjs";
2
- import { C, E as P, b as R, P as p, a as S, S as y, d as L, i as l, g as T, e as f, h as M, f as h, l as v, k as _, p as b, j as x, c as I, u as O } from "./styles-zgmHs6Hs.mjs";
1
+ import { C as r, L as t, b as o, R as i, d as m, c as g, g as n, u, a as c, v as d } from "./CedrosContext-CFEXGwQg.mjs";
2
+ import { C, E as P, b as R, P as p, a as S, S as y, d as L, i as l, g as T, e as f, h as M, f as h, l as v, k as _, p as b, j as x, c as I, u as O } from "./styles-DFcRS8Uu.mjs";
3
3
  import "@solana/wallet-adapter-wallets";
4
4
  export {
5
5
  C as CEDROS_EVENTS,