@cedros/pay-react 1.1.24 → 1.1.26

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (174) hide show
  1. package/dist/{AISettingsSection-Dw0ZlxMf.mjs → AISettingsSection-BlIv3CzS.mjs} +2 -2
  2. package/dist/{AISettingsSection-IXS1Wt_1.js → AISettingsSection-DELur7D2.js} +1 -1
  3. package/dist/{AutosaveIndicator-BJsg_kFZ.mjs → AutosaveIndicator-Bed0-ekg.mjs} +1 -1
  4. package/dist/{AutosaveIndicator-CY_YHM1D.js → AutosaveIndicator-Dn_qA2hK.js} +1 -1
  5. package/dist/CedrosContext-C2RjHLaQ.js +6 -0
  6. package/dist/{CedrosContext-DQUbL8yP.mjs → CedrosContext-CY6zvjvJ.mjs} +768 -617
  7. package/dist/ChatLogsSection-BH5tLA4T.js +1 -0
  8. package/dist/ChatLogsSection-v4zwzCTC.mjs +201 -0
  9. package/dist/ComplianceSection-CemgfDrL.mjs +650 -0
  10. package/dist/ComplianceSection-DP2a9-S0.js +1 -0
  11. package/dist/{CryptoButton-D1BCZBk4.mjs → CryptoButton-BV9owVe2.mjs} +2 -2
  12. package/dist/{CryptoButton-C1AAOOfj.js → CryptoButton-DpiCnyXE.js} +1 -1
  13. package/dist/CustomersSection-CBwy_waO.js +1 -0
  14. package/dist/CustomersSection-D_j7OrfS.mjs +207 -0
  15. package/dist/DisputesSection-BLjIk60n.js +1 -0
  16. package/dist/DisputesSection-BcAbXp3K.mjs +230 -0
  17. package/dist/{FAQSection-C78MnK4k.mjs → FAQSection-Dn38OhB_.mjs} +1 -1
  18. package/dist/{FAQSection-BmgmzDN5.js → FAQSection-wNeH0i6Q.js} +1 -1
  19. package/dist/ImagesSection-0ZzKlzMJ.js +1 -0
  20. package/dist/ImagesSection-Ctw9Icym.mjs +216 -0
  21. package/dist/InventorySection-DmhjUlRZ.mjs +150 -0
  22. package/dist/InventorySection-zV6lTmue.js +1 -0
  23. package/dist/{MessagingSection-De3t8bSI.mjs → MessagingSection-B1FaGxkp.mjs} +2 -2
  24. package/dist/{MessagingSection-CWLZcg11.js → MessagingSection-B_wdFR0j.js} +1 -1
  25. package/dist/{OrdersSection-_xKVzjSZ.mjs → OrdersSection-Bj8bPdg8.mjs} +6 -6
  26. package/dist/{OrdersSection-BKOxsZw0.js → OrdersSection-Dw2FX-1d.js} +1 -1
  27. package/dist/{PaymentSettingsSection-BTEn9Dxb.js → PaymentSettingsSection-BYF4D-GR.js} +1 -1
  28. package/dist/{PaymentSettingsSection-KjU_dN_d.mjs → PaymentSettingsSection-EnMxeWjv.mjs} +1 -1
  29. package/dist/ReturnsSection-BC0L8r2e.mjs +267 -0
  30. package/dist/ReturnsSection-D_pJVxuG.js +1 -0
  31. package/dist/{SettingsSection-8QHZB59k.mjs → SettingsSection-KYdEizq_.mjs} +19 -13
  32. package/dist/SettingsSection-vdYFSNxB.js +1 -0
  33. package/dist/ShippingSection-1DRSTu49.js +1 -0
  34. package/dist/ShippingSection-BOgto6_9.mjs +434 -0
  35. package/dist/{SingleCategorySettings-CRXTMTo5.js → SingleCategorySettings-DwCnBdRf.js} +1 -1
  36. package/dist/{SingleCategorySettings--LK0TZW0.mjs → SingleCategorySettings-suJ8z9d8.mjs} +4 -4
  37. package/dist/{StorefrontSection-CeCpr8hn.mjs → StorefrontSection-BRvIGBEJ.mjs} +2 -2
  38. package/dist/{StorefrontSection-C9DzCmOf.js → StorefrontSection-RumGkb3C.js} +1 -1
  39. package/dist/{SubscriptionsSection-Dn5SY6S_.js → SubscriptionsSection-C2aLLn7L.js} +1 -1
  40. package/dist/{SubscriptionsSection-C2xk8ApF.mjs → SubscriptionsSection-D60qrX9a.mjs} +7 -7
  41. package/dist/TaxSection-C7-pv-Rl.mjs +294 -0
  42. package/dist/TaxSection-Dt1DnM51.js +1 -0
  43. package/dist/Token22Section-CrHLQ0EB.mjs +2260 -0
  44. package/dist/Token22Section-DY3mUwTY.js +1 -0
  45. package/dist/{WalletManager-Bwk3rgr1.js → WalletManager-B3UdQ5pQ.js} +1 -1
  46. package/dist/{WalletManager-CXvQ0Zu9.mjs → WalletManager-BIwH8Dw_.mjs} +1 -1
  47. package/dist/WebhooksSection-CKeiJ7Py.js +1 -0
  48. package/dist/WebhooksSection-COPW4Ec0.mjs +223 -0
  49. package/dist/{configApi-Ch0Rr7TD.mjs → configApi-6XhAJGKX.mjs} +31 -0
  50. package/dist/{configApi-CxEbCAgG.js → configApi-DkduMQg1.js} +1 -1
  51. package/dist/crypto-only.js +1 -1
  52. package/dist/crypto-only.mjs +85 -83
  53. package/dist/index-C0g-JxJk.js +84 -0
  54. package/dist/{index-BHF82XBB.mjs → index-DXnuQp5x.mjs} +8643 -7678
  55. package/dist/index.js +1 -1
  56. package/dist/index.mjs +42 -40
  57. package/dist/{sections-C1rb9YRh.mjs → sections-C1NpK7hk.mjs} +2 -2
  58. package/dist/{sections-8e5Y3ukY.js → sections-DVVSZBhW.js} +1 -1
  59. package/dist/src/admin/plugin.d.ts.map +1 -1
  60. package/dist/src/components/ComplianceGatePage.d.ts +40 -0
  61. package/dist/src/components/ComplianceGatePage.d.ts.map +1 -0
  62. package/dist/src/components/SubscribeButton.d.ts +1 -5
  63. package/dist/src/components/SubscribeButton.d.ts.map +1 -1
  64. package/dist/src/components/admin/AdminAuthManager.d.ts +7 -3
  65. package/dist/src/components/admin/AdminAuthManager.d.ts.map +1 -1
  66. package/dist/src/components/admin/AssetClassesTab.d.ts.map +1 -1
  67. package/dist/src/components/admin/CedrosPayAdminDashboard.d.ts +1 -1
  68. package/dist/src/components/admin/CedrosPayAdminDashboard.d.ts.map +1 -1
  69. package/dist/src/components/admin/ChatLogsSection.d.ts +3 -0
  70. package/dist/src/components/admin/ChatLogsSection.d.ts.map +1 -0
  71. package/dist/src/components/admin/ComplianceKycTab.d.ts +3 -0
  72. package/dist/src/components/admin/ComplianceKycTab.d.ts.map +1 -0
  73. package/dist/src/components/admin/ComplianceRequirementsEditor.d.ts +8 -0
  74. package/dist/src/components/admin/ComplianceRequirementsEditor.d.ts.map +1 -0
  75. package/dist/src/components/admin/ComplianceSanctionsApi.d.ts +3 -0
  76. package/dist/src/components/admin/ComplianceSanctionsApi.d.ts.map +1 -0
  77. package/dist/src/components/admin/ComplianceSection.d.ts +3 -0
  78. package/dist/src/components/admin/ComplianceSection.d.ts.map +1 -0
  79. package/dist/src/components/admin/CustomersSection.d.ts +3 -0
  80. package/dist/src/components/admin/CustomersSection.d.ts.map +1 -0
  81. package/dist/src/components/admin/DisputesSection.d.ts +3 -0
  82. package/dist/src/components/admin/DisputesSection.d.ts.map +1 -0
  83. package/dist/src/components/admin/GiftCardAnalytics.d.ts +3 -0
  84. package/dist/src/components/admin/GiftCardAnalytics.d.ts.map +1 -0
  85. package/dist/src/components/admin/GiftCardManager.d.ts +3 -0
  86. package/dist/src/components/admin/GiftCardManager.d.ts.map +1 -0
  87. package/dist/src/components/admin/ImagesSection.d.ts +3 -0
  88. package/dist/src/components/admin/ImagesSection.d.ts.map +1 -0
  89. package/dist/src/components/admin/InventorySection.d.ts +3 -0
  90. package/dist/src/components/admin/InventorySection.d.ts.map +1 -0
  91. package/dist/src/components/admin/LiquidityPoolTab.d.ts.map +1 -1
  92. package/dist/src/components/admin/NftMetadataPreview.d.ts +20 -0
  93. package/dist/src/components/admin/NftMetadataPreview.d.ts.map +1 -0
  94. package/dist/src/components/admin/PoolManagementView.d.ts +14 -0
  95. package/dist/src/components/admin/PoolManagementView.d.ts.map +1 -0
  96. package/dist/src/components/admin/ProductsSection.d.ts.map +1 -1
  97. package/dist/src/components/admin/RefundsSection.d.ts.map +1 -1
  98. package/dist/src/components/admin/ReturnsSection.d.ts +3 -0
  99. package/dist/src/components/admin/ReturnsSection.d.ts.map +1 -0
  100. package/dist/src/components/admin/SettingsSection.d.ts.map +1 -1
  101. package/dist/src/components/admin/ShippingSection.d.ts +3 -0
  102. package/dist/src/components/admin/ShippingSection.d.ts.map +1 -0
  103. package/dist/src/components/admin/TaxSection.d.ts +3 -0
  104. package/dist/src/components/admin/TaxSection.d.ts.map +1 -0
  105. package/dist/src/components/admin/Token22Section.d.ts.map +1 -1
  106. package/dist/src/components/admin/WebhooksSection.d.ts +3 -0
  107. package/dist/src/components/admin/WebhooksSection.d.ts.map +1 -0
  108. package/dist/src/components/admin/complianceTypes.d.ts +74 -0
  109. package/dist/src/components/admin/complianceTypes.d.ts.map +1 -0
  110. package/dist/src/components/admin/configApi.d.ts.map +1 -1
  111. package/dist/src/components/admin/icons.d.ts +1 -0
  112. package/dist/src/components/admin/icons.d.ts.map +1 -1
  113. package/dist/src/components/admin/useAdminAuth.d.ts +1 -1
  114. package/dist/src/components/admin/useAdminAuth.d.ts.map +1 -1
  115. package/dist/src/context/CedrosContext.d.ts.map +1 -1
  116. package/dist/src/ecommerce/adapters/CommerceAdapter.d.ts +36 -0
  117. package/dist/src/ecommerce/adapters/CommerceAdapter.d.ts.map +1 -1
  118. package/dist/src/ecommerce/adapters/paywall/paywallAdapter.d.ts.map +1 -1
  119. package/dist/src/ecommerce/components/catalog/TokenDisplay.d.ts +36 -0
  120. package/dist/src/ecommerce/components/catalog/TokenDisplay.d.ts.map +1 -0
  121. package/dist/src/ecommerce/components/chat/ShopChatPanel.d.ts +8 -5
  122. package/dist/src/ecommerce/components/chat/ShopChatPanel.d.ts.map +1 -1
  123. package/dist/src/ecommerce/components/checkout/CheckoutForm.d.ts.map +1 -1
  124. package/dist/src/ecommerce/components/checkout/SendAsGiftSection.d.ts +15 -0
  125. package/dist/src/ecommerce/components/checkout/SendAsGiftSection.d.ts.map +1 -0
  126. package/dist/src/ecommerce/components/gift-cards/GiftCardBalanceChecker.d.ts +19 -0
  127. package/dist/src/ecommerce/components/gift-cards/GiftCardBalanceChecker.d.ts.map +1 -0
  128. package/dist/src/ecommerce/components/orders/MyRedemptionsPage.d.ts +13 -0
  129. package/dist/src/ecommerce/components/orders/MyRedemptionsPage.d.ts.map +1 -0
  130. package/dist/src/ecommerce/components/orders/MyTokensPage.d.ts +15 -0
  131. package/dist/src/ecommerce/components/orders/MyTokensPage.d.ts.map +1 -0
  132. package/dist/src/ecommerce/components/orders/OrderDetails.d.ts.map +1 -1
  133. package/dist/src/ecommerce/hooks/useCartInventory.d.ts.map +1 -1
  134. package/dist/src/ecommerce/index.d.ts +12 -2
  135. package/dist/src/ecommerce/index.d.ts.map +1 -1
  136. package/dist/src/ecommerce/state/checkout/checkoutSchema.d.ts +3 -0
  137. package/dist/src/ecommerce/state/checkout/checkoutSchema.d.ts.map +1 -1
  138. package/dist/src/ecommerce/state/checkout/useCheckout.d.ts.map +1 -1
  139. package/dist/src/ecommerce/types.d.ts +6 -0
  140. package/dist/src/ecommerce/types.d.ts.map +1 -1
  141. package/dist/src/ecommerce/utils/cartItemMetadata.d.ts.map +1 -1
  142. package/dist/src/hooks/useComplianceCheck.d.ts +30 -0
  143. package/dist/src/hooks/useComplianceCheck.d.ts.map +1 -0
  144. package/dist/src/hooks/useSubscriptionManagement.d.ts.map +1 -1
  145. package/dist/src/index.d.ts +4 -0
  146. package/dist/src/index.d.ts.map +1 -1
  147. package/dist/src/managers/CreditsManager.d.ts.map +1 -1
  148. package/dist/src/managers/ManagerCache.d.ts +2 -2
  149. package/dist/src/managers/ManagerCache.d.ts.map +1 -1
  150. package/dist/src/managers/StripeManager.d.ts +7 -1
  151. package/dist/src/managers/StripeManager.d.ts.map +1 -1
  152. package/dist/src/managers/SubscriptionChangeManager.d.ts.map +1 -1
  153. package/dist/src/managers/SubscriptionManager.d.ts.map +1 -1
  154. package/dist/src/types/index.d.ts +14 -0
  155. package/dist/src/types/index.d.ts.map +1 -1
  156. package/dist/src/types/subscription.d.ts +21 -33
  157. package/dist/src/types/subscription.d.ts.map +1 -1
  158. package/dist/src/utils/exponentialBackoff.d.ts +22 -0
  159. package/dist/src/utils/exponentialBackoff.d.ts.map +1 -1
  160. package/dist/stripe-only.js +1 -1
  161. package/dist/stripe-only.mjs +2 -2
  162. package/dist/styles-BT4bhFey.js +1 -0
  163. package/dist/{styles-Ag-7ZvAB.mjs → styles-D4SQkuV3.mjs} +606 -609
  164. package/dist/testing/index.js +1 -1
  165. package/dist/testing/index.mjs +1 -1
  166. package/dist/{walletPool-C_0P4mTw.mjs → walletPool-DE-t1wSW.mjs} +1 -1
  167. package/dist/{walletPool-Ddv33tej.js → walletPool-IS7R3MR1.js} +1 -1
  168. package/package.json +1 -1
  169. package/dist/CedrosContext-7dwmEeUY.js +0 -6
  170. package/dist/SettingsSection-cKF0tLnS.js +0 -1
  171. package/dist/Token22Section-DUUl59dZ.js +0 -1
  172. package/dist/Token22Section-HygkDNtL.mjs +0 -1685
  173. package/dist/index-OaWkrl0G.js +0 -84
  174. package/dist/styles-21F1-oqx.js +0 -1
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),a=require("react"),i=require("./index-C0g-JxJk.js");function D({serverUrl:_,apiKey:l,pageSize:o=20,authManager:m}){const[g,b]=a.useState([]),[h,w]=a.useState(0),[r,u]=a.useState(0),[A,p]=a.useState(!0),[k,x]=a.useState(null),[d,T]=a.useState("all"),[y,v]=a.useState(null),[L,S]=a.useState(!1),f=a.useCallback(async t=>{if(m?.isAuthenticated())return m.fetchWithAuth(t);const n={"Content-Type":"application/json"};l&&(n["X-API-Key"]=l);const s=await fetch(`${_}${t}`,{headers:n});if(!s.ok)throw new Error(`Request failed: ${s.status}`);return s.json()},[_,l,m]),C=a.useCallback(async()=>{p(!0),x(null);try{const t=new URLSearchParams;t.set("limit",String(o)),t.set("offset",String(r)),d!=="all"&&t.set("status",d);const n=await f(`/admin/chats?${t.toString()}`);b(n.sessions??[]),w(n.total??0)}catch{x("Failed to load chat sessions"),b([])}finally{p(!1)}},[f,o,r,d]);a.useEffect(()=>{C()},[C]);const I=async t=>{S(!0);try{const n=await f(`/admin/chats/${encodeURIComponent(t)}`);v(n)}catch{x("Failed to load chat session")}finally{S(!1)}},j=Math.max(1,Math.ceil(h/o)),N=Math.floor(r/o)+1;if(y){const{session:t,messages:n}=y;return e.jsxs("div",{children:[e.jsx("button",{type:"button",className:"cedros-admin__button cedros-admin__button--ghost cedros-admin__button--sm",onClick:()=>v(null),style:{marginBottom:"1rem"},children:"← Back to sessions"}),e.jsx("div",{className:"cedros-admin__section-header",children:e.jsxs("h3",{className:"cedros-admin__section-title",children:["Chat Session",e.jsxs("span",{className:"cedros-admin__badge cedros-admin__badge--muted",style:{marginLeft:"0.5rem"},children:[t.messageCount," messages"]})]})}),e.jsxs("div",{style:{fontSize:"0.85rem",color:"var(--cedros-admin-text-muted, #888)",marginBottom:"1rem"},children:[t.customerEmail&&e.jsxs("span",{children:["Customer: ",e.jsx("strong",{children:t.customerEmail})," · "]}),"Started ",i.formatDateTime(t.createdAt)," · Last message ",i.formatDateTime(t.lastMessageAt)]}),e.jsx("div",{style:{display:"flex",flexDirection:"column",gap:"0.75rem",maxWidth:"640px"},children:n.map(s=>e.jsxs("div",{style:{display:"flex",flexDirection:"column",alignItems:s.role==="user"?"flex-end":"flex-start"},children:[e.jsx("div",{style:{maxWidth:"85%",padding:"0.5rem 0.75rem",borderRadius:"0.75rem",fontSize:"0.85rem",lineHeight:"1.4",background:s.role==="user"?"var(--cedros-admin-bg-dark, #1a1a1a)":"var(--cedros-admin-bg-muted, #f5f5f5)",color:s.role==="user"?"#fff":"var(--cedros-admin-text, #333)"},children:e.jsx("span",{style:{whiteSpace:"pre-wrap",wordBreak:"break-word"},children:s.content})}),s.products&&s.products.length>0&&e.jsx("div",{style:{maxWidth:"85%",marginTop:"0.25rem",display:"flex",flexWrap:"wrap",gap:"0.25rem"},children:s.products.map(c=>e.jsxs("span",{className:"cedros-admin__badge cedros-admin__badge--muted",style:{fontSize:"0.75rem"},children:[c.name,c.priceCents!=null?` ($${(c.priceCents/100).toFixed(2)})`:""]},c.id))}),s.actions&&s.actions.length>0&&e.jsx("div",{style:{maxWidth:"85%",marginTop:"0.25rem",fontSize:"0.75rem",fontStyle:"italic",color:"var(--cedros-admin-text-muted, #888)"},children:s.actions.join(" · ")}),e.jsx("div",{style:{fontSize:"0.7rem",color:"var(--cedros-admin-text-muted, #aaa)",marginTop:"0.15rem"},children:i.formatDateTime(s.createdAt)})]},s.id))})]})}return e.jsxs("div",{children:[e.jsx("div",{className:"cedros-admin__section-header",children:e.jsx("h3",{className:"cedros-admin__section-title",children:"Chat Logs"})}),e.jsx(i.ErrorBanner,{message:k}),e.jsxs("div",{style:{display:"flex",gap:"0.5rem",marginBottom:"1rem",alignItems:"center"},children:[e.jsxs("select",{className:"cedros-admin__input",value:d,onChange:t=>{T(t.target.value),u(0)},style:{width:"auto",fontSize:"0.85rem"},children:[e.jsx("option",{value:"all",children:"All statuses"}),e.jsx("option",{value:"active",children:"Active"}),e.jsx("option",{value:"archived",children:"Archived"})]}),e.jsxs("span",{style:{fontSize:"0.85rem",color:"var(--cedros-admin-text-muted, #888)"},children:[h," session",h!==1?"s":""]})]}),A||L?e.jsxs("div",{className:"cedros-admin__loading",children:[i.Icons.loading," Loading chat sessions..."]}):g.length===0?e.jsx("div",{className:"cedros-admin__empty",children:"No chat sessions found."}):e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"cedros-admin__table-container",children:e.jsxs("table",{className:"cedros-admin__table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"Customer"}),e.jsx("th",{children:"Messages"}),e.jsx("th",{children:"Status"}),e.jsx("th",{children:"Last Message"}),e.jsx("th",{children:"Started"}),e.jsx("th",{})]})}),e.jsx("tbody",{children:g.map(t=>e.jsxs("tr",{children:[e.jsx("td",{children:t.customerEmail?e.jsx("span",{title:t.customerId,children:t.customerEmail}):t.customerId?e.jsxs("code",{style:{fontSize:"0.75rem"},children:[t.customerId.slice(0,12),"..."]}):e.jsx("span",{style:{color:"var(--cedros-admin-text-muted, #888)"},children:"Anonymous"})}),e.jsx("td",{children:t.messageCount}),e.jsx("td",{children:e.jsx("span",{className:`cedros-admin__badge cedros-admin__badge--${t.status==="active"?"success":"muted"}`,children:t.status})}),e.jsx("td",{children:i.formatDateTime(t.lastMessageAt)}),e.jsx("td",{children:i.formatDateTime(t.createdAt)}),e.jsx("td",{children:e.jsx("button",{type:"button",className:"cedros-admin__button cedros-admin__button--ghost cedros-admin__button--sm",onClick:()=>I(t.id),children:"View"})})]},t.id))})]})}),j>1&&e.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginTop:"0.75rem",fontSize:"0.85rem"},children:[e.jsx("button",{type:"button",className:"cedros-admin__button cedros-admin__button--ghost cedros-admin__button--sm",disabled:r===0,onClick:()=>u(Math.max(0,r-o)),children:"Previous"}),e.jsxs("span",{children:["Page ",N," of ",j]}),e.jsx("button",{type:"button",className:"cedros-admin__button cedros-admin__button--ghost cedros-admin__button--sm",disabled:N>=j,onClick:()=>u(r+o),children:"Next"})]})]})]})}exports.ChatLogsSection=D;
@@ -0,0 +1,201 @@
1
+ import { jsxs as s, jsx as e, Fragment as W } from "react/jsx-runtime";
2
+ import { useState as i, useCallback as k, useEffect as j } from "react";
3
+ import { k as r, E as B, I as M } from "./index-DXnuQp5x.mjs";
4
+ function R({ serverUrl: b, apiKey: m, pageSize: o = 20, authManager: h }) {
5
+ const [y, v] = i([]), [u, I] = i(0), [d, f] = i(0), [E, x] = i(!0), [L, _] = i(null), [c, $] = i("all"), [S, C] = i(null), [F, N] = i(!1), p = k(async (t) => {
6
+ if (h?.isAuthenticated())
7
+ return h.fetchWithAuth(t);
8
+ const a = { "Content-Type": "application/json" };
9
+ m && (a["X-API-Key"] = m);
10
+ const n = await fetch(`${b}${t}`, { headers: a });
11
+ if (!n.ok) throw new Error(`Request failed: ${n.status}`);
12
+ return n.json();
13
+ }, [b, m, h]), w = k(async () => {
14
+ x(!0), _(null);
15
+ try {
16
+ const t = new URLSearchParams();
17
+ t.set("limit", String(o)), t.set("offset", String(d)), c !== "all" && t.set("status", c);
18
+ const a = await p(
19
+ `/admin/chats?${t.toString()}`
20
+ );
21
+ v(a.sessions ?? []), I(a.total ?? 0);
22
+ } catch {
23
+ _("Failed to load chat sessions"), v([]);
24
+ } finally {
25
+ x(!1);
26
+ }
27
+ }, [p, o, d, c]);
28
+ j(() => {
29
+ w();
30
+ }, [w]);
31
+ const T = async (t) => {
32
+ N(!0);
33
+ try {
34
+ const a = await p(`/admin/chats/${encodeURIComponent(t)}`);
35
+ C(a);
36
+ } catch {
37
+ _("Failed to load chat session");
38
+ } finally {
39
+ N(!1);
40
+ }
41
+ }, g = Math.max(1, Math.ceil(u / o)), A = Math.floor(d / o) + 1;
42
+ if (S) {
43
+ const { session: t, messages: a } = S;
44
+ return /* @__PURE__ */ s("div", { children: [
45
+ /* @__PURE__ */ e(
46
+ "button",
47
+ {
48
+ type: "button",
49
+ className: "cedros-admin__button cedros-admin__button--ghost cedros-admin__button--sm",
50
+ onClick: () => C(null),
51
+ style: { marginBottom: "1rem" },
52
+ children: "← Back to sessions"
53
+ }
54
+ ),
55
+ /* @__PURE__ */ e("div", { className: "cedros-admin__section-header", children: /* @__PURE__ */ s("h3", { className: "cedros-admin__section-title", children: [
56
+ "Chat Session",
57
+ /* @__PURE__ */ s("span", { className: "cedros-admin__badge cedros-admin__badge--muted", style: { marginLeft: "0.5rem" }, children: [
58
+ t.messageCount,
59
+ " messages"
60
+ ] })
61
+ ] }) }),
62
+ /* @__PURE__ */ s("div", { style: { fontSize: "0.85rem", color: "var(--cedros-admin-text-muted, #888)", marginBottom: "1rem" }, children: [
63
+ t.customerEmail && /* @__PURE__ */ s("span", { children: [
64
+ "Customer: ",
65
+ /* @__PURE__ */ e("strong", { children: t.customerEmail }),
66
+ " · "
67
+ ] }),
68
+ "Started ",
69
+ r(t.createdAt),
70
+ " · Last message ",
71
+ r(t.lastMessageAt)
72
+ ] }),
73
+ /* @__PURE__ */ e("div", { style: { display: "flex", flexDirection: "column", gap: "0.75rem", maxWidth: "640px" }, children: a.map((n) => /* @__PURE__ */ s(
74
+ "div",
75
+ {
76
+ style: {
77
+ display: "flex",
78
+ flexDirection: "column",
79
+ alignItems: n.role === "user" ? "flex-end" : "flex-start"
80
+ },
81
+ children: [
82
+ /* @__PURE__ */ e(
83
+ "div",
84
+ {
85
+ style: {
86
+ maxWidth: "85%",
87
+ padding: "0.5rem 0.75rem",
88
+ borderRadius: "0.75rem",
89
+ fontSize: "0.85rem",
90
+ lineHeight: "1.4",
91
+ background: n.role === "user" ? "var(--cedros-admin-bg-dark, #1a1a1a)" : "var(--cedros-admin-bg-muted, #f5f5f5)",
92
+ color: n.role === "user" ? "#fff" : "var(--cedros-admin-text, #333)"
93
+ },
94
+ children: /* @__PURE__ */ e("span", { style: { whiteSpace: "pre-wrap", wordBreak: "break-word" }, children: n.content })
95
+ }
96
+ ),
97
+ n.products && n.products.length > 0 && /* @__PURE__ */ e("div", { style: { maxWidth: "85%", marginTop: "0.25rem", display: "flex", flexWrap: "wrap", gap: "0.25rem" }, children: n.products.map((l) => /* @__PURE__ */ s("span", { className: "cedros-admin__badge cedros-admin__badge--muted", style: { fontSize: "0.75rem" }, children: [
98
+ l.name,
99
+ l.priceCents != null ? ` ($${(l.priceCents / 100).toFixed(2)})` : ""
100
+ ] }, l.id)) }),
101
+ n.actions && n.actions.length > 0 && /* @__PURE__ */ e("div", { style: { maxWidth: "85%", marginTop: "0.25rem", fontSize: "0.75rem", fontStyle: "italic", color: "var(--cedros-admin-text-muted, #888)" }, children: n.actions.join(" · ") }),
102
+ /* @__PURE__ */ e("div", { style: { fontSize: "0.7rem", color: "var(--cedros-admin-text-muted, #aaa)", marginTop: "0.15rem" }, children: r(n.createdAt) })
103
+ ]
104
+ },
105
+ n.id
106
+ )) })
107
+ ] });
108
+ }
109
+ return /* @__PURE__ */ s("div", { children: [
110
+ /* @__PURE__ */ e("div", { className: "cedros-admin__section-header", children: /* @__PURE__ */ e("h3", { className: "cedros-admin__section-title", children: "Chat Logs" }) }),
111
+ /* @__PURE__ */ e(B, { message: L }),
112
+ /* @__PURE__ */ s("div", { style: { display: "flex", gap: "0.5rem", marginBottom: "1rem", alignItems: "center" }, children: [
113
+ /* @__PURE__ */ s(
114
+ "select",
115
+ {
116
+ className: "cedros-admin__input",
117
+ value: c,
118
+ onChange: (t) => {
119
+ $(t.target.value), f(0);
120
+ },
121
+ style: { width: "auto", fontSize: "0.85rem" },
122
+ children: [
123
+ /* @__PURE__ */ e("option", { value: "all", children: "All statuses" }),
124
+ /* @__PURE__ */ e("option", { value: "active", children: "Active" }),
125
+ /* @__PURE__ */ e("option", { value: "archived", children: "Archived" })
126
+ ]
127
+ }
128
+ ),
129
+ /* @__PURE__ */ s("span", { style: { fontSize: "0.85rem", color: "var(--cedros-admin-text-muted, #888)" }, children: [
130
+ u,
131
+ " session",
132
+ u !== 1 ? "s" : ""
133
+ ] })
134
+ ] }),
135
+ E || F ? /* @__PURE__ */ s("div", { className: "cedros-admin__loading", children: [
136
+ M.loading,
137
+ " Loading chat sessions..."
138
+ ] }) : y.length === 0 ? /* @__PURE__ */ e("div", { className: "cedros-admin__empty", children: "No chat sessions found." }) : /* @__PURE__ */ s(W, { children: [
139
+ /* @__PURE__ */ e("div", { className: "cedros-admin__table-container", children: /* @__PURE__ */ s("table", { className: "cedros-admin__table", children: [
140
+ /* @__PURE__ */ e("thead", { children: /* @__PURE__ */ s("tr", { children: [
141
+ /* @__PURE__ */ e("th", { children: "Customer" }),
142
+ /* @__PURE__ */ e("th", { children: "Messages" }),
143
+ /* @__PURE__ */ e("th", { children: "Status" }),
144
+ /* @__PURE__ */ e("th", { children: "Last Message" }),
145
+ /* @__PURE__ */ e("th", { children: "Started" }),
146
+ /* @__PURE__ */ e("th", {})
147
+ ] }) }),
148
+ /* @__PURE__ */ e("tbody", { children: y.map((t) => /* @__PURE__ */ s("tr", { children: [
149
+ /* @__PURE__ */ e("td", { children: t.customerEmail ? /* @__PURE__ */ e("span", { title: t.customerId, children: t.customerEmail }) : t.customerId ? /* @__PURE__ */ s("code", { style: { fontSize: "0.75rem" }, children: [
150
+ t.customerId.slice(0, 12),
151
+ "..."
152
+ ] }) : /* @__PURE__ */ e("span", { style: { color: "var(--cedros-admin-text-muted, #888)" }, children: "Anonymous" }) }),
153
+ /* @__PURE__ */ e("td", { children: t.messageCount }),
154
+ /* @__PURE__ */ e("td", { children: /* @__PURE__ */ e("span", { className: `cedros-admin__badge cedros-admin__badge--${t.status === "active" ? "success" : "muted"}`, children: t.status }) }),
155
+ /* @__PURE__ */ e("td", { children: r(t.lastMessageAt) }),
156
+ /* @__PURE__ */ e("td", { children: r(t.createdAt) }),
157
+ /* @__PURE__ */ e("td", { children: /* @__PURE__ */ e(
158
+ "button",
159
+ {
160
+ type: "button",
161
+ className: "cedros-admin__button cedros-admin__button--ghost cedros-admin__button--sm",
162
+ onClick: () => T(t.id),
163
+ children: "View"
164
+ }
165
+ ) })
166
+ ] }, t.id)) })
167
+ ] }) }),
168
+ g > 1 && /* @__PURE__ */ s("div", { style: { display: "flex", justifyContent: "space-between", alignItems: "center", marginTop: "0.75rem", fontSize: "0.85rem" }, children: [
169
+ /* @__PURE__ */ e(
170
+ "button",
171
+ {
172
+ type: "button",
173
+ className: "cedros-admin__button cedros-admin__button--ghost cedros-admin__button--sm",
174
+ disabled: d === 0,
175
+ onClick: () => f(Math.max(0, d - o)),
176
+ children: "Previous"
177
+ }
178
+ ),
179
+ /* @__PURE__ */ s("span", { children: [
180
+ "Page ",
181
+ A,
182
+ " of ",
183
+ g
184
+ ] }),
185
+ /* @__PURE__ */ e(
186
+ "button",
187
+ {
188
+ type: "button",
189
+ className: "cedros-admin__button cedros-admin__button--ghost cedros-admin__button--sm",
190
+ disabled: A >= g,
191
+ onClick: () => f(d + o),
192
+ children: "Next"
193
+ }
194
+ )
195
+ ] })
196
+ ] })
197
+ ] });
198
+ }
199
+ export {
200
+ R as ChatLogsSection
201
+ };