@cedros/pay-react 1.1.29 → 1.1.31

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 (120) hide show
  1. package/README.md +53 -22
  2. package/dist/{AISettingsSection-B7qrycfY.js → AISettingsSection-B12x5sV5.js} +2 -2
  3. package/dist/{AISettingsSection-DtAgMsDw.mjs → AISettingsSection-DXWDF4Cf.mjs} +4 -4
  4. package/dist/AutosaveIndicator-CJdkhZis.js +1 -0
  5. package/dist/{AutosaveIndicator-BEvABoKU.mjs → AutosaveIndicator-D966vOrP.mjs} +1 -1
  6. package/dist/CedrosContext-3Dz7_9Ct.js +3 -0
  7. package/dist/{CedrosContext-5Gjveoba.mjs → CedrosContext-DQc_k5PG.mjs} +430 -314
  8. package/dist/ChatLogsSection-CH37u0nX.js +1 -0
  9. package/dist/{ChatLogsSection-Ber5o8hF.mjs → ChatLogsSection-DR7mpuQS.mjs} +2 -2
  10. package/dist/{ComplianceSection-ZCr0wsvw.mjs → ComplianceSection-C61_Hf-X.mjs} +3 -3
  11. package/dist/ComplianceSection-DS4e2IBp.js +1 -0
  12. package/dist/CryptoButton-BQceZhbn.js +1 -0
  13. package/dist/{CryptoButton-Cl2kZbOP.mjs → CryptoButton-BuO_RZLj.mjs} +4 -5
  14. package/dist/CustomersSection-Bzs9Qon3.js +1 -0
  15. package/dist/{CustomersSection-D9UknSKC.mjs → CustomersSection-CWWvusxs.mjs} +2 -2
  16. package/dist/DisputesSection-ClcYIHga.js +1 -0
  17. package/dist/{DisputesSection-C_eySK-W.mjs → DisputesSection-D8rcS5Vs.mjs} +2 -2
  18. package/dist/{Dropdown-B90Zabxr.mjs → Dropdown-0y3S40Xf.mjs} +1 -1
  19. package/dist/Dropdown-BuKiVR_L.js +1 -0
  20. package/dist/{ErrorBanner-CZXsHi3H.mjs → ErrorBanner-DAjYj6Dx.mjs} +1 -1
  21. package/dist/ErrorBanner-DxrRVqwe.js +1 -0
  22. package/dist/FAQSection-0UnN2BZs.js +1 -0
  23. package/dist/{FAQSection-Bv_Hdt8B.mjs → FAQSection-Dck0NM-A.mjs} +3 -3
  24. package/dist/{ImagesSection-DpdXQ6qu.mjs → ImagesSection-Bn9GrRRa.mjs} +2 -2
  25. package/dist/ImagesSection-CSwBHvNl.js +1 -0
  26. package/dist/{InventorySection-DZMu9DMw.mjs → InventorySection-Dytfmtn8.mjs} +2 -2
  27. package/dist/InventorySection-ymxaMcIg.js +1 -0
  28. package/dist/{MessagingSection-D_cOBfFt.mjs → MessagingSection-CHFbSxJL.mjs} +3 -3
  29. package/dist/MessagingSection-Dtfv0DvU.js +1 -0
  30. package/dist/OrdersSection-BuzTs9XG.js +1 -0
  31. package/dist/{OrdersSection-wfPavit9.mjs → OrdersSection-vYNuVF5X.mjs} +2 -2
  32. package/dist/{PaymentSettingsSection-BdBDgaRg.js → PaymentSettingsSection-BOaW8lLv.js} +1 -1
  33. package/dist/{PaymentSettingsSection-DunzBo9n.mjs → PaymentSettingsSection-BqdGrXen.mjs} +3 -3
  34. package/dist/{ReturnsSection-B4FL7bUv.mjs → ReturnsSection-CRzhXKtI.mjs} +2 -2
  35. package/dist/ReturnsSection-i5W_3so1.js +1 -0
  36. package/dist/{SettingsSection-DoeNDbqd.mjs → SettingsSection-6o3d8DrH.mjs} +1 -1
  37. package/dist/{SettingsSection-Cz2Yjdhr.js → SettingsSection-CIhO51Zj.js} +1 -1
  38. package/dist/ShippingSection-BUzPW1AG.js +1 -0
  39. package/dist/{ShippingSection-BlVsYC6B.mjs → ShippingSection-CbNzGyCP.mjs} +2 -2
  40. package/dist/SingleCategorySettings-BxVUUy8R.js +3 -0
  41. package/dist/{SingleCategorySettings-B406nnF-.mjs → SingleCategorySettings-Qj_ptB_x.mjs} +4 -4
  42. package/dist/{StatsBar-D4v-I_Dj.mjs → StatsBar-CwCBHBn-.mjs} +1 -1
  43. package/dist/StatsBar-DDUWoizP.js +1 -0
  44. package/dist/StorefrontSection-CZZj5he9.js +1 -0
  45. package/dist/{StorefrontSection-BK_rhrAi.mjs → StorefrontSection-DIYDmj59.mjs} +4 -4
  46. package/dist/SubscriptionsSection-Bof5MElz.js +1 -0
  47. package/dist/{SubscriptionsSection-D8V9RBv-.mjs → SubscriptionsSection-lMVHdV5X.mjs} +3 -3
  48. package/dist/TaxSection-Be-9v60Z.js +1 -0
  49. package/dist/{TaxSection-Cj6TXL6x.mjs → TaxSection-dD7PzQvG.mjs} +2 -2
  50. package/dist/Token22Section-Di5fHsrU.js +1 -0
  51. package/dist/{Token22Section-DtYAcT54.mjs → Token22Section-Dos0CYEk.mjs} +2 -2
  52. package/dist/{WalletManager-D-eoqUDy.mjs → WalletManager-CGR69MiR.mjs} +1 -1
  53. package/dist/{WalletManager-DXChB9LA.js → WalletManager-ZJbGQHrn.js} +1 -1
  54. package/dist/{WebhooksSection-DBAIxtBy.mjs → WebhooksSection-5gqXzIhq.mjs} +2 -2
  55. package/dist/WebhooksSection-CiLDyl7c.js +1 -0
  56. package/dist/admin.js +1 -1
  57. package/dist/admin.mjs +4 -5
  58. package/dist/crypto-only.js +1 -1
  59. package/dist/crypto-only.mjs +102 -104
  60. package/dist/{index-9QF_UfSN.mjs → index-CU6M10Rs.mjs} +13 -14
  61. package/dist/{index-Cq9ya93W.js → index-DVxx_62C.js} +10 -10
  62. package/dist/index.js +1 -1
  63. package/dist/index.mjs +21 -23
  64. package/dist/pay-react.css +1 -1
  65. package/dist/plugin-BIkt3boU.mjs +339 -0
  66. package/dist/plugin-Dw8_Q8rE.js +1 -0
  67. package/dist/sections-D1d83mfH.js +1 -0
  68. package/dist/{sections-more-CMFgfU4d.mjs → sections-DcUfZQNE.mjs} +263 -270
  69. package/dist/src/admin/plugin.d.ts.map +1 -1
  70. package/dist/src/admin/sectionIds.d.ts.map +1 -1
  71. package/dist/src/admin.d.ts +0 -7
  72. package/dist/src/admin.d.ts.map +1 -1
  73. package/dist/src/components/admin/index.d.ts +0 -1
  74. package/dist/src/components/admin/index.d.ts.map +1 -1
  75. package/dist/src/index.d.ts +0 -1
  76. package/dist/src/index.d.ts.map +1 -1
  77. package/dist/stripe-only.js +1 -1
  78. package/dist/stripe-only.mjs +18 -19
  79. package/dist/styles-BwaDljnz.js +1 -0
  80. package/dist/{styles-DGagylUj.mjs → styles-fihm6qVA.mjs} +51 -52
  81. package/dist/testing/index.js +1 -1
  82. package/dist/testing/index.mjs +1 -1
  83. package/package.json +6 -2
  84. package/dist/AutosaveIndicator-DiyeAg93.js +0 -1
  85. package/dist/CedrosContext-CCakH2SZ.js +0 -3
  86. package/dist/CedrosPayAdminDashboard-CAwEvn66.js +0 -1
  87. package/dist/CedrosPayAdminDashboard-CBuvNAtB.mjs +0 -250
  88. package/dist/ChatLogsSection-DLxMMi9I.js +0 -1
  89. package/dist/ComplianceSection-Buu0zTiL.js +0 -1
  90. package/dist/CryptoButton-DxFCYDlJ.js +0 -1
  91. package/dist/CustomersSection-BywmMLur.js +0 -1
  92. package/dist/DisputesSection-DwkHGv2a.js +0 -1
  93. package/dist/Dropdown-CtY91emj.js +0 -1
  94. package/dist/ErrorBanner-Cx2dUhps.js +0 -1
  95. package/dist/FAQSection-DlPLnIJD.js +0 -1
  96. package/dist/ImagesSection-B4Jzet79.js +0 -1
  97. package/dist/InventorySection-BgRdpn1l.js +0 -1
  98. package/dist/MessagingSection-CxV-pf-f.js +0 -1
  99. package/dist/OrdersSection-BbAX79Ff.js +0 -1
  100. package/dist/ReturnsSection-7k4LZ8yp.js +0 -1
  101. package/dist/ShippingSection-C-HI8rOb.js +0 -1
  102. package/dist/SingleCategorySettings-BqC2UXt3.js +0 -3
  103. package/dist/StatsBar-m6GSRNxs.js +0 -1
  104. package/dist/StorefrontSection-Axvh_KeS.js +0 -1
  105. package/dist/SubscriptionsSection-EeULMWIB.js +0 -1
  106. package/dist/TaxSection-CzHPhaHl.js +0 -1
  107. package/dist/ThemeContext-CFXyYx7A.js +0 -1
  108. package/dist/ThemeContext-l0bqcOGW.mjs +0 -126
  109. package/dist/Token22Section-DqRKVG_G.js +0 -1
  110. package/dist/WebhooksSection-D--iPZuM.js +0 -1
  111. package/dist/sectionIds-B_tFiNvF.js +0 -1
  112. package/dist/sectionIds-DBavltrL.mjs +0 -359
  113. package/dist/sections-BHph7CYj.mjs +0 -9
  114. package/dist/sections-C2zEJr5G.js +0 -1
  115. package/dist/sections-more-C1VNVwkp.js +0 -1
  116. package/dist/src/components/admin/CedrosPayAdminDashboard.d.ts +0 -40
  117. package/dist/src/components/admin/CedrosPayAdminDashboard.d.ts.map +0 -1
  118. package/dist/src/components/admin/LazyCedrosPayAdminDashboard.d.ts +0 -4
  119. package/dist/src/components/admin/LazyCedrosPayAdminDashboard.d.ts.map +0 -1
  120. package/dist/styles--fxb3lCl.js +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../src/admin/plugin.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAiD,MAAM,SAAS,CAAC;AAuC1F;;;;GAIG;AACH,eAAO,MAAM,eAAe,EAAE,WAkF7B,CAAC;AAEF,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../src/admin/plugin.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAiD,MAAM,SAAS,CAAC;AAwC1F;;;;GAIG;AACH,eAAO,MAAM,eAAe,EAAE,WA8G7B,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"sectionIds.d.ts","sourceRoot":"","sources":["../../../src/admin/sectionIds.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,gDAAgD;AAChD,MAAM,WAAW,gBAAgB;IAC/B,uCAAuC;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,mEAAmE;IACnE,WAAW,EAAE,MAAM,CAAC;IACpB,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,oBAAoB;IACpB,KAAK,EAAE,OAAO,GAAG,eAAe,CAAC;IACjC,kCAAkC;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,qDAAqD;IACrD,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,EAAE,SAAS,gBAAgB,EAcjD,CAAC;AAEX,kFAAkF;AAClF,eAAO,MAAM,sBAAsB,UAA8C,CAAC;AAElF,qBAAqB;AACrB,eAAO,MAAM,iBAAiB;;;;;;;;;;EAGpB,CAAC"}
1
+ {"version":3,"file":"sectionIds.d.ts","sourceRoot":"","sources":["../../../src/admin/sectionIds.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,gDAAgD;AAChD,MAAM,WAAW,gBAAgB;IAC/B,uCAAuC;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,mEAAmE;IACnE,WAAW,EAAE,MAAM,CAAC;IACpB,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,oBAAoB;IACpB,KAAK,EAAE,OAAO,GAAG,eAAe,CAAC;IACjC,kCAAkC;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,qDAAqD;IACrD,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,EAAE,SAAS,gBAAgB,EA0BjD,CAAC;AAEX,kFAAkF;AAClF,eAAO,MAAM,sBAAsB,UAA8C,CAAC;AAElF,qBAAqB;AACrB,eAAO,MAAM,iBAAiB;;;;;;;;;;EAGpB,CAAC"}
@@ -1,9 +1,2 @@
1
- /**
2
- * Additive admin-focused entrypoint.
3
- *
4
- * Prefer `@cedros/pay-react/admin` for AdminShell composition and the
5
- * cedros-pay plugin contract.
6
- */
7
- export { CedrosPayAdminDashboard, type CedrosPayAdminDashboardProps, type DashboardSection, } from './components/admin';
8
1
  export { cedrosPayPlugin, CEDROS_PAY_SECTIONS, CEDROS_PAY_SECTION_IDS, CEDROS_PAY_GROUPS, type AdminHostContext, type AdminHostServiceBag, type SectionReference, type AdminPlugin, type AdminSectionConfig, type AdminGroupConfig, type AdminSectionProps, type HostContext, type PluginContext, type PluginRegistry, type PluginId, type SectionId, type QualifiedSectionId, type PluginPermission, } from './admin/index';
9
2
  //# sourceMappingURL=admin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../../src/admin.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,uBAAuB,EACvB,KAAK,4BAA4B,EACjC,KAAK,gBAAgB,GACtB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,sBAAsB,EACtB,iBAAiB,EACjB,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,QAAQ,EACb,KAAK,SAAS,EACd,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,GACtB,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../../src/admin.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,oBAAoB,CAAC;AAE5B,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,sBAAsB,EACtB,iBAAiB,EACjB,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,QAAQ,EACb,KAAK,SAAS,EACd,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,GACtB,MAAM,eAAe,CAAC"}
@@ -1,7 +1,6 @@
1
1
  import { ComponentType } from 'react';
2
2
  import { SectionProps } from './types';
3
3
  import { SettingsSectionProps } from './SettingsSection';
4
- export { CedrosPayAdminDashboard, type CedrosPayAdminDashboardProps, type DashboardSection, } from './LazyCedrosPayAdminDashboard';
5
4
  export { ConfigEditor, type ConfigEditorProps } from './ConfigEditor';
6
5
  export declare const SettingsSection: ComponentType<SettingsSectionProps>;
7
6
  export { type SettingsSectionProps } from './SettingsSection';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/admin/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAIL,KAAK,aAAa,EAGnB,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAkB9D,OAAO,EACL,uBAAuB,EACvB,KAAK,4BAA4B,EACjC,KAAK,gBAAgB,GACtB,MAAM,+BAA+B,CAAC;AAGvC,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACtE,eAAO,MAAM,eAAe,qCAE3B,CAAC;AACF,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAE9D,eAAO,MAAM,oBAAoB,6BAEhC,CAAC;AACF,eAAO,MAAM,iBAAiB,6BAE7B,CAAC;AACF,eAAO,MAAM,UAAU,6BAEtB,CAAC;AAGF,YAAY,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAChH,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,EACvB,KAAK,SAAS,GACf,MAAM,aAAa,CAAC;AAGrB,eAAO,MAAM,eAAe,6BAE3B,CAAC;AACF,eAAO,MAAM,sBAAsB,6BAElC,CAAC;AACF,OAAO,EAAE,qBAAqB,EAAE,KAAK,gBAAgB,EAAE,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG7G,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,cAAc,GACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,YAAY,EACZ,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,GACxB,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/admin/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAIL,KAAK,aAAa,EAGnB,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAmB9D,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACtE,eAAO,MAAM,eAAe,qCAE3B,CAAC;AACF,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAE9D,eAAO,MAAM,oBAAoB,6BAEhC,CAAC;AACF,eAAO,MAAM,iBAAiB,6BAE7B,CAAC;AACF,eAAO,MAAM,UAAU,6BAEtB,CAAC;AAGF,YAAY,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAChH,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,EACvB,KAAK,SAAS,GACf,MAAM,aAAa,CAAC;AAGrB,eAAO,MAAM,eAAe,6BAE3B,CAAC;AACF,eAAO,MAAM,sBAAsB,6BAElC,CAAC;AACF,OAAO,EAAE,qBAAqB,EAAE,KAAK,gBAAgB,EAAE,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG7G,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,cAAc,GACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,YAAY,EACZ,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,GACxB,MAAM,gBAAgB,CAAC"}
@@ -4,7 +4,6 @@
4
4
  * Main library exports
5
5
  */
6
6
  export { CedrosPay } from './components/CedrosPay';
7
- export { CedrosPayAdminDashboard, type CedrosPayAdminDashboardProps, type DashboardSection, } from './components/admin';
8
7
  export { cedrosPayPlugin, CEDROS_PAY_SECTIONS, CEDROS_PAY_SECTION_IDS, CEDROS_PAY_GROUPS, type AdminHostContext, type AdminHostServiceBag, type SectionReference, type AdminPlugin, type AdminSectionConfig, type AdminGroupConfig, type AdminSectionProps, type HostContext, type PluginContext, type PluginRegistry, type PluginId, type SectionId, type QualifiedSectionId, type PluginPermission, } from './admin/index';
9
8
  export { StripeButton } from './components/StripeButton';
10
9
  export { ComplianceGatePage } from './components/ComplianceGatePage';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./styles--fxb3lCl.js"),t=require("./CedrosContext-CCakH2SZ.js"),r=require("./fetchWithTimeout-CG0EKbhf.js"),o=require("./ThemeContext-CFXyYx7A.js");exports.CEDROS_EVENTS=e.CEDROS_EVENTS;exports.CSP_PRESETS=e.CSP_PRESETS;exports.CedrosPay=e.CedrosPay;exports.CreditsButton=e.CreditsButton;exports.CreditsSubscribeButton=e.CreditsSubscribeButton;exports.PaymentMethodBadge=e.PaymentMethodBadge;exports.PaymentModal=e.PaymentModal;exports.ProductPrice=e.ProductPrice;exports.PurchaseButton=e.PurchaseButton;exports.RPC_PROVIDERS=e.RPC_PROVIDERS;exports.SECURITY_RECOMMENDATIONS=e.SECURITY_RECOMMENDATIONS;exports.StripeButton=e.StripeButton;exports.SubscribeButton=e.SubscribeButton;exports.SubscriptionManagementPanel=e.SubscriptionManagementPanel;exports.calculateDiscountPercentage=e.calculateDiscountPercentage;exports.createTranslator=e.createTranslator;exports.detectLocale=e.detectLocale;exports.emitPaymentError=e.emitPaymentError;exports.emitPaymentProcessing=e.emitPaymentProcessing;exports.emitPaymentStart=e.emitPaymentStart;exports.emitPaymentSuccess=e.emitPaymentSuccess;exports.emitWalletConnect=e.emitWalletConnect;exports.emitWalletConnected=e.emitWalletConnected;exports.emitWalletError=e.emitWalletError;exports.formatCSP=e.formatCSP;exports.formatCouponCodes=e.formatCouponCodes;exports.generateCSP=e.generateCSP;exports.generateCSPDirectives=e.generateCSPDirectives;exports.getAvailableLocales=e.getAvailableLocales;exports.getLocalizedError=e.getLocalizedError;exports.getUserErrorMessage=e.getUserErrorMessage;exports.isRetryableError=e.isRetryableError;exports.loadLocale=e.loadLocale;exports.logSecurityReport=e.logSecurityReport;exports.parseCouponCodes=e.parseCouponCodes;exports.stackCheckoutCoupons=e.stackCheckoutCoupons;exports.useCreditsPayment=e.useCreditsPayment;exports.useCreditsSubscription=e.useCreditsSubscription;exports.useLocalizedError=e.useLocalizedError;exports.usePaymentMode=e.usePaymentMode;exports.useStripeCheckout=e.useStripeCheckout;exports.useSubscription=e.useSubscription;exports.useSubscriptionManagement=e.useSubscriptionManagement;exports.useTranslation=e.useTranslation;exports.validateSecurity=e.validateSecurity;exports.CIRCUIT_BREAKER_PRESETS=t.CIRCUIT_BREAKER_PRESETS;exports.CedrosProvider=t.CedrosProvider;exports.CircuitBreakerOpenError=t.CircuitBreakerOpenError;exports.CircuitState=t.CircuitState;exports.ERROR_CATEGORIES=t.ERROR_CATEGORIES;exports.RATE_LIMITER_PRESETS=t.RATE_LIMITER_PRESETS;exports.RETRY_PRESETS=t.RETRY_PRESETS;exports.createCircuitBreaker=t.createCircuitBreaker;exports.createRateLimiter=t.createRateLimiter;exports.retryWithBackoff=t.retryWithBackoff;exports.useCedrosContext=t.useCedrosContext;exports.validateConfig=t.validateConfig;exports.LogLevel=r.LogLevel;exports.Logger=r.Logger;exports.createLogger=r.createLogger;exports.getLogger=r.getLogger;exports.useCedrosTheme=o.useCedrosTheme;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./styles-BwaDljnz.js"),t=require("./CedrosContext-3Dz7_9Ct.js"),r=require("./fetchWithTimeout-CG0EKbhf.js");exports.CEDROS_EVENTS=e.CEDROS_EVENTS;exports.CSP_PRESETS=e.CSP_PRESETS;exports.CedrosPay=e.CedrosPay;exports.CreditsButton=e.CreditsButton;exports.CreditsSubscribeButton=e.CreditsSubscribeButton;exports.PaymentMethodBadge=e.PaymentMethodBadge;exports.PaymentModal=e.PaymentModal;exports.ProductPrice=e.ProductPrice;exports.PurchaseButton=e.PurchaseButton;exports.RPC_PROVIDERS=e.RPC_PROVIDERS;exports.SECURITY_RECOMMENDATIONS=e.SECURITY_RECOMMENDATIONS;exports.StripeButton=e.StripeButton;exports.SubscribeButton=e.SubscribeButton;exports.SubscriptionManagementPanel=e.SubscriptionManagementPanel;exports.calculateDiscountPercentage=e.calculateDiscountPercentage;exports.createTranslator=e.createTranslator;exports.detectLocale=e.detectLocale;exports.emitPaymentError=e.emitPaymentError;exports.emitPaymentProcessing=e.emitPaymentProcessing;exports.emitPaymentStart=e.emitPaymentStart;exports.emitPaymentSuccess=e.emitPaymentSuccess;exports.emitWalletConnect=e.emitWalletConnect;exports.emitWalletConnected=e.emitWalletConnected;exports.emitWalletError=e.emitWalletError;exports.formatCSP=e.formatCSP;exports.formatCouponCodes=e.formatCouponCodes;exports.generateCSP=e.generateCSP;exports.generateCSPDirectives=e.generateCSPDirectives;exports.getAvailableLocales=e.getAvailableLocales;exports.getLocalizedError=e.getLocalizedError;exports.getUserErrorMessage=e.getUserErrorMessage;exports.isRetryableError=e.isRetryableError;exports.loadLocale=e.loadLocale;exports.logSecurityReport=e.logSecurityReport;exports.parseCouponCodes=e.parseCouponCodes;exports.stackCheckoutCoupons=e.stackCheckoutCoupons;exports.useCreditsPayment=e.useCreditsPayment;exports.useCreditsSubscription=e.useCreditsSubscription;exports.useLocalizedError=e.useLocalizedError;exports.usePaymentMode=e.usePaymentMode;exports.useStripeCheckout=e.useStripeCheckout;exports.useSubscription=e.useSubscription;exports.useSubscriptionManagement=e.useSubscriptionManagement;exports.useTranslation=e.useTranslation;exports.validateSecurity=e.validateSecurity;exports.CIRCUIT_BREAKER_PRESETS=t.CIRCUIT_BREAKER_PRESETS;exports.CedrosProvider=t.CedrosProvider;exports.CircuitBreakerOpenError=t.CircuitBreakerOpenError;exports.CircuitState=t.CircuitState;exports.ERROR_CATEGORIES=t.ERROR_CATEGORIES;exports.RATE_LIMITER_PRESETS=t.RATE_LIMITER_PRESETS;exports.RETRY_PRESETS=t.RETRY_PRESETS;exports.createCircuitBreaker=t.createCircuitBreaker;exports.createRateLimiter=t.createRateLimiter;exports.retryWithBackoff=t.retryWithBackoff;exports.useCedrosContext=t.useCedrosContext;exports.useCedrosTheme=t.useCedrosTheme;exports.validateConfig=t.validateConfig;exports.LogLevel=r.LogLevel;exports.Logger=r.Logger;exports.createLogger=r.createLogger;exports.getLogger=r.getLogger;
@@ -1,7 +1,6 @@
1
- import { C as s, a as t, b as r, c as o, d as i, P as c, e as n, f as u, g as C, R as E, S, h as P, i as l, j as m, k as R, l as d, m as g, n as p, o as T, p as y, q as L, r as b, s as f, t as B, u as M, v as _, w as I, x as k, y as v, z as O, A as h, B as x, D as A, E as D, F as N, G as W, H as z, I as U, J as G, K, L as V, M as Y, N as j, O as q, Q as w } from "./styles-DGagylUj.mjs";
2
- import { C as H, a as J, b as Q, c as X, E as Z, R as $, e as ee, f as ae, g as se, k as te, u as re, v as oe } from "./CedrosContext-5Gjveoba.mjs";
3
- import { L as ce, a as ne, c as ue, g as Ce } from "./fetchWithTimeout-DmMOwL0Q.mjs";
4
- import { u as Se } from "./ThemeContext-l0bqcOGW.mjs";
1
+ import { C as s, a as t, b as r, c as o, d as i, P as c, e as n, f as u, g as C, R as E, S, h as l, i as P, j as R, k as m, l as d, m as g, n as p, o as T, p as y, q as L, r as b, s as B, t as f, u as M, v as _, w as I, x as k, y as v, z as O, A as h, B as A, D, E as x, F as N, G as W, H as z, I as U, J as G, K, L as V, M as Y, N as j, O as q, Q as w } from "./styles-fihm6qVA.mjs";
2
+ import { C as H, a as J, b as Q, c as X, E as Z, R as $, e as ee, f as ae, g as se, k as te, u as re, l as oe, v as ie } from "./CedrosContext-DQc_k5PG.mjs";
3
+ import { L as ne, a as ue, c as Ce, g as Ee } from "./fetchWithTimeout-DmMOwL0Q.mjs";
5
4
  export {
6
5
  s as CEDROS_EVENTS,
7
6
  H as CIRCUIT_BREAKER_PRESETS,
@@ -13,8 +12,8 @@ export {
13
12
  o as CreditsButton,
14
13
  i as CreditsSubscribeButton,
15
14
  Z as ERROR_CATEGORIES,
16
- ce as LogLevel,
17
- ne as Logger,
15
+ ne as LogLevel,
16
+ ue as Logger,
18
17
  c as PaymentMethodBadge,
19
18
  n as PaymentModal,
20
19
  u as ProductPrice,
@@ -23,12 +22,12 @@ export {
23
22
  ee as RETRY_PRESETS,
24
23
  E as RPC_PROVIDERS,
25
24
  S as SECURITY_RECOMMENDATIONS,
26
- P as StripeButton,
27
- l as SubscribeButton,
28
- m as SubscriptionManagementPanel,
29
- R as calculateDiscountPercentage,
25
+ l as StripeButton,
26
+ P as SubscribeButton,
27
+ R as SubscriptionManagementPanel,
28
+ m as calculateDiscountPercentage,
30
29
  ae as createCircuitBreaker,
31
- ue as createLogger,
30
+ Ce as createLogger,
32
31
  se as createRateLimiter,
33
32
  d as createTranslator,
34
33
  g as detectLocale,
@@ -37,24 +36,24 @@ export {
37
36
  y as emitPaymentStart,
38
37
  L as emitPaymentSuccess,
39
38
  b as emitWalletConnect,
40
- f as emitWalletConnected,
41
- B as emitWalletError,
39
+ B as emitWalletConnected,
40
+ f as emitWalletError,
42
41
  M as formatCSP,
43
42
  _ as formatCouponCodes,
44
43
  I as generateCSP,
45
44
  k as generateCSPDirectives,
46
45
  v as getAvailableLocales,
47
46
  O as getLocalizedError,
48
- Ce as getLogger,
47
+ Ee as getLogger,
49
48
  h as getUserErrorMessage,
50
- x as isRetryableError,
51
- A as loadLocale,
52
- D as logSecurityReport,
49
+ A as isRetryableError,
50
+ D as loadLocale,
51
+ x as logSecurityReport,
53
52
  N as parseCouponCodes,
54
53
  te as retryWithBackoff,
55
54
  W as stackCheckoutCoupons,
56
55
  re as useCedrosContext,
57
- Se as useCedrosTheme,
56
+ oe as useCedrosTheme,
58
57
  z as useCreditsPayment,
59
58
  U as useCreditsSubscription,
60
59
  G as useLocalizedError,
@@ -63,6 +62,6 @@ export {
63
62
  Y as useSubscription,
64
63
  j as useSubscriptionManagement,
65
64
  q as useTranslation,
66
- oe as validateConfig,
65
+ ie as validateConfig,
67
66
  w as validateSecurity
68
67
  };
@@ -0,0 +1 @@
1
+ "use strict";var Ae=Object.create;var be=Object.defineProperty;var ze=Object.getOwnPropertyDescriptor;var Ue=Object.getOwnPropertyNames;var Oe=Object.getPrototypeOf,Fe=Object.prototype.hasOwnProperty;var We=(e,t,r,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of Ue(t))!Fe.call(e,n)&&n!==r&&be(e,n,{get:()=>t[n],enumerable:!(s=ze(t,n))||s.enumerable});return e};var He=(e,t,r)=>(r=e!=null?Ae(Oe(e)):{},We(t||!e||!e.__esModule?be(r,"default",{value:e,enumerable:!0}):r,e));const I=require("./CedrosContext-3Dz7_9Ct.js"),i=require("react/jsx-runtime"),f=require("react"),L=require("./fetchWithTimeout-CG0EKbhf.js");function Ye(e){return!e||!e.coupon_codes?[]:e.coupon_codes.split(",").map(t=>t.trim()).filter(t=>t.length>0)}function Qe(e,t=", "){return e.join(t)}function Ve(e,t){return e<=0?0:(e-t)/e*100}function Ge(e,t){if(!t||t.length===0)return e;let r=e,s=0;for(const n of t)if(n.discountType==="percentage"){const u=1-n.discountValue/100;r=r*u}else n.discountType==="fixed"&&(s+=n.discountValue);return r=r-s,r<0&&(r=0),Math.ceil(r*100)/100}function xe(e){const t=Number(e);if(!Number.isFinite(t)||t<=0)return 1;const r=Math.floor(t);return r>0?r:1}function ae(e){return e.map(t=>({resource:t.resource,quantity:xe(t.quantity),variantId:t.variantId,metadata:t.metadata}))}function te(e){return e.reduce((t,r)=>t+xe(r.quantity),0)}function Ke(e){return!!(e&&e.length>0&&(e.length>1||e.length===1&&(e[0].quantity??1)>1))}const K=new Map,ue=new Map,Y=new Map,ce=1e3,we=200,de=2e3;function Xe(e){const t=Y.get(e);return t?Date.now()<t?!0:(Y.delete(e),!1):!1}function Je(e,t=we){const r=Date.now()+t;if(Y.set(e,r),Y.size>ce){const s=Array.from(Y.keys()).slice(0,Y.size-ce);for(const n of s)Y.delete(n)}}function Ze(e,t=de){const r=K.get(e);if(!r)return!1;const n=Date.now()-r;return n<t?(L.getLogger().debug(`[Deduplication] Duplicate request blocked: ${e} (${n}ms ago)`),!0):!1}function et(e){if(K.set(e,Date.now()),K.size>ce){const t=Array.from(K.keys()).slice(0,K.size-ce);for(const r of t)K.delete(r)}}function tt(e){return ue.get(e)||null}function rt(e,t){ue.set(e,t);const r=()=>{ue.delete(e),et(e)};return t.then(r,r),t}async function st(e,t,r={}){const{windowMs:s=de,throwOnDuplicate:n=!0}=r,u=tt(e);if(u)return L.getLogger().debug(`[Deduplication] Reusing in-flight request: ${e}`),u;if(Ze(e,s)){if(n)throw new Error(`Duplicate request blocked: ${e}`);L.getLogger().warn(`[Deduplication] Duplicate request blocked but not throwing: ${e}`);return}const h=t();return rt(e,h)}function X(e,t,r={}){const{cooldownMs:s=we,deduplicationWindowMs:n=de}=r;return async()=>{if(Xe(e)){L.getLogger().debug(`[Deduplication] Button in cooldown: ${e}`);return}Je(e,s);try{await st(e,async()=>{const u=t();u instanceof Promise&&await u},{windowMs:n,throwOnDuplicate:!1})}catch(u){if(u instanceof Error&&u.message.includes("Duplicate request"))return;throw u}}}function Se(e){return{background:"none",border:"none",fontSize:"1.5rem",cursor:"pointer",color:e,opacity:.6,padding:"0.25rem",lineHeight:1}}const H={PAYMENT_START:"cedros:payment:start",WALLET_CONNECT:"cedros:wallet:connect",WALLET_CONNECTED:"cedros:wallet:connected",WALLET_ERROR:"cedros:wallet:error",PAYMENT_PROCESSING:"cedros:payment:processing",PAYMENT_SUCCESS:"cedros:payment:success",PAYMENT_ERROR:"cedros:payment:error"};function V(e,t){if(typeof window>"u")return;const r=new CustomEvent(e,{detail:t,bubbles:!0,cancelable:!1});window.dispatchEvent(r)}function J(e,t,r){V(H.PAYMENT_START,{timestamp:Date.now(),method:e,resource:t,itemCount:r})}function nt(e){V(H.WALLET_CONNECT,{timestamp:Date.now(),wallet:e})}function ot(e,t){V(H.WALLET_CONNECTED,{timestamp:Date.now(),wallet:e,publicKey:t})}function it(e,t){V(H.WALLET_ERROR,{timestamp:Date.now(),wallet:t,error:e})}function Z(e,t,r){V(H.PAYMENT_PROCESSING,{timestamp:Date.now(),method:e,resource:t,itemCount:r})}function ee(e,t,r,s){V(H.PAYMENT_SUCCESS,{timestamp:Date.now(),method:e,transactionId:t,resource:r,itemCount:s})}function W(e,t,r,s){V(H.PAYMENT_ERROR,{timestamp:Date.now(),method:e,error:t,resource:r,itemCount:s})}function at(e){return e instanceof I.PaymentError&&e.canRetry()}function ct(e){return e instanceof I.PaymentError?e.getUserMessage():e instanceof Error?e.message:String(e)}function lt(e){switch(e){case"mainnet-beta":return"https://api.mainnet-beta.solana.com";case"devnet":return"https://api.devnet.solana.com";case"testnet":return"https://api.testnet.solana.com";default:return"https://api.mainnet-beta.solana.com"}}function ut(e){try{const t=new URL(e);return`${t.protocol}//${t.host}`}catch{return e}}function Pe(e={}){const{solanaCluster:t="mainnet-beta",solanaEndpoint:r,customRpcProviders:s=[],allowUnsafeScripts:n=!1,additionalScriptSrc:u=[],additionalConnectSrc:h=[],additionalFrameSrc:x=[],includeStripe:C=!0,includeSolana:l=!0}=e;n&&console.warn("[CedrosPay] SECURITY WARNING: allowUnsafeScripts is enabled. This adds 'unsafe-inline' and 'unsafe-eval' to script-src, which significantly weakens CSP protection against XSS attacks. Only use this in development or if absolutely required by your framework.");const a=["'self'"];n&&a.push("'unsafe-inline'","'unsafe-eval'"),C&&a.push("https://js.stripe.com"),a.push(...u);const o=["'self'"];if(C&&o.push("https://api.stripe.com","https://*.stripe.com"),l){const p=lt(t);if(o.push(p),r){const c=ut(r);o.includes(c)||o.push(c)}s.forEach(c=>{o.includes(c)||o.push(c)})}o.push(...h);const d=["'self'"];return C&&d.push("https://js.stripe.com","https://checkout.stripe.com"),d.push(...x),{scriptSrc:a,connectSrc:o,frameSrc:d}}function ve(e,t="header"){const{scriptSrc:r,connectSrc:s,frameSrc:n}=e;switch(t){case"header":case"meta":case"nextjs":case"nginx":{const u=[];return r.length>0&&u.push(`script-src ${r.join(" ")}`),s.length>0&&u.push(`connect-src ${s.join(" ")}`),n.length>0&&u.push(`frame-src ${n.join(" ")}`),u.join("; ")}case"helmet":{const u={};return r.length>0&&(u.scriptSrc=r),s.length>0&&(u.connectSrc=s),n.length>0&&(u.frameSrc=n),u}case"directives":return{scriptSrc:r,connectSrc:s,frameSrc:n};default:throw new Error(`Unknown CSP format: ${t}`)}}function dt(e={},t="header"){const r=Pe(e);return ve(r,t)}const pt={HELIUS:"https://*.helius-rpc.com",QUICKNODE:"https://*.quicknode.pro",ALCHEMY:"https://*.alchemy.com",ANKR:"https://rpc.ankr.com",TRITON:"https://*.rpcpool.com"},ft={MAINNET_CUSTOM_RPC:e=>({solanaCluster:"mainnet-beta",solanaEndpoint:e,allowUnsafeScripts:!1}),MAINNET_NEXTJS:e=>({solanaCluster:"mainnet-beta",solanaEndpoint:e,allowUnsafeScripts:!1}),DEVNET:()=>({solanaCluster:"devnet",allowUnsafeScripts:!1}),CRYPTO_ONLY:e=>({solanaCluster:"mainnet-beta",solanaEndpoint:e,includeStripe:!1}),STRIPE_ONLY:()=>({includeStripe:!0,includeSolana:!1})};function pe(){const{stripeManager:e}=I.useCedrosContext(),[t,r]=f.useState({status:"idle",error:null,transactionId:null}),s=f.useRef(!1),n=f.useCallback(async(x,C,l,a,o,d)=>{if(s.current)return{success:!1,error:"Payment already in progress"};s.current=!0,r({status:"loading",error:null,transactionId:null});const p={resource:x,successUrl:C,cancelUrl:l,metadata:a,customerEmail:o,couponCode:d};try{const c=await e.processPayment(p);return r({status:c.success?"success":"error",error:c.success?null:c.error||"Payment failed",transactionId:c.success&&c.transactionId||null}),c}catch(c){const m=c instanceof Error?c.message:"Payment failed";return r({status:"error",error:m,transactionId:null}),{success:!1,error:m}}finally{s.current=!1}},[e]),u=f.useCallback(async(x,C,l,a,o,d,p,c,m,g,y,b,M)=>{if(s.current)return{success:!1,error:"Payment already in progress"};s.current=!0,r({status:"loading",error:null,transactionId:null});const S=ae(x);try{const P=await e.processCartCheckout({items:S,successUrl:C,cancelUrl:l,metadata:a,customerEmail:o,customerName:p,customerPhone:c,shippingAddress:m,billingAddress:g,couponCode:d,tipAmount:y,shippingMethodId:b,paymentMethodId:M});return r({status:P.success?"success":"error",error:P.success?null:P.error||"Cart checkout failed",transactionId:P.success&&P.transactionId||null}),P}catch(P){const _=P instanceof Error?P.message:"Cart checkout failed";return r({status:"error",error:_,transactionId:null}),{success:!1,error:_}}finally{s.current=!1}},[e]),h=f.useCallback(()=>{r({status:"idle",error:null,transactionId:null}),s.current=!1},[]);return{...t,processPayment:n,processCartCheckout:u,reset:h}}function re(e,t){return f.useMemo(()=>{const r=Ke(t),s=e||(t?.length===1?t[0].resource:"");return{isCartMode:r,effectiveResource:s}},[e,t])}const mt=(e,t,r)=>{const s=e[t];return s?typeof s=="function"?s():Promise.resolve(s):new Promise((n,u)=>{(typeof queueMicrotask=="function"?queueMicrotask:setTimeout)(u.bind(null,new Error("Unknown variable dynamic import: "+t+(t.split("/").length!==r?". Note that variables only represent file names one level deep.":""))))})},le=new Map;let ie=null;async function Ce(e){if(le.has(e))return le.get(e);try{const t=await mt(Object.assign({"./translations/ar.json":()=>Promise.resolve().then(()=>require("./ar-LVoQZTFI.js")),"./translations/bn.json":()=>Promise.resolve().then(()=>require("./bn-BR5Cv1T4.js")),"./translations/de.json":()=>Promise.resolve().then(()=>require("./de-pQxy-oD1.js")),"./translations/en.json":()=>Promise.resolve().then(()=>require("./en-Yikrt96u.js")),"./translations/es.json":()=>Promise.resolve().then(()=>require("./es-D24cg8dD.js")),"./translations/fil.json":()=>Promise.resolve().then(()=>require("./fil-BOBft9G-.js")),"./translations/fr.json":()=>Promise.resolve().then(()=>require("./fr-Ct9ub8Fa.js")),"./translations/he.json":()=>Promise.resolve().then(()=>require("./he-DtQqRKRq.js")),"./translations/id.json":()=>Promise.resolve().then(()=>require("./id-CiM2mL7C.js")),"./translations/in.json":()=>Promise.resolve().then(()=>require("./in-Bzcjmxcc.js")),"./translations/it.json":()=>Promise.resolve().then(()=>require("./it-Blb_pIJl.js")),"./translations/jp.json":()=>Promise.resolve().then(()=>require("./jp-9NHyIuwY.js")),"./translations/kr.json":()=>Promise.resolve().then(()=>require("./kr-DvzJ-0yX.js")),"./translations/ms.json":()=>Promise.resolve().then(()=>require("./ms-BOAu5pUB.js")),"./translations/nl.json":()=>Promise.resolve().then(()=>require("./nl-WHh_DfO8.js")),"./translations/pa.json":()=>Promise.resolve().then(()=>require("./pa-B7kIhZCF.js")),"./translations/pl.json":()=>Promise.resolve().then(()=>require("./pl-H0hBKdvF.js")),"./translations/pt.json":()=>Promise.resolve().then(()=>require("./pt-DwGrViQ3.js")),"./translations/ru.json":()=>Promise.resolve().then(()=>require("./ru-CB2m0UDT.js")),"./translations/ta.json":()=>Promise.resolve().then(()=>require("./ta-CAS197uN.js")),"./translations/th.json":()=>Promise.resolve().then(()=>require("./th-Cpz2cFcg.js")),"./translations/tr.json":()=>Promise.resolve().then(()=>require("./tr-hQrEFk86.js")),"./translations/uk.json":()=>Promise.resolve().then(()=>require("./uk-DrK2Sv8C.js")),"./translations/ur.json":()=>Promise.resolve().then(()=>require("./ur-D5-7mN9a.js")),"./translations/vn.json":()=>Promise.resolve().then(()=>require("./vn-B_iut9YL.js")),"./translations/zh.json":()=>Promise.resolve().then(()=>require("./zh-PR82dCHr.js"))}),`./translations/${e}.json`,3),r=t.default||t;return le.set(e,r),r}catch{return null}}async function gt(){if(ie)return ie;const e=Object.assign({"./translations/ar.json":()=>Promise.resolve().then(()=>require("./ar-LVoQZTFI.js")),"./translations/bn.json":()=>Promise.resolve().then(()=>require("./bn-BR5Cv1T4.js")),"./translations/de.json":()=>Promise.resolve().then(()=>require("./de-pQxy-oD1.js")),"./translations/en.json":()=>Promise.resolve().then(()=>require("./en-Yikrt96u.js")),"./translations/es.json":()=>Promise.resolve().then(()=>require("./es-D24cg8dD.js")),"./translations/fil.json":()=>Promise.resolve().then(()=>require("./fil-BOBft9G-.js")),"./translations/fr.json":()=>Promise.resolve().then(()=>require("./fr-Ct9ub8Fa.js")),"./translations/he.json":()=>Promise.resolve().then(()=>require("./he-DtQqRKRq.js")),"./translations/id.json":()=>Promise.resolve().then(()=>require("./id-CiM2mL7C.js")),"./translations/in.json":()=>Promise.resolve().then(()=>require("./in-Bzcjmxcc.js")),"./translations/it.json":()=>Promise.resolve().then(()=>require("./it-Blb_pIJl.js")),"./translations/jp.json":()=>Promise.resolve().then(()=>require("./jp-9NHyIuwY.js")),"./translations/kr.json":()=>Promise.resolve().then(()=>require("./kr-DvzJ-0yX.js")),"./translations/ms.json":()=>Promise.resolve().then(()=>require("./ms-BOAu5pUB.js")),"./translations/nl.json":()=>Promise.resolve().then(()=>require("./nl-WHh_DfO8.js")),"./translations/pa.json":()=>Promise.resolve().then(()=>require("./pa-B7kIhZCF.js")),"./translations/pl.json":()=>Promise.resolve().then(()=>require("./pl-H0hBKdvF.js")),"./translations/pt.json":()=>Promise.resolve().then(()=>require("./pt-DwGrViQ3.js")),"./translations/ru.json":()=>Promise.resolve().then(()=>require("./ru-CB2m0UDT.js")),"./translations/ta.json":()=>Promise.resolve().then(()=>require("./ta-CAS197uN.js")),"./translations/th.json":()=>Promise.resolve().then(()=>require("./th-Cpz2cFcg.js")),"./translations/tr.json":()=>Promise.resolve().then(()=>require("./tr-hQrEFk86.js")),"./translations/uk.json":()=>Promise.resolve().then(()=>require("./uk-DrK2Sv8C.js")),"./translations/ur.json":()=>Promise.resolve().then(()=>require("./ur-D5-7mN9a.js")),"./translations/vn.json":()=>Promise.resolve().then(()=>require("./vn-B_iut9YL.js")),"./translations/zh.json":()=>Promise.resolve().then(()=>require("./zh-PR82dCHr.js"))}),t=[];for(const r in e){const s=r.match(/\.\/translations\/([a-z]{2,3}(?:-[A-Z]{2})?)\.json$/);s&&t.push(s[1])}return ie=t.length>0?t:["en"],ie}function je(){return typeof navigator>"u"?"en":(navigator.language||navigator.userLanguage||"en").split("-")[0].toLowerCase()}async function ke(e){let t=await Ce(e);if(t||(t=await Ce("en"),t))return t;throw new Error("Critical: No translation files found, not even en.json")}function Ee(e){return(t,r)=>{const s=t.split(".");let n=e;for(const u of s)if(n&&typeof n=="object"&&u in n)n=n[u];else return t;return typeof n!="string"?t:r?Object.entries(r).reduce((u,[h,x])=>u.replace(new RegExp(`\\{${h}\\}`,"g"),x),n):n}}function ht(e,t,r=!0){const s=t.errors[e];if(!s){const n=I.getUserFriendlyError(e);return r&&n.action?`${n.message} ${n.action}`:n.message}return r&&s.action?`${s.message} ${s.action}`:s.message}function G(e){const[t,r]=f.useState(null),[s,n]=f.useState(!0),u=f.useMemo(()=>e||je(),[e]);return f.useEffect(()=>{let x=!1;return(async()=>{n(!0);try{const l=await ke(u);x||(r(l),n(!1))}catch(l){console.error("[CedrosPay] Failed to load translations:",l),x||n(!1)}})(),()=>{x=!0}},[u]),{t:f.useMemo(()=>t?Ee(t):x=>({"ui.purchase":"Purchase","ui.pay_with_card":"Pay with Card","ui.pay_with_crypto":"Pay with USDC","ui.pay_with_usdc":"Pay with USDC","ui.card":"Card","ui.usdc_solana":"USDC (Solana)","ui.crypto":"Crypto","ui.processing":"Processing...","ui.loading":"Loading...","ui.connect_wallet":"Connect Wallet","ui.connecting":"Connecting..."})[x]||x,[t]),locale:u,isLoading:s,translations:t}}function yt(e,t=!0){const{translations:r}=G();if(!r){const n=I.getUserFriendlyError(e);return t&&n.action?`${n.message} ${n.action}`:n.message}const s=r.errors[e];if(!s){const n=I.getUserFriendlyError(e);return t&&n.action?`${n.message} ${n.action}`:n.message}return t&&s.action?`${s.message} ${s.action}`:s.message}function fe({resource:e,items:t,successUrl:r,cancelUrl:s,metadata:n,customerEmail:u,couponCode:h,label:x,disabled:C=!1,onAttempt:l,onSuccess:a,onError:o,className:d=""}){const{status:p,error:c,transactionId:m,processPayment:g,processCartCheckout:y}=pe(),b=I.useCedrosTheme(),{isCartMode:M,effectiveResource:S}=re(e,t),{t:P,translations:_}=G(),$=x||P("ui.pay_with_card"),z=b.unstyled?d:`${b.className} cedros-theme__stripe-button ${d}`.trim(),A=c&&typeof c!="string"?c?.code??null:null,w=c?typeof c=="string"?c:(v=>{if(!v||!_)return"";const E=_.errors[v];return E?E.action?`${E.message} ${E.action}`:E.message:""})(A):null,j=f.useCallback(async()=>{L.getLogger().debug("[StripeButton] executePayment with couponCode:",h);const v=M&&t?te(t):void 0;if(J("stripe",S,v),l&&l("stripe"),!M&&!S){const O="Invalid payment configuration: missing resource or items";L.getLogger().error("[StripeButton]",O),W("stripe",O,S,v),o&&o(O);return}let E;Z("stripe",S,v),M&&t?(L.getLogger().debug("[StripeButton] Processing cart checkout with coupon:",h),E=await y(t,r,s,n,u,h)):S&&(L.getLogger().debug("[StripeButton] Processing single payment with coupon:",h),E=await g(S,r,s,n,u,h)),E&&E.success&&E.transactionId?(ee("stripe",E.transactionId,S,v),a&&a(E.transactionId)):E&&!E.success&&E.error&&(W("stripe",E.error,S,v),o&&o(E.error))},[h,M,S,t,r,s,n,u,y,g,l,a,o]),B=f.useMemo(()=>M&&t?`stripe-cart-${t.map(v=>v.resource).join("-")}`:`stripe-${S||"unknown"}`,[M,t,S]),k=f.useMemo(()=>X(B,j),[B,j]),T=p==="loading",R=C||T;return i.jsxs("div",{className:z,style:b.unstyled?{}:b.style,children:[i.jsx("button",{onClick:k,disabled:R,className:b.unstyled?d:"cedros-theme__button cedros-theme__stripe",type:"button",children:T?P("ui.processing"):$}),w&&i.jsx("div",{className:b.unstyled?"":"cedros-theme__error",children:w}),m&&i.jsx("div",{className:b.unstyled?"":"cedros-theme__success",children:P("ui.payment_successful")})]})}function Me(){const{creditsManager:e}=I.useCedrosContext(),[t,r]=f.useState({status:"idle",error:null,transactionId:null,requirement:null,holdId:null}),s=f.useRef(!1),n=f.useCallback(async(l,a)=>{r(o=>({...o,status:"loading",error:null}));try{const o=await e.requestQuote(l,a);return r(d=>({...d,status:"idle",requirement:o})),o}catch(o){const d=o instanceof Error?o.message:"Failed to fetch credits quote";return r(p=>({...p,status:"error",error:d})),null}},[e]),u=f.useCallback(async(l,a)=>{r(o=>({...o,status:"loading",error:null}));try{const o=ae(l),d=await e.requestCartQuote(o,a);return r(p=>({...p,status:"idle"})),d}catch(o){const d=o instanceof Error?o.message:"Failed to fetch cart credits quote";return r(p=>({...p,status:"error",error:d})),null}},[e]),h=f.useCallback(async(l,a,o,d)=>{if(s.current)return{success:!1,error:"Payment already in progress"};s.current=!0,r({status:"loading",error:null,transactionId:null,requirement:null,holdId:null});try{const p=await e.processPayment(l,a,o,d);return r({status:p.success?"success":"error",error:p.success?null:p.error||"Credits payment failed",transactionId:p.success&&p.transactionId||null,requirement:null,holdId:null}),p}catch(p){const c=p instanceof Error?p.message:"Credits payment failed";return r({status:"error",error:c,transactionId:null,requirement:null,holdId:null}),{success:!1,error:c}}finally{s.current=!1}},[e]),x=f.useCallback(async(l,a,o,d)=>{if(s.current)return{success:!1,error:"Payment already in progress"};s.current=!0,r({status:"loading",error:null,transactionId:null,requirement:null,holdId:null});let p=null;try{const c=ae(l),m=await e.requestCartQuote(c,o);if(!m)return r({status:"error",error:"Credits payment not available for this cart",transactionId:null,requirement:null,holdId:null}),{success:!1,error:"Credits payment not available"};p=(await e.createCartHold({cartId:m.cartId,authToken:a})).holdId,r(b=>({...b,holdId:p}));const y=await e.authorizeCartPayment({cartId:m.cartId,holdId:p,authToken:a,metadata:d});if(!y.success&&p)try{await e.releaseHold(p,a)}catch(b){L.getLogger().warn("[useCreditsPayment] Hold release failed, will expire server-side",{holdId:p,error:b instanceof Error?b.message:String(b)})}return r({status:y.success?"success":"error",error:y.success?null:y.error||"Cart credits payment failed",transactionId:y.success&&y.transactionId||null,requirement:null,holdId:null}),{success:y.success,transactionId:y.transactionId,error:y.error}}catch(c){const m=c instanceof Error?c.message:"Cart credits payment failed";if(p)try{await e.releaseHold(p,a)}catch(g){L.getLogger().warn("[useCreditsPayment] Hold release failed, will expire server-side",{holdId:p,error:g instanceof Error?g.message:String(g)})}return r({status:"error",error:m,transactionId:null,requirement:null,holdId:null}),{success:!1,error:m}}finally{s.current=!1}},[e]),C=f.useCallback(()=>{r({status:"idle",error:null,transactionId:null,requirement:null,holdId:null}),s.current=!1},[]);return{...t,fetchQuote:n,fetchCartQuote:u,processPayment:h,processCartPayment:x,reset:C}}function me({resource:e,items:t,authToken:r,metadata:s,couponCode:n,label:u,disabled:h=!1,onAttempt:x,onSuccess:C,onError:l,className:a=""}){const{status:o,error:d,transactionId:p,processPayment:c,processCartPayment:m}=Me(),g=I.useCedrosTheme(),{isCartMode:y,effectiveResource:b}=re(e,t),{t:M,translations:S}=G(),P=u||M("ui.pay_with_credits")||"Pay with Credits",_=g.unstyled?a:`${g.className} cedros-theme__credits-button ${a}`.trim(),$=d&&typeof d!="string"?d?.code??null:null,A=d?typeof d=="string"?d:(T=>{if(!T||!S)return"";const R=S.errors[T];return R?R.action?`${R.message} ${R.action}`:R.message:""})($):null,q=f.useCallback(async()=>{L.getLogger().debug("[CreditsButton] executePayment");const T=y&&t?te(t):void 0;if(J("credits",b,T),x&&x("credits"),!r){const v="Authentication required: please log in to pay with credits";L.getLogger().error("[CreditsButton]",v),W("credits",v,b,T),l&&l(v);return}if(!y&&!b){const v="Invalid payment configuration: missing resource";L.getLogger().error("[CreditsButton]",v),W("credits",v,b,T),l&&l(v);return}let R;Z("credits",b,T),y&&t?(L.getLogger().debug("[CreditsButton] Processing cart checkout"),R=await m(t,r,n,s)):b&&(L.getLogger().debug("[CreditsButton] Processing single payment"),R=await c(b,r,n,s)),R&&R.success&&R.transactionId?(ee("credits",R.transactionId,b,T),C&&C(R.transactionId)):R&&!R.success&&R.error&&(W("credits",R.error,b,T),l&&l(R.error))},[r,y,b,t,n,s,c,m,x,C,l]),w=f.useMemo(()=>y&&t?`credits-cart-${t.map(T=>T.resource).join("-")}`:`credits-${b||"unknown"}`,[y,t,b]),j=f.useMemo(()=>X(w,q),[w,q]),B=o==="loading",k=h||B;return i.jsxs("div",{className:_,style:g.unstyled?{}:g.style,children:[i.jsx("button",{onClick:j,disabled:k,className:g.unstyled?a:"cedros-theme__button cedros-theme__credits",type:"button",children:B?M("ui.processing"):P}),A&&i.jsx("div",{className:g.unstyled?"":"cedros-theme__error",children:A}),p&&i.jsx("div",{className:g.unstyled?"":"cedros-theme__success",children:M("ui.payment_successful")})]})}const bt=f.lazy(()=>Promise.resolve().then(()=>require("./CryptoButton-BQceZhbn.js")).then(e=>e.CryptoButton$1).then(e=>({default:e.CryptoButton}))),Re=({isOpen:e,onClose:t,resource:r,items:s,cardLabel:n="Card",cryptoLabel:u="USDC (Solana)",creditsLabel:h="Pay with Credits",showCard:x=!0,showCrypto:C=!0,showCredits:l=!1,onPaymentAttempt:a,onPaymentSuccess:o,onPaymentError:d,onStripeSuccess:p,onCryptoSuccess:c,onCreditsSuccess:m,onStripeError:g,onCryptoError:y,onCreditsError:b,customerEmail:M,successUrl:S,cancelUrl:P,metadata:_,couponCode:$,authToken:z,testPageUrl:A,hideMessages:q=!1})=>{const{tokens:w}=I.useCedrosTheme();return f.useEffect(()=>{const j=B=>{B.key==="Escape"&&e&&t()};return window.addEventListener("keydown",j),()=>window.removeEventListener("keydown",j)},[e,t]),f.useEffect(()=>{if(e){const j=window.scrollY;return document.body.style.position="fixed",document.body.style.top=`-${j}px`,document.body.style.width="100%",document.body.style.overflowY="scroll",()=>{const B=document.body.style.top?Math.abs(parseInt(document.body.style.top.replace("px",""),10)):0;document.body.style.position="",document.body.style.top="",document.body.style.width="",document.body.style.overflowY="",window.scrollTo(0,B)}}},[e]),e?i.jsx("div",{className:"cedros-modal-overlay",style:{position:"fixed",top:0,left:0,right:0,bottom:0,backgroundColor:w.modalOverlay,display:"flex",alignItems:"center",justifyContent:"center",zIndex:9999,padding:"1rem"},onClick:t,children:i.jsxs("div",{className:"cedros-modal-content",style:{backgroundColor:w.modalBackground,borderRadius:"12px",padding:"2rem",maxWidth:"400px",width:"100%",boxShadow:"0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)",border:`1px solid ${w.modalBorder}`},onClick:j=>j.stopPropagation(),children:[i.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"1.5rem"},children:[i.jsx("h3",{style:{margin:0,fontSize:"1.25rem",fontWeight:600,color:w.surfaceText},children:"Choose Payment Method"}),i.jsx("button",{type:"button",onClick:t,style:Se(w.surfaceText),"aria-label":"Close modal",children:"×"})]}),i.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:"1rem"},children:[x&&i.jsx(fe,{resource:r,items:s,label:n,onAttempt:a,onSuccess:p||o,onError:g||d,customerEmail:M,successUrl:S,cancelUrl:P,metadata:_,couponCode:$}),C&&i.jsx(f.Suspense,{fallback:null,children:i.jsx(bt,{resource:r,items:s,label:u,onAttempt:a,onSuccess:c||o,onError:y||d,testPageUrl:A,hideMessages:q,metadata:_,couponCode:$})}),l&&i.jsx(me,{resource:r,items:s,label:h,authToken:z,onAttempt:a?()=>a("credits"):void 0,onSuccess:m||o,onError:b||d,metadata:_,couponCode:$})]})]})}):null},Te=({resource:e,items:t,label:r,cardLabel:s,cryptoLabel:n,creditsLabel:u,showCard:h=!0,showCrypto:x=!0,showCredits:C=!1,onPaymentAttempt:l,onPaymentSuccess:a,onPaymentError:o,onStripeSuccess:d,onCryptoSuccess:p,onCreditsSuccess:c,onStripeError:m,onCryptoError:g,onCreditsError:y,customerEmail:b,successUrl:M,cancelUrl:S,metadata:P,couponCode:_,authToken:$,autoDetectWallets:z=!0,testPageUrl:A,hideMessages:q=!1,renderModal:w})=>{const j=I.useCedrosTheme(),[B,k]=f.useState(!1),{status:T,processPayment:R,processCartCheckout:v}=pe(),{isCartMode:E,effectiveResource:O}=re(e,t),{t:N}=G(),F=r||N("ui.purchase"),Ne=s||N("ui.card"),De=n||N("ui.usdc_solana"),Be=u||N("ui.pay_with_credits")||"Pay with Credits",ge=f.useCallback(async()=>{if(z&&h){const{detectSolanaWallets:D}=await Promise.resolve().then(()=>require("./walletDetection-bNmV5ItZ.js"));if(!D()){const ne=E?void 0:O,oe=E&&t?te(t):void 0;J("stripe",ne,oe),l&&l("stripe"),Z("stripe",ne,oe);let U;E&&t?U=await v(t,M,S,P,b,_):O&&(U=await R(O,M,S,P,b,_)),U&&U.success&&U.transactionId?(ee("stripe",U.transactionId,ne,oe),d?d(U.transactionId):a&&a(U.transactionId)):U&&!U.success&&U.error&&(W("stripe",U.error,ne,oe),m?m(U.error):o&&o(U.error));return}}k(!0)},[z,h,E,t,O,v,R,M,S,P,b,_,a,o,d,m,l]),he=f.useMemo(()=>E&&t?`purchase-cart-${t.map(D=>D.resource).join("-")}`:`purchase-${O||"unknown"}`,[E,t,O]),$e=f.useMemo(()=>X(he,ge),[he,ge]),se=T==="loading",ye={isOpen:B,onClose:()=>k(!1),resource:E?void 0:O,items:E?t:void 0,cardLabel:Ne,cryptoLabel:De,creditsLabel:Be,showCard:h,showCrypto:x,showCredits:C,onPaymentAttempt:l,onPaymentSuccess:D=>{k(!1),a?.(D)},onPaymentError:D=>{k(!1),o?.(D)},onStripeSuccess:D=>{k(!1),d?.(D)},onCryptoSuccess:D=>{k(!1),p?.(D)},onCreditsSuccess:D=>{k(!1),c?.(D)},onStripeError:D=>{k(!1),m?.(D)},onCryptoError:D=>{k(!1),g?.(D)},onCreditsError:D=>{k(!1),y?.(D)},customerEmail:b,successUrl:M,cancelUrl:S,metadata:P,couponCode:_,authToken:$,testPageUrl:A,hideMessages:q};return i.jsxs("div",{className:j.unstyled?"":j.className,style:j.unstyled?{}:j.style,children:[i.jsx("button",{onClick:$e,disabled:se,className:j.unstyled?"":"cedros-theme__button cedros-theme__stripe",style:{width:"100%",cursor:se?"not-allowed":"pointer",opacity:se?.6:1},type:"button",children:se?N("ui.processing"):F}),w?w(ye):i.jsx(Re,{...ye})]})},Ct={"mainnet-beta":"https://api.mainnet-beta.solana.com",devnet:"https://api.devnet.solana.com",testnet:"https://api.testnet.solana.com"};function xt(){const[e,t]=f.useState(null);return f.useEffect(()=>{let r=!1;return import("@solana/wallet-adapter-react").then(s=>{r||t(s)}),()=>{r=!0}},[]),e}function wt({endpoint:e,wallets:t,children:r}){const s=xt();if(!s)return i.jsx(i.Fragment,{children:r});const{ConnectionProvider:n,WalletProvider:u}=s;return i.jsx(n,{endpoint:e,children:i.jsx(u,{wallets:t,autoConnect:!1,children:r})})}const St=f.lazy(()=>Promise.resolve().then(()=>require("./CryptoButton-BQceZhbn.js")).then(e=>e.CryptoButton$1).then(e=>({default:e.CryptoButton})));function Pt(e){const{resource:t,items:r,checkout:s={},display:n={},callbacks:u={},advanced:h={}}=e,{config:x,walletPool:C}=I.useCedrosContext(),l=I.useCedrosTheme(),{isCartMode:a}=re(t,r),o=n.showCrypto??!0,d=f.useMemo(()=>({marginTop:"0.5rem",fontSize:"0.875rem",color:l.tokens.surfaceText,opacity:.7,textAlign:"center"}),[l.tokens.surfaceText]),p=f.useMemo(()=>o?h.wallets&&h.wallets.length>0?h.wallets:C.getAdapters():[],[h.wallets,C,o]),c=f.useMemo(()=>r?te(r):0,[r]),{onPaymentSuccess:m,onPaymentError:g,onPaymentAttempt:y}=u,b=f.useCallback(v=>m?.({transactionId:v,method:"stripe"}),[m]),M=f.useCallback(v=>m?.({transactionId:v,method:"crypto"}),[m]),S=f.useCallback(v=>g?.({message:v,method:"stripe"}),[g]),P=f.useCallback(v=>g?.({message:v,method:"crypto"}),[g]),_=f.useCallback(v=>m?.({transactionId:v,method:"credits"}),[m]),$=f.useCallback(v=>g?.({message:v,method:"credits"}),[g]),z=f.useCallback(()=>y?.("credits"),[y]),A=o?x.solanaEndpoint??Ct[x.solanaCluster]:"";if(!t&&(!r||r.length===0))return L.getLogger().error('CedrosPay: Must provide either "resource" or "items" prop'),i.jsx("div",{className:n.className,style:{color:l.tokens.errorText},children:"Configuration error: No resource or items provided"});const q=n.showCard??!0,w=n.showCredits??!1,j=n.showPurchaseButton??!1,B=n.layout??"vertical",k=n.hideMessages??!1,T=h.autoDetectWallets??!0,R=i.jsx("div",{className:l.unstyled?n.className:`cedros-theme__pay ${n.className||""}`,children:i.jsxs("div",{className:l.unstyled?"":`cedros-theme__pay-content cedros-theme__pay-content--${B}`,children:[j?i.jsx(Te,{resource:a?void 0:t||r?.[0]?.resource,items:a?r:void 0,label:n.purchaseLabel,cardLabel:n.cardLabel,cryptoLabel:n.cryptoLabel,showCard:q,showCrypto:o,onPaymentAttempt:u.onPaymentAttempt,onPaymentSuccess:b,onPaymentError:S,onStripeSuccess:b,onCryptoSuccess:M,onStripeError:S,onCryptoError:P,customerEmail:s.customerEmail,successUrl:s.successUrl,cancelUrl:s.cancelUrl,metadata:s.metadata,couponCode:s.couponCode,autoDetectWallets:T,testPageUrl:h.testPageUrl,hideMessages:k,renderModal:n.renderModal}):i.jsxs(i.Fragment,{children:[q&&i.jsx(fe,{resource:a?void 0:t||r?.[0]?.resource,items:a?r:void 0,customerEmail:s.customerEmail,successUrl:s.successUrl,cancelUrl:s.cancelUrl,metadata:s.metadata,couponCode:s.couponCode,label:n.cardLabel,onAttempt:u.onPaymentAttempt,onSuccess:b,onError:S}),o&&i.jsx(f.Suspense,{fallback:null,children:i.jsx(St,{resource:a?void 0:t||r?.[0]?.resource,items:a?r:void 0,metadata:s.metadata,couponCode:s.couponCode,label:n.cryptoLabel,onAttempt:u.onPaymentAttempt,onSuccess:M,onError:P,testPageUrl:h.testPageUrl,hideMessages:k})}),w&&i.jsx(me,{resource:a?void 0:t||r?.[0]?.resource,items:a?r:void 0,authToken:s.authToken,metadata:s.metadata,couponCode:s.couponCode,label:n.creditsLabel,onAttempt:z,onSuccess:_,onError:$})]}),a&&r&&r.length>1&&!k&&i.jsxs("div",{style:d,children:["Checking out ",c," items"]})]})});return i.jsx("div",{className:l.unstyled?n.className:l.className,style:l.unstyled?{}:l.style,children:i.jsx(wt,{endpoint:A||"https://api.devnet.solana.com",wallets:p,children:R})})}function vt({product:e,paymentMethod:t,showOriginalPrice:r=!1,className:s="",style:n={}}){const u=t==="stripe",h=u?e.fiatAmount:e.cryptoAmount,x=u?e.effectiveFiatAmount:e.effectiveCryptoAmount,C=u?e.fiatCurrency.toUpperCase():e.cryptoToken,l=u?e.hasStripeCoupon:e.hasCryptoCoupon,a=u?e.stripeDiscountPercent:e.cryptoDiscountPercent;return i.jsxs("div",{className:s,style:n,children:[r&&l&&i.jsxs("span",{style:{textDecoration:"line-through",opacity:.6,marginRight:"0.5rem",fontSize:"0.875em"},children:[h.toFixed(2)," ",C]}),i.jsxs("span",{style:{fontWeight:600},children:[x.toFixed(2)," ",C]}),l&&a>0&&i.jsxs("span",{style:{marginLeft:"0.5rem",padding:"0.125rem 0.375rem",backgroundColor:"#10b981",color:"white",borderRadius:"0.25rem",fontSize:"0.75em",fontWeight:600},children:[a,"% OFF"]})]})}function jt({product:e,paymentMethod:t,className:r="",style:s={}}){const n=t==="stripe",u=n?e.hasStripeCoupon:e.hasCryptoCoupon,h=n?e.stripeDiscountPercent:e.cryptoDiscountPercent,x=n?e.stripeCouponCode:e.cryptoCouponCode;if(!u||h===0)return null;const C=n?`${h}% off with card!`:`${h}% off with crypto!`;return i.jsxs("div",{className:r,style:{display:"inline-flex",alignItems:"center",padding:"0.5rem 0.75rem",backgroundColor:n?"#6366f1":"#10b981",color:"white",borderRadius:"0.375rem",fontSize:"0.875rem",fontWeight:600,...s},children:[C,x&&i.jsxs("span",{style:{marginLeft:"0.5rem",opacity:.8,fontSize:"0.75em",fontWeight:400},children:["(",x,")"]})]})}function _e(){const{subscriptionManager:e}=I.useCedrosContext(),[t,r]=f.useState({status:"idle",error:null,sessionId:null,subscriptionStatus:null,expiresAt:null}),s=f.useRef(!1),n=f.useCallback(async C=>{if(s.current)return{success:!1,error:"Payment already in progress"};s.current=!0,r(l=>({...l,status:"loading",error:null}));try{const l=await e.processSubscription(C);return r(a=>({...a,status:l.success?"success":"error",error:l.success?null:l.error||"Subscription failed",sessionId:l.success&&l.transactionId||null})),l}catch(l){const a=I.formatError(l,"Subscription failed");return r(o=>({...o,status:"error",error:a})),{success:!1,error:a}}finally{s.current=!1}},[e]),u=f.useCallback(async C=>{r(l=>({...l,status:"checking",error:null}));try{const l=await e.checkSubscriptionStatus(C);return r(a=>({...a,status:l.active?"success":"idle",subscriptionStatus:l.status,expiresAt:l.expiresAt||l.currentPeriodEnd||null})),l}catch(l){const a=l instanceof Error?l.message:"Failed to check subscription status";throw r(o=>({...o,status:"error",error:a})),l}},[e]),h=f.useCallback(async(C,l,a)=>{r(o=>({...o,status:"loading",error:null}));try{const o=await e.requestSubscriptionQuote(C,l,a);return r(d=>({...d,status:"idle"})),o}catch(o){const d=o instanceof Error?o.message:"Failed to get subscription quote";throw r(p=>({...p,status:"error",error:d})),o}},[e]),x=f.useCallback(()=>{r({status:"idle",error:null,sessionId:null,subscriptionStatus:null,expiresAt:null})},[]);return{...t,processSubscription:n,checkStatus:u,requestQuote:h,reset:x}}function kt({resource:e,interval:t,intervalDays:r,trialDays:s,successUrl:n,cancelUrl:u,customerEmail:h,label:x,disabled:C=!1,onAttempt:l,onSuccess:a,onError:o,className:d=""}){const{status:p,error:c,sessionId:m,processSubscription:g}=_e(),y=I.useCedrosTheme(),{t:b,translations:M}=G(),S=x||b("ui.subscribe"),P=y.unstyled?d:`${y.className} cedros-theme__stripe-button ${d}`.trim(),_=c&&typeof c!="string"?c?.code??null:null,z=c?typeof c=="string"?c:(k=>{if(!k||!M)return"";const T=M.errors[k];return T?T.action?`${T.message} ${T.action}`:T.message:""})(_):null,A=f.useCallback(async()=>{L.getLogger().debug("[SubscribeButton] executeSubscription:",{resource:e,interval:t,intervalDays:r,trialDays:s}),J("stripe",e),l&&l("stripe"),Z("stripe",e);const k=await g({resource:e,interval:t,intervalDays:r,trialDays:s,customerEmail:h,successUrl:n,cancelUrl:u});k.success&&k.transactionId?(ee("stripe",k.transactionId,e),a&&a(k.transactionId)):!k.success&&k.error&&(W("stripe",k.error,e),o&&o(k.error))},[e,t,r,s,h,n,u,g,l,a,o]),q=f.useMemo(()=>`subscribe-${e}-${t}`,[e,t]),w=f.useMemo(()=>X(q,A),[q,A]),j=p==="loading",B=C||j;return i.jsxs("div",{className:P,style:y.unstyled?{}:y.style,children:[i.jsx("button",{onClick:w,disabled:B,className:y.unstyled?d:"cedros-theme__button cedros-theme__stripe",type:"button",children:j?b("ui.processing"):S}),z&&i.jsx("div",{className:y.unstyled?"":"cedros-theme__error",children:z}),m&&i.jsx("div",{className:y.unstyled?"":"cedros-theme__success",children:b("ui.redirecting_to_checkout")})]})}function Ie(){const{subscriptionManager:e,creditsManager:t}=I.useCedrosContext(),[r,s]=f.useState({status:"idle",error:null,sessionId:null,subscriptionStatus:null,expiresAt:null,creditsRequirement:null}),n=f.useRef(!1),u=f.useCallback(async(l,a)=>{s(o=>({...o,status:"checking",error:null}));try{const o=await e.checkSubscriptionStatus({resource:l,userId:a});return s(d=>({...d,status:o.active?"success":"idle",subscriptionStatus:o.status,expiresAt:o.expiresAt||o.currentPeriodEnd||null})),o}catch(o){const d=I.formatError(o,"Failed to check subscription status");return s(p=>({...p,status:"error",error:d})),null}},[e]),h=f.useCallback(async(l,a,o)=>{s(d=>({...d,status:"loading",error:null}));try{const d=await t.requestQuote(l,o?.couponCode);return s(p=>({...p,status:"idle",creditsRequirement:d})),d}catch(d){const p=I.formatError(d,"Failed to get subscription quote");return s(c=>({...c,status:"error",error:p})),null}},[t]),x=f.useCallback(async(l,a,o,d)=>{if(n.current)return{success:!1,error:"Payment already in progress"};if(!o){const p="Authentication required for credits payment";return s(c=>({...c,status:"error",error:p})),{success:!1,error:p}}n.current=!0,s(p=>({...p,status:"loading",error:null}));try{const p=await t.processPayment(l,o,d?.couponCode,{interval:a,...d?.intervalDays&&{intervalDays:String(d.intervalDays)}});return p.success?s({status:"success",error:null,sessionId:p.transactionId||null,subscriptionStatus:"active",expiresAt:null,creditsRequirement:null}):s(c=>({...c,status:"error",error:p.error||"Credits subscription payment failed"})),p}catch(p){const c=I.formatError(p,"Credits subscription payment failed");return s(m=>({...m,status:"error",error:c})),{success:!1,error:c}}finally{n.current=!1}},[t]),C=f.useCallback(()=>{s({status:"idle",error:null,sessionId:null,subscriptionStatus:null,expiresAt:null,creditsRequirement:null})},[]);return{...r,checkStatus:u,requestQuote:h,processPayment:x,reset:C}}function Et({resource:e,interval:t,intervalDays:r,authToken:s,userId:n,couponCode:u,label:h,disabled:x=!1,onAttempt:C,onSuccess:l,onError:a,className:o="",hideMessages:d=!1,autoCheckStatus:p=!1}){const{status:c,error:m,subscriptionStatus:g,expiresAt:y,checkStatus:b,processPayment:M}=Ie(),S=I.useCedrosTheme(),{t:P,translations:_}=G(),$=f.useRef(b);f.useEffect(()=>{$.current=b},[b]),f.useEffect(()=>{p&&n&&(L.getLogger().debug("[CreditsSubscribeButton] Auto-checking subscription status",{resource:e,userId:n}),$.current(e,n))},[p,n,e]);const z=h||P("ui.subscribe_with_credits")||"Subscribe with Credits",A=m&&typeof m!="string"?m?.code??null:null,w=m?typeof m=="string"?m:(N=>{if(!N||!_)return"";const F=_.errors[N];return F?F.action?`${F.message} ${F.action}`:F.message:""})(A):null,j=f.useCallback(async()=>{if(L.getLogger().debug("[CreditsSubscribeButton] executeSubscriptionFlow",{resource:e,interval:t,intervalDays:r,hasAuthToken:!!s}),J("credits",e),C&&C("credits"),!s){const F="Authentication required: please log in to subscribe with credits";L.getLogger().error("[CreditsSubscribeButton]",F),W("credits",F,e),a&&a(F);return}Z("credits",e);const N=await M(e,t,s,{couponCode:u,intervalDays:r});N.success&&N.transactionId?(ee("credits",N.transactionId,e),l&&l(N.transactionId)):!N.success&&N.error&&(W("credits",N.error,e),a&&a(N.error))},[e,t,r,s,u,M,C,l,a]),B=f.useMemo(()=>`credits-subscribe-${e}-${t}`,[e,t]),k=f.useMemo(()=>X(B,j,{cooldownMs:200,deduplicationWindowMs:0}),[B,j]),T=c==="loading"||c==="checking",R=g==="active"||g==="trialing",v=x||T||R;let E=z;if(T)E=P("ui.processing");else if(R&&y){const N=new Date(y).toLocaleDateString();E=`${P("ui.subscribed_until")} ${N}`}else R&&(E=P("ui.subscribed"));const O=S.unstyled?o:`${S.className} cedros-theme__credits-button ${o}`.trim();return i.jsxs("div",{className:O,style:S.unstyled?{}:S.style,children:[i.jsx("button",{onClick:k,disabled:v,className:S.unstyled?o:"cedros-theme__button cedros-theme__credits",type:"button",children:E}),!d&&w&&i.jsx("div",{className:S.unstyled?"":"cedros-theme__error",children:w}),!d&&R&&i.jsx("div",{className:S.unstyled?"":"cedros-theme__success",children:P("ui.subscription_active")})]})}function qe(){const{subscriptionChangeManager:e}=I.useCedrosContext(),[t,r]=f.useState({status:"idle",error:null,subscription:null,changePreview:null,userId:null}),s=f.useRef(t);s.current=t;const n=f.useCallback(async(o,d)=>{r(p=>({...p,status:"loading",error:null}));try{const p=await e.getDetails(o,d);return r(c=>({...c,status:"success",subscription:p,userId:d})),p}catch(p){const c=p instanceof Error?p.message:"Failed to load subscription";return r(m=>({...m,status:"error",error:c})),null}},[e]),u=f.useCallback(async(o,d,p,c)=>{r(m=>({...m,status:"loading",error:null}));try{const m={currentResource:o,newResource:d,userId:p,newInterval:c},g=await e.previewChange(m);return r(y=>({...y,status:"idle",changePreview:g})),g}catch(m){const g=m instanceof Error?m.message:"Failed to preview change";return r(y=>({...y,status:"error",error:g})),null}},[e]),h=f.useCallback(async o=>{const{subscription:d,userId:p}=s.current;if(!d||!p)return r(c=>({...c,status:"error",error:"No subscription loaded"})),null;r(c=>({...c,status:"loading",error:null}));try{const c={subscriptionId:d.id,newResource:o.newResource,prorationBehavior:o.prorationBehavior},m=await e.changeSubscription(c);return m.success?r(g=>({...g,status:"success",subscription:g.subscription?{...g.subscription,resource:m.newResource,interval:g.subscription.interval,status:m.status,currentPeriodEnd:m.currentPeriodEnd}:null,changePreview:null})):r(g=>({...g,status:"error",error:m.error||"Failed to change subscription"})),m}catch(c){const m=c instanceof Error?c.message:"Failed to change subscription";return r(g=>({...g,status:"error",error:m})),null}},[e]),x=f.useCallback(async o=>{const{subscription:d,userId:p}=s.current;if(!d||!p)return r(c=>({...c,status:"error",error:"No subscription loaded"})),null;r(c=>({...c,status:"loading",error:null}));try{const c={subscriptionId:d.id,atPeriodEnd:!o},m=await e.cancel(c);if(m.success){const g=m.atPeriodEnd?d.status:"canceled";r(y=>({...y,status:"success",subscription:y.subscription?{...y.subscription,status:g,cancelAtPeriodEnd:m.atPeriodEnd}:null}))}else r(g=>({...g,status:"error",error:m.error||"Failed to cancel subscription"}));return m}catch(c){const m=c instanceof Error?c.message:"Failed to cancel subscription";return r(g=>({...g,status:"error",error:m})),null}},[e]),C=f.useCallback(async(o,d)=>{const p=s.current.subscription?.customerId??(o.startsWith("cus_")?o:null);if(!p)return r(c=>({...c,status:"error",error:"No Stripe customer ID available for billing portal"})),null;r(c=>({...c,status:"loading",error:null}));try{const c=await e.getBillingPortalUrl({customerId:p,returnUrl:d});try{if(new URL(c.url).protocol!=="https:")throw new Error("Billing portal URL must use HTTPS")}catch{throw new Error("Invalid billing portal URL")}return window.location.href=c.url,c}catch(c){const m=c instanceof Error?c.message:"Failed to open billing portal";return r(g=>({...g,status:"error",error:m})),null}},[e]),l=f.useCallback(()=>{r(o=>({...o,changePreview:null}))},[]),a=f.useCallback(()=>{r({status:"idle",error:null,subscription:null,changePreview:null,userId:null})},[]);return{...t,loadSubscription:n,previewChange:u,changeSubscription:h,cancelSubscription:x,openBillingPortal:C,clearPreview:l,reset:a}}const Mt={bg:"#fff",bgMuted:"#f9fafb",bgHighlight:"#eff6ff",text:"#111827",textMuted:"#6b7280",textFaint:"#9ca3af",border:"#e5e7eb",borderLight:"#f3f4f6",primary:"#3b82f6",error:"#ef4444",errorBg:"#fef2f2",errorBorder:"#fecaca",warningBg:"#fef3c7",warningBorder:"#fcd34d",warningText:"#92400e",buttonBg:"#f3f4f6",buttonBorder:"#d1d5db",buttonText:"#374151"},Rt={bg:"#1e293b",bgMuted:"#334155",bgHighlight:"rgba(59, 130, 246, 0.15)",text:"#f1f5f9",textMuted:"#94a3b8",textFaint:"#64748b",border:"#475569",borderLight:"#334155",primary:"#3b82f6",error:"#ef4444",errorBg:"rgba(239, 68, 68, 0.15)",errorBorder:"rgba(239, 68, 68, 0.3)",warningBg:"rgba(245, 158, 11, 0.15)",warningBorder:"rgba(245, 158, 11, 0.3)",warningText:"#fbbf24",buttonBg:"#334155",buttonBorder:"#475569",buttonText:"#e2e8f0"};function Tt(e){const t=e?Rt:Mt;return{container:{padding:"24px",backgroundColor:t.bg,borderRadius:"8px",border:`1px solid ${t.border}`,fontFamily:"system-ui, -apple-system, sans-serif",color:t.text},error:{padding:"12px 16px",backgroundColor:t.errorBg,border:`1px solid ${t.errorBorder}`,borderRadius:"6px",color:t.error,marginBottom:"16px"},loading:{padding:"24px",textAlign:"center",color:t.textMuted},details:{marginBottom:"24px"},title:{margin:"0 0 16px 0",fontSize:"18px",fontWeight:600,color:t.text},detailRow:{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"8px 0",borderBottom:`1px solid ${t.borderLight}`},label:{color:t.textMuted,fontSize:"14px"},value:{color:t.text,fontSize:"14px",fontWeight:500},statusBadge:{padding:"4px 8px",borderRadius:"4px",color:"#fff",fontSize:"12px",fontWeight:500,textTransform:"capitalize"},cancelNotice:{marginTop:"12px",padding:"8px 12px",backgroundColor:t.warningBg,border:`1px solid ${t.warningBorder}`,borderRadius:"6px",color:t.warningText,fontSize:"13px"},prorationPreview:{padding:"16px",backgroundColor:t.bgMuted,borderRadius:"8px",marginBottom:"24px"},previewTitle:{margin:"0 0 12px 0",fontSize:"16px",fontWeight:600,color:t.text},previewDetails:{marginBottom:"16px"},previewRow:{display:"flex",justifyContent:"space-between",padding:"6px 0",fontSize:"14px",color:t.textMuted},previewTotal:{borderTop:`1px solid ${t.border}`,marginTop:"8px",paddingTop:"12px",fontWeight:600,color:t.text},previewActions:{display:"flex",gap:"12px",justifyContent:"flex-end"},cancelButton:{padding:"8px 16px",backgroundColor:t.bg,border:`1px solid ${t.buttonBorder}`,borderRadius:"6px",color:t.buttonText,cursor:"pointer",fontSize:"14px"},confirmButton:{padding:"8px 16px",backgroundColor:t.primary,border:"none",borderRadius:"6px",color:"#fff",cursor:"pointer",fontSize:"14px",fontWeight:500},plansSection:{marginBottom:"24px"},plansTitle:{margin:"0 0 12px 0",fontSize:"16px",fontWeight:600,color:t.text},plansList:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(200px, 1fr))",gap:"16px"},planCard:{padding:"16px",backgroundColor:t.bg,border:`1px solid ${t.border}`,borderRadius:"8px",textAlign:"center"},currentPlan:{borderColor:t.primary,backgroundColor:t.bgHighlight},planName:{fontSize:"16px",fontWeight:600,color:t.text,marginBottom:"4px"},planPrice:{fontSize:"14px",color:t.textMuted,marginBottom:"8px"},planDescription:{fontSize:"12px",color:t.textFaint,marginBottom:"12px"},currentBadge:{display:"inline-block",padding:"4px 8px",backgroundColor:t.primary,color:"#fff",borderRadius:"4px",fontSize:"12px",fontWeight:500},changePlanButton:{padding:"8px 16px",backgroundColor:t.buttonBg,border:`1px solid ${t.buttonBorder}`,borderRadius:"6px",color:t.buttonText,cursor:"pointer",fontSize:"14px",width:"100%"},actions:{display:"flex",gap:"12px",justifyContent:"flex-end",paddingTop:"16px",borderTop:`1px solid ${t.border}`},portalButton:{padding:"10px 20px",backgroundColor:t.primary,border:"none",borderRadius:"6px",color:"#fff",cursor:"pointer",fontSize:"14px",fontWeight:500},cancelSubscriptionButton:{padding:"10px 20px",backgroundColor:t.bg,border:`1px solid ${t.error}`,borderRadius:"6px",color:t.error,cursor:"pointer",fontSize:"14px"}}}function Q(e,t){return new Intl.NumberFormat("en-US",{style:"currency",currency:t.toUpperCase()}).format(e/100)}function Le(e){return new Date(e).toLocaleDateString("en-US",{year:"numeric",month:"long",day:"numeric"})}function _t(e){switch(e){case"active":return"#22c55e";case"trialing":return"#3b82f6";case"past_due":return"#f59e0b";case"canceled":case"expired":return"#ef4444";default:return"#6b7280"}}function It({preview:e,onConfirm:t,onCancel:r,isLoading:s,styles:n}){const u=e.immediateAmount<0;return i.jsxs("div",{className:"cedros-proration-preview",style:n.prorationPreview,children:[i.jsx("h4",{style:n.previewTitle,children:"Change Preview"}),i.jsxs("div",{style:n.previewDetails,children:[i.jsxs("div",{style:n.previewRow,children:[i.jsx("span",{children:"Current plan:"}),i.jsxs("span",{children:[Q(e.currentPlanPrice,e.currency),"/period"]})]}),i.jsxs("div",{style:n.previewRow,children:[i.jsx("span",{children:"New plan:"}),i.jsxs("span",{children:[Q(e.newPlanPrice,e.currency),"/period"]})]}),i.jsxs("div",{style:n.previewRow,children:[i.jsx("span",{children:"Days remaining:"}),i.jsxs("span",{children:[e.daysRemaining," days"]})]}),e.prorationDetails&&i.jsxs(i.Fragment,{children:[i.jsxs("div",{style:n.previewRow,children:[i.jsx("span",{children:"Unused credit:"}),i.jsxs("span",{children:["-",Q(e.prorationDetails.unusedCredit,e.currency)]})]}),i.jsxs("div",{style:n.previewRow,children:[i.jsx("span",{children:"New plan cost:"}),i.jsx("span",{children:Q(e.prorationDetails.newPlanCost,e.currency)})]})]}),i.jsxs("div",{style:{...n.previewRow,...n.previewTotal},children:[i.jsx("span",{children:u?"Credit to account:":"Amount due now:"}),i.jsx("span",{style:{color:u?"#22c55e":"#ef4444"},children:Q(Math.abs(e.immediateAmount),e.currency)})]}),i.jsxs("div",{style:n.previewRow,children:[i.jsx("span",{children:"Effective date:"}),i.jsx("span",{children:Le(e.effectiveDate)})]})]}),i.jsxs("div",{style:n.previewActions,children:[i.jsx("button",{onClick:r,style:n.cancelButton,disabled:s,children:"Cancel"}),i.jsx("button",{onClick:t,style:n.confirmButton,disabled:s,children:s?"Processing...":"Confirm Change"})]})]})}function qt({resource:e,userId:t,availablePlans:r=[],onSubscriptionChanged:s,onSubscriptionCanceled:n,billingPortalReturnUrl:u,showBillingPortal:h=!1,className:x,style:C}){const{mode:l}=I.useCedrosTheme(),a=f.useMemo(()=>Tt(l==="dark"),[l]),{subscription:o,changePreview:d,status:p,error:c,loadSubscription:m,previewChange:g,changeSubscription:y,cancelSubscription:b,openBillingPortal:M,clearPreview:S}=qe();f.useEffect(()=>{m(e,t)},[e,t,m]);const P=f.useRef(null),_=f.useCallback(async(w,j)=>{P.current={resource:w,interval:j},await g(e,w,t,j)},[e,t,g]),$=f.useCallback(async()=>{if(!d)return;const w=P.current;(await y({newResource:w?.resource||e,newInterval:w?.interval,immediate:!0}))?.success&&w&&w.interval&&(s?.(w.resource,w.interval),P.current=null)},[d,e,y,s]),z=f.useCallback(async w=>{(await b(w))?.success&&n?.()},[b,n]),A=f.useCallback(()=>{M(t,u)},[t,u,M]),q=p==="loading";return i.jsxs("div",{className:`cedros-subscription-panel ${x||""}`,style:{...a.container,...C},children:[c&&i.jsx("div",{className:"cedros-subscription-error",style:a.error,children:c}),q&&!o&&i.jsx("div",{className:"cedros-subscription-loading",style:a.loading,children:"Loading subscription..."}),o&&i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"cedros-subscription-details",style:a.details,children:[i.jsx("h3",{style:a.title,children:"Current Subscription"}),i.jsxs("div",{style:a.detailRow,children:[i.jsx("span",{style:a.label,children:"Plan:"}),i.jsx("span",{style:a.value,children:o.resource})]}),i.jsxs("div",{style:a.detailRow,children:[i.jsx("span",{style:a.label,children:"Status:"}),i.jsx("span",{style:{...a.statusBadge,backgroundColor:_t(o.status)},children:o.status})]}),i.jsxs("div",{style:a.detailRow,children:[i.jsx("span",{style:a.label,children:"Price:"}),i.jsxs("span",{style:a.value,children:[Q(o.pricePerPeriod,o.currency),"/",o.interval]})]}),i.jsxs("div",{style:a.detailRow,children:[i.jsx("span",{style:a.label,children:"Current period ends:"}),i.jsx("span",{style:a.value,children:Le(o.currentPeriodEnd)})]}),o.cancelAtPeriodEnd&&i.jsx("div",{style:a.cancelNotice,children:"Subscription will cancel at end of current period"})]}),d&&i.jsx(It,{preview:d,onConfirm:$,onCancel:S,isLoading:q,styles:a}),r.length>0&&!d&&i.jsxs("div",{className:"cedros-available-plans",style:a.plansSection,children:[i.jsx("h4",{style:a.plansTitle,children:"Available Plans"}),i.jsx("div",{style:a.plansList,children:r.map(w=>{const j=w.resource===o.resource;return i.jsxs("div",{style:{...a.planCard,...j?a.currentPlan:{}},children:[i.jsx("div",{style:a.planName,children:w.name}),i.jsxs("div",{style:a.planPrice,children:[Q(w.price,w.currency),"/",w.interval]}),w.description&&i.jsx("div",{style:a.planDescription,children:w.description}),j?i.jsx("span",{style:a.currentBadge,children:"Current Plan"}):i.jsx("button",{onClick:()=>_(w.resource,w.interval),style:a.changePlanButton,disabled:q,children:w.price>o.pricePerPeriod?"Upgrade":"Downgrade"})]},w.resource)})})]}),i.jsxs("div",{className:"cedros-subscription-actions",style:a.actions,children:[h&&o.paymentMethod==="stripe"&&i.jsx("button",{onClick:A,style:a.portalButton,disabled:q,children:"Manage Billing"}),o.status==="active"&&!o.cancelAtPeriodEnd&&i.jsx("button",{onClick:()=>z(!1),style:a.cancelSubscriptionButton,disabled:q,children:"Cancel Subscription"})]})]})]})}function Lt(){if(typeof window>"u")return{passed:!0,severity:"info",message:"HTTPS check skipped (SSR environment)"};const e=window.location.protocol==="https:",t=window.location.hostname==="localhost"||window.location.hostname==="127.0.0.1";return e||t?{passed:!0,severity:"info",message:"HTTPS enforced"}:{passed:!1,severity:"error",message:"Page not served over HTTPS",recommendation:"Enable HTTPS for all payment pages. Stripe.js requires HTTPS in production."}}function Nt(){return typeof document>"u"?{passed:!0,severity:"info",message:"CSP check skipped (SSR environment)"}:document.querySelector('meta[http-equiv="Content-Security-Policy"]')?{passed:!0,severity:"info",message:"Content Security Policy detected"}:{passed:!1,severity:"warning",message:"No Content Security Policy detected",recommendation:"Configure CSP headers to protect against XSS and CDN compromise. Use generateCSP() helper from @cedros/pay-react."}}function Dt(){return process.env.NODE_ENV==="development"||typeof window<"u"&&window.location.hostname==="localhost"?{passed:!0,severity:"info",message:"Running in development mode (some security checks relaxed)"}:{passed:!0,severity:"info",message:"Running in production mode"}}function Bt(){return{passed:!0,severity:"info",message:"Stripe.js loaded via @stripe/stripe-js package (CSP recommended, not SRI)",recommendation:"Ensure CSP script-src includes https://js.stripe.com"}}function $t(){return typeof window>"u"?{passed:!0,severity:"info",message:"Mixed content check skipped (SSR environment)"}:window.location.protocol==="https:"?{passed:!0,severity:"info",message:"Mixed content protection active (HTTPS page)"}:{passed:!0,severity:"info",message:"Mixed content check skipped (HTTP page)"}}function At(){const e=[Lt(),Nt(),Dt(),Bt(),$t()],t=e.some(u=>u.severity==="error"&&!u.passed),r=e.some(u=>u.severity==="warning"&&!u.passed);let s,n;return t?(s="vulnerable",n="Security issues detected. Review errors and apply recommendations."):r?(s="warnings",n="Minor security warnings detected. Consider applying recommendations."):(s="secure",n="All security checks passed."),{checks:e,overallStatus:s,summary:n}}function zt(e){process.env.NODE_ENV!=="production"&&(console.group("🔒 Cedros Pay Security Report"),console.log(`Status: ${e.overallStatus.toUpperCase()}`),console.log(`Summary: ${e.summary}`),console.log(""),e.checks.forEach(t=>{const r=t.passed?"✅":t.severity==="error"?"❌":"⚠️";console.log(`${r} ${t.message}`),t.recommendation&&console.log(` → ${t.recommendation}`)}),console.groupEnd())}const Ut={CSP:"Use generateCSP() from @cedros/pay-react to generate Content Security Policy headers",HTTPS:"Always serve payment pages over HTTPS in production",PACKAGE_UPDATES:"Keep @stripe/stripe-js and @cedros/pay-react updated for security patches",AUDIT:"Run npm audit regularly to check for known vulnerabilities",MONITORING:"Monitor Stripe security advisories and apply updates promptly",NO_SRI:"Do NOT use SRI hashes for Stripe.js - use CSP instead"};exports.CEDROS_EVENTS=H;exports.CSP_PRESETS=ft;exports.CedrosPay=Pt;exports.CreditsButton=me;exports.CreditsSubscribeButton=Et;exports.PaymentMethodBadge=jt;exports.PaymentModal=Re;exports.ProductPrice=vt;exports.PurchaseButton=Te;exports.RPC_PROVIDERS=pt;exports.SECURITY_RECOMMENDATIONS=Ut;exports.StripeButton=fe;exports.SubscribeButton=kt;exports.SubscriptionManagementPanel=qt;exports.calculateDiscountPercentage=Ve;exports.createDedupedClickHandler=X;exports.createTranslator=Ee;exports.detectLocale=je;exports.emitPaymentError=W;exports.emitPaymentProcessing=Z;exports.emitPaymentStart=J;exports.emitPaymentSuccess=ee;exports.emitWalletConnect=nt;exports.emitWalletConnected=ot;exports.emitWalletError=it;exports.formatCSP=ve;exports.formatCouponCodes=Qe;exports.generateCSP=dt;exports.generateCSPDirectives=Pe;exports.getAvailableLocales=gt;exports.getCartItemCount=te;exports.getLocalizedError=ht;exports.getModalCloseButtonStyles=Se;exports.getUserErrorMessage=ct;exports.isRetryableError=at;exports.loadLocale=ke;exports.logSecurityReport=zt;exports.normalizeCartItems=ae;exports.parseCouponCodes=Ye;exports.stackCheckoutCoupons=Ge;exports.useCreditsPayment=Me;exports.useCreditsSubscription=Ie;exports.useLocalizedError=yt;exports.usePaymentMode=re;exports.useStripeCheckout=pe;exports.useSubscription=_e;exports.useSubscriptionManagement=qe;exports.useTranslation=G;exports.validateSecurity=At;
@@ -1,18 +1,17 @@
1
- import { P as ke, u as re, m as be, l as pe } from "./CedrosContext-5Gjveoba.mjs";
1
+ import { P as ke, u as re, n as be, l as V, m as pe } from "./CedrosContext-DQc_k5PG.mjs";
2
2
  import { jsxs as S, jsx as f, Fragment as me } from "react/jsx-runtime";
3
3
  import U, { useState as Q, useRef as X, useCallback as R, useMemo as W, useEffect as te } from "react";
4
4
  import { g as j } from "./fetchWithTimeout-DmMOwL0Q.mjs";
5
- import { u as V } from "./ThemeContext-l0bqcOGW.mjs";
6
- function kt(e) {
5
+ function Et(e) {
7
6
  return !e || !e.coupon_codes ? [] : e.coupon_codes.split(",").map((t) => t.trim()).filter((t) => t.length > 0);
8
7
  }
9
- function _t(e, t = ", ") {
8
+ function kt(e, t = ", ") {
10
9
  return e.join(t);
11
10
  }
12
- function Rt(e, t) {
11
+ function _t(e, t) {
13
12
  return e <= 0 ? 0 : (e - t) / e * 100;
14
13
  }
15
- function It(e, t) {
14
+ function Rt(e, t) {
16
15
  if (!t || t.length === 0)
17
16
  return e;
18
17
  let r = e, n = 0;
@@ -157,20 +156,20 @@ function oe(e, t, r) {
157
156
  itemCount: r
158
157
  });
159
158
  }
160
- function Mt(e) {
159
+ function It(e) {
161
160
  Z(J.WALLET_CONNECT, {
162
161
  timestamp: Date.now(),
163
162
  wallet: e
164
163
  });
165
164
  }
166
- function Tt(e, t) {
165
+ function Mt(e, t) {
167
166
  Z(J.WALLET_CONNECTED, {
168
167
  timestamp: Date.now(),
169
168
  wallet: e,
170
169
  publicKey: t
171
170
  });
172
171
  }
173
- function Nt(e, t) {
172
+ function Tt(e, t) {
174
173
  Z(J.WALLET_ERROR, {
175
174
  timestamp: Date.now(),
176
175
  wallet: t,
@@ -203,10 +202,10 @@ function Y(e, t, r, n) {
203
202
  itemCount: n
204
203
  });
205
204
  }
206
- function Dt(e) {
205
+ function Nt(e) {
207
206
  return e instanceof ke && e.canRetry();
208
207
  }
209
- function jt(e) {
208
+ function Dt(e) {
210
209
  return e instanceof ke ? e.getUserMessage() : e instanceof Error ? e.message : String(e);
211
210
  }
212
211
  function Ye(e) {
@@ -285,17 +284,17 @@ function Ge(e, t = "header") {
285
284
  throw new Error(`Unknown CSP format: ${t}`);
286
285
  }
287
286
  }
288
- function Bt(e = {}, t = "header") {
287
+ function jt(e = {}, t = "header") {
289
288
  const r = Ve(e);
290
289
  return Ge(r, t);
291
290
  }
292
- const Lt = {
291
+ const Bt = {
293
292
  HELIUS: "https://*.helius-rpc.com",
294
293
  QUICKNODE: "https://*.quicknode.pro",
295
294
  ALCHEMY: "https://*.alchemy.com",
296
295
  ANKR: "https://rpc.ankr.com",
297
296
  TRITON: "https://*.rpcpool.com"
298
- }, $t = {
297
+ }, Lt = {
299
298
  /**
300
299
  * Mainnet production with custom RPC (recommended)
301
300
  */
@@ -461,7 +460,7 @@ async function Ee(e) {
461
460
  return null;
462
461
  }
463
462
  }
464
- async function At() {
463
+ async function $t() {
465
464
  if (de)
466
465
  return de;
467
466
  const e = /* @__PURE__ */ Object.assign({ "./translations/ar.json": () => import("./ar-w27mU-4x.mjs"), "./translations/bn.json": () => import("./bn-Ba_k3Kex.mjs"), "./translations/de.json": () => import("./de-CoZiPFN7.mjs"), "./translations/en.json": () => import("./en-BXheDBal.mjs"), "./translations/es.json": () => import("./es-BWGIBp2f.mjs"), "./translations/fil.json": () => import("./fil-Czo27xmj.mjs"), "./translations/fr.json": () => import("./fr-DQ-2ThBv.mjs"), "./translations/he.json": () => import("./he-DpV1WnBQ.mjs"), "./translations/id.json": () => import("./id-BJMqsu19.mjs"), "./translations/in.json": () => import("./in-BxgxKLQH.mjs"), "./translations/it.json": () => import("./it-DZFFPALf.mjs"), "./translations/jp.json": () => import("./jp-ZExTrlHK.mjs"), "./translations/kr.json": () => import("./kr-DHX3i4Ht.mjs"), "./translations/ms.json": () => import("./ms-Cv1fdIi2.mjs"), "./translations/nl.json": () => import("./nl-BmGonsKb.mjs"), "./translations/pa.json": () => import("./pa-BfwcJIar.mjs"), "./translations/pl.json": () => import("./pl-DE5IB9xv.mjs"), "./translations/pt.json": () => import("./pt-CLzkqDzf.mjs"), "./translations/ru.json": () => import("./ru-DM6-oUR0.mjs"), "./translations/ta.json": () => import("./ta-A5HnrGb5.mjs"), "./translations/th.json": () => import("./th-3fbB3Ytp.mjs"), "./translations/tr.json": () => import("./tr-BrgfFFdq.mjs"), "./translations/uk.json": () => import("./uk-0hFun_g_.mjs"), "./translations/ur.json": () => import("./ur-CaOjJXai.mjs"), "./translations/vn.json": () => import("./vn-0nlIZFLP.mjs"), "./translations/zh.json": () => import("./zh-B4Endr1F.mjs") }), t = [];
@@ -495,7 +494,7 @@ function Ze(e) {
495
494
  ) : s;
496
495
  };
497
496
  }
498
- function qt(e, t, r = !0) {
497
+ function At(e, t, r = !0) {
499
498
  const n = t.errors[e];
500
499
  if (!n) {
501
500
  const s = be(e);
@@ -537,7 +536,7 @@ function ne(e) {
537
536
  translations: t
538
537
  };
539
538
  }
540
- function zt(e, t = !0) {
539
+ function qt(e, t = !0) {
541
540
  const { translations: r } = ne();
542
541
  if (!r) {
543
542
  const s = be(e);
@@ -860,7 +859,7 @@ function Te({
860
859
  ] });
861
860
  }
862
861
  const tt = U.lazy(
863
- () => import("./CryptoButton-Cl2kZbOP.mjs").then((e) => e.a).then((e) => ({ default: e.CryptoButton }))
862
+ () => import("./CryptoButton-BuO_RZLj.mjs").then((e) => e.a).then((e) => ({ default: e.CryptoButton }))
864
863
  ), rt = ({
865
864
  isOpen: e,
866
865
  onClose: t,
@@ -1173,9 +1172,9 @@ function at({
1173
1172
  return /* @__PURE__ */ f(s, { endpoint: e, children: /* @__PURE__ */ f(l, { wallets: t, autoConnect: !1, children: r }) });
1174
1173
  }
1175
1174
  const it = U.lazy(
1176
- () => import("./CryptoButton-Cl2kZbOP.mjs").then((e) => e.a).then((e) => ({ default: e.CryptoButton }))
1175
+ () => import("./CryptoButton-BuO_RZLj.mjs").then((e) => e.a).then((e) => ({ default: e.CryptoButton }))
1177
1176
  );
1178
- function Ut(e) {
1177
+ function zt(e) {
1179
1178
  const { resource: t, items: r, checkout: n = {}, display: s = {}, callbacks: l = {}, advanced: g = {} } = e, { config: C, walletPool: b } = re(), c = V(), { isCartMode: a } = he(t, r), o = s.showCrypto ?? !0, u = U.useMemo(() => ({
1180
1179
  marginTop: "0.5rem",
1181
1180
  fontSize: "0.875rem",
@@ -1295,7 +1294,7 @@ function Ut(e) {
1295
1294
  ] }) });
1296
1295
  return /* @__PURE__ */ f("div", { className: c.unstyled ? s.className : c.className, style: c.unstyled ? {} : c.style, children: /* @__PURE__ */ f(at, { endpoint: q || "https://api.devnet.solana.com", wallets: d, children: M }) });
1297
1296
  }
1298
- function Ot({
1297
+ function Ut({
1299
1298
  product: e,
1300
1299
  paymentMethod: t,
1301
1300
  showOriginalPrice: r = !1,
@@ -1345,7 +1344,7 @@ function Ot({
1345
1344
  )
1346
1345
  ] });
1347
1346
  }
1348
- function Wt({
1347
+ function Ot({
1349
1348
  product: e,
1350
1349
  paymentMethod: t,
1351
1350
  className: r = "",
@@ -1497,7 +1496,7 @@ function ct() {
1497
1496
  reset: C
1498
1497
  };
1499
1498
  }
1500
- function Ft({
1499
+ function Wt({
1501
1500
  resource: e,
1502
1501
  interval: t,
1503
1502
  intervalDays: r,
@@ -1693,7 +1692,7 @@ function lt() {
1693
1692
  reset: b
1694
1693
  };
1695
1694
  }
1696
- function Ht({
1695
+ function Ft({
1697
1696
  resource: e,
1698
1697
  interval: t,
1699
1698
  intervalDays: r,
@@ -2283,7 +2282,7 @@ function gt({
2283
2282
  ] })
2284
2283
  ] });
2285
2284
  }
2286
- function Yt({
2285
+ function Ht({
2287
2286
  resource: e,
2288
2287
  userId: t,
2289
2288
  availablePlans: r = [],
@@ -2495,7 +2494,7 @@ function wt() {
2495
2494
  message: "Mixed content check skipped (HTTP page)"
2496
2495
  };
2497
2496
  }
2498
- function Qt() {
2497
+ function Yt() {
2499
2498
  const e = [
2500
2499
  ht(),
2501
2500
  yt(),
@@ -2510,13 +2509,13 @@ function Qt() {
2510
2509
  summary: s
2511
2510
  };
2512
2511
  }
2513
- function Vt(e) {
2512
+ function Qt(e) {
2514
2513
  process.env.NODE_ENV !== "production" && (console.group("🔒 Cedros Pay Security Report"), console.log(`Status: ${e.overallStatus.toUpperCase()}`), console.log(`Summary: ${e.summary}`), console.log(""), e.checks.forEach((t) => {
2515
2514
  const r = t.passed ? "✅" : t.severity === "error" ? "❌" : "⚠️";
2516
2515
  console.log(`${r} ${t.message}`), t.recommendation && console.log(` → ${t.recommendation}`);
2517
2516
  }), console.groupEnd());
2518
2517
  }
2519
- const Gt = {
2518
+ const Vt = {
2520
2519
  CSP: "Use generateCSP() from @cedros/pay-react to generate Content Security Policy headers",
2521
2520
  HTTPS: "Always serve payment pages over HTTPS in production",
2522
2521
  PACKAGE_UPDATES: "Keep @stripe/stripe-js and @cedros/pay-react updated for security patches",
@@ -2525,53 +2524,53 @@ const Gt = {
2525
2524
  NO_SRI: "Do NOT use SRI hashes for Stripe.js - use CSP instead"
2526
2525
  };
2527
2526
  export {
2528
- jt as A,
2529
- Dt as B,
2527
+ Dt as A,
2528
+ Nt as B,
2530
2529
  J as C,
2531
2530
  Je as D,
2532
- Vt as E,
2533
- kt as F,
2534
- It as G,
2531
+ Qt as E,
2532
+ Et as F,
2533
+ Rt as G,
2535
2534
  et as H,
2536
2535
  lt as I,
2537
- zt as J,
2536
+ qt as J,
2538
2537
  he as K,
2539
2538
  Ie as L,
2540
2539
  ct as M,
2541
2540
  ut as N,
2542
2541
  ne as O,
2543
- Wt as P,
2544
- Qt as Q,
2545
- Lt as R,
2546
- Gt as S,
2542
+ Ot as P,
2543
+ Yt as Q,
2544
+ Bt as R,
2545
+ Vt as S,
2547
2546
  Ce as T,
2548
2547
  ge as U,
2549
2548
  se as V,
2550
2549
  He as W,
2551
- $t as a,
2552
- Ut as b,
2550
+ Lt as a,
2551
+ zt as b,
2553
2552
  Te as c,
2554
- Ht as d,
2553
+ Ft as d,
2555
2554
  rt as e,
2556
- Ot as f,
2555
+ Ut as f,
2557
2556
  nt as g,
2558
2557
  Me as h,
2559
- Ft as i,
2560
- Yt as j,
2561
- Rt as k,
2558
+ Wt as i,
2559
+ Ht as j,
2560
+ _t as k,
2562
2561
  Ze as l,
2563
2562
  Xe as m,
2564
2563
  Y as n,
2565
2564
  ae as o,
2566
2565
  oe as p,
2567
2566
  ie as q,
2568
- Mt as r,
2569
- Tt as s,
2570
- Nt as t,
2567
+ It as r,
2568
+ Mt as s,
2569
+ Tt as t,
2571
2570
  Ge as u,
2572
- _t as v,
2573
- Bt as w,
2571
+ kt as v,
2572
+ jt as w,
2574
2573
  Ve as x,
2575
- At as y,
2576
- qt as z
2574
+ $t as y,
2575
+ At as z
2577
2576
  };