@adonis-agora/authkit-server 0.57.1 → 0.58.1

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 (31) hide show
  1. package/build/index.d.ts +2 -2
  2. package/build/index.js +1 -1
  3. package/build/providers/authkit_server_provider.d.ts +1 -12
  4. package/build/providers/authkit_server_provider.js +13 -0
  5. package/build/src/audit/audit_sink.d.ts +11 -2
  6. package/build/src/audit/audit_sink.js +104 -1
  7. package/build/src/define_config.d.ts +36 -1
  8. package/build/src/define_config.js +3 -0
  9. package/build/src/doctor/checks.d.ts +10 -0
  10. package/build/src/doctor/checks.js +38 -0
  11. package/build/src/host/admin_api/admin_orgs_service.d.ts +9 -2
  12. package/build/src/host/admin_api/admin_orgs_service.js +29 -16
  13. package/build/src/host/admin_api/api_orgs_controller.js +1 -1
  14. package/build/src/host/admin_api/dto.d.ts +1 -1
  15. package/build/src/host/admin_console/console_impersonation_controller.js +37 -3
  16. package/build/src/host/admin_console/console_orgs_controller.js +1 -1
  17. package/build/src/host/branding.d.ts +19 -0
  18. package/build/src/host/branding.js +25 -0
  19. package/build/src/host/controllers/account_orgs_controller.js +21 -14
  20. package/build/src/host/default_mailer.d.ts +21 -0
  21. package/build/src/host/default_mailer.js +41 -0
  22. package/build/src/host/i18n.d.ts +10 -0
  23. package/build/src/host/i18n.js +15 -2
  24. package/build/src/host/impersonation.d.ts +23 -2
  25. package/build/src/host/impersonation.js +21 -5
  26. package/build/src/host/ui-dist/assets/{index-pAbBjdHC.js → index-6cE5JMyP.js} +1 -1
  27. package/build/src/host/ui-dist/index.html +1 -1
  28. package/build/src/observability/telescope/data_providers.js +4 -1
  29. package/build/src/provider/oidc_service.js +18 -6
  30. package/build/types.d.ts +21 -1
  31. package/package.json +6 -6
@@ -152,4 +152,4 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
152
152
  In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function pR(e,t){if(e){if(typeof e==`string`)return mR(e,t);var n={}.toString.call(e).slice(8,-1);return n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`?Array.from(e):n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?mR(e,t):void 0}}function mR(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function hR(e,t){var n=e==null?null:typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`];if(n!=null){var r,i,a,o,s=[],c=!0,l=!1;try{if(a=(n=n.call(e)).next,t===0){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=a.call(n)).done)&&(s.push(r.value),s.length!==t);c=!0);}catch(e){l=!0,i=e}finally{try{if(!c&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(l)throw i}}return s}}function gR(e){if(Array.isArray(e))return e}var _R=(0,B.createContext)(void 0),vR=e=>{var t=e.children,n=dR((0,B.useState)(`${qu(`recharts`)}-clip`),1)[0],r=qL();if(r==null)return null;var i=r.x,a=r.y,o=r.width,s=r.height;return B.createElement(_R.Provider,{value:n},B.createElement(`defs`,null,B.createElement(`clipPath`,{id:n},B.createElement(`rect`,{x:i,y:a,height:s,width:o}))),t)};function yR(e,t){if(t<1)return[];if(t===1)return e;for(var n=[],r=0;r<e.length;r+=t){var i=e[r];i!==void 0&&n.push(i)}return n}function bR(e,t,n){return sR({width:e.width+t.width,height:e.height+t.height},n)}function xR(e,t,n){var r=n===`width`,i=e.x,a=e.y,o=e.width,s=e.height;return t===1?{start:r?i:a,end:r?i+o:a+s}:{start:r?i+o:a+s,end:r?i:a}}function SR(e,t,n,r,i){if(e*t<e*r||e*t>e*i)return!1;var a=n();return e*(t-e*a/2-r)>=0&&e*(t+e*a/2-i)<=0}function CR(e,t){return yR(e,t+1)}function wR(e,t,n,r,i){for(var a=(r||[]).slice(),o=t.start,s=t.end,c=0,l=1,u=o,d=function(){var t=r?.[c];if(t===void 0)return{v:yR(r,l)};var a=c,d,f=()=>(d===void 0&&(d=n(t,a)),d),p=t.coordinate,m=c===0||SR(e,p,f,u,s);m||(c=0,u=o,l+=1),m&&(u=p+e*(f()/2+i),c+=l)},f;l<=a.length;)if(f=d(),f)return f.v;return[]}function TR(e,t,n,r,i){var a=(r||[]).slice().length;if(a===0)return[];for(var o=t.start,s=t.end,c=1;c<=a;c++){for(var l=(a-1)%c,u=o,d=!0,f=function(){var t=r[m];if(t==null)return 0;var a=m,o,c=()=>(o===void 0&&(o=n(t,a)),o),f=t.coordinate,p=m===l||SR(e,f,c,u,s);if(!p)return d=!1,1;p&&(u=f+e*(c()/2+i))},p,m=l;m<a&&(p=f(),p===0||p!==1);m+=c);if(d){for(var h=[],g=l;g<a;g+=c){var _=r[g];_!=null&&h.push(_)}return h}}return[]}function ER(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function DR(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?ER(Object(n),!0).forEach(function(t){OR(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ER(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function OR(e,t,n){return(t=kR(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function kR(e){var t=AR(e,`string`);return typeof t==`symbol`?t:t+``}function AR(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function jR(e,t,n,r,i){for(var a=(r||[]).slice(),o=a.length,s=t.start,c=t.end,l=function(t){var r=a[t];if(r==null)return 1;var l=r,u,d=()=>(u===void 0&&(u=n(r,t)),u);if(t===o-1){var f=e*(l.coordinate+e*d()/2-c);a[t]=l=DR(DR({},l),{},{tickCoord:f>0?l.coordinate-f*e:l.coordinate})}else a[t]=l=DR(DR({},l),{},{tickCoord:l.coordinate});l.tickCoord!=null&&SR(e,l.tickCoord,d,s,c)&&(c=l.tickCoord-e*(d()/2+i),a[t]=DR(DR({},l),{},{isShow:!0}))},u=o-1;u>=0;u--)if(l(u))continue;return a}function MR(e,t,n,r,i,a){var o=(r||[]).slice(),s=o.length,c=t.start,l=t.end;if(a){var u=r[s-1];if(u!=null){var d=n(u,s-1),f=e*(u.coordinate+e*d/2-l);o[s-1]=u=DR(DR({},u),{},{tickCoord:f>0?u.coordinate-f*e:u.coordinate}),u.tickCoord!=null&&SR(e,u.tickCoord,()=>d,c,l)&&(l=u.tickCoord-e*(d/2+i),o[s-1]=DR(DR({},u),{},{isShow:!0}))}}for(var p=a?s-1:s,m=function(t){var r=o[t];if(r==null)return 1;var a=r,s,u=()=>(s===void 0&&(s=n(r,t)),s);if(t===0){var d=e*(a.coordinate-e*u()/2-c);o[t]=a=DR(DR({},a),{},{tickCoord:d<0?a.coordinate-d*e:a.coordinate})}else o[t]=a=DR(DR({},a),{},{tickCoord:a.coordinate});a.tickCoord!=null&&SR(e,a.tickCoord,u,c,l)&&(c=a.tickCoord+e*(u()/2+i),o[t]=DR(DR({},a),{},{isShow:!0}))},h=0;h<p;h++)if(m(h))continue;return o}function NR(e,t,n){var r=e.tick,i=e.ticks,a=e.viewBox,o=e.minTickGap,s=e.orientation,c=e.interval,l=e.tickFormatter,u=e.unit,d=e.angle;if(!i||!i.length||!r)return[];if(Y(c)||Iv.isSsr)return CR(i,Y(c)?c:0)??[];var f=[],p=s===`top`||s===`bottom`?`width`:`height`,m=u&&p===`width`?AP(u,{fontSize:t,letterSpacing:n}):{width:0,height:0},h=(e,r)=>{var i=typeof l==`function`?l(e.value,r):e.value;return p===`width`?bR(AP(i,{fontSize:t,letterSpacing:n}),m,d):AP(i,{fontSize:t,letterSpacing:n})[p]},g=i[0],_=i[1],v=i.length>=2&&g!=null&&_!=null?Uu(_.coordinate-g.coordinate):1,y=xR(a,v,p);return c===`equidistantPreserveStart`?wR(v,y,h,i,o):c===`equidistantPreserveEnd`?TR(v,y,h,i,o):(f=c===`preserveStart`||c===`preserveStartEnd`?MR(v,y,h,i,o,c===`preserveStartEnd`):jR(v,y,h,i,o),f.filter(e=>e.isShow))}var PR=e=>{var t=e.ticks,n=e.label,r=e.labelGapWithTick,i=r===void 0?5:r,a=e.tickSize,o=a===void 0?0:a,s=e.tickMargin,c=s===void 0?0:s,l=0;if(t){Array.from(t).forEach(e=>{if(e){var t=e.getBoundingClientRect();t.width>l&&(l=t.width)}});var u=n?n.getBoundingClientRect().width:0,d=o+c,f=l+d+u+(n?i:0);return Math.round(f)}return 0},FR=e=>{var t=e.ticks,n=e.label,r=e.labelGapWithTick,i=r===void 0?5:r,a=e.tickSize,o=a===void 0?0:a,s=e.tickMargin,c=s===void 0?0:s,l=0;if(t){Array.from(t).forEach(e=>{if(e){var t=e.getBoundingClientRect();t.height>l&&(l=t.height)}});var u=n?n.getBoundingClientRect().height:0,d=o+c,f=l+d+u+(n?i:0);return Math.round(f)}return 0},IR=uh({name:`renderedTicks`,initialState:{xAxis:{},yAxis:{}},reducers:{setRenderedTicks:(e,t)=>{var n=t.payload,r=n.axisType,i=n.axisId,a=n.ticks;e[r][i]=Lm(a)},removeRenderedTicks:(e,t)=>{var n=t.payload,r=n.axisType,i=n.axisId;delete e[r][i]}}}),LR=IR.actions,RR=LR.setRenderedTicks,zR=LR.removeRenderedTicks,BR=IR.reducer,VR=[`axisLine`,`width`,`height`,`className`,`hide`,`ticks`,`axisType`,`axisId`];function HR(e,t){return qR(e)||KR(e,t)||WR(e,t)||UR()}function UR(){throw TypeError(`Invalid attempt to destructure non-iterable instance.
153
153
  In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function WR(e,t){if(e){if(typeof e==`string`)return GR(e,t);var n={}.toString.call(e).slice(8,-1);return n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`?Array.from(e):n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?GR(e,t):void 0}}function GR(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function KR(e,t){var n=e==null?null:typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`];if(n!=null){var r,i,a,o,s=[],c=!0,l=!1;try{if(a=(n=n.call(e)).next,t===0){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=a.call(n)).done)&&(s.push(r.value),s.length!==t);c=!0);}catch(e){l=!0,i=e}finally{try{if(!c&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(l)throw i}}return s}}function qR(e){if(Array.isArray(e))return e}function JR(e,t){if(e==null)return{};var n,r,i=YR(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function YR(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function XR(){return XR=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},XR.apply(null,arguments)}function ZR(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function QR(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?ZR(Object(n),!0).forEach(function(t){$R(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ZR(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function $R(e,t,n){return(t=ez(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ez(e){var t=tz(e,`string`);return typeof t==`symbol`?t:t+``}function tz(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var nz={x:0,y:0,width:0,height:0,viewBox:{x:0,y:0,width:0,height:0},orientation:`bottom`,ticks:[],stroke:`#666`,tickLine:!0,axisLine:!0,tick:!0,mirror:!1,minTickGap:5,tickSize:6,tickMargin:2,interval:`preserveEnd`,zIndex:sS.axis};function rz(e){var t=e.x,n=e.y,r=e.width,i=e.height,a=e.orientation,o=e.mirror,s=e.axisLine,c=e.otherSvgProps;if(!s)return null;var l=QR(QR(QR({},c),Eu(s)),{},{fill:`none`});if(a===`top`||a===`bottom`){var u=+(a===`top`&&!o||a===`bottom`&&o);l=QR(QR({},l),{},{x1:t,y1:n+u*i,x2:t+r,y2:n+u*i})}else{var d=+(a===`left`&&!o||a===`right`&&o);l=QR(QR({},l),{},{x1:t+d*r,y1:n,x2:t+d*r,y2:n+i})}return B.createElement(`line`,XR({},l,{className:bu(`recharts-cartesian-axis-line`,Me(s,`className`))}))}function iz(e,t,n,r,i,a,o,s,c){var l,u,d,f,p,m,h=s?-1:1,g=e.tickSize||o,_=Y(e.tickCoord)?e.tickCoord:e.coordinate;switch(a){case`top`:l=u=e.coordinate,f=n+ +!s*i,d=f-h*g,m=d-h*c,p=_;break;case`left`:d=f=e.coordinate,u=t+ +!s*r,l=u-h*g,p=l-h*c,m=_;break;case`right`:d=f=e.coordinate,u=t+ +s*r,l=u+h*g,p=l+h*c,m=_;break;default:l=u=e.coordinate,f=n+ +s*i,d=f+h*g,m=d+h*c,p=_}return{line:{x1:l,y1:d,x2:u,y2:f},tick:{x:p,y:m}}}function az(e,t){switch(e){case`left`:return t?`start`:`end`;case`right`:return t?`end`:`start`;default:return`middle`}}function oz(e,t){switch(e){case`left`:case`right`:return`middle`;case`top`:return t?`start`:`end`;default:return t?`end`:`start`}}function sz(e){var t=e.option,n=e.tickProps,r=e.value,i,a=bu(n.className,`recharts-cartesian-axis-tick-value`);if(B.isValidElement(t))i=B.cloneElement(t,QR(QR({},n),{},{className:a}));else if(typeof t==`function`)i=t(QR(QR({},n),{},{className:a}));else{var o=`recharts-cartesian-axis-tick-value`;typeof t!=`boolean`&&(o=bu(o,vI(t))),i=B.createElement(DF,XR({},n,{className:o}),r)}return i}function cz(e){var t=e.ticks,n=e.axisType,r=e.axisId,i=kf(),a=(0,B.useRef)(null);return(0,B.useEffect)(()=>{if(r!=null&&n!=null){var e=t.map(e=>({value:e.value,coordinate:e.coordinate,offset:e.offset,index:e.index})),o=a.current;o!=null&&o.axisId===r&&o.axisType===n&&we(o.ticks,e)||(a.current={ticks:e,axisId:r,axisType:n},i(RR({ticks:e,axisId:r,axisType:n})))}},[i,t,r,n]),(0,B.useEffect)(()=>r==null||n==null?td:()=>{i(zR({axisId:r,axisType:n}))},[i,r,n]),null}var lz=(0,B.forwardRef)((e,t)=>{var n=e.ticks,r=n===void 0?[]:n,i=e.tick,a=e.tickLine,o=e.stroke,s=e.tickFormatter,c=e.unit,l=e.padding,u=e.tickTextProps,d=e.orientation,f=e.mirror,p=e.x,m=e.y,h=e.width,g=e.height,_=e.tickSize,v=e.tickMargin,y=e.fontSize,b=e.letterSpacing,x=e.getTicksConfig,S=e.events,C=e.axisType,w=e.axisId,T=NR(QR(QR({},x),{},{ticks:r}),y,b),E=Eu(x),D=Du(i),O=gF(E.textAnchor)?E.textAnchor:az(d,f),k=oz(d,f),A={};typeof a==`object`&&(A=a);var j=QR(QR({},E),{},{fill:`none`},A),M=T.map(e=>QR({entry:e},iz(e,p,m,h,g,d,_,f,v))),N=M.map(e=>{var t=e.entry,n=e.line;return B.createElement(zu,{className:`recharts-cartesian-axis-tick`,key:`tick-${t.value}-${t.coordinate}-${t.tickCoord}`},a&&B.createElement(`line`,XR({},j,n,{className:bu(`recharts-cartesian-axis-tick-line`,Me(a,`className`))})))}),P=M.map((e,t)=>{var n=e.entry,r=e.tick,a=QR(QR({},QR(QR(QR(QR({verticalAnchor:k},E),{},{textAnchor:O,stroke:`none`,fill:o},r),{},{index:t,payload:n,visibleTicksCount:T.length,tickFormatter:s,padding:l},u),{},{angle:u?.angle??E.angle??0})),D);return B.createElement(zu,XR({className:`recharts-cartesian-axis-tick-label`,key:`tick-label-${n.value}-${n.coordinate}-${n.tickCoord}`},mf(S,n,t)),i&&B.createElement(sz,{option:i,tickProps:a,value:`${typeof s==`function`?s(n.value,t):n.value}${c||``}`}))});return B.createElement(`g`,{className:`recharts-cartesian-axis-ticks recharts-${C}-ticks`},B.createElement(cz,{ticks:T,axisId:w,axisType:C}),P.length>0&&B.createElement(hN,{zIndex:sS.label},B.createElement(`g`,{className:`recharts-cartesian-axis-tick-labels recharts-${C}-tick-labels`,ref:t},P)),N.length>0&&B.createElement(`g`,{className:`recharts-cartesian-axis-tick-lines recharts-${C}-tick-lines`},N))}),uz=(0,B.forwardRef)((e,t)=>{var n=e.axisLine,r=e.width,i=e.height,a=e.className,o=e.hide,s=e.ticks,c=e.axisType,l=e.axisId,u=JR(e,VR),d=HR((0,B.useState)(``),2),f=d[0],p=d[1],m=HR((0,B.useState)(``),2),h=m[0],g=m[1],_=(0,B.useRef)(null);(0,B.useImperativeHandle)(t,()=>({getCalculatedWidth:()=>PR({ticks:_.current,label:e.labelRef?.current,labelGapWithTick:5,tickSize:e.tickSize,tickMargin:e.tickMargin}),getCalculatedHeight:()=>FR({ticks:_.current,label:e.labelRef?.current,labelGapWithTick:5,tickSize:e.tickSize,tickMargin:e.tickMargin})}));var v=(0,B.useCallback)(e=>{if(e){var t=e.getElementsByClassName(`recharts-cartesian-axis-tick-value`);_.current=t;var n=t[0];if(n){var r=window.getComputedStyle(n),i=r.fontSize,a=r.letterSpacing;(i!==f||a!==h)&&(p(i),g(a))}}},[f,h]);return o||r!=null&&r<=0||i!=null&&i<=0?null:B.createElement(hN,{zIndex:e.zIndex},B.createElement(zu,{className:bu(`recharts-cartesian-axis`,a)},B.createElement(rz,{x:e.x,y:e.y,width:r,height:i,orientation:e.orientation,mirror:e.mirror,axisLine:n,otherSvgProps:Eu(e)}),B.createElement(lz,{ref:v,axisType:c,events:u,fontSize:f,getTicksConfig:e,height:e.height,letterSpacing:h,mirror:e.mirror,orientation:e.orientation,padding:e.padding,stroke:e.stroke,tick:e.tick,tickFormatter:e.tickFormatter,tickLine:e.tickLine,tickMargin:e.tickMargin,tickSize:e.tickSize,tickTextProps:e.tickTextProps,ticks:s,unit:e.unit,width:e.width,x:e.x,y:e.y,axisId:l}),B.createElement(zF,{x:e.x,y:e.y,width:e.width,height:e.height,lowerWidth:e.width,upperWidth:e.width},B.createElement($F,{label:e.label,labelRef:e.labelRef}),e.children)))}),dz=B.forwardRef((e,t)=>{var n=bf(e,nz);return B.createElement(uz,XR({},n,{ref:t}))});dz.displayName=`CartesianAxis`;var fz=(0,B.createContext)({grid:{stroke:`#ccc`,fill:`none`}});fz.Provider;var pz=()=>(0,B.useContext)(fz),mz=[`x1`,`y1`,`x2`,`y2`,`key`],hz=[`offset`],gz=[`xAxisId`,`yAxisId`],_z=[`xAxisId`,`yAxisId`];function vz(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function yz(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?vz(Object(n),!0).forEach(function(t){bz(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):vz(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function bz(e,t,n){return(t=xz(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function xz(e){var t=Sz(e,`string`);return typeof t==`symbol`?t:t+``}function Sz(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function Cz(){return Cz=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Cz.apply(null,arguments)}function wz(e,t){if(e==null)return{};var n,r,i=Tz(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function Tz(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var Ez=e=>{var t=e.fill;if(!t||t===`none`)return null;var n=e.fillOpacity,r=e.x,i=e.y,a=e.width,o=e.height,s=e.ry;return B.createElement(`rect`,{x:r,y:i,ry:s,width:a,height:o,stroke:`none`,fill:t,fillOpacity:n,className:`recharts-cartesian-grid-bg`})};function Dz(e){var t=e.option,n=e.lineItemProps,r;if(B.isValidElement(t))r=B.cloneElement(t,n);else if(typeof t==`function`)r=t(n);else{var i=n.x1,a=n.y1,o=n.x2,s=n.y2,c=n.key,l=Eu(wz(n,mz))??{};l.offset;var u=wz(l,hz),d=Array.isArray(u.strokeDasharray)?u.strokeDasharray.join(`,`):u.strokeDasharray;r=B.createElement(`line`,Cz({},u,{strokeDasharray:d,x1:i,y1:a,x2:o,y2:s,fill:`none`,key:c}))}return r}function Oz(e){var t=e.x,n=e.width,r=e.horizontal,i=r===void 0||r,a=e.horizontalPoints;if(!i||!a||!a.length)return null;e.xAxisId,e.yAxisId;var o=wz(e,gz),s=a.map((e,r)=>{var a=yz(yz({},o),{},{x1:t,y1:e,x2:t+n,y2:e,key:`line-${r}`,index:r});return B.createElement(Dz,{key:`line-${r}`,option:i,lineItemProps:a})});return B.createElement(`g`,{className:`recharts-cartesian-grid-horizontal`},s)}function kz(e){var t=e.y,n=e.height,r=e.vertical,i=r===void 0||r,a=e.verticalPoints;if(!i||!a||!a.length)return null;e.xAxisId,e.yAxisId;var o=wz(e,_z),s=a.map((e,r)=>{var a=yz(yz({},o),{},{x1:e,y1:t,x2:e,y2:t+n,key:`line-${r}`,index:r});return B.createElement(Dz,{option:i,lineItemProps:a,key:`line-${r}`})});return B.createElement(`g`,{className:`recharts-cartesian-grid-vertical`},s)}function Az(e){var t=e.horizontalFill,n=e.fillOpacity,r=e.x,i=e.y,a=e.width,o=e.height,s=e.horizontalPoints,c=e.horizontal;if(!(c===void 0||c)||!t||!t.length||s==null)return null;var l=s.map(e=>Math.round(e+i-i)).sort((e,t)=>e-t);i!==l[0]&&l.unshift(0);var u=l.map((e,s)=>{var c=l[s+1],u=c==null?i+o-e:c-e;if(u<=0)return null;var d=s%t.length;return B.createElement(`rect`,{key:`react-${s}`,y:e,x:r,height:u,width:a,stroke:`none`,fill:t[d],fillOpacity:n,className:`recharts-cartesian-grid-bg`})});return B.createElement(`g`,{className:`recharts-cartesian-gridstripes-horizontal`},u)}function jz(e){var t=e.vertical,n=t===void 0||t,r=e.verticalFill,i=e.fillOpacity,a=e.x,o=e.y,s=e.width,c=e.height,l=e.verticalPoints;if(!n||!r||!r.length)return null;var u=l.map(e=>Math.round(e+a-a)).sort((e,t)=>e-t);a!==u[0]&&u.unshift(0);var d=u.map((e,t)=>{var n=u[t+1],l=n==null?a+s-e:n-e;if(l<=0)return null;var d=t%r.length;return B.createElement(`rect`,{key:`react-${t}`,x:e,y:o,width:l,height:c,stroke:`none`,fill:r[d],fillOpacity:i,className:`recharts-cartesian-grid-bg`})});return B.createElement(`g`,{className:`recharts-cartesian-gridstripes-vertical`},d)}var Mz=(e,t)=>{var n=e.xAxis,r=e.width,i=e.height,a=e.offset;return gg(NR(yz(yz(yz({},nz),n),{},{ticks:_g(n,!0),viewBox:{x:0,y:0,width:r,height:i}})),a.left,a.left+a.width,t)},Nz=(e,t)=>{var n=e.yAxis,r=e.width,i=e.height,a=e.offset;return gg(NR(yz(yz(yz({},nz),n),{},{ticks:_g(n,!0),viewBox:{x:0,y:0,width:r,height:i}})),a.top,a.top+a.height,t)},Pz={horizontal:!0,vertical:!0,horizontalPoints:[],verticalPoints:[],verticalFill:[],horizontalFill:[],xAxisId:0,yAxisId:0,syncWithTicks:!1,zIndex:sS.grid};function Fz(e){var t=F_(),n=I_(),r=P_(),i=yz(yz({},bf(e,Pz)),{},{x:Y(e.x)?e.x:r.left,y:Y(e.y)?e.y:r.top,width:Y(e.width)?e.width:r.width,height:Y(e.height)?e.height:r.height}),a=i.xAxisId,o=i.yAxisId,s=i.x,c=i.y,l=i.width,u=i.height,d=i.syncWithTicks,f=i.horizontalValues,p=i.verticalValues,m=$g(),h=Q(e=>VA(e,`xAxis`,a,m)),g=Q(e=>VA(e,`yAxis`,o,m)),_=pz(),v={stroke:i.stroke??_.grid.stroke,strokeWidth:i.strokeWidth??_.grid.strokeWidth,strokeOpacity:i.strokeOpacity??_.grid.strokeOpacity,strokeDasharray:i.strokeDasharray??_.grid.strokeDasharray};if(!sg(l)||!sg(u)||!Y(s)||!Y(c))return null;var y=i.verticalCoordinatesGenerator||Mz,b=i.horizontalCoordinatesGenerator||Nz,x=i.horizontalPoints,S=i.verticalPoints;if((!x||!x.length)&&typeof b==`function`){var C=f&&f.length,w=b({yAxis:g?yz(yz({},g),{},{ticks:C?f:g.ticks}):void 0,width:t??l,height:n??u,offset:r},C?!0:d);n_(Array.isArray(w),`horizontalCoordinatesGenerator should return Array but instead it returned [${typeof w}]`),Array.isArray(w)&&(x=w)}if((!S||!S.length)&&typeof y==`function`){var T=p&&p.length,E=y({xAxis:h?yz(yz({},h),{},{ticks:T?p:h.ticks}):void 0,width:t??l,height:n??u,offset:r},T?!0:d);n_(Array.isArray(E),`verticalCoordinatesGenerator should return Array but instead it returned [${typeof E}]`),Array.isArray(E)&&(S=E)}return B.createElement(hN,{zIndex:i.zIndex},B.createElement(`g`,{className:`recharts-cartesian-grid`},B.createElement(Ez,{fill:i.fill??_.grid.fill,fillOpacity:i.fillOpacity??_.grid.fillOpacity,x:i.x,y:i.y,width:i.width,height:i.height,ry:i.ry}),B.createElement(Az,Cz({},i,{horizontalPoints:x})),B.createElement(jz,Cz({},i,{verticalPoints:S})),B.createElement(Oz,Cz({},i,v,{offset:r,horizontalPoints:x,xAxis:h,yAxis:g})),B.createElement(kz,Cz({},i,v,{offset:r,verticalPoints:S,xAxis:h,yAxis:g}))))}Fz.displayName=`CartesianGrid`;var Iz=uh({name:`errorBars`,initialState:{},reducers:{addErrorBar:(e,t)=>{var n=t.payload,r=n.itemId,i=n.errorBar;e[r]||(e[r]=[]),e[r].push(i)},replaceErrorBar:(e,t)=>{var n=t.payload,r=n.itemId,i=n.prev,a=n.next;e[r]&&(e[r]=e[r].map(e=>e.dataKey===i.dataKey&&e.direction===i.direction?a:e))},removeErrorBar:(e,t)=>{var n=t.payload,r=n.itemId,i=n.errorBar;e[r]&&(e[r]=e[r].filter(e=>e.dataKey!==i.dataKey||e.direction!==i.direction))}}}),Lz=Iz.actions;Lz.addErrorBar,Lz.replaceErrorBar,Lz.removeErrorBar;var Rz=Iz.reducer;function zz(e,t){var n=Q(t=>UO(t,e)),r=Q(e=>KO(e,t)),i=n?.allowDataOverflow??VO.allowDataOverflow,a=r?.allowDataOverflow??WO.allowDataOverflow;return{needClip:i||a,needClipX:i,needClipY:a}}function Bz(e){var t=e.xAxisId,n=e.yAxisId,r=e.clipPathId,i=qL(),a=zz(t,n),o=a.needClipX,s=a.needClipY,c=a.needClip,l=Q(e=>gA(e,t,!1)),u=Q(e=>_A(e,n,!1));if(!c||!i)return null;var d=i.x,f=i.y,p=i.width,m=i.height,h=o&&l?Math.min(l[0],l[1]):d-p/2,g=s&&u?Math.min(u[0],u[1]):f-m/2,_=o&&l?Math.abs(l[1]-l[0]):p*2,v=s&&u?Math.abs(u[1]-u[0]):m*2;return B.createElement(`clipPath`,{id:`clipPath-${r}`},B.createElement(`rect`,{x:h,y:g,width:_,height:v}))}function Vz(e){var t=Du(e),n=3,r=2;if(t!=null){var i=t.r,a=t.strokeWidth,o=Number(i),s=Number(a);return(Number.isNaN(o)||o<0)&&(o=n),(Number.isNaN(s)||s<0)&&(s=r),{r:o,strokeWidth:s}}return{r:n,strokeWidth:r}}function Hz(e,t){return e.graphicalItems.cartesianItems.find(e=>e.id===t)?.xAxisId??0}function Uz(e,t){return e.graphicalItems.cartesianItems.find(e=>e.id===t)?.yAxisId??0}var Wz=(e,t,n)=>WA(e,`xAxis`,Hz(e,t),n),Gz=(e,t,n)=>UA(e,`xAxis`,Hz(e,t),n),Kz=(e,t,n)=>WA(e,`yAxis`,Uz(e,t),n),qz=(e,t,n)=>UA(e,`yAxis`,Uz(e,t),n),Jz=$([L_,Wz,Kz,Gz,qz],(e,t,n,r,i)=>hg(e,`xAxis`)?Dg(t,r,!1):Dg(n,i,!1)),Yz=$([ek,(e,t)=>t],(e,t)=>e.filter(e=>e.type===`area`).find(e=>e.id===t)),Xz=e=>hg(L_(e),`xAxis`)?`yAxis`:`xAxis`,Zz=(e,t)=>Xz(e)===`yAxis`?Uz(e,t):Hz(e,t),Qz=(e,t,n)=>Ek(e,Xz(e),Zz(e,t),n),$z=$([L_,Wz,Kz,Gz,qz,$([Yz,Qz],(e,t)=>{if(e!=null&&t!=null){var n=e.stackId,r=AS(e);if(n!=null&&r!=null){var i=(t[n]?.stackedData)?.find(e=>e.key===r);if(i!=null)return i.map(e=>[e[0],e[1]])}}}),wx,Jz,Yz,oS,$([Yz,Qz],(e,t)=>{if(e!=null&&e.stackId!=null&&t!=null){var n=t[e.stackId];if(n!=null)return n.graphicalItems.map(e=>e.dataKey).filter(ed)}})],(e,t,n,r,i,a,o,s,c,l,u)=>{var d=o.chartData,f=o.dataStartIndex,p=o.dataEndIndex;if(!(c==null||e!==`horizontal`&&e!==`vertical`||t==null||n==null||r==null||i==null||r.length===0||i.length===0||s==null)){var m=c.data,h=m&&m.length>0?m:d?.slice(f,p+1);if(h!=null)return MB({layout:e,xAxis:t,yAxis:n,xAxisTicks:r,yAxisTicks:i,dataStartIndex:f,areaSettings:c,stackedData:a,displayedData:h,chartBaseValue:l,bandSize:s,stackDataKeys:u})}}),eB=[`animationElapsedTime`,`isAnimating`,`isEntrance`,`layout`,`isRange`,`stroke`,`connectNulls`],tB=[`id`,`baseLine`];function nB(){return nB=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},nB.apply(null,arguments)}function rB(e,t){if(e==null)return{};var n,r,i=iB(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function iB(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function aB(e){var t=e.alpha,n=e.baseLine,r=e.points,i=e.strokeWidth,a=r[0]?.x,o=r[r.length-1]?.x;if(!og(a)||!og(o))return null;var s=t*Math.abs(a-o),c=Math.max(...r.map(e=>e.y||0));return Y(n)?c=Math.max(n,c):n&&Array.isArray(n)&&n.length&&(c=Math.max(...n.map(e=>e.y||0),c)),Y(c)?B.createElement(`rect`,{x:a<o?a:a-s,y:0,width:s,height:Math.floor(c+(i?parseInt(`${i}`,10):1))}):null}function oB(e){var t=e.alpha,n=e.baseLine,r=e.points,i=e.strokeWidth,a=r[0]?.y,o=r[r.length-1]?.y;if(!og(a)||!og(o))return null;var s=t*Math.abs(a-o),c=Math.max(...r.map(e=>e.x||0));return Y(n)?c=Math.max(n,c):n&&Array.isArray(n)&&n.length&&(c=Math.max(...n.map(e=>e.x||0),c)),Y(c)?B.createElement(`rect`,{x:0,y:a<o?a:a-s,width:c+(i?parseInt(`${i}`,10):1),height:Math.floor(s)}):null}function sB(e){var t=e.alpha,n=e.layout,r=e.points,i=e.baseLine,a=e.strokeWidth;return n===`vertical`?B.createElement(oB,{alpha:t,points:r,baseLine:i,strokeWidth:a}):B.createElement(aB,{alpha:t,points:r,baseLine:i,strokeWidth:a})}function cB(e){var t=e.animationElapsedTime,n=t===void 0?1:t,r=e.isAnimating,i=r!==void 0&&r,a=e.isEntrance,o=a!==void 0&&a,s=e.layout,c=e.isRange,l=e.stroke,u=e.connectNulls,d=rB(e,eB),f=s===`vertical`?`vertical`:`horizontal`,p=u??!1,m=sL(),h=d.id,g=d.baseLine,_=Eu(rB(d,tB)),v=B.createElement(yy,nB({},d,{id:h,baseLine:g,connectNulls:p,stroke:`none`,className:`recharts-area-area`,layout:f})),y=l!==`none`&&B.createElement(yy,nB({},_,{className:`recharts-area-curve`,layout:f,type:d.type,connectNulls:p,fill:`none`,stroke:l,points:d.points})),b=l!==`none`&&c&&Array.isArray(g)&&B.createElement(yy,nB({},_,{className:`recharts-area-curve`,layout:f,type:d.type,connectNulls:p,fill:`none`,stroke:l,points:g}));return o&&(i||n<1)?B.createElement(zu,null,B.createElement(`defs`,null,B.createElement(`clipPath`,{id:m},B.createElement(sB,{alpha:n,points:d.points??[],baseLine:g,layout:f,strokeWidth:d.strokeWidth}))),B.createElement(zu,{clipPath:`url(#${m})`},v,y,b)):B.createElement(B.Fragment,null,v,y,b)}var lB=[`id`],uB=[`activeDot`,`animationBegin`,`animationDuration`,`animationEasing`,`connectNulls`,`dot`,`fill`,`fillOpacity`,`hide`,`isAnimationActive`,`legendType`,`stroke`,`xAxisId`,`yAxisId`];function dB(){return dB=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},dB.apply(null,arguments)}function fB(e,t){if(e==null)return{};var n,r,i=pB(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function pB(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function mB(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function hB(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?mB(Object(n),!0).forEach(function(t){gB(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):mB(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function gB(e,t,n){return(t=_B(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function _B(e){var t=vB(e,`string`);return typeof t==`symbol`?t:t+``}function vB(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var yB={activeDot:!0,animationBegin:0,animationDuration:1500,animationEasing:`ease`,animationMatchBy:zI,animationInterpolateFn:(e,t)=>e==null?[]:t===1?e.flatMap(e=>e.status===`removed`?[]:[e.next]):e.flatMap(e=>e.status===`matched`?[hB(hB({},e.next),{},{x:Xu(e.prev.x,e.next.x,t),y:Xu(e.prev.y,e.next.y,t)})]:e.status===`added`?[e.next]:[]),connectNulls:!1,dot:!1,fill:`#3182bd`,fillOpacity:.6,hide:!1,isAnimationActive:`auto`,legendType:`line`,stroke:`#3182bd`,strokeWidth:1,type:`linear`,label:!1,shape:cB,xAxisId:0,yAxisId:0,zIndex:sS.area};function bB(e,t){return e&&e!==`none`?e:t}var xB=e=>{var t=e.dataKey,n=e.name,r=e.stroke,i=e.fill,a=e.legendType;return[{inactive:e.hide,dataKey:t,type:a,color:bB(r,i),value:kg(n,t),payload:e}]},SB=B.memo(e=>{var t=e.dataKey,n=e.data,r=e.stroke,i=e.strokeWidth,a=e.fill,o=e.name,s=e.hide,c=e.unit,l=e.formatter,u=e.tooltipType,d=e.id,f={dataDefinedOnItem:n,getPosition:td,settings:{stroke:r,strokeWidth:i,fill:a,dataKey:t,nameKey:void 0,name:kg(o,t),hide:s,type:u,color:bB(r,a),unit:c,formatter:l,graphicalItemId:d}};return B.createElement(jI,{tooltipEntrySettings:f})});function CB(e){var t=e.clipPathId,n=e.points,r=e.props,i=r.needClip,a=r.dot,o=r.dataKey,s=Eu(r);return B.createElement(kL,{points:n,dot:a,className:`recharts-area-dots`,dotClassName:`recharts-area-dot`,dataKey:o,baseProps:s,needClip:i,clipPathId:t})}function wB(e){var t=e.showLabels,n=e.children,r=e.points.map(e=>{var t={x:e.x??0,y:e.y??0,width:0,lowerWidth:0,upperWidth:0,height:0};return hB(hB({},t),{},{value:e.value,payload:e.payload,parentViewBox:void 0,viewBox:t,fill:void 0})});return B.createElement(sI,{value:t?r:void 0},n)}function TB(e){var t=e.points,n=e.baseLine,r=e.needClip,i=e.clipPathId,a=e.props,o=e.animationElapsedTime,s=e.isAnimating,c=e.isEntrance,l=a.layout,u=a.type,d=a.stroke,f=a.connectNulls,p=a.isRange,m=a.shape,h=a.id,g=fB(a,lB),_=hB(hB({},Ou(g)),{},{id:h,points:t,connectNulls:f,type:u,baseLine:n,layout:l,stroke:d,isRange:p,animationElapsedTime:o,isAnimating:s,isEntrance:c});return B.createElement(B.Fragment,null,t?.length>1&&B.createElement(zu,{clipPath:r?`url(#clipPath-${i})`:void 0},B.createElement(AI,{option:m,DefaultShape:yB.shape,shapeProps:_})),B.createElement(CB,{points:t,props:g,clipPathId:i}))}function EB(e,t,n){return Y(e)?Xu(Y(t)?t:void 0,e,n):Qu(e)||Wu(e)?Xu(Y(t)?t:void 0,0,n):e}function DB(e){var t=e.needClip,n=e.clipPathId,r=e.props,i=e.previousPointsRef,a=e.previousBaselineRef,o=r.points,s=r.baseLine,c=r.isAnimationActive,l=r.animationBegin,u=r.animationDuration,d=r.animationEasing,f=r.animationMatchBy,p=r.animationInterpolateFn,m=(0,B.useMemo)(()=>({points:o,baseLine:s}),[o,s]),h=KI(m,a),g=z_(),_=$I(r.onAnimationStart,r.onAnimationEnd),v=_.isAnimating,y=_.handleAnimationStart,b=_.handleAnimationEnd,x=h.startValue;if(g==null)return null;var S=Array.isArray(s)&&Array.isArray(x)?GI(x,s,f):Array.isArray(s)?GI(null,s,f):null;return B.createElement(eL,{animationInput:m,animationIdPrefix:`recharts-area-`,items:o,previousItemsRef:i,isAnimationActive:c,animationBegin:l,animationDuration:u,animationEasing:d,onAnimationStart:y,onAnimationEnd:b,animationInterpolateFn:p,animationMatchBy:f,layout:g},(e,i,a)=>{var c=i===1?s:Array.isArray(s)?p(S,i,g):a?s:EB(s,x,i);return h.syncStepValue(c,i),B.createElement(wB,{showLabels:!v,points:o},r.children,B.createElement(TB,{points:e,baseLine:c,needClip:t,clipPathId:n,props:r,animationElapsedTime:i,isAnimating:v||i<1,isEntrance:a}),B.createElement(fI,{label:r.label}))})}function OB(e){var t=e.needClip,n=e.clipPathId,r=e.props,i=(0,B.useRef)(null),a=(0,B.useRef)();return B.createElement(DB,{needClip:t,clipPathId:n,props:r,previousPointsRef:i,previousBaselineRef:a})}var kB=class extends B.PureComponent{render(){var e=this.props,t=e.hide,n=e.dot,r=e.points,i=e.className,a=e.top,o=e.left,s=e.needClip,c=e.xAxisId,l=e.yAxisId,u=e.width,d=e.height,f=e.id,p=e.baseLine,m=e.zIndex;if(t)return null;var h=bu(`recharts-area`,i),g=f,_=Vz(n),v=_.r,y=_.strokeWidth,b=yI(n),x=v*2+y,S=s?`url(#clipPath-${b?``:`dots-`}${g})`:void 0;return B.createElement(hN,{zIndex:m},B.createElement(zu,{className:h},s&&B.createElement(`defs`,null,B.createElement(Bz,{clipPathId:g,xAxisId:c,yAxisId:l}),!b&&B.createElement(`clipPath`,{id:`clipPath-dots-${g}`},B.createElement(`rect`,{x:o-x/2,y:a-x/2,width:u+x,height:d+x}))),B.createElement(OB,{needClip:s,clipPathId:g,props:this.props})),B.createElement(tR,{points:r,mainColor:bB(this.props.stroke,this.props.fill),itemDataKey:this.props.dataKey,activeDot:this.props.activeDot,clipPath:S}),this.props.isRange&&Array.isArray(p)&&B.createElement(tR,{points:p,mainColor:bB(this.props.stroke,this.props.fill),itemDataKey:this.props.dataKey,activeDot:this.props.activeDot,clipPath:S}))}};function AB(e){var t=e.activeDot,n=e.animationBegin,r=e.animationDuration,i=e.animationEasing,a=e.connectNulls,o=e.dot,s=e.fill,c=e.fillOpacity,l=e.hide,u=e.isAnimationActive,d=e.legendType,f=e.stroke,p=e.xAxisId,m=e.yAxisId,h=fB(e,uB),g=R_(),_=FM(),v=zz(p,m).needClip,y=$g(),b=Q(t=>$z(t,e.id,y))??{},x=b.points,S=b.isRange,C=b.baseLine,w=qL();if(g!==`horizontal`&&g!==`vertical`||w==null||_!==`AreaChart`&&_!==`ComposedChart`)return null;var T=w.height,E=w.width,D=w.x,O=w.y;return!x||!x.length?null:B.createElement(kB,dB({},h,{activeDot:t,animationBegin:n,animationDuration:r,animationEasing:i,baseLine:C,connectNulls:a,dot:o,fill:s,fillOpacity:c,height:T,hide:l,layout:g,isAnimationActive:u,isRange:S,legendType:d,needClip:v,points:x,stroke:f,width:E,left:D,top:O,xAxisId:p,yAxisId:m}))}var jB=(e,t,n,r,i)=>{var a=n??t;if(Y(a))return a;var o=e===`horizontal`?i:r,s=o.scale.domain();if(o.type===`number`){var c=Math.max(s[0],s[1]),l=Math.min(s[0],s[1]);return a===`dataMin`?l:a===`dataMax`||c<0?c:Math.max(Math.min(s[0],s[1]),0)}return a===`dataMin`?s[0]:a===`dataMax`?s[1]:s[0]};function MB(e){var t=e.areaSettings,n=t.connectNulls,r=t.baseValue,i=t.dataKey,a=e.stackedData,o=e.layout,s=e.chartBaseValue,c=e.xAxis,l=e.yAxis,u=e.displayedData,d=e.dataStartIndex,f=e.xAxisTicks,p=e.yAxisTicks,m=e.bandSize,h=e.stackDataKeys,g=a&&a.length,_=jB(o,s,r,c,l),v=o===`horizontal`,y=!1,b=u.map((e,t)=>{var r;if(g)r=a[d+t];else{var o=pg(e,i);Array.isArray(o)?(r=o,y=!0):r=[_,o]}var s=r?.[1]??null,u=pg(e,i),b=g&&u==null&&h!=null&&h.length>0&&h.every(t=>pg(e,t)==null),x=s==null||g&&!n&&u==null||b;return v?{x:xg({axis:c,ticks:f,bandSize:m,entry:e,index:t}),y:x?null:l.scale.map(s)??null,value:r,payload:e}:{x:x?null:c.scale.map(s)??null,y:xg({axis:l,ticks:p,bandSize:m,entry:e,index:t}),value:r,payload:e}});return{points:b,baseLine:(g||y?b.map(e=>{var t=Array.isArray(e.value)?e.value[0]:null;return v?{x:e.x,y:t!=null&&e.y!=null?l.scale.map(t)??null:null,payload:e.payload}:{x:t==null?null:c.scale.map(t)??null,y:e.y,payload:e.payload}}):v?l.scale.map(_):c.scale.map(_))??0,isRange:y}}function NB(e){var t=bf(e,yB),n=$g();return B.createElement(uL,{id:t.id,type:`area`},e=>B.createElement(B.Fragment,null,B.createElement(MI,{legendPayload:xB(t)}),B.createElement(SB,{dataKey:t.dataKey,data:t.data,stroke:t.stroke,strokeWidth:t.strokeWidth,fill:t.fill,name:t.name,hide:t.hide,unit:t.unit,formatter:t.formatter,tooltipType:t.tooltipType,id:e}),B.createElement(_L,{type:`area`,id:e,data:t.data,dataKey:t.dataKey,xAxisId:t.xAxisId,yAxisId:t.yAxisId,zAxisId:0,stackId:bg(t.stackId),hide:t.hide,barSize:void 0,baseValue:t.baseValue,isPanorama:n,connectNulls:t.connectNulls}),B.createElement(AB,dB({},t,{id:e}))))}var PB=B.memo(NB,pv);PB.displayName=`Area`;var FB=[`domain`,`range`],IB=[`domain`,`range`];function LB(e,t){if(e==null)return{};var n,r,i=RB(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function RB(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function zB(e,t){return e===t?!0:Array.isArray(e)&&e.length===2&&Array.isArray(t)&&t.length===2?e[0]===t[0]&&e[1]===t[1]:!1}function BB(e,t){if(e===t)return!0;var n=e.domain,r=e.range,i=LB(e,FB),a=t.domain,o=t.range,s=LB(t,IB);return!zB(n,a)||!zB(r,o)?!1:pv(i,s)}var VB=[`type`],HB=[`dangerouslySetInnerHTML`,`ticks`,`scale`],UB=[`id`,`scale`];function WB(){return WB=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},WB.apply(null,arguments)}function GB(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function KB(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?GB(Object(n),!0).forEach(function(t){qB(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):GB(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function qB(e,t,n){return(t=JB(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function JB(e){var t=YB(e,`string`);return typeof t==`symbol`?t:t+``}function YB(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function XB(e,t){if(e==null)return{};var n,r,i=ZB(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function ZB(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function QB(e){var t=kf(),n=(0,B.useRef)(null),r=z_(),i=e.type,a=XB(e,VB),o=dS(r,`xAxis`,i),s=(0,B.useMemo)(()=>{if(o!=null)return KB(KB({},a),{},{type:o})},[a,o]);return(0,B.useLayoutEffect)(()=>{s!=null&&(n.current===null?t(LL(s)):n.current!==s&&t(RL({prev:n.current,next:s})),n.current=s)},[s,t]),(0,B.useLayoutEffect)(()=>()=>{n.current&&=(t(zL(n.current)),null)},[t]),null}var $B=e=>{var t=e.xAxisId,n=e.className,r=e.height,i=e.label,a=(0,B.useRef)(null),o=(0,B.useRef)(null),s=Q(Zg),c=$g(),l=kf(),u=`xAxis`,d=Q(e=>HA(e,u,t,c)),f=Q(e=>jA(e,t)),p=Q(e=>IA(e,t)),m=Q(e=>HO(e,t));if((0,B.useLayoutEffect)(()=>{if(!(r!==`auto`||!f||WF(i)||(0,B.isValidElement)(i)||m==null)){var e=a.current;if(e){var n=e.getCalculatedHeight();Math.round(f.height)!==Math.round(n)&&l(WL({id:t,height:n}))}}},[d,f,l,i,t,r,m]),f==null||p==null||m==null)return null;e.dangerouslySetInnerHTML,e.ticks,e.scale;var h=XB(e,HB);m.id,m.scale;var g=XB(m,UB);return B.createElement(dz,WB({},h,g,{ref:a,labelRef:o,x:p.x,y:p.y,width:f.width,height:f.height,className:bu(`recharts-${u} ${u}`,n),viewBox:s,ticks:d,axisType:u,axisId:t}))},eV={allowDataOverflow:VO.allowDataOverflow,allowDecimals:VO.allowDecimals,allowDuplicatedCategory:VO.allowDuplicatedCategory,angle:VO.angle,axisLine:nz.axisLine,height:VO.height,hide:!1,includeHidden:VO.includeHidden,interval:VO.interval,label:!1,minTickGap:VO.minTickGap,mirror:VO.mirror,orientation:VO.orientation,padding:VO.padding,reversed:VO.reversed,scale:VO.scale,tick:VO.tick,tickCount:VO.tickCount,tickLine:nz.tickLine,tickSize:nz.tickSize,type:VO.type,niceTicks:VO.niceTicks,xAxisId:0},tV=B.memo(e=>{var t=bf(e,eV);return B.createElement(B.Fragment,null,B.createElement(QB,{allowDataOverflow:t.allowDataOverflow,allowDecimals:t.allowDecimals,allowDuplicatedCategory:t.allowDuplicatedCategory,angle:t.angle,dataKey:t.dataKey,domain:t.domain,height:t.height,hide:t.hide,id:t.xAxisId,includeHidden:t.includeHidden,interval:t.interval,minTickGap:t.minTickGap,mirror:t.mirror,name:t.name,orientation:t.orientation,padding:t.padding,reversed:t.reversed,scale:t.scale,tick:t.tick,tickCount:t.tickCount,tickFormatter:t.tickFormatter,ticks:t.ticks,type:t.type,unit:t.unit,niceTicks:t.niceTicks}),B.createElement($B,t))},BB);tV.displayName=`XAxis`;var nV=[`type`],rV=[`dangerouslySetInnerHTML`,`ticks`,`scale`],iV=[`id`,`scale`];function aV(){return aV=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},aV.apply(null,arguments)}function oV(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function sV(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?oV(Object(n),!0).forEach(function(t){cV(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):oV(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function cV(e,t,n){return(t=lV(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function lV(e){var t=uV(e,`string`);return typeof t==`symbol`?t:t+``}function uV(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function dV(e,t){if(e==null)return{};var n,r,i=fV(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function fV(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function pV(e){var t=kf(),n=(0,B.useRef)(null),r=z_(),i=e.type,a=dV(e,nV),o=dS(r,`yAxis`,i),s=(0,B.useMemo)(()=>{if(o!=null)return sV(sV({},a),{},{type:o})},[o,a]);return(0,B.useLayoutEffect)(()=>{s!=null&&(n.current===null?t(BL(s)):n.current!==s&&t(VL({prev:n.current,next:s})),n.current=s)},[s,t]),(0,B.useLayoutEffect)(()=>()=>{n.current&&=(t(HL(n.current)),null)},[t]),null}function mV(e){var t=e.yAxisId,n=e.className,r=e.width,i=e.label,a=(0,B.useRef)(null),o=(0,B.useRef)(null),s=Q(Zg),c=$g(),l=kf(),u=`yAxis`,d=Q(e=>RA(e,t)),f=Q(e=>LA(e,t)),p=Q(e=>HA(e,u,t,c)),m=Q(e=>GO(e,t));if((0,B.useLayoutEffect)(()=>{if(!(r!==`auto`||!d||WF(i)||(0,B.isValidElement)(i)||m==null)){var e=a.current;if(e){var n=e.getCalculatedWidth();Math.round(d.width)!==Math.round(n)&&l(UL({id:t,width:n}))}}},[p,d,l,i,t,r,m]),d==null||f==null||m==null)return null;e.dangerouslySetInnerHTML,e.ticks,e.scale;var h=dV(e,rV);m.id,m.scale;var g=dV(m,iV);return B.createElement(dz,aV({},h,g,{ref:a,labelRef:o,x:f.x,y:f.y,tickTextProps:r===`auto`?{width:void 0}:{width:r},width:d.width,height:d.height,className:bu(`recharts-${u} ${u}`,n),viewBox:s,ticks:p,axisType:u,axisId:t}))}var hV={allowDataOverflow:WO.allowDataOverflow,allowDecimals:WO.allowDecimals,allowDuplicatedCategory:WO.allowDuplicatedCategory,angle:WO.angle,axisLine:nz.axisLine,hide:!1,includeHidden:WO.includeHidden,interval:WO.interval,label:!1,minTickGap:WO.minTickGap,mirror:WO.mirror,orientation:WO.orientation,padding:WO.padding,reversed:WO.reversed,scale:WO.scale,tick:WO.tick,tickCount:WO.tickCount,tickLine:nz.tickLine,tickSize:nz.tickSize,type:WO.type,niceTicks:WO.niceTicks,width:WO.width,yAxisId:0},gV=B.memo(e=>{var t=bf(e,hV);return B.createElement(B.Fragment,null,B.createElement(pV,{interval:t.interval,id:t.yAxisId,scale:t.scale,type:t.type,domain:t.domain,allowDataOverflow:t.allowDataOverflow,dataKey:t.dataKey,allowDuplicatedCategory:t.allowDuplicatedCategory,allowDecimals:t.allowDecimals,tickCount:t.tickCount,padding:t.padding,includeHidden:t.includeHidden,reversed:t.reversed,ticks:t.ticks,width:t.width,orientation:t.orientation,mirror:t.mirror,hide:t.hide,unit:t.unit,name:t.name,angle:t.angle,minTickGap:t.minTickGap,tick:t.tick,tickFormatter:t.tickFormatter,niceTicks:t.niceTicks}),B.createElement(mV,t))},BB);gV.displayName=`YAxis`;var _V=$([(e,t)=>t,L_,DS,IS,iM,oM,zM,Yg],ZM);function vV(e){return`getBBox`in e.currentTarget&&typeof e.currentTarget.getBBox==`function`}function yV(e){var t=e.currentTarget.getBoundingClientRect(),n,r;if(vV(e)){var i=e.currentTarget.getBBox();n=i.width>0?t.width/i.width:1,r=i.height>0?t.height/i.height:1}else{var a=e.currentTarget;n=a.offsetWidth>0?t.width/a.offsetWidth:1,r=a.offsetHeight>0?t.height/a.offsetHeight:1}var o=(e,i)=>({relativeX:Math.round((e-t.left)/n),relativeY:Math.round((i-t.top)/r)});return`touches`in e?Array.from(e.touches).map(e=>o(e.clientX,e.clientY)):o(e.clientX,e.clientY)}var bV=Hm(`mouseClick`),xV=Xh();xV.startListening({actionCreator:bV,effect:(e,t)=>{var n=e.payload,r=_V(t.getState(),yV(n));r?.activeIndex!=null&&t.dispatch(lj({activeIndex:r.activeIndex,activeDataKey:void 0,activeCoordinate:r.activeCoordinate}))}});var SV=Hm(`mouseMove`),CV=Xh(),wV=null,TV=null,EV=null;CV.startListening({actionCreator:SV,effect:(e,t)=>{var n=e.payload,r=t.getState().eventSettings,i=r.throttleDelay,a=r.throttledEvents,o=a===`all`||a?.includes(`mousemove`);wV!==null&&(cancelAnimationFrame(wV),wV=null),TV!==null&&(typeof i!=`number`||!o)&&(clearTimeout(TV),TV=null),EV=yV(n);var s=()=>{var e=t.getState(),n=YA(e,e.tooltip.settings.shared);if(!EV){wV=null,TV=null;return}if(n===`axis`){var r=_V(e,EV);r?.activeIndex==null?t.dispatch(sj()):t.dispatch(cj({activeIndex:r.activeIndex,activeDataKey:void 0,activeCoordinate:r.activeCoordinate}))}wV=null,TV=null};if(!o){s();return}i===`raf`?wV=requestAnimationFrame(s):typeof i==`number`&&TV===null&&(TV=setTimeout(s,i))}});function DV(e,t){return t instanceof HTMLElement?`HTMLElement <${t.tagName} class="${t.className}">`:t===window?`global.window`:e===`children`&&typeof t==`object`&&t?`<<CHILDREN>>`:t}var OV={accessibilityLayer:!0,barCategoryGap:`10%`,barGap:4,barSize:void 0,className:void 0,maxBarSize:void 0,stackOffset:`none`,syncId:void 0,syncMethod:`index`,baseValue:void 0,reverseStackOrder:!1},kV=uh({name:`rootProps`,initialState:OV,reducers:{updateOptions:(e,t)=>{e.accessibilityLayer=t.payload.accessibilityLayer,e.barCategoryGap=t.payload.barCategoryGap,e.barGap=t.payload.barGap??OV.barGap,e.barSize=t.payload.barSize,e.maxBarSize=t.payload.maxBarSize,e.stackOffset=t.payload.stackOffset,e.syncId=t.payload.syncId,e.syncMethod=t.payload.syncMethod,e.className=t.payload.className,e.baseValue=t.payload.baseValue,e.reverseStackOrder=t.payload.reverseStackOrder}}}),AV=kV.reducer,jV=kV.actions.updateOptions,MV=uh({name:`polarOptions`,initialState:null,reducers:{updatePolarOptions:(e,t)=>e===null?t.payload:(e.startAngle=t.payload.startAngle,e.endAngle=t.payload.endAngle,e.cx=t.payload.cx,e.cy=t.payload.cy,e.innerRadius=t.payload.innerRadius,e.outerRadius=t.payload.outerRadius,e)}});MV.actions.updatePolarOptions;var NV=MV.reducer,PV=Hm(`keyDown`),FV=Hm(`focus`),IV=Hm(`blur`),LV=Xh(),RV=null,zV=null,BV=null;LV.startListening({actionCreator:PV,effect:(e,t)=>{BV=e.payload,RV!==null&&(cancelAnimationFrame(RV),RV=null);var n=t.getState().eventSettings,r=n.throttleDelay,i=n.throttledEvents,a=i===`all`||i.includes(`keydown`);zV!==null&&(typeof r!=`number`||!a)&&(clearTimeout(zV),zV=null);var o=()=>{try{var e=t.getState();if(e.rootProps.accessibilityLayer===!1)return;var n=e.tooltip.keyboardInteraction,r=BV;if(r!==`ArrowRight`&&r!==`ArrowLeft`&&r!==`Enter`)return;var i=wj(n,Kj(e),Ck(e),tM(e)),a=i==null?-1:Number(i),o=!Number.isFinite(a)||a<0,s=oM(e),c=Kj(e),l=YA(e,e.tooltip.settings.shared);if(r===`Enter`){if(o)return;var u=WM(e,l,`hover`,String(n.index));t.dispatch(dj({active:!n.active,activeIndex:n.index,activeCoordinate:u}));return}var d=GA(e)===`left-to-right`?1:-1,f=r===`ArrowRight`?1:-1,p;if(o){var m=Ck(e),h=tM(e),g=f*d,_=e=>({active:!1,index:String(e),dataKey:void 0,graphicalItemId:void 0,coordinate:void 0});if(p=-1,g>0){for(var v=0;v<c.length;v++)if(wj(_(v),c,m,h)!=null){p=v;break}}else for(var y=c.length-1;y>=0;y--)if(wj(_(y),c,m,h)!=null){p=y;break}if(p<0)return}else{p=a+f*d;var b=s?.length||c.length;if(b===0||p>=b||p<0)return}var x=WM(e,l,`hover`,String(p));t.dispatch(dj({active:!0,activeIndex:p.toString(),activeCoordinate:x}))}finally{RV=null,zV=null}};if(!a){o();return}r===`raf`?RV=requestAnimationFrame(o):typeof r==`number`&&zV===null&&(o(),BV=null,zV=setTimeout(()=>{BV?o():(zV=null,RV=null)},r))}}),LV.startListening({actionCreator:FV,effect:(e,t)=>{var n=t.getState();if(n.rootProps.accessibilityLayer!==!1){var r=n.tooltip.keyboardInteraction;if(!r.active&&r.index==null){var i=`0`,a=WM(n,YA(n,n.tooltip.settings.shared),`hover`,String(i));t.dispatch(dj({active:!0,activeIndex:i,activeCoordinate:a}))}}}}),LV.startListening({actionCreator:IV,effect:(e,t)=>{var n=t.getState();if(n.rootProps.accessibilityLayer!==!1){var r=n.tooltip.keyboardInteraction;r.active&&t.dispatch(dj({active:!1,activeIndex:r.index,activeCoordinate:r.coordinate}))}}});function VV(e){e.persist();var t=e.currentTarget;return new Proxy(e,{get:(e,n)=>{if(n===`currentTarget`)return t;var r=Reflect.get(e,n);return typeof r==`function`?r.bind(e):r}})}var HV=Hm(`externalEvent`),UV=Xh(),WV=new Map,GV=new Map,KV=new Map;UV.startListening({actionCreator:HV,effect:(e,t)=>{var n=e.payload,r=n.handler,i=n.reactEvent;if(r!=null){var a=i.type,o=VV(i);KV.set(a,{handler:r,reactEvent:o});var s=WV.get(a);s!==void 0&&(cancelAnimationFrame(s),WV.delete(a));var c=t.getState().eventSettings,l=c.throttleDelay,u=c.throttledEvents,d=u===`all`||u?.includes(a),f=GV.get(a);f!==void 0&&(typeof l!=`number`||!d)&&(clearTimeout(f),GV.delete(a));var p=()=>{var e=KV.get(a);try{if(!e)return;var n=e.handler,r=e.reactEvent,i=t.getState(),o={activeCoordinate:gM(i),activeDataKey:pM(i),activeIndex:dM(i),activeLabel:fM(i),activeTooltipIndex:dM(i),isTooltipActive:_M(i)};n&&n(o,r)}finally{WV.delete(a),GV.delete(a),KV.delete(a)}};if(!d){p();return}if(l===`raf`){var m=requestAnimationFrame(p);WV.set(a,m)}else if(typeof l==`number`){if(!GV.has(a)){p();var h=setTimeout(p,l);GV.set(a,h)}}else p()}}});var qV=$([$([Oj],e=>e.tooltipItemPayloads),(e,t)=>t,(e,t,n)=>n],(e,t,n)=>{if(t!=null){var r=e.find(e=>e.settings.graphicalItemId===n);if(r!=null){var i=r.getPosition;if(i!=null)return i(t)}}}),JV=Hm(`touchMove`),YV=Xh(),XV=null,ZV=null,QV=null,$V=null;YV.startListening({actionCreator:JV,effect:(e,t)=>{var n=e.payload;if(n.touches!=null&&n.touches.length!==0){$V=VV(n);var r=t.getState().eventSettings,i=r.throttleDelay,a=r.throttledEvents,o=a===`all`||a.includes(`touchmove`);XV!==null&&(cancelAnimationFrame(XV),XV=null),ZV!==null&&(typeof i!=`number`||!o)&&(clearTimeout(ZV),ZV=null),QV=Array.from(n.touches).map(e=>yV({clientX:e.clientX,clientY:e.clientY,currentTarget:n.currentTarget}));var s=()=>{if($V!=null){var e=t.getState(),n=YA(e,e.tooltip.settings.shared);if(n===`axis`){var r=QV?.[0];if(r==null){XV=null,ZV=null;return}var i=_V(e,r);i?.activeIndex!=null&&t.dispatch(cj({activeIndex:i.activeIndex,activeDataKey:void 0,activeCoordinate:i.activeCoordinate}))}else if(n===`item`){var a=$V.touches[0];if(document.elementFromPoint==null||a==null)return;var o=document.elementFromPoint(a.clientX,a.clientY);if(!o||!o.getAttribute)return;var s=o.getAttribute(Rg),c=o.getAttribute(`data-recharts-item-id`)??void 0,l=Hj(e).find(e=>e.id===c);if(s==null||l==null||c==null)return;var u=l.dataKey,d=qV(e,s,c);t.dispatch(oj({activeDataKey:u,activeIndex:s,activeCoordinate:d,activeGraphicalItemId:c}))}XV=null,ZV=null}};if(!o){s();return}i===`raf`?XV=requestAnimationFrame(s):typeof i==`number`&&ZV===null&&(s(),$V=null,ZV=setTimeout(()=>{$V?s():(ZV=null,XV=null)},i))}}});var eH={throttleDelay:`raf`,throttledEvents:[`mousemove`,`touchmove`,`pointermove`,`scroll`,`wheel`]},tH=uh({name:`eventSettings`,initialState:eH,reducers:{setEventSettings:(e,t)=>{t.payload.throttleDelay!=null&&(e.throttleDelay=t.payload.throttleDelay),t.payload.throttledEvents!=null&&(e.throttledEvents=Lm(t.payload.throttledEvents))}}}),nH=tH.actions.setEventSettings,rH=tH.reducer,iH=dp({brush:aR,cartesianAxis:GL,chartData:BN,errorBars:Rz,eventSettings:rH,graphicalItems:gL,layout:ig,legend:J_,options:NN,polarAxis:_I,polarOptions:NV,referenceElements:uR,renderedTicks:BR,rootProps:AV,tooltip:fj,zIndex:mN}),aH=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:`Chart`;return eh({reducer:iH,preloadedState:e,middleware:e=>e({serializableCheck:!1,immutableCheck:![`commonjs`,`es6`,`production`].includes(`es6`)}).concat([xV.middleware,CV.middleware,LV.middleware,UV.middleware,YV.middleware]),enhancers:e=>{var t=e;return typeof e==`function`&&(t=e()),t.concat(Qm({type:`raf`}))},devTools:Iv.devToolsEnabled&&{serialize:{replacer:DV},name:`recharts-${t}`}})};function oH(e){var t=e.preloadedState,n=e.children,r=e.reduxStoreName,i=$g(),a=(0,B.useRef)(null);if(i)return n;a.current??=aH(t,r);var o=Ef;return B.createElement(uv,{context:o,store:a.current},n)}function sH(e){var t=e.layout,n=e.margin,r=kf(),i=$g();return(0,B.useEffect)(()=>{i||(r(tg(t)),r(eg(n)))},[r,i,t,n]),null}var cH=(0,B.memo)(sH,pv);function lH(e){var t=kf();return(0,B.useEffect)(()=>{t(jV(e))},[t,e]),null}var uH=(0,B.memo)(e=>{var t=kf();return(0,B.useEffect)(()=>{t(nH(e))},[t,e]),null},pv);function dH(e){var t=e.zIndex,n=e.isPanorama,r=(0,B.useRef)(null),i=kf();return(0,B.useLayoutEffect)(()=>(r.current&&i(fN({zIndex:t,element:r.current,isPanorama:n})),()=>{i(pN({zIndex:t,isPanorama:n}))}),[i,t,n]),B.createElement(`g`,{tabIndex:-1,ref:r,className:`recharts-zIndex-layer_${t}`})}function fH(e){var t=e.children,n=e.isPanorama,r=Q($M);if(!r||r.length===0)return t;var i=r.filter(e=>e<0),a=r.filter(e=>e>0);return B.createElement(B.Fragment,null,i.map(e=>B.createElement(dH,{key:e,zIndex:e,isPanorama:n})),t,a.map(e=>B.createElement(dH,{key:e,zIndex:e,isPanorama:n})))}var pH=[`children`];function mH(e,t){if(e==null)return{};var n,r,i=hH(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function hH(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function gH(){return gH=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},gH.apply(null,arguments)}var _H={width:`100%`,height:`100%`,display:`block`},vH=(0,B.forwardRef)((e,t)=>{var n=F_(),r=I_(),i=iy();if(!sg(n)||!sg(r))return null;var a=e.children,o=e.otherAttributes,s=e.title,c=e.desc,l,u;return o!=null&&(l=typeof o.tabIndex==`number`?o.tabIndex:i?0:void 0,u=typeof o.role==`string`?o.role:i?`application`:void 0),B.createElement(Pu,gH({},o,{title:s,desc:c,role:u,tabIndex:l,width:n,height:r,style:_H,ref:t}),a)}),yH=e=>{var t=e.children,n=Q(t_);if(!n)return null;var r=n.width,i=n.height,a=n.y,o=n.x;return B.createElement(Pu,{width:r,height:i,x:o,y:a},t)},bH=(0,B.forwardRef)((e,t)=>{var n=e.children,r=mH(e,pH);return $g()?B.createElement(yH,null,B.createElement(fH,{isPanorama:!0},n)):B.createElement(vH,gH({ref:t},r),B.createElement(fH,{isPanorama:!1},n))});function xH(e,t){return EH(e)||TH(e,t)||CH(e,t)||SH()}function SH(){throw TypeError(`Invalid attempt to destructure non-iterable instance.
154
154
  In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function CH(e,t){if(e){if(typeof e==`string`)return wH(e,t);var n={}.toString.call(e).slice(8,-1);return n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`?Array.from(e):n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?wH(e,t):void 0}}function wH(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function TH(e,t){var n=e==null?null:typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`];if(n!=null){var r,i,a,o,s=[],c=!0,l=!1;try{if(a=(n=n.call(e)).next,t===0){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=a.call(n)).done)&&(s.push(r.value),s.length!==t);c=!0);}catch(e){l=!0,i=e}finally{try{if(!c&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(l)throw i}}return s}}function EH(e){if(Array.isArray(e))return e}function DH(){var e=kf(),t=xH((0,B.useState)(null),2),n=t[0],r=t[1],i=Q(Pg);return(0,B.useEffect)(()=>{if(n!=null){var t=n.getBoundingClientRect().width/n.offsetWidth;og(t)&&t!==i&&e(rg(t))}},[n,e,i]),r}function OH(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function kH(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?OH(Object(n),!0).forEach(function(t){AH(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):OH(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function AH(e,t,n){return(t=jH(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function jH(e){var t=MH(e,`string`);return typeof t==`symbol`?t:t+``}function MH(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function NH(){return NH=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},NH.apply(null,arguments)}function PH(e,t){return zH(e)||RH(e,t)||IH(e,t)||FH()}function FH(){throw TypeError(`Invalid attempt to destructure non-iterable instance.
155
- In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function IH(e,t){if(e){if(typeof e==`string`)return LH(e,t);var n={}.toString.call(e).slice(8,-1);return n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`?Array.from(e):n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?LH(e,t):void 0}}function LH(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function RH(e,t){var n=e==null?null:typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`];if(n!=null){var r,i,a,o,s=[],c=!0,l=!1;try{if(a=(n=n.call(e)).next,t===0){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=a.call(n)).done)&&(s.push(r.value),s.length!==t);c=!0);}catch(e){l=!0,i=e}finally{try{if(!c&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(l)throw i}}return s}}function zH(e){if(Array.isArray(e))return e}var BH=()=>(ZN(),null);function VH(e){if(typeof e==`number`)return e;if(typeof e==`string`){var t=parseFloat(e);if(!Number.isNaN(t))return t}return 0}var HH=(0,B.forwardRef)((e,t)=>{var n=(0,B.useRef)(null),r=PH((0,B.useState)({containerWidth:VH(e.style?.width),containerHeight:VH(e.style?.height)}),2),i=r[0],a=r[1],o=(0,B.useCallback)((e,t)=>{a(n=>{var r=Math.round(e),i=Math.round(t);return n.containerWidth===r&&n.containerHeight===i?n:{containerWidth:r,containerHeight:i}})},[]),s=(0,B.useCallback)(e=>{if(typeof t==`function`&&t(e),n.current!=null&&(n.current.disconnect(),n.current=null),e!=null&&typeof ResizeObserver<`u`){var r=e.getBoundingClientRect(),i=r.width,a=r.height;o(i,a);var s=new ResizeObserver(e=>{var t=e[0];if(t!=null){var n=t.contentRect,r=n.width,i=n.height;o(r,i)}});s.observe(e),n.current=s}},[t,o]);return(0,B.useEffect)(()=>()=>{n.current?.disconnect()},[o]),B.createElement(B.Fragment,null,B.createElement(H_,{width:i.containerWidth,height:i.containerHeight}),B.createElement(`div`,NH({ref:s},e)))}),UH=(0,B.forwardRef)((e,t)=>{var n=e.width,r=e.height,i=PH((0,B.useState)({containerWidth:VH(n),containerHeight:VH(r)}),2),a=i[0],o=i[1],s=(0,B.useCallback)((e,t)=>{o(n=>{var r=Math.round(e),i=Math.round(t);return n.containerWidth===r&&n.containerHeight===i?n:{containerWidth:r,containerHeight:i}})},[]),c=(0,B.useCallback)(e=>{if(typeof t==`function`&&t(e),e!=null){var n=e.getBoundingClientRect(),r=n.width,i=n.height;s(r,i)}},[t,s]);return B.createElement(B.Fragment,null,B.createElement(H_,{width:a.containerWidth,height:a.containerHeight}),B.createElement(`div`,NH({ref:c},e)))}),WH=(0,B.forwardRef)((e,t)=>{var n=e.width,r=e.height;return B.createElement(B.Fragment,null,B.createElement(H_,{width:n,height:r}),B.createElement(`div`,NH({ref:t},e)))}),GH=(0,B.forwardRef)((e,t)=>{var n=e.width,r=e.height;return typeof n==`string`||typeof r==`string`?B.createElement(UH,NH({},e,{ref:t})):typeof n==`number`&&typeof r==`number`?B.createElement(WH,NH({},e,{width:n,height:r,ref:t})):B.createElement(B.Fragment,null,B.createElement(H_,{width:n,height:r}),B.createElement(`div`,NH({ref:t},e)))});function KH(e){return e?HH:GH}var qH=(0,B.forwardRef)((e,t)=>{var n=e.children,r=e.className,i=e.height,a=e.onClick,o=e.onContextMenu,s=e.onDoubleClick,c=e.onMouseDown,l=e.onMouseEnter,u=e.onMouseLeave,d=e.onMouseMove,f=e.onMouseUp,p=e.onTouchEnd,m=e.onTouchMove,h=e.onTouchStart,g=e.style,_=e.width,v=e.responsive,y=e.dispatchTouchEvents,b=y===void 0||y,x=(0,B.useRef)(null),S=kf(),C=PH((0,B.useState)(null),2),w=C[0],T=C[1],E=PH((0,B.useState)(null),2),D=E[0],O=E[1],k=DH(),A=k_(),j=A?.width>0?A.width:_,M=A?.height>0?A.height:i,N=(0,B.useCallback)(e=>{k(e),typeof t==`function`&&t(e),T(e),O(e),e!=null&&(x.current=e)},[k,t,T,O]),P=(0,B.useCallback)(e=>{S(bV(e)),S(HV({handler:a,reactEvent:e}))},[S,a]),ee=(0,B.useCallback)(e=>{S(SV(e)),S(HV({handler:l,reactEvent:e}))},[S,l]),te=(0,B.useCallback)(e=>{S(sj()),S(HV({handler:u,reactEvent:e}))},[S,u]),ne=(0,B.useCallback)(e=>{S(SV(e)),S(HV({handler:d,reactEvent:e}))},[S,d]),re=(0,B.useCallback)(()=>{S(FV())},[S]),F=(0,B.useCallback)(()=>{S(IV())},[S]),I=(0,B.useCallback)(e=>{S(PV(e.key))},[S]),ie=(0,B.useCallback)(e=>{S(HV({handler:o,reactEvent:e}))},[S,o]),ae=(0,B.useCallback)(e=>{S(HV({handler:s,reactEvent:e}))},[S,s]),oe=(0,B.useCallback)(e=>{S(HV({handler:c,reactEvent:e}))},[S,c]),se=(0,B.useCallback)(e=>{S(HV({handler:f,reactEvent:e}))},[S,f]),ce=(0,B.useCallback)(e=>{S(HV({handler:h,reactEvent:e}))},[S,h]),le=(0,B.useCallback)(e=>{b&&S(JV(e)),S(HV({handler:m,reactEvent:e}))},[S,b,m]),ue=(0,B.useCallback)(e=>{S(HV({handler:p,reactEvent:e}))},[S,p]),de=KH(v);return B.createElement(TN.Provider,{value:w},B.createElement(dd.Provider,{value:D},B.createElement(de,{width:j??g?.width,height:M??g?.height,className:bu(`recharts-wrapper`,r),style:kH({position:`relative`,cursor:`default`,width:j,height:M},g),onClick:P,onContextMenu:ie,onDoubleClick:ae,onFocus:re,onBlur:F,onKeyDown:I,onMouseDown:oe,onMouseEnter:ee,onMouseLeave:te,onMouseMove:ne,onMouseUp:se,onTouchEnd:ue,onTouchMove:le,onTouchStart:ce,ref:N},B.createElement(BH,null),n)))}),JH=[`width`,`height`,`responsive`,`children`,`className`,`style`,`compact`,`title`,`desc`];function YH(e,t){if(e==null)return{};var n,r,i=XH(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function XH(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var ZH=(0,B.forwardRef)((e,t)=>{var n=e.width,r=e.height,i=e.responsive,a=e.children,o=e.className,s=e.style,c=e.compact,l=e.title,u=e.desc,d=Eu(YH(e,JH));return c?B.createElement(B.Fragment,null,B.createElement(H_,{width:n,height:r}),B.createElement(bH,{otherAttributes:d,title:l,desc:u},a)):B.createElement(qH,{className:o,style:s,width:n,height:r,responsive:i??!1,onClick:e.onClick,onMouseLeave:e.onMouseLeave,onMouseEnter:e.onMouseEnter,onMouseMove:e.onMouseMove,onMouseDown:e.onMouseDown,onMouseUp:e.onMouseUp,onContextMenu:e.onContextMenu,onDoubleClick:e.onDoubleClick,onTouchStart:e.onTouchStart,onTouchMove:e.onTouchMove,onTouchEnd:e.onTouchEnd},B.createElement(bH,{otherAttributes:d,title:l,desc:u,ref:t},B.createElement(vR,null,a)))});function QH(){return QH=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},QH.apply(null,arguments)}function $H(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function eU(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?$H(Object(n),!0).forEach(function(t){tU(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):$H(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function tU(e,t,n){return(t=nU(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function nU(e){var t=rU(e,`string`);return typeof t==`symbol`?t:t+``}function rU(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var iU=eU({accessibilityLayer:!0,barCategoryGap:`10%`,barGap:4,layout:`horizontal`,margin:{top:5,right:5,bottom:5,left:5},responsive:!1,reverseStackOrder:!1,stackOffset:`none`,syncMethod:`index`},eH),aU=(0,B.forwardRef)(function(e,t){var n=bf(e.categoricalChartProps,iU),r=e.chartName,i=e.defaultTooltipEventType,a=e.validateTooltipEventTypes,o=e.tooltipPayloadSearcher,s=e.categoricalChartProps,c={chartName:r,defaultTooltipEventType:i,validateTooltipEventTypes:a,tooltipPayloadSearcher:o,eventEmitter:void 0};return B.createElement(oH,{preloadedState:{options:c},reduxStoreName:s.id??r},B.createElement(nR,{chartData:s.data}),B.createElement(cH,{layout:n.layout,margin:n.margin}),B.createElement(uH,{throttleDelay:n.throttleDelay,throttledEvents:n.throttledEvents}),B.createElement(lH,{baseValue:n.baseValue,accessibilityLayer:n.accessibilityLayer,barCategoryGap:n.barCategoryGap,maxBarSize:n.maxBarSize,stackOffset:n.stackOffset,barGap:n.barGap,barSize:n.barSize,syncId:n.syncId,syncMethod:n.syncMethod,className:n.className,reverseStackOrder:n.reverseStackOrder}),B.createElement(ZH,QH({},n,{ref:t})))}),oU=[`axis`],sU=(0,B.forwardRef)((e,t)=>B.createElement(aU,{chartName:`AreaChart`,defaultTooltipEventType:`axis`,validateTooltipEventTypes:oU,tooltipPayloadSearcher:jN,categoricalChartProps:e,ref:t})),cU=e=>{let t=new Date(`${e}T00:00:00`);return Number.isNaN(t.getTime())?e:t.toLocaleDateString(void 0,{month:`short`,day:`numeric`})};function lU({data:e,color:t=`var(--accent)`,height:n=150,label:r=`events`}){if(!e||e.length===0)return(0,V.jsx)(`div`,{style:{height:n}});let i=`tc-${r.replace(/[^a-z0-9]/gi,``)}`;return(0,V.jsx)(j_,{width:`100%`,height:n,children:(0,V.jsxs)(sU,{data:e,margin:{top:8,right:8,bottom:0,left:8},children:[(0,V.jsx)(`defs`,{children:(0,V.jsxs)(`linearGradient`,{id:i,x1:`0`,y1:`0`,x2:`0`,y2:`1`,children:[(0,V.jsx)(`stop`,{offset:`0%`,stopColor:t,stopOpacity:.32}),(0,V.jsx)(`stop`,{offset:`100%`,stopColor:t,stopOpacity:.02})]})}),(0,V.jsx)(Fz,{strokeDasharray:`3 3`,stroke:`var(--line)`,vertical:!1}),(0,V.jsx)(tV,{dataKey:`date`,tickFormatter:cU,tick:{fontSize:10,fill:`var(--faint)`},axisLine:!1,tickLine:!1,minTickGap:42}),(0,V.jsx)(gV,{hide:!0,domain:[0,`auto`],allowDecimals:!1}),(0,V.jsx)(mP,{cursor:{stroke:`var(--line)`,strokeDasharray:`3 3`},content:({active:e,payload:n,label:i})=>e&&n?.length?(0,V.jsxs)(`div`,{className:`chart-tip`,children:[(0,V.jsx)(`div`,{className:`chart-tip-label`,children:cU(String(i))}),(0,V.jsxs)(`div`,{className:`chart-tip-row`,children:[(0,V.jsx)(`span`,{className:`chart-tip-dot`,style:{background:t}}),r,` `,(0,V.jsx)(`b`,{children:n[0].value})]})]}):null}),(0,V.jsx)(PB,{type:`monotone`,dataKey:`count`,stroke:t,strokeWidth:1.8,fill:`url(#${i})`,isAnimationActive:!1})]})})}function uU(e){return new Date(e).toLocaleDateString(void 0,{month:`short`,day:`numeric`})}function dU(e){return e.includes(`login`)||e.includes(`signin`)?`badge-green`:e.includes(`fail`)||e.includes(`error`)||e.includes(`locked`)?`badge-red`:e.includes(`register`)||e.includes(`signup`)?`badge-accent`:e.includes(`settings`)||e.includes(`admin`)?`badge-amber`:`badge-muted`}function fU(){let{data:e,isLoading:t,error:n,refetch:r}=ns(ps());return(0,V.jsx)(gl,{isLoading:t,error:n,onRetry:r,skeleton:(0,V.jsx)(bl,{count:6,columns:3}),children:e&&(0,V.jsxs)(`div`,{className:`cards`,children:[(0,V.jsxs)(`div`,{className:`card c-accent`,children:[(0,V.jsx)(`div`,{className:`card-label`,children:`Total Users`}),(0,V.jsx)(`div`,{className:`card-value`,children:e.usersTotal.toLocaleString()}),(0,V.jsx)(`div`,{className:`card-hint`,children:`registered accounts`})]}),(0,V.jsxs)(`div`,{className:`card c-green`,children:[(0,V.jsx)(`div`,{className:`card-label`,children:`Active Sessions`}),(0,V.jsx)(`div`,{className:`card-value`,children:(e.activeSessions??0).toLocaleString()}),(0,V.jsx)(`div`,{className:`card-hint`,children:`currently logged in`})]}),(0,V.jsxs)(`div`,{className:`card c-amber`,children:[(0,V.jsx)(`div`,{className:`card-label`,children:`MAU`}),(0,V.jsx)(`div`,{className:`card-value`,children:e.mau.toLocaleString()}),(0,V.jsx)(`div`,{className:`card-hint`,children:`monthly active users`})]}),(0,V.jsxs)(`div`,{className:`card`,children:[(0,V.jsx)(`div`,{className:`card-label`,children:`Sign-ins`}),(0,V.jsx)(`div`,{className:`card-value`,style:{color:`var(--text)`},children:e.signInsTotal.toLocaleString()}),(0,V.jsxs)(`div`,{className:`card-hint`,children:[`last `,e.windowDays,` days`]})]}),(0,V.jsxs)(`div`,{className:`card c-blue`,children:[(0,V.jsx)(`div`,{className:`card-label`,children:`Sign-ups`}),(0,V.jsx)(`div`,{className:`card-value`,children:e.signUpsTotal.toLocaleString()}),(0,V.jsx)(`div`,{className:`card-hint`,children:`new registrations`})]}),(0,V.jsxs)(`div`,{className:`card`,children:[(0,V.jsx)(`div`,{className:`card-label`,children:`OAuth Clients`}),(0,V.jsx)(`div`,{className:`card-value`,style:{color:`var(--text)`},children:e.clientsCount.toLocaleString()}),(0,V.jsx)(`div`,{className:`card-hint`,children:`OIDC clients`})]})]})})}function pU({title:e}){return(0,V.jsxs)(`div`,{className:`panel`,children:[(0,V.jsx)(`div`,{className:`panel-head`,children:(0,V.jsx)(`h3`,{children:e})}),(0,V.jsx)(`div`,{className:`panel-body`,style:{paddingBottom:4},children:(0,V.jsx)(K,{height:60,borderRadius:8})})]})}function mU(){let{data:e,isLoading:t,error:n,refetch:r}=ns(ps());return(0,V.jsx)(gl,{isLoading:t,error:n,onRetry:r,skeleton:(0,V.jsx)(pU,{title:`Sign-ins / day`}),children:e&&(0,V.jsxs)(`div`,{className:`panel`,children:[(0,V.jsxs)(`div`,{className:`panel-head`,children:[(0,V.jsx)(`h3`,{children:`Sign-ins / day`}),(0,V.jsxs)(`span`,{className:`meta`,children:[`last `,e.windowDays,`d`]})]}),(0,V.jsx)(`div`,{className:`panel-body`,style:{paddingBottom:`4px`},children:e.signInsPerDay.length>0?(0,V.jsx)(lU,{data:e.signInsPerDay,color:`var(--accent)`,label:`sign-ins`}):(0,V.jsx)(`div`,{style:{height:60,display:`flex`,alignItems:`center`,justifyContent:`center`,color:`var(--faint)`,fontSize:12},children:`No data yet`})})]})})}function hU(){let{data:e,isLoading:t,error:n,refetch:r}=ns(ps());return(0,V.jsx)(gl,{isLoading:t,error:n,onRetry:r,skeleton:(0,V.jsx)(pU,{title:`Sign-ups / day`}),children:e&&(0,V.jsxs)(`div`,{className:`panel`,children:[(0,V.jsxs)(`div`,{className:`panel-head`,children:[(0,V.jsx)(`h3`,{children:`Sign-ups / day`}),(0,V.jsxs)(`span`,{className:`meta`,children:[`last `,e.windowDays,`d`]})]}),(0,V.jsx)(`div`,{className:`panel-body`,style:{paddingBottom:`4px`},children:e.signUpsPerDay.length>0?(0,V.jsx)(lU,{data:e.signUpsPerDay,color:`var(--green)`,label:`sign-ups`}):(0,V.jsx)(`div`,{style:{height:60,display:`flex`,alignItems:`center`,justifyContent:`center`,color:`var(--faint)`,fontSize:12},children:`No data yet`})})]})})}function gU(){let{data:e,isLoading:t,error:n,refetch:r}=ns(ps());return(0,V.jsx)(gl,{isLoading:t,error:n,onRetry:r,skeleton:(0,V.jsx)(Sl,{rows:5,cols:4}),children:e?.auditSupported&&e.recentEvents.length>0&&(0,V.jsxs)(`div`,{className:`panel`,children:[(0,V.jsxs)(`div`,{className:`panel-head`,children:[(0,V.jsx)(`h3`,{children:`Recent Events`}),(0,V.jsxs)(`span`,{className:`meta`,children:[e.auditTotal.toLocaleString(),` total`]})]}),(0,V.jsx)(`div`,{className:`panel-body`,style:{padding:0},children:(0,V.jsxs)(`table`,{children:[(0,V.jsx)(`thead`,{children:(0,V.jsxs)(`tr`,{children:[(0,V.jsx)(`th`,{children:`Type`}),(0,V.jsx)(`th`,{children:`Account`}),(0,V.jsx)(`th`,{children:`IP`}),(0,V.jsx)(`th`,{children:`When`})]})}),(0,V.jsx)(`tbody`,{children:e.recentEvents.map(e=>(0,V.jsxs)(`tr`,{className:`static`,style:{cursor:`default`},children:[(0,V.jsx)(`td`,{children:(0,V.jsx)(`span`,{className:`badge ${dU(e.type)}`,children:e.type})}),(0,V.jsx)(`td`,{children:(0,V.jsx)(`span`,{style:{fontFamily:`var(--mono)`,fontSize:`11.5px`},children:e.email??e.accountId??`—`})}),(0,V.jsx)(`td`,{children:(0,V.jsx)(`span`,{className:`code`,children:e.ip??`—`})}),(0,V.jsx)(`td`,{children:(0,V.jsx)(`span`,{style:{fontFamily:`var(--mono)`,fontSize:`11px`,color:`var(--faint)`},children:e.createdAt?uU(e.createdAt):`—`})})]},e.id))})]})})]})})}function _U(){return(0,V.jsxs)(`div`,{children:[(0,V.jsxs)(`div`,{className:`page-header`,children:[(0,V.jsx)(`div`,{className:`page-title`,children:`Overview`}),(0,V.jsx)(`div`,{className:`page-sub`,children:`Identity provider metrics`})]}),(0,V.jsx)(fU,{}),(0,V.jsxs)(`div`,{className:`grid-2`,style:{marginTop:16},children:[(0,V.jsx)(mU,{}),(0,V.jsx)(hU,{})]}),(0,V.jsx)(`div`,{style:{marginTop:16},children:(0,V.jsx)(gU,{})})]})}var vU=`ADMIN`;function yU({onEdit:e,onDelete:t,onUnavailable:n}){let[r,i]=(0,B.useState)(!1),{data:a,isLoading:o,error:s,refetch:c}=ns({...ks(),retry:(e,t)=>t&&typeof t==`object`&&`status`in t&&t.status===404?(r||(i(!0),n()),!1):e<1}),l=a?.data??[];return(0,V.jsx)(`div`,{className:`panel`,children:(0,V.jsx)(gl,{isLoading:o,error:s&&!(typeof s==`object`&&`status`in s&&s.status===404)?s:void 0,onRetry:c,skeleton:(0,V.jsx)(Sl,{rows:4,cols:4}),children:l.length===0?(0,V.jsxs)(`div`,{className:`empty-state`,children:[(0,V.jsxs)(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.5`,children:[(0,V.jsx)(`circle`,{cx:`12`,cy:`8`,r:`4`}),(0,V.jsx)(`path`,{d:`M2 20a10 10 0 0120 0`})]}),(0,V.jsx)(`h4`,{children:`No roles yet`}),(0,V.jsx)(`p`,{children:`Create roles to assign permissions to users`})]}):(0,V.jsx)(`div`,{className:`tbl-wrap`,children:(0,V.jsxs)(`table`,{children:[(0,V.jsx)(`thead`,{children:(0,V.jsxs)(`tr`,{children:[(0,V.jsx)(`th`,{children:`Name`}),(0,V.jsx)(`th`,{children:`Description`}),(0,V.jsx)(`th`,{children:`Type`}),(0,V.jsx)(`th`,{style:{width:80}})]})}),(0,V.jsx)(`tbody`,{children:l.map(n=>(0,V.jsxs)(`tr`,{style:{cursor:`default`},children:[(0,V.jsx)(`td`,{children:(0,V.jsx)(`span`,{style:{fontFamily:`var(--mono)`,fontWeight:600,color:n.name===vU?`var(--accent)`:`var(--text)`},children:n.name})}),(0,V.jsx)(`td`,{children:(0,V.jsx)(`span`,{style:{color:`var(--muted)`,fontSize:12},children:n.description??`—`})}),(0,V.jsx)(`td`,{children:(0,V.jsx)(`span`,{className:`badge ${`builtin`in n&&n.builtin?`badge-accent`:`badge-muted`}`,children:`builtin`in n&&n.builtin?`built-in`:`custom`})}),(0,V.jsx)(`td`,{className:`no-click`,style:{textAlign:`right`},children:(0,V.jsxs)(`div`,{style:{display:`flex`,gap:6,justifyContent:`flex-end`},children:[(0,V.jsx)(`button`,{className:`btn btn-sm`,onClick:()=>e(n),children:`Edit`}),n.name!==vU&&(0,V.jsx)(`button`,{className:`btn btn-sm btn-danger`,onClick:()=>t(n),children:(0,V.jsx)(`svg`,{viewBox:`0 0 16 16`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.8`,children:(0,V.jsx)(`path`,{d:`M2 4.5h12M5.5 4.5V3h5v1.5M10.5 4.5v8a1 1 0 01-1 1h-3a1 1 0 01-1-1v-8`,strokeLinecap:`round`})})})]})})]},n.name))})]})})})})}function bU(){let e=Ll(),t=Vo(),n=W(),[r,i]=(0,B.useState)(!1),[a,o]=(0,B.useState)(null),[s,c]=(0,B.useState)({name:``,description:``}),[l,u]=(0,B.useState)(!1),[d,f]=(0,B.useState)(!1),p=rs(As());async function m(n){n.preventDefault(),u(!0);try{await p.mutateAsync({name:s.name.trim().toUpperCase(),description:s.description||void 0}),t.invalidateQueries({queryKey:G.admin.roles()}),e.success(`Role created`),i(!1),c({name:``,description:``})}catch(t){e.error(t instanceof Error?t.message:String(t))}finally{u(!1)}}async function h(r){if(r.preventDefault(),a){u(!0);try{await n.admin.roles.update(a.name,{description:s.description||void 0}),t.invalidateQueries({queryKey:G.admin.roles()}),e.success(`Role updated`),o(null)}catch(t){e.error(t instanceof Error?t.message:String(t))}finally{u(!1)}}}async function g(r){if(confirm(`Delete role ${r.name}?`))try{await n.admin.roles.remove(r.name),t.invalidateQueries({queryKey:G.admin.roles()}),e.success(`Role deleted`)}catch(t){e.error(t instanceof Error?t.message:String(t))}}return d?(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`div`,{className:`page-title`,style:{marginBottom:8},children:`Roles`}),(0,V.jsxs)(`div`,{className:`error-box`,children:[`Role catalog requires the `,(0,V.jsx)(`code`,{children:`auth_settings`}),` table (runtime settings). Run the migration to enable this feature.`]})]}):(0,V.jsxs)(`div`,{children:[(0,V.jsxs)(`div`,{className:`page-header-row`,children:[(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`div`,{className:`page-title`,children:`Roles`}),(0,V.jsx)(`div`,{className:`page-sub`,children:`Global role catalog`})]}),(0,V.jsx)(`div`,{className:`page-actions`,children:(0,V.jsxs)(`button`,{className:`btn btn-primary`,onClick:()=>{c({name:``,description:``}),i(!0)},children:[(0,V.jsx)(`svg`,{viewBox:`0 0 16 16`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,children:(0,V.jsx)(`path`,{d:`M8 2v12M2 8h12`,strokeLinecap:`round`})}),`New Role`]})})]}),(0,V.jsx)(yU,{onEdit:e=>{o(e),c({name:e.name,description:e.description??``})},onDelete:g,onUnavailable:()=>f(!0)}),(0,V.jsx)(Al,{open:r,onClose:()=>i(!1),title:`New Role`,footer:(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`button`,{className:`btn`,onClick:()=>i(!1),children:`Cancel`}),(0,V.jsx)(`button`,{className:`btn btn-primary`,onClick:m,disabled:l,children:l?(0,V.jsx)(`span`,{className:`spinner sm`}):`Create Role`})]}),children:(0,V.jsxs)(`form`,{onSubmit:m,children:[(0,V.jsxs)(`div`,{className:`field`,children:[(0,V.jsx)(`label`,{children:`Name * (uppercase)`}),(0,V.jsx)(`input`,{className:`input input-mono`,required:!0,value:s.name,onChange:e=>c(t=>({...t,name:e.target.value.toUpperCase()})),placeholder:`EDITOR`}),(0,V.jsx)(`div`,{className:`hint`,children:`Letters, digits, underscore. E.g. ADMIN, CONTENT_MANAGER`})]}),(0,V.jsxs)(`div`,{className:`field`,children:[(0,V.jsx)(`label`,{children:`Description`}),(0,V.jsx)(`input`,{className:`input`,value:s.description,onChange:e=>c(t=>({...t,description:e.target.value})),placeholder:`Can edit content`})]})]})}),(0,V.jsx)(Al,{open:!!a,onClose:()=>o(null),title:`Edit Role — ${a?.name}`,footer:(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`button`,{className:`btn`,onClick:()=>o(null),children:`Cancel`}),(0,V.jsx)(`button`,{className:`btn btn-primary`,onClick:h,disabled:l,children:l?(0,V.jsx)(`span`,{className:`spinner sm`}):`Save`})]}),children:(0,V.jsxs)(`div`,{className:`field`,children:[(0,V.jsx)(`label`,{children:`Description`}),(0,V.jsx)(`input`,{className:`input`,value:s.description,onChange:e=>c(t=>({...t,description:e.target.value}))})]})})]})}var xU=20;function SU({page:e,onPage:t}){let{data:n,isLoading:r,error:i,refetch:a}=ns(ws()),o=n?.sessions??[],s=o.length,c=o.slice((e-1)*xU,e*xU);return(0,V.jsx)(`div`,{className:`panel`,children:(0,V.jsx)(gl,{isLoading:r,error:i,onRetry:a,skeleton:(0,V.jsx)(Sl,{rows:8,cols:6}),children:c.length===0?(0,V.jsxs)(`div`,{className:`empty-state`,children:[(0,V.jsxs)(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.5`,children:[(0,V.jsx)(`rect`,{x:`2`,y:`4`,width:`20`,height:`16`,rx:`2`}),(0,V.jsx)(`circle`,{cx:`12`,cy:`12`,r:`3`})]}),(0,V.jsx)(`h4`,{children:`No active sessions`}),(0,V.jsx)(`p`,{children:`No users are currently logged in`})]}):(0,V.jsxs)(`div`,{className:`tbl-wrap`,children:[(0,V.jsxs)(`table`,{children:[(0,V.jsx)(`thead`,{children:(0,V.jsxs)(`tr`,{children:[(0,V.jsx)(`th`,{children:`Account`}),(0,V.jsx)(`th`,{children:`Browser / OS`}),(0,V.jsx)(`th`,{children:`IP`}),(0,V.jsx)(`th`,{children:`Location`}),(0,V.jsx)(`th`,{children:`Login`}),(0,V.jsx)(`th`,{children:`Methods`})]})}),(0,V.jsx)(`tbody`,{children:c.map(e=>(0,V.jsxs)(`tr`,{style:{cursor:`default`},children:[(0,V.jsx)(`td`,{children:(0,V.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:2},children:[e.email&&(0,V.jsx)(`span`,{style:{fontSize:12,fontWeight:500,color:`var(--text)`},children:e.email}),(0,V.jsx)(`span`,{className:`mono text-sm`,style:{color:e.email?`var(--faint)`:void 0},children:e.accountId})]})}),(0,V.jsx)(`td`,{children:(0,V.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:2},children:[(0,V.jsx)(`span`,{style:{color:`var(--text)`,fontWeight:500,fontSize:12},children:e.browser??`—`}),(0,V.jsx)(`span`,{style:{color:`var(--faint)`,fontSize:11},children:e.os??``})]})}),(0,V.jsx)(`td`,{children:(0,V.jsx)(`span`,{className:`code`,children:e.ip??`—`})}),(0,V.jsx)(`td`,{children:(0,V.jsx)(`span`,{style:{fontSize:11.5,color:`var(--muted)`},children:e.location??`—`})}),(0,V.jsx)(`td`,{children:(0,V.jsx)(`span`,{style:{fontFamily:`var(--mono)`,fontSize:11,color:`var(--faint)`},children:e.loginTs?new Date(e.loginTs).toLocaleString():`—`})}),(0,V.jsx)(`td`,{children:(0,V.jsx)(`div`,{style:{display:`flex`,gap:4,flexWrap:`wrap`},children:e.amr.length===0?(0,V.jsx)(`span`,{className:`badge badge-muted`,children:`—`}):e.amr.map(e=>(0,V.jsx)(`span`,{className:`badge badge-muted`,children:e},e))})})]},e.id))})]}),(0,V.jsx)(`div`,{style:{padding:`0 16px 12px`},children:(0,V.jsx)(ul,{page:e,total:s,perPage:xU,onPage:t})})]})})})}function CU(){let{data:e}=ns(ws());return e?.sessions.length??0}function wU(){let e=Ll(),t=Vo(),[n,r]=tl(`page`,Kc.withDefault(1)),i=CU(),a=rs(Ts());async function o(){if(confirm(`Revoke ALL active sessions? All users will be logged out.`))try{let n=await a.mutateAsync();e.success(`Revoked ${n.revoked??0} sessions`),t.invalidateQueries({queryKey:G.admin.sessions()})}catch(t){e.error(t instanceof Error?t.message:String(t))}}return(0,V.jsxs)(`div`,{children:[(0,V.jsxs)(`div`,{className:`page-header-row`,children:[(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`div`,{className:`page-title`,children:`Sessions`}),(0,V.jsxs)(`div`,{className:`page-sub`,children:[i.toLocaleString(),` active sessions`]})]}),(0,V.jsx)(`div`,{className:`page-actions`,children:(0,V.jsxs)(`button`,{className:`btn btn-danger`,onClick:o,disabled:a.isPending,children:[a.isPending?(0,V.jsx)(`span`,{className:`spinner sm`}):(0,V.jsx)(`svg`,{viewBox:`0 0 16 16`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.8`,children:(0,V.jsx)(`path`,{d:`M4 4l8 8M12 4l-8 8`,strokeLinecap:`round`})}),`Revoke All`]})})]}),(0,V.jsx)(SU,{page:n,onPage:r})]})}function TU({rowCount:e=4}){return(0,V.jsx)(`div`,{style:{background:`var(--bg2)`,border:`1px solid var(--line)`,borderRadius:`var(--radius)`,overflow:`hidden`},children:Array.from({length:e}).map((t,n)=>(0,V.jsxs)(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`,padding:`14px 16px`,borderBottom:n<e-1?`1px solid var(--line)`:void 0,gap:16},children:[(0,V.jsxs)(`div`,{style:{flex:1,display:`flex`,flexDirection:`column`,gap:6},children:[(0,V.jsx)(K,{width:`40%`,height:13}),(0,V.jsx)(K,{width:`70%`,height:11})]}),(0,V.jsx)(K,{width:44,height:24,borderRadius:12})]},n))})}function EU(){return(0,V.jsxs)(`span`,{className:`settings-badge`,title:`Definido via defineConfig() — gerenciado no código, não editável aqui`,style:{background:`var(--accent-soft, rgba(99,102,241,0.12))`,color:`var(--accent, #6366f1)`,borderColor:`rgba(99,102,241,0.3)`,display:`inline-flex`,alignItems:`center`,gap:4},children:[(0,V.jsxs)(`svg`,{viewBox:`0 0 16 16`,width:`10`,height:`10`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.8`,"aria-hidden":!0,children:[(0,V.jsx)(`rect`,{x:`3`,y:`7`,width:`10`,height:`7`,rx:`1.5`}),(0,V.jsx)(`path`,{d:`M5 7V5a3 3 0 016 0v2`,strokeLinecap:`round`})]}),`definido via config`]})}function DU({section:e,onUnavailable:t}){let n=Ll(),r=Vo(),[i,a]=(0,B.useState)(!1),[o,s]=(0,B.useState)(null),[c,l]=(0,B.useState)(!1),[u,d]=(0,B.useState)(!1),{data:f,isLoading:p,error:m,refetch:h}=ns({...Hs(),retry:(e,n)=>n&&typeof n==`object`&&`status`in n&&n.status===404?(i||(a(!0),t()),!1):e<1}),g=f?.data??[],_=(f?.locked??[]).includes(e.settingKey),v=g.find(t=>t.key===e.settingKey),y=!v,b=v&&typeof v.value==`object`&&v.value!==null&&!Array.isArray(v.value)?v.value:{},x=o??b;(0,B.useEffect)(()=>{s(null),l(!1)},[f]);let S=rs(Us()),C=rs(Ws());function w(e){return e.field in x?x[e.field]:e.defaultValue}function T(e,t){s(n=>({...n??b,[e.field]:t})),l(!0)}async function E(){d(!0);try{let t={...x};for(let n of e.fields)n.field in t||(t[n.field]=n.defaultValue);await S.mutateAsync({key:e.settingKey,value:t}),r.invalidateQueries({queryKey:G.admin.settings()}),l(!1),n.success(`Salvo: ${e.settingKey}`)}catch(e){n.error(e instanceof Error?e.message:String(e))}finally{d(!1)}}async function D(){d(!0);try{await C.mutateAsync(e.settingKey),r.invalidateQueries({queryKey:G.admin.settings()}),s(null),l(!1),n.success(`Voltou ao default: ${e.settingKey}`)}catch(e){n.error(e instanceof Error?e.message:String(e))}finally{d(!1)}}let O=m&&typeof m==`object`&&`status`in m&&m.status===404,k=m&&!O?m:void 0;return(0,V.jsxs)(`div`,{className:`settings-section`,children:[(0,V.jsxs)(`div`,{className:`settings-section-head`,children:[(0,V.jsxs)(`div`,{children:[(0,V.jsxs)(`h3`,{style:{display:`flex`,alignItems:`center`,gap:8},children:[e.title,_&&(0,V.jsx)(EU,{}),!_&&!y&&(0,V.jsx)(`span`,{className:`settings-badge`,children:`custom`}),c&&!_&&(0,V.jsx)(`span`,{className:`settings-badge`,style:{background:`var(--amber-soft)`,color:`var(--amber)`,borderColor:`rgba(255,180,84,0.3)`},children:`unsaved`})]}),(0,V.jsx)(`p`,{style:{marginTop:2},children:e.description}),_&&(0,V.jsxs)(`p`,{style:{marginTop:4,color:`var(--accent, #6366f1)`,fontSize:12},children:[`Travado no `,(0,V.jsx)(`code`,{children:`defineConfig()`}),` — o config tem prioridade sobre o runtime. Remova de lá para editar por aqui.`]}),(0,V.jsx)(`div`,{style:{fontSize:10.5,color:`var(--faint)`,fontFamily:`var(--mono)`,marginTop:2},children:e.settingKey})]}),!_&&(0,V.jsxs)(`div`,{className:`settings-control`,style:{gap:8},children:[c&&(0,V.jsx)(`button`,{className:`btn btn-primary btn-sm`,disabled:u,onClick:E,children:u?(0,V.jsx)(`span`,{className:`spinner sm`}):`Salvar`}),!y&&!c&&(0,V.jsx)(`button`,{className:`btn btn-ghost btn-sm`,disabled:u,onClick:D,title:`Voltar ao default`,children:(0,V.jsxs)(`svg`,{viewBox:`0 0 16 16`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.8`,children:[(0,V.jsx)(`path`,{d:`M2 8a6 6 0 016-6 6 6 0 014.24 1.76L14 5`,strokeLinecap:`round`}),(0,V.jsx)(`path`,{d:`M14 2v3h-3`,strokeLinecap:`round`})]})})]})]}),(0,V.jsx)(gl,{isLoading:p,error:k,onRetry:h,skeleton:(0,V.jsx)(TU,{rowCount:e.fields.length}),children:(0,V.jsx)(`div`,{className:`panel`,children:(0,V.jsx)(`div`,{className:`panel-body`,style:{padding:0},children:e.fields.map(e=>{let t=w(e);return(0,V.jsxs)(`div`,{className:`settings-row`,style:_?{opacity:.85}:void 0,children:[(0,V.jsxs)(`div`,{className:`settings-info`,children:[(0,V.jsx)(`div`,{className:`settings-key`,children:e.label}),(0,V.jsx)(`div`,{className:`settings-desc`,children:e.description})]}),(0,V.jsx)(`div`,{className:`settings-control`,children:e.type===`boolean`?(0,V.jsxs)(`label`,{className:`toggle`,children:[(0,V.jsx)(`input`,{type:`checkbox`,checked:!!t,disabled:_,onChange:t=>T(e,t.target.checked)}),(0,V.jsx)(`div`,{className:`toggle-track`}),(0,V.jsx)(`div`,{className:`toggle-thumb`})]}):e.type===`number`?(0,V.jsx)(`input`,{className:`input input-mono`,type:`number`,style:{width:90,textAlign:`right`},value:String(t??e.defaultValue??0),disabled:_,onChange:t=>T(e,Number(t.target.value))}):(0,V.jsx)(`input`,{className:`input`,style:{width:220},value:String(t??e.defaultValue??``),disabled:_,onChange:t=>T(e,t.target.value)})})]},e.field)})})})})]})}var OU=[{title:`Métodos de login`,description:`Quais métodos a tela de login oferece. Travável via defineConfig({ authMethods }).`,settingKey:`auth_methods`,fields:[{field:`password`,label:`Senha`,description:`Login por e-mail + senha`,type:`boolean`,defaultValue:!0},{field:`magicLink`,label:`Magic link`,description:`Login por link enviado no e-mail (requer mail + passwordless.magicLink)`,type:`boolean`,defaultValue:!1},{field:`passkey`,label:`Passkey`,description:`Entrar com passkey (WebAuthn) antes da senha`,type:`boolean`,defaultValue:!1},{field:`forgotPassword`,label:`Esqueci a senha`,description:`Link de reset (só aparece com senha ligada)`,type:`boolean`,defaultValue:!0},{field:`passkeyAutofill`,label:`Autofill de passkey`,description:`Sugestões de passkey no input de e-mail (conditional mediation)`,type:`boolean`,defaultValue:!0}]},{title:`Cadastro`,description:`Cadastro público (self-service).`,settingKey:`registration`,fields:[{field:`enabled`,label:`Permitir cadastro`,description:`Novos usuários podem se cadastrar sozinhos`,type:`boolean`,defaultValue:!0}]},{title:`Verificação de e-mail`,description:`Exigir e-mail verificado para logar.`,settingKey:`require_verified_email`,fields:[{field:`enabled`,label:`Exigir e-mail verificado`,description:`Bloqueia login de contas com e-mail não verificado`,type:`boolean`,defaultValue:!1},{field:`graceDays`,label:`Dias de graça`,description:`Permite login não-verificado por N dias após o cadastro (0 = sem graça)`,type:`number`,defaultValue:0}]},{title:`Manutenção`,description:`Modo manutenção — bloqueia login de contas comuns (admin segue entrando).`,settingKey:`maintenance_mode`,fields:[{field:`enabled`,label:`Modo manutenção`,description:`Telas de login/signup mostram página de manutenção`,type:`boolean`,defaultValue:!1},{field:`message`,label:`Mensagem`,description:`Texto exibido na página de manutenção (vazio = default)`,type:`string`,defaultValue:``}]},{title:`Bloqueio por falha (lockout)`,description:`Trava a conta após tentativas de login falhas.`,settingKey:`lockout`,fields:[{field:`enabled`,label:`Ligar lockout`,description:`Trava a conta após muitas falhas de senha`,type:`boolean`,defaultValue:!1},{field:`maxAttempts`,label:`Máx. tentativas`,description:`Falhas antes de travar`,type:`number`,defaultValue:5},{field:`windowSec`,label:`Janela (s)`,description:`Janela em que as falhas contam`,type:`number`,defaultValue:900},{field:`baseLockoutSec`,label:`Trava base (s)`,description:`Duração inicial da trava (backoff exponencial)`,type:`number`,defaultValue:60},{field:`maxLockoutSec`,label:`Trava máx. (s)`,description:`Teto da duração da trava`,type:`number`,defaultValue:3600}]},{title:`TTL dos tokens`,description:`Tempo de vida dos tokens OIDC (segundos).`,settingKey:`token_ttl`,fields:[{field:`accessTokenSec`,label:`Access token (s)`,description:`Validade do access token`,type:`number`,defaultValue:3600},{field:`idTokenSec`,label:`ID token (s)`,description:`Validade do ID token`,type:`number`,defaultValue:3600},{field:`refreshTokenSec`,label:`Refresh token (s)`,description:`Validade do refresh token`,type:`number`,defaultValue:2592e3}]}];function kU(){let[e,t]=(0,B.useState)(!1);return e?(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`div`,{className:`page-title`,style:{marginBottom:8},children:`Settings`}),(0,V.jsxs)(`div`,{className:`error-box`,children:[`Runtime settings exigem a tabela `,(0,V.jsx)(`code`,{children:`auth_settings`}),`. Rode a migration para habilitar.`]})]}):(0,V.jsxs)(`div`,{children:[(0,V.jsxs)(`div`,{className:`page-header`,children:[(0,V.jsx)(`div`,{className:`page-title`,children:`Settings`}),(0,V.jsxs)(`div`,{className:`page-sub`,children:[`Configuração de runtime — mudanças valem na hora. Settings definidas no`,` `,(0,V.jsx)(`code`,{children:`defineConfig()`}),` ficam travadas (config > runtime).`]})]}),OU.map(e=>(0,V.jsx)(DU,{section:e,onUnavailable:()=>t(!0)},e.settingKey))]})}function AU({search:e,page:t,onPage:n,onSelectUser:r}){let{data:i,isLoading:a,error:o,refetch:s}=ns(ms({search:e,page:t,limit:20})),c=i?.data??[],l=i?.total??0;return(0,V.jsxs)(V.Fragment,{children:[!a&&!o&&(0,V.jsx)(`div`,{style:{marginBottom:4},children:(0,V.jsxs)(`span`,{className:`page-sub`,style:{fontSize:12,color:`var(--faint)`},children:[l.toLocaleString(),` accounts`]})}),(0,V.jsx)(`div`,{className:`panel`,children:(0,V.jsx)(gl,{isLoading:a,error:o,onRetry:s,skeleton:(0,V.jsx)(Sl,{rows:6,cols:3}),children:c.length===0?(0,V.jsxs)(`div`,{className:`empty-state`,children:[(0,V.jsxs)(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.5`,children:[(0,V.jsx)(`circle`,{cx:`12`,cy:`8`,r:`4`}),(0,V.jsx)(`path`,{d:`M4 20c0-4.42 3.58-8 8-8s8 3.58 8 8`})]}),(0,V.jsx)(`h4`,{children:`No users found`}),(0,V.jsx)(`p`,{children:e?`Try a different search term`:`No accounts registered yet`})]}):(0,V.jsxs)(`div`,{className:`tbl-wrap`,children:[(0,V.jsxs)(`table`,{children:[(0,V.jsx)(`thead`,{children:(0,V.jsxs)(`tr`,{children:[(0,V.jsx)(`th`,{children:`User`}),(0,V.jsx)(`th`,{children:`Roles`}),(0,V.jsx)(`th`,{children:`Status`})]})}),(0,V.jsx)(`tbody`,{children:c.map(e=>(0,V.jsxs)(`tr`,{onClick:()=>r(e.id),children:[(0,V.jsx)(`td`,{children:(0,V.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:10},children:[(0,V.jsx)(`div`,{className:`avatar`,style:{width:26,height:26,fontSize:10},children:e.email.slice(0,2).toUpperCase()}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`div`,{style:{color:`var(--text)`,fontWeight:500,fontSize:12.5},children:e.email}),e.name&&(0,V.jsx)(`div`,{style:{color:`var(--faint)`,fontSize:11},children:e.name})]})]})}),(0,V.jsx)(`td`,{children:(0,V.jsx)(`div`,{style:{display:`flex`,gap:4,flexWrap:`wrap`},children:e.globalRoles.length===0?(0,V.jsx)(`span`,{className:`badge badge-muted`,children:`no roles`}):e.globalRoles.map(e=>(0,V.jsx)(`span`,{className:`badge badge-accent`,children:e},e))})}),(0,V.jsx)(`td`,{children:(0,V.jsx)(`span`,{className:`badge ${e.disabled?`badge-red`:`badge-green`}`,children:e.disabled?`disabled`:`active`})})]},e.id))})]}),(0,V.jsx)(`div`,{style:{padding:`0 16px 12px`},children:(0,V.jsx)(ul,{page:t,total:l,perPage:20,onPage:n})})]})})})]})}function jU({userId:e,onMutated:t,onClose:n}){let r=Ll(),i=Vo(),{data:a,isLoading:o,error:s,refetch:c}=ns(hs(e)),l=rs(ys(e)),u=rs(bs(e)),d=rs(xs(e)),f=rs(Ss(e)),p=rs(Cs(e)),m=ns({...Gs(e),enabled:!1});async function h(){if(a)try{a.disabled?(await u.mutateAsync(),r.success(`User enabled`)):(await l.mutateAsync(),r.success(`User disabled`)),i.invalidateQueries({queryKey:G.admin.user(e)}),t()}catch(e){r.error(e instanceof Error?e.message:String(e))}}async function g(){try{await d.mutateAsync(),r.success(`Reset email sent`)}catch(e){r.error(e instanceof Error?e.message:String(e))}}async function _(){if(a&&confirm(`Delete user ${a.email}? This cannot be undone.`))try{await f.mutateAsync(),r.success(`User deleted`),n(),t()}catch(e){r.error(e instanceof Error?e.message:String(e))}}async function v(){if(a&&confirm(`Disconnect ${a.email} from all devices? Every active session and grant will be revoked.`))try{let t=await p.mutateAsync();r.success(`Disconnected from all devices${typeof t?.revoked==`number`?` (${t.revoked} sessions)`:``}`),i.invalidateQueries({queryKey:G.admin.userSessions(e)})}catch(e){r.error(e instanceof Error?e.message:String(e))}}async function y(){try{let e=await m.refetch();if(e.data){let t=e.data.url;typeof t==`string`?window.open(t,`_blank`):r.error(`Impersonation URL not available`)}}catch(e){r.error(e instanceof Error?e.message:`Impersonation not available`)}}return(0,V.jsx)(gl,{isLoading:o,error:s,onRetry:c,skeleton:(0,V.jsx)(`div`,{children:(0,V.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:12,marginBottom:16},children:[(0,V.jsx)(`div`,{style:{width:44,height:44,borderRadius:`50%`,background:`var(--bg3)`,backgroundImage:`linear-gradient(90deg, var(--bg3) 0%, var(--bg2) 40%, var(--bg3) 100%)`,backgroundSize:`200% 100%`,animation:`sk-shimmer 1.6s ease-in-out infinite`}}),(0,V.jsxs)(`div`,{style:{flex:1,display:`flex`,flexDirection:`column`,gap:6},children:[(0,V.jsx)(`div`,{style:{height:14,width:`60%`,borderRadius:6,background:`var(--bg3)`,backgroundImage:`linear-gradient(90deg, var(--bg3) 0%, var(--bg2) 40%, var(--bg3) 100%)`,backgroundSize:`200% 100%`,animation:`sk-shimmer 1.6s ease-in-out infinite`}}),(0,V.jsx)(`div`,{style:{height:11,width:`40%`,borderRadius:6,background:`var(--bg3)`,backgroundImage:`linear-gradient(90deg, var(--bg3) 0%, var(--bg2) 40%, var(--bg3) 100%)`,backgroundSize:`200% 100%`,animation:`sk-shimmer 1.6s ease-in-out infinite`}})]})]})}),children:a&&(0,V.jsxs)(`div`,{children:[(0,V.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:12,marginBottom:16},children:[(0,V.jsx)(`div`,{className:`avatar`,style:{width:44,height:44,fontSize:15},children:a.email.slice(0,2).toUpperCase()}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`div`,{style:{fontWeight:600,fontSize:14},children:a.email}),a.name&&(0,V.jsx)(`div`,{style:{color:`var(--faint)`,fontSize:12},children:a.name}),(0,V.jsx)(`div`,{style:{marginTop:4},children:(0,V.jsx)(`span`,{className:`badge ${a.disabled?`badge-red`:`badge-green`}`,children:a.disabled?`disabled`:`active`})})]})]}),(0,V.jsxs)(`div`,{className:`code`,style:{fontSize:11,padding:`6px 10px`},children:[`ID: `,a.id]}),(0,V.jsxs)(`div`,{style:{marginTop:16},children:[(0,V.jsx)(`div`,{style:{fontSize:10.5,letterSpacing:`0.12em`,textTransform:`uppercase`,color:`var(--faint)`,fontWeight:600,marginBottom:8},children:`Actions`}),(0,V.jsxs)(`div`,{style:{display:`flex`,flexWrap:`wrap`,gap:6},children:[(0,V.jsx)(`button`,{className:`btn btn-sm ${a.disabled?``:`btn-danger`}`,onClick:h,disabled:l.isPending||u.isPending,children:a.disabled?`Enable account`:`Disable account`}),(0,V.jsx)(`button`,{className:`btn btn-sm`,onClick:g,disabled:d.isPending,children:`Reset password`}),(0,V.jsx)(`button`,{className:`btn btn-sm`,onClick:y,disabled:m.isFetching,children:`Impersonate`}),(0,V.jsx)(`button`,{className:`btn btn-sm btn-danger`,onClick:v,disabled:p.isPending,children:`Disconnect all devices`}),(0,V.jsx)(`button`,{className:`btn btn-sm btn-danger`,onClick:_,disabled:f.isPending,children:`Delete user`})]})]})]})})}function MU({userId:e,onMutated:t}){let n=Ll(),r=Vo(),{data:i,isLoading:a,error:o,refetch:s}=ns(hs(e)),c=rs(vs(e)),[l,u]=(0,B.useState)([]);(0,B.useEffect)(()=>{i&&u(i.globalRoles)},[i]);let d=e=>{u(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])};async function f(){try{await c.mutateAsync({globalRoles:l}),n.success(`Roles updated`),r.invalidateQueries({queryKey:G.admin.user(e)}),t()}catch(e){n.error(e instanceof Error?e.message:String(e))}}return(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`div`,{style:{fontSize:10.5,letterSpacing:`0.12em`,textTransform:`uppercase`,color:`var(--faint)`,fontWeight:600,marginBottom:8},children:`Global Roles`}),(0,V.jsx)(gl,{isLoading:a,error:o,onRetry:s,skeleton:(0,V.jsx)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:8},children:[1,2].map(e=>(0,V.jsx)(`div`,{style:{height:20,borderRadius:6,background:`var(--bg3)`,backgroundImage:`linear-gradient(90deg, var(--bg3) 0%, var(--bg2) 40%, var(--bg3) 100%)`,backgroundSize:`200% 100%`,animation:`sk-shimmer 1.6s ease-in-out infinite`}},e))}),children:i&&(0,V.jsxs)(V.Fragment,{children:[l.length===0&&(0,V.jsx)(`div`,{style:{fontSize:12,color:`var(--faint)`,marginBottom:8},children:`No roles assigned`}),i.globalRoles.map(e=>(0,V.jsxs)(`label`,{className:`checkbox-row`,children:[(0,V.jsx)(`input`,{type:`checkbox`,checked:l.includes(e),onChange:()=>d(e)}),(0,V.jsx)(`div`,{children:(0,V.jsx)(`div`,{className:`chk-label`,children:e})})]},e)),(0,V.jsx)(`button`,{className:`btn btn-primary btn-sm`,style:{marginTop:10},onClick:f,disabled:c.isPending,children:c.isPending?(0,V.jsx)(`span`,{className:`spinner sm`}):`Save roles`})]})})]})}function NU({userId:e}){let{data:t,isLoading:n,error:r,refetch:i}=ns(gs(e)),a=t?.sessions??[];return(0,V.jsxs)(`div`,{children:[(0,V.jsxs)(`div`,{style:{fontSize:10.5,letterSpacing:`0.12em`,textTransform:`uppercase`,color:`var(--faint)`,fontWeight:600,marginBottom:8},children:[`Sessions `,!n&&!r?`(${a.length})`:``]}),(0,V.jsx)(gl,{isLoading:n,error:r,onRetry:i,skeleton:(0,V.jsx)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:8},children:[1,2].map(e=>(0,V.jsx)(`div`,{style:{height:44,borderRadius:8,background:`var(--bg3)`,backgroundImage:`linear-gradient(90deg, var(--bg3) 0%, var(--bg2) 40%, var(--bg3) 100%)`,backgroundSize:`200% 100%`,animation:`sk-shimmer 1.6s ease-in-out infinite`}},e))}),children:a.length===0?(0,V.jsx)(`div`,{style:{fontSize:12,color:`var(--faint)`},children:`No active sessions`}):a.map(e=>(0,V.jsxs)(`div`,{className:`panel`,style:{marginBottom:8,padding:`10px 12px`},children:[(0,V.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:8,fontSize:12},children:[(0,V.jsxs)(`svg`,{width:`13`,height:`13`,viewBox:`0 0 16 16`,fill:`none`,stroke:`var(--muted)`,strokeWidth:`1.6`,children:[(0,V.jsx)(`rect`,{x:`1.5`,y:`3.5`,width:`13`,height:`9`,rx:`1.5`}),(0,V.jsx)(`circle`,{cx:`8`,cy:`8.5`,r:`2`})]}),(0,V.jsx)(`span`,{style:{color:`var(--text)`,fontWeight:500},children:e.browser??`Unknown browser`}),(0,V.jsx)(`span`,{style:{color:`var(--faint)`},children:e.os}),(0,V.jsx)(`span`,{className:`code ml-auto`,children:e.ip??`—`})]}),e.location&&(0,V.jsx)(`div`,{style:{fontSize:11,color:`var(--faint)`,marginTop:4},children:e.location})]},e.id))})]})}function PU({userId:e,onClose:t,onMutated:n}){let{data:r}=ns(hs(e));return(0,V.jsx)(Hl,{open:!0,onClose:t,title:r?.email??`User detail`,children:(0,V.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:20},children:[(0,V.jsx)(jU,{userId:e,onMutated:n,onClose:t}),(0,V.jsx)(MU,{userId:e,onMutated:n}),(0,V.jsx)(NU,{userId:e})]})})}function FU(){let e=Ll(),t=Vo(),[n,r]=tl(`page`,Kc.withDefault(1)),[i,a]=tl(`q`,Gc.withDefault(``)),[o,s]=tl(`user`),c=Ul(i,300),[l,u]=(0,B.useState)(!1),[d,f]=(0,B.useState)({email:``,name:``,password:``,invite:!1}),p=rs(_s());async function m(n){n.preventDefault();try{await p.mutateAsync({email:d.email,name:d.name||void 0,password:d.password||void 0,invite:d.invite}),t.invalidateQueries({queryKey:G.admin.users()}),e.success(`User created`),u(!1),f({email:``,name:``,password:``,invite:!1})}catch(t){e.error(t instanceof Error?t.message:String(t))}}return(0,V.jsxs)(`div`,{children:[(0,V.jsxs)(`div`,{className:`page-header-row`,children:[(0,V.jsx)(`div`,{children:(0,V.jsx)(`div`,{className:`page-title`,children:`Users`})}),(0,V.jsx)(`div`,{className:`page-actions`,children:(0,V.jsxs)(`button`,{className:`btn btn-primary`,onClick:()=>u(!0),children:[(0,V.jsx)(`svg`,{viewBox:`0 0 16 16`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,children:(0,V.jsx)(`path`,{d:`M8 2v12M2 8h12`,strokeLinecap:`round`})}),`New User`]})})]}),(0,V.jsx)(`div`,{className:`panel`,style:{marginBottom:0},children:(0,V.jsx)(`div`,{className:`panel-head`,children:(0,V.jsxs)(`div`,{className:`search-input`,style:{flex:1,maxWidth:320},children:[(0,V.jsxs)(`svg`,{className:`search-ico`,viewBox:`0 0 16 16`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.7`,children:[(0,V.jsx)(`circle`,{cx:`7`,cy:`7`,r:`4.5`}),(0,V.jsx)(`path`,{d:`M10 10l3 3`,strokeLinecap:`round`})]}),(0,V.jsx)(`input`,{className:`input`,placeholder:`Search by email or name…`,value:i,onChange:e=>{a(e.target.value),r(1)}})]})})}),(0,V.jsx)(AU,{search:c,page:n,onPage:r,onSelectUser:s,onInvalidate:()=>t.invalidateQueries({queryKey:G.admin.users()})}),(0,V.jsx)(Al,{open:l,onClose:()=>u(!1),title:`Create User`,footer:(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`button`,{className:`btn`,onClick:()=>u(!1),children:`Cancel`}),(0,V.jsx)(`button`,{className:`btn btn-primary`,onClick:m,disabled:p.isPending,children:p.isPending?(0,V.jsx)(`span`,{className:`spinner sm`}):`Create User`})]}),children:(0,V.jsxs)(`form`,{onSubmit:m,children:[(0,V.jsxs)(`div`,{className:`field`,children:[(0,V.jsx)(`label`,{children:`Email *`}),(0,V.jsx)(`input`,{className:`input`,type:`email`,required:!0,value:d.email,onChange:e=>f(t=>({...t,email:e.target.value})),placeholder:`user@example.com`})]}),(0,V.jsxs)(`div`,{className:`field`,children:[(0,V.jsx)(`label`,{children:`Name`}),(0,V.jsx)(`input`,{className:`input`,value:d.name,onChange:e=>f(t=>({...t,name:e.target.value})),placeholder:`Full name (optional)`})]}),(0,V.jsxs)(`div`,{className:`field`,children:[(0,V.jsx)(`label`,{children:`Password`}),(0,V.jsx)(`input`,{className:`input`,type:`password`,value:d.password,onChange:e=>f(t=>({...t,password:e.target.value})),placeholder:`Leave blank to send invite`})]}),(0,V.jsxs)(`label`,{className:`checkbox-row`,children:[(0,V.jsx)(`input`,{type:`checkbox`,checked:d.invite,onChange:e=>f(t=>({...t,invite:e.target.checked}))}),(0,V.jsx)(`span`,{className:`chk-label`,children:`Send invitation email`})]})]})}),o&&(0,V.jsx)(PU,{userId:o,onClose:()=>s(null),onMutated:()=>t.invalidateQueries({queryKey:G.admin.users()})})]})}var IU={overview:`Overview`,users:`Users`,sessions:`Sessions`,clients:`OAuth Clients`,roles:`Roles`,orgs:`Organizations`,audit:`Audit Log`,keys:`Signing Keys`,settings:`Settings`};function LU(){let{route:e}=rl();switch(e){case`overview`:return(0,V.jsx)(_U,{});case`users`:return(0,V.jsx)(FU,{});case`sessions`:return(0,V.jsx)(wU,{});case`clients`:return(0,V.jsx)(J,{});case`roles`:return(0,V.jsx)(bU,{});case`orgs`:return(0,V.jsx)(vu,{});case`audit`:return(0,V.jsx)(kl,{});case`keys`:return(0,V.jsx)(Vl,{});case`settings`:return(0,V.jsx)(kU,{});default:return(0,V.jsx)(_U,{})}}function RU(){let{route:e}=rl();return(0,V.jsxs)(`div`,{className:`app-shell`,children:[(0,V.jsx)(cl,{}),(0,V.jsxs)(`main`,{className:`main`,children:[(0,V.jsx)(ll,{title:IU[e]??`AuthKit Admin`}),(0,V.jsx)(`div`,{className:`content`,children:(0,V.jsx)(B.Suspense,{fallback:(0,V.jsx)(`div`,{className:`loading-row`,children:(0,V.jsx)(`div`,{className:`spinner lg`})}),children:(0,V.jsx)(LU,{})})})]})]})}var zU=document.getElementById(`root`);if(!zU)throw Error(`Root element not found`);var BU=fs();(0,pa.createRoot)(zU).render((0,V.jsx)(B.StrictMode,{children:(0,V.jsx)(Ho,{client:BU,children:(0,V.jsx)(ds,{children:(0,V.jsx)(zc,{children:(0,V.jsx)(al,{children:(0,V.jsx)(Il,{children:(0,V.jsx)(RU,{})})})})})})}));
155
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function IH(e,t){if(e){if(typeof e==`string`)return LH(e,t);var n={}.toString.call(e).slice(8,-1);return n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`?Array.from(e):n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?LH(e,t):void 0}}function LH(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function RH(e,t){var n=e==null?null:typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`];if(n!=null){var r,i,a,o,s=[],c=!0,l=!1;try{if(a=(n=n.call(e)).next,t===0){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=a.call(n)).done)&&(s.push(r.value),s.length!==t);c=!0);}catch(e){l=!0,i=e}finally{try{if(!c&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(l)throw i}}return s}}function zH(e){if(Array.isArray(e))return e}var BH=()=>(ZN(),null);function VH(e){if(typeof e==`number`)return e;if(typeof e==`string`){var t=parseFloat(e);if(!Number.isNaN(t))return t}return 0}var HH=(0,B.forwardRef)((e,t)=>{var n=(0,B.useRef)(null),r=PH((0,B.useState)({containerWidth:VH(e.style?.width),containerHeight:VH(e.style?.height)}),2),i=r[0],a=r[1],o=(0,B.useCallback)((e,t)=>{a(n=>{var r=Math.round(e),i=Math.round(t);return n.containerWidth===r&&n.containerHeight===i?n:{containerWidth:r,containerHeight:i}})},[]),s=(0,B.useCallback)(e=>{if(typeof t==`function`&&t(e),n.current!=null&&(n.current.disconnect(),n.current=null),e!=null&&typeof ResizeObserver<`u`){var r=e.getBoundingClientRect(),i=r.width,a=r.height;o(i,a);var s=new ResizeObserver(e=>{var t=e[0];if(t!=null){var n=t.contentRect,r=n.width,i=n.height;o(r,i)}});s.observe(e),n.current=s}},[t,o]);return(0,B.useEffect)(()=>()=>{n.current?.disconnect()},[o]),B.createElement(B.Fragment,null,B.createElement(H_,{width:i.containerWidth,height:i.containerHeight}),B.createElement(`div`,NH({ref:s},e)))}),UH=(0,B.forwardRef)((e,t)=>{var n=e.width,r=e.height,i=PH((0,B.useState)({containerWidth:VH(n),containerHeight:VH(r)}),2),a=i[0],o=i[1],s=(0,B.useCallback)((e,t)=>{o(n=>{var r=Math.round(e),i=Math.round(t);return n.containerWidth===r&&n.containerHeight===i?n:{containerWidth:r,containerHeight:i}})},[]),c=(0,B.useCallback)(e=>{if(typeof t==`function`&&t(e),e!=null){var n=e.getBoundingClientRect(),r=n.width,i=n.height;s(r,i)}},[t,s]);return B.createElement(B.Fragment,null,B.createElement(H_,{width:a.containerWidth,height:a.containerHeight}),B.createElement(`div`,NH({ref:c},e)))}),WH=(0,B.forwardRef)((e,t)=>{var n=e.width,r=e.height;return B.createElement(B.Fragment,null,B.createElement(H_,{width:n,height:r}),B.createElement(`div`,NH({ref:t},e)))}),GH=(0,B.forwardRef)((e,t)=>{var n=e.width,r=e.height;return typeof n==`string`||typeof r==`string`?B.createElement(UH,NH({},e,{ref:t})):typeof n==`number`&&typeof r==`number`?B.createElement(WH,NH({},e,{width:n,height:r,ref:t})):B.createElement(B.Fragment,null,B.createElement(H_,{width:n,height:r}),B.createElement(`div`,NH({ref:t},e)))});function KH(e){return e?HH:GH}var qH=(0,B.forwardRef)((e,t)=>{var n=e.children,r=e.className,i=e.height,a=e.onClick,o=e.onContextMenu,s=e.onDoubleClick,c=e.onMouseDown,l=e.onMouseEnter,u=e.onMouseLeave,d=e.onMouseMove,f=e.onMouseUp,p=e.onTouchEnd,m=e.onTouchMove,h=e.onTouchStart,g=e.style,_=e.width,v=e.responsive,y=e.dispatchTouchEvents,b=y===void 0||y,x=(0,B.useRef)(null),S=kf(),C=PH((0,B.useState)(null),2),w=C[0],T=C[1],E=PH((0,B.useState)(null),2),D=E[0],O=E[1],k=DH(),A=k_(),j=A?.width>0?A.width:_,M=A?.height>0?A.height:i,N=(0,B.useCallback)(e=>{k(e),typeof t==`function`&&t(e),T(e),O(e),e!=null&&(x.current=e)},[k,t,T,O]),P=(0,B.useCallback)(e=>{S(bV(e)),S(HV({handler:a,reactEvent:e}))},[S,a]),ee=(0,B.useCallback)(e=>{S(SV(e)),S(HV({handler:l,reactEvent:e}))},[S,l]),te=(0,B.useCallback)(e=>{S(sj()),S(HV({handler:u,reactEvent:e}))},[S,u]),ne=(0,B.useCallback)(e=>{S(SV(e)),S(HV({handler:d,reactEvent:e}))},[S,d]),re=(0,B.useCallback)(()=>{S(FV())},[S]),F=(0,B.useCallback)(()=>{S(IV())},[S]),I=(0,B.useCallback)(e=>{S(PV(e.key))},[S]),ie=(0,B.useCallback)(e=>{S(HV({handler:o,reactEvent:e}))},[S,o]),ae=(0,B.useCallback)(e=>{S(HV({handler:s,reactEvent:e}))},[S,s]),oe=(0,B.useCallback)(e=>{S(HV({handler:c,reactEvent:e}))},[S,c]),se=(0,B.useCallback)(e=>{S(HV({handler:f,reactEvent:e}))},[S,f]),ce=(0,B.useCallback)(e=>{S(HV({handler:h,reactEvent:e}))},[S,h]),le=(0,B.useCallback)(e=>{b&&S(JV(e)),S(HV({handler:m,reactEvent:e}))},[S,b,m]),ue=(0,B.useCallback)(e=>{S(HV({handler:p,reactEvent:e}))},[S,p]),de=KH(v);return B.createElement(TN.Provider,{value:w},B.createElement(dd.Provider,{value:D},B.createElement(de,{width:j??g?.width,height:M??g?.height,className:bu(`recharts-wrapper`,r),style:kH({position:`relative`,cursor:`default`,width:j,height:M},g),onClick:P,onContextMenu:ie,onDoubleClick:ae,onFocus:re,onBlur:F,onKeyDown:I,onMouseDown:oe,onMouseEnter:ee,onMouseLeave:te,onMouseMove:ne,onMouseUp:se,onTouchEnd:ue,onTouchMove:le,onTouchStart:ce,ref:N},B.createElement(BH,null),n)))}),JH=[`width`,`height`,`responsive`,`children`,`className`,`style`,`compact`,`title`,`desc`];function YH(e,t){if(e==null)return{};var n,r,i=XH(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function XH(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var ZH=(0,B.forwardRef)((e,t)=>{var n=e.width,r=e.height,i=e.responsive,a=e.children,o=e.className,s=e.style,c=e.compact,l=e.title,u=e.desc,d=Eu(YH(e,JH));return c?B.createElement(B.Fragment,null,B.createElement(H_,{width:n,height:r}),B.createElement(bH,{otherAttributes:d,title:l,desc:u},a)):B.createElement(qH,{className:o,style:s,width:n,height:r,responsive:i??!1,onClick:e.onClick,onMouseLeave:e.onMouseLeave,onMouseEnter:e.onMouseEnter,onMouseMove:e.onMouseMove,onMouseDown:e.onMouseDown,onMouseUp:e.onMouseUp,onContextMenu:e.onContextMenu,onDoubleClick:e.onDoubleClick,onTouchStart:e.onTouchStart,onTouchMove:e.onTouchMove,onTouchEnd:e.onTouchEnd},B.createElement(bH,{otherAttributes:d,title:l,desc:u,ref:t},B.createElement(vR,null,a)))});function QH(){return QH=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},QH.apply(null,arguments)}function $H(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function eU(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?$H(Object(n),!0).forEach(function(t){tU(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):$H(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function tU(e,t,n){return(t=nU(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function nU(e){var t=rU(e,`string`);return typeof t==`symbol`?t:t+``}function rU(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var iU=eU({accessibilityLayer:!0,barCategoryGap:`10%`,barGap:4,layout:`horizontal`,margin:{top:5,right:5,bottom:5,left:5},responsive:!1,reverseStackOrder:!1,stackOffset:`none`,syncMethod:`index`},eH),aU=(0,B.forwardRef)(function(e,t){var n=bf(e.categoricalChartProps,iU),r=e.chartName,i=e.defaultTooltipEventType,a=e.validateTooltipEventTypes,o=e.tooltipPayloadSearcher,s=e.categoricalChartProps,c={chartName:r,defaultTooltipEventType:i,validateTooltipEventTypes:a,tooltipPayloadSearcher:o,eventEmitter:void 0};return B.createElement(oH,{preloadedState:{options:c},reduxStoreName:s.id??r},B.createElement(nR,{chartData:s.data}),B.createElement(cH,{layout:n.layout,margin:n.margin}),B.createElement(uH,{throttleDelay:n.throttleDelay,throttledEvents:n.throttledEvents}),B.createElement(lH,{baseValue:n.baseValue,accessibilityLayer:n.accessibilityLayer,barCategoryGap:n.barCategoryGap,maxBarSize:n.maxBarSize,stackOffset:n.stackOffset,barGap:n.barGap,barSize:n.barSize,syncId:n.syncId,syncMethod:n.syncMethod,className:n.className,reverseStackOrder:n.reverseStackOrder}),B.createElement(ZH,QH({},n,{ref:t})))}),oU=[`axis`],sU=(0,B.forwardRef)((e,t)=>B.createElement(aU,{chartName:`AreaChart`,defaultTooltipEventType:`axis`,validateTooltipEventTypes:oU,tooltipPayloadSearcher:jN,categoricalChartProps:e,ref:t})),cU=e=>{let t=new Date(`${e}T00:00:00`);return Number.isNaN(t.getTime())?e:t.toLocaleDateString(void 0,{month:`short`,day:`numeric`})};function lU({data:e,color:t=`var(--accent)`,height:n=150,label:r=`events`}){if(!e||e.length===0)return(0,V.jsx)(`div`,{style:{height:n}});let i=`tc-${r.replace(/[^a-z0-9]/gi,``)}`;return(0,V.jsx)(j_,{width:`100%`,height:n,children:(0,V.jsxs)(sU,{data:e,margin:{top:8,right:8,bottom:0,left:8},children:[(0,V.jsx)(`defs`,{children:(0,V.jsxs)(`linearGradient`,{id:i,x1:`0`,y1:`0`,x2:`0`,y2:`1`,children:[(0,V.jsx)(`stop`,{offset:`0%`,stopColor:t,stopOpacity:.32}),(0,V.jsx)(`stop`,{offset:`100%`,stopColor:t,stopOpacity:.02})]})}),(0,V.jsx)(Fz,{strokeDasharray:`3 3`,stroke:`var(--line)`,vertical:!1}),(0,V.jsx)(tV,{dataKey:`date`,tickFormatter:cU,tick:{fontSize:10,fill:`var(--faint)`},axisLine:!1,tickLine:!1,minTickGap:42}),(0,V.jsx)(gV,{hide:!0,domain:[0,`auto`],allowDecimals:!1}),(0,V.jsx)(mP,{cursor:{stroke:`var(--line)`,strokeDasharray:`3 3`},content:({active:e,payload:n,label:i})=>e&&n?.length?(0,V.jsxs)(`div`,{className:`chart-tip`,children:[(0,V.jsx)(`div`,{className:`chart-tip-label`,children:cU(String(i))}),(0,V.jsxs)(`div`,{className:`chart-tip-row`,children:[(0,V.jsx)(`span`,{className:`chart-tip-dot`,style:{background:t}}),r,` `,(0,V.jsx)(`b`,{children:n[0].value})]})]}):null}),(0,V.jsx)(PB,{type:`monotone`,dataKey:`count`,stroke:t,strokeWidth:1.8,fill:`url(#${i})`,isAnimationActive:!1})]})})}function uU(e){return new Date(e).toLocaleDateString(void 0,{month:`short`,day:`numeric`})}function dU(e){return e.includes(`login`)||e.includes(`signin`)?`badge-green`:e.includes(`fail`)||e.includes(`error`)||e.includes(`locked`)?`badge-red`:e.includes(`register`)||e.includes(`signup`)?`badge-accent`:e.includes(`settings`)||e.includes(`admin`)?`badge-amber`:`badge-muted`}function fU(){let{data:e,isLoading:t,error:n,refetch:r}=ns(ps());return(0,V.jsx)(gl,{isLoading:t,error:n,onRetry:r,skeleton:(0,V.jsx)(bl,{count:6,columns:3}),children:e&&(0,V.jsxs)(`div`,{className:`cards`,children:[(0,V.jsxs)(`div`,{className:`card c-accent`,children:[(0,V.jsx)(`div`,{className:`card-label`,children:`Total Users`}),(0,V.jsx)(`div`,{className:`card-value`,children:e.usersTotal.toLocaleString()}),(0,V.jsx)(`div`,{className:`card-hint`,children:`registered accounts`})]}),(0,V.jsxs)(`div`,{className:`card c-green`,children:[(0,V.jsx)(`div`,{className:`card-label`,children:`Active Sessions`}),(0,V.jsx)(`div`,{className:`card-value`,children:(e.activeSessions??0).toLocaleString()}),(0,V.jsx)(`div`,{className:`card-hint`,children:`currently logged in`})]}),(0,V.jsxs)(`div`,{className:`card c-amber`,children:[(0,V.jsx)(`div`,{className:`card-label`,children:`MAU`}),(0,V.jsx)(`div`,{className:`card-value`,children:e.mau.toLocaleString()}),(0,V.jsx)(`div`,{className:`card-hint`,children:`monthly active users`})]}),(0,V.jsxs)(`div`,{className:`card`,children:[(0,V.jsx)(`div`,{className:`card-label`,children:`Sign-ins`}),(0,V.jsx)(`div`,{className:`card-value`,style:{color:`var(--text)`},children:e.signInsTotal.toLocaleString()}),(0,V.jsxs)(`div`,{className:`card-hint`,children:[`last `,e.windowDays,` days`]})]}),(0,V.jsxs)(`div`,{className:`card c-blue`,children:[(0,V.jsx)(`div`,{className:`card-label`,children:`Sign-ups`}),(0,V.jsx)(`div`,{className:`card-value`,children:e.signUpsTotal.toLocaleString()}),(0,V.jsx)(`div`,{className:`card-hint`,children:`new registrations`})]}),(0,V.jsxs)(`div`,{className:`card`,children:[(0,V.jsx)(`div`,{className:`card-label`,children:`OAuth Clients`}),(0,V.jsx)(`div`,{className:`card-value`,style:{color:`var(--text)`},children:e.clientsCount.toLocaleString()}),(0,V.jsx)(`div`,{className:`card-hint`,children:`OIDC clients`})]})]})})}function pU({title:e}){return(0,V.jsxs)(`div`,{className:`panel`,children:[(0,V.jsx)(`div`,{className:`panel-head`,children:(0,V.jsx)(`h3`,{children:e})}),(0,V.jsx)(`div`,{className:`panel-body`,style:{paddingBottom:4},children:(0,V.jsx)(K,{height:60,borderRadius:8})})]})}function mU(){let{data:e,isLoading:t,error:n,refetch:r}=ns(ps());return(0,V.jsx)(gl,{isLoading:t,error:n,onRetry:r,skeleton:(0,V.jsx)(pU,{title:`Sign-ins / day`}),children:e&&(0,V.jsxs)(`div`,{className:`panel`,children:[(0,V.jsxs)(`div`,{className:`panel-head`,children:[(0,V.jsx)(`h3`,{children:`Sign-ins / day`}),(0,V.jsxs)(`span`,{className:`meta`,children:[`last `,e.windowDays,`d`]})]}),(0,V.jsx)(`div`,{className:`panel-body`,style:{paddingBottom:`4px`},children:e.signInsPerDay.length>0?(0,V.jsx)(lU,{data:e.signInsPerDay,color:`var(--accent)`,label:`sign-ins`}):(0,V.jsx)(`div`,{style:{height:60,display:`flex`,alignItems:`center`,justifyContent:`center`,color:`var(--faint)`,fontSize:12},children:`No data yet`})})]})})}function hU(){let{data:e,isLoading:t,error:n,refetch:r}=ns(ps());return(0,V.jsx)(gl,{isLoading:t,error:n,onRetry:r,skeleton:(0,V.jsx)(pU,{title:`Sign-ups / day`}),children:e&&(0,V.jsxs)(`div`,{className:`panel`,children:[(0,V.jsxs)(`div`,{className:`panel-head`,children:[(0,V.jsx)(`h3`,{children:`Sign-ups / day`}),(0,V.jsxs)(`span`,{className:`meta`,children:[`last `,e.windowDays,`d`]})]}),(0,V.jsx)(`div`,{className:`panel-body`,style:{paddingBottom:`4px`},children:e.signUpsPerDay.length>0?(0,V.jsx)(lU,{data:e.signUpsPerDay,color:`var(--green)`,label:`sign-ups`}):(0,V.jsx)(`div`,{style:{height:60,display:`flex`,alignItems:`center`,justifyContent:`center`,color:`var(--faint)`,fontSize:12},children:`No data yet`})})]})})}function gU(){let{data:e,isLoading:t,error:n,refetch:r}=ns(ps());return(0,V.jsx)(gl,{isLoading:t,error:n,onRetry:r,skeleton:(0,V.jsx)(Sl,{rows:5,cols:4}),children:e?.auditSupported&&e.recentEvents.length>0&&(0,V.jsxs)(`div`,{className:`panel`,children:[(0,V.jsxs)(`div`,{className:`panel-head`,children:[(0,V.jsx)(`h3`,{children:`Recent Events`}),(0,V.jsxs)(`span`,{className:`meta`,children:[e.auditTotal.toLocaleString(),` total`]})]}),(0,V.jsx)(`div`,{className:`panel-body`,style:{padding:0},children:(0,V.jsxs)(`table`,{children:[(0,V.jsx)(`thead`,{children:(0,V.jsxs)(`tr`,{children:[(0,V.jsx)(`th`,{children:`Type`}),(0,V.jsx)(`th`,{children:`Account`}),(0,V.jsx)(`th`,{children:`IP`}),(0,V.jsx)(`th`,{children:`When`})]})}),(0,V.jsx)(`tbody`,{children:e.recentEvents.map(e=>(0,V.jsxs)(`tr`,{className:`static`,style:{cursor:`default`},children:[(0,V.jsx)(`td`,{children:(0,V.jsx)(`span`,{className:`badge ${dU(e.type)}`,children:e.type})}),(0,V.jsx)(`td`,{children:(0,V.jsx)(`span`,{style:{fontFamily:`var(--mono)`,fontSize:`11.5px`},children:e.email??e.accountId??`—`})}),(0,V.jsx)(`td`,{children:(0,V.jsx)(`span`,{className:`code`,children:e.ip??`—`})}),(0,V.jsx)(`td`,{children:(0,V.jsx)(`span`,{style:{fontFamily:`var(--mono)`,fontSize:`11px`,color:`var(--faint)`},children:e.createdAt?uU(e.createdAt):`—`})})]},e.id))})]})})]})})}function _U(){return(0,V.jsxs)(`div`,{children:[(0,V.jsxs)(`div`,{className:`page-header`,children:[(0,V.jsx)(`div`,{className:`page-title`,children:`Overview`}),(0,V.jsx)(`div`,{className:`page-sub`,children:`Identity provider metrics`})]}),(0,V.jsx)(fU,{}),(0,V.jsxs)(`div`,{className:`grid-2`,style:{marginTop:16},children:[(0,V.jsx)(mU,{}),(0,V.jsx)(hU,{})]}),(0,V.jsx)(`div`,{style:{marginTop:16},children:(0,V.jsx)(gU,{})})]})}var vU=`ADMIN`;function yU({onEdit:e,onDelete:t,onUnavailable:n}){let[r,i]=(0,B.useState)(!1),{data:a,isLoading:o,error:s,refetch:c}=ns({...ks(),retry:(e,t)=>t&&typeof t==`object`&&`status`in t&&t.status===404?(r||(i(!0),n()),!1):e<1}),l=a?.data??[];return(0,V.jsx)(`div`,{className:`panel`,children:(0,V.jsx)(gl,{isLoading:o,error:s&&!(typeof s==`object`&&`status`in s&&s.status===404)?s:void 0,onRetry:c,skeleton:(0,V.jsx)(Sl,{rows:4,cols:4}),children:l.length===0?(0,V.jsxs)(`div`,{className:`empty-state`,children:[(0,V.jsxs)(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.5`,children:[(0,V.jsx)(`circle`,{cx:`12`,cy:`8`,r:`4`}),(0,V.jsx)(`path`,{d:`M2 20a10 10 0 0120 0`})]}),(0,V.jsx)(`h4`,{children:`No roles yet`}),(0,V.jsx)(`p`,{children:`Create roles to assign permissions to users`})]}):(0,V.jsx)(`div`,{className:`tbl-wrap`,children:(0,V.jsxs)(`table`,{children:[(0,V.jsx)(`thead`,{children:(0,V.jsxs)(`tr`,{children:[(0,V.jsx)(`th`,{children:`Name`}),(0,V.jsx)(`th`,{children:`Description`}),(0,V.jsx)(`th`,{children:`Type`}),(0,V.jsx)(`th`,{style:{width:80}})]})}),(0,V.jsx)(`tbody`,{children:l.map(n=>(0,V.jsxs)(`tr`,{style:{cursor:`default`},children:[(0,V.jsx)(`td`,{children:(0,V.jsx)(`span`,{style:{fontFamily:`var(--mono)`,fontWeight:600,color:n.name===vU?`var(--accent)`:`var(--text)`},children:n.name})}),(0,V.jsx)(`td`,{children:(0,V.jsx)(`span`,{style:{color:`var(--muted)`,fontSize:12},children:n.description??`—`})}),(0,V.jsx)(`td`,{children:(0,V.jsx)(`span`,{className:`badge ${`builtin`in n&&n.builtin?`badge-accent`:`badge-muted`}`,children:`builtin`in n&&n.builtin?`built-in`:`custom`})}),(0,V.jsx)(`td`,{className:`no-click`,style:{textAlign:`right`},children:(0,V.jsxs)(`div`,{style:{display:`flex`,gap:6,justifyContent:`flex-end`},children:[(0,V.jsx)(`button`,{className:`btn btn-sm`,onClick:()=>e(n),children:`Edit`}),n.name!==vU&&(0,V.jsx)(`button`,{className:`btn btn-sm btn-danger`,onClick:()=>t(n),children:(0,V.jsx)(`svg`,{viewBox:`0 0 16 16`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.8`,children:(0,V.jsx)(`path`,{d:`M2 4.5h12M5.5 4.5V3h5v1.5M10.5 4.5v8a1 1 0 01-1 1h-3a1 1 0 01-1-1v-8`,strokeLinecap:`round`})})})]})})]},n.name))})]})})})})}function bU(){let e=Ll(),t=Vo(),n=W(),[r,i]=(0,B.useState)(!1),[a,o]=(0,B.useState)(null),[s,c]=(0,B.useState)({name:``,description:``}),[l,u]=(0,B.useState)(!1),[d,f]=(0,B.useState)(!1),p=rs(As());async function m(n){n.preventDefault(),u(!0);try{await p.mutateAsync({name:s.name.trim().toUpperCase(),description:s.description||void 0}),t.invalidateQueries({queryKey:G.admin.roles()}),e.success(`Role created`),i(!1),c({name:``,description:``})}catch(t){e.error(t instanceof Error?t.message:String(t))}finally{u(!1)}}async function h(r){if(r.preventDefault(),a){u(!0);try{await n.admin.roles.update(a.name,{description:s.description||void 0}),t.invalidateQueries({queryKey:G.admin.roles()}),e.success(`Role updated`),o(null)}catch(t){e.error(t instanceof Error?t.message:String(t))}finally{u(!1)}}}async function g(r){if(confirm(`Delete role ${r.name}?`))try{await n.admin.roles.remove(r.name),t.invalidateQueries({queryKey:G.admin.roles()}),e.success(`Role deleted`)}catch(t){e.error(t instanceof Error?t.message:String(t))}}return d?(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`div`,{className:`page-title`,style:{marginBottom:8},children:`Roles`}),(0,V.jsxs)(`div`,{className:`error-box`,children:[`Role catalog requires the `,(0,V.jsx)(`code`,{children:`auth_settings`}),` table (runtime settings). Run the migration to enable this feature.`]})]}):(0,V.jsxs)(`div`,{children:[(0,V.jsxs)(`div`,{className:`page-header-row`,children:[(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`div`,{className:`page-title`,children:`Roles`}),(0,V.jsx)(`div`,{className:`page-sub`,children:`Global role catalog`})]}),(0,V.jsx)(`div`,{className:`page-actions`,children:(0,V.jsxs)(`button`,{className:`btn btn-primary`,onClick:()=>{c({name:``,description:``}),i(!0)},children:[(0,V.jsx)(`svg`,{viewBox:`0 0 16 16`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,children:(0,V.jsx)(`path`,{d:`M8 2v12M2 8h12`,strokeLinecap:`round`})}),`New Role`]})})]}),(0,V.jsx)(yU,{onEdit:e=>{o(e),c({name:e.name,description:e.description??``})},onDelete:g,onUnavailable:()=>f(!0)}),(0,V.jsx)(Al,{open:r,onClose:()=>i(!1),title:`New Role`,footer:(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`button`,{className:`btn`,onClick:()=>i(!1),children:`Cancel`}),(0,V.jsx)(`button`,{className:`btn btn-primary`,onClick:m,disabled:l,children:l?(0,V.jsx)(`span`,{className:`spinner sm`}):`Create Role`})]}),children:(0,V.jsxs)(`form`,{onSubmit:m,children:[(0,V.jsxs)(`div`,{className:`field`,children:[(0,V.jsx)(`label`,{children:`Name * (uppercase)`}),(0,V.jsx)(`input`,{className:`input input-mono`,required:!0,value:s.name,onChange:e=>c(t=>({...t,name:e.target.value.toUpperCase()})),placeholder:`EDITOR`}),(0,V.jsx)(`div`,{className:`hint`,children:`Letters, digits, underscore. E.g. ADMIN, CONTENT_MANAGER`})]}),(0,V.jsxs)(`div`,{className:`field`,children:[(0,V.jsx)(`label`,{children:`Description`}),(0,V.jsx)(`input`,{className:`input`,value:s.description,onChange:e=>c(t=>({...t,description:e.target.value})),placeholder:`Can edit content`})]})]})}),(0,V.jsx)(Al,{open:!!a,onClose:()=>o(null),title:`Edit Role — ${a?.name}`,footer:(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`button`,{className:`btn`,onClick:()=>o(null),children:`Cancel`}),(0,V.jsx)(`button`,{className:`btn btn-primary`,onClick:h,disabled:l,children:l?(0,V.jsx)(`span`,{className:`spinner sm`}):`Save`})]}),children:(0,V.jsxs)(`div`,{className:`field`,children:[(0,V.jsx)(`label`,{children:`Description`}),(0,V.jsx)(`input`,{className:`input`,value:s.description,onChange:e=>c(t=>({...t,description:e.target.value}))})]})})]})}var xU=20;function SU({page:e,onPage:t}){let{data:n,isLoading:r,error:i,refetch:a}=ns(ws()),o=n?.sessions??[],s=o.length,c=o.slice((e-1)*xU,e*xU);return(0,V.jsx)(`div`,{className:`panel`,children:(0,V.jsx)(gl,{isLoading:r,error:i,onRetry:a,skeleton:(0,V.jsx)(Sl,{rows:8,cols:6}),children:c.length===0?(0,V.jsxs)(`div`,{className:`empty-state`,children:[(0,V.jsxs)(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.5`,children:[(0,V.jsx)(`rect`,{x:`2`,y:`4`,width:`20`,height:`16`,rx:`2`}),(0,V.jsx)(`circle`,{cx:`12`,cy:`12`,r:`3`})]}),(0,V.jsx)(`h4`,{children:`No active sessions`}),(0,V.jsx)(`p`,{children:`No users are currently logged in`})]}):(0,V.jsxs)(`div`,{className:`tbl-wrap`,children:[(0,V.jsxs)(`table`,{children:[(0,V.jsx)(`thead`,{children:(0,V.jsxs)(`tr`,{children:[(0,V.jsx)(`th`,{children:`Account`}),(0,V.jsx)(`th`,{children:`Browser / OS`}),(0,V.jsx)(`th`,{children:`IP`}),(0,V.jsx)(`th`,{children:`Location`}),(0,V.jsx)(`th`,{children:`Login`}),(0,V.jsx)(`th`,{children:`Methods`})]})}),(0,V.jsx)(`tbody`,{children:c.map(e=>(0,V.jsxs)(`tr`,{style:{cursor:`default`},children:[(0,V.jsx)(`td`,{children:(0,V.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:2},children:[e.email&&(0,V.jsx)(`span`,{style:{fontSize:12,fontWeight:500,color:`var(--text)`},children:e.email}),(0,V.jsx)(`span`,{className:`mono text-sm`,style:{color:e.email?`var(--faint)`:void 0},children:e.accountId})]})}),(0,V.jsx)(`td`,{children:(0,V.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:2},children:[(0,V.jsx)(`span`,{style:{color:`var(--text)`,fontWeight:500,fontSize:12},children:e.browser??`—`}),(0,V.jsx)(`span`,{style:{color:`var(--faint)`,fontSize:11},children:e.os??``})]})}),(0,V.jsx)(`td`,{children:(0,V.jsx)(`span`,{className:`code`,children:e.ip??`—`})}),(0,V.jsx)(`td`,{children:(0,V.jsx)(`span`,{style:{fontSize:11.5,color:`var(--muted)`},children:e.location??`—`})}),(0,V.jsx)(`td`,{children:(0,V.jsx)(`span`,{style:{fontFamily:`var(--mono)`,fontSize:11,color:`var(--faint)`},children:e.loginTs?new Date(e.loginTs).toLocaleString():`—`})}),(0,V.jsx)(`td`,{children:(0,V.jsx)(`div`,{style:{display:`flex`,gap:4,flexWrap:`wrap`},children:e.amr.length===0?(0,V.jsx)(`span`,{className:`badge badge-muted`,children:`—`}):e.amr.map(e=>(0,V.jsx)(`span`,{className:`badge badge-muted`,children:e},e))})})]},e.id))})]}),(0,V.jsx)(`div`,{style:{padding:`0 16px 12px`},children:(0,V.jsx)(ul,{page:e,total:s,perPage:xU,onPage:t})})]})})})}function CU(){let{data:e}=ns(ws());return e?.sessions.length??0}function wU(){let e=Ll(),t=Vo(),[n,r]=tl(`page`,Kc.withDefault(1)),i=CU(),a=rs(Ts());async function o(){if(confirm(`Revoke ALL active sessions? All users will be logged out.`))try{let n=await a.mutateAsync();e.success(`Revoked ${n.revoked??0} sessions`),t.invalidateQueries({queryKey:G.admin.sessions()})}catch(t){e.error(t instanceof Error?t.message:String(t))}}return(0,V.jsxs)(`div`,{children:[(0,V.jsxs)(`div`,{className:`page-header-row`,children:[(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`div`,{className:`page-title`,children:`Sessions`}),(0,V.jsxs)(`div`,{className:`page-sub`,children:[i.toLocaleString(),` active sessions`]})]}),(0,V.jsx)(`div`,{className:`page-actions`,children:(0,V.jsxs)(`button`,{className:`btn btn-danger`,onClick:o,disabled:a.isPending,children:[a.isPending?(0,V.jsx)(`span`,{className:`spinner sm`}):(0,V.jsx)(`svg`,{viewBox:`0 0 16 16`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.8`,children:(0,V.jsx)(`path`,{d:`M4 4l8 8M12 4l-8 8`,strokeLinecap:`round`})}),`Revoke All`]})})]}),(0,V.jsx)(SU,{page:n,onPage:r})]})}function TU({rowCount:e=4}){return(0,V.jsx)(`div`,{style:{background:`var(--bg2)`,border:`1px solid var(--line)`,borderRadius:`var(--radius)`,overflow:`hidden`},children:Array.from({length:e}).map((t,n)=>(0,V.jsxs)(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`,padding:`14px 16px`,borderBottom:n<e-1?`1px solid var(--line)`:void 0,gap:16},children:[(0,V.jsxs)(`div`,{style:{flex:1,display:`flex`,flexDirection:`column`,gap:6},children:[(0,V.jsx)(K,{width:`40%`,height:13}),(0,V.jsx)(K,{width:`70%`,height:11})]}),(0,V.jsx)(K,{width:44,height:24,borderRadius:12})]},n))})}function EU(){return(0,V.jsxs)(`span`,{className:`settings-badge`,title:`Definido via defineConfig() — gerenciado no código, não editável aqui`,style:{background:`var(--accent-soft, rgba(99,102,241,0.12))`,color:`var(--accent, #6366f1)`,borderColor:`rgba(99,102,241,0.3)`,display:`inline-flex`,alignItems:`center`,gap:4},children:[(0,V.jsxs)(`svg`,{viewBox:`0 0 16 16`,width:`10`,height:`10`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.8`,"aria-hidden":!0,children:[(0,V.jsx)(`rect`,{x:`3`,y:`7`,width:`10`,height:`7`,rx:`1.5`}),(0,V.jsx)(`path`,{d:`M5 7V5a3 3 0 016 0v2`,strokeLinecap:`round`})]}),`definido via config`]})}function DU({section:e,onUnavailable:t}){let n=Ll(),r=Vo(),[i,a]=(0,B.useState)(!1),[o,s]=(0,B.useState)(null),[c,l]=(0,B.useState)(!1),[u,d]=(0,B.useState)(!1),{data:f,isLoading:p,error:m,refetch:h}=ns({...Hs(),retry:(e,n)=>n&&typeof n==`object`&&`status`in n&&n.status===404?(i||(a(!0),t()),!1):e<1}),g=f?.data??[],_=(f?.locked??[]).includes(e.settingKey),v=g.find(t=>t.key===e.settingKey),y=!v,b=v&&typeof v.value==`object`&&v.value!==null&&!Array.isArray(v.value)?v.value:{},x=o??b;(0,B.useEffect)(()=>{s(null),l(!1)},[f]);let S=rs(Us()),C=rs(Ws());function w(e){return e.field in x?x[e.field]:e.defaultValue}function T(e,t){s(n=>({...n??b,[e.field]:t})),l(!0)}async function E(){d(!0);try{let t={...x};for(let n of e.fields)n.field in t||(t[n.field]=n.defaultValue);await S.mutateAsync({key:e.settingKey,value:t}),r.invalidateQueries({queryKey:G.admin.settings()}),l(!1),n.success(`Salvo: ${e.settingKey}`)}catch(e){n.error(e instanceof Error?e.message:String(e))}finally{d(!1)}}async function D(){d(!0);try{await C.mutateAsync(e.settingKey),r.invalidateQueries({queryKey:G.admin.settings()}),s(null),l(!1),n.success(`Voltou ao default: ${e.settingKey}`)}catch(e){n.error(e instanceof Error?e.message:String(e))}finally{d(!1)}}let O=m&&typeof m==`object`&&`status`in m&&m.status===404,k=m&&!O?m:void 0;return(0,V.jsxs)(`div`,{className:`settings-section`,children:[(0,V.jsxs)(`div`,{className:`settings-section-head`,children:[(0,V.jsxs)(`div`,{children:[(0,V.jsxs)(`h3`,{style:{display:`flex`,alignItems:`center`,gap:8},children:[e.title,_&&(0,V.jsx)(EU,{}),!_&&!y&&(0,V.jsx)(`span`,{className:`settings-badge`,children:`custom`}),c&&!_&&(0,V.jsx)(`span`,{className:`settings-badge`,style:{background:`var(--amber-soft)`,color:`var(--amber)`,borderColor:`rgba(255,180,84,0.3)`},children:`unsaved`})]}),(0,V.jsx)(`p`,{style:{marginTop:2},children:e.description}),_&&(0,V.jsxs)(`p`,{style:{marginTop:4,color:`var(--accent, #6366f1)`,fontSize:12},children:[`Travado no `,(0,V.jsx)(`code`,{children:`defineConfig()`}),` — o config tem prioridade sobre o runtime. Remova de lá para editar por aqui.`]}),(0,V.jsx)(`div`,{style:{fontSize:10.5,color:`var(--faint)`,fontFamily:`var(--mono)`,marginTop:2},children:e.settingKey})]}),!_&&(0,V.jsxs)(`div`,{className:`settings-control`,style:{gap:8},children:[c&&(0,V.jsx)(`button`,{className:`btn btn-primary btn-sm`,disabled:u,onClick:E,children:u?(0,V.jsx)(`span`,{className:`spinner sm`}):`Salvar`}),!y&&!c&&(0,V.jsx)(`button`,{className:`btn btn-ghost btn-sm`,disabled:u,onClick:D,title:`Voltar ao default`,children:(0,V.jsxs)(`svg`,{viewBox:`0 0 16 16`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.8`,children:[(0,V.jsx)(`path`,{d:`M2 8a6 6 0 016-6 6 6 0 014.24 1.76L14 5`,strokeLinecap:`round`}),(0,V.jsx)(`path`,{d:`M14 2v3h-3`,strokeLinecap:`round`})]})})]})]}),(0,V.jsx)(gl,{isLoading:p,error:k,onRetry:h,skeleton:(0,V.jsx)(TU,{rowCount:e.fields.length}),children:(0,V.jsx)(`div`,{className:`panel`,children:(0,V.jsx)(`div`,{className:`panel-body`,style:{padding:0},children:e.fields.map(e=>{let t=w(e);return(0,V.jsxs)(`div`,{className:`settings-row`,style:_?{opacity:.85}:void 0,children:[(0,V.jsxs)(`div`,{className:`settings-info`,children:[(0,V.jsx)(`div`,{className:`settings-key`,children:e.label}),(0,V.jsx)(`div`,{className:`settings-desc`,children:e.description})]}),(0,V.jsx)(`div`,{className:`settings-control`,children:e.type===`boolean`?(0,V.jsxs)(`label`,{className:`toggle`,children:[(0,V.jsx)(`input`,{type:`checkbox`,checked:!!t,disabled:_,onChange:t=>T(e,t.target.checked)}),(0,V.jsx)(`div`,{className:`toggle-track`}),(0,V.jsx)(`div`,{className:`toggle-thumb`})]}):e.type===`number`?(0,V.jsx)(`input`,{className:`input input-mono`,type:`number`,style:{width:90,textAlign:`right`},value:String(t??e.defaultValue??0),disabled:_,onChange:t=>T(e,Number(t.target.value))}):(0,V.jsx)(`input`,{className:`input`,style:{width:220},value:String(t??e.defaultValue??``),disabled:_,onChange:t=>T(e,t.target.value)})})]},e.field)})})})})]})}var OU=[{title:`Métodos de login`,description:`Quais métodos a tela de login oferece. Travável via defineConfig({ authMethods }).`,settingKey:`auth_methods`,fields:[{field:`password`,label:`Senha`,description:`Login por e-mail + senha`,type:`boolean`,defaultValue:!0},{field:`magicLink`,label:`Magic link`,description:`Login por link enviado no e-mail (requer mail + passwordless.magicLink)`,type:`boolean`,defaultValue:!1},{field:`passkey`,label:`Passkey`,description:`Entrar com passkey (WebAuthn) antes da senha`,type:`boolean`,defaultValue:!1},{field:`forgotPassword`,label:`Esqueci a senha`,description:`Link de reset (só aparece com senha ligada)`,type:`boolean`,defaultValue:!0},{field:`passkeyAutofill`,label:`Autofill de passkey`,description:`Sugestões de passkey no input de e-mail (conditional mediation)`,type:`boolean`,defaultValue:!0}]},{title:`Cadastro`,description:`Cadastro público (self-service).`,settingKey:`registration`,fields:[{field:`enabled`,label:`Permitir cadastro`,description:`Novos usuários podem se cadastrar sozinhos`,type:`boolean`,defaultValue:!0}]},{title:`Verificação de e-mail`,description:`Exigir e-mail verificado para logar.`,settingKey:`require_verified_email`,fields:[{field:`enabled`,label:`Exigir e-mail verificado`,description:`Bloqueia login de contas com e-mail não verificado`,type:`boolean`,defaultValue:!1},{field:`graceDays`,label:`Dias de graça`,description:`Permite login não-verificado por N dias após o cadastro (0 = sem graça)`,type:`number`,defaultValue:0}]},{title:`Manutenção`,description:`Modo manutenção — bloqueia login de contas comuns (admin segue entrando).`,settingKey:`maintenance_mode`,fields:[{field:`enabled`,label:`Modo manutenção`,description:`Telas de login/signup mostram página de manutenção`,type:`boolean`,defaultValue:!1},{field:`message`,label:`Mensagem`,description:`Texto exibido na página de manutenção (vazio = default)`,type:`string`,defaultValue:``}]},{title:`Bloqueio por falha (lockout)`,description:`Trava a conta após tentativas de login falhas.`,settingKey:`lockout`,fields:[{field:`enabled`,label:`Ligar lockout`,description:`Trava a conta após muitas falhas de senha`,type:`boolean`,defaultValue:!1},{field:`maxAttempts`,label:`Máx. tentativas`,description:`Falhas antes de travar`,type:`number`,defaultValue:5},{field:`windowSec`,label:`Janela (s)`,description:`Janela em que as falhas contam`,type:`number`,defaultValue:900},{field:`baseLockoutSec`,label:`Trava base (s)`,description:`Duração inicial da trava (backoff exponencial)`,type:`number`,defaultValue:60},{field:`maxLockoutSec`,label:`Trava máx. (s)`,description:`Teto da duração da trava`,type:`number`,defaultValue:3600}]},{title:`TTL dos tokens`,description:`Tempo de vida dos tokens OIDC (segundos).`,settingKey:`token_ttl`,fields:[{field:`accessTokenSec`,label:`Access token (s)`,description:`Validade do access token`,type:`number`,defaultValue:3600},{field:`idTokenSec`,label:`ID token (s)`,description:`Validade do ID token`,type:`number`,defaultValue:3600},{field:`refreshTokenSec`,label:`Refresh token (s)`,description:`Validade do refresh token`,type:`number`,defaultValue:2592e3}]}];function kU(){let[e,t]=(0,B.useState)(!1);return e?(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`div`,{className:`page-title`,style:{marginBottom:8},children:`Settings`}),(0,V.jsxs)(`div`,{className:`error-box`,children:[`Runtime settings exigem a tabela `,(0,V.jsx)(`code`,{children:`auth_settings`}),`. Rode a migration para habilitar.`]})]}):(0,V.jsxs)(`div`,{children:[(0,V.jsxs)(`div`,{className:`page-header`,children:[(0,V.jsx)(`div`,{className:`page-title`,children:`Settings`}),(0,V.jsxs)(`div`,{className:`page-sub`,children:[`Configuração de runtime — mudanças valem na hora. Settings definidas no`,` `,(0,V.jsx)(`code`,{children:`defineConfig()`}),` ficam travadas (config > runtime).`]})]}),OU.map(e=>(0,V.jsx)(DU,{section:e,onUnavailable:()=>t(!0)},e.settingKey))]})}function AU({search:e,page:t,onPage:n,onSelectUser:r}){let{data:i,isLoading:a,error:o,refetch:s}=ns(ms({search:e,page:t,limit:20})),c=i?.data??[],l=i?.total??0;return(0,V.jsxs)(V.Fragment,{children:[!a&&!o&&(0,V.jsx)(`div`,{style:{marginBottom:4},children:(0,V.jsxs)(`span`,{className:`page-sub`,style:{fontSize:12,color:`var(--faint)`},children:[l.toLocaleString(),` accounts`]})}),(0,V.jsx)(`div`,{className:`panel`,children:(0,V.jsx)(gl,{isLoading:a,error:o,onRetry:s,skeleton:(0,V.jsx)(Sl,{rows:6,cols:3}),children:c.length===0?(0,V.jsxs)(`div`,{className:`empty-state`,children:[(0,V.jsxs)(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.5`,children:[(0,V.jsx)(`circle`,{cx:`12`,cy:`8`,r:`4`}),(0,V.jsx)(`path`,{d:`M4 20c0-4.42 3.58-8 8-8s8 3.58 8 8`})]}),(0,V.jsx)(`h4`,{children:`No users found`}),(0,V.jsx)(`p`,{children:e?`Try a different search term`:`No accounts registered yet`})]}):(0,V.jsxs)(`div`,{className:`tbl-wrap`,children:[(0,V.jsxs)(`table`,{children:[(0,V.jsx)(`thead`,{children:(0,V.jsxs)(`tr`,{children:[(0,V.jsx)(`th`,{children:`User`}),(0,V.jsx)(`th`,{children:`Roles`}),(0,V.jsx)(`th`,{children:`Status`})]})}),(0,V.jsx)(`tbody`,{children:c.map(e=>(0,V.jsxs)(`tr`,{onClick:()=>r(e.id),children:[(0,V.jsx)(`td`,{children:(0,V.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:10},children:[(0,V.jsx)(`div`,{className:`avatar`,style:{width:26,height:26,fontSize:10},children:e.email.slice(0,2).toUpperCase()}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`div`,{style:{color:`var(--text)`,fontWeight:500,fontSize:12.5},children:e.email}),e.name&&(0,V.jsx)(`div`,{style:{color:`var(--faint)`,fontSize:11},children:e.name})]})]})}),(0,V.jsx)(`td`,{children:(0,V.jsx)(`div`,{style:{display:`flex`,gap:4,flexWrap:`wrap`},children:e.globalRoles.length===0?(0,V.jsx)(`span`,{className:`badge badge-muted`,children:`no roles`}):e.globalRoles.map(e=>(0,V.jsx)(`span`,{className:`badge badge-accent`,children:e},e))})}),(0,V.jsx)(`td`,{children:(0,V.jsx)(`span`,{className:`badge ${e.disabled?`badge-red`:`badge-green`}`,children:e.disabled?`disabled`:`active`})})]},e.id))})]}),(0,V.jsx)(`div`,{style:{padding:`0 16px 12px`},children:(0,V.jsx)(ul,{page:t,total:l,perPage:20,onPage:n})})]})})})]})}function jU({userId:e,onMutated:t,onClose:n}){let r=Ll(),i=Vo(),{data:a,isLoading:o,error:s,refetch:c}=ns(hs(e)),l=rs(ys(e)),u=rs(bs(e)),d=rs(xs(e)),f=rs(Ss(e)),p=rs(Cs(e)),m=ns({...Gs(e),enabled:!1}),[h,g]=(0,B.useState)(null);async function _(){if(a)try{a.disabled?(await u.mutateAsync(),r.success(`User enabled`)):(await l.mutateAsync(),r.success(`User disabled`)),i.invalidateQueries({queryKey:G.admin.user(e)}),t()}catch(e){r.error(e instanceof Error?e.message:String(e))}}async function v(){try{await d.mutateAsync(),r.success(`Reset email sent`)}catch(e){r.error(e instanceof Error?e.message:String(e))}}async function y(){if(a&&confirm(`Delete user ${a.email}? This cannot be undone.`))try{await f.mutateAsync(),r.success(`User deleted`),n(),t()}catch(e){r.error(e instanceof Error?e.message:String(e))}}async function b(){if(a&&confirm(`Disconnect ${a.email} from all devices? Every active session and grant will be revoked.`))try{let t=await p.mutateAsync();r.success(`Disconnected from all devices${typeof t?.revoked==`number`?` (${t.revoked} sessions)`:``}`),i.invalidateQueries({queryKey:G.admin.userSessions(e)})}catch(e){r.error(e instanceof Error?e.message:String(e))}}async function x(){let e=await m.refetch();if(e.error){r.error(e.error instanceof Error?e.error.message:`Impersonation not available`);return}if(!e.data){r.error(`Impersonation not available`);return}g(e.data)}async function S(e,t){try{await navigator.clipboard.writeText(e),r.success(`${t} copied`)}catch{r.error(`Could not copy to the clipboard`)}}return(0,V.jsx)(gl,{isLoading:o,error:s,onRetry:c,skeleton:(0,V.jsx)(`div`,{children:(0,V.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:12,marginBottom:16},children:[(0,V.jsx)(`div`,{style:{width:44,height:44,borderRadius:`50%`,background:`var(--bg3)`,backgroundImage:`linear-gradient(90deg, var(--bg3) 0%, var(--bg2) 40%, var(--bg3) 100%)`,backgroundSize:`200% 100%`,animation:`sk-shimmer 1.6s ease-in-out infinite`}}),(0,V.jsxs)(`div`,{style:{flex:1,display:`flex`,flexDirection:`column`,gap:6},children:[(0,V.jsx)(`div`,{style:{height:14,width:`60%`,borderRadius:6,background:`var(--bg3)`,backgroundImage:`linear-gradient(90deg, var(--bg3) 0%, var(--bg2) 40%, var(--bg3) 100%)`,backgroundSize:`200% 100%`,animation:`sk-shimmer 1.6s ease-in-out infinite`}}),(0,V.jsx)(`div`,{style:{height:11,width:`40%`,borderRadius:6,background:`var(--bg3)`,backgroundImage:`linear-gradient(90deg, var(--bg3) 0%, var(--bg2) 40%, var(--bg3) 100%)`,backgroundSize:`200% 100%`,animation:`sk-shimmer 1.6s ease-in-out infinite`}})]})]})}),children:a&&(0,V.jsxs)(`div`,{children:[(0,V.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:12,marginBottom:16},children:[(0,V.jsx)(`div`,{className:`avatar`,style:{width:44,height:44,fontSize:15},children:a.email.slice(0,2).toUpperCase()}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`div`,{style:{fontWeight:600,fontSize:14},children:a.email}),a.name&&(0,V.jsx)(`div`,{style:{color:`var(--faint)`,fontSize:12},children:a.name}),(0,V.jsx)(`div`,{style:{marginTop:4},children:(0,V.jsx)(`span`,{className:`badge ${a.disabled?`badge-red`:`badge-green`}`,children:a.disabled?`disabled`:`active`})})]})]}),(0,V.jsxs)(`div`,{className:`code`,style:{fontSize:11,padding:`6px 10px`},children:[`ID: `,a.id]}),(0,V.jsxs)(`div`,{style:{marginTop:16},children:[(0,V.jsx)(`div`,{style:{fontSize:10.5,letterSpacing:`0.12em`,textTransform:`uppercase`,color:`var(--faint)`,fontWeight:600,marginBottom:8},children:`Actions`}),(0,V.jsxs)(`div`,{style:{display:`flex`,flexWrap:`wrap`,gap:6},children:[(0,V.jsx)(`button`,{className:`btn btn-sm ${a.disabled?``:`btn-danger`}`,onClick:_,disabled:l.isPending||u.isPending,children:a.disabled?`Enable account`:`Disable account`}),(0,V.jsx)(`button`,{className:`btn btn-sm`,onClick:v,disabled:d.isPending,children:`Reset password`}),(0,V.jsx)(`button`,{className:`btn btn-sm`,onClick:x,disabled:m.isFetching,children:`Impersonate`}),(0,V.jsx)(`button`,{className:`btn btn-sm btn-danger`,onClick:b,disabled:p.isPending,children:`Disconnect all devices`}),(0,V.jsx)(`button`,{className:`btn btn-sm btn-danger`,onClick:y,disabled:f.isPending,children:`Delete user`})]})]}),(0,V.jsx)(Al,{open:h!==null,onClose:()=>g(null),title:`Impersonate ${h?.targetEmail??``}`,large:!0,footer:(0,V.jsx)(`button`,{className:`btn btn-sm`,onClick:()=>g(null),children:`Close`}),children:h&&(0,V.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:14},children:[(0,V.jsxs)(`p`,{style:{margin:0,fontSize:13,color:`var(--faint)`},children:[`Impersonation runs through the RFC 8693 token exchange. The exchange has to be signed with `,(0,V.jsx)(`strong`,{children:`your own admin access token`}),` as the`,` `,(0,V.jsx)(`code`,{children:`subject_token`}),`, which this console does not hold — so run the request below from wherever you already have that token. The issued `,(0,V.jsx)(`code`,{children:`id_token`}),` `,`carries `,(0,V.jsx)(`code`,{children:`act`}),` with your subject, and the exchange is audited.`]}),(0,V.jsxs)(`div`,{style:{display:`grid`,gap:6},children:[(0,V.jsx)(MU,{label:`Token endpoint`,value:h.tokenEndpoint}),(0,V.jsx)(MU,{label:`Client`,value:h.clientId}),(0,V.jsx)(MU,{label:`Grant type`,value:h.grantType}),(0,V.jsx)(MU,{label:`Subject token type`,value:h.subjectTokenType}),(0,V.jsx)(MU,{label:`Requested subject`,value:h.requestedSubject})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,justifyContent:`space-between`,marginBottom:6},children:[(0,V.jsx)(`span`,{style:{fontSize:12,color:`var(--faint)`},children:`Request`}),(0,V.jsx)(`button`,{className:`btn btn-sm`,onClick:()=>S(h.curl,`Command`),children:`Copy`})]}),(0,V.jsx)(`pre`,{className:`code`,style:{fontSize:11,whiteSpace:`pre-wrap`,wordBreak:`break-all`},children:h.curl})]})]})})]})})}function MU({label:e,value:t}){return(0,V.jsxs)(`div`,{style:{display:`flex`,gap:10,fontSize:12},children:[(0,V.jsx)(`span`,{style:{color:`var(--faint)`,minWidth:140},children:e}),(0,V.jsx)(`span`,{className:`code`,style:{fontSize:11,padding:`2px 6px`,wordBreak:`break-all`},children:t})]})}function NU({userId:e,onMutated:t}){let n=Ll(),r=Vo(),{data:i,isLoading:a,error:o,refetch:s}=ns(hs(e)),c=rs(vs(e)),[l,u]=(0,B.useState)([]);(0,B.useEffect)(()=>{i&&u(i.globalRoles)},[i]);let d=e=>{u(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])};async function f(){try{await c.mutateAsync({globalRoles:l}),n.success(`Roles updated`),r.invalidateQueries({queryKey:G.admin.user(e)}),t()}catch(e){n.error(e instanceof Error?e.message:String(e))}}return(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`div`,{style:{fontSize:10.5,letterSpacing:`0.12em`,textTransform:`uppercase`,color:`var(--faint)`,fontWeight:600,marginBottom:8},children:`Global Roles`}),(0,V.jsx)(gl,{isLoading:a,error:o,onRetry:s,skeleton:(0,V.jsx)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:8},children:[1,2].map(e=>(0,V.jsx)(`div`,{style:{height:20,borderRadius:6,background:`var(--bg3)`,backgroundImage:`linear-gradient(90deg, var(--bg3) 0%, var(--bg2) 40%, var(--bg3) 100%)`,backgroundSize:`200% 100%`,animation:`sk-shimmer 1.6s ease-in-out infinite`}},e))}),children:i&&(0,V.jsxs)(V.Fragment,{children:[l.length===0&&(0,V.jsx)(`div`,{style:{fontSize:12,color:`var(--faint)`,marginBottom:8},children:`No roles assigned`}),i.globalRoles.map(e=>(0,V.jsxs)(`label`,{className:`checkbox-row`,children:[(0,V.jsx)(`input`,{type:`checkbox`,checked:l.includes(e),onChange:()=>d(e)}),(0,V.jsx)(`div`,{children:(0,V.jsx)(`div`,{className:`chk-label`,children:e})})]},e)),(0,V.jsx)(`button`,{className:`btn btn-primary btn-sm`,style:{marginTop:10},onClick:f,disabled:c.isPending,children:c.isPending?(0,V.jsx)(`span`,{className:`spinner sm`}):`Save roles`})]})})]})}function PU({userId:e}){let{data:t,isLoading:n,error:r,refetch:i}=ns(gs(e)),a=t?.sessions??[];return(0,V.jsxs)(`div`,{children:[(0,V.jsxs)(`div`,{style:{fontSize:10.5,letterSpacing:`0.12em`,textTransform:`uppercase`,color:`var(--faint)`,fontWeight:600,marginBottom:8},children:[`Sessions `,!n&&!r?`(${a.length})`:``]}),(0,V.jsx)(gl,{isLoading:n,error:r,onRetry:i,skeleton:(0,V.jsx)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:8},children:[1,2].map(e=>(0,V.jsx)(`div`,{style:{height:44,borderRadius:8,background:`var(--bg3)`,backgroundImage:`linear-gradient(90deg, var(--bg3) 0%, var(--bg2) 40%, var(--bg3) 100%)`,backgroundSize:`200% 100%`,animation:`sk-shimmer 1.6s ease-in-out infinite`}},e))}),children:a.length===0?(0,V.jsx)(`div`,{style:{fontSize:12,color:`var(--faint)`},children:`No active sessions`}):a.map(e=>(0,V.jsxs)(`div`,{className:`panel`,style:{marginBottom:8,padding:`10px 12px`},children:[(0,V.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:8,fontSize:12},children:[(0,V.jsxs)(`svg`,{width:`13`,height:`13`,viewBox:`0 0 16 16`,fill:`none`,stroke:`var(--muted)`,strokeWidth:`1.6`,children:[(0,V.jsx)(`rect`,{x:`1.5`,y:`3.5`,width:`13`,height:`9`,rx:`1.5`}),(0,V.jsx)(`circle`,{cx:`8`,cy:`8.5`,r:`2`})]}),(0,V.jsx)(`span`,{style:{color:`var(--text)`,fontWeight:500},children:e.browser??`Unknown browser`}),(0,V.jsx)(`span`,{style:{color:`var(--faint)`},children:e.os}),(0,V.jsx)(`span`,{className:`code ml-auto`,children:e.ip??`—`})]}),e.location&&(0,V.jsx)(`div`,{style:{fontSize:11,color:`var(--faint)`,marginTop:4},children:e.location})]},e.id))})]})}function FU({userId:e,onClose:t,onMutated:n}){let{data:r}=ns(hs(e));return(0,V.jsx)(Hl,{open:!0,onClose:t,title:r?.email??`User detail`,children:(0,V.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:20},children:[(0,V.jsx)(jU,{userId:e,onMutated:n,onClose:t}),(0,V.jsx)(NU,{userId:e,onMutated:n}),(0,V.jsx)(PU,{userId:e})]})})}function IU(){let e=Ll(),t=Vo(),[n,r]=tl(`page`,Kc.withDefault(1)),[i,a]=tl(`q`,Gc.withDefault(``)),[o,s]=tl(`user`),c=Ul(i,300),[l,u]=(0,B.useState)(!1),[d,f]=(0,B.useState)({email:``,name:``,password:``,invite:!1}),p=rs(_s());async function m(n){n.preventDefault();try{await p.mutateAsync({email:d.email,name:d.name||void 0,password:d.password||void 0,invite:d.invite}),t.invalidateQueries({queryKey:G.admin.users()}),e.success(`User created`),u(!1),f({email:``,name:``,password:``,invite:!1})}catch(t){e.error(t instanceof Error?t.message:String(t))}}return(0,V.jsxs)(`div`,{children:[(0,V.jsxs)(`div`,{className:`page-header-row`,children:[(0,V.jsx)(`div`,{children:(0,V.jsx)(`div`,{className:`page-title`,children:`Users`})}),(0,V.jsx)(`div`,{className:`page-actions`,children:(0,V.jsxs)(`button`,{className:`btn btn-primary`,onClick:()=>u(!0),children:[(0,V.jsx)(`svg`,{viewBox:`0 0 16 16`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,children:(0,V.jsx)(`path`,{d:`M8 2v12M2 8h12`,strokeLinecap:`round`})}),`New User`]})})]}),(0,V.jsx)(`div`,{className:`panel`,style:{marginBottom:0},children:(0,V.jsx)(`div`,{className:`panel-head`,children:(0,V.jsxs)(`div`,{className:`search-input`,style:{flex:1,maxWidth:320},children:[(0,V.jsxs)(`svg`,{className:`search-ico`,viewBox:`0 0 16 16`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.7`,children:[(0,V.jsx)(`circle`,{cx:`7`,cy:`7`,r:`4.5`}),(0,V.jsx)(`path`,{d:`M10 10l3 3`,strokeLinecap:`round`})]}),(0,V.jsx)(`input`,{className:`input`,placeholder:`Search by email or name…`,value:i,onChange:e=>{a(e.target.value),r(1)}})]})})}),(0,V.jsx)(AU,{search:c,page:n,onPage:r,onSelectUser:s,onInvalidate:()=>t.invalidateQueries({queryKey:G.admin.users()})}),(0,V.jsx)(Al,{open:l,onClose:()=>u(!1),title:`Create User`,footer:(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`button`,{className:`btn`,onClick:()=>u(!1),children:`Cancel`}),(0,V.jsx)(`button`,{className:`btn btn-primary`,onClick:m,disabled:p.isPending,children:p.isPending?(0,V.jsx)(`span`,{className:`spinner sm`}):`Create User`})]}),children:(0,V.jsxs)(`form`,{onSubmit:m,children:[(0,V.jsxs)(`div`,{className:`field`,children:[(0,V.jsx)(`label`,{children:`Email *`}),(0,V.jsx)(`input`,{className:`input`,type:`email`,required:!0,value:d.email,onChange:e=>f(t=>({...t,email:e.target.value})),placeholder:`user@example.com`})]}),(0,V.jsxs)(`div`,{className:`field`,children:[(0,V.jsx)(`label`,{children:`Name`}),(0,V.jsx)(`input`,{className:`input`,value:d.name,onChange:e=>f(t=>({...t,name:e.target.value})),placeholder:`Full name (optional)`})]}),(0,V.jsxs)(`div`,{className:`field`,children:[(0,V.jsx)(`label`,{children:`Password`}),(0,V.jsx)(`input`,{className:`input`,type:`password`,value:d.password,onChange:e=>f(t=>({...t,password:e.target.value})),placeholder:`Leave blank to send invite`})]}),(0,V.jsxs)(`label`,{className:`checkbox-row`,children:[(0,V.jsx)(`input`,{type:`checkbox`,checked:d.invite,onChange:e=>f(t=>({...t,invite:e.target.checked}))}),(0,V.jsx)(`span`,{className:`chk-label`,children:`Send invitation email`})]})]})}),o&&(0,V.jsx)(FU,{userId:o,onClose:()=>s(null),onMutated:()=>t.invalidateQueries({queryKey:G.admin.users()})})]})}var LU={overview:`Overview`,users:`Users`,sessions:`Sessions`,clients:`OAuth Clients`,roles:`Roles`,orgs:`Organizations`,audit:`Audit Log`,keys:`Signing Keys`,settings:`Settings`};function RU(){let{route:e}=rl();switch(e){case`overview`:return(0,V.jsx)(_U,{});case`users`:return(0,V.jsx)(IU,{});case`sessions`:return(0,V.jsx)(wU,{});case`clients`:return(0,V.jsx)(J,{});case`roles`:return(0,V.jsx)(bU,{});case`orgs`:return(0,V.jsx)(vu,{});case`audit`:return(0,V.jsx)(kl,{});case`keys`:return(0,V.jsx)(Vl,{});case`settings`:return(0,V.jsx)(kU,{});default:return(0,V.jsx)(_U,{})}}function zU(){let{route:e}=rl();return(0,V.jsxs)(`div`,{className:`app-shell`,children:[(0,V.jsx)(cl,{}),(0,V.jsxs)(`main`,{className:`main`,children:[(0,V.jsx)(ll,{title:LU[e]??`AuthKit Admin`}),(0,V.jsx)(`div`,{className:`content`,children:(0,V.jsx)(B.Suspense,{fallback:(0,V.jsx)(`div`,{className:`loading-row`,children:(0,V.jsx)(`div`,{className:`spinner lg`})}),children:(0,V.jsx)(RU,{})})})]})]})}var BU=document.getElementById(`root`);if(!BU)throw Error(`Root element not found`);var VU=fs();(0,pa.createRoot)(BU).render((0,V.jsx)(B.StrictMode,{children:(0,V.jsx)(Ho,{client:VU,children:(0,V.jsx)(ds,{children:(0,V.jsx)(zc,{children:(0,V.jsx)(al,{children:(0,V.jsx)(Il,{children:(0,V.jsx)(zU,{})})})})})})}));
@@ -8,7 +8,7 @@
8
8
  <link rel="preconnect" href="https://fonts.googleapis.com">
9
9
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
10
10
  <link href="https://fonts.googleapis.com/css2?family=Sora:wght@400;500;600;700&family=JetBrains+Mono:ital,wght@0,400;0,500;0,600;1,400&display=swap" rel="stylesheet">
11
- <script type="module" crossorigin src="/__AUTHKIT_BASE__/assets/index-pAbBjdHC.js"></script>
11
+ <script type="module" crossorigin src="/__AUTHKIT_BASE__/assets/index-6cE5JMyP.js"></script>
12
12
  <link rel="stylesheet" crossorigin href="/__AUTHKIT_BASE__/assets/index-DTSmD4RU.css">
13
13
  </head>
14
14
  <body>
@@ -44,7 +44,10 @@ const LOGIN_FAILURE = ['login.failure', 'bot_protection.rejected'];
44
44
  const MFA_ENROLLMENTS = ['mfa.enabled', 'passkey.registered'];
45
45
  const LOCKOUTS = ['account.locked', 'otp.locked'];
46
46
  const PAT_EVENTS = ['pat.issued', 'pat.revoked', 'pat.used'];
47
- const IMPERSONATION_EVENTS = ['impersonation', 'impersonation.started'];
47
+ const IMPERSONATION_EVENTS = [
48
+ 'impersonation',
49
+ 'impersonation.panel_viewed',
50
+ ];
48
51
  /**
49
52
  * A stat (`{ value, delta?, spark? }`) over a window for a set of event types.
50
53
  * `query.metric` chooses the grouping; `query.windowMs` the window (default 24h).
@@ -3,7 +3,7 @@ import { NoopRecorder } from '@adonis-agora/authkit-core';
3
3
  import Koa from 'koa';
4
4
  import mount from 'koa-mount';
5
5
  import { readActiveOrgFromKoaCtx } from '../host/active_org_cookie.js';
6
- import { isFirstParty } from '../host/branding.js';
6
+ import { isFirstPartyClient } from '../host/branding.js';
7
7
  import { listKeyInfos, signingKeyAgeDays } from '../keys/keystore.js';
8
8
  import { wireProviderEvents } from '../observability/wire_provider_events.js';
9
9
  import { buildProvider } from './build_provider.js';
@@ -84,12 +84,24 @@ export class OidcService {
84
84
  return undefined;
85
85
  // Lê a org ativa do cookie de sessão (se organizations estiver disponível).
86
86
  const activeOrg = readActiveOrgFromKoaCtx(ctx);
87
- // GATE de least-privilege: roles globais e claims de org só são emitidas para
88
- // clients FIRST-PARTY (`branding.firstParty`). Capturamos o clientId aqui (fora
89
- // do closure `claims()`, pois o `ctx` da request vive neste escopo). Um client
90
- // third-party NUNCA recebe roles/org — mesmo solicitando `scope=roles`.
87
+ // GATE de least-privilege: roles globais e claims de org só são emitidas
88
+ // para clients FIRST-PARTY. Capturamos o clientId aqui (fora do closure
89
+ // `claims()`, pois o `ctx` da request vive neste escopo).
90
+ //
91
+ // SEM allowlist declarada, todo client registrado é first-party. O gate
92
+ // costumava ser `config.branding ? isFirstParty(...) : false`, o que
93
+ // fazia a AUSÊNCIA de um bloco de TEMA significar "ninguém é
94
+ // first-party": num host sem `branding`, todo RP recebia
95
+ // `globalRoles: []` — em silêncio, e assimetricamente, porque o console
96
+ // admin lê roles da sessão e seguia funcionando.
97
+ //
98
+ // Isto não abre as roles para qualquer um: a claim está amarrada ao
99
+ // escopo `roles` (ver `claims` em `build_provider.ts`), então o client
100
+ // ainda precisa ter sido registrado por um admin E pedir `scope=roles`.
101
+ // Quem hospeda clients de terceiros declara `firstPartyClients` e fecha
102
+ // a lista.
91
103
  const clientId = ctx?.oidc?.client?.clientId;
92
- const firstParty = config.branding ? isFirstParty(config.branding, clientId) : false;
104
+ const firstParty = isFirstPartyClient(config.firstPartyClients, clientId);
93
105
  return {
94
106
  accountId: user.id,
95
107
  claims: async (_use, _scope) => {
package/build/types.d.ts CHANGED
@@ -1,7 +1,27 @@
1
+ import type { MetricsRecorder } from '@adonis-agora/authkit-core';
2
+ import type { AccountStore } from './src/accounts/account_store.js';
3
+ import type { PatStore } from './src/pat/pat_store.js';
1
4
  import type { OidcService } from './src/provider/oidc_service.js';
5
+ /**
6
+ * FONTE ÚNICA dos bindings de container do authkit-server.
7
+ *
8
+ * Este bloco morava DUPLICADO dentro de `providers/authkit_server_provider.ts`,
9
+ * enquanto este arquivo declarava só `authkit.server`. Como o provider é o que
10
+ * todo host registra no `adonisrc.ts`, era a cópia DELE que tipava os apps — e
11
+ * esta, exposta pelo subpath `./types`, era uma visão parcial: `authkit.metrics`,
12
+ * `authkit.accountStore` e `authkit.patStore` davam TS2339 por ela.
13
+ *
14
+ * Duas tabelas de bindings sem nada conferindo que concordam é a mesma classe de
15
+ * defeito que deixou cinco eventos de auditoria fora da união. Agora existe uma
16
+ * só, e o provider a alcança com um `import '../types.js'` — que por isso NÃO é
17
+ * redundante: é o que mantém os hosts tipados.
18
+ */
2
19
  declare module '@adonisjs/core/types' {
3
20
  interface ContainerBindings {
4
21
  'authkit.server': OidcService;
22
+ 'authkit.metrics': MetricsRecorder;
23
+ 'authkit.accountStore': AccountStore;
24
+ 'authkit.patStore': PatStore;
5
25
  }
6
26
  }
7
- export type { OidcService };
27
+ export type { OidcService, MetricsRecorder, AccountStore, PatStore };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adonis-agora/authkit-server",
3
- "version": "0.57.1",
3
+ "version": "0.58.1",
4
4
  "description": "AdonisJS OIDC/OAuth2 provider (Identity Provider) toolkit: ejectable auth server with sessions, rate-limiting, MFA/TOTP, audit log, federated logout and OpenTelemetry metrics.",
5
5
  "license": "MIT",
6
6
  "author": "dudousxd",
@@ -37,7 +37,7 @@
37
37
  ],
38
38
  "exports": {
39
39
  ".": "./build/index.js",
40
- "./types": "./build/index.js",
40
+ "./types": "./build/types.js",
41
41
  "./services/main": "./build/services/main.js",
42
42
  "./durable": "./build/src/host/durable/index.js",
43
43
  "./telescope": "./build/src/observability/telescope/index.js",
@@ -55,9 +55,9 @@
55
55
  ]
56
56
  },
57
57
  "peerDependencies": {
58
- "@adonis-agora/durable": "^0.22.0",
59
- "@adonis-agora/media": "^0.1.0",
60
- "@adonis-agora/telescope": "^0.1.0",
58
+ "@adonis-agora/durable": ">=0.7.0 <1.0.0",
59
+ "@adonis-agora/media": ">=0.5.0 <1.0.0",
60
+ "@adonis-agora/telescope": ">=0.1.0 <1.0.0",
61
61
  "@adonisjs/ally": "^6.3.0",
62
62
  "@adonisjs/auth": "^10.1.0",
63
63
  "@adonisjs/core": "^7.3.3",
@@ -150,7 +150,7 @@
150
150
  "react-error-boundary": "6.1.2",
151
151
  "nuqs": "2.9.5",
152
152
  "recharts": "3.10.1",
153
- "@adonis-agora/authkit-react": "0.18.1"
153
+ "@adonis-agora/authkit-react": "0.19.0"
154
154
  },
155
155
  "scripts": {
156
156
  "build": "node scripts/build_host_css.mjs && node scripts/build_webauthn.mjs && node scripts/build_ui.mjs && node -e \"const fs=require('node:fs');for(const d of ['build/stubs','build/host/views'])fs.rmSync(d,{recursive:true,force:true})\" && tsc && node -e \"require('node:fs').cpSync('src/host/assets','build/src/host/assets',{recursive:true})\" && node -e \"require('node:fs').cpSync('stubs','build/stubs',{recursive:true,filter:(s)=>!s.endsWith('.ts')})\" && node -e \"const fs=require('node:fs');if(fs.existsSync('assets'))fs.cpSync('assets','build/assets',{recursive:true})\" && node -e \"require('node:fs').cpSync('src/host/views','build/host/views',{recursive:true})\" && node -e \"const fs=require('node:fs');fs.mkdirSync('build/host/ui',{recursive:true});fs.readdirSync('src/host/ui').filter(f=>f.endsWith('.html')).forEach(f=>fs.copyFileSync('src/host/ui/'+f,'build/host/ui/'+f))\" && node -e \"require('node:fs').copyFileSync('commands/commands.json','build/commands/commands.json')\" && node -e \"const fs=require('node:fs');fs.mkdirSync('build/src/password',{recursive:true});fs.copyFileSync('src/password/common_passwords.txt','build/src/password/common_passwords.txt')\"",