@cedros/login-react 0.0.9 → 0.0.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/dist/{AuthenticationSettings-BxpBLsUX.cjs → AuthenticationSettings-CyEpZs72.cjs} +1 -1
  2. package/dist/{AuthenticationSettings-BxpBLsUX.cjs.map → AuthenticationSettings-CyEpZs72.cjs.map} +1 -1
  3. package/dist/{AuthenticationSettings-eTN4qtHV.js → AuthenticationSettings-dmeuofVq.js} +1 -1
  4. package/dist/{AuthenticationSettings-eTN4qtHV.js.map → AuthenticationSettings-dmeuofVq.js.map} +1 -1
  5. package/dist/{CreditSystemSettings-BuBKDfKL.cjs → CreditSystemSettings-B9dbZgbs.cjs} +1 -1
  6. package/dist/{CreditSystemSettings-BuBKDfKL.cjs.map → CreditSystemSettings-B9dbZgbs.cjs.map} +1 -1
  7. package/dist/{CreditSystemSettings-D7avf3PS.js → CreditSystemSettings-tZWMGseT.js} +1 -1
  8. package/dist/{CreditSystemSettings-D7avf3PS.js.map → CreditSystemSettings-tZWMGseT.js.map} +1 -1
  9. package/dist/{DepositsSection-Db4irTZb.js → DepositsSection-6y9caL2n.js} +1 -1
  10. package/dist/{DepositsSection-Db4irTZb.js.map → DepositsSection-6y9caL2n.js.map} +1 -1
  11. package/dist/{DepositsSection-DEh9Oy0V.cjs → DepositsSection-D7yeUrJj.cjs} +1 -1
  12. package/dist/{DepositsSection-DEh9Oy0V.cjs.map → DepositsSection-D7yeUrJj.cjs.map} +1 -1
  13. package/dist/{EmailSettings-sN1OCw50.js → EmailSettings-BYchXt9K.js} +1 -1
  14. package/dist/{EmailSettings-sN1OCw50.js.map → EmailSettings-BYchXt9K.js.map} +1 -1
  15. package/dist/{EmailSettings-CGocWYc0.cjs → EmailSettings-By9lcc50.cjs} +1 -1
  16. package/dist/{EmailSettings-CGocWYc0.cjs.map → EmailSettings-By9lcc50.cjs.map} +1 -1
  17. package/dist/{EmbeddedWalletSettings-qpRuCk4R.js → EmbeddedWalletSettings-BnrEDU9Q.js} +1 -1
  18. package/dist/{EmbeddedWalletSettings-qpRuCk4R.js.map → EmbeddedWalletSettings-BnrEDU9Q.js.map} +1 -1
  19. package/dist/{EmbeddedWalletSettings-NZfbc5K8.cjs → EmbeddedWalletSettings-CGAwa-uQ.cjs} +1 -1
  20. package/dist/{EmbeddedWalletSettings-NZfbc5K8.cjs.map → EmbeddedWalletSettings-CGAwa-uQ.cjs.map} +1 -1
  21. package/dist/{ServerSettings-CQn3-uuP.js → ServerSettings-BLKVQrop.js} +1 -1
  22. package/dist/{ServerSettings-CQn3-uuP.js.map → ServerSettings-BLKVQrop.js.map} +1 -1
  23. package/dist/{ServerSettings-Bkr_xuDx.cjs → ServerSettings-xcpawsTA.cjs} +1 -1
  24. package/dist/{ServerSettings-Bkr_xuDx.cjs.map → ServerSettings-xcpawsTA.cjs.map} +1 -1
  25. package/dist/TeamSection-BX7YNug-.cjs +1 -0
  26. package/dist/TeamSection-BX7YNug-.cjs.map +1 -0
  27. package/dist/{TeamSection-DNozLdU4.js → TeamSection-Dho9Ir3t.js} +58 -62
  28. package/dist/TeamSection-Dho9Ir3t.js.map +1 -0
  29. package/dist/{UsersSection-DlfHGrJK.js → UsersSection-BBhrPnJd.js} +1 -1
  30. package/dist/{UsersSection-DlfHGrJK.js.map → UsersSection-BBhrPnJd.js.map} +1 -1
  31. package/dist/{UsersSection-DDfHW_ao.cjs → UsersSection-D6Yau1tA.cjs} +1 -1
  32. package/dist/{UsersSection-DDfHW_ao.cjs.map → UsersSection-D6Yau1tA.cjs.map} +1 -1
  33. package/dist/{WebhookSettings-Cx30aHt_.js → WebhookSettings-DWt5X6qo.js} +1 -1
  34. package/dist/{WebhookSettings-Cx30aHt_.js.map → WebhookSettings-DWt5X6qo.js.map} +1 -1
  35. package/dist/{WebhookSettings-9dcnVNH_.cjs → WebhookSettings-q_NrKjk1.cjs} +1 -1
  36. package/dist/{WebhookSettings-9dcnVNH_.cjs.map → WebhookSettings-q_NrKjk1.cjs.map} +1 -1
  37. package/dist/{WithdrawalsSection-ouu6VoQA.js → WithdrawalsSection-DfJRxRrH.js} +1 -1
  38. package/dist/{WithdrawalsSection-ouu6VoQA.js.map → WithdrawalsSection-DfJRxRrH.js.map} +1 -1
  39. package/dist/{WithdrawalsSection-MFj2muP6.cjs → WithdrawalsSection-sB8N7vfR.cjs} +1 -1
  40. package/dist/{WithdrawalsSection-MFj2muP6.cjs.map → WithdrawalsSection-sB8N7vfR.cjs.map} +1 -1
  41. package/dist/{index-CCOKNxfU.cjs → index-BZ4qOdeM.cjs} +12 -12
  42. package/dist/index-BZ4qOdeM.cjs.map +1 -0
  43. package/dist/{index-Djb8LQZ6.js → index-CZYMYvkl.js} +1018 -1009
  44. package/dist/index-CZYMYvkl.js.map +1 -0
  45. package/dist/index.cjs +1 -1
  46. package/dist/index.js +1 -1
  47. package/package.json +1 -1
  48. package/dist/TeamSection-DNozLdU4.js.map +0 -1
  49. package/dist/TeamSection-W9SC2Keh.cjs +0 -1
  50. package/dist/TeamSection-W9SC2Keh.cjs.map +0 -1
  51. package/dist/index-CCOKNxfU.cjs.map +0 -1
  52. package/dist/index-Djb8LQZ6.js.map +0 -1
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime");require("react");const t=require("./index-CCOKNxfU.cjs");function i(n){return e.jsx("div",{className:"cedros-dashboard__section",children:e.jsx(t.AuthenticationSettings,{})})}exports.default=i;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime");require("react");const t=require("./index-BZ4qOdeM.cjs");function i(n){return e.jsx("div",{className:"cedros-dashboard__section",children:e.jsx(t.AuthenticationSettings,{})})}exports.default=i;
@@ -1 +1 @@
1
- {"version":3,"file":"AuthenticationSettings-BxpBLsUX.cjs","sources":["../src/admin/sections/AuthenticationSettings.tsx"],"sourcesContent":["/**\n * Authentication Settings Section - Plugin wrapper\n */\n\nimport React from 'react';\nimport type { AdminSectionProps } from '../types';\nimport { AuthenticationSettings as Settings } from '../../components/admin/settings';\n\nexport default function AuthenticationSettings(\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _props: AdminSectionProps\n): React.JSX.Element {\n return (\n <div className=\"cedros-dashboard__section\">\n <Settings />\n </div>\n );\n}\n"],"names":["AuthenticationSettings","_props","jsx","Settings"],"mappings":"8KAQA,SAAwBA,EAEtBC,EACmB,CACnB,aACG,MAAA,CAAI,UAAU,4BACb,SAAAC,MAACC,EAAAA,yBAAS,EACZ,CAEJ"}
1
+ {"version":3,"file":"AuthenticationSettings-CyEpZs72.cjs","sources":["../src/admin/sections/AuthenticationSettings.tsx"],"sourcesContent":["/**\n * Authentication Settings Section - Plugin wrapper\n */\n\nimport React from 'react';\nimport type { AdminSectionProps } from '../types';\nimport { AuthenticationSettings as Settings } from '../../components/admin/settings';\n\nexport default function AuthenticationSettings(\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _props: AdminSectionProps\n): React.JSX.Element {\n return (\n <div className=\"cedros-dashboard__section\">\n <Settings />\n </div>\n );\n}\n"],"names":["AuthenticationSettings","_props","jsx","Settings"],"mappings":"8KAQA,SAAwBA,EAEtBC,EACmB,CACnB,aACG,MAAA,CAAI,UAAU,4BACb,SAAAC,MAACC,EAAAA,yBAAS,EACZ,CAEJ"}
@@ -1,6 +1,6 @@
1
1
  import { jsx as t } from "react/jsx-runtime";
2
2
  import "react";
3
- import { m as i } from "./index-Djb8LQZ6.js";
3
+ import { m as i } from "./index-CZYMYvkl.js";
4
4
  function s(o) {
5
5
  return /* @__PURE__ */ t("div", { className: "cedros-dashboard__section", children: /* @__PURE__ */ t(i, {}) });
6
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AuthenticationSettings-eTN4qtHV.js","sources":["../src/admin/sections/AuthenticationSettings.tsx"],"sourcesContent":["/**\n * Authentication Settings Section - Plugin wrapper\n */\n\nimport React from 'react';\nimport type { AdminSectionProps } from '../types';\nimport { AuthenticationSettings as Settings } from '../../components/admin/settings';\n\nexport default function AuthenticationSettings(\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _props: AdminSectionProps\n): React.JSX.Element {\n return (\n <div className=\"cedros-dashboard__section\">\n <Settings />\n </div>\n );\n}\n"],"names":["AuthenticationSettings","_props","jsx","Settings"],"mappings":";;;AAQA,SAAwBA,EAEtBC,GACmB;AACnB,2BACG,OAAA,EAAI,WAAU,6BACb,UAAA,gBAAAC,EAACC,KAAS,GACZ;AAEJ;"}
1
+ {"version":3,"file":"AuthenticationSettings-dmeuofVq.js","sources":["../src/admin/sections/AuthenticationSettings.tsx"],"sourcesContent":["/**\n * Authentication Settings Section - Plugin wrapper\n */\n\nimport React from 'react';\nimport type { AdminSectionProps } from '../types';\nimport { AuthenticationSettings as Settings } from '../../components/admin/settings';\n\nexport default function AuthenticationSettings(\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _props: AdminSectionProps\n): React.JSX.Element {\n return (\n <div className=\"cedros-dashboard__section\">\n <Settings />\n </div>\n );\n}\n"],"names":["AuthenticationSettings","_props","jsx","Settings"],"mappings":";;;AAQA,SAAwBA,EAEtBC,GACmB;AACnB,2BACG,OAAA,EAAI,WAAU,6BACb,UAAA,gBAAAC,EAACC,KAAS,GACZ;AAEJ;"}
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime");require("react");const t=require("./index-CCOKNxfU.cjs");function r(s){return e.jsx("div",{className:"cedros-dashboard__section",children:e.jsx(t.CreditSystemSettings,{})})}exports.default=r;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime");require("react");const t=require("./index-BZ4qOdeM.cjs");function r(s){return e.jsx("div",{className:"cedros-dashboard__section",children:e.jsx(t.CreditSystemSettings,{})})}exports.default=r;
@@ -1 +1 @@
1
- {"version":3,"file":"CreditSystemSettings-BuBKDfKL.cjs","sources":["../src/admin/sections/CreditSystemSettings.tsx"],"sourcesContent":["/**\n * Credit System Settings Section - Plugin wrapper\n */\n\nimport React from 'react';\nimport type { AdminSectionProps } from '../types';\nimport { CreditSystemSettings as Settings } from '../../components/admin/settings';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport default function CreditSystemSettings(_props: AdminSectionProps): React.JSX.Element {\n return (\n <div className=\"cedros-dashboard__section\">\n <Settings />\n </div>\n );\n}\n"],"names":["CreditSystemSettings","_props","jsx","Settings"],"mappings":"8KASA,SAAwBA,EAAqBC,EAA8C,CACzF,aACG,MAAA,CAAI,UAAU,4BACb,SAAAC,MAACC,EAAAA,uBAAS,EACZ,CAEJ"}
1
+ {"version":3,"file":"CreditSystemSettings-B9dbZgbs.cjs","sources":["../src/admin/sections/CreditSystemSettings.tsx"],"sourcesContent":["/**\n * Credit System Settings Section - Plugin wrapper\n */\n\nimport React from 'react';\nimport type { AdminSectionProps } from '../types';\nimport { CreditSystemSettings as Settings } from '../../components/admin/settings';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport default function CreditSystemSettings(_props: AdminSectionProps): React.JSX.Element {\n return (\n <div className=\"cedros-dashboard__section\">\n <Settings />\n </div>\n );\n}\n"],"names":["CreditSystemSettings","_props","jsx","Settings"],"mappings":"8KASA,SAAwBA,EAAqBC,EAA8C,CACzF,aACG,MAAA,CAAI,UAAU,4BACb,SAAAC,MAACC,EAAAA,uBAAS,EACZ,CAEJ"}
@@ -1,6 +1,6 @@
1
1
  import { jsx as t } from "react/jsx-runtime";
2
2
  import "react";
3
- import { C as r } from "./index-Djb8LQZ6.js";
3
+ import { C as r } from "./index-CZYMYvkl.js";
4
4
  function d(e) {
5
5
  return /* @__PURE__ */ t("div", { className: "cedros-dashboard__section", children: /* @__PURE__ */ t(r, {}) });
6
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"CreditSystemSettings-D7avf3PS.js","sources":["../src/admin/sections/CreditSystemSettings.tsx"],"sourcesContent":["/**\n * Credit System Settings Section - Plugin wrapper\n */\n\nimport React from 'react';\nimport type { AdminSectionProps } from '../types';\nimport { CreditSystemSettings as Settings } from '../../components/admin/settings';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport default function CreditSystemSettings(_props: AdminSectionProps): React.JSX.Element {\n return (\n <div className=\"cedros-dashboard__section\">\n <Settings />\n </div>\n );\n}\n"],"names":["CreditSystemSettings","_props","jsx","Settings"],"mappings":";;;AASA,SAAwBA,EAAqBC,GAA8C;AACzF,2BACG,OAAA,EAAI,WAAU,6BACb,UAAA,gBAAAC,EAACC,KAAS,GACZ;AAEJ;"}
1
+ {"version":3,"file":"CreditSystemSettings-tZWMGseT.js","sources":["../src/admin/sections/CreditSystemSettings.tsx"],"sourcesContent":["/**\n * Credit System Settings Section - Plugin wrapper\n */\n\nimport React from 'react';\nimport type { AdminSectionProps } from '../types';\nimport { CreditSystemSettings as Settings } from '../../components/admin/settings';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport default function CreditSystemSettings(_props: AdminSectionProps): React.JSX.Element {\n return (\n <div className=\"cedros-dashboard__section\">\n <Settings />\n </div>\n );\n}\n"],"names":["CreditSystemSettings","_props","jsx","Settings"],"mappings":";;;AASA,SAAwBA,EAAqBC,GAA8C;AACzF,2BACG,OAAA,EAAI,WAAU,6BACb,UAAA,gBAAAC,EAACC,KAAS,GACZ;AAEJ;"}
@@ -1,6 +1,6 @@
1
1
  import { jsxs as t, jsx as e } from "react/jsx-runtime";
2
2
  import { useState as o } from "react";
3
- import { g as r, h as n } from "./index-Djb8LQZ6.js";
3
+ import { g as r, h as n } from "./index-CZYMYvkl.js";
4
4
  function u({
5
5
  pageSize: d = 20,
6
6
  refreshInterval: s = 0
@@ -1 +1 @@
1
- {"version":3,"file":"DepositsSection-Db4irTZb.js","sources":["../src/admin/sections/DepositsSection.tsx"],"sourcesContent":["/**\n * Deposits Section - Plugin wrapper\n *\n * Admin deposit management with stats, list, and filter controls.\n */\n\nimport React, { useState } from 'react';\nimport type { AdminSectionProps } from '../types';\nimport { AdminDepositStats, AdminDepositList } from '../../components/deposit/admin';\n\nexport default function DepositsSection({\n pageSize = 20,\n refreshInterval = 0,\n}: AdminSectionProps): React.JSX.Element {\n const [statusFilter, setStatusFilter] = useState<string>('');\n\n return (\n <div className=\"cedros-dashboard__deposits\">\n {/* Stats summary */}\n <AdminDepositStats refreshInterval={refreshInterval} />\n\n {/* Filter and list */}\n <div className=\"cedros-dashboard__deposits-list\">\n <div className=\"cedros-dashboard__toolbar\">\n <div className=\"cedros-dashboard__filter\">\n <label className=\"cedros-dashboard__filter-label\" htmlFor=\"status-filter\">\n Status\n </label>\n <select\n id=\"status-filter\"\n className=\"cedros-dashboard__select\"\n value={statusFilter}\n onChange={(e) => setStatusFilter(e.target.value)}\n >\n <option value=\"\">All statuses</option>\n <option value=\"pending\">Pending</option>\n <option value=\"detected\">Detected</option>\n <option value=\"processing\">Processing</option>\n <option value=\"completed\">Completed</option>\n <option value=\"withdrawn\">Withdrawn</option>\n <option value=\"expired\">Expired</option>\n <option value=\"failed\">Failed</option>\n </select>\n </div>\n </div>\n\n <AdminDepositList\n statusFilter={statusFilter || undefined}\n pageSize={pageSize}\n refreshInterval={refreshInterval}\n />\n </div>\n </div>\n );\n}\n"],"names":["DepositsSection","pageSize","refreshInterval","statusFilter","setStatusFilter","useState","jsxs","jsx","AdminDepositStats","e","AdminDepositList"],"mappings":";;;AAUA,SAAwBA,EAAgB;AAAA,EACtC,UAAAC,IAAW;AAAA,EACX,iBAAAC,IAAkB;AACpB,GAAyC;AACvC,QAAM,CAACC,GAAcC,CAAe,IAAIC,EAAiB,EAAE;AAE3D,SACE,gBAAAC,EAAC,OAAA,EAAI,WAAU,8BAEb,UAAA;AAAA,IAAA,gBAAAC,EAACC,KAAkB,iBAAAN,GAAkC;AAAA,IAGrD,gBAAAI,EAAC,OAAA,EAAI,WAAU,mCACb,UAAA;AAAA,MAAA,gBAAAC,EAAC,SAAI,WAAU,6BACb,UAAA,gBAAAD,EAAC,OAAA,EAAI,WAAU,4BACb,UAAA;AAAA,QAAA,gBAAAC,EAAC,SAAA,EAAM,WAAU,kCAAiC,SAAQ,iBAAgB,UAAA,UAE1E;AAAA,QACA,gBAAAD;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,IAAG;AAAA,YACH,WAAU;AAAA,YACV,OAAOH;AAAA,YACP,UAAU,CAACM,MAAML,EAAgBK,EAAE,OAAO,KAAK;AAAA,YAE/C,UAAA;AAAA,cAAA,gBAAAF,EAAC,UAAA,EAAO,OAAM,IAAG,UAAA,gBAAY;AAAA,cAC7B,gBAAAA,EAAC,UAAA,EAAO,OAAM,WAAU,UAAA,WAAO;AAAA,cAC/B,gBAAAA,EAAC,UAAA,EAAO,OAAM,YAAW,UAAA,YAAQ;AAAA,cACjC,gBAAAA,EAAC,UAAA,EAAO,OAAM,cAAa,UAAA,cAAU;AAAA,cACrC,gBAAAA,EAAC,UAAA,EAAO,OAAM,aAAY,UAAA,aAAS;AAAA,cACnC,gBAAAA,EAAC,UAAA,EAAO,OAAM,aAAY,UAAA,aAAS;AAAA,cACnC,gBAAAA,EAAC,UAAA,EAAO,OAAM,WAAU,UAAA,WAAO;AAAA,cAC/B,gBAAAA,EAAC,UAAA,EAAO,OAAM,UAAS,UAAA,SAAA,CAAM;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MAC/B,EAAA,CACF,EAAA,CACF;AAAA,MAEA,gBAAAA;AAAA,QAACG;AAAA,QAAA;AAAA,UACC,cAAcP,KAAgB;AAAA,UAC9B,UAAAF;AAAA,UACA,iBAAAC;AAAA,QAAA;AAAA,MAAA;AAAA,IACF,EAAA,CACF;AAAA,EAAA,GACF;AAEJ;"}
1
+ {"version":3,"file":"DepositsSection-6y9caL2n.js","sources":["../src/admin/sections/DepositsSection.tsx"],"sourcesContent":["/**\n * Deposits Section - Plugin wrapper\n *\n * Admin deposit management with stats, list, and filter controls.\n */\n\nimport React, { useState } from 'react';\nimport type { AdminSectionProps } from '../types';\nimport { AdminDepositStats, AdminDepositList } from '../../components/deposit/admin';\n\nexport default function DepositsSection({\n pageSize = 20,\n refreshInterval = 0,\n}: AdminSectionProps): React.JSX.Element {\n const [statusFilter, setStatusFilter] = useState<string>('');\n\n return (\n <div className=\"cedros-dashboard__deposits\">\n {/* Stats summary */}\n <AdminDepositStats refreshInterval={refreshInterval} />\n\n {/* Filter and list */}\n <div className=\"cedros-dashboard__deposits-list\">\n <div className=\"cedros-dashboard__toolbar\">\n <div className=\"cedros-dashboard__filter\">\n <label className=\"cedros-dashboard__filter-label\" htmlFor=\"status-filter\">\n Status\n </label>\n <select\n id=\"status-filter\"\n className=\"cedros-dashboard__select\"\n value={statusFilter}\n onChange={(e) => setStatusFilter(e.target.value)}\n >\n <option value=\"\">All statuses</option>\n <option value=\"pending\">Pending</option>\n <option value=\"detected\">Detected</option>\n <option value=\"processing\">Processing</option>\n <option value=\"completed\">Completed</option>\n <option value=\"withdrawn\">Withdrawn</option>\n <option value=\"expired\">Expired</option>\n <option value=\"failed\">Failed</option>\n </select>\n </div>\n </div>\n\n <AdminDepositList\n statusFilter={statusFilter || undefined}\n pageSize={pageSize}\n refreshInterval={refreshInterval}\n />\n </div>\n </div>\n );\n}\n"],"names":["DepositsSection","pageSize","refreshInterval","statusFilter","setStatusFilter","useState","jsxs","jsx","AdminDepositStats","e","AdminDepositList"],"mappings":";;;AAUA,SAAwBA,EAAgB;AAAA,EACtC,UAAAC,IAAW;AAAA,EACX,iBAAAC,IAAkB;AACpB,GAAyC;AACvC,QAAM,CAACC,GAAcC,CAAe,IAAIC,EAAiB,EAAE;AAE3D,SACE,gBAAAC,EAAC,OAAA,EAAI,WAAU,8BAEb,UAAA;AAAA,IAAA,gBAAAC,EAACC,KAAkB,iBAAAN,GAAkC;AAAA,IAGrD,gBAAAI,EAAC,OAAA,EAAI,WAAU,mCACb,UAAA;AAAA,MAAA,gBAAAC,EAAC,SAAI,WAAU,6BACb,UAAA,gBAAAD,EAAC,OAAA,EAAI,WAAU,4BACb,UAAA;AAAA,QAAA,gBAAAC,EAAC,SAAA,EAAM,WAAU,kCAAiC,SAAQ,iBAAgB,UAAA,UAE1E;AAAA,QACA,gBAAAD;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,IAAG;AAAA,YACH,WAAU;AAAA,YACV,OAAOH;AAAA,YACP,UAAU,CAACM,MAAML,EAAgBK,EAAE,OAAO,KAAK;AAAA,YAE/C,UAAA;AAAA,cAAA,gBAAAF,EAAC,UAAA,EAAO,OAAM,IAAG,UAAA,gBAAY;AAAA,cAC7B,gBAAAA,EAAC,UAAA,EAAO,OAAM,WAAU,UAAA,WAAO;AAAA,cAC/B,gBAAAA,EAAC,UAAA,EAAO,OAAM,YAAW,UAAA,YAAQ;AAAA,cACjC,gBAAAA,EAAC,UAAA,EAAO,OAAM,cAAa,UAAA,cAAU;AAAA,cACrC,gBAAAA,EAAC,UAAA,EAAO,OAAM,aAAY,UAAA,aAAS;AAAA,cACnC,gBAAAA,EAAC,UAAA,EAAO,OAAM,aAAY,UAAA,aAAS;AAAA,cACnC,gBAAAA,EAAC,UAAA,EAAO,OAAM,WAAU,UAAA,WAAO;AAAA,cAC/B,gBAAAA,EAAC,UAAA,EAAO,OAAM,UAAS,UAAA,SAAA,CAAM;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MAC/B,EAAA,CACF,EAAA,CACF;AAAA,MAEA,gBAAAA;AAAA,QAACG;AAAA,QAAA;AAAA,UACC,cAAcP,KAAgB;AAAA,UAC9B,UAAAF;AAAA,UACA,iBAAAC;AAAA,QAAA;AAAA,MAAA;AAAA,IACF,EAAA,CACF;AAAA,EAAA,GACF;AAEJ;"}
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),o=require("react"),i=require("./index-CCOKNxfU.cjs");function r({pageSize:d=20,refreshInterval:s=0}){const[t,a]=o.useState("");return e.jsxs("div",{className:"cedros-dashboard__deposits",children:[e.jsx(i.AdminDepositStats,{refreshInterval:s}),e.jsxs("div",{className:"cedros-dashboard__deposits-list",children:[e.jsx("div",{className:"cedros-dashboard__toolbar",children:e.jsxs("div",{className:"cedros-dashboard__filter",children:[e.jsx("label",{className:"cedros-dashboard__filter-label",htmlFor:"status-filter",children:"Status"}),e.jsxs("select",{id:"status-filter",className:"cedros-dashboard__select",value:t,onChange:l=>a(l.target.value),children:[e.jsx("option",{value:"",children:"All statuses"}),e.jsx("option",{value:"pending",children:"Pending"}),e.jsx("option",{value:"detected",children:"Detected"}),e.jsx("option",{value:"processing",children:"Processing"}),e.jsx("option",{value:"completed",children:"Completed"}),e.jsx("option",{value:"withdrawn",children:"Withdrawn"}),e.jsx("option",{value:"expired",children:"Expired"}),e.jsx("option",{value:"failed",children:"Failed"})]})]})}),e.jsx(i.AdminDepositList,{statusFilter:t||void 0,pageSize:d,refreshInterval:s})]})]})}exports.default=r;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),o=require("react"),i=require("./index-BZ4qOdeM.cjs");function r({pageSize:d=20,refreshInterval:s=0}){const[t,a]=o.useState("");return e.jsxs("div",{className:"cedros-dashboard__deposits",children:[e.jsx(i.AdminDepositStats,{refreshInterval:s}),e.jsxs("div",{className:"cedros-dashboard__deposits-list",children:[e.jsx("div",{className:"cedros-dashboard__toolbar",children:e.jsxs("div",{className:"cedros-dashboard__filter",children:[e.jsx("label",{className:"cedros-dashboard__filter-label",htmlFor:"status-filter",children:"Status"}),e.jsxs("select",{id:"status-filter",className:"cedros-dashboard__select",value:t,onChange:l=>a(l.target.value),children:[e.jsx("option",{value:"",children:"All statuses"}),e.jsx("option",{value:"pending",children:"Pending"}),e.jsx("option",{value:"detected",children:"Detected"}),e.jsx("option",{value:"processing",children:"Processing"}),e.jsx("option",{value:"completed",children:"Completed"}),e.jsx("option",{value:"withdrawn",children:"Withdrawn"}),e.jsx("option",{value:"expired",children:"Expired"}),e.jsx("option",{value:"failed",children:"Failed"})]})]})}),e.jsx(i.AdminDepositList,{statusFilter:t||void 0,pageSize:d,refreshInterval:s})]})]})}exports.default=r;
@@ -1 +1 @@
1
- {"version":3,"file":"DepositsSection-DEh9Oy0V.cjs","sources":["../src/admin/sections/DepositsSection.tsx"],"sourcesContent":["/**\n * Deposits Section - Plugin wrapper\n *\n * Admin deposit management with stats, list, and filter controls.\n */\n\nimport React, { useState } from 'react';\nimport type { AdminSectionProps } from '../types';\nimport { AdminDepositStats, AdminDepositList } from '../../components/deposit/admin';\n\nexport default function DepositsSection({\n pageSize = 20,\n refreshInterval = 0,\n}: AdminSectionProps): React.JSX.Element {\n const [statusFilter, setStatusFilter] = useState<string>('');\n\n return (\n <div className=\"cedros-dashboard__deposits\">\n {/* Stats summary */}\n <AdminDepositStats refreshInterval={refreshInterval} />\n\n {/* Filter and list */}\n <div className=\"cedros-dashboard__deposits-list\">\n <div className=\"cedros-dashboard__toolbar\">\n <div className=\"cedros-dashboard__filter\">\n <label className=\"cedros-dashboard__filter-label\" htmlFor=\"status-filter\">\n Status\n </label>\n <select\n id=\"status-filter\"\n className=\"cedros-dashboard__select\"\n value={statusFilter}\n onChange={(e) => setStatusFilter(e.target.value)}\n >\n <option value=\"\">All statuses</option>\n <option value=\"pending\">Pending</option>\n <option value=\"detected\">Detected</option>\n <option value=\"processing\">Processing</option>\n <option value=\"completed\">Completed</option>\n <option value=\"withdrawn\">Withdrawn</option>\n <option value=\"expired\">Expired</option>\n <option value=\"failed\">Failed</option>\n </select>\n </div>\n </div>\n\n <AdminDepositList\n statusFilter={statusFilter || undefined}\n pageSize={pageSize}\n refreshInterval={refreshInterval}\n />\n </div>\n </div>\n );\n}\n"],"names":["DepositsSection","pageSize","refreshInterval","statusFilter","setStatusFilter","useState","jsxs","jsx","AdminDepositStats","e","AdminDepositList"],"mappings":"0KAUA,SAAwBA,EAAgB,CACtC,SAAAC,EAAW,GACX,gBAAAC,EAAkB,CACpB,EAAyC,CACvC,KAAM,CAACC,EAAcC,CAAe,EAAIC,EAAAA,SAAiB,EAAE,EAE3D,OACEC,EAAAA,KAAC,MAAA,CAAI,UAAU,6BAEb,SAAA,CAAAC,MAACC,EAAAA,mBAAkB,gBAAAN,EAAkC,EAGrDI,EAAAA,KAAC,MAAA,CAAI,UAAU,kCACb,SAAA,CAAAC,EAAAA,IAAC,OAAI,UAAU,4BACb,SAAAD,EAAAA,KAAC,MAAA,CAAI,UAAU,2BACb,SAAA,CAAAC,MAAC,QAAA,CAAM,UAAU,iCAAiC,QAAQ,gBAAgB,SAAA,SAE1E,EACAD,EAAAA,KAAC,SAAA,CACC,GAAG,gBACH,UAAU,2BACV,MAAOH,EACP,SAAWM,GAAML,EAAgBK,EAAE,OAAO,KAAK,EAE/C,SAAA,CAAAF,EAAAA,IAAC,SAAA,CAAO,MAAM,GAAG,SAAA,eAAY,EAC7BA,EAAAA,IAAC,SAAA,CAAO,MAAM,UAAU,SAAA,UAAO,EAC/BA,EAAAA,IAAC,SAAA,CAAO,MAAM,WAAW,SAAA,WAAQ,EACjCA,EAAAA,IAAC,SAAA,CAAO,MAAM,aAAa,SAAA,aAAU,EACrCA,EAAAA,IAAC,SAAA,CAAO,MAAM,YAAY,SAAA,YAAS,EACnCA,EAAAA,IAAC,SAAA,CAAO,MAAM,YAAY,SAAA,YAAS,EACnCA,EAAAA,IAAC,SAAA,CAAO,MAAM,UAAU,SAAA,UAAO,EAC/BA,EAAAA,IAAC,SAAA,CAAO,MAAM,SAAS,SAAA,QAAA,CAAM,CAAA,CAAA,CAAA,CAC/B,CAAA,CACF,CAAA,CACF,EAEAA,EAAAA,IAACG,EAAAA,iBAAA,CACC,aAAcP,GAAgB,OAC9B,SAAAF,EACA,gBAAAC,CAAA,CAAA,CACF,CAAA,CACF,CAAA,EACF,CAEJ"}
1
+ {"version":3,"file":"DepositsSection-D7yeUrJj.cjs","sources":["../src/admin/sections/DepositsSection.tsx"],"sourcesContent":["/**\n * Deposits Section - Plugin wrapper\n *\n * Admin deposit management with stats, list, and filter controls.\n */\n\nimport React, { useState } from 'react';\nimport type { AdminSectionProps } from '../types';\nimport { AdminDepositStats, AdminDepositList } from '../../components/deposit/admin';\n\nexport default function DepositsSection({\n pageSize = 20,\n refreshInterval = 0,\n}: AdminSectionProps): React.JSX.Element {\n const [statusFilter, setStatusFilter] = useState<string>('');\n\n return (\n <div className=\"cedros-dashboard__deposits\">\n {/* Stats summary */}\n <AdminDepositStats refreshInterval={refreshInterval} />\n\n {/* Filter and list */}\n <div className=\"cedros-dashboard__deposits-list\">\n <div className=\"cedros-dashboard__toolbar\">\n <div className=\"cedros-dashboard__filter\">\n <label className=\"cedros-dashboard__filter-label\" htmlFor=\"status-filter\">\n Status\n </label>\n <select\n id=\"status-filter\"\n className=\"cedros-dashboard__select\"\n value={statusFilter}\n onChange={(e) => setStatusFilter(e.target.value)}\n >\n <option value=\"\">All statuses</option>\n <option value=\"pending\">Pending</option>\n <option value=\"detected\">Detected</option>\n <option value=\"processing\">Processing</option>\n <option value=\"completed\">Completed</option>\n <option value=\"withdrawn\">Withdrawn</option>\n <option value=\"expired\">Expired</option>\n <option value=\"failed\">Failed</option>\n </select>\n </div>\n </div>\n\n <AdminDepositList\n statusFilter={statusFilter || undefined}\n pageSize={pageSize}\n refreshInterval={refreshInterval}\n />\n </div>\n </div>\n );\n}\n"],"names":["DepositsSection","pageSize","refreshInterval","statusFilter","setStatusFilter","useState","jsxs","jsx","AdminDepositStats","e","AdminDepositList"],"mappings":"0KAUA,SAAwBA,EAAgB,CACtC,SAAAC,EAAW,GACX,gBAAAC,EAAkB,CACpB,EAAyC,CACvC,KAAM,CAACC,EAAcC,CAAe,EAAIC,EAAAA,SAAiB,EAAE,EAE3D,OACEC,EAAAA,KAAC,MAAA,CAAI,UAAU,6BAEb,SAAA,CAAAC,MAACC,EAAAA,mBAAkB,gBAAAN,EAAkC,EAGrDI,EAAAA,KAAC,MAAA,CAAI,UAAU,kCACb,SAAA,CAAAC,EAAAA,IAAC,OAAI,UAAU,4BACb,SAAAD,EAAAA,KAAC,MAAA,CAAI,UAAU,2BACb,SAAA,CAAAC,MAAC,QAAA,CAAM,UAAU,iCAAiC,QAAQ,gBAAgB,SAAA,SAE1E,EACAD,EAAAA,KAAC,SAAA,CACC,GAAG,gBACH,UAAU,2BACV,MAAOH,EACP,SAAWM,GAAML,EAAgBK,EAAE,OAAO,KAAK,EAE/C,SAAA,CAAAF,EAAAA,IAAC,SAAA,CAAO,MAAM,GAAG,SAAA,eAAY,EAC7BA,EAAAA,IAAC,SAAA,CAAO,MAAM,UAAU,SAAA,UAAO,EAC/BA,EAAAA,IAAC,SAAA,CAAO,MAAM,WAAW,SAAA,WAAQ,EACjCA,EAAAA,IAAC,SAAA,CAAO,MAAM,aAAa,SAAA,aAAU,EACrCA,EAAAA,IAAC,SAAA,CAAO,MAAM,YAAY,SAAA,YAAS,EACnCA,EAAAA,IAAC,SAAA,CAAO,MAAM,YAAY,SAAA,YAAS,EACnCA,EAAAA,IAAC,SAAA,CAAO,MAAM,UAAU,SAAA,UAAO,EAC/BA,EAAAA,IAAC,SAAA,CAAO,MAAM,SAAS,SAAA,QAAA,CAAM,CAAA,CAAA,CAAA,CAC/B,CAAA,CACF,CAAA,CACF,EAEAA,EAAAA,IAACG,EAAAA,iBAAA,CACC,aAAcP,GAAgB,OAC9B,SAAAF,EACA,gBAAAC,CAAA,CAAA,CACF,CAAA,CACF,CAAA,EACF,CAEJ"}
@@ -1,6 +1,6 @@
1
1
  import { jsx as r } from "react/jsx-runtime";
2
2
  import "react";
3
- import { n as t } from "./index-Djb8LQZ6.js";
3
+ import { n as t } from "./index-CZYMYvkl.js";
4
4
  function e(i) {
5
5
  return /* @__PURE__ */ r("div", { className: "cedros-dashboard__section", children: /* @__PURE__ */ r(t, {}) });
6
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"EmailSettings-sN1OCw50.js","sources":["../src/admin/sections/EmailSettings.tsx"],"sourcesContent":["/**\n * Email Settings Section - Plugin wrapper\n */\n\nimport React from 'react';\nimport type { AdminSectionProps } from '../types';\nimport { EmailSettings as Settings } from '../../components/admin/settings';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport default function EmailSettings(_props: AdminSectionProps): React.JSX.Element {\n return (\n <div className=\"cedros-dashboard__section\">\n <Settings />\n </div>\n );\n}\n"],"names":["EmailSettings","_props","jsx","Settings"],"mappings":";;;AASA,SAAwBA,EAAcC,GAA8C;AAClF,2BACG,OAAA,EAAI,WAAU,6BACb,UAAA,gBAAAC,EAACC,KAAS,GACZ;AAEJ;"}
1
+ {"version":3,"file":"EmailSettings-BYchXt9K.js","sources":["../src/admin/sections/EmailSettings.tsx"],"sourcesContent":["/**\n * Email Settings Section - Plugin wrapper\n */\n\nimport React from 'react';\nimport type { AdminSectionProps } from '../types';\nimport { EmailSettings as Settings } from '../../components/admin/settings';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport default function EmailSettings(_props: AdminSectionProps): React.JSX.Element {\n return (\n <div className=\"cedros-dashboard__section\">\n <Settings />\n </div>\n );\n}\n"],"names":["EmailSettings","_props","jsx","Settings"],"mappings":";;;AASA,SAAwBA,EAAcC,GAA8C;AAClF,2BACG,OAAA,EAAI,WAAU,6BACb,UAAA,gBAAAC,EAACC,KAAS,GACZ;AAEJ;"}
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime");require("react");const t=require("./index-CCOKNxfU.cjs");function i(r){return e.jsx("div",{className:"cedros-dashboard__section",children:e.jsx(t.EmailSettings,{})})}exports.default=i;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime");require("react");const t=require("./index-BZ4qOdeM.cjs");function i(r){return e.jsx("div",{className:"cedros-dashboard__section",children:e.jsx(t.EmailSettings,{})})}exports.default=i;
@@ -1 +1 @@
1
- {"version":3,"file":"EmailSettings-CGocWYc0.cjs","sources":["../src/admin/sections/EmailSettings.tsx"],"sourcesContent":["/**\n * Email Settings Section - Plugin wrapper\n */\n\nimport React from 'react';\nimport type { AdminSectionProps } from '../types';\nimport { EmailSettings as Settings } from '../../components/admin/settings';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport default function EmailSettings(_props: AdminSectionProps): React.JSX.Element {\n return (\n <div className=\"cedros-dashboard__section\">\n <Settings />\n </div>\n );\n}\n"],"names":["EmailSettings","_props","jsx","Settings"],"mappings":"8KASA,SAAwBA,EAAcC,EAA8C,CAClF,aACG,MAAA,CAAI,UAAU,4BACb,SAAAC,MAACC,EAAAA,gBAAS,EACZ,CAEJ"}
1
+ {"version":3,"file":"EmailSettings-By9lcc50.cjs","sources":["../src/admin/sections/EmailSettings.tsx"],"sourcesContent":["/**\n * Email Settings Section - Plugin wrapper\n */\n\nimport React from 'react';\nimport type { AdminSectionProps } from '../types';\nimport { EmailSettings as Settings } from '../../components/admin/settings';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport default function EmailSettings(_props: AdminSectionProps): React.JSX.Element {\n return (\n <div className=\"cedros-dashboard__section\">\n <Settings />\n </div>\n );\n}\n"],"names":["EmailSettings","_props","jsx","Settings"],"mappings":"8KASA,SAAwBA,EAAcC,EAA8C,CAClF,aACG,MAAA,CAAI,UAAU,4BACb,SAAAC,MAACC,EAAAA,gBAAS,EACZ,CAEJ"}
@@ -1,6 +1,6 @@
1
1
  import { jsx as e } from "react/jsx-runtime";
2
2
  import "react";
3
- import { E as t } from "./index-Djb8LQZ6.js";
3
+ import { E as t } from "./index-CZYMYvkl.js";
4
4
  function a(d) {
5
5
  return /* @__PURE__ */ e("div", { className: "cedros-dashboard__section", children: /* @__PURE__ */ e(t, {}) });
6
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"EmbeddedWalletSettings-qpRuCk4R.js","sources":["../src/admin/sections/EmbeddedWalletSettings.tsx"],"sourcesContent":["/**\n * Embedded Wallet Settings Section - Plugin wrapper\n */\n\nimport React from 'react';\nimport type { AdminSectionProps } from '../types';\nimport { EmbeddedWalletSettings as Settings } from '../../components/admin/settings';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport default function EmbeddedWalletSettings(_props: AdminSectionProps): React.JSX.Element {\n return (\n <div className=\"cedros-dashboard__section\">\n <Settings />\n </div>\n );\n}\n"],"names":["EmbeddedWalletSettings","_props","jsx","Settings"],"mappings":";;;AASA,SAAwBA,EAAuBC,GAA8C;AAC3F,2BACG,OAAA,EAAI,WAAU,6BACb,UAAA,gBAAAC,EAACC,KAAS,GACZ;AAEJ;"}
1
+ {"version":3,"file":"EmbeddedWalletSettings-BnrEDU9Q.js","sources":["../src/admin/sections/EmbeddedWalletSettings.tsx"],"sourcesContent":["/**\n * Embedded Wallet Settings Section - Plugin wrapper\n */\n\nimport React from 'react';\nimport type { AdminSectionProps } from '../types';\nimport { EmbeddedWalletSettings as Settings } from '../../components/admin/settings';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport default function EmbeddedWalletSettings(_props: AdminSectionProps): React.JSX.Element {\n return (\n <div className=\"cedros-dashboard__section\">\n <Settings />\n </div>\n );\n}\n"],"names":["EmbeddedWalletSettings","_props","jsx","Settings"],"mappings":";;;AASA,SAAwBA,EAAuBC,GAA8C;AAC3F,2BACG,OAAA,EAAI,WAAU,6BACb,UAAA,gBAAAC,EAACC,KAAS,GACZ;AAEJ;"}
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime");require("react");const t=require("./index-CCOKNxfU.cjs");function r(d){return e.jsx("div",{className:"cedros-dashboard__section",children:e.jsx(t.EmbeddedWalletSettings,{})})}exports.default=r;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime");require("react");const t=require("./index-BZ4qOdeM.cjs");function r(d){return e.jsx("div",{className:"cedros-dashboard__section",children:e.jsx(t.EmbeddedWalletSettings,{})})}exports.default=r;
@@ -1 +1 @@
1
- {"version":3,"file":"EmbeddedWalletSettings-NZfbc5K8.cjs","sources":["../src/admin/sections/EmbeddedWalletSettings.tsx"],"sourcesContent":["/**\n * Embedded Wallet Settings Section - Plugin wrapper\n */\n\nimport React from 'react';\nimport type { AdminSectionProps } from '../types';\nimport { EmbeddedWalletSettings as Settings } from '../../components/admin/settings';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport default function EmbeddedWalletSettings(_props: AdminSectionProps): React.JSX.Element {\n return (\n <div className=\"cedros-dashboard__section\">\n <Settings />\n </div>\n );\n}\n"],"names":["EmbeddedWalletSettings","_props","jsx","Settings"],"mappings":"8KASA,SAAwBA,EAAuBC,EAA8C,CAC3F,aACG,MAAA,CAAI,UAAU,4BACb,SAAAC,MAACC,EAAAA,yBAAS,EACZ,CAEJ"}
1
+ {"version":3,"file":"EmbeddedWalletSettings-CGAwa-uQ.cjs","sources":["../src/admin/sections/EmbeddedWalletSettings.tsx"],"sourcesContent":["/**\n * Embedded Wallet Settings Section - Plugin wrapper\n */\n\nimport React from 'react';\nimport type { AdminSectionProps } from '../types';\nimport { EmbeddedWalletSettings as Settings } from '../../components/admin/settings';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport default function EmbeddedWalletSettings(_props: AdminSectionProps): React.JSX.Element {\n return (\n <div className=\"cedros-dashboard__section\">\n <Settings />\n </div>\n );\n}\n"],"names":["EmbeddedWalletSettings","_props","jsx","Settings"],"mappings":"8KASA,SAAwBA,EAAuBC,EAA8C,CAC3F,aACG,MAAA,CAAI,UAAU,4BACb,SAAAC,MAACC,EAAAA,yBAAS,EACZ,CAEJ"}
@@ -1,6 +1,6 @@
1
1
  import { jsx as r } from "react/jsx-runtime";
2
2
  import "react";
3
- import { o as e } from "./index-Djb8LQZ6.js";
3
+ import { o as e } from "./index-CZYMYvkl.js";
4
4
  function a(o) {
5
5
  return /* @__PURE__ */ r("div", { className: "cedros-dashboard__section", children: /* @__PURE__ */ r(e, {}) });
6
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ServerSettings-CQn3-uuP.js","sources":["../src/admin/sections/ServerSettings.tsx"],"sourcesContent":["/**\n * Server Settings Section - Plugin wrapper\n */\n\nimport React from 'react';\nimport type { AdminSectionProps } from '../types';\nimport { ServerSettings as Settings } from '../../components/admin/settings';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport default function ServerSettings(_props: AdminSectionProps): React.JSX.Element {\n return (\n <div className=\"cedros-dashboard__section\">\n <Settings />\n </div>\n );\n}\n"],"names":["ServerSettings","_props","jsx","Settings"],"mappings":";;;AASA,SAAwBA,EAAeC,GAA8C;AACnF,2BACG,OAAA,EAAI,WAAU,6BACb,UAAA,gBAAAC,EAACC,KAAS,GACZ;AAEJ;"}
1
+ {"version":3,"file":"ServerSettings-BLKVQrop.js","sources":["../src/admin/sections/ServerSettings.tsx"],"sourcesContent":["/**\n * Server Settings Section - Plugin wrapper\n */\n\nimport React from 'react';\nimport type { AdminSectionProps } from '../types';\nimport { ServerSettings as Settings } from '../../components/admin/settings';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport default function ServerSettings(_props: AdminSectionProps): React.JSX.Element {\n return (\n <div className=\"cedros-dashboard__section\">\n <Settings />\n </div>\n );\n}\n"],"names":["ServerSettings","_props","jsx","Settings"],"mappings":";;;AASA,SAAwBA,EAAeC,GAA8C;AACnF,2BACG,OAAA,EAAI,WAAU,6BACb,UAAA,gBAAAC,EAACC,KAAS,GACZ;AAEJ;"}
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime");require("react");const r=require("./index-CCOKNxfU.cjs");function t(s){return e.jsx("div",{className:"cedros-dashboard__section",children:e.jsx(r.ServerSettings,{})})}exports.default=t;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime");require("react");const r=require("./index-BZ4qOdeM.cjs");function t(s){return e.jsx("div",{className:"cedros-dashboard__section",children:e.jsx(r.ServerSettings,{})})}exports.default=t;
@@ -1 +1 @@
1
- {"version":3,"file":"ServerSettings-Bkr_xuDx.cjs","sources":["../src/admin/sections/ServerSettings.tsx"],"sourcesContent":["/**\n * Server Settings Section - Plugin wrapper\n */\n\nimport React from 'react';\nimport type { AdminSectionProps } from '../types';\nimport { ServerSettings as Settings } from '../../components/admin/settings';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport default function ServerSettings(_props: AdminSectionProps): React.JSX.Element {\n return (\n <div className=\"cedros-dashboard__section\">\n <Settings />\n </div>\n );\n}\n"],"names":["ServerSettings","_props","jsx","Settings"],"mappings":"8KASA,SAAwBA,EAAeC,EAA8C,CACnF,aACG,MAAA,CAAI,UAAU,4BACb,SAAAC,MAACC,EAAAA,iBAAS,EACZ,CAEJ"}
1
+ {"version":3,"file":"ServerSettings-xcpawsTA.cjs","sources":["../src/admin/sections/ServerSettings.tsx"],"sourcesContent":["/**\n * Server Settings Section - Plugin wrapper\n */\n\nimport React from 'react';\nimport type { AdminSectionProps } from '../types';\nimport { ServerSettings as Settings } from '../../components/admin/settings';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport default function ServerSettings(_props: AdminSectionProps): React.JSX.Element {\n return (\n <div className=\"cedros-dashboard__section\">\n <Settings />\n </div>\n );\n}\n"],"names":["ServerSettings","_props","jsx","Settings"],"mappings":"8KASA,SAAwBA,EAAeC,EAA8C,CACnF,aACG,MAAA,CAAI,UAAU,4BACb,SAAAC,MAACC,EAAAA,iBAAS,EACZ,CAEJ"}
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),b=require("react"),n=require("./index-BZ4qOdeM.cjs");function E({pluginContext:p}){const[s,i]=b.useState("members"),{activeOrg:r,hasPermission:a,role:o,isLoading:f,error:v,fetchOrgs:I}=n.useOrgs(),{members:t,isLoading:C,error:L,fetchMembers:u,updateMemberRole:M,removeMember:y}=n.useMembers(r?.id??""),{invites:h,isLoading:g,error:x,fetchInvites:j,createInvite:R,cancelInvite:S,resendInvite:P}=n.useInvites(r?.id??"");b.useEffect(()=>{r?.id&&(u(),j())},[r?.id,u,j]);const d=b.useMemo(()=>t.reduce((l,N)=>(l[N.role]=(l[N.role]??0)+1,l),{}),[t]);if(f&&!r)return e.jsx("div",{className:"cedros-dashboard__section",children:e.jsxs("div",{className:"cedros-dashboard__empty",children:[e.jsx("span",{className:"cedros-admin-loading-indicator"}),e.jsx("span",{className:"cedros-admin-loading-text",children:"Loading organization..."})]})});if(v&&!r)return e.jsx("div",{className:"cedros-dashboard__section",children:e.jsxs("div",{className:"cedros-dashboard__empty",children:[e.jsx("p",{className:"cedros-admin-error",children:v.message}),e.jsx("button",{type:"button",className:"cedros-button cedros-button-outline",onClick:I,children:"Retry"})]})});if(!r)return e.jsx("div",{className:"cedros-dashboard__section",children:e.jsx("div",{className:"cedros-dashboard__empty",children:"No organizations found."})});const c=a("invite:create"),_=a("invite:cancel"),m=h.length,w=d.owner??0,O=d.admin??0,k=d.member??0;return e.jsxs("div",{className:"cedros-dashboard__team",children:[e.jsx(n.StatsBar,{stats:[{label:"Owners",value:w},{label:"Admins",value:O},{label:"Members",value:k},{label:"Pending Invites",value:m}]}),e.jsxs("div",{className:"cedros-admin-tabs cedros-admin-tabs--line",children:[e.jsx("button",{type:"button",className:`cedros-admin-tab ${s==="members"?"cedros-admin-tab-active":""}`,onClick:()=>i("members"),"aria-selected":s==="members",role:"tab",children:"Members"}),e.jsxs("button",{type:"button",className:`cedros-admin-tab ${s==="invites"?"cedros-admin-tab-active":""}`,onClick:()=>i("invites"),"aria-selected":s==="invites",role:"tab",children:["Pending Invites",m>0&&` (${m})`]}),o==="owner"&&e.jsx("button",{type:"button",className:`cedros-admin-tab ${s==="permissions"?"cedros-admin-tab-active":""}`,onClick:()=>i("permissions"),"aria-selected":s==="permissions",role:"tab",children:"Permissions"})]}),e.jsxs("div",{className:"cedros-admin-tab-content",role:"tabpanel",children:[s==="members"&&e.jsx(n.MemberList,{members:t,currentUserId:p.userId,isLoading:C,error:L?.message,canManage:a("member:remove"),canChangeRoles:a("member:role_change"),onUpdateRole:M,onRemove:y}),s==="invites"&&e.jsxs("div",{className:"cedros-dashboard__invites",children:[c&&e.jsxs("div",{className:"cedros-dashboard__section",children:[e.jsx("div",{className:"cedros-dashboard__section-header",children:e.jsx("h3",{className:"cedros-dashboard__section-title",children:"Send Invitation"})}),e.jsx(n.InviteForm,{onSubmit:R,isLoading:g,error:x?.message})]}),e.jsx("div",{className:"cedros-dashboard__section",children:e.jsx(n.InviteList,{invites:h,isLoading:g,error:x?.message,canManage:_||c,onCancel:_?S:void 0,onResend:c?P:void 0})})]}),s==="permissions"&&o==="owner"&&e.jsx(n.PermissionsSection,{userRole:o})]})]})}exports.default=E;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TeamSection-BX7YNug-.cjs","sources":["../src/admin/sections/TeamSection.tsx"],"sourcesContent":["/**\n * Team Section - Plugin wrapper\n *\n * Combined team member management and invites for organizations.\n */\n\nimport React, { useMemo, useState, useEffect } from 'react';\nimport type { AdminSectionProps } from '../types';\nimport { MemberList } from '../../components/members/MemberList';\nimport { InviteForm } from '../../components/invites/InviteForm';\nimport { InviteList } from '../../components/invites/InviteList';\nimport { StatsBar } from '../../components/admin/StatsBar';\nimport { PermissionsSection } from '../../components/admin/PermissionsSection';\nimport { useOrgs } from '../../hooks/useOrgs';\nimport { useMembers } from '../../hooks/useMembers';\nimport { useInvites } from '../../hooks/useInvites';\n\ntype TeamTab = 'members' | 'invites' | 'permissions';\n\nexport default function TeamSection({ pluginContext }: AdminSectionProps): React.JSX.Element {\n const [activeTab, setActiveTab] = useState<TeamTab>('members');\n const { activeOrg, hasPermission, role, isLoading: orgsLoading, error: orgsError, fetchOrgs } = useOrgs();\n\n const {\n members,\n isLoading: membersLoading,\n error: membersError,\n fetchMembers,\n updateMemberRole,\n removeMember,\n } = useMembers(activeOrg?.id ?? '');\n const {\n invites,\n isLoading: invitesLoading,\n error: invitesError,\n fetchInvites,\n createInvite,\n cancelInvite,\n resendInvite,\n } = useInvites(activeOrg?.id ?? '');\n\n useEffect(() => {\n if (activeOrg?.id) {\n fetchMembers();\n fetchInvites();\n }\n }, [activeOrg?.id, fetchMembers, fetchInvites]);\n\n // P-01: Compute role counts BEFORE any early return to follow React Hooks rules\n const roleCounts = useMemo(\n () =>\n members.reduce(\n (acc, member) => {\n acc[member.role] = (acc[member.role] ?? 0) + 1;\n return acc;\n },\n {} as Record<string, number>\n ),\n [members]\n );\n\n if (orgsLoading && !activeOrg) {\n return (\n <div className=\"cedros-dashboard__section\">\n <div className=\"cedros-dashboard__empty\">\n <span className=\"cedros-admin-loading-indicator\" />\n <span className=\"cedros-admin-loading-text\">Loading organization...</span>\n </div>\n </div>\n );\n }\n\n if (orgsError && !activeOrg) {\n return (\n <div className=\"cedros-dashboard__section\">\n <div className=\"cedros-dashboard__empty\">\n <p className=\"cedros-admin-error\">{orgsError.message}</p>\n <button\n type=\"button\"\n className=\"cedros-button cedros-button-outline\"\n onClick={fetchOrgs}\n >\n Retry\n </button>\n </div>\n </div>\n );\n }\n\n if (!activeOrg) {\n return (\n <div className=\"cedros-dashboard__section\">\n <div className=\"cedros-dashboard__empty\">\n No organizations found.\n </div>\n </div>\n );\n }\n\n const canInvite = hasPermission('invite:create');\n const canCancel = hasPermission('invite:cancel');\n const pendingCount = invites.length;\n const ownerCount = roleCounts.owner ?? 0;\n const adminCount = roleCounts.admin ?? 0;\n const memberCount = roleCounts.member ?? 0;\n\n return (\n <div className=\"cedros-dashboard__team\">\n <StatsBar\n stats={[\n { label: 'Owners', value: ownerCount },\n { label: 'Admins', value: adminCount },\n { label: 'Members', value: memberCount },\n { label: 'Pending Invites', value: pendingCount },\n ]}\n />\n {/* Tabs */}\n <div className=\"cedros-admin-tabs cedros-admin-tabs--line\">\n <button\n type=\"button\"\n className={`cedros-admin-tab ${activeTab === 'members' ? 'cedros-admin-tab-active' : ''}`}\n onClick={() => setActiveTab('members')}\n aria-selected={activeTab === 'members'}\n role=\"tab\"\n >\n Members\n </button>\n <button\n type=\"button\"\n className={`cedros-admin-tab ${activeTab === 'invites' ? 'cedros-admin-tab-active' : ''}`}\n onClick={() => setActiveTab('invites')}\n aria-selected={activeTab === 'invites'}\n role=\"tab\"\n >\n Pending Invites{pendingCount > 0 && ` (${pendingCount})`}\n </button>\n {role === 'owner' && (\n <button\n type=\"button\"\n className={`cedros-admin-tab ${activeTab === 'permissions' ? 'cedros-admin-tab-active' : ''}`}\n onClick={() => setActiveTab('permissions')}\n aria-selected={activeTab === 'permissions'}\n role=\"tab\"\n >\n Permissions\n </button>\n )}\n </div>\n\n {/* Tab content */}\n <div className=\"cedros-admin-tab-content\" role=\"tabpanel\">\n {activeTab === 'members' && (\n <MemberList\n members={members}\n currentUserId={pluginContext.userId}\n isLoading={membersLoading}\n error={membersError?.message}\n canManage={hasPermission('member:remove')}\n canChangeRoles={hasPermission('member:role_change')}\n onUpdateRole={updateMemberRole}\n onRemove={removeMember}\n />\n )}\n\n {activeTab === 'invites' && (\n <div className=\"cedros-dashboard__invites\">\n {canInvite && (\n <div className=\"cedros-dashboard__section\">\n <div className=\"cedros-dashboard__section-header\">\n <h3 className=\"cedros-dashboard__section-title\">Send Invitation</h3>\n </div>\n <InviteForm\n onSubmit={createInvite}\n isLoading={invitesLoading}\n error={invitesError?.message}\n />\n </div>\n )}\n\n <div className=\"cedros-dashboard__section\">\n <InviteList\n invites={invites}\n isLoading={invitesLoading}\n error={invitesError?.message}\n canManage={canCancel || canInvite}\n onCancel={canCancel ? cancelInvite : undefined}\n onResend={canInvite ? resendInvite : undefined}\n />\n </div>\n </div>\n )}\n\n {activeTab === 'permissions' && role === 'owner' && <PermissionsSection userRole={role} />}\n </div>\n </div>\n );\n}\n"],"names":["TeamSection","pluginContext","activeTab","setActiveTab","useState","activeOrg","hasPermission","role","orgsLoading","orgsError","fetchOrgs","useOrgs","members","membersLoading","membersError","fetchMembers","updateMemberRole","removeMember","useMembers","invites","invitesLoading","invitesError","fetchInvites","createInvite","cancelInvite","resendInvite","useInvites","useEffect","roleCounts","useMemo","acc","member","jsxs","jsx","canInvite","canCancel","pendingCount","ownerCount","adminCount","memberCount","StatsBar","MemberList","InviteForm","InviteList","PermissionsSection"],"mappings":"0KAmBA,SAAwBA,EAAY,CAAE,cAAAC,GAAuD,CAC3F,KAAM,CAACC,EAAWC,CAAY,EAAIC,EAAAA,SAAkB,SAAS,EACvD,CAAE,UAAAC,EAAW,cAAAC,EAAe,KAAAC,EAAM,UAAWC,EAAa,MAAOC,EAAW,UAAAC,CAAA,EAAcC,UAAA,EAE1F,CACJ,QAAAC,EACA,UAAWC,EACX,MAAOC,EACP,aAAAC,EACA,iBAAAC,EACA,aAAAC,CAAA,EACEC,aAAWb,GAAW,IAAM,EAAE,EAC5B,CACJ,QAAAc,EACA,UAAWC,EACX,MAAOC,EACP,aAAAC,EACA,aAAAC,EACA,aAAAC,EACA,aAAAC,CAAA,EACEC,aAAWrB,GAAW,IAAM,EAAE,EAElCsB,EAAAA,UAAU,IAAM,CACVtB,GAAW,KACbU,EAAA,EACAO,EAAA,EAEJ,EAAG,CAACjB,GAAW,GAAIU,EAAcO,CAAY,CAAC,EAG9C,MAAMM,EAAaC,EAAAA,QACjB,IACEjB,EAAQ,OACN,CAACkB,EAAKC,KACJD,EAAIC,EAAO,IAAI,GAAKD,EAAIC,EAAO,IAAI,GAAK,GAAK,EACtCD,GAET,CAAA,CAAC,EAEL,CAAClB,CAAO,CAAA,EAGV,GAAIJ,GAAe,CAACH,EAClB,aACG,MAAA,CAAI,UAAU,4BACb,SAAA2B,EAAAA,KAAC,MAAA,CAAI,UAAU,0BACb,SAAA,CAAAC,EAAAA,IAAC,OAAA,CAAK,UAAU,gCAAA,CAAiC,EACjDA,EAAAA,IAAC,OAAA,CAAK,UAAU,4BAA4B,SAAA,yBAAA,CAAuB,CAAA,CAAA,CACrE,CAAA,CACF,EAIJ,GAAIxB,GAAa,CAACJ,EAChB,aACG,MAAA,CAAI,UAAU,4BACb,SAAA2B,EAAAA,KAAC,MAAA,CAAI,UAAU,0BACb,SAAA,CAAAC,EAAAA,IAAC,IAAA,CAAE,UAAU,qBAAsB,SAAAxB,EAAU,QAAQ,EACrDwB,EAAAA,IAAC,SAAA,CACC,KAAK,SACL,UAAU,sCACV,QAASvB,EACV,SAAA,OAAA,CAAA,CAED,CAAA,CACF,CAAA,CACF,EAIJ,GAAI,CAACL,EACH,OACE4B,EAAAA,IAAC,OAAI,UAAU,4BACb,eAAC,MAAA,CAAI,UAAU,0BAA0B,SAAA,yBAAA,CAEzC,CAAA,CACF,EAIJ,MAAMC,EAAY5B,EAAc,eAAe,EACzC6B,EAAY7B,EAAc,eAAe,EACzC8B,EAAejB,EAAQ,OACvBkB,EAAaT,EAAW,OAAS,EACjCU,EAAaV,EAAW,OAAS,EACjCW,EAAcX,EAAW,QAAU,EAEzC,OACEI,EAAAA,KAAC,MAAA,CAAI,UAAU,yBACb,SAAA,CAAAC,EAAAA,IAACO,EAAAA,SAAA,CACC,MAAO,CACL,CAAE,MAAO,SAAU,MAAOH,CAAA,EAC1B,CAAE,MAAO,SAAU,MAAOC,CAAA,EAC1B,CAAE,MAAO,UAAW,MAAOC,CAAA,EAC3B,CAAE,MAAO,kBAAmB,MAAOH,CAAA,CAAa,CAClD,CAAA,EAGFJ,EAAAA,KAAC,MAAA,CAAI,UAAU,4CACb,SAAA,CAAAC,EAAAA,IAAC,SAAA,CACC,KAAK,SACL,UAAW,oBAAoB/B,IAAc,UAAY,0BAA4B,EAAE,GACvF,QAAS,IAAMC,EAAa,SAAS,EACrC,gBAAeD,IAAc,UAC7B,KAAK,MACN,SAAA,SAAA,CAAA,EAGD8B,EAAAA,KAAC,SAAA,CACC,KAAK,SACL,UAAW,oBAAoB9B,IAAc,UAAY,0BAA4B,EAAE,GACvF,QAAS,IAAMC,EAAa,SAAS,EACrC,gBAAeD,IAAc,UAC7B,KAAK,MACN,SAAA,CAAA,kBACiBkC,EAAe,GAAK,KAAKA,CAAY,GAAA,CAAA,CAAA,EAEtD7B,IAAS,SACR0B,EAAAA,IAAC,SAAA,CACC,KAAK,SACL,UAAW,oBAAoB/B,IAAc,cAAgB,0BAA4B,EAAE,GAC3F,QAAS,IAAMC,EAAa,aAAa,EACzC,gBAAeD,IAAc,cAC7B,KAAK,MACN,SAAA,aAAA,CAAA,CAED,EAEJ,EAGA8B,EAAAA,KAAC,MAAA,CAAI,UAAU,2BAA2B,KAAK,WAC5C,SAAA,CAAA9B,IAAc,WACb+B,EAAAA,IAACQ,EAAAA,WAAA,CACC,QAAA7B,EACA,cAAeX,EAAc,OAC7B,UAAWY,EACX,MAAOC,GAAc,QACrB,UAAWR,EAAc,eAAe,EACxC,eAAgBA,EAAc,oBAAoB,EAClD,aAAcU,EACd,SAAUC,CAAA,CAAA,EAIbf,IAAc,WACb8B,OAAC,MAAA,CAAI,UAAU,4BACZ,SAAA,CAAAE,GACCF,EAAAA,KAAC,MAAA,CAAI,UAAU,4BACb,SAAA,CAAAC,EAAAA,IAAC,MAAA,CAAI,UAAU,mCACb,SAAAA,EAAAA,IAAC,MAAG,UAAU,kCAAkC,2BAAe,CAAA,CACjE,EACAA,EAAAA,IAACS,EAAAA,WAAA,CACC,SAAUnB,EACV,UAAWH,EACX,MAAOC,GAAc,OAAA,CAAA,CACvB,EACF,EAGFY,EAAAA,IAAC,MAAA,CAAI,UAAU,4BACb,SAAAA,EAAAA,IAACU,EAAAA,WAAA,CACC,QAAAxB,EACA,UAAWC,EACX,MAAOC,GAAc,QACrB,UAAWc,GAAaD,EACxB,SAAUC,EAAYX,EAAe,OACrC,SAAUU,EAAYT,EAAe,MAAA,CAAA,CACvC,CACF,CAAA,EACF,EAGDvB,IAAc,eAAiBK,IAAS,SAAW0B,EAAAA,IAACW,qBAAA,CAAmB,SAAUrC,CAAA,CAAM,CAAA,CAAA,CAC1F,CAAA,EACF,CAEJ"}
@@ -1,67 +1,63 @@
1
1
  import { jsx as e, jsxs as a } from "react/jsx-runtime";
2
- import { useState as T, useEffect as I, useMemo as j } from "react";
3
- import { c as z, d as A, e as U, S as B, M as F, I as q, f as D, P as G } from "./index-Djb8LQZ6.js";
4
- function Q({ pluginContext: C }) {
5
- const [s, i] = T("members"), { activeOrg: r, orgs: L, hasPermission: n, role: o, isLoading: M, error: v, fetchOrgs: t } = z();
6
- I(() => {
7
- L.length === 0 && t();
8
- }, [t]);
9
- const {
10
- members: d,
11
- isLoading: y,
12
- error: R,
13
- fetchMembers: h,
14
- updateMemberRole: S,
15
- removeMember: P
16
- } = A(r?.id ?? ""), {
17
- invites: u,
18
- isLoading: g,
19
- error: _,
20
- fetchInvites: p,
21
- createInvite: w,
22
- cancelInvite: k,
23
- resendInvite: x
24
- } = U(r?.id ?? "");
25
- I(() => {
26
- r?.id && (h(), p());
27
- }, [r?.id, h, p]);
28
- const c = j(
29
- () => d.reduce(
30
- (b, f) => (b[f.role] = (b[f.role] ?? 0) + 1, b),
2
+ import { useState as O, useEffect as $, useMemo as T } from "react";
3
+ import { c as j, d as z, e as A, S as U, M as B, I as F, f as q, P as D } from "./index-CZYMYvkl.js";
4
+ function K({ pluginContext: f }) {
5
+ const [s, i] = O("members"), { activeOrg: r, hasPermission: n, role: o, isLoading: I, error: b, fetchOrgs: C } = j(), {
6
+ members: t,
7
+ isLoading: L,
8
+ error: M,
9
+ fetchMembers: v,
10
+ updateMemberRole: y,
11
+ removeMember: R
12
+ } = z(r?.id ?? ""), {
13
+ invites: h,
14
+ isLoading: u,
15
+ error: g,
16
+ fetchInvites: _,
17
+ createInvite: S,
18
+ cancelInvite: P,
19
+ resendInvite: w
20
+ } = A(r?.id ?? "");
21
+ $(() => {
22
+ r?.id && (v(), _());
23
+ }, [r?.id, v, _]);
24
+ const d = T(
25
+ () => t.reduce(
26
+ (l, N) => (l[N.role] = (l[N.role] ?? 0) + 1, l),
31
27
  {}
32
28
  ),
33
- [d]
29
+ [t]
34
30
  );
35
- if (M && !r)
31
+ if (I && !r)
36
32
  return /* @__PURE__ */ e("div", { className: "cedros-dashboard__section", children: /* @__PURE__ */ a("div", { className: "cedros-dashboard__empty", children: [
37
33
  /* @__PURE__ */ e("span", { className: "cedros-admin-loading-indicator" }),
38
34
  /* @__PURE__ */ e("span", { className: "cedros-admin-loading-text", children: "Loading organization..." })
39
35
  ] }) });
40
- if (v && !r)
36
+ if (b && !r)
41
37
  return /* @__PURE__ */ e("div", { className: "cedros-dashboard__section", children: /* @__PURE__ */ a("div", { className: "cedros-dashboard__empty", children: [
42
- /* @__PURE__ */ e("p", { className: "cedros-admin-error", children: v.message }),
38
+ /* @__PURE__ */ e("p", { className: "cedros-admin-error", children: b.message }),
43
39
  /* @__PURE__ */ e(
44
40
  "button",
45
41
  {
46
42
  type: "button",
47
43
  className: "cedros-button cedros-button-outline",
48
- onClick: t,
44
+ onClick: C,
49
45
  children: "Retry"
50
46
  }
51
47
  )
52
48
  ] }) });
53
49
  if (!r)
54
50
  return /* @__PURE__ */ e("div", { className: "cedros-dashboard__section", children: /* @__PURE__ */ e("div", { className: "cedros-dashboard__empty", children: "No organizations found." }) });
55
- const m = n("invite:create"), N = n("invite:cancel"), l = u.length, E = c.owner ?? 0, O = c.admin ?? 0, $ = c.member ?? 0;
51
+ const c = n("invite:create"), p = n("invite:cancel"), m = h.length, k = d.owner ?? 0, x = d.admin ?? 0, E = d.member ?? 0;
56
52
  return /* @__PURE__ */ a("div", { className: "cedros-dashboard__team", children: [
57
53
  /* @__PURE__ */ e(
58
- B,
54
+ U,
59
55
  {
60
56
  stats: [
61
- { label: "Owners", value: E },
62
- { label: "Admins", value: O },
63
- { label: "Members", value: $ },
64
- { label: "Pending Invites", value: l }
57
+ { label: "Owners", value: k },
58
+ { label: "Admins", value: x },
59
+ { label: "Members", value: E },
60
+ { label: "Pending Invites", value: m }
65
61
  ]
66
62
  }
67
63
  ),
@@ -87,7 +83,7 @@ function Q({ pluginContext: C }) {
87
83
  role: "tab",
88
84
  children: [
89
85
  "Pending Invites",
90
- l > 0 && ` (${l})`
86
+ m > 0 && ` (${m})`
91
87
  ]
92
88
  }
93
89
  ),
@@ -105,46 +101,46 @@ function Q({ pluginContext: C }) {
105
101
  ] }),
106
102
  /* @__PURE__ */ a("div", { className: "cedros-admin-tab-content", role: "tabpanel", children: [
107
103
  s === "members" && /* @__PURE__ */ e(
108
- F,
104
+ B,
109
105
  {
110
- members: d,
111
- currentUserId: C.userId,
112
- isLoading: y,
113
- error: R?.message,
106
+ members: t,
107
+ currentUserId: f.userId,
108
+ isLoading: L,
109
+ error: M?.message,
114
110
  canManage: n("member:remove"),
115
111
  canChangeRoles: n("member:role_change"),
116
- onUpdateRole: S,
117
- onRemove: P
112
+ onUpdateRole: y,
113
+ onRemove: R
118
114
  }
119
115
  ),
120
116
  s === "invites" && /* @__PURE__ */ a("div", { className: "cedros-dashboard__invites", children: [
121
- m && /* @__PURE__ */ a("div", { className: "cedros-dashboard__section", children: [
117
+ c && /* @__PURE__ */ a("div", { className: "cedros-dashboard__section", children: [
122
118
  /* @__PURE__ */ e("div", { className: "cedros-dashboard__section-header", children: /* @__PURE__ */ e("h3", { className: "cedros-dashboard__section-title", children: "Send Invitation" }) }),
123
119
  /* @__PURE__ */ e(
124
- q,
120
+ F,
125
121
  {
126
- onSubmit: w,
127
- isLoading: g,
128
- error: _?.message
122
+ onSubmit: S,
123
+ isLoading: u,
124
+ error: g?.message
129
125
  }
130
126
  )
131
127
  ] }),
132
128
  /* @__PURE__ */ e("div", { className: "cedros-dashboard__section", children: /* @__PURE__ */ e(
133
- D,
129
+ q,
134
130
  {
135
- invites: u,
136
- isLoading: g,
137
- error: _?.message,
138
- canManage: N || m,
139
- onCancel: N ? k : void 0,
140
- onResend: m ? x : void 0
131
+ invites: h,
132
+ isLoading: u,
133
+ error: g?.message,
134
+ canManage: p || c,
135
+ onCancel: p ? P : void 0,
136
+ onResend: c ? w : void 0
141
137
  }
142
138
  ) })
143
139
  ] }),
144
- s === "permissions" && o === "owner" && /* @__PURE__ */ e(G, { userRole: o })
140
+ s === "permissions" && o === "owner" && /* @__PURE__ */ e(D, { userRole: o })
145
141
  ] })
146
142
  ] });
147
143
  }
148
144
  export {
149
- Q as default
145
+ K as default
150
146
  };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TeamSection-Dho9Ir3t.js","sources":["../src/admin/sections/TeamSection.tsx"],"sourcesContent":["/**\n * Team Section - Plugin wrapper\n *\n * Combined team member management and invites for organizations.\n */\n\nimport React, { useMemo, useState, useEffect } from 'react';\nimport type { AdminSectionProps } from '../types';\nimport { MemberList } from '../../components/members/MemberList';\nimport { InviteForm } from '../../components/invites/InviteForm';\nimport { InviteList } from '../../components/invites/InviteList';\nimport { StatsBar } from '../../components/admin/StatsBar';\nimport { PermissionsSection } from '../../components/admin/PermissionsSection';\nimport { useOrgs } from '../../hooks/useOrgs';\nimport { useMembers } from '../../hooks/useMembers';\nimport { useInvites } from '../../hooks/useInvites';\n\ntype TeamTab = 'members' | 'invites' | 'permissions';\n\nexport default function TeamSection({ pluginContext }: AdminSectionProps): React.JSX.Element {\n const [activeTab, setActiveTab] = useState<TeamTab>('members');\n const { activeOrg, hasPermission, role, isLoading: orgsLoading, error: orgsError, fetchOrgs } = useOrgs();\n\n const {\n members,\n isLoading: membersLoading,\n error: membersError,\n fetchMembers,\n updateMemberRole,\n removeMember,\n } = useMembers(activeOrg?.id ?? '');\n const {\n invites,\n isLoading: invitesLoading,\n error: invitesError,\n fetchInvites,\n createInvite,\n cancelInvite,\n resendInvite,\n } = useInvites(activeOrg?.id ?? '');\n\n useEffect(() => {\n if (activeOrg?.id) {\n fetchMembers();\n fetchInvites();\n }\n }, [activeOrg?.id, fetchMembers, fetchInvites]);\n\n // P-01: Compute role counts BEFORE any early return to follow React Hooks rules\n const roleCounts = useMemo(\n () =>\n members.reduce(\n (acc, member) => {\n acc[member.role] = (acc[member.role] ?? 0) + 1;\n return acc;\n },\n {} as Record<string, number>\n ),\n [members]\n );\n\n if (orgsLoading && !activeOrg) {\n return (\n <div className=\"cedros-dashboard__section\">\n <div className=\"cedros-dashboard__empty\">\n <span className=\"cedros-admin-loading-indicator\" />\n <span className=\"cedros-admin-loading-text\">Loading organization...</span>\n </div>\n </div>\n );\n }\n\n if (orgsError && !activeOrg) {\n return (\n <div className=\"cedros-dashboard__section\">\n <div className=\"cedros-dashboard__empty\">\n <p className=\"cedros-admin-error\">{orgsError.message}</p>\n <button\n type=\"button\"\n className=\"cedros-button cedros-button-outline\"\n onClick={fetchOrgs}\n >\n Retry\n </button>\n </div>\n </div>\n );\n }\n\n if (!activeOrg) {\n return (\n <div className=\"cedros-dashboard__section\">\n <div className=\"cedros-dashboard__empty\">\n No organizations found.\n </div>\n </div>\n );\n }\n\n const canInvite = hasPermission('invite:create');\n const canCancel = hasPermission('invite:cancel');\n const pendingCount = invites.length;\n const ownerCount = roleCounts.owner ?? 0;\n const adminCount = roleCounts.admin ?? 0;\n const memberCount = roleCounts.member ?? 0;\n\n return (\n <div className=\"cedros-dashboard__team\">\n <StatsBar\n stats={[\n { label: 'Owners', value: ownerCount },\n { label: 'Admins', value: adminCount },\n { label: 'Members', value: memberCount },\n { label: 'Pending Invites', value: pendingCount },\n ]}\n />\n {/* Tabs */}\n <div className=\"cedros-admin-tabs cedros-admin-tabs--line\">\n <button\n type=\"button\"\n className={`cedros-admin-tab ${activeTab === 'members' ? 'cedros-admin-tab-active' : ''}`}\n onClick={() => setActiveTab('members')}\n aria-selected={activeTab === 'members'}\n role=\"tab\"\n >\n Members\n </button>\n <button\n type=\"button\"\n className={`cedros-admin-tab ${activeTab === 'invites' ? 'cedros-admin-tab-active' : ''}`}\n onClick={() => setActiveTab('invites')}\n aria-selected={activeTab === 'invites'}\n role=\"tab\"\n >\n Pending Invites{pendingCount > 0 && ` (${pendingCount})`}\n </button>\n {role === 'owner' && (\n <button\n type=\"button\"\n className={`cedros-admin-tab ${activeTab === 'permissions' ? 'cedros-admin-tab-active' : ''}`}\n onClick={() => setActiveTab('permissions')}\n aria-selected={activeTab === 'permissions'}\n role=\"tab\"\n >\n Permissions\n </button>\n )}\n </div>\n\n {/* Tab content */}\n <div className=\"cedros-admin-tab-content\" role=\"tabpanel\">\n {activeTab === 'members' && (\n <MemberList\n members={members}\n currentUserId={pluginContext.userId}\n isLoading={membersLoading}\n error={membersError?.message}\n canManage={hasPermission('member:remove')}\n canChangeRoles={hasPermission('member:role_change')}\n onUpdateRole={updateMemberRole}\n onRemove={removeMember}\n />\n )}\n\n {activeTab === 'invites' && (\n <div className=\"cedros-dashboard__invites\">\n {canInvite && (\n <div className=\"cedros-dashboard__section\">\n <div className=\"cedros-dashboard__section-header\">\n <h3 className=\"cedros-dashboard__section-title\">Send Invitation</h3>\n </div>\n <InviteForm\n onSubmit={createInvite}\n isLoading={invitesLoading}\n error={invitesError?.message}\n />\n </div>\n )}\n\n <div className=\"cedros-dashboard__section\">\n <InviteList\n invites={invites}\n isLoading={invitesLoading}\n error={invitesError?.message}\n canManage={canCancel || canInvite}\n onCancel={canCancel ? cancelInvite : undefined}\n onResend={canInvite ? resendInvite : undefined}\n />\n </div>\n </div>\n )}\n\n {activeTab === 'permissions' && role === 'owner' && <PermissionsSection userRole={role} />}\n </div>\n </div>\n );\n}\n"],"names":["TeamSection","pluginContext","activeTab","setActiveTab","useState","activeOrg","hasPermission","role","orgsLoading","orgsError","fetchOrgs","useOrgs","members","membersLoading","membersError","fetchMembers","updateMemberRole","removeMember","useMembers","invites","invitesLoading","invitesError","fetchInvites","createInvite","cancelInvite","resendInvite","useInvites","useEffect","roleCounts","useMemo","acc","member","jsxs","jsx","canInvite","canCancel","pendingCount","ownerCount","adminCount","memberCount","StatsBar","MemberList","InviteForm","InviteList","PermissionsSection"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { jsx as a, jsxs as p } from "react/jsx-runtime";
2
2
  import { useState as l, useEffect as S, useCallback as _, useMemo as U } from "react";
3
- import { A as E, S as I, a as v, u as y, b as A } from "./index-Djb8LQZ6.js";
3
+ import { A as E, S as I, a as v, u as y, b as A } from "./index-CZYMYvkl.js";
4
4
  const L = ["email", "google", "apple", "solana", "webauthn", "sso"], T = {
5
5
  email: "Email Users",
6
6
  google: "Google Users",
@@ -1 +1 @@
1
- {"version":3,"file":"UsersSection-DlfHGrJK.js","sources":["../src/admin/sections/UsersSection.tsx"],"sourcesContent":["/**\n * Users Section - Plugin wrapper\n *\n * Admin user management with list and detail views.\n */\n\nimport React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport type { AdminSectionProps } from '../types';\nimport { AdminUserList } from '../../components/admin/AdminUserList';\nimport { AdminUserDetail } from '../../components/admin/AdminUserDetail';\nimport { StatsBar } from '../../components/admin/StatsBar';\nimport { useAdminUsers } from '../../hooks/useAdminUsers';\nimport { useSystemSettings } from '../../hooks/useSystemSettings';\nimport type { AdminUser, AdminUserStatsResponse } from '../../types';\n\nconst METHOD_ORDER = ['email', 'google', 'apple', 'solana', 'webauthn', 'sso'] as const;\n\nconst METHOD_LABELS: Record<(typeof METHOD_ORDER)[number], string> = {\n email: 'Email Users',\n google: 'Google Users',\n apple: 'Apple Users',\n solana: 'Solana Users',\n webauthn: 'Passkey Users',\n sso: 'SSO Provider Users',\n};\n\nconst METHOD_SETTINGS: Record<(typeof METHOD_ORDER)[number], string> = {\n email: 'auth_email_enabled',\n google: 'auth_google_enabled',\n apple: 'auth_apple_enabled',\n solana: 'auth_solana_enabled',\n webauthn: 'auth_webauthn_enabled',\n sso: 'feature_sso',\n};\n\nfunction useUsersStats() {\n const { getStats } = useAdminUsers();\n const { fetchSettings, getValue } = useSystemSettings();\n const [stats, setStats] = useState<AdminUserStatsResponse | null>(null);\n const [isLoading, setIsLoading] = useState(false);\n const [error, setError] = useState<string | null>(null);\n const [settingsFetched, setSettingsFetched] = useState(false);\n\n useEffect(() => {\n if (!settingsFetched) {\n fetchSettings();\n setSettingsFetched(true);\n }\n }, [fetchSettings, settingsFetched]);\n\n const isSettingEnabled = useCallback(\n (key: string): boolean => {\n const value = getValue(key);\n if (value === undefined) return false;\n return value === 'true' || value === '1';\n },\n [getValue]\n );\n\n const fetchStats = useCallback(async () => {\n setIsLoading(true);\n setError(null);\n\n try {\n const result = await getStats();\n setStats(result);\n } catch (err) {\n setError(err instanceof Error ? err.message : 'Failed to load user stats');\n } finally {\n setIsLoading(false);\n }\n }, [getStats]);\n\n useEffect(() => {\n fetchStats();\n }, [fetchStats]);\n\n const statsItems = useMemo(() => {\n const items = [{ label: 'Total Users', value: stats?.total ?? '—' }];\n\n METHOD_ORDER.forEach((method) => {\n if (!isSettingEnabled(METHOD_SETTINGS[method])) return;\n items.push({\n label: METHOD_LABELS[method],\n value: stats?.authMethodCounts[method] ?? 0,\n });\n });\n\n return items;\n }, [stats, isSettingEnabled]);\n\n return { statsItems, isLoading, error, refresh: fetchStats };\n}\n\nexport default function UsersSection({\n pluginContext,\n pageSize = 20,\n}: AdminSectionProps): React.JSX.Element {\n const [selectedUser, setSelectedUser] = useState<AdminUser | null>(null);\n const { statsItems, isLoading, error, refresh } = useUsersStats();\n\n if (selectedUser) {\n return (\n <div className=\"cedros-dashboard__section\">\n <AdminUserDetail\n userId={selectedUser.id}\n onBack={() => setSelectedUser(null)}\n currentUserId={pluginContext.userId}\n />\n </div>\n );\n }\n\n return (\n <div className=\"cedros-dashboard__section\">\n <StatsBar stats={statsItems} isLoading={isLoading} onRefresh={refresh} />\n {error && <p className=\"cedros-admin-error-inline\">{error}</p>}\n <p className=\"cedros-dashboard__text-muted\">\n All registered users in the system. Requires system admin privileges.\n </p>\n <AdminUserList\n pageSize={pageSize}\n currentUserId={pluginContext.userId}\n onUserClick={(user) => setSelectedUser(user)}\n />\n </div>\n );\n}\n"],"names":["METHOD_ORDER","METHOD_LABELS","METHOD_SETTINGS","useUsersStats","getStats","useAdminUsers","fetchSettings","getValue","useSystemSettings","stats","setStats","useState","isLoading","setIsLoading","error","setError","settingsFetched","setSettingsFetched","useEffect","isSettingEnabled","useCallback","key","value","fetchStats","result","err","useMemo","items","method","UsersSection","pluginContext","pageSize","selectedUser","setSelectedUser","statsItems","refresh","jsx","AdminUserDetail","jsxs","StatsBar","AdminUserList","user"],"mappings":"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"}
1
+ {"version":3,"file":"UsersSection-BBhrPnJd.js","sources":["../src/admin/sections/UsersSection.tsx"],"sourcesContent":["/**\n * Users Section - Plugin wrapper\n *\n * Admin user management with list and detail views.\n */\n\nimport React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport type { AdminSectionProps } from '../types';\nimport { AdminUserList } from '../../components/admin/AdminUserList';\nimport { AdminUserDetail } from '../../components/admin/AdminUserDetail';\nimport { StatsBar } from '../../components/admin/StatsBar';\nimport { useAdminUsers } from '../../hooks/useAdminUsers';\nimport { useSystemSettings } from '../../hooks/useSystemSettings';\nimport type { AdminUser, AdminUserStatsResponse } from '../../types';\n\nconst METHOD_ORDER = ['email', 'google', 'apple', 'solana', 'webauthn', 'sso'] as const;\n\nconst METHOD_LABELS: Record<(typeof METHOD_ORDER)[number], string> = {\n email: 'Email Users',\n google: 'Google Users',\n apple: 'Apple Users',\n solana: 'Solana Users',\n webauthn: 'Passkey Users',\n sso: 'SSO Provider Users',\n};\n\nconst METHOD_SETTINGS: Record<(typeof METHOD_ORDER)[number], string> = {\n email: 'auth_email_enabled',\n google: 'auth_google_enabled',\n apple: 'auth_apple_enabled',\n solana: 'auth_solana_enabled',\n webauthn: 'auth_webauthn_enabled',\n sso: 'feature_sso',\n};\n\nfunction useUsersStats() {\n const { getStats } = useAdminUsers();\n const { fetchSettings, getValue } = useSystemSettings();\n const [stats, setStats] = useState<AdminUserStatsResponse | null>(null);\n const [isLoading, setIsLoading] = useState(false);\n const [error, setError] = useState<string | null>(null);\n const [settingsFetched, setSettingsFetched] = useState(false);\n\n useEffect(() => {\n if (!settingsFetched) {\n fetchSettings();\n setSettingsFetched(true);\n }\n }, [fetchSettings, settingsFetched]);\n\n const isSettingEnabled = useCallback(\n (key: string): boolean => {\n const value = getValue(key);\n if (value === undefined) return false;\n return value === 'true' || value === '1';\n },\n [getValue]\n );\n\n const fetchStats = useCallback(async () => {\n setIsLoading(true);\n setError(null);\n\n try {\n const result = await getStats();\n setStats(result);\n } catch (err) {\n setError(err instanceof Error ? err.message : 'Failed to load user stats');\n } finally {\n setIsLoading(false);\n }\n }, [getStats]);\n\n useEffect(() => {\n fetchStats();\n }, [fetchStats]);\n\n const statsItems = useMemo(() => {\n const items = [{ label: 'Total Users', value: stats?.total ?? '—' }];\n\n METHOD_ORDER.forEach((method) => {\n if (!isSettingEnabled(METHOD_SETTINGS[method])) return;\n items.push({\n label: METHOD_LABELS[method],\n value: stats?.authMethodCounts[method] ?? 0,\n });\n });\n\n return items;\n }, [stats, isSettingEnabled]);\n\n return { statsItems, isLoading, error, refresh: fetchStats };\n}\n\nexport default function UsersSection({\n pluginContext,\n pageSize = 20,\n}: AdminSectionProps): React.JSX.Element {\n const [selectedUser, setSelectedUser] = useState<AdminUser | null>(null);\n const { statsItems, isLoading, error, refresh } = useUsersStats();\n\n if (selectedUser) {\n return (\n <div className=\"cedros-dashboard__section\">\n <AdminUserDetail\n userId={selectedUser.id}\n onBack={() => setSelectedUser(null)}\n currentUserId={pluginContext.userId}\n />\n </div>\n );\n }\n\n return (\n <div className=\"cedros-dashboard__section\">\n <StatsBar stats={statsItems} isLoading={isLoading} onRefresh={refresh} />\n {error && <p className=\"cedros-admin-error-inline\">{error}</p>}\n <p className=\"cedros-dashboard__text-muted\">\n All registered users in the system. Requires system admin privileges.\n </p>\n <AdminUserList\n pageSize={pageSize}\n currentUserId={pluginContext.userId}\n onUserClick={(user) => setSelectedUser(user)}\n />\n </div>\n );\n}\n"],"names":["METHOD_ORDER","METHOD_LABELS","METHOD_SETTINGS","useUsersStats","getStats","useAdminUsers","fetchSettings","getValue","useSystemSettings","stats","setStats","useState","isLoading","setIsLoading","error","setError","settingsFetched","setSettingsFetched","useEffect","isSettingEnabled","useCallback","key","value","fetchStats","result","err","useMemo","items","method","UsersSection","pluginContext","pageSize","selectedUser","setSelectedUser","statsItems","refresh","jsx","AdminUserDetail","jsxs","StatsBar","AdminUserList","user"],"mappings":";;;AAeA,MAAMA,IAAe,CAAC,SAAS,UAAU,SAAS,UAAU,YAAY,KAAK,GAEvEC,IAA+D;AAAA,EACnE,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,KAAK;AACP,GAEMC,IAAiE;AAAA,EACrE,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,KAAK;AACP;AAEA,SAASC,IAAgB;AACvB,QAAM,EAAE,UAAAC,EAAA,IAAaC,EAAA,GACf,EAAE,eAAAC,GAAe,UAAAC,EAAA,IAAaC,EAAA,GAC9B,CAACC,GAAOC,CAAQ,IAAIC,EAAwC,IAAI,GAChE,CAACC,GAAWC,CAAY,IAAIF,EAAS,EAAK,GAC1C,CAACG,GAAOC,CAAQ,IAAIJ,EAAwB,IAAI,GAChD,CAACK,GAAiBC,CAAkB,IAAIN,EAAS,EAAK;AAE5D,EAAAO,EAAU,MAAM;AACd,IAAKF,MACHV,EAAA,GACAW,EAAmB,EAAI;AAAA,EAE3B,GAAG,CAACX,GAAeU,CAAe,CAAC;AAEnC,QAAMG,IAAmBC;AAAA,IACvB,CAACC,MAAyB;AACxB,YAAMC,IAAQf,EAASc,CAAG;AAC1B,aAAIC,MAAU,SAAkB,KACzBA,MAAU,UAAUA,MAAU;AAAA,IACvC;AAAA,IACA,CAACf,CAAQ;AAAA,EAAA,GAGLgB,IAAaH,EAAY,YAAY;AACzC,IAAAP,EAAa,EAAI,GACjBE,EAAS,IAAI;AAEb,QAAI;AACF,YAAMS,IAAS,MAAMpB,EAAA;AACrB,MAAAM,EAASc,CAAM;AAAA,IACjB,SAASC,GAAK;AACZ,MAAAV,EAASU,aAAe,QAAQA,EAAI,UAAU,2BAA2B;AAAA,IAC3E,UAAA;AACE,MAAAZ,EAAa,EAAK;AAAA,IACpB;AAAA,EACF,GAAG,CAACT,CAAQ,CAAC;AAEb,SAAAc,EAAU,MAAM;AACd,IAAAK,EAAA;AAAA,EACF,GAAG,CAACA,CAAU,CAAC,GAgBR,EAAE,YAdUG,EAAQ,MAAM;AAC/B,UAAMC,IAAQ,CAAC,EAAE,OAAO,eAAe,OAAOlB,GAAO,SAAS,KAAK;AAEnE,WAAAT,EAAa,QAAQ,CAAC4B,MAAW;AAC/B,MAAKT,EAAiBjB,EAAgB0B,CAAM,CAAC,KAC7CD,EAAM,KAAK;AAAA,QACT,OAAO1B,EAAc2B,CAAM;AAAA,QAC3B,OAAOnB,GAAO,iBAAiBmB,CAAM,KAAK;AAAA,MAAA,CAC3C;AAAA,IACH,CAAC,GAEMD;AAAA,EACT,GAAG,CAAClB,GAAOU,CAAgB,CAAC,GAEP,WAAAP,GAAW,OAAAE,GAAO,SAASS,EAAA;AAClD;AAEA,SAAwBM,EAAa;AAAA,EACnC,eAAAC;AAAA,EACA,UAAAC,IAAW;AACb,GAAyC;AACvC,QAAM,CAACC,GAAcC,CAAe,IAAItB,EAA2B,IAAI,GACjE,EAAE,YAAAuB,GAAY,WAAAtB,GAAW,OAAAE,GAAO,SAAAqB,EAAA,IAAYhC,EAAA;AAElD,SAAI6B,IAEA,gBAAAI,EAAC,OAAA,EAAI,WAAU,6BACb,UAAA,gBAAAA;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,QAAQL,EAAa;AAAA,MACrB,QAAQ,MAAMC,EAAgB,IAAI;AAAA,MAClC,eAAeH,EAAc;AAAA,IAAA;AAAA,EAAA,GAEjC,IAKF,gBAAAQ,EAAC,OAAA,EAAI,WAAU,6BACb,UAAA;AAAA,IAAA,gBAAAF,EAACG,GAAA,EAAS,OAAOL,GAAY,WAAAtB,GAAsB,WAAWuB,GAAS;AAAA,IACtErB,KAAS,gBAAAsB,EAAC,KAAA,EAAE,WAAU,6BAA6B,UAAAtB,GAAM;AAAA,IAC1D,gBAAAsB,EAAC,KAAA,EAAE,WAAU,gCAA+B,UAAA,yEAE5C;AAAA,IACA,gBAAAA;AAAA,MAACI;AAAA,MAAA;AAAA,QACC,UAAAT;AAAA,QACA,eAAeD,EAAc;AAAA,QAC7B,aAAa,CAACW,MAASR,EAAgBQ,CAAI;AAAA,MAAA;AAAA,IAAA;AAAA,EAC7C,GACF;AAEJ;"}
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),e=require("react"),u=require("./index-CCOKNxfU.cjs"),b=["email","google","apple","solana","webauthn","sso"],U={email:"Email Users",google:"Google Users",apple:"Apple Users",solana:"Solana Users",webauthn:"Passkey Users",sso:"SSO Provider Users"},p={email:"auth_email_enabled",google:"auth_google_enabled",apple:"auth_apple_enabled",solana:"auth_solana_enabled",webauthn:"auth_webauthn_enabled",sso:"feature_sso"};function E(){const{getStats:n}=u.useAdminUsers(),{fetchSettings:i,getValue:l}=u.useSystemSettings(),[r,d]=e.useState(null),[h,o]=e.useState(!1),[f,c]=e.useState(null),[m,_]=e.useState(!1);e.useEffect(()=>{m||(i(),_(!0))},[i,m]);const g=e.useCallback(s=>{const t=l(s);return t===void 0?!1:t==="true"||t==="1"},[l]),S=e.useCallback(async()=>{o(!0),c(null);try{const s=await n();d(s)}catch(s){c(s instanceof Error?s.message:"Failed to load user stats")}finally{o(!1)}},[n]);return e.useEffect(()=>{S()},[S]),{statsItems:e.useMemo(()=>{const s=[{label:"Total Users",value:r?.total??"—"}];return b.forEach(t=>{g(p[t])&&s.push({label:U[t],value:r?.authMethodCounts[t]??0})}),s},[r,g]),isLoading:h,error:f,refresh:S}}function I({pluginContext:n,pageSize:i=20}){const[l,r]=e.useState(null),{statsItems:d,isLoading:h,error:o,refresh:f}=E();return l?a.jsx("div",{className:"cedros-dashboard__section",children:a.jsx(u.AdminUserDetail,{userId:l.id,onBack:()=>r(null),currentUserId:n.userId})}):a.jsxs("div",{className:"cedros-dashboard__section",children:[a.jsx(u.StatsBar,{stats:d,isLoading:h,onRefresh:f}),o&&a.jsx("p",{className:"cedros-admin-error-inline",children:o}),a.jsx("p",{className:"cedros-dashboard__text-muted",children:"All registered users in the system. Requires system admin privileges."}),a.jsx(u.AdminUserList,{pageSize:i,currentUserId:n.userId,onUserClick:c=>r(c)})]})}exports.default=I;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),e=require("react"),u=require("./index-BZ4qOdeM.cjs"),b=["email","google","apple","solana","webauthn","sso"],U={email:"Email Users",google:"Google Users",apple:"Apple Users",solana:"Solana Users",webauthn:"Passkey Users",sso:"SSO Provider Users"},p={email:"auth_email_enabled",google:"auth_google_enabled",apple:"auth_apple_enabled",solana:"auth_solana_enabled",webauthn:"auth_webauthn_enabled",sso:"feature_sso"};function E(){const{getStats:n}=u.useAdminUsers(),{fetchSettings:i,getValue:l}=u.useSystemSettings(),[r,d]=e.useState(null),[h,o]=e.useState(!1),[f,c]=e.useState(null),[m,_]=e.useState(!1);e.useEffect(()=>{m||(i(),_(!0))},[i,m]);const g=e.useCallback(s=>{const t=l(s);return t===void 0?!1:t==="true"||t==="1"},[l]),S=e.useCallback(async()=>{o(!0),c(null);try{const s=await n();d(s)}catch(s){c(s instanceof Error?s.message:"Failed to load user stats")}finally{o(!1)}},[n]);return e.useEffect(()=>{S()},[S]),{statsItems:e.useMemo(()=>{const s=[{label:"Total Users",value:r?.total??"—"}];return b.forEach(t=>{g(p[t])&&s.push({label:U[t],value:r?.authMethodCounts[t]??0})}),s},[r,g]),isLoading:h,error:f,refresh:S}}function I({pluginContext:n,pageSize:i=20}){const[l,r]=e.useState(null),{statsItems:d,isLoading:h,error:o,refresh:f}=E();return l?a.jsx("div",{className:"cedros-dashboard__section",children:a.jsx(u.AdminUserDetail,{userId:l.id,onBack:()=>r(null),currentUserId:n.userId})}):a.jsxs("div",{className:"cedros-dashboard__section",children:[a.jsx(u.StatsBar,{stats:d,isLoading:h,onRefresh:f}),o&&a.jsx("p",{className:"cedros-admin-error-inline",children:o}),a.jsx("p",{className:"cedros-dashboard__text-muted",children:"All registered users in the system. Requires system admin privileges."}),a.jsx(u.AdminUserList,{pageSize:i,currentUserId:n.userId,onUserClick:c=>r(c)})]})}exports.default=I;
@@ -1 +1 @@
1
- {"version":3,"file":"UsersSection-DDfHW_ao.cjs","sources":["../src/admin/sections/UsersSection.tsx"],"sourcesContent":["/**\n * Users Section - Plugin wrapper\n *\n * Admin user management with list and detail views.\n */\n\nimport React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport type { AdminSectionProps } from '../types';\nimport { AdminUserList } from '../../components/admin/AdminUserList';\nimport { AdminUserDetail } from '../../components/admin/AdminUserDetail';\nimport { StatsBar } from '../../components/admin/StatsBar';\nimport { useAdminUsers } from '../../hooks/useAdminUsers';\nimport { useSystemSettings } from '../../hooks/useSystemSettings';\nimport type { AdminUser, AdminUserStatsResponse } from '../../types';\n\nconst METHOD_ORDER = ['email', 'google', 'apple', 'solana', 'webauthn', 'sso'] as const;\n\nconst METHOD_LABELS: Record<(typeof METHOD_ORDER)[number], string> = {\n email: 'Email Users',\n google: 'Google Users',\n apple: 'Apple Users',\n solana: 'Solana Users',\n webauthn: 'Passkey Users',\n sso: 'SSO Provider Users',\n};\n\nconst METHOD_SETTINGS: Record<(typeof METHOD_ORDER)[number], string> = {\n email: 'auth_email_enabled',\n google: 'auth_google_enabled',\n apple: 'auth_apple_enabled',\n solana: 'auth_solana_enabled',\n webauthn: 'auth_webauthn_enabled',\n sso: 'feature_sso',\n};\n\nfunction useUsersStats() {\n const { getStats } = useAdminUsers();\n const { fetchSettings, getValue } = useSystemSettings();\n const [stats, setStats] = useState<AdminUserStatsResponse | null>(null);\n const [isLoading, setIsLoading] = useState(false);\n const [error, setError] = useState<string | null>(null);\n const [settingsFetched, setSettingsFetched] = useState(false);\n\n useEffect(() => {\n if (!settingsFetched) {\n fetchSettings();\n setSettingsFetched(true);\n }\n }, [fetchSettings, settingsFetched]);\n\n const isSettingEnabled = useCallback(\n (key: string): boolean => {\n const value = getValue(key);\n if (value === undefined) return false;\n return value === 'true' || value === '1';\n },\n [getValue]\n );\n\n const fetchStats = useCallback(async () => {\n setIsLoading(true);\n setError(null);\n\n try {\n const result = await getStats();\n setStats(result);\n } catch (err) {\n setError(err instanceof Error ? err.message : 'Failed to load user stats');\n } finally {\n setIsLoading(false);\n }\n }, [getStats]);\n\n useEffect(() => {\n fetchStats();\n }, [fetchStats]);\n\n const statsItems = useMemo(() => {\n const items = [{ label: 'Total Users', value: stats?.total ?? '—' }];\n\n METHOD_ORDER.forEach((method) => {\n if (!isSettingEnabled(METHOD_SETTINGS[method])) return;\n items.push({\n label: METHOD_LABELS[method],\n value: stats?.authMethodCounts[method] ?? 0,\n });\n });\n\n return items;\n }, [stats, isSettingEnabled]);\n\n return { statsItems, isLoading, error, refresh: fetchStats };\n}\n\nexport default function UsersSection({\n pluginContext,\n pageSize = 20,\n}: AdminSectionProps): React.JSX.Element {\n const [selectedUser, setSelectedUser] = useState<AdminUser | null>(null);\n const { statsItems, isLoading, error, refresh } = useUsersStats();\n\n if (selectedUser) {\n return (\n <div className=\"cedros-dashboard__section\">\n <AdminUserDetail\n userId={selectedUser.id}\n onBack={() => setSelectedUser(null)}\n currentUserId={pluginContext.userId}\n />\n </div>\n );\n }\n\n return (\n <div className=\"cedros-dashboard__section\">\n <StatsBar stats={statsItems} isLoading={isLoading} onRefresh={refresh} />\n {error && <p className=\"cedros-admin-error-inline\">{error}</p>}\n <p className=\"cedros-dashboard__text-muted\">\n All registered users in the system. Requires system admin privileges.\n </p>\n <AdminUserList\n pageSize={pageSize}\n currentUserId={pluginContext.userId}\n onUserClick={(user) => setSelectedUser(user)}\n />\n </div>\n );\n}\n"],"names":["METHOD_ORDER","METHOD_LABELS","METHOD_SETTINGS","useUsersStats","getStats","useAdminUsers","fetchSettings","getValue","useSystemSettings","stats","setStats","useState","isLoading","setIsLoading","error","setError","settingsFetched","setSettingsFetched","useEffect","isSettingEnabled","useCallback","key","value","fetchStats","result","err","useMemo","items","method","UsersSection","pluginContext","pageSize","selectedUser","setSelectedUser","statsItems","refresh","jsx","AdminUserDetail","jsxs","StatsBar","AdminUserList","user"],"mappings":"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"}
1
+ {"version":3,"file":"UsersSection-D6Yau1tA.cjs","sources":["../src/admin/sections/UsersSection.tsx"],"sourcesContent":["/**\n * Users Section - Plugin wrapper\n *\n * Admin user management with list and detail views.\n */\n\nimport React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport type { AdminSectionProps } from '../types';\nimport { AdminUserList } from '../../components/admin/AdminUserList';\nimport { AdminUserDetail } from '../../components/admin/AdminUserDetail';\nimport { StatsBar } from '../../components/admin/StatsBar';\nimport { useAdminUsers } from '../../hooks/useAdminUsers';\nimport { useSystemSettings } from '../../hooks/useSystemSettings';\nimport type { AdminUser, AdminUserStatsResponse } from '../../types';\n\nconst METHOD_ORDER = ['email', 'google', 'apple', 'solana', 'webauthn', 'sso'] as const;\n\nconst METHOD_LABELS: Record<(typeof METHOD_ORDER)[number], string> = {\n email: 'Email Users',\n google: 'Google Users',\n apple: 'Apple Users',\n solana: 'Solana Users',\n webauthn: 'Passkey Users',\n sso: 'SSO Provider Users',\n};\n\nconst METHOD_SETTINGS: Record<(typeof METHOD_ORDER)[number], string> = {\n email: 'auth_email_enabled',\n google: 'auth_google_enabled',\n apple: 'auth_apple_enabled',\n solana: 'auth_solana_enabled',\n webauthn: 'auth_webauthn_enabled',\n sso: 'feature_sso',\n};\n\nfunction useUsersStats() {\n const { getStats } = useAdminUsers();\n const { fetchSettings, getValue } = useSystemSettings();\n const [stats, setStats] = useState<AdminUserStatsResponse | null>(null);\n const [isLoading, setIsLoading] = useState(false);\n const [error, setError] = useState<string | null>(null);\n const [settingsFetched, setSettingsFetched] = useState(false);\n\n useEffect(() => {\n if (!settingsFetched) {\n fetchSettings();\n setSettingsFetched(true);\n }\n }, [fetchSettings, settingsFetched]);\n\n const isSettingEnabled = useCallback(\n (key: string): boolean => {\n const value = getValue(key);\n if (value === undefined) return false;\n return value === 'true' || value === '1';\n },\n [getValue]\n );\n\n const fetchStats = useCallback(async () => {\n setIsLoading(true);\n setError(null);\n\n try {\n const result = await getStats();\n setStats(result);\n } catch (err) {\n setError(err instanceof Error ? err.message : 'Failed to load user stats');\n } finally {\n setIsLoading(false);\n }\n }, [getStats]);\n\n useEffect(() => {\n fetchStats();\n }, [fetchStats]);\n\n const statsItems = useMemo(() => {\n const items = [{ label: 'Total Users', value: stats?.total ?? '—' }];\n\n METHOD_ORDER.forEach((method) => {\n if (!isSettingEnabled(METHOD_SETTINGS[method])) return;\n items.push({\n label: METHOD_LABELS[method],\n value: stats?.authMethodCounts[method] ?? 0,\n });\n });\n\n return items;\n }, [stats, isSettingEnabled]);\n\n return { statsItems, isLoading, error, refresh: fetchStats };\n}\n\nexport default function UsersSection({\n pluginContext,\n pageSize = 20,\n}: AdminSectionProps): React.JSX.Element {\n const [selectedUser, setSelectedUser] = useState<AdminUser | null>(null);\n const { statsItems, isLoading, error, refresh } = useUsersStats();\n\n if (selectedUser) {\n return (\n <div className=\"cedros-dashboard__section\">\n <AdminUserDetail\n userId={selectedUser.id}\n onBack={() => setSelectedUser(null)}\n currentUserId={pluginContext.userId}\n />\n </div>\n );\n }\n\n return (\n <div className=\"cedros-dashboard__section\">\n <StatsBar stats={statsItems} isLoading={isLoading} onRefresh={refresh} />\n {error && <p className=\"cedros-admin-error-inline\">{error}</p>}\n <p className=\"cedros-dashboard__text-muted\">\n All registered users in the system. Requires system admin privileges.\n </p>\n <AdminUserList\n pageSize={pageSize}\n currentUserId={pluginContext.userId}\n onUserClick={(user) => setSelectedUser(user)}\n />\n </div>\n );\n}\n"],"names":["METHOD_ORDER","METHOD_LABELS","METHOD_SETTINGS","useUsersStats","getStats","useAdminUsers","fetchSettings","getValue","useSystemSettings","stats","setStats","useState","isLoading","setIsLoading","error","setError","settingsFetched","setSettingsFetched","useEffect","isSettingEnabled","useCallback","key","value","fetchStats","result","err","useMemo","items","method","UsersSection","pluginContext","pageSize","selectedUser","setSelectedUser","statsItems","refresh","jsx","AdminUserDetail","jsxs","StatsBar","AdminUserList","user"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { jsx as o } from "react/jsx-runtime";
2
2
  import "react";
3
- import { W as r } from "./index-Djb8LQZ6.js";
3
+ import { W as r } from "./index-CZYMYvkl.js";
4
4
  function a(t) {
5
5
  return /* @__PURE__ */ o("div", { className: "cedros-dashboard__section", children: /* @__PURE__ */ o(r, {}) });
6
6
  }