@cedros/login-react 0.0.5 → 0.0.6

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-CEVF1qTV.cjs → AuthenticationSettings-CDK8XCY-.cjs} +1 -1
  2. package/dist/{AuthenticationSettings-CEVF1qTV.cjs.map → AuthenticationSettings-CDK8XCY-.cjs.map} +1 -1
  3. package/dist/{AuthenticationSettings-BKvfIsUy.js → AuthenticationSettings-W4EnVUrv.js} +1 -1
  4. package/dist/{AuthenticationSettings-BKvfIsUy.js.map → AuthenticationSettings-W4EnVUrv.js.map} +1 -1
  5. package/dist/{CreditSystemSettings-BL7Lx9MI.js → CreditSystemSettings-BFBTeyl7.js} +1 -1
  6. package/dist/{CreditSystemSettings-BL7Lx9MI.js.map → CreditSystemSettings-BFBTeyl7.js.map} +1 -1
  7. package/dist/{CreditSystemSettings-CVxamkZ8.cjs → CreditSystemSettings-k5bOgfpj.cjs} +1 -1
  8. package/dist/{CreditSystemSettings-CVxamkZ8.cjs.map → CreditSystemSettings-k5bOgfpj.cjs.map} +1 -1
  9. package/dist/{DepositsSection-BzlzofEm.cjs → DepositsSection-9oW81ocN.cjs} +1 -1
  10. package/dist/{DepositsSection-BzlzofEm.cjs.map → DepositsSection-9oW81ocN.cjs.map} +1 -1
  11. package/dist/{DepositsSection-b-VfjqkR.js → DepositsSection-zsNaKqIa.js} +1 -1
  12. package/dist/{DepositsSection-b-VfjqkR.js.map → DepositsSection-zsNaKqIa.js.map} +1 -1
  13. package/dist/{EmailSettings-D2Y_T3ea.cjs → EmailSettings-CJ1jwoIw.cjs} +1 -1
  14. package/dist/{EmailSettings-D2Y_T3ea.cjs.map → EmailSettings-CJ1jwoIw.cjs.map} +1 -1
  15. package/dist/{EmailSettings-D4kz8cRX.js → EmailSettings-Cs3cKqWy.js} +1 -1
  16. package/dist/{EmailSettings-D4kz8cRX.js.map → EmailSettings-Cs3cKqWy.js.map} +1 -1
  17. package/dist/{EmbeddedWalletSettings-D8oqefzm.cjs → EmbeddedWalletSettings-5WhI_6cL.cjs} +1 -1
  18. package/dist/{EmbeddedWalletSettings-D8oqefzm.cjs.map → EmbeddedWalletSettings-5WhI_6cL.cjs.map} +1 -1
  19. package/dist/{EmbeddedWalletSettings-BAAnDY3_.js → EmbeddedWalletSettings-BKOvB3Qe.js} +1 -1
  20. package/dist/{EmbeddedWalletSettings-BAAnDY3_.js.map → EmbeddedWalletSettings-BKOvB3Qe.js.map} +1 -1
  21. package/dist/{ServerSettings-BRcS4sht.js → ServerSettings-BESj4UDB.js} +1 -1
  22. package/dist/{ServerSettings-BRcS4sht.js.map → ServerSettings-BESj4UDB.js.map} +1 -1
  23. package/dist/{ServerSettings-Yrumq_CL.cjs → ServerSettings-UCN7E8sg.cjs} +1 -1
  24. package/dist/{ServerSettings-Yrumq_CL.cjs.map → ServerSettings-UCN7E8sg.cjs.map} +1 -1
  25. package/dist/{TeamSection-Dec3HxDj.js → TeamSection-Dt8tPOYm.js} +51 -47
  26. package/dist/TeamSection-Dt8tPOYm.js.map +1 -0
  27. package/dist/TeamSection-msFD7Wb5.cjs +1 -0
  28. package/dist/TeamSection-msFD7Wb5.cjs.map +1 -0
  29. package/dist/{UsersSection-BImSsHRA.cjs → UsersSection-BAnirT1_.cjs} +1 -1
  30. package/dist/{UsersSection-BImSsHRA.cjs.map → UsersSection-BAnirT1_.cjs.map} +1 -1
  31. package/dist/{UsersSection-D1uLBhoF.js → UsersSection-PQVpL6Xo.js} +1 -1
  32. package/dist/{UsersSection-D1uLBhoF.js.map → UsersSection-PQVpL6Xo.js.map} +1 -1
  33. package/dist/{WebhookSettings-fOHCAQqx.cjs → WebhookSettings-BrrSXA0B.cjs} +1 -1
  34. package/dist/{WebhookSettings-fOHCAQqx.cjs.map → WebhookSettings-BrrSXA0B.cjs.map} +1 -1
  35. package/dist/{WebhookSettings-BD-PNXDX.js → WebhookSettings-eM6U9nOU.js} +1 -1
  36. package/dist/{WebhookSettings-BD-PNXDX.js.map → WebhookSettings-eM6U9nOU.js.map} +1 -1
  37. package/dist/{WithdrawalsSection-CLlPpKHf.js → WithdrawalsSection-BGmLLoUa.js} +1 -1
  38. package/dist/{WithdrawalsSection-CLlPpKHf.js.map → WithdrawalsSection-BGmLLoUa.js.map} +1 -1
  39. package/dist/{WithdrawalsSection-_7gHudQ8.cjs → WithdrawalsSection-C0fFwIbu.cjs} +1 -1
  40. package/dist/{WithdrawalsSection-_7gHudQ8.cjs.map → WithdrawalsSection-C0fFwIbu.cjs.map} +1 -1
  41. package/dist/{index-BRvCMGd5.js → index-D1Ex6YTc.js} +2 -2
  42. package/dist/index-D1Ex6YTc.js.map +1 -0
  43. package/dist/{index-Ca3FT7KM.cjs → index-tTVUl19s.cjs} +1 -1
  44. package/dist/index-tTVUl19s.cjs.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-BgFEYBD7.cjs +0 -1
  49. package/dist/TeamSection-BgFEYBD7.cjs.map +0 -1
  50. package/dist/TeamSection-Dec3HxDj.js.map +0 -1
  51. package/dist/index-BRvCMGd5.js.map +0 -1
  52. package/dist/index-Ca3FT7KM.cjs.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-Ca3FT7KM.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-tTVUl19s.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-CEVF1qTV.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-CDK8XCY-.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-BRvCMGd5.js";
3
+ import { m as i } from "./index-D1Ex6YTc.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-BKvfIsUy.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-W4EnVUrv.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,6 +1,6 @@
1
1
  import { jsx as t } from "react/jsx-runtime";
2
2
  import "react";
3
- import { C as r } from "./index-BRvCMGd5.js";
3
+ import { C as r } from "./index-D1Ex6YTc.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-BL7Lx9MI.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-BFBTeyl7.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 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime");require("react");const t=require("./index-Ca3FT7KM.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-tTVUl19s.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-CVxamkZ8.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-k5bOgfpj.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 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),o=require("react"),i=require("./index-Ca3FT7KM.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-tTVUl19s.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-BzlzofEm.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-9oW81ocN.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 { 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-BRvCMGd5.js";
3
+ import { g as r, h as n } from "./index-D1Ex6YTc.js";
4
4
  function u({
5
5
  pageSize: d = 20,
6
6
  refreshInterval: s = 0
@@ -1 +1 @@
1
- {"version":3,"file":"DepositsSection-b-VfjqkR.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-zsNaKqIa.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");require("react");const t=require("./index-Ca3FT7KM.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-tTVUl19s.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-D2Y_T3ea.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-CJ1jwoIw.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 r } from "react/jsx-runtime";
2
2
  import "react";
3
- import { n as t } from "./index-BRvCMGd5.js";
3
+ import { n as t } from "./index-D1Ex6YTc.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-D4kz8cRX.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-Cs3cKqWy.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-Ca3FT7KM.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-tTVUl19s.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-D8oqefzm.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-5WhI_6cL.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 e } from "react/jsx-runtime";
2
2
  import "react";
3
- import { E as t } from "./index-BRvCMGd5.js";
3
+ import { E as t } from "./index-D1Ex6YTc.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-BAAnDY3_.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-BKOvB3Qe.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,6 +1,6 @@
1
1
  import { jsx as r } from "react/jsx-runtime";
2
2
  import "react";
3
- import { o as e } from "./index-BRvCMGd5.js";
3
+ import { o as e } from "./index-D1Ex6YTc.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-BRcS4sht.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-BESj4UDB.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-Ca3FT7KM.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-tTVUl19s.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-Yrumq_CL.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-UCN7E8sg.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,49 +1,53 @@
1
- import { jsx as e, jsxs as a } from "react/jsx-runtime";
2
- import { useState as $, useEffect as k, useMemo as x } from "react";
3
- import { c as E, d as O, e as T, S as j, M as A, I as U, f as z, P as B } from "./index-BRvCMGd5.js";
4
- function G({ pluginContext: I }) {
5
- const [s, r] = $("members"), { activeOrg: n, hasPermission: i, role: o } = E(), {
6
- members: t,
7
- isLoading: N,
8
- error: f,
1
+ import { jsx as e, jsxs as n } from "react/jsx-runtime";
2
+ import { useState as x, useEffect as f, useMemo as E } from "react";
3
+ import { c as T, d as j, e as A, S as U, M as z, I as B, f as F, P as q } from "./index-D1Ex6YTc.js";
4
+ function J({ pluginContext: I }) {
5
+ const [s, r] = x("members"), { activeOrg: a, orgs: N, hasPermission: i, role: t, fetchOrgs: C } = T();
6
+ f(() => {
7
+ N.length === 0 && C();
8
+ }, []);
9
+ const {
10
+ members: o,
11
+ isLoading: M,
12
+ error: L,
9
13
  fetchMembers: b,
10
- updateMemberRole: C,
11
- removeMember: M
12
- } = O(n?.id ?? ""), {
14
+ updateMemberRole: S,
15
+ removeMember: P
16
+ } = j(a?.id ?? ""), {
13
17
  invites: v,
14
18
  isLoading: u,
15
19
  error: h,
16
20
  fetchInvites: g,
17
- createInvite: L,
18
- cancelInvite: S,
19
- resendInvite: P
20
- } = T(n?.id ?? "");
21
- k(() => {
22
- n?.id && (b(), g());
23
- }, [n?.id, b, g]);
24
- const d = x(
25
- () => t.reduce(
21
+ createInvite: R,
22
+ cancelInvite: w,
23
+ resendInvite: y
24
+ } = A(a?.id ?? "");
25
+ f(() => {
26
+ a?.id && (b(), g());
27
+ }, [a?.id, b, g]);
28
+ const d = E(
29
+ () => o.reduce(
26
30
  (l, p) => (l[p.role] = (l[p.role] ?? 0) + 1, l),
27
31
  {}
28
32
  ),
29
- [t]
33
+ [o]
30
34
  );
31
- if (!n)
35
+ if (!a)
32
36
  return /* @__PURE__ */ e("div", { className: "cedros-dashboard__section", children: /* @__PURE__ */ e("div", { className: "cedros-dashboard__empty", children: "Select an organization to manage team members." }) });
33
- const c = i("invite:create"), _ = i("invite:cancel"), m = v.length, R = d.owner ?? 0, w = d.admin ?? 0, y = d.member ?? 0;
34
- return /* @__PURE__ */ a("div", { className: "cedros-dashboard__team", children: [
37
+ const c = i("invite:create"), _ = i("invite:cancel"), m = v.length, O = d.owner ?? 0, $ = d.admin ?? 0, k = d.member ?? 0;
38
+ return /* @__PURE__ */ n("div", { className: "cedros-dashboard__team", children: [
35
39
  /* @__PURE__ */ e(
36
- j,
40
+ U,
37
41
  {
38
42
  stats: [
39
- { label: "Owners", value: R },
40
- { label: "Admins", value: w },
41
- { label: "Members", value: y },
43
+ { label: "Owners", value: O },
44
+ { label: "Admins", value: $ },
45
+ { label: "Members", value: k },
42
46
  { label: "Pending Invites", value: m }
43
47
  ]
44
48
  }
45
49
  ),
46
- /* @__PURE__ */ a("div", { className: "cedros-admin-tabs cedros-admin-tabs--line", children: [
50
+ /* @__PURE__ */ n("div", { className: "cedros-admin-tabs cedros-admin-tabs--line", children: [
47
51
  /* @__PURE__ */ e(
48
52
  "button",
49
53
  {
@@ -55,7 +59,7 @@ function G({ pluginContext: I }) {
55
59
  children: "Members"
56
60
  }
57
61
  ),
58
- /* @__PURE__ */ a(
62
+ /* @__PURE__ */ n(
59
63
  "button",
60
64
  {
61
65
  type: "button",
@@ -69,7 +73,7 @@ function G({ pluginContext: I }) {
69
73
  ]
70
74
  }
71
75
  ),
72
- o === "owner" && /* @__PURE__ */ e(
76
+ t === "owner" && /* @__PURE__ */ e(
73
77
  "button",
74
78
  {
75
79
  type: "button",
@@ -81,48 +85,48 @@ function G({ pluginContext: I }) {
81
85
  }
82
86
  )
83
87
  ] }),
84
- /* @__PURE__ */ a("div", { className: "cedros-admin-tab-content", role: "tabpanel", children: [
88
+ /* @__PURE__ */ n("div", { className: "cedros-admin-tab-content", role: "tabpanel", children: [
85
89
  s === "members" && /* @__PURE__ */ e(
86
- A,
90
+ z,
87
91
  {
88
- members: t,
92
+ members: o,
89
93
  currentUserId: I.userId,
90
- isLoading: N,
91
- error: f?.message,
94
+ isLoading: M,
95
+ error: L?.message,
92
96
  canManage: i("member:remove"),
93
97
  canChangeRoles: i("member:role_change"),
94
- onUpdateRole: C,
95
- onRemove: M
98
+ onUpdateRole: S,
99
+ onRemove: P
96
100
  }
97
101
  ),
98
- s === "invites" && /* @__PURE__ */ a("div", { className: "cedros-dashboard__invites", children: [
99
- c && /* @__PURE__ */ a("div", { className: "cedros-dashboard__section", children: [
102
+ s === "invites" && /* @__PURE__ */ n("div", { className: "cedros-dashboard__invites", children: [
103
+ c && /* @__PURE__ */ n("div", { className: "cedros-dashboard__section", children: [
100
104
  /* @__PURE__ */ e("div", { className: "cedros-dashboard__section-header", children: /* @__PURE__ */ e("h3", { className: "cedros-dashboard__section-title", children: "Send Invitation" }) }),
101
105
  /* @__PURE__ */ e(
102
- U,
106
+ B,
103
107
  {
104
- onSubmit: L,
108
+ onSubmit: R,
105
109
  isLoading: u,
106
110
  error: h?.message
107
111
  }
108
112
  )
109
113
  ] }),
110
114
  /* @__PURE__ */ e("div", { className: "cedros-dashboard__section", children: /* @__PURE__ */ e(
111
- z,
115
+ F,
112
116
  {
113
117
  invites: v,
114
118
  isLoading: u,
115
119
  error: h?.message,
116
120
  canManage: _ || c,
117
- onCancel: _ ? S : void 0,
118
- onResend: c ? P : void 0
121
+ onCancel: _ ? w : void 0,
122
+ onResend: c ? y : void 0
119
123
  }
120
124
  ) })
121
125
  ] }),
122
- s === "permissions" && o === "owner" && /* @__PURE__ */ e(B, { userRole: o })
126
+ s === "permissions" && t === "owner" && /* @__PURE__ */ e(q, { userRole: t })
123
127
  ] })
124
128
  ] });
125
129
  }
126
130
  export {
127
- G as default
131
+ J as default
128
132
  };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TeamSection-Dt8tPOYm.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, { useEffect, useMemo, useState } 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, orgs, hasPermission, role, fetchOrgs } = useOrgs();\n\n // Auto-fetch orgs on mount so activeOrg gets auto-selected\n useEffect(() => {\n if (orgs.length === 0) {\n fetchOrgs();\n }\n }, []); // eslint-disable-line react-hooks/exhaustive-deps\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 (!activeOrg) {\n return (\n <div className=\"cedros-dashboard__section\">\n <div className=\"cedros-dashboard__empty\">\n Select an organization to manage team members.\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","orgs","hasPermission","role","fetchOrgs","useOrgs","useEffect","members","membersLoading","membersError","fetchMembers","updateMemberRole","removeMember","useMembers","invites","invitesLoading","invitesError","fetchInvites","createInvite","cancelInvite","resendInvite","useInvites","roleCounts","useMemo","acc","member","jsx","canInvite","canCancel","pendingCount","ownerCount","adminCount","memberCount","jsxs","StatsBar","MemberList","InviteForm","InviteList","PermissionsSection"],"mappings":";;;AAmBA,SAAwBA,EAAY,EAAE,eAAAC,KAAuD;AAC3F,QAAM,CAACC,GAAWC,CAAY,IAAIC,EAAkB,SAAS,GACvD,EAAE,WAAAC,GAAW,MAAAC,GAAM,eAAAC,GAAe,MAAAC,GAAM,WAAAC,EAAA,IAAcC,EAAA;AAG5D,EAAAC,EAAU,MAAM;AACd,IAAIL,EAAK,WAAW,KAClBG,EAAA;AAAA,EAEJ,GAAG,CAAA,CAAE;AAEL,QAAM;AAAA,IACJ,SAAAG;AAAA,IACA,WAAWC;AAAA,IACX,OAAOC;AAAA,IACP,cAAAC;AAAA,IACA,kBAAAC;AAAA,IACA,cAAAC;AAAA,EAAA,IACEC,EAAWb,GAAW,MAAM,EAAE,GAC5B;AAAA,IACJ,SAAAc;AAAA,IACA,WAAWC;AAAA,IACX,OAAOC;AAAA,IACP,cAAAC;AAAA,IACA,cAAAC;AAAA,IACA,cAAAC;AAAA,IACA,cAAAC;AAAA,EAAA,IACEC,EAAWrB,GAAW,MAAM,EAAE;AAElC,EAAAM,EAAU,MAAM;AACd,IAAIN,GAAW,OACbU,EAAA,GACAO,EAAA;AAAA,EAEJ,GAAG,CAACjB,GAAW,IAAIU,GAAcO,CAAY,CAAC;AAG9C,QAAMK,IAAaC;AAAA,IACjB,MACEhB,EAAQ;AAAA,MACN,CAACiB,GAAKC,OACJD,EAAIC,EAAO,IAAI,KAAKD,EAAIC,EAAO,IAAI,KAAK,KAAK,GACtCD;AAAA,MAET,CAAA;AAAA,IAAC;AAAA,IAEL,CAACjB,CAAO;AAAA,EAAA;AAGV,MAAI,CAACP;AACH,WACE,gBAAA0B,EAAC,SAAI,WAAU,6BACb,4BAAC,OAAA,EAAI,WAAU,2BAA0B,UAAA,iDAAA,CAEzC,EAAA,CACF;AAIJ,QAAMC,IAAYzB,EAAc,eAAe,GACzC0B,IAAY1B,EAAc,eAAe,GACzC2B,IAAef,EAAQ,QACvBgB,IAAaR,EAAW,SAAS,GACjCS,IAAaT,EAAW,SAAS,GACjCU,IAAcV,EAAW,UAAU;AAEzC,SACE,gBAAAW,EAAC,OAAA,EAAI,WAAU,0BACb,UAAA;AAAA,IAAA,gBAAAP;AAAA,MAACQ;AAAA,MAAA;AAAA,QACC,OAAO;AAAA,UACL,EAAE,OAAO,UAAU,OAAOJ,EAAA;AAAA,UAC1B,EAAE,OAAO,UAAU,OAAOC,EAAA;AAAA,UAC1B,EAAE,OAAO,WAAW,OAAOC,EAAA;AAAA,UAC3B,EAAE,OAAO,mBAAmB,OAAOH,EAAA;AAAA,QAAa;AAAA,MAClD;AAAA,IAAA;AAAA,IAGF,gBAAAI,EAAC,OAAA,EAAI,WAAU,6CACb,UAAA;AAAA,MAAA,gBAAAP;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,MAAK;AAAA,UACL,WAAW,oBAAoB7B,MAAc,YAAY,4BAA4B,EAAE;AAAA,UACvF,SAAS,MAAMC,EAAa,SAAS;AAAA,UACrC,iBAAeD,MAAc;AAAA,UAC7B,MAAK;AAAA,UACN,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,MAGD,gBAAAoC;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,MAAK;AAAA,UACL,WAAW,oBAAoBpC,MAAc,YAAY,4BAA4B,EAAE;AAAA,UACvF,SAAS,MAAMC,EAAa,SAAS;AAAA,UACrC,iBAAeD,MAAc;AAAA,UAC7B,MAAK;AAAA,UACN,UAAA;AAAA,YAAA;AAAA,YACiBgC,IAAe,KAAK,KAAKA,CAAY;AAAA,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,MAEtD1B,MAAS,WACR,gBAAAuB;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,MAAK;AAAA,UACL,WAAW,oBAAoB7B,MAAc,gBAAgB,4BAA4B,EAAE;AAAA,UAC3F,SAAS,MAAMC,EAAa,aAAa;AAAA,UACzC,iBAAeD,MAAc;AAAA,UAC7B,MAAK;AAAA,UACN,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IAED,GAEJ;AAAA,IAGA,gBAAAoC,EAAC,OAAA,EAAI,WAAU,4BAA2B,MAAK,YAC5C,UAAA;AAAA,MAAApC,MAAc,aACb,gBAAA6B;AAAA,QAACS;AAAA,QAAA;AAAA,UACC,SAAA5B;AAAA,UACA,eAAeX,EAAc;AAAA,UAC7B,WAAWY;AAAA,UACX,OAAOC,GAAc;AAAA,UACrB,WAAWP,EAAc,eAAe;AAAA,UACxC,gBAAgBA,EAAc,oBAAoB;AAAA,UAClD,cAAcS;AAAA,UACd,UAAUC;AAAA,QAAA;AAAA,MAAA;AAAA,MAIbf,MAAc,aACb,gBAAAoC,EAAC,OAAA,EAAI,WAAU,6BACZ,UAAA;AAAA,QAAAN,KACC,gBAAAM,EAAC,OAAA,EAAI,WAAU,6BACb,UAAA;AAAA,UAAA,gBAAAP,EAAC,OAAA,EAAI,WAAU,oCACb,UAAA,gBAAAA,EAAC,QAAG,WAAU,mCAAkC,6BAAe,EAAA,CACjE;AAAA,UACA,gBAAAA;AAAA,YAACU;AAAA,YAAA;AAAA,cACC,UAAUlB;AAAA,cACV,WAAWH;AAAA,cACX,OAAOC,GAAc;AAAA,YAAA;AAAA,UAAA;AAAA,QACvB,GACF;AAAA,QAGF,gBAAAU,EAAC,OAAA,EAAI,WAAU,6BACb,UAAA,gBAAAA;AAAA,UAACW;AAAA,UAAA;AAAA,YACC,SAAAvB;AAAA,YACA,WAAWC;AAAA,YACX,OAAOC,GAAc;AAAA,YACrB,WAAWY,KAAaD;AAAA,YACxB,UAAUC,IAAYT,IAAe;AAAA,YACrC,UAAUQ,IAAYP,IAAe;AAAA,UAAA;AAAA,QAAA,EACvC,CACF;AAAA,MAAA,GACF;AAAA,MAGDvB,MAAc,iBAAiBM,MAAS,WAAW,gBAAAuB,EAACY,GAAA,EAAmB,UAAUnC,EAAA,CAAM;AAAA,IAAA,EAAA,CAC1F;AAAA,EAAA,GACF;AAEJ;"}
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),a=require("react"),n=require("./index-tTVUl19s.cjs");function E({pluginContext:f}){const[s,t]=a.useState("members"),{activeOrg:i,orgs:p,hasPermission:r,role:o,fetchOrgs:I}=n.useOrgs();a.useEffect(()=>{p.length===0&&I()},[]);const{members:c,isLoading:N,error:C,fetchMembers:v,updateMemberRole:M,removeMember:L}=n.useMembers(i?.id??""),{invites:u,isLoading:h,error:g,fetchInvites:j,createInvite:S,cancelInvite:R,resendInvite:y}=n.useInvites(i?.id??"");a.useEffect(()=>{i?.id&&(v(),j())},[i?.id,v,j]);const d=a.useMemo(()=>c.reduce((b,_)=>(b[_.role]=(b[_.role]??0)+1,b),{}),[c]);if(!i)return e.jsx("div",{className:"cedros-dashboard__section",children:e.jsx("div",{className:"cedros-dashboard__empty",children:"Select an organization to manage team members."})});const m=r("invite:create"),x=r("invite:cancel"),l=u.length,P=d.owner??0,w=d.admin??0,O=d.member??0;return e.jsxs("div",{className:"cedros-dashboard__team",children:[e.jsx(n.StatsBar,{stats:[{label:"Owners",value:P},{label:"Admins",value:w},{label:"Members",value:O},{label:"Pending Invites",value:l}]}),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:()=>t("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:()=>t("invites"),"aria-selected":s==="invites",role:"tab",children:["Pending Invites",l>0&&` (${l})`]}),o==="owner"&&e.jsx("button",{type:"button",className:`cedros-admin-tab ${s==="permissions"?"cedros-admin-tab-active":""}`,onClick:()=>t("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:c,currentUserId:f.userId,isLoading:N,error:C?.message,canManage:r("member:remove"),canChangeRoles:r("member:role_change"),onUpdateRole:M,onRemove:L}),s==="invites"&&e.jsxs("div",{className:"cedros-dashboard__invites",children:[m&&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:S,isLoading:h,error:g?.message})]}),e.jsx("div",{className:"cedros-dashboard__section",children:e.jsx(n.InviteList,{invites:u,isLoading:h,error:g?.message,canManage:x||m,onCancel:x?R:void 0,onResend:m?y:void 0})})]}),s==="permissions"&&o==="owner"&&e.jsx(n.PermissionsSection,{userRole:o})]})]})}exports.default=E;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TeamSection-msFD7Wb5.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, { useEffect, useMemo, useState } 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, orgs, hasPermission, role, fetchOrgs } = useOrgs();\n\n // Auto-fetch orgs on mount so activeOrg gets auto-selected\n useEffect(() => {\n if (orgs.length === 0) {\n fetchOrgs();\n }\n }, []); // eslint-disable-line react-hooks/exhaustive-deps\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 (!activeOrg) {\n return (\n <div className=\"cedros-dashboard__section\">\n <div className=\"cedros-dashboard__empty\">\n Select an organization to manage team members.\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","orgs","hasPermission","role","fetchOrgs","useOrgs","useEffect","members","membersLoading","membersError","fetchMembers","updateMemberRole","removeMember","useMembers","invites","invitesLoading","invitesError","fetchInvites","createInvite","cancelInvite","resendInvite","useInvites","roleCounts","useMemo","acc","member","jsx","canInvite","canCancel","pendingCount","ownerCount","adminCount","memberCount","jsxs","StatsBar","MemberList","InviteForm","InviteList","PermissionsSection"],"mappings":"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"}
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),e=require("react"),u=require("./index-Ca3FT7KM.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-tTVUl19s.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-BImSsHRA.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-BAnirT1_.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 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-BRvCMGd5.js";
3
+ import { A as E, S as I, a as v, u as y, b as A } from "./index-D1Ex6YTc.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-D1uLBhoF.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-PQVpL6Xo.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 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime");require("react");const t=require("./index-Ca3FT7KM.cjs");function r(o){return e.jsx("div",{className:"cedros-dashboard__section",children:e.jsx(t.WebhookSettings,{})})}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-tTVUl19s.cjs");function r(o){return e.jsx("div",{className:"cedros-dashboard__section",children:e.jsx(t.WebhookSettings,{})})}exports.default=r;
@@ -1 +1 @@
1
- {"version":3,"file":"WebhookSettings-fOHCAQqx.cjs","sources":["../src/admin/sections/WebhookSettings.tsx"],"sourcesContent":["/**\n * Webhook Settings Section - Plugin wrapper\n */\n\nimport React from 'react';\nimport type { AdminSectionProps } from '../types';\nimport { WebhookSettings as Settings } from '../../components/admin/settings';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport default function WebhookSettings(_props: AdminSectionProps): React.JSX.Element {\n return (\n <div className=\"cedros-dashboard__section\">\n <Settings />\n </div>\n );\n}\n"],"names":["WebhookSettings","_props","jsx","Settings"],"mappings":"8KASA,SAAwBA,EAAgBC,EAA8C,CACpF,aACG,MAAA,CAAI,UAAU,4BACb,SAAAC,MAACC,EAAAA,kBAAS,EACZ,CAEJ"}
1
+ {"version":3,"file":"WebhookSettings-BrrSXA0B.cjs","sources":["../src/admin/sections/WebhookSettings.tsx"],"sourcesContent":["/**\n * Webhook Settings Section - Plugin wrapper\n */\n\nimport React from 'react';\nimport type { AdminSectionProps } from '../types';\nimport { WebhookSettings as Settings } from '../../components/admin/settings';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport default function WebhookSettings(_props: AdminSectionProps): React.JSX.Element {\n return (\n <div className=\"cedros-dashboard__section\">\n <Settings />\n </div>\n );\n}\n"],"names":["WebhookSettings","_props","jsx","Settings"],"mappings":"8KASA,SAAwBA,EAAgBC,EAA8C,CACpF,aACG,MAAA,CAAI,UAAU,4BACb,SAAAC,MAACC,EAAAA,kBAAS,EACZ,CAEJ"}
@@ -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-BRvCMGd5.js";
3
+ import { W as r } from "./index-D1Ex6YTc.js";
4
4
  function a(t) {
5
5
  return /* @__PURE__ */ o("div", { className: "cedros-dashboard__section", children: /* @__PURE__ */ o(r, {}) });
6
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"WebhookSettings-BD-PNXDX.js","sources":["../src/admin/sections/WebhookSettings.tsx"],"sourcesContent":["/**\n * Webhook Settings Section - Plugin wrapper\n */\n\nimport React from 'react';\nimport type { AdminSectionProps } from '../types';\nimport { WebhookSettings as Settings } from '../../components/admin/settings';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport default function WebhookSettings(_props: AdminSectionProps): React.JSX.Element {\n return (\n <div className=\"cedros-dashboard__section\">\n <Settings />\n </div>\n );\n}\n"],"names":["WebhookSettings","_props","jsx","Settings"],"mappings":";;;AASA,SAAwBA,EAAgBC,GAA8C;AACpF,2BACG,OAAA,EAAI,WAAU,6BACb,UAAA,gBAAAC,EAACC,KAAS,GACZ;AAEJ;"}
1
+ {"version":3,"file":"WebhookSettings-eM6U9nOU.js","sources":["../src/admin/sections/WebhookSettings.tsx"],"sourcesContent":["/**\n * Webhook Settings Section - Plugin wrapper\n */\n\nimport React from 'react';\nimport type { AdminSectionProps } from '../types';\nimport { WebhookSettings as Settings } from '../../components/admin/settings';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport default function WebhookSettings(_props: AdminSectionProps): React.JSX.Element {\n return (\n <div className=\"cedros-dashboard__section\">\n <Settings />\n </div>\n );\n}\n"],"names":["WebhookSettings","_props","jsx","Settings"],"mappings":";;;AASA,SAAwBA,EAAgBC,GAA8C;AACpF,2BACG,OAAA,EAAI,WAAU,6BACb,UAAA,gBAAAC,EAACC,KAAS,GACZ;AAEJ;"}