@arpanp/zen-reporter 0.11.1 → 0.11.2

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.
package/dist/index.html CHANGED
@@ -94,9 +94,9 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
94
94
  In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function lP(e,t){if(e){if(typeof e==`string`)return uP(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)?uP(e,t):void 0}}function uP(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 dP(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 fP(e){if(Array.isArray(e))return e}function pP(e,t){if(e==null)return{};var n,r,i=mP(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 mP(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 hP(){return hP=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},hP.apply(null,arguments)}function gP(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 _P(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?gP(Object(n),!0).forEach(function(t){vP(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):gP(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function vP(e,t,n){return(t=yP(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function yP(e){var t=bP(e,`string`);return typeof t==`symbol`?t:t+``}function bP(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 xP={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:Hg.axis};function SP(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=_P(_P(_P({},c),Qt(s)),{},{fill:`none`});if(a===`top`||a===`bottom`){var u=+(a===`top`&&!o||a===`bottom`&&o);l=_P(_P({},l),{},{x1:t,y1:n+u*i,x2:t+r,y2:n+u*i})}else{var d=+(a===`left`&&!o||a===`right`&&o);l=_P(_P({},l),{},{x1:t+d*r,y1:n,x2:t+d*r,y2:n+i})}return v.createElement(`line`,hP({},l,{className:qt(`recharts-cartesian-axis-line`,yn(s,`className`))}))}function CP(e,t,n,r,i,a,o,s,c){var l,u,d,f,p,m,h=s?-1:1,g=e.tickSize||o,_=L(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 wP(e,t){switch(e){case`left`:return t?`start`:`end`;case`right`:return t?`end`:`start`;default:return`middle`}}function TP(e,t){switch(e){case`left`:case`right`:return`middle`;case`top`:return t?`start`:`end`;default:return t?`end`:`start`}}function EP(e){var t=e.option,n=e.tickProps,r=e.value,i,a=qt(n.className,`recharts-cartesian-axis-tick-value`);if(v.isValidElement(t))i=v.cloneElement(t,_P(_P({},n),{},{className:a}));else if(typeof t==`function`)i=t(_P(_P({},n),{},{className:a}));else{var o=`recharts-cartesian-axis-tick-value`;typeof t!=`boolean`&&(o=qt(o,nj(t))),i=v.createElement(dA,hP({},n,{className:o}),r)}return i}function DP(e){var t=e.ticks,n=e.axisType,r=e.axisId,i=z(),a=(0,v.useRef)(null);return(0,v.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&&LN(o.ticks,e)||(a.current={ticks:e,axisId:r,axisType:n},i(rP({ticks:e,axisId:r,axisType:n})))}},[i,t,r,n]),(0,v.useEffect)(()=>r==null||n==null?Ln:()=>{i(iP({axisId:r,axisType:n}))},[i,r,n]),null}var OP=(0,v.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,y=e.tickMargin,b=e.fontSize,x=e.letterSpacing,S=e.getTicksConfig,C=e.events,w=e.axisType,T=e.axisId,E=QN(_P(_P({},S),{},{ticks:r}),b,x),D=Qt(S),O=$t(i),k=eA(D.textAnchor)?D.textAnchor:wP(d,f),A=TP(d,f),j={};typeof a==`object`&&(j=a);var M=_P(_P({},D),{},{fill:`none`},j),N=E.map(e=>_P({entry:e},CP(e,p,m,h,g,d,_,f,y))),ee=N.map(e=>{var t=e.entry,n=e.line;return v.createElement(fn,{className:`recharts-cartesian-axis-tick`,key:`tick-${t.value}-${t.coordinate}-${t.tickCoord}`},a&&v.createElement(`line`,hP({},M,n,{className:qt(`recharts-cartesian-axis-tick-line`,yn(a,`className`))})))}),te=N.map((e,t)=>{var n=e.entry,r=e.tick,a=_P(_P({},_P(_P(_P(_P({verticalAnchor:A},D),{},{textAnchor:k,stroke:`none`,fill:o},r),{},{index:t,payload:n,visibleTicksCount:E.length,tickFormatter:s,padding:l},u),{},{angle:u?.angle??D.angle??0})),O);return v.createElement(fn,hP({className:`recharts-cartesian-axis-tick-label`,key:`tick-label-${n.value}-${n.coordinate}-${n.tickCoord}`},Ii(C,n,t)),i&&v.createElement(EP,{option:i,tickProps:a,value:`${typeof s==`function`?s(n.value,t):n.value}${c||``}`}))});return v.createElement(`g`,{className:`recharts-cartesian-axis-ticks recharts-${w}-ticks`},v.createElement(DP,{ticks:E,axisId:T,axisType:w}),te.length>0&&v.createElement(QD,{zIndex:Hg.label},v.createElement(`g`,{className:`recharts-cartesian-axis-tick-labels recharts-${w}-tick-labels`,ref:t},te)),ee.length>0&&v.createElement(`g`,{className:`recharts-cartesian-axis-tick-lines recharts-${w}-tick-lines`},ee))}),kP=(0,v.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=pP(e,oP),d=sP((0,v.useState)(``),2),f=d[0],p=d[1],m=sP((0,v.useState)(``),2),h=m[0],g=m[1],_=(0,v.useRef)(null);(0,v.useImperativeHandle)(t,()=>({getCalculatedWidth:()=>$N({ticks:_.current,label:e.labelRef?.current,labelGapWithTick:5,tickSize:e.tickSize,tickMargin:e.tickMargin}),getCalculatedHeight:()=>eP({ticks:_.current,label:e.labelRef?.current,labelGapWithTick:5,tickSize:e.tickSize,tickMargin:e.tickMargin})}));var y=(0,v.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:v.createElement(QD,{zIndex:e.zIndex},v.createElement(fn,{className:qt(`recharts-cartesian-axis`,a)},v.createElement(SP,{x:e.x,y:e.y,width:r,height:i,orientation:e.orientation,mirror:e.mirror,axisLine:n,otherSvgProps:Qt(e)}),v.createElement(OP,{ref:y,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}),v.createElement(CA,{x:e.x,y:e.y,width:e.width,height:e.height,lowerWidth:e.width,upperWidth:e.width},v.createElement(LA,{label:e.label,labelRef:e.labelRef}),e.children)))}),AP=v.forwardRef((e,t)=>{var n=Hi(e,xP);return v.createElement(kP,hP({},n,{ref:t}))});AP.displayName=`CartesianAxis`;var jP=(0,v.createContext)({grid:{stroke:`#ccc`,fill:`none`}});jP.Provider;var MP=()=>(0,v.useContext)(jP),NP=[`x1`,`y1`,`x2`,`y2`,`key`],PP=[`offset`],FP=[`xAxisId`,`yAxisId`],IP=[`xAxisId`,`yAxisId`];function LP(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 RP(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?LP(Object(n),!0).forEach(function(t){zP(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):LP(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function zP(e,t,n){return(t=BP(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function BP(e){var t=VP(e,`string`);return typeof t==`symbol`?t:t+``}function VP(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 HP(){return HP=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},HP.apply(null,arguments)}function UP(e,t){if(e==null)return{};var n,r,i=WP(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 WP(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 GP=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 v.createElement(`rect`,{x:r,y:i,ry:s,width:a,height:o,stroke:`none`,fill:t,fillOpacity:n,className:`recharts-cartesian-grid-bg`})};function KP(e){var t=e.option,n=e.lineItemProps,r;if(v.isValidElement(t))r=v.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=Qt(UP(n,NP))??{};l.offset;var u=UP(l,PP),d=Array.isArray(u.strokeDasharray)?u.strokeDasharray.join(`,`):u.strokeDasharray;r=v.createElement(`line`,HP({},u,{strokeDasharray:d,x1:i,y1:a,x2:o,y2:s,fill:`none`,key:c}))}return r}function qP(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=UP(e,FP),s=a.map((e,r)=>{var a=RP(RP({},o),{},{x1:t,y1:e,x2:t+n,y2:e,key:`line-${r}`,index:r});return v.createElement(KP,{key:`line-${r}`,option:i,lineItemProps:a})});return v.createElement(`g`,{className:`recharts-cartesian-grid-horizontal`},s)}function JP(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=UP(e,IP),s=a.map((e,r)=>{var a=RP(RP({},o),{},{x1:e,y1:t,x2:e,y2:t+n,key:`line-${r}`,index:r});return v.createElement(KP,{option:i,lineItemProps:a,key:`line-${r}`})});return v.createElement(`g`,{className:`recharts-cartesian-grid-vertical`},s)}function YP(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 v.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 v.createElement(`g`,{className:`recharts-cartesian-gridstripes-horizontal`},u)}function XP(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 v.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 v.createElement(`g`,{className:`recharts-cartesian-gridstripes-vertical`},d)}var ZP=(e,t)=>{var n=e.xAxis,r=e.width,i=e.height,a=e.offset;return fu(QN(RP(RP(RP({},xP),n),{},{ticks:pu(n,!0),viewBox:{x:0,y:0,width:r,height:i}})),a.left,a.left+a.width,t)},QP=(e,t)=>{var n=e.yAxis,r=e.width,i=e.height,a=e.offset;return fu(QN(RP(RP(RP({},xP),n),{},{ticks:pu(n,!0),viewBox:{x:0,y:0,width:r,height:i}})),a.top,a.top+a.height,t)},$P={horizontal:!0,vertical:!0,horizontalPoints:[],verticalPoints:[],verticalFill:[],horizontalFill:[],xAxisId:0,yAxisId:0,syncWithTicks:!1,zIndex:Hg.grid};function eF(e){var t=Nd(),n=Pd(),r=Md(),i=RP(RP({},Hi(e,$P)),{},{x:L(e.x)?e.x:r.left,y:L(e.y)?e.y:r.top,width:L(e.width)?e.width:r.width,height:L(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=Qu(),h=B(e=>ST(e,`xAxis`,a,m)),g=B(e=>ST(e,`yAxis`,o,m)),_=MP(),y={stroke:i.stroke??_.grid.stroke,strokeWidth:i.strokeWidth??_.grid.strokeWidth,strokeOpacity:i.strokeOpacity??_.grid.strokeOpacity,strokeDasharray:i.strokeDasharray??_.grid.strokeDasharray};if(!K(l)||!K(u)||!L(s)||!L(c))return null;var b=i.verticalCoordinatesGenerator||ZP,x=i.horizontalCoordinatesGenerator||QP,S=i.horizontalPoints,C=i.verticalPoints;if((!S||!S.length)&&typeof x==`function`){var w=f&&f.length,T=x({yAxis:g?RP(RP({},g),{},{ticks:w?f:g.ticks}):void 0,width:t??l,height:n??u,offset:r},w?!0:d);ed(Array.isArray(T),`horizontalCoordinatesGenerator should return Array but instead it returned [${typeof T}]`),Array.isArray(T)&&(S=T)}if((!C||!C.length)&&typeof b==`function`){var E=p&&p.length,D=b({xAxis:h?RP(RP({},h),{},{ticks:E?p:h.ticks}):void 0,width:t??l,height:n??u,offset:r},E?!0:d);ed(Array.isArray(D),`verticalCoordinatesGenerator should return Array but instead it returned [${typeof D}]`),Array.isArray(D)&&(C=D)}return v.createElement(QD,{zIndex:i.zIndex},v.createElement(`g`,{className:`recharts-cartesian-grid`},v.createElement(GP,{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}),v.createElement(YP,HP({},i,{horizontalPoints:S})),v.createElement(XP,HP({},i,{verticalPoints:C})),v.createElement(qP,HP({},i,y,{offset:r,horizontalPoints:S,xAxis:h,yAxis:g})),v.createElement(JP,HP({},i,y,{offset:r,verticalPoints:C,xAxis:h,yAxis:g}))))}eF.displayName=`CartesianGrid`;var tF=[`animationElapsedTime`,`isAnimating`,`isEntrance`,`visibleLength`,`strokeDasharray`,`connectNulls`];function nF(){return nF=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},nF.apply(null,arguments)}function rF(e,t){if(e==null)return{};var n,r,i=iF(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 iF(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 aF(e){try{return e&&e.getTotalLength&&e.getTotalLength()||0}catch{return 0}}function oF(e,t){return`${t}px ${e}px`}function sF(e){return e.length%2==0?e:[...e,...e]}function cF(e,t){for(var n=[],r=0;r<t;++r)n.push(...e);return n}function lF(e,t,n){var r=sF(n),i=r.reduce((e,t)=>e+t,0);if(!i)return oF(t,e);for(var a=Math.floor(e/i),o=e%i,s=[],c=0,l=0;c<r.length;l+=(u=r[c])??0,++c){var u,d=r[c];if(d!=null&&l+d>o){s=[...r.slice(0,c),o-l];break}}var f=s.length%2==0?[0,t]:[t];return[...cF(r,a),...s,...f].map(e=>`${e}px`).join(`, `)}function uF(e,t,n){return e?lF(n,t,`${e}`.split(/[,\s]+/gim).map(e=>parseFloat(e))):oF(t,n)}function dF(e){e.animationElapsedTime,e.isAnimating,e.isEntrance;var t=e.visibleLength,n=e.strokeDasharray,r=e.connectNulls,i=rF(e,tF),a=r??!1,o;if(t!=null){var s=i.pathRef;o=uF(n,aF(s?.current??null),t)}else n!=null&&(o=String(n));return v.createElement(Xp,nF({},i,{connectNulls:a,strokeDasharray:o}))}function fF(e){var t=(0,v.useRef)(0),n=(0,v.useRef)(0),r=(0,v.useRef)(!1),i=(0,v.useRef)(e);return i.current!==e&&(t.current=n.current,i.current=e),(0,v.useCallback)((e,i)=>{if(r.current)return null;var a=Math.min(Sn(t.current+e*i),i);return e>0&&i>0&&(n.current=Math.max(n.current,a),a>=i)?(r.current=!0,null):a},[])}var pF=cl({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))}}}),mF=pF.actions;mF.addErrorBar,mF.replaceErrorBar,mF.removeErrorBar;var hF=pF.reducer,gF=[`children`];function _F(e,t){if(e==null)return{};var n,r,i=vF(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 vF(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 yF=(0,v.createContext)({data:[],xAxisId:`xAxis-0`,yAxisId:`yAxis-0`,dataPointFormatter:()=>({x:0,y:0,value:0}),errorBarOffset:0});function bF(e){var t=e.children,n=_F(e,gF);return v.createElement(yF.Provider,{value:n},t)}function xF(e,t){var n=B(t=>CC(t,e)),r=B(e=>EC(e,t)),i=n?.allowDataOverflow??xC.allowDataOverflow,a=r?.allowDataOverflow??wC.allowDataOverflow;return{needClip:i||a,needClipX:i,needClipY:a}}function SF(e){var t=e.xAxisId,n=e.yAxisId,r=e.clipPathId,i=HM(),a=xF(t,n),o=a.needClipX,s=a.needClipY,c=a.needClip,l=B(e=>Xw(e,t,!1)),u=B(e=>Zw(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,y=s&&u?Math.abs(u[1]-u[0]):m*2;return v.createElement(`clipPath`,{id:`clipPath-${r}`},v.createElement(`rect`,{x:h,y:g,width:_,height:y}))}var CF=(e,t,n,r)=>TT(e,`xAxis`,t,r),wF=(e,t,n,r)=>wT(e,`xAxis`,t,r),TF=(e,t,n,r)=>TT(e,`yAxis`,n,r),EF=(e,t,n,r)=>wT(e,`yAxis`,n,r),DF=V([Id,CF,TF,wF,EF],(e,t,n,r,i)=>du(e,`xAxis`)?Eu(t,r,!1):Eu(n,i,!1)),OF=(e,t,n,r,i)=>i;function kF(e){return e.type===`line`}var AF=V([Id,CF,TF,wF,EF,V([PC,OF],(e,t)=>e.filter(kF).find(e=>e.id===t)),DF,rg],(e,t,n,r,i,a,o,s)=>{var c=s.chartData,l=s.dataStartIndex,u=s.dataEndIndex;if(!(a==null||t==null||n==null||r==null||i==null||r.length===0||i.length===0||o==null||e!==`horizontal`&&e!==`vertical`)){var d=a.dataKey,f=a.data,p=f!=null&&f.length>0?f:c?.slice(l,u+1);if(p!=null)return nI({layout:e,xAxis:t,yAxis:n,xAxisTicks:r,yAxisTicks:i,dataKey:d,bandSize:o,displayedData:p})}});function jF(e){var t=$t(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}}var MF=[`id`],NF=[`type`,`layout`,`connectNulls`,`needClip`,`shape`,`strokeDasharray`],PF=[`activeDot`,`animateNewValues`,`animationBegin`,`animationDuration`,`animationEasing`,`connectNulls`,`dot`,`hide`,`isAnimationActive`,`label`,`legendType`,`xAxisId`,`yAxisId`,`id`];function FF(){return FF=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},FF.apply(null,arguments)}function IF(e,t){if(e==null)return{};var n,r,i=LF(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 LF(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 RF(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 zF(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?RF(Object(n),!0).forEach(function(t){BF(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):RF(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function BF(e,t,n){return(t=VF(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function VF(e){var t=HF(e,`string`);return typeof t==`symbol`?t:t+``}function HF(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 UF(e){try{return e&&e.getTotalLength&&e.getTotalLength()||0}catch{return 0}}function WF(e){var t=0,n=0;for(var r of e)r.status===`matched`&&r.prev.x!=null&&r.next.x!=null&&(t+=r.next.x-r.prev.x,n++);return n>0?t/n:0}var GF={activeDot:!0,animateNewValues:!0,animationBegin:0,animationDuration:1500,animationEasing:`ease`,animationInterpolateFn:(e,t)=>{if(e==null)return[];if(t===1)return e.flatMap(e=>e.status===`removed`?[]:[e.next]);var n=WF(e),r=[];for(var i of e)if(i.status===`matched`)r.push(zF(zF({},i.next),{},{x:Mn(i.prev.x,i.next.x,t),y:Mn(i.prev.y,i.next.y,t)}));else if(i.status===`added`){if(i.next.x!=null){var a=i.next.x-n;r.push(zF(zF({},i.next),{},{x:Mn(a,i.next.x,t),y:i.next.y}))}else r.push(i.next)}else if(i.status===`removed`&&i.prev.x!=null){var o=i.prev.x+n;r.push(zF(zF({},i.prev),{},{x:Mn(i.prev.x,o,t),y:i.prev.y}))}return r},animationMatchBy:Nj,connectNulls:!1,dot:!0,fill:`#fff`,hide:!1,isAnimationActive:`auto`,label:!1,legendType:`line`,shape:dF,stroke:`#3182bd`,strokeWidth:1,xAxisId:0,yAxisId:0,zIndex:Hg.line,type:`linear`},KF=e=>{var t=e.dataKey,n=e.name,r=e.stroke,i=e.legendType;return[{inactive:e.hide,dataKey:t,type:i,color:r,value:Ou(n,t),payload:e}]},qF=v.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:Ln,settings:{stroke:r,strokeWidth:i,fill:a,dataKey:t,nameKey:void 0,name:Ou(o,t),hide:s,type:u,color:r,unit:c,formatter:l,graphicalItemId:d}};return v.createElement(Tj,{tooltipEntrySettings:f})});function JF(e){var t=e.clipPathId,n=e.points,r=e.props,i=r.dot,a=r.dataKey,o=r.needClip;r.id;var s=Qt(IF(r,MF));return v.createElement(wM,{points:n,dot:i,className:`recharts-line-dots`,dotClassName:`recharts-line-dot`,dataKey:a,baseProps:s,needClip:o,clipPathId:t})}function YF(e){var t=e.showLabels,n=e.children,r=e.points,i=(0,v.useMemo)(()=>r?.map(e=>{var t={x:e.x??0,y:e.y??0,width:0,lowerWidth:0,upperWidth:0,height:0};return zF(zF({},t),{},{value:e.value,payload:e.payload,viewBox:t,parentViewBox:void 0,fill:void 0})}),[r]);return v.createElement(GA,{value:t?i:void 0},n)}function XF(e){var t=e.clipPathId,n=e.pathRef,r=e.points,i=e.props,a=e.animationElapsedTime,o=e.isAnimating,s=e.isEntrance,c=e.visibleLength,l=i.type,u=i.layout,d=i.connectNulls,f=i.needClip,p=i.shape,m=i.strokeDasharray,h=zF(zF({},en(IF(i,NF))),{},{fill:`none`,className:`recharts-line-curve`,clipPath:f?`url(#clipPath-${t})`:void 0,points:r,type:l,layout:u,connectNulls:d,strokeDasharray:m??i.strokeDasharray,pathRef:n,animationElapsedTime:a,isAnimating:o,isEntrance:i.animateNewValues?s:!1,visibleLength:c});return v.createElement(v.Fragment,null,r?.length>1&&v.createElement(xj,{option:p,DefaultShape:GF.shape,shapeProps:h}),v.createElement(JF,{points:r,clipPathId:t,props:i}))}function ZF(e){var t=e.clipPathId,n=e.props,r=e.pathRef,i=e.previousPointsRef,a=n.points,o=n.isAnimationActive,s=n.animationBegin,c=n.animationDuration,l=n.animationEasing,u=n.animationMatchBy,d=n.animationInterpolateFn,f=n.layout,p=UF(r.current),m=Jj(n.onAnimationStart,n.onAnimationEnd),h=m.isAnimating,g=m.handleAnimationStart,_=m.handleAnimationEnd,y=!h,b=fF(a),x=(0,v.useCallback)(e=>e>0&&p>0,[p]);return v.createElement(YF,{points:a,showLabels:y},n.children,v.createElement(Yj,{animationInput:a,animationIdPrefix:`recharts-line-`,items:a,previousItemsRef:i,isAnimationActive:o,animationBegin:s,animationDuration:c,animationEasing:l,onAnimationStart:g,onAnimationEnd:_,animationInterpolateFn:d,animationMatchBy:u,shouldUpdatePreviousRef:x,layout:f},(e,i,a)=>{var o=h||i<1,s=o?b(i,p):null;return v.createElement(XF,{props:n,points:e,clipPathId:t,pathRef:r,animationElapsedTime:i,isAnimating:o,isEntrance:a,visibleLength:s})}),v.createElement(XA,{label:n.label}))}function QF(e){var t=e.clipPathId,n=e.props,r=(0,v.useRef)(null),i=(0,v.useRef)(null);return v.createElement(ZF,{props:n,clipPathId:t,previousPointsRef:r,pathRef:i})}var $F=(e,t)=>({x:e.x??void 0,y:e.y??void 0,value:e.value,errorVal:lu(e.payload,t)}),eI=class extends v.Component{render(){var e=this.props,t=e.hide,n=e.dot,r=e.points,i=e.className,a=e.xAxisId,o=e.yAxisId,s=e.top,c=e.left,l=e.width,u=e.height,d=e.id,f=e.needClip,p=e.zIndex;if(t)return null;var m=qt(`recharts-line`,i),h=d,g=jF(n),_=g.r,y=g.strokeWidth,b=uj(n),x=_*2+y,S=f?`url(#clipPath-${b?``:`dots-`}${h})`:void 0;return v.createElement(QD,{zIndex:p},v.createElement(fn,{className:m},f&&v.createElement(`defs`,null,v.createElement(SF,{clipPathId:h,xAxisId:a,yAxisId:o}),!b&&v.createElement(`clipPath`,{id:`clipPath-dots-${h}`},v.createElement(`rect`,{x:c-x/2,y:s-x/2,width:l+x,height:u+x}))),v.createElement(bF,{xAxisId:a,yAxisId:o,data:r,dataPointFormatter:$F,errorBarOffset:0},v.createElement(QF,{props:this.props,clipPathId:h}))),v.createElement(XM,{activeDot:this.props.activeDot,points:r,mainColor:this.props.stroke,itemDataKey:this.props.dataKey,clipPath:S}))}};function tI(e){var t=Hi(e,GF),n=t.activeDot,r=t.animateNewValues,i=t.animationBegin,a=t.animationDuration,o=t.animationEasing,s=t.connectNulls,c=t.dot,l=t.hide,u=t.isAnimationActive,d=t.label,f=t.legendType,p=t.xAxisId,m=t.yAxisId,h=t.id,g=IF(t,PF),_=xF(p,m).needClip,y=HM(),b=Ld(),x=Qu(),S=B(e=>AF(e,p,m,x,h));if(b!==`horizontal`&&b!==`vertical`||S==null||y==null)return null;var C=y.height,w=y.width,T=y.x,E=y.y;return v.createElement(eI,FF({},g,{id:h,connectNulls:s,dot:c,activeDot:n,animateNewValues:r,animationBegin:i,animationDuration:a,animationEasing:o,isAnimationActive:u,hide:l,label:d,legendType:f,xAxisId:p,yAxisId:m,points:S,layout:b,height:C,width:w,left:T,top:E,needClip:_}))}function nI(e){var t=e.layout,n=e.xAxis,r=e.yAxis,i=e.xAxisTicks,a=e.yAxisTicks,o=e.dataKey,s=e.bandSize;return e.displayedData.map((e,c)=>{var l=lu(e,o);if(t===`horizontal`)return{x:vu({axis:n,ticks:i,bandSize:s,entry:e,index:c}),y:(Pn(l)?null:r.scale.map(l))??null,value:l,payload:e};var u=Pn(l)?null:n.scale.map(l),d=vu({axis:r,ticks:a,bandSize:s,entry:e,index:c});return u==null||d==null?null:{x:u,y:d,value:l,payload:e}}).filter(Boolean)}function rI(e){var t=Hi(e,GF),n=Qu();return v.createElement(aM,{id:t.id,type:`line`},e=>v.createElement(v.Fragment,null,v.createElement(Ej,{legendPayload:KF(t)}),v.createElement(qF,{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}),v.createElement(fM,{type:`line`,id:e,data:t.data,xAxisId:t.xAxisId,yAxisId:t.yAxisId,zAxisId:0,dataKey:t.dataKey,hide:t.hide,isPanorama:n}),v.createElement(tI,FF({},t,{id:e}))))}var iI=v.memo(rI,hf);iI.displayName=`Line`;function aI(e,t){return e.graphicalItems.cartesianItems.find(e=>e.id===t)?.xAxisId??0}function oI(e,t){return e.graphicalItems.cartesianItems.find(e=>e.id===t)?.yAxisId??0}var sI=`Invariant failed`;function cI(e,t){if(!e)throw Error(sI)}var lI=[`option`];function uI(e,t){if(e==null)return{};var n,r,i=dI(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 dI(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 fI=bh;function pI(e){var t=e.option,n=uI(e,lI);return v.createElement(xj,{option:t,DefaultShape:fI,shapeProps:n,activeClassName:`recharts-active-bar`,inActiveClassName:`recharts-inactive-bar`})}var mI=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return(n,r)=>{if(L(e))return e;var i=L(n)||Pn(n);return i?e(n,r):(!i&&cI(!1,`minPointSize callback function received a value with type of ${typeof n}. Currently only numbers or null/undefined are supported.`),t)}},hI=(e,t,n)=>n,gI=V([PC,(e,t)=>t],(e,t)=>e.filter(e=>e.type===`bar`).find(e=>e.id===t)),_I=V([gI],e=>e?.maxBarSize),vI=(e,t,n,r)=>r,yI=V([Id,PC,aI,oI,hI],(e,t,n,r,i)=>t.filter(t=>e===`horizontal`?t.xAxisId===n:t.yAxisId===r).filter(e=>e.isPanorama===i).filter(e=>e.hide===!1).filter(e=>e.type===`bar`)),bI=(e,t,n)=>{var r=Id(e),i=aI(e,t),a=oI(e,t);if(i!=null&&a!=null)return r===`horizontal`?ow(e,`yAxis`,a,n):ow(e,`xAxis`,i,n)},xI=V([yI,Fg,(e,t)=>{var n=Id(e),r=aI(e,t),i=oI(e,t);if(r!=null&&i!=null)return n===`horizontal`?yT(e,`xAxis`,r):yT(e,`yAxis`,i)}],iN),SI=(e,t,n)=>{var r=gI(e,t);if(r==null)return 0;var i=aI(e,t),a=oI(e,t);if(i==null||a==null)return 0;var o=Id(e),s=Mg(e),c=r.maxBarSize,l=Pn(c)?s:c,u,d;return o===`horizontal`?(u=TT(e,`xAxis`,i,n),d=wT(e,`xAxis`,i,n)):(u=TT(e,`yAxis`,a,n),d=wT(e,`yAxis`,a,n)),Eu(u,d,!0)??l??0},CI=(e,t,n)=>{var r=Id(e),i=aI(e,t),a=oI(e,t);if(i!=null&&a!=null){var o,s;return r===`horizontal`?(o=TT(e,`xAxis`,i,n),s=wT(e,`xAxis`,i,n)):(o=TT(e,`yAxis`,a,n),s=wT(e,`yAxis`,a,n)),Eu(o,s)}},wI=V([Ju,Xu,(e,t,n)=>{var r=aI(e,t);if(r!=null)return TT(e,`xAxis`,r,n)},(e,t,n)=>{var r=oI(e,t);if(r!=null)return TT(e,`yAxis`,r,n)},(e,t,n)=>{var r=aI(e,t);if(r!=null)return wT(e,`xAxis`,r,n)},(e,t,n)=>{var r=oI(e,t);if(r!=null)return wT(e,`yAxis`,r,n)},V([V([xI,Mg,Ng,Pg,SI,CI,_I],dN),gI],pN),Id,ig,CI,V([bI,gI],fN),gI,vI],(e,t,n,r,i,a,o,s,c,l,u,d,f)=>{var p=c.chartData,m=c.dataStartIndex,h=c.dataEndIndex;if(!(d==null||o==null||t==null||s!==`horizontal`&&s!==`vertical`||n==null||r==null||i==null||a==null||l==null)){var g=d.data,_=g!=null&&g.length>0?g:p?.slice(m,h+1);if(_!=null)return pL({layout:s,barSettings:d,pos:o,parentViewBox:t,bandSize:l,xAxis:n,yAxis:r,xAxisTicks:i,yAxisTicks:a,stackedData:u,displayedData:_,offset:e,cells:f,dataStartIndex:m})}}),TI=[`index`];function EI(){return EI=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},EI.apply(null,arguments)}function DI(e,t){if(e==null)return{};var n,r,i=OI(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 OI(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 kI=(0,v.createContext)(void 0),AI=e=>{var t=(0,v.useContext)(kI);if(t!=null)return t.stackId;if(e!=null)return _u(e)},jI=(e,t)=>`recharts-bar-stack-clip-path-${e}-${t}`,MI=e=>{var t=(0,v.useContext)(kI);if(t!=null){var n=t.stackId;return`url(#${jI(n,e)})`}},NI=e=>{var t=e.index,n=DI(e,TI),r=MI(t);return v.createElement(fn,EI({className:`recharts-bar-stack-layer`,clipPath:r},n))},PI=[`onMouseEnter`,`onMouseLeave`,`onClick`],FI=[`value`,`background`,`tooltipPosition`],II=[`id`],LI=[`onMouseEnter`,`onClick`,`onMouseLeave`];function RI(e,t){return UI(e)||HI(e,t)||BI(e,t)||zI()}function zI(){throw TypeError(`Invalid attempt to destructure non-iterable instance.
95
95
  In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function BI(e,t){if(e){if(typeof e==`string`)return VI(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)?VI(e,t):void 0}}function VI(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 HI(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 UI(e){if(Array.isArray(e))return e}function WI(){return WI=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},WI.apply(null,arguments)}function GI(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 KI(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?GI(Object(n),!0).forEach(function(t){qI(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):GI(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function qI(e,t,n){return(t=JI(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function JI(e){var t=YI(e,`string`);return typeof t==`symbol`?t:t+``}function YI(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 XI(e,t){if(e==null)return{};var n,r,i=ZI(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 ZI(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 QI=e=>{var t=e.dataKey,n=e.name,r=e.fill,i=e.legendType;return[{inactive:e.hide,dataKey:t,type:i,color:r,value:Ou(n,t),payload:e}]},$I=v.memo(e=>{var t=e.dataKey,n=e.stroke,r=e.strokeWidth,i=e.fill,a=e.name,o=e.hide,s=e.unit,c=e.formatter,l=e.tooltipType,u=e.id,d={dataDefinedOnItem:void 0,getPosition:Ln,settings:{stroke:n,strokeWidth:r,fill:i,dataKey:t,nameKey:void 0,name:Ou(a,t),hide:o,type:l,color:i,unit:s,formatter:c,graphicalItemId:u}};return v.createElement(Tj,{tooltipEntrySettings:d})});function eL(e){var t=B(JE),n=e.data,r=e.dataKey,i=e.background,a=e.allOtherBarProps,o=a.onMouseEnter,s=a.onMouseLeave,c=a.onClick,l=XI(a,PI),u=Sj(o,r,a.id),d=Cj(s),f=wj(c,r,a.id);if(!i||n==null)return null;var p=$t(i);return v.createElement(QD,{zIndex:mN(i,Hg.barBackground)},n.map((e,n)=>{e.value;var a=e.background;e.tooltipPosition;var o=XI(e,FI);if(!a)return null;var s=u(e,e.originalDataIndex),c=d(e,e.originalDataIndex),m=f(e,e.originalDataIndex),h=KI(KI(KI(KI(KI({option:i,isActive:String(e.originalDataIndex)===t},o),{},{fill:`#eee`},a),p),Ii(l,e,n)),{},{onMouseEnter:s,onMouseLeave:c,onClick:m,dataKey:r,index:n,className:`recharts-bar-background-rectangle`});return v.createElement(pI,WI({key:`background-bar-${n}`},h))}))}function tL(e){var t=e.showLabels,n=e.children,r=e.rects?.map(e=>{var t={x:e.x,y:e.y,width:e.width,lowerWidth:e.width,upperWidth:e.width,height:e.height};return KI(KI({},t),{},{value:e.value,payload:e.payload,parentViewBox:e.parentViewBox,viewBox:t,fill:e.fill})});return v.createElement(GA,{value:t?r:void 0},n)}function nL(e){var t=e.shape,n=e.activeBar,r=e.baseProps,i=e.entry,a=e.index,o=e.dataKey,s=B(JE),c=B(XE),l=n&&String(i.originalDataIndex)===s&&(c==null||o===c),u=s!=null&&(String(i.originalDataIndex)!==s||c!=null&&o!==c),d=RI((0,v.useState)(!1),2),f=d[0],p=d[1],m=RI((0,v.useState)(!1),2),h=m[0],g=m[1];(0,v.useEffect)(()=>{var e;return l?(p(!0),e=requestAnimationFrame(()=>{g(!0)})):(g(!1),u&&p(!1)),()=>{cancelAnimationFrame(e)}},[l,u]);var _=(0,v.useCallback)(()=>{l||p(!1)},[l]),y=l&&h,b=l||f,x=l?n===!0?t:n:t,S=v.createElement(pI,WI({},r,{name:String(r.name)},i,{isActive:y,option:x,index:a,dataKey:o,animationElapsedTime:e.animationElapsedTime,isAnimating:e.isAnimating,isEntrance:e.isEntrance,onTransitionEnd:_}));return b?v.createElement(QD,{zIndex:Hg.activeBar},v.createElement(NI,{index:i.originalDataIndex},S)):S}function rL(e){var t=e.shape,n=e.baseProps,r=e.entry,i=e.index,a=e.dataKey;return v.createElement(pI,WI({},n,{name:String(n.name)},r,{isActive:!1,option:t,index:i,dataKey:a,animationElapsedTime:e.animationElapsedTime,isAnimating:e.isAnimating,isEntrance:e.isEntrance}))}function iL(e){var t=e.data,n=e.props,r=e.animationElapsedTime,i=e.isAnimating,a=e.isEntrance,o=Qt(n)??{},s=o.id,c=XI(o,II),l=n.shape,u=n.dataKey,d=n.activeBar,f=n.onMouseEnter,p=n.onClick,m=n.onMouseLeave,h=XI(n,LI),g=Sj(f,u,s),_=Cj(m),y=wj(p,u,s);return t?v.createElement(v.Fragment,null,t.map((e,t)=>v.createElement(NI,WI({index:e.originalDataIndex,key:`rectangle-${e?.x}-${e?.y}-${e?.value}-${t}`,className:`recharts-bar-rectangle`},Ii(h,e,t),{onMouseEnter:g(e,e.originalDataIndex),onMouseLeave:_(e,e.originalDataIndex),onClick:y(e,e.originalDataIndex)}),d?v.createElement(nL,{shape:l,activeBar:d,baseProps:c,entry:e,index:t,dataKey:u,animationElapsedTime:r,isAnimating:i,isEntrance:a}):v.createElement(rL,{shape:l,baseProps:c,entry:e,index:t,dataKey:u,animationElapsedTime:r,isAnimating:i,isEntrance:a})))):null}var aL=(e,t,n)=>e==null?[]:t===1?e.flatMap(e=>e.status===`removed`?[]:[e.next]):e.flatMap(e=>{if(e.status===`removed`)return n===`horizontal`?[KI(KI({},e.prev),{},{height:Mn(e.prev.height,0,t),y:Mn(e.prev.y,e.prev.y+e.prev.height,t)})]:[KI(KI({},e.prev),{},{width:Mn(e.prev.width,0,t)})];if(e.status===`matched`)return[KI(KI({},e.next),{},{x:Mn(e.prev.x,e.next.x,t),y:Mn(e.prev.y,e.next.y,t),width:Mn(e.prev.width,e.next.width,t),height:Mn(e.prev.height,e.next.height,t)})];var r=e.next;return n===`horizontal`?[KI(KI({},r),{},{height:Mn(0,r.height,t),y:Mn(r.stackedBarStart,r.y,t)})]:[KI(KI({},r),{},{width:Mn(0,r.width,t),x:Mn(r.stackedBarStart,r.x,t)})]});function oL(e){var t=e.props,n=e.previousRectanglesRef,r=t.data,i=t.isAnimationActive,a=t.animationBegin,o=t.animationDuration,s=t.animationEasing,c=t.animationInterpolateFn,l=t.layout,u=Jj(t.onAnimationStart,t.onAnimationEnd),d=u.isAnimating,f=u.handleAnimationStart,p=u.handleAnimationEnd;return v.createElement(tL,{showLabels:!d,rects:r},v.createElement(Yj,{animationInput:r,animationIdPrefix:`recharts-bar-`,items:r,previousItemsRef:n,isAnimationActive:i,animationBegin:a,animationDuration:o,animationEasing:s,onAnimationStart:f,onAnimationEnd:p,animationInterpolateFn:c,animationMatchBy:t.animationMatchBy,layout:l},(e,n,r)=>v.createElement(fn,null,v.createElement(iL,{props:t,data:e,animationElapsedTime:n,isAnimating:d||n<1,isEntrance:r}))),v.createElement(XA,{label:t.label}),t.children)}function sL(e){var t=(0,v.useRef)(null);return v.createElement(oL,{previousRectanglesRef:t,props:e})}var cL=0,lL=(e,t)=>{var n=Array.isArray(e.value)?e.value[1]:e.value;return{x:e.x,y:e.y,value:n,errorVal:lu(e,t)}},uL=class extends v.PureComponent{render(){var e=this.props,t=e.hide,n=e.data,r=e.dataKey,i=e.className,a=e.xAxisId,o=e.yAxisId,s=e.needClip,c=e.background,l=e.id;if(t||n==null)return null;var u=qt(`recharts-bar`,i),d=l;return v.createElement(fn,{className:u,id:l},s&&v.createElement(`defs`,null,v.createElement(SF,{clipPathId:d,xAxisId:a,yAxisId:o})),v.createElement(fn,{className:`recharts-bar-rectangles`,clipPath:s?`url(#clipPath-${d})`:void 0},v.createElement(eL,{data:n,dataKey:r,background:c,allOtherBarProps:this.props}),v.createElement(sL,this.props)))}},dL={activeBar:!1,animationBegin:0,animationDuration:400,animationEasing:`ease`,animationInterpolateFn:aL,animationMatchBy:Pj,background:!1,hide:!1,isAnimationActive:`auto`,label:!1,legendType:`rect`,minPointSize:cL,shape:fI,xAxisId:0,yAxisId:0,zIndex:Hg.bar};function fL(e){var t=e.xAxisId,n=e.yAxisId,r=e.hide,i=e.legendType,a=e.minPointSize,o=e.activeBar,s=e.animationBegin,c=e.animationDuration,l=e.animationEasing,u=e.isAnimationActive,d=xF(t,n).needClip,f=Ld(),p=Qu(),m=lj(e.children,QO),h=B(t=>wI(t,e.id,p,m));if(f!==`vertical`&&f!==`horizontal`)return null;var g,_=h?.[0];return g=_==null||_.height==null||_.width==null?0:f===`vertical`?_.height/2:_.width/2,v.createElement(bF,{xAxisId:t,yAxisId:n,data:h,dataPointFormatter:lL,errorBarOffset:g},v.createElement(uL,WI({},e,{layout:f,needClip:d,data:h,xAxisId:t,yAxisId:n,hide:r,legendType:i,minPointSize:a,activeBar:o,animationBegin:s,animationDuration:c,animationEasing:l,isAnimationActive:u})))}function pL(e){var t=e.layout,n=e.barSettings,r=n.dataKey,i=n.minPointSize,a=n.hasCustomShape,o=e.pos,s=e.bandSize,c=e.xAxis,l=e.yAxis,u=e.xAxisTicks,d=e.yAxisTicks,f=e.stackedData,p=e.displayedData,m=e.offset,h=e.cells,g=e.parentViewBox,_=e.dataStartIndex,v=t===`horizontal`?l:c,y=f?v.scale.domain():null,b=bu({numericAxis:v}),x=v.scale.map(b);return p.map((e,n)=>{var p,v,S,C,w,T;if(f){var E=f[n+_];if(E==null)return null;p=mu(E,y)}else p=lu(e,r),Array.isArray(p)||(p=[b,p]);var D=mI(i,cL)(p[1],n);if(t===`horizontal`){var O=l.scale.map(p[0]),k=l.scale.map(p[1]);if(O==null||k==null)return null;v=yu({axis:c,ticks:u,bandSize:s,offset:o.offset,entry:e,index:n}),S=k??O??void 0,C=o.size;var A=O-k;if(w=Tn(A)?0:A,T={x:v,y:m.top,width:C,height:m.height},Math.abs(D)>0&&Math.abs(w)<Math.abs(D)){var j=wn(w||D)*(Math.abs(D)-Math.abs(w));S-=j,w+=j}}else{var M=c.scale.map(p[0]),N=c.scale.map(p[1]);if(M==null||N==null)return null;if(v=M,S=yu({axis:l,ticks:d,bandSize:s,offset:o.offset,entry:e,index:n}),C=N-M,w=o.size,T={x:m.left,y:S,width:m.width,height:w},Math.abs(D)>0&&Math.abs(C)<Math.abs(D)){var ee=wn(C||D)*(Math.abs(D)-Math.abs(C));C+=ee}}return v==null||S==null||C==null||w==null||!a&&(C===0||w===0)?null:KI(KI({},e),{},{stackedBarStart:x,x:v,y:S,width:C,height:w,value:f?p:p[1],payload:e,background:T,tooltipPosition:{x:v+C/2,y:S+w/2},parentViewBox:g,originalDataIndex:n},h&&h[n]&&h[n].props)}).filter(Boolean)}function mL(e){var t=Hi(e,dL),n=AI(t.stackId),r=Qu();return v.createElement(aM,{id:t.id,type:`bar`},e=>v.createElement(v.Fragment,null,v.createElement(Ej,{legendPayload:QI(t)}),v.createElement($I,{dataKey:t.dataKey,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}),v.createElement(fM,{type:`bar`,id:e,data:void 0,xAxisId:t.xAxisId,yAxisId:t.yAxisId,zAxisId:0,dataKey:t.dataKey,stackId:n,hide:t.hide,barSize:t.barSize,minPointSize:t.minPointSize,maxBarSize:t.maxBarSize,isPanorama:r,hasCustomShape:t.shape!=null&&t.shape!==fI}),v.createElement(QD,{zIndex:t.zIndex},v.createElement(fL,WI({},t,{id:e})))))}var hL=v.memo(mL,hf);hL.displayName=`Bar`;var gL=[`domain`,`range`],_L=[`domain`,`range`];function vL(e,t){if(e==null)return{};var n,r,i=yL(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 yL(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 bL(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 xL(e,t){if(e===t)return!0;var n=e.domain,r=e.range,i=vL(e,gL),a=t.domain,o=t.range,s=vL(t,_L);return!bL(n,a)||!bL(r,o)?!1:hf(i,s)}var SL=[`type`],CL=[`dangerouslySetInnerHTML`,`ticks`,`scale`],wL=[`id`,`scale`];function TL(){return TL=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},TL.apply(null,arguments)}function EL(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 DL(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?EL(Object(n),!0).forEach(function(t){OL(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):EL(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function OL(e,t,n){return(t=kL(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function kL(e){var t=AL(e,`string`);return typeof t==`symbol`?t:t+``}function AL(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 jL(e,t){if(e==null)return{};var n,r,i=ML(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 ML(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 NL(e){var t=z(),n=(0,v.useRef)(null),r=Rd(),i=e.type,a=jL(e,SL),o=Kg(r,`xAxis`,i),s=(0,v.useMemo)(()=>{if(o!=null)return DL(DL({},a),{},{type:o})},[a,o]);return(0,v.useLayoutEffect)(()=>{s!=null&&(n.current===null?t(MM(s)):n.current!==s&&t(NM({prev:n.current,next:s})),n.current=s)},[s,t]),(0,v.useLayoutEffect)(()=>()=>{n.current&&=(t(PM(n.current)),null)},[t]),null}var PL=e=>{var t=e.xAxisId,n=e.className,r=e.height,i=e.label,a=(0,v.useRef)(null),o=(0,v.useRef)(null),s=B(Xu),c=Qu(),l=z(),u=`xAxis`,d=B(e=>CT(e,u,t,c)),f=B(e=>dT(e,t)),p=B(e=>gT(e,t)),m=B(e=>SC(e,t));if((0,v.useLayoutEffect)(()=>{if(!(r!==`auto`||!f||OA(i)||(0,v.isValidElement)(i)||m==null)){var e=a.current;if(e){var n=e.getCalculatedHeight();Math.round(f.height)!==Math.round(n)&&l(zM({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=jL(e,CL);m.id,m.scale;var g=jL(m,wL);return v.createElement(AP,TL({},h,g,{ref:a,labelRef:o,x:p.x,y:p.y,width:f.width,height:f.height,className:qt(`recharts-${u} ${u}`,n),viewBox:s,ticks:d,axisType:u,axisId:t}))},FL={allowDataOverflow:xC.allowDataOverflow,allowDecimals:xC.allowDecimals,allowDuplicatedCategory:xC.allowDuplicatedCategory,angle:xC.angle,axisLine:xP.axisLine,height:xC.height,hide:!1,includeHidden:xC.includeHidden,interval:xC.interval,label:!1,minTickGap:xC.minTickGap,mirror:xC.mirror,orientation:xC.orientation,padding:xC.padding,reversed:xC.reversed,scale:xC.scale,tick:xC.tick,tickCount:xC.tickCount,tickLine:xP.tickLine,tickSize:xP.tickSize,type:xC.type,niceTicks:xC.niceTicks,xAxisId:0},IL=v.memo(e=>{var t=Hi(e,FL);return v.createElement(v.Fragment,null,v.createElement(NL,{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}),v.createElement(PL,t))},xL);IL.displayName=`XAxis`;var LL=[`type`],RL=[`dangerouslySetInnerHTML`,`ticks`,`scale`],zL=[`id`,`scale`];function BL(){return BL=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},BL.apply(null,arguments)}function VL(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 HL(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?VL(Object(n),!0).forEach(function(t){UL(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):VL(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function UL(e,t,n){return(t=WL(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function WL(e){var t=GL(e,`string`);return typeof t==`symbol`?t:t+``}function GL(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 KL(e,t){if(e==null)return{};var n,r,i=qL(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 qL(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 JL(e){var t=z(),n=(0,v.useRef)(null),r=Rd(),i=e.type,a=KL(e,LL),o=Kg(r,`yAxis`,i),s=(0,v.useMemo)(()=>{if(o!=null)return HL(HL({},a),{},{type:o})},[o,a]);return(0,v.useLayoutEffect)(()=>{s!=null&&(n.current===null?t(FM(s)):n.current!==s&&t(IM({prev:n.current,next:s})),n.current=s)},[s,t]),(0,v.useLayoutEffect)(()=>()=>{n.current&&=(t(LM(n.current)),null)},[t]),null}function YL(e){var t=e.yAxisId,n=e.className,r=e.width,i=e.label,a=(0,v.useRef)(null),o=(0,v.useRef)(null),s=B(Xu),c=Qu(),l=z(),u=`yAxis`,d=B(e=>vT(e,t)),f=B(e=>_T(e,t)),p=B(e=>CT(e,u,t,c)),m=B(e=>TC(e,t));if((0,v.useLayoutEffect)(()=>{if(!(r!==`auto`||!d||OA(i)||(0,v.isValidElement)(i)||m==null)){var e=a.current;if(e){var n=e.getCalculatedWidth();Math.round(d.width)!==Math.round(n)&&l(RM({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=KL(e,RL);m.id,m.scale;var g=KL(m,zL);return v.createElement(AP,BL({},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:qt(`recharts-${u} ${u}`,n),viewBox:s,ticks:p,axisType:u,axisId:t}))}var XL={allowDataOverflow:wC.allowDataOverflow,allowDecimals:wC.allowDecimals,allowDuplicatedCategory:wC.allowDuplicatedCategory,angle:wC.angle,axisLine:xP.axisLine,hide:!1,includeHidden:wC.includeHidden,interval:wC.interval,label:!1,minTickGap:wC.minTickGap,mirror:wC.mirror,orientation:wC.orientation,padding:wC.padding,reversed:wC.reversed,scale:wC.scale,tick:wC.tick,tickCount:wC.tickCount,tickLine:xP.tickLine,tickSize:xP.tickSize,type:wC.type,niceTicks:wC.niceTicks,width:wC.width,yAxisId:0},ZL=v.memo(e=>{var t=Hi(e,XL);return v.createElement(v.Fragment,null,v.createElement(JL,{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}),v.createElement(YL,t))},xL);ZL.displayName=`YAxis`;var QL=V([(e,t)=>t,Id,c_,__,VE,UE,SD,Ju],PD);function $L(e){return`getBBox`in e.currentTarget&&typeof e.currentTarget.getBBox==`function`}function eR(e){var t=e.currentTarget.getBoundingClientRect(),n,r;if($L(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 tR=Bc(`mouseClick`),nR=Jl();nR.startListening({actionCreator:tR,effect:(e,t)=>{var n=e.payload,r=QL(t.getState(),eR(n));r?.activeIndex!=null&&t.dispatch(KT({activeIndex:r.activeIndex,activeDataKey:void 0,activeCoordinate:r.activeCoordinate}))}});var rR=Bc(`mouseMove`),iR=Jl(),aR=null,oR=null,sR=null;iR.startListening({actionCreator:rR,effect:(e,t)=>{var n=e.payload,r=t.getState().eventSettings,i=r.throttleDelay,a=r.throttledEvents,o=a===`all`||a?.includes(`mousemove`);aR!==null&&(cancelAnimationFrame(aR),aR=null),oR!==null&&(typeof i!=`number`||!o)&&(clearTimeout(oR),oR=null),sR=eR(n);var s=()=>{var e=t.getState(),n=AT(e,e.tooltip.settings.shared);if(!sR){aR=null,oR=null;return}if(n===`axis`){var r=QL(e,sR);r?.activeIndex==null?t.dispatch(UT()):t.dispatch(GT({activeIndex:r.activeIndex,activeDataKey:void 0,activeCoordinate:r.activeCoordinate}))}aR=null,oR=null};if(!o){s();return}i===`raf`?aR=requestAnimationFrame(s):typeof i==`number`&&oR===null&&(oR=setTimeout(s,i))}});function cR(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 lR={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},uR=cl({name:`rootProps`,initialState:lR,reducers:{updateOptions:(e,t)=>{e.accessibilityLayer=t.payload.accessibilityLayer,e.barCategoryGap=t.payload.barCategoryGap,e.barGap=t.payload.barGap??lR.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}}}),dR=uR.reducer,fR=uR.actions.updateOptions,pR=cl({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)}});pR.actions.updatePolarOptions;var mR=pR.reducer,hR=Bc(`keyDown`),gR=Bc(`focus`),_R=Bc(`blur`),vR=Jl(),yR=null,bR=null,xR=null;vR.startListening({actionCreator:hR,effect:(e,t)=>{xR=e.payload,yR!==null&&(cancelAnimationFrame(yR),yR=null);var n=t.getState().eventSettings,r=n.throttleDelay,i=n.throttledEvents,a=i===`all`||i.includes(`keydown`);bR!==null&&(typeof r!=`number`||!a)&&(clearTimeout(bR),bR=null);var o=()=>{try{var e=t.getState();if(e.rootProps.accessibilityLayer===!1)return;var n=e.tooltip.keyboardInteraction,r=xR;if(r!==`ArrowRight`&&r!==`ArrowLeft`&&r!==`Enter`)return;var i=sE(n,kE(e),rw(e),RE(e)),a=i==null?-1:Number(i),o=!Number.isFinite(a)||a<0,s=UE(e),c=kE(e),l=AT(e,e.tooltip.settings.shared);if(r===`Enter`){if(o)return;var u=DD(e,l,`hover`,String(n.index));t.dispatch(JT({active:!n.active,activeIndex:n.index,activeCoordinate:u}));return}var d=ET(e)===`left-to-right`?1:-1,f=r===`ArrowRight`?1:-1,p;if(o){var m=rw(e),h=RE(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(sE(_(v),c,m,h)!=null){p=v;break}}else for(var y=c.length-1;y>=0;y--)if(sE(_(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=DD(e,l,`hover`,String(p));t.dispatch(JT({active:!0,activeIndex:p.toString(),activeCoordinate:x}))}finally{yR=null,bR=null}};if(!a){o();return}r===`raf`?yR=requestAnimationFrame(o):typeof r==`number`&&bR===null&&(o(),xR=null,bR=setTimeout(()=>{xR?o():(bR=null,yR=null)},r))}}),vR.startListening({actionCreator:gR,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=DD(n,AT(n,n.tooltip.settings.shared),`hover`,String(i));t.dispatch(JT({active:!0,activeIndex:i,activeCoordinate:a}))}}}}),vR.startListening({actionCreator:_R,effect:(e,t)=>{var n=t.getState();if(n.rootProps.accessibilityLayer!==!1){var r=n.tooltip.keyboardInteraction;r.active&&t.dispatch(JT({active:!1,activeIndex:r.index,activeCoordinate:r.coordinate}))}}});function SR(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 CR=Bc(`externalEvent`),wR=Jl(),TR=new Map,ER=new Map,DR=new Map;wR.startListening({actionCreator:CR,effect:(e,t)=>{var n=e.payload,r=n.handler,i=n.reactEvent;if(r!=null){var a=i.type,o=SR(i);DR.set(a,{handler:r,reactEvent:o});var s=TR.get(a);s!==void 0&&(cancelAnimationFrame(s),TR.delete(a));var c=t.getState().eventSettings,l=c.throttleDelay,u=c.throttledEvents,d=u===`all`||u?.includes(a),f=ER.get(a);f!==void 0&&(typeof l!=`number`||!d)&&(clearTimeout(f),ER.delete(a));var p=()=>{var e=DR.get(a);try{if(!e)return;var n=e.handler,r=e.reactEvent,i=t.getState(),o={activeCoordinate:$E(i),activeDataKey:XE(i),activeIndex:JE(i),activeLabel:YE(i),activeTooltipIndex:JE(i),isTooltipActive:eD(i)};n&&n(o,r)}finally{TR.delete(a),ER.delete(a),DR.delete(a)}};if(!d){p();return}if(l===`raf`){var m=requestAnimationFrame(p);TR.set(a,m)}else if(typeof l==`number`){if(!ER.has(a)){p();var h=setTimeout(p,l);ER.set(a,h)}}else p()}}});var OR=V([V([dE],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)}}}),kR=Bc(`touchMove`),AR=Jl(),jR=null,MR=null,NR=null,PR=null;AR.startListening({actionCreator:kR,effect:(e,t)=>{var n=e.payload;if(n.touches!=null&&n.touches.length!==0){PR=SR(n);var r=t.getState().eventSettings,i=r.throttleDelay,a=r.throttledEvents,o=a===`all`||a.includes(`touchmove`);jR!==null&&(cancelAnimationFrame(jR),jR=null),MR!==null&&(typeof i!=`number`||!o)&&(clearTimeout(MR),MR=null),NR=Array.from(n.touches).map(e=>eR({clientX:e.clientX,clientY:e.clientY,currentTarget:n.currentTarget}));var s=()=>{if(PR!=null){var e=t.getState(),n=AT(e,e.tooltip.settings.shared);if(n===`axis`){var r=NR?.[0];if(r==null){jR=null,MR=null;return}var i=QL(e,r);i?.activeIndex!=null&&t.dispatch(GT({activeIndex:i.activeIndex,activeDataKey:void 0,activeCoordinate:i.activeCoordinate}))}else if(n===`item`){var a=PR.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(Lu),c=o.getAttribute(`data-recharts-item-id`)??void 0,l=TE(e).find(e=>e.id===c);if(s==null||l==null||c==null)return;var u=l.dataKey,d=OR(e,s,c);t.dispatch(VT({activeDataKey:u,activeIndex:s,activeCoordinate:d,activeGraphicalItemId:c}))}jR=null,MR=null}};if(!o){s();return}i===`raf`?jR=requestAnimationFrame(s):typeof i==`number`&&MR===null&&(s(),PR=null,MR=setTimeout(()=>{PR?s():(MR=null,jR=null)},i))}}});var FR={throttleDelay:`raf`,throttledEvents:[`mousemove`,`touchmove`,`pointermove`,`scroll`,`wheel`]},IR=cl({name:`eventSettings`,initialState:FR,reducers:{setEventSettings:(e,t)=>{t.payload.throttleDelay!=null&&(e.throttleDelay=t.payload.throttleDelay),t.payload.throttledEvents!=null&&(e.throttledEvents=W(t.payload.throttledEvents))}}}),LR=IR.actions.setEventSettings,RR=IR.reducer,zR=ds({brush:vN,cartesianAxis:BM,chartData:CO,errorBars:hF,eventSettings:RR,graphicalItems:dM,layout:nu,legend:Yd,options:gO,polarAxis:tj,polarOptions:mR,referenceElements:CN,renderedTicks:aP,rootProps:dR,tooltip:YT,zIndex:ZD}),BR=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:`Chart`;return Qc({reducer:zR,preloadedState:e,middleware:e=>e({serializableCheck:!1,immutableCheck:![`commonjs`,`es6`,`production`].includes(`es6`)}).concat([nR.middleware,iR.middleware,vR.middleware,wR.middleware,AR.middleware]),enhancers:e=>{var t=e;return typeof e==`function`&&(t=e()),t.concat(Xc({type:`raf`}))},devTools:pp.devToolsEnabled&&{serialize:{replacer:cR},name:`recharts-${t}`}})};function VR(e){var t=e.preloadedState,n=e.children,r=e.reduxStoreName,i=Qu(),a=(0,v.useRef)(null);if(i)return n;a.current??=BR(t,r);var o=go;return v.createElement(ff,{context:o,store:a.current},n)}function HR(e){var t=e.layout,n=e.margin,r=z(),i=Qu();return(0,v.useEffect)(()=>{i||(r($l(t)),r(Ql(n)))},[r,i,t,n]),null}var UR=(0,v.memo)(HR,hf);function WR(e){var t=z();return(0,v.useEffect)(()=>{t(fR(e))},[t,e]),null}var GR=(0,v.memo)(e=>{var t=z();return(0,v.useEffect)(()=>{t(LR(e))},[t,e]),null},hf);function KR(e){var t=e.zIndex,n=e.isPanorama,r=(0,v.useRef)(null),i=z();return(0,v.useLayoutEffect)(()=>(r.current&&i(YD({zIndex:t,element:r.current,isPanorama:n})),()=>{i(XD({zIndex:t,isPanorama:n}))}),[i,t,n]),v.createElement(`g`,{tabIndex:-1,ref:r,className:`recharts-zIndex-layer_${t}`})}function qR(e){var t=e.children,n=e.isPanorama,r=B(ID);if(!r||r.length===0)return t;var i=r.filter(e=>e<0),a=r.filter(e=>e>0);return v.createElement(v.Fragment,null,i.map(e=>v.createElement(KR,{key:e,zIndex:e,isPanorama:n})),t,a.map(e=>v.createElement(KR,{key:e,zIndex:e,isPanorama:n})))}var JR=[`children`];function YR(e,t){if(e==null)return{};var n,r,i=XR(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 XR(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 ZR(){return ZR=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},ZR.apply(null,arguments)}var QR={width:`100%`,height:`100%`,display:`block`},$R=(0,v.forwardRef)((e,t)=>{var n=Nd(),r=Pd(),i=Fp();if(!K(n)||!K(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),v.createElement(sn,ZR({},o,{title:s,desc:c,role:u,tabIndex:l,width:n,height:r,style:QR,ref:t}),a)}),ez=e=>{var t=e.children,n=B(J);if(!n)return null;var r=n.width,i=n.height,a=n.y,o=n.x;return v.createElement(sn,{width:r,height:i,x:o,y:a},t)},tz=(0,v.forwardRef)((e,t)=>{var n=e.children,r=YR(e,JR);return Qu()?v.createElement(ez,null,v.createElement(qR,{isPanorama:!0},n)):v.createElement($R,ZR({ref:t},r),v.createElement(qR,{isPanorama:!1},n))});function nz(e,t){return sz(e)||oz(e,t)||iz(e,t)||rz()}function rz(){throw TypeError(`Invalid attempt to destructure non-iterable instance.
96
96
  In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function iz(e,t){if(e){if(typeof e==`string`)return az(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)?az(e,t):void 0}}function az(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 oz(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 sz(e){if(Array.isArray(e))return e}function cz(){var e=z(),t=nz((0,v.useState)(null),2),n=t[0],r=t[1],i=B(Nu);return(0,v.useEffect)(()=>{if(n!=null){var t=n.getBoundingClientRect().width/n.offsetWidth;G(t)&&t!==i&&e(tu(t))}},[n,e,i]),r}function lz(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 uz(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?lz(Object(n),!0).forEach(function(t){dz(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):lz(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function dz(e,t,n){return(t=fz(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function fz(e){var t=pz(e,`string`);return typeof t==`symbol`?t:t+``}function pz(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 mz(){return mz=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},mz.apply(null,arguments)}function hz(e,t){return bz(e)||yz(e,t)||_z(e,t)||gz()}function gz(){throw TypeError(`Invalid attempt to destructure non-iterable instance.
97
- In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _z(e,t){if(e){if(typeof e==`string`)return vz(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)?vz(e,t):void 0}}function vz(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 yz(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 bz(e){if(Array.isArray(e))return e}var xz=()=>(PO(),null);function Sz(e){if(typeof e==`number`)return e;if(typeof e==`string`){var t=parseFloat(e);if(!Number.isNaN(t))return t}return 0}var Cz=(0,v.forwardRef)((e,t)=>{var n=(0,v.useRef)(null),r=hz((0,v.useState)({containerWidth:Sz(e.style?.width),containerHeight:Sz(e.style?.height)}),2),i=r[0],a=r[1],o=(0,v.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,v.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,v.useEffect)(()=>()=>{n.current?.disconnect()},[o]),v.createElement(v.Fragment,null,v.createElement(Vd,{width:i.containerWidth,height:i.containerHeight}),v.createElement(`div`,mz({ref:s},e)))}),wz=(0,v.forwardRef)((e,t)=>{var n=e.width,r=e.height,i=hz((0,v.useState)({containerWidth:Sz(n),containerHeight:Sz(r)}),2),a=i[0],o=i[1],s=(0,v.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,v.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 v.createElement(v.Fragment,null,v.createElement(Vd,{width:a.containerWidth,height:a.containerHeight}),v.createElement(`div`,mz({ref:c},e)))}),Tz=(0,v.forwardRef)((e,t)=>{var n=e.width,r=e.height;return v.createElement(v.Fragment,null,v.createElement(Vd,{width:n,height:r}),v.createElement(`div`,mz({ref:t},e)))}),Ez=(0,v.forwardRef)((e,t)=>{var n=e.width,r=e.height;return typeof n==`string`||typeof r==`string`?v.createElement(wz,mz({},e,{ref:t})):typeof n==`number`&&typeof r==`number`?v.createElement(Tz,mz({},e,{width:n,height:r,ref:t})):v.createElement(v.Fragment,null,v.createElement(Vd,{width:n,height:r}),v.createElement(`div`,mz({ref:t},e)))});function Dz(e){return e?Cz:Ez}var Oz=(0,v.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,y=e.responsive,b=e.dispatchTouchEvents,x=b===void 0||b,S=(0,v.useRef)(null),C=z(),w=hz((0,v.useState)(null),2),T=w[0],E=w[1],D=hz((0,v.useState)(null),2),O=D[0],k=D[1],A=cz(),j=Dd(),M=j?.width>0?j.width:_,N=j?.height>0?j.height:i,ee=(0,v.useCallback)(e=>{A(e),typeof t==`function`&&t(e),E(e),k(e),e!=null&&(S.current=e)},[A,t,E,k]),te=(0,v.useCallback)(e=>{C(tR(e)),C(CR({handler:a,reactEvent:e}))},[C,a]),ne=(0,v.useCallback)(e=>{C(rR(e)),C(CR({handler:l,reactEvent:e}))},[C,l]),re=(0,v.useCallback)(e=>{C(UT()),C(CR({handler:u,reactEvent:e}))},[C,u]),ie=(0,v.useCallback)(e=>{C(rR(e)),C(CR({handler:d,reactEvent:e}))},[C,d]),ae=(0,v.useCallback)(()=>{C(gR())},[C]),oe=(0,v.useCallback)(()=>{C(_R())},[C]),se=(0,v.useCallback)(e=>{C(hR(e.key))},[C]),ce=(0,v.useCallback)(e=>{C(CR({handler:o,reactEvent:e}))},[C,o]),le=(0,v.useCallback)(e=>{C(CR({handler:s,reactEvent:e}))},[C,s]),ue=(0,v.useCallback)(e=>{C(CR({handler:c,reactEvent:e}))},[C,c]),de=(0,v.useCallback)(e=>{C(CR({handler:f,reactEvent:e}))},[C,f]),fe=(0,v.useCallback)(e=>{C(CR({handler:h,reactEvent:e}))},[C,h]),pe=(0,v.useCallback)(e=>{x&&C(kR(e)),C(CR({handler:m,reactEvent:e}))},[C,x,m]),me=(0,v.useCallback)(e=>{C(CR({handler:p,reactEvent:e}))},[C,p]),he=Dz(y);return v.createElement(cO.Provider,{value:T},v.createElement(qn.Provider,{value:O},v.createElement(he,{width:M??g?.width,height:N??g?.height,className:qt(`recharts-wrapper`,r),style:uz({position:`relative`,cursor:`default`,width:M,height:N},g),onClick:te,onContextMenu:ce,onDoubleClick:le,onFocus:ae,onBlur:oe,onKeyDown:se,onMouseDown:ue,onMouseEnter:ne,onMouseLeave:re,onMouseMove:ie,onMouseUp:de,onTouchEnd:me,onTouchMove:pe,onTouchStart:fe,ref:ee},v.createElement(xz,null),n)))}),kz=[`width`,`height`,`responsive`,`children`,`className`,`style`,`compact`,`title`,`desc`];function Az(e,t){if(e==null)return{};var n,r,i=jz(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 jz(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 Mz=(0,v.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=Qt(Az(e,kz));return c?v.createElement(v.Fragment,null,v.createElement(Vd,{width:n,height:r}),v.createElement(tz,{otherAttributes:d,title:l,desc:u},a)):v.createElement(Oz,{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},v.createElement(tz,{otherAttributes:d,title:l,desc:u,ref:t},v.createElement(jN,null,a)))});function Nz(){return Nz=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},Nz.apply(null,arguments)}function Pz(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 Fz(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?Pz(Object(n),!0).forEach(function(t){Iz(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Pz(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Iz(e,t,n){return(t=Lz(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Lz(e){var t=Rz(e,`string`);return typeof t==`symbol`?t:t+``}function Rz(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 zz=Fz({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`},FR),Bz=(0,v.forwardRef)(function(e,t){var n=Hi(e.categoricalChartProps,zz),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 v.createElement(VR,{preloadedState:{options:c},reduxStoreName:s.id??r},v.createElement(hN,{chartData:s.data}),v.createElement(UR,{layout:n.layout,margin:n.margin}),v.createElement(GR,{throttleDelay:n.throttleDelay,throttledEvents:n.throttledEvents}),v.createElement(WR,{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}),v.createElement(Mz,Nz({},n,{ref:t})))}),Vz=[`axis`],Hz=(0,v.forwardRef)((e,t)=>v.createElement(Bz,{chartName:`LineChart`,defaultTooltipEventType:`axis`,validateTooltipEventTypes:Vz,tooltipPayloadSearcher:mO,categoricalChartProps:e,ref:t})),Uz=[`axis`,`item`],Wz=(0,v.forwardRef)((e,t)=>v.createElement(Bz,{chartName:`BarChart`,defaultTooltipEventType:`axis`,validateTooltipEventTypes:Uz,tooltipPayloadSearcher:mO,categoricalChartProps:e,ref:t})),Gz={Passed:`var(--color-success-500)`,Failed:`var(--color-danger-500)`,Interrupted:`var(--color-danger-600)`,Skipped:`var(--color-text-muted)`,"Timed Out":`var(--color-warning-500)`},Kz=e=>(0,F.jsx)(`span`,{style:{color:`var(--color-text-ink)`,fontSize:`12px`,fontWeight:500},children:e}),qz=e=>{let{active:t,payload:n,label:r}=e;return!t||!n||n.length===0?null:(0,F.jsxs)(`div`,{className:`p-2.5 text-text-ink dark:text-text-on-primary`,children:[(0,F.jsx)(`div`,{className:`font-bold text-xs mb-1.5 border-b border-border-default pb-1`,children:r}),(0,F.jsx)(`div`,{className:`space-y-1 text-xs`,children:n.map(e=>{let t=Number(e.value);if(t<=0)return null;let n=Gz[String(e.name)]||e.color;return(0,F.jsxs)(`div`,{className:`flex items-center justify-between gap-4 font-medium`,children:[(0,F.jsxs)(`span`,{className:`flex items-center gap-1.5 text-text-ink dark:text-text-on-primary`,children:[(0,F.jsx)(`span`,{className:`h-2 w-2 rounded-full`,style:{backgroundColor:n}}),e.name,`:`]}),(0,F.jsx)(`span`,{className:`font-bold tabular-nums text-text-ink dark:text-text-on-primary`,children:t})]},String(e.name))})})]})};function Jz({suites:e,title:t=`Projects Summary`}){let[n,r]=(0,v.useState)(!1),i=ie(re(e)),a=i.reduce((e,t)=>Math.max(e,t.name.length),0),o=Math.max(80,Math.min(240,a*8+24)),s=i.map(e=>({name:e.name,Passed:e.passed,Failed:e.failed,Interrupted:e.interrupted,Skipped:e.skipped,"Timed Out":e.timedOut})),c=Math.max(300,i.length*40+80);return(0,F.jsxs)(`div`,{className:`rounded-md bg-canvas border border-border-default px-6 py-6 shadow-sm flex flex-col justify-between`,children:[(0,F.jsxs)(`div`,{className:`mb-3 flex items-start justify-between gap-2`,children:[(0,F.jsxs)(`div`,{children:[(0,F.jsx)(`h3`,{className:`text-lg font-semibold text-text-ink dark:text-text-on-primary`,children:t}),(0,F.jsx)(`p`,{className:`text-xs text-text-body-mid dark:text-text-muted mt-0.5`,children:`Stacked status breakdown across project profiles`})]}),(0,F.jsx)(Oe,{onClick:()=>r(!0)})]}),(0,F.jsx)(kd,{width:`100%`,height:c,children:(0,F.jsxs)(Wz,{data:s,layout:`vertical`,margin:{top:5,right:15,left:10,bottom:5},barSize:18,children:[(0,F.jsx)(eF,{strokeDasharray:`3 3`,stroke:`var(--color-border-chart)`,horizontal:!1}),(0,F.jsx)(IL,{type:`number`,fontSize:12,tick:{fill:`var(--color-text-muted)`},allowDecimals:!1}),(0,F.jsx)(ZL,{type:`category`,dataKey:`name`,fontSize:12,width:o,tick:{fill:`var(--color-text-muted)`},tickFormatter:e=>e.length===a&&a>0?`\u00A0${e}`:e}),(0,F.jsx)(ZO,{content:qz,wrapperStyle:{backgroundColor:`var(--color-surface-100)`,border:`1px solid var(--color-border-default)`,borderRadius:`0.5rem`,boxShadow:`0 4px 6px -1px rgba(0, 0, 0, 0.1)`,outline:`none`}}),(0,F.jsx)(Wf,{formatter:Kz,iconType:`circle`,wrapperStyle:{paddingTop:`8px`,textAlign:`center`,width:`100%`,fontSize:`12px`}}),(0,F.jsx)(hL,{dataKey:`Passed`,stackId:`status`,fill:`var(--color-success-500)`,radius:[0,0,0,0]}),(0,F.jsx)(hL,{dataKey:`Failed`,stackId:`status`,fill:`var(--color-danger-500)`,radius:[0,0,0,0]}),(0,F.jsx)(hL,{dataKey:`Interrupted`,stackId:`status`,fill:`var(--color-danger-600)`,radius:[0,0,0,0]}),(0,F.jsx)(hL,{dataKey:`Skipped`,stackId:`status`,fill:`var(--color-text-muted)`,radius:[0,0,0,0]}),(0,F.jsx)(hL,{dataKey:`Timed Out`,stackId:`status`,fill:`var(--color-warning-500)`,radius:[0,4,4,0]})]})}),(0,F.jsxs)(ot,{isOpen:n,onClose:()=>r(!1),title:`About Status Breakdown by Project`,subtitle:`Stacked status breakdown across project profiles`,children:[(0,F.jsx)(`p`,{children:`This horizontal stacked bar chart displays the distribution of test execution outcomes for each configured Playwright project profile (e.g., Chromium, Firefox, WebKit, Mobile Chrome).`}),(0,F.jsxs)(`div`,{children:[(0,F.jsx)(`h5`,{className:`font-semibold text-text-ink dark:text-text-on-primary mb-1`,children:`Status Categories:`}),(0,F.jsxs)(`ul`,{className:`list-disc pl-4 space-y-1`,children:[(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{className:`text-success-600 dark:text-success-500`,children:`Passed:`}),` Tests that executed and satisfied all assertion checks within timeout limits.`]}),(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{className:`text-danger-600 dark:text-danger-500`,children:`Failed:`}),` Hard assertion failures or unhandled runtime exceptions.`]}),(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{className:`text-warning-600 dark:text-warning-500`,children:`Timed Out:`}),` Tests exceeding the configured Playwright project timeout limit.`]}),(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{className:`text-danger-700 dark:text-danger-400`,children:`Interrupted:`}),` Tests cancelled due to worker signals or parent run aborts.`]}),(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{className:`text-text-muted`,children:`Skipped:`}),` Tests conditionally bypassed (`,(0,F.jsx)(`code`,{className:`font-mono bg-surface-100 px-1 py-0.5 rounded text-[10px]`,children:`test.skip()`}),`).`]})]})]}),(0,F.jsxs)(`div`,{children:[(0,F.jsx)(`h5`,{className:`font-semibold text-text-ink dark:text-text-on-primary mb-1`,children:`Diagnostic Insights:`}),(0,F.jsx)(`p`,{children:`Comparing status stacks across projects allows you to immediately pinpoint browser-specific regressions. If failures concentrate in WebKit while Chromium passes, focus debugging on Safari rendering standards or engine differences.`})]})]})]})}function Yz({kpis:e}){let t=[{label:`Total Projects`,value:`${e.totalProjects}`,subtext:e.totalProjects===1?`1 Playwright Project`:`${e.totalProjects} Playwright Projects`,description:`Total number of configured Playwright project profiles in this test run`,badgeClass:`bg-success-500/10 text-success-600 dark:bg-success-500/20 dark:text-success-500`},{label:`Most Stable Project`,value:e.mostStableProject?e.mostStableProject.name:`N/A`,subtext:e.mostStableProject?`${e.mostStableProject.passRate}% Pass Rate (${e.mostStableProject.total} tests)`:`No tests`,description:`Project target with the highest pass rate and lowest flakiness rate`,badgeClass:`bg-success-500/10 text-success-600 dark:bg-success-500/20 dark:text-success-500`},{label:`Slowest Project`,value:e.slowestProject?e.slowestProject.name:`N/A`,subtext:e.slowestProject?`${j(e.slowestProject.totalDuration)} total (${j(e.slowestProject.avgDuration)} avg)`:`No tests`,description:`Project target consuming the highest cumulative execution duration`,badgeClass:`bg-warning-500/10 text-warning-600 dark:bg-warning-500/20 dark:text-warning-500`},{label:`Parity Variance`,value:`${e.passRateParityDelta}%`,subtext:e.passRateParityDelta===0?`Perfect cross-project consistency`:`${e.passRateParityDelta}% pass rate gap across targets`,description:`Difference between the highest and lowest project pass rates`,badgeClass:e.passRateParityDelta>15?`bg-danger-500/10 text-danger-600 dark:bg-danger-500/20 dark:text-danger-500`:`bg-success-500/10 text-success-600 dark:bg-success-500/20 dark:text-success-500`},{label:`Flaky Tests`,value:`${e.totalFlakyCount}`,subtext:e.totalFlakyCount===0?`0 Retries detected`:`${e.totalFlakyCount} tests required retries`,description:`Count of test cases across all projects that required retries to pass`,badgeClass:e.totalFlakyCount>0?`bg-warning-500/10 text-warning-600 dark:bg-warning-500/20 dark:text-warning-500`:`bg-success-500/10 text-success-600 dark:bg-success-500/20 dark:text-success-500`}];return(0,F.jsx)(`div`,{className:`grid grid-cols-2 gap-4 lg:grid-cols-5`,children:t.map((e,n)=>(0,F.jsx)(Ae,{label:e.label,value:e.value,subtext:e.subtext,description:e.description,badgeClass:e.badgeClass,isFirst:n===0,isLast:n===t.length-1},e.label))})}var Xz={Executed:`var(--color-success-500)`,Skipped:`var(--color-text-muted)`},Zz=e=>(0,F.jsx)(`span`,{style:{color:Xz[e]||`var(--color-text-muted)`,fontSize:`12px`},children:e}),Qz=e=>{let{active:t,payload:n,label:r}=e;if(!t||!n||n.length===0)return null;let i=n[0]?.payload;return i?(0,F.jsxs)(`div`,{className:`p-3 text-text-ink dark:text-text-on-primary`,children:[(0,F.jsx)(`div`,{className:`font-bold text-xs mb-1 border-b border-border-default pb-1`,children:r}),(0,F.jsxs)(`div`,{className:`space-y-1 text-xs`,children:[(0,F.jsxs)(`div`,{className:`flex justify-between gap-4`,children:[(0,F.jsx)(`span`,{className:`text-text-body-mid dark:text-text-muted`,children:`Total Tests:`}),(0,F.jsx)(`span`,{className:`font-bold tabular-nums`,children:i.total})]}),(0,F.jsxs)(`div`,{className:`flex justify-between gap-4`,children:[(0,F.jsxs)(`span`,{className:`flex items-center gap-1.5 text-success-600 dark:text-success-500`,children:[(0,F.jsx)(`span`,{className:`h-2 w-2 rounded-full bg-success-500`}),`Executed Tests:`]}),(0,F.jsx)(`span`,{className:`font-bold tabular-nums`,children:i.Executed})]}),(0,F.jsxs)(`div`,{className:`flex justify-between gap-4`,children:[(0,F.jsxs)(`span`,{className:`flex items-center gap-1.5 text-slate-500 dark:text-slate-400`,children:[(0,F.jsx)(`span`,{className:`h-2 w-2 rounded-full bg-slate-400`}),`Skipped Tests:`]}),(0,F.jsx)(`span`,{className:`font-bold tabular-nums`,children:i.Skipped})]}),(0,F.jsxs)(`div`,{className:`flex justify-between gap-4 pt-1 border-t border-border-default font-semibold`,children:[(0,F.jsx)(`span`,{className:`text-emerald-600 dark:text-emerald-400`,children:`Coverage Density:`}),(0,F.jsxs)(`span`,{className:`font-bold tabular-nums text-emerald-600 dark:text-emerald-400`,children:[i[`Coverage Density (%)`],`%`]})]})]})]}):null};function $z({projectStats:e,title:t=`Test Volume & Coverage Density per Project`}){let[n,r]=(0,v.useState)(!1),i=e.reduce((e,t)=>Math.max(e,t.name.length),0),a=Math.max(80,Math.min(240,i*8+24)),o=e.map(e=>{let t=e.total-e.skipped,n=e.total>0?Math.round(t/e.total*100):0;return{name:e.name,Executed:t,Skipped:e.skipped,"Coverage Density (%)":n,total:e.total}}),s=Math.max(300,e.length*40+80);return(0,F.jsxs)(`div`,{className:`rounded-md bg-canvas border border-border-default px-6 py-6 shadow-sm flex flex-col justify-between`,children:[(0,F.jsxs)(`div`,{className:`mb-3 flex items-start justify-between gap-2`,children:[(0,F.jsxs)(`div`,{children:[(0,F.jsx)(`h3`,{className:`text-lg font-semibold text-text-ink dark:text-text-on-primary`,children:t}),(0,F.jsx)(`p`,{className:`text-xs text-text-body-mid dark:text-text-muted mt-0.5`,children:`Executed vs skipped test load and active test coverage density across projects`})]}),(0,F.jsx)(Oe,{onClick:()=>r(!0)})]}),(0,F.jsx)(kd,{width:`100%`,height:s,children:(0,F.jsxs)(Wz,{data:o,layout:`vertical`,margin:{top:5,right:20,left:10,bottom:5},barSize:18,barGap:4,children:[(0,F.jsx)(eF,{strokeDasharray:`3 3`,stroke:`var(--color-border-chart)`,horizontal:!1}),(0,F.jsx)(IL,{type:`number`,fontSize:12,tick:{fill:`var(--color-text-muted)`}}),(0,F.jsx)(ZL,{type:`category`,dataKey:`name`,width:a,fontSize:12,tick:{fill:`var(--color-text-ink)`}}),(0,F.jsx)(ZO,{content:Qz,wrapperStyle:{backgroundColor:`var(--color-surface-100)`,border:`1px solid var(--color-border-default)`,borderRadius:`0.5rem`,boxShadow:`0 4px 6px -1px rgba(0, 0, 0, 0.1)`,outline:`none`}}),(0,F.jsx)(Wf,{formatter:Zz,iconType:`circle`,wrapperStyle:{paddingTop:`8px`,textAlign:`center`,width:`100%`,fontSize:`12px`}}),(0,F.jsx)(hL,{dataKey:`Executed`,stackId:`a`,fill:`var(--color-success-500)`,radius:[0,0,0,0]}),(0,F.jsx)(hL,{dataKey:`Skipped`,stackId:`a`,fill:`var(--color-border-chart)`,radius:[0,4,4,0]})]})}),(0,F.jsxs)(ot,{isOpen:n,onClose:()=>r(!1),title:`About Test Volume & Coverage Density`,subtitle:`Understanding test suite distribution and active execution coverage`,children:[(0,F.jsx)(`p`,{children:`This chart benchmarks the total test case load and execution density across configured target project profiles (browsers and platforms).`}),(0,F.jsxs)(`div`,{className:`rounded-md border border-border-default bg-surface-50 p-3 space-y-2`,children:[(0,F.jsx)(`div`,{className:`font-bold text-text-ink dark:text-text-on-primary text-xs uppercase tracking-wider`,children:`Key Metrics:`}),(0,F.jsxs)(`ul`,{className:`list-disc list-inside space-y-1.5`,children:[(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{className:`text-sky-600 dark:text-sky-400`,children:`Executed Tests:`}),` Active test cases that ran to completion (Passed, Failed, Timed Out, or Interrupted).`]}),(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{className:`text-slate-600 dark:text-slate-400`,children:`Skipped Tests:`}),` Test cases bypassed via `,(0,F.jsx)(`code`,{className:`bg-surface-200 px-1 rounded`,children:`test.skip()`}),` or conditional tags.`]}),(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{className:`text-emerald-600 dark:text-emerald-400`,children:`Coverage Density (%):`}),` `,`The ratio of executed tests over total tests (`,(0,F.jsx)(`code`,{className:`bg-surface-200 px-1 rounded`,children:`Executed / Total * 100`}),`).`]})]})]}),(0,F.jsxs)(`div`,{className:`rounded-md border border-border-default bg-surface-50 p-3 space-y-2`,children:[(0,F.jsx)(`div`,{className:`font-bold text-text-ink dark:text-text-on-primary text-xs uppercase tracking-wider`,children:`Operational Guidelines:`}),(0,F.jsxs)(`ul`,{className:`list-disc list-inside space-y-1`,children:[(0,F.jsx)(`li`,{children:`Ensure all target environments maintain high coverage density (≥95%).`}),(0,F.jsx)(`li`,{children:`Unintended gaps between environments reveal browser-specific skips or conditional test exclusions.`})]})]})]})]})}function eB({projectStats:e}){let[t,n]=(0,v.useState)(``),[r,i]=(0,v.useState)(`passRate`),[a,o]=(0,v.useState)({}),[s,c]=(0,v.useState)(!1),l=e=>{o(t=>({...t,[e]:!t[e]}))},u=(0,v.useMemo)(()=>{let n=e.filter(e=>e.name.toLowerCase().includes(t.toLowerCase().trim()));return n=[...n].sort((e,t)=>r===`passRate`?t.passRate===e.passRate?e.flakyRate-t.flakyRate:t.passRate-e.passRate:r===`duration`?t.totalDuration-e.totalDuration:r===`flakiness`?t.flakyCount-e.flakyCount:r===`total`?t.total-e.total:r===`name`?e.name.localeCompare(t.name):0),n},[e,t,r]);return(0,F.jsxs)(`div`,{className:`w-full rounded-lg bg-canvas border border-border-default p-5 shadow-sm space-y-4`,children:[(0,F.jsxs)(`div`,{className:`flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between border-b border-border-default pb-4`,children:[(0,F.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,F.jsx)(`h3`,{className:`text-base font-bold text-text-ink dark:text-text-on-primary shrink-0`,children:`Project Health & Breakdown`}),(0,F.jsxs)(`span`,{className:`rounded-full bg-surface-100 dark:bg-surface-100 px-2.5 py-0.5 text-xs font-semibold text-text-body-mid dark:text-text-muted border border-border-default`,children:[u.length,` Projects`]}),(0,F.jsx)(Oe,{onClick:()=>c(!0)})]}),(0,F.jsxs)(`div`,{className:`flex flex-wrap items-center gap-3`,children:[(0,F.jsx)(st,{value:t,onChange:n,placeholder:`Search projects...`,className:`min-w-50 flex-1 sm:flex-initial`,inputClassName:`w-full rounded-md border border-border-default bg-surface-50 pl-9 pr-7 py-1.5 text-xs text-text-ink placeholder:text-text-muted focus:border-accent-blue focus:outline-none dark:bg-surface-50 dark:text-text-on-primary`}),(0,F.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,F.jsx)(`label`,{htmlFor:`project-sort-select`,className:`text-xs text-text-body-mid dark:text-text-muted shrink-0 font-medium`,children:`Sort by:`}),(0,F.jsxs)(`div`,{className:`relative inline-flex items-center`,children:[(0,F.jsxs)(`select`,{id:`project-sort-select`,value:r,onChange:e=>i(e.target.value),className:`appearance-none rounded-md border border-border-default bg-surface-50 pl-3 pr-8 py-1.5 text-xs text-text-ink focus:border-accent-blue focus:outline-none dark:bg-surface-50 dark:text-text-on-primary font-medium cursor-pointer`,children:[(0,F.jsx)(`option`,{value:`passRate`,children:`Highest Pass Rate`}),(0,F.jsx)(`option`,{value:`duration`,children:`Longest Duration`}),(0,F.jsx)(`option`,{value:`flakiness`,children:`Most Flaky Tests`}),(0,F.jsx)(`option`,{value:`total`,children:`Most Tests`}),(0,F.jsx)(`option`,{value:`name`,children:`Project Name`})]}),(0,F.jsx)(`svg`,{className:`pointer-events-none absolute right-2.5 h-3.5 w-3.5 text-text-body-mid dark:text-text-muted shrink-0`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,strokeWidth:2,children:(0,F.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M19.5 8.25l-7.5 7.5-7.5-7.5`})})]})]})]})]}),(0,F.jsx)(`div`,{className:`grid grid-cols-1 gap-4 pt-1`,children:u.map(e=>{let t=!!a[e.name],n=e.cases.filter(e=>e.status===`failed`||e.status===`timedOut`||e.status===`interrupted`),r=e.passRate>=90?`text-success-600 dark:text-success-500 bg-success-50 dark:bg-success-500/20`:e.passRate>=75?`text-warning-600 dark:text-warning-500 bg-warning-50 dark:bg-warning-500/20`:`text-danger-600 dark:text-danger-500 bg-danger-50 dark:bg-danger-500/20`,i=e.passRate>=90?`bg-success-500`:e.passRate>=75?`bg-warning-500`:`bg-danger-500`;return(0,F.jsxs)(`div`,{className:`rounded-md bg-surface-50/50 border border-border-default shadow-xs transition-all duration-150 overflow-hidden`,children:[(0,F.jsxs)(`div`,{className:`p-5`,children:[(0,F.jsxs)(`div`,{className:`flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between`,children:[(0,F.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,F.jsx)(`div`,{className:`flex h-10 w-10 items-center justify-center rounded-lg bg-surface-100 border border-border-default shrink-0`,children:(0,F.jsxs)(`svg`,{className:`h-5 w-5 text-accent-blue`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,strokeWidth:1.5,children:[(0,F.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M12 21a9 9 0 100-18 9 9 0 000 18z`}),(0,F.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M15.414 8.586l-2.828 5.657-5.657 2.828 2.828-5.657 5.657-2.828z`})]})}),(0,F.jsxs)(`div`,{children:[(0,F.jsxs)(`h4`,{className:`text-base font-bold text-text-ink dark:text-text-on-primary flex items-center gap-2`,children:[(0,F.jsx)(`span`,{children:e.name}),(0,F.jsxs)(`span`,{className:`rounded px-1.5 py-0.5 text-[10px] font-semibold bg-warning-500/10 text-warning-600 dark:bg-warning-500/20 dark:text-warning-500 shrink-0 border border-warning-500/20`,title:`Average test duration is ${e.speedMultiplier}x relative to overall run average`,children:[`⚡ `,e.speedMultiplier,`x speed factor`]})]}),(0,F.jsxs)(`p`,{className:`text-xs text-text-body-mid dark:text-text-muted mt-0.5`,children:[e.total,` Tests executed across `,e.uniqueFiles,` spec files`]})]})]}),(0,F.jsxs)(`div`,{className:`flex items-center gap-3 shrink-0`,children:[(0,F.jsxs)(`div`,{className:`flex flex-col justify-center h-10 text-right`,children:[(0,F.jsx)(`span`,{className:`text-[11px] font-medium leading-tight text-text-body-mid dark:text-text-muted block`,children:`Pass Rate`}),(0,F.jsxs)(`span`,{className:`text-base font-extrabold leading-tight text-text-ink dark:text-text-on-primary block`,children:[e.passRate,`%`]})]}),(0,F.jsxs)(`div`,{className:`flex h-10 min-w-14 items-center justify-center rounded-md px-3 font-bold text-sm ${r}`,children:[e.passed,`/`,e.total]})]})]}),(0,F.jsx)(`div`,{className:`mt-4 h-2 w-full overflow-hidden rounded-full bg-surface-200`,children:(0,F.jsx)(`div`,{className:`h-full ${i} transition-all duration-300`,style:{width:`${e.passRate}%`}})}),(0,F.jsxs)(`div`,{className:`mt-4 grid grid-cols-2 gap-2 sm:grid-cols-4 lg:grid-cols-6 text-xs`,children:[(0,F.jsxs)(`div`,{className:`rounded bg-canvas border border-border-default px-3 py-2`,children:[(0,F.jsx)(`span`,{className:`text-[10px] font-semibold text-text-muted uppercase block`,children:`Status Breakdown`}),(0,F.jsxs)(`div`,{className:`mt-1 flex items-center gap-1.5 flex-wrap font-medium`,children:[(0,F.jsxs)(`span`,{className:`text-success-600 dark:text-success-500`,children:[e.passed,` Pass`]}),e.failed>0&&(0,F.jsxs)(`span`,{className:`text-danger-600 dark:text-danger-500`,children:[`• `,e.failed,` Fail`]}),e.timedOut>0&&(0,F.jsxs)(`span`,{className:`text-warning-600 dark:text-warning-500`,children:[`• `,e.timedOut,` Timeout`]}),e.skipped>0&&(0,F.jsxs)(`span`,{className:`text-text-muted`,children:[`• `,e.skipped,` Skip`]})]})]}),(0,F.jsxs)(`div`,{className:`rounded bg-canvas border border-border-default px-3 py-2`,children:[(0,F.jsx)(`span`,{className:`text-[10px] font-semibold text-text-muted uppercase block`,children:`Total Duration`}),(0,F.jsx)(`span`,{className:`mt-1 font-bold text-text-ink dark:text-text-on-primary block`,children:j(e.totalDuration)})]}),(0,F.jsxs)(`div`,{className:`rounded bg-canvas border border-border-default px-3 py-2`,children:[(0,F.jsx)(`span`,{className:`text-[10px] font-semibold text-text-muted uppercase block`,children:`Avg / Test`}),(0,F.jsx)(`span`,{className:`mt-1 font-bold text-text-ink dark:text-text-on-primary block`,children:j(e.avgDuration)})]}),(0,F.jsxs)(`div`,{className:`rounded bg-canvas border border-border-default px-3 py-2`,children:[(0,F.jsx)(`span`,{className:`text-[10px] font-semibold text-text-muted uppercase block`,children:`P95 Latency`}),(0,F.jsx)(`span`,{className:`mt-1 font-bold text-text-ink dark:text-text-on-primary block`,children:j(e.p95Duration)})]}),(0,F.jsxs)(`div`,{className:`rounded bg-canvas border border-border-default px-3 py-2`,children:[(0,F.jsx)(`span`,{className:`text-[10px] font-semibold text-text-muted uppercase block`,children:`Flaky / Retries`}),(0,F.jsxs)(`span`,{className:`mt-1 font-bold block ${e.flakyCount>0?`text-warning-600 dark:text-warning-500`:`text-text-ink dark:text-text-on-primary`}`,children:[e.flakyCount,` (`,e.flakyRate,`%)`]})]}),(0,F.jsxs)(`div`,{className:`rounded bg-canvas border border-border-default px-3 py-2`,children:[(0,F.jsx)(`span`,{className:`text-[10px] font-semibold text-text-muted uppercase block`,children:`Scope & Tags`}),(0,F.jsxs)(`span`,{className:`mt-1 font-bold text-text-ink dark:text-text-on-primary block`,children:[e.uniqueFiles,` Files / `,e.uniqueTagsCount,` Tags`]})]})]}),n.length>0&&(0,F.jsxs)(`div`,{className:`mt-4 pt-3 border-t border-border-default flex items-center justify-between`,children:[(0,F.jsxs)(`span`,{className:`text-xs font-semibold text-danger-600 dark:text-danger-500 flex items-center gap-1.5`,children:[(0,F.jsx)(`svg`,{className:`h-4 w-4`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,strokeWidth:2,children:(0,F.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M12 9v3.75m9-.75a9 9 0 11-18 0 9 9 0 0118 0zm-9 3.75h.008v.008H12v-.008z`})}),n.length,` Failing / Timed Out test(s) in `,e.name]}),(0,F.jsxs)(`button`,{onClick:()=>l(e.name),className:`inline-flex items-center gap-1.5 text-xs font-semibold text-accent-blue hover:underline cursor-pointer`,children:[(0,F.jsx)(`span`,{children:t?`Hide Failures`:`View Failures`}),(0,F.jsx)(`svg`,{className:`h-4 w-4 transition-transform duration-200 ${t?`rotate-180`:``}`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,strokeWidth:2,children:(0,F.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M19.5 8.25l-7.5 7.5-7.5-7.5`})})]})]})]}),t&&n.length>0&&(0,F.jsxs)(`div`,{className:`bg-canvas border-t border-border-default p-4 space-y-3`,children:[(0,F.jsxs)(`h5`,{className:`text-xs font-bold uppercase tracking-wider text-text-muted mb-2`,children:[`Failed / Timed Out Cases in `,e.name]}),(0,F.jsx)(`div`,{className:`space-y-2`,children:n.map(e=>(0,F.jsx)(qe,{testCase:e,showSteps:!0},`${e.project}-${e.fileName}-${e.title}`))})]})]},e.name)})}),(0,F.jsxs)(ot,{isOpen:s,onClose:()=>c(!1),title:`Project Health & Breakdown Guide`,subtitle:`Understanding project metrics, performance distributions, and diagnostic controls`,children:[(0,F.jsxs)(`p`,{children:[`The`,` `,(0,F.jsx)(`strong`,{className:`text-text-ink dark:text-text-on-primary`,children:`Project Health & Breakdown`}),` `,`panel provides granular execution metrics scoped to each configured Playwright project profile (e.g., cross-browser targets like Chromium, Firefox, WebKit, or custom test configurations).`]}),(0,F.jsxs)(`div`,{className:`rounded-md border border-border-default bg-surface-50 p-4 space-y-2.5`,children:[(0,F.jsx)(`div`,{className:`font-bold text-text-ink dark:text-text-on-primary text-xs uppercase tracking-wider`,children:`Key Metrics & Health Indicators:`}),(0,F.jsxs)(`ul`,{className:`list-disc list-inside space-y-1.5`,children:[(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`Pass Rate:`}),` Percentage of test cases in the project profile that executed cleanly to completion.`]}),(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`Execution Duration:`}),` Cumulative runtime and average duration per test case within the project target.`]}),(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`Duration Percentiles (p95, Median, Min, Max):`}),` Detailed timing stats to identify long-tail execution bottlenecks across specs.`]}),(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`Retries & In-Run Flakiness:`}),` Count and percentage of test cases that failed on initial attempt but succeeded after automatic retries.`]})]})]}),(0,F.jsxs)(`div`,{className:`rounded-md border border-border-default bg-surface-50 p-4 space-y-2.5`,children:[(0,F.jsx)(`div`,{className:`font-bold text-text-ink dark:text-text-on-primary text-xs uppercase tracking-wider`,children:`Diagnostic Controls & Deep Dives:`}),(0,F.jsxs)(`ul`,{className:`list-disc list-inside space-y-1.5`,children:[(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`Search & Sort:`}),` Quickly filter project profiles by name or sort by Pass Rate, Cumulative Duration, Retry Count, or Total Test Volume.`]}),(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`Expandable Failure Details:`}),` Click any project card with errors to expand and inspect step-by-step logs, stack traces, snippets, and attachments scoped strictly to that project target.`]})]})]})]})]})}function tB({suites:e}){let t=ie(re(e)),n=ae(t);return(0,F.jsxs)(`div`,{className:`w-full space-y-6`,children:[(0,F.jsxs)(`div`,{children:[(0,F.jsx)(`h2`,{className:`text-2xl font-bold tracking-tight text-text-ink dark:text-text-on-primary sm:text-3xl`,children:`Projects Overview`}),(0,F.jsx)(`p`,{className:`mt-1 text-sm text-text-body-mid dark:text-text-muted`,children:`Execution breakdown, status metrics, and cross-project test results.`})]}),(0,F.jsx)(Yz,{kpis:n}),(0,F.jsxs)(`div`,{className:`grid grid-cols-1 gap-6 lg:grid-cols-2 items-stretch`,children:[(0,F.jsx)(Jz,{suites:e,title:`Status Breakdown by Project`}),(0,F.jsx)($z,{projectStats:t,title:`Test Volume & Coverage Density per Project`})]}),(0,F.jsx)(eB,{projectStats:t})]})}function nB({activeModal:e,onClose:t}){return(0,F.jsxs)(F.Fragment,{children:[(0,F.jsxs)(ot,{isOpen:e===`flaky-tests`,onClose:t,title:`Flaky Test Analytics Guide`,subtitle:`Metric definitions, targets, and diagnostic guidelines for Zen Reporter`,children:[(0,F.jsxs)(`p`,{children:[`The`,` `,(0,F.jsx)(`strong`,{className:`text-text-ink dark:text-text-on-primary`,children:`Flaky Tests Analytics`}),` `,`table identifies non-deterministic tests that recorded BOTH passed and failed outcomes across historical test runs (minimum 1 failure and 1 success).`]}),(0,F.jsxs)(`div`,{className:`rounded-md border border-primary-500/20 bg-primary-500/5 p-3.5 space-y-1.5`,children:[(0,F.jsx)(`div`,{className:`font-bold text-text-ink dark:text-text-on-primary text-xs flex items-center gap-1.5`,children:(0,F.jsx)(`span`,{className:`text-primary-600 dark:text-primary-400 font-bold`,children:`ℹ Note on Flakiness & Retry Definitions:`})}),(0,F.jsxs)(`p`,{className:`text-xs text-text-body-mid dark:text-text-muted`,children:[(0,F.jsx)(`strong`,{children:`Insights Tab (Historical Instability):`}),` Evaluates non-deterministic test behavior aggregated across multiple historical runs over time.`,(0,F.jsx)(`br`,{}),(0,F.jsx)(`strong`,{children:`Files, Projects & Overview Tabs (In-Run Retries):`}),` Measures Playwright's official in-run retry status (test cases that failed initial execution but passed upon automatic retry within the single run).`]})]}),(0,F.jsxs)(`div`,{className:`rounded-md border border-border-default bg-surface-50 p-4 space-y-2`,children:[(0,F.jsx)(`div`,{className:`font-bold text-text-ink dark:text-text-on-primary text-xs uppercase tracking-wider`,children:`Remediation Guidelines:`}),(0,F.jsxs)(`ul`,{className:`list-disc list-inside space-y-1`,children:[(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`Recovered by Retry:`}),` Tracks tests that failed on attempt #1 but passed on automatic retry.`]}),(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`Eliminate Pauses:`})," Replace explicit `page.waitForTimeout()` delays with web-first assertions like `expect(locator).toBeVisible()`."]}),(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`State Isolation:`}),` Ensure test cases do not share global mutable state or session tokens.`]})]})]}),(0,F.jsxs)(`div`,{className:`rounded-md border border-border-default bg-surface-50 p-4 space-y-2`,children:[(0,F.jsx)(`div`,{className:`font-bold text-text-ink dark:text-text-on-primary text-xs uppercase tracking-wider`,children:`Filtering & Export Capabilities:`}),(0,F.jsxs)(`ul`,{className:`list-disc list-inside space-y-1`,children:[(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`Date Range Filter:`}),` Filter flaky test analytics for All Time, specific calendar months, or custom date ranges.`]}),(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`Test Search:`}),` Dynamically search tests by title, suite, or project without clearing active date filters.`]}),(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`Export CSV:`}),` Download all filtered flaky test records into an RFC 4180-compliant CSV file (un-paginated).`]})]})]})]}),(0,F.jsxs)(ot,{isOpen:e===`regressions`,onClose:t,title:`Test Regressions Guide`,subtitle:`Metric definitions, targets, and diagnostic guidelines for Zen Reporter`,children:[(0,F.jsxs)(`p`,{children:[`The `,(0,F.jsx)(`strong`,{className:`text-text-ink dark:text-text-on-primary`,children:`Test Regressions`}),` `,`table tracks test cases that previously succeeded in an earlier run but broke and failed in a subsequent execution.`]}),(0,F.jsxs)(`div`,{className:`rounded-md border border-border-default bg-surface-50 p-4 space-y-2.5`,children:[(0,F.jsx)(`div`,{className:`font-bold text-text-ink dark:text-text-on-primary text-xs uppercase tracking-wider`,children:`Last Run Status Meanings & Next Actions Required:`}),(0,F.jsxs)(`div`,{className:`space-y-2`,children:[(0,F.jsxs)(`div`,{className:`grid grid-cols-[100px_1fr] items-start gap-3 rounded bg-surface-100 p-2.5 border border-border-default`,children:[(0,F.jsx)(`div`,{className:`shrink-0 pt-0.5`,children:(0,F.jsx)(`span`,{className:`inline-flex w-full items-center justify-center rounded-full px-2.5 py-0.5 text-xs font-semibold bg-success-50 text-success-600 dark:bg-success-500/10 dark:text-success-500 text-center`,children:`Passed`})}),(0,F.jsxs)(`div`,{children:[(0,F.jsx)(`div`,{className:`font-bold text-text-ink dark:text-text-on-primary text-xs`,children:`Regression Resolved`}),(0,F.jsxs)(`p`,{className:`text-xs text-text-body-mid dark:text-text-muted mt-0.5`,children:[`The test regressed in a prior run, but passed cleanly in the most recent run.`,(0,F.jsx)(`span`,{className:`block font-semibold text-success-600 dark:text-success-400 mt-1`,children:`✓ Next Action: None required. The regression has been resolved.`})]})]})]}),(0,F.jsxs)(`div`,{className:`grid grid-cols-[100px_1fr] items-start gap-3 rounded bg-surface-100 p-2.5 border border-border-default`,children:[(0,F.jsx)(`div`,{className:`shrink-0 pt-0.5`,children:(0,F.jsx)(`span`,{className:`inline-flex w-full items-center justify-center rounded-full px-2.5 py-0.5 text-xs font-semibold bg-danger-50 text-danger-600 dark:bg-danger-500/10 dark:text-danger-500 text-center`,children:`Failed`})}),(0,F.jsxs)(`div`,{children:[(0,F.jsx)(`div`,{className:`font-bold text-text-ink dark:text-text-on-primary text-xs`,children:`Active Test Failure`}),(0,F.jsxs)(`p`,{className:`text-xs text-text-body-mid dark:text-text-muted mt-0.5`,children:[`The test failed during the most recent run due to an assertion failure or uncaught exception.`,(0,F.jsx)(`span`,{className:`block font-semibold text-danger-600 dark:text-danger-400 mt-1`,children:`⚠️ Next Action: Priority fix required. Inspect stack trace in Failures tab.`})]})]})]}),(0,F.jsxs)(`div`,{className:`grid grid-cols-[100px_1fr] items-start gap-3 rounded bg-surface-100 p-2.5 border border-border-default`,children:[(0,F.jsx)(`div`,{className:`shrink-0 pt-0.5`,children:(0,F.jsx)(`span`,{className:`inline-flex w-full items-center justify-center rounded-full px-2.5 py-0.5 text-xs font-semibold bg-warning-50 text-warning-600 dark:bg-warning-500/10 dark:text-warning-500 text-center`,children:`Timed Out`})}),(0,F.jsxs)(`div`,{children:[(0,F.jsx)(`div`,{className:`font-bold text-text-ink dark:text-text-on-primary text-xs`,children:`Execution Timeout`}),(0,F.jsxs)(`p`,{className:`text-xs text-text-body-mid dark:text-text-muted mt-0.5`,children:[`The test exceeded its maximum allocated runtime (e.g. 30,000ms) without completing.`,(0,F.jsx)(`span`,{className:`block font-semibold text-warning-600 dark:text-warning-400 mt-1`,children:`⏱️ Next Action: Check for hanging promises, unhandled dynamic waits, or backend latency.`})]})]})]}),(0,F.jsxs)(`div`,{className:`grid grid-cols-[100px_1fr] items-start gap-3 rounded bg-surface-100 p-2.5 border border-border-default`,children:[(0,F.jsx)(`div`,{className:`shrink-0 pt-0.5`,children:(0,F.jsx)(`span`,{className:`inline-flex w-full items-center justify-center rounded-full px-2.5 py-0.5 text-xs font-semibold bg-danger-50 text-danger-600 dark:bg-danger-500/10 dark:text-danger-500 text-center`,children:`Interrupted`})}),(0,F.jsxs)(`div`,{children:[(0,F.jsx)(`div`,{className:`font-bold text-text-ink dark:text-text-on-primary text-xs`,children:`Run Cancelled / Interrupted`}),(0,F.jsxs)(`p`,{className:`text-xs text-text-body-mid dark:text-text-muted mt-0.5`,children:[`The test run was terminated early (e.g. SIGINT or CI worker cancellation) before completion.`,(0,F.jsx)(`span`,{className:`block font-semibold text-text-body-mid dark:text-text-muted mt-1`,children:`🔄 Next Action: Re-run the test suite to establish current status.`})]})]})]}),(0,F.jsxs)(`div`,{className:`grid grid-cols-[100px_1fr] items-start gap-3 rounded bg-surface-100 p-2.5 border border-border-default`,children:[(0,F.jsx)(`div`,{className:`shrink-0 pt-0.5`,children:(0,F.jsx)(`span`,{className:`inline-flex w-full items-center justify-center rounded-full px-2.5 py-0.5 text-xs font-semibold bg-slate-200 text-slate-800 dark:bg-slate-700 dark:text-slate-200 text-center`,children:`Skipped`})}),(0,F.jsxs)(`div`,{children:[(0,F.jsx)(`div`,{className:`font-bold text-text-ink dark:text-text-on-primary text-xs`,children:`Test Skipped`}),(0,F.jsxs)(`p`,{className:`text-xs text-text-body-mid dark:text-text-muted mt-0.5`,children:["The test was explicitly skipped via `test.skip()` or conditional tags in the last run.",(0,F.jsx)(`span`,{className:`block font-semibold text-text-body-mid dark:text-text-muted mt-1`,children:`🔍 Next Action: Verify if test skip condition is still required or ready to re-enable.`})]})]})]})]})]}),(0,F.jsxs)(`div`,{className:`rounded-md border border-border-default bg-surface-50 p-4 space-y-2`,children:[(0,F.jsx)(`div`,{className:`font-bold text-text-ink dark:text-text-on-primary text-xs uppercase tracking-wider`,children:`Filtering & Export Capabilities:`}),(0,F.jsxs)(`ul`,{className:`list-disc list-inside space-y-1`,children:[(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`Date Range Filter:`}),` Filter test regressions for All Time, specific calendar months, or custom date ranges.`]}),(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`Test Search:`}),` Dynamically search tests by title, suite, or project without clearing active date filters.`]}),(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`Export CSV:`}),` Download all detected regression items to an RFC 4180-compliant CSV file (un-paginated).`]})]})]})]}),(0,F.jsxs)(ot,{isOpen:e===`slowest-tests`,onClose:t,title:`Slowest Tests Guide`,subtitle:`Metric definitions, targets, and diagnostic guidelines for Zen Reporter`,children:[(0,F.jsxs)(`p`,{children:[`The `,(0,F.jsx)(`strong`,{className:`text-text-ink dark:text-text-on-primary`,children:`Slowest Tests`}),` `,`table lists the top 5 test cases with the highest average execution duration across history.`]}),(0,F.jsxs)(`div`,{className:`rounded-md border border-border-default bg-surface-50 p-4 space-y-2.5`,children:[(0,F.jsx)(`div`,{className:`font-bold text-text-ink dark:text-text-on-primary text-xs uppercase tracking-wider`,children:`Key Metrics Explained:`}),(0,F.jsxs)(`ul`,{className:`list-disc list-inside space-y-1.5 text-xs text-text-body-mid dark:text-text-muted`,children:[(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{className:`text-text-ink dark:text-text-on-primary`,children:`Average Duration:`}),` `,`The cumulative baseline execution duration across recorded historical runs.`]}),(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{className:`text-text-ink dark:text-text-on-primary`,children:`Max Duration:`}),` The single worst-case peak runtime encountered (useful for spotting transient spikes or CI throttling).`]}),(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{className:`text-text-ink dark:text-text-on-primary`,children:`Last Run Duration:`}),` `,`The exact runtime recorded during the most recent test run execution.`]})]})]}),(0,F.jsxs)(`div`,{className:`rounded-md border border-border-default bg-surface-50 p-4 space-y-2`,children:[(0,F.jsx)(`div`,{className:`font-bold text-text-ink dark:text-text-on-primary text-xs uppercase tracking-wider`,children:`Export Capabilities:`}),(0,F.jsx)(`ul`,{className:`list-disc list-inside space-y-1`,children:(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`Export CSV:`}),` Download the slowest tests list to an RFC 4180-compliant CSV file.`]})})]}),(0,F.jsxs)(`div`,{className:`rounded-md border border-border-default bg-surface-50 p-4 space-y-2`,children:[(0,F.jsx)(`div`,{className:`font-bold text-text-ink dark:text-text-on-primary text-xs uppercase tracking-wider`,children:`Diagnostic & Optimization Strategy:`}),(0,F.jsxs)(`ul`,{className:`list-disc list-inside space-y-1.5 text-xs text-text-body-mid dark:text-text-muted`,children:[(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`Active Regression Detection:`}),` If `,(0,F.jsx)(`em`,{children:`Last Run Duration`}),` is significantly higher than `,(0,F.jsx)(`em`,{children:`Average Duration`}),`, recent code or test script updates introduced a execution bottleneck.`]}),(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`Optimization Verification:`}),` Compare `,(0,F.jsx)(`em`,{children:`Last Run Duration`}),` against`,` `,(0,F.jsx)(`em`,{children:`Average Duration`}),` after refactoring to immediately verify if performance improvements took effect without waiting for long-term historical averages to drift down.`]}),(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`CI Pipeline Impact:`}),` Refactoring these top bottleneck tests yields the highest overall reduction in suite execution time.`]})]})]})]})]})}var rB=e=>{let{active:t,payload:n,label:r}=e;if(!t||!n||n.length===0)return null;let i=n[0]?.payload;return i?(0,F.jsxs)(`div`,{className:`p-3 text-text-ink dark:text-text-on-primary`,children:[(0,F.jsx)(`div`,{className:`font-bold text-xs mb-1 border-b border-border-default pb-1`,children:r}),(0,F.jsxs)(`div`,{className:`space-y-1 text-xs`,children:[(0,F.jsxs)(`div`,{className:`flex justify-between gap-4`,children:[(0,F.jsx)(`span`,{className:`text-text-body-mid dark:text-text-muted`,children:`Total Tests Evaluated:`}),(0,F.jsx)(`span`,{className:`font-bold tabular-nums`,children:i.total})]}),(0,F.jsxs)(`div`,{className:`flex justify-between gap-4`,children:[(0,F.jsxs)(`span`,{className:`flex items-center gap-1.5 text-warning-600 dark:text-warning-500`,children:[(0,F.jsx)(`span`,{className:`h-2 w-2 rounded-full`,style:{backgroundColor:`var(--color-warning-500)`}}),`Flaky Test Cases:`]}),(0,F.jsx)(`span`,{className:`font-bold tabular-nums text-warning-600 dark:text-warning-500`,children:i[`Flaky Tests`]})]}),(0,F.jsxs)(`div`,{className:`flex justify-between gap-4 pt-1 border-t border-border-default font-semibold`,children:[(0,F.jsx)(`span`,{className:`text-warning-600 dark:text-warning-500`,children:`Flakiness Rate:`}),(0,F.jsxs)(`span`,{className:`font-bold tabular-nums text-warning-600 dark:text-warning-500`,children:[i[`Flaky Rate (%)`],`%`]})]})]})]}):null};function iB({suites:e,title:t=`Flaky Test Count & Retry Rate by Project`}){let[n,r]=(0,v.useState)(!1),i=ie(re(e)),a=i.reduce((e,t)=>Math.max(e,t.name.length),0),o=Math.max(80,Math.min(240,a*8+24)),s=i.map(e=>({name:e.name,"Flaky Tests":e.flakyCount,"Flaky Rate (%)":e.flakyRate,total:e.total})),c=i.length>0&&s.some(e=>e[`Flaky Tests`]>0);return(0,F.jsxs)(`div`,{className:`rounded-md bg-surface-50 border border-border-default p-5 shadow-xs flex flex-col justify-between`,children:[(0,F.jsxs)(`div`,{className:`mb-3 flex items-start justify-between gap-2`,children:[(0,F.jsxs)(`div`,{children:[(0,F.jsx)(`h3`,{className:`text-lg font-bold text-text-ink dark:text-text-on-primary`,children:t}),(0,F.jsx)(`p`,{className:`text-xs text-text-body-mid dark:text-text-muted mt-0.5`,children:`Cross-project comparison of unstable/flaky test occurrences and retry dependency`})]}),(0,F.jsx)(Oe,{onClick:()=>r(!0)})]}),c?(0,F.jsx)(kd,{width:`100%`,height:260,children:(0,F.jsxs)(Wz,{data:s,layout:`vertical`,margin:{top:5,right:20,left:10,bottom:5},barSize:18,children:[(0,F.jsx)(eF,{strokeDasharray:`3 3`,stroke:`var(--color-border-chart)`,horizontal:!1}),(0,F.jsx)(IL,{type:`number`,fontSize:12,tick:{fill:`var(--color-text-muted)`}}),(0,F.jsx)(ZL,{type:`category`,dataKey:`name`,width:o,fontSize:12,tick:{fill:`var(--color-text-ink)`}}),(0,F.jsx)(ZO,{content:rB,wrapperStyle:{backgroundColor:`var(--color-surface-100)`,border:`1px solid var(--color-border-default)`,borderRadius:`0.5rem`,boxShadow:`0 4px 6px -1px rgba(0, 0, 0, 0.1)`,outline:`none`}}),(0,F.jsx)(Wf,{verticalAlign:`bottom`,align:`center`,wrapperStyle:{paddingTop:`10px`,fontSize:`12px`}}),(0,F.jsx)(hL,{dataKey:`Flaky Tests`,fill:`var(--color-warning-500)`,radius:[0,4,4,0]})]})}):(0,F.jsxs)(`div`,{className:`flex h-65 flex-col items-center justify-center rounded-md border border-dashed border-border-default bg-surface-100/50 p-6 text-center`,children:[(0,F.jsx)(`div`,{className:`mx-auto mb-2 flex h-10 w-10 items-center justify-center rounded-full bg-surface-200 text-text-muted`,children:(0,F.jsx)(`svg`,{className:`h-5 w-5 text-text-body-mid dark:text-text-muted`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,strokeWidth:1.5,children:(0,F.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M9 12.75L11.25 15 15 9.75M21 12a9 9 0 11-18 0 9 9 0 0118 0z`})})}),(0,F.jsx)(`p`,{className:`text-sm font-semibold text-text-ink dark:text-text-on-primary`,children:`No flaky tests detected`}),(0,F.jsx)(`p`,{className:`mt-1 text-xs text-text-body-mid dark:text-text-muted`,children:`All test cases executed without requiring retries to pass.`})]}),n&&(0,F.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center bg-black/60 backdrop-blur-xs p-4 overflow-y-auto`,children:(0,F.jsxs)(`div`,{className:`relative w-full max-w-xl rounded-lg border border-border-default bg-canvas p-6 shadow-2xl space-y-4`,children:[(0,F.jsxs)(`div`,{className:`flex items-start justify-between border-b border-border-default pb-3`,children:[(0,F.jsxs)(`div`,{children:[(0,F.jsx)(`h3`,{className:`text-lg font-bold text-text-ink dark:text-text-on-primary`,children:`Flaky Test Count & Retry Analytics Guide`}),(0,F.jsx)(`p`,{className:`text-xs text-text-body-mid dark:text-text-muted mt-0.5`,children:`Analyzing cross-project test instability and environmental flakiness`})]}),(0,F.jsx)(`button`,{onClick:()=>r(!1),className:`rounded-md p-1 text-text-body-mid hover:bg-surface-100 hover:text-text-ink dark:text-text-muted dark:hover:text-text-on-primary transition-colors cursor-pointer`,children:(0,F.jsx)(`svg`,{className:`h-5 w-5`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,strokeWidth:2,children:(0,F.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M6 18L18 6M6 6l12 12`})})})]}),(0,F.jsxs)(`div`,{className:`space-y-3 text-xs text-text-body-mid dark:text-text-muted leading-relaxed`,children:[(0,F.jsxs)(`p`,{children:[`A test case is classified as`,` `,(0,F.jsx)(`strong`,{className:`text-warning-600 dark:text-warning-500`,children:`Flaky`}),` when it is non-deterministic and recorded BOTH passed and failed outcomes across test executions (minimum 1 failure and 1 success).`]}),(0,F.jsxs)(`div`,{className:`rounded-md border border-border-default bg-surface-50 p-3 space-y-2`,children:[(0,F.jsx)(`div`,{className:`font-bold text-text-ink dark:text-text-on-primary text-xs uppercase tracking-wider`,children:`Diagnostic Value by Project Profile:`}),(0,F.jsxs)(`ul`,{className:`list-disc list-inside space-y-1`,children:[(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`Browser Specific Flakiness:`}),` Compare WebKit, Chromium, and Firefox to isolate rendering engine timing bugs.`]}),(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`Viewport & Mobile Emulation:`}),` Identify if responsive layout tests flake on mobile viewports due to animation delays.`]}),(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`Retry Overhead:`}),` Flaky tests double execution latency. Eliminating flakiness speeds up overall CI build time.`]})]})]})]}),(0,F.jsx)(`div`,{className:`flex justify-end pt-2 border-t border-border-default`,children:(0,F.jsx)(`button`,{type:`button`,onClick:()=>r(!1),className:`rounded-md bg-accent-blue px-4 py-2 text-xs font-bold text-text-on-primary hover:bg-accent-blue/90 transition-colors cursor-pointer`,children:`Close Guide`})})]})})]})}var aB={"Avg Duration (s)":`var(--color-accent-green)`,"P95 Duration (s)":`var(--color-accent-house)`},oB=e=>(0,F.jsx)(`span`,{style:{color:aB[e]||`var(--color-text-ink)`,fontSize:`12px`,fontWeight:500},children:e});function sB({projectStats:e,title:t=`Execution Duration & Latency Benchmark`,className:n=`rounded-md bg-canvas border border-border-default px-6 py-6 shadow-sm flex flex-col justify-between`}){let[r,i]=(0,v.useState)(!1),a=e.reduce((e,t)=>Math.max(e,t.name.length),0),o=Math.max(80,Math.min(240,a*8+24)),s=e=>{if(!e||e<=0)return 0;let t=e/1e3;return t<.01?Number(t.toFixed(3))||.01:Math.round(t*100)/100},c=e.map(e=>({name:e.name,"Avg Duration (s)":s(e.avgDuration),"P95 Duration (s)":s(e.p95Duration),avgRawMs:e.avgDuration,p95RawMs:e.p95Duration,totalRawMs:e.totalDuration})),l=e.length>0&&c.some(e=>e[`Avg Duration (s)`]>0||e[`P95 Duration (s)`]>0);return(0,F.jsxs)(`div`,{className:n,children:[(0,F.jsxs)(`div`,{className:`mb-3 flex items-start justify-between gap-2`,children:[(0,F.jsxs)(`div`,{children:[(0,F.jsx)(`h3`,{className:`text-lg font-semibold text-text-ink dark:text-text-on-primary`,children:t}),(0,F.jsx)(`p`,{className:`text-xs text-text-body-mid dark:text-text-muted mt-0.5`,children:`Average vs P95 execution duration per test case across projects`})]}),(0,F.jsx)(Oe,{onClick:()=>i(!0)})]}),l?(0,F.jsx)(kd,{width:`100%`,height:300,children:(0,F.jsxs)(Wz,{data:c,layout:`vertical`,margin:{top:5,right:20,left:10,bottom:5},barSize:18,barGap:4,children:[(0,F.jsx)(eF,{strokeDasharray:`3 3`,stroke:`var(--color-border-chart)`,horizontal:!1}),(0,F.jsx)(IL,{type:`number`,fontSize:12,tick:{fill:`var(--color-text-muted)`},unit:`s`}),(0,F.jsx)(ZL,{type:`category`,dataKey:`name`,fontSize:12,width:o,tick:{fill:`var(--color-text-muted)`},tickFormatter:e=>e.length===a&&a>0?`\u00A0${e}`:e}),(0,F.jsx)(ZO,{contentStyle:{backgroundColor:`var(--color-surface-100)`,border:`1px solid var(--color-border-default)`,borderRadius:`0.5rem`,boxShadow:`0 4px 6px -1px rgba(0, 0, 0, 0.1)`},formatter:(e,t,n)=>{let r=typeof e==`number`?e:Number(e),i=n.payload;return t===`Avg Duration (s)`?[`${j(i.avgRawMs)} (${r}s)`,`Avg / Test`]:t===`P95 Duration (s)`?[`${j(i.p95RawMs)} (${r}s)`,`P95 Latency`]:[`${r}s`,String(t)]}}),(0,F.jsx)(Wf,{iconType:`circle`,formatter:oB,wrapperStyle:{paddingTop:`8px`,textAlign:`center`,width:`100%`,fontSize:`12px`}}),(0,F.jsx)(hL,{dataKey:`Avg Duration (s)`,fill:`var(--color-accent-green)`,radius:[0,4,4,0]}),(0,F.jsx)(hL,{dataKey:`P95 Duration (s)`,fill:`var(--color-accent-house)`,radius:[0,4,4,0]})]})}):(0,F.jsxs)(`div`,{className:`flex h-75 flex-col items-center justify-center rounded-md border border-dashed border-border-default bg-surface-100/50 p-6 text-center`,children:[(0,F.jsx)(`div`,{className:`mx-auto mb-2 flex h-10 w-10 items-center justify-center rounded-full bg-surface-200 text-text-muted`,children:(0,F.jsx)(`svg`,{className:`h-5 w-5 text-text-body-mid dark:text-text-muted`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,strokeWidth:1.5,children:(0,F.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M12 6v6h4.5m4.5 0a9 9 0 11-18 0 9 9 0 0118 0z`})})}),(0,F.jsx)(`p`,{className:`text-sm font-semibold text-text-ink dark:text-text-on-primary`,children:`No execution duration data available`}),(0,F.jsx)(`p`,{className:`mt-1 text-xs text-text-body-mid dark:text-text-muted`,children:`Execution timing benchmarks will be displayed once test cases report execution timing.`})]}),r&&(0,F.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center bg-black/50 p-4 backdrop-blur-xs`,onClick:()=>i(!1),children:(0,F.jsxs)(`div`,{className:`relative w-full max-w-lg rounded-lg bg-canvas border border-border-default p-6 shadow-xl space-y-4 max-h-[85vh] overflow-y-auto`,onClick:e=>e.stopPropagation(),children:[(0,F.jsxs)(`div`,{className:`flex items-start justify-between border-b border-border-default pb-3`,children:[(0,F.jsx)(`h4`,{className:`text-base font-bold text-text-ink dark:text-text-on-primary`,children:`About Duration & P95 Latency Benchmark`}),(0,F.jsx)(`button`,{onClick:()=>i(!1),className:`rounded-md p-1 text-text-muted hover:bg-surface-100 hover:text-text-ink transition-colors cursor-pointer`,children:(0,F.jsx)(`svg`,{className:`h-5 w-5`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,strokeWidth:2,children:(0,F.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M6 18L18 6M6 6l12 12`})})})]}),(0,F.jsxs)(`div`,{className:`space-y-3 text-xs text-text-body-mid dark:text-text-muted leading-relaxed`,children:[(0,F.jsx)(`p`,{children:`This chart benchmarks the execution latency per test case across project targets, comparing average duration against 95th percentile (P95) latency.`}),(0,F.jsxs)(`div`,{children:[(0,F.jsx)(`h5`,{className:`font-semibold text-text-ink dark:text-text-on-primary mb-1`,children:`Key Metrics Explained:`}),(0,F.jsxs)(`ul`,{className:`list-disc pl-4 space-y-1.5`,children:[(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{className:`text-accent-blue`,children:`Avg Duration (s):`}),` Calculated as`,` `,(0,F.jsx)(`code`,{className:`font-mono bg-surface-100 px-1 py-0.5 rounded text-[10px]`,children:`Total Duration / Executed Tests`}),`. It represents the mean time required to complete a single test case in that project profile.`]}),(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{className:`text-warning-600 dark:text-warning-500`,children:`P95 Duration / Latency (s):`}),` `,`Represents the 95th percentile completion threshold.`,` `,(0,F.jsx)(`strong`,{children:`95% of all executed tests in that project completed faster than this duration`}),`, while only 5% took longer.`]})]})]}),(0,F.jsxs)(`div`,{children:[(0,F.jsx)(`h5`,{className:`font-semibold text-text-ink dark:text-text-on-primary mb-1`,children:`Why P95 Latency is Critical for QA & CI Pipelines:`}),(0,F.jsx)(`p`,{className:`mb-1.5`,children:`Average duration can be deceptive—a large number of fast 100ms API checks will drag the average down, masking extremely slow 15-second E2E user flows.`}),(0,F.jsx)(`p`,{className:`mb-1.5`,children:`P95 isolates tail latency. High P95 latency exposes tests that suffer from:`}),(0,F.jsxs)(`ul`,{className:`list-disc pl-4 space-y-1`,children:[(0,F.jsx)(`li`,{children:`Unnecessary explicit sleep/timeout delays`}),(0,F.jsx)(`li`,{children:`Heavy DOM re-rendering or unoptimized navigation`}),(0,F.jsx)(`li`,{children:`CI worker CPU/RAM throttling on specific browser engines`}),(0,F.jsx)(`li`,{children:`Slow background API network dependencies`})]})]})]}),(0,F.jsx)(`div`,{className:`pt-2 flex justify-end`,children:(0,F.jsx)(`button`,{onClick:()=>i(!1),className:`rounded-md bg-accent-blue px-4 py-1.5 text-xs font-semibold text-white shadow-xs hover:bg-accent-blue/90 cursor-pointer`,children:`Got it`})})]})})]})}var cB=`rounded-md border border-border-default bg-surface-50 p-5 shadow-xs`,lB=`text-lg font-bold text-text-ink dark:text-text-on-primary`,uB={passed:{label:`Passed`,pillClass:`bg-success-50 text-success-600 dark:bg-success-500/10 dark:text-success-500`,tooltip:`Regression resolved: test passed in the latest run.`},failed:{label:`Failed`,pillClass:`bg-danger-50 text-danger-600 dark:bg-danger-500/10 dark:text-danger-500`,tooltip:`Test failed during the last run. Fixing may be required.`},timedOut:{label:`Timed Out`,pillClass:`bg-warning-50 text-warning-600 dark:bg-warning-500/10 dark:text-warning-500`,tooltip:`Test timed out during the last run. Fixing may be required.`},interrupted:{label:`Interrupted`,pillClass:`bg-danger-50 text-danger-600 dark:bg-danger-500/10 dark:text-danger-500`,tooltip:`Test run was interrupted. Try to re-run the test to verify status.`},skipped:{label:`Skipped`,pillClass:`bg-slate-200/80 text-slate-800 ring-1 ring-slate-300 dark:bg-slate-700/60 dark:text-slate-200 dark:ring-slate-600`,tooltip:`Test was skipped. Try to re-run the test to verify status.`}};function dB({history:e,suites:t,isHistoryDisabled:n}){let[r,i]=(0,v.useState)(null),[a,o]=(0,v.useState)({fromTimestamp:null,toTimestamp:null,label:null}),[s,c]=(0,v.useState)(``),[l,u]=(0,v.useState)({fromTimestamp:null,toTimestamp:null,label:null}),[d,f]=(0,v.useState)(``),p=(0,v.useMemo)(()=>e?.runs.map(e=>e.started_at)??[],[e]),m=(0,v.useMemo)(()=>e?.runs?!a.fromTimestamp&&!a.toTimestamp?e.runs:e.runs.filter(e=>{let t=new Date(e.started_at).getTime();return!(a.fromTimestamp&&t<a.fromTimestamp||a.toTimestamp&&t>a.toTimestamp)}):[],[e,a]),h=(0,v.useMemo)(()=>{if(!e?.flaky)return[];let t=e.flaky;if((a.fromTimestamp||a.toTimestamp)&&m.length===0&&(t=[]),s.trim()){let e=s.trim().toLowerCase();t=t.filter(t=>t.title.toLowerCase().includes(e)||t.suite.toLowerCase().includes(e)||t.project&&t.project.toLowerCase().includes(e))}return t},[e,a,m,s]),g=(0,v.useMemo)(()=>{if(!e?.regressions)return[];let t=e.regressions;if((l.fromTimestamp||l.toTimestamp)&&(t=t.filter(e=>{let t=e.last_run_at||e.regressed_at;if(!t)return!0;let n=new Date(t).getTime();return!(l.fromTimestamp&&n<l.fromTimestamp||l.toTimestamp&&n>l.toTimestamp)})),d.trim()){let e=d.trim().toLowerCase();t=t.filter(t=>t.title.toLowerCase().includes(e)||t.suite.toLowerCase().includes(e)||t.project&&t.project.toLowerCase().includes(e))}return t},[e,l,d]),_=Bt(h.length,10),y=Bt(g.length,10),b=h.slice(_.start,_.start+_.pageSize),x=g.slice(y.start,y.start+y.pageSize),S=e?.slowest.slice(0,5)??[],C=(0,v.useMemo)(()=>[{key:`suite`,header:`Suite`,cell:e=>e.suite||`-`,csvValue:e=>e.suite||``},{key:`title`,header:`Test`,className:`font-bold`,cell:e=>e.title,csvValue:e=>e.title},{key:`project`,header:`Project`,cell:e=>e.project,csvValue:e=>e.project},{key:`failed_runs`,header:`Failed Runs`,align:`right`,cell:e=>(0,F.jsx)(`span`,{className:e.failed_runs>0?`text-danger-600 dark:text-danger-500 font-bold`:``,children:e.failed_runs}),csvValue:e=>e.failed_runs},{key:`passed_runs`,header:`Passed Runs`,align:`right`,cell:e=>(0,F.jsx)(`span`,{className:e.passed_runs>0?`text-success-600 dark:text-success-500 font-bold`:``,children:e.passed_runs}),csvValue:e=>e.passed_runs},{key:`recovered_by_retry`,header:`Recovered by Retry`,align:`right`,cell:e=>(0,F.jsx)(`span`,{className:e.recovered_by_retry>0?`text-warning-600 dark:text-warning-500 font-bold`:``,children:e.recovered_by_retry}),csvValue:e=>e.recovered_by_retry},{key:`total_runs`,header:`Total Runs`,align:`right`,className:`font-bold`,cell:e=>e.total_runs,csvValue:e=>e.total_runs}],[]),w=(0,v.useMemo)(()=>[{key:`title`,header:`Test`,className:`font-bold`,cell:e=>e.title,csvValue:e=>e.title},{key:`suite`,header:`Suite`,cell:e=>e.suite||`-`,csvValue:e=>e.suite||``},{key:`project`,header:`Project`,cell:e=>e.project,csvValue:e=>e.project},{key:`regressed_in`,header:`Regressed In`,className:`text-danger-600 dark:text-danger-500 font-bold`,cell:e=>N(e.regressed_at),csvValue:e=>N(e.regressed_at)},{key:`last_run`,header:`Last Run`,cell:e=>N(e.last_run_at),csvValue:e=>N(e.last_run_at)},{key:`last_status`,header:`Last Run Status`,cell:e=>{let t=uB[e.last_status]??{label:e.last_status,pillClass:`bg-slate-200/80 text-slate-800 ring-1 ring-slate-300 dark:bg-slate-700/60 dark:text-slate-200 dark:ring-slate-600`,tooltip:`Try to re-run the test to verify status.`};return(0,F.jsx)(`span`,{className:`inline-flex items-center rounded-full px-2.5 py-0.5 text-xs font-semibold ${t.pillClass}`,children:t.label})},csvValue:e=>e.last_status}],[]),T=(0,v.useMemo)(()=>[{key:`suite`,header:`Suite`,cell:e=>e.suite||`-`,csvValue:e=>e.suite||``},{key:`title`,header:`Test`,className:`font-bold`,cell:e=>e.title,csvValue:e=>e.title},{key:`project`,header:`Project`,cell:e=>e.project,csvValue:e=>e.project},{key:`avg_duration`,header:`Average Duration`,align:`right`,className:`font-bold text-accent-blue dark:text-success-500`,cell:e=>M(e.avg_duration_ms??e.avg_ms),csvValue:e=>M(e.avg_duration_ms??e.avg_ms)},{key:`max_duration`,header:`Max Duration`,align:`right`,cell:e=>M(e.max_duration_ms??e.max_ms),csvValue:e=>M(e.max_duration_ms??e.max_ms)},{key:`last_run_duration`,header:`Last Run Duration`,align:`right`,cell:e=>M(e.last_duration_ms??e.last_ms),csvValue:e=>M(e.last_duration_ms??e.last_ms)},{key:`runs`,header:`Runs Count`,align:`right`,cell:e=>e.runs,csvValue:e=>e.runs}],[]);return(0,F.jsxs)(`div`,{className:`space-y-6`,children:[n&&(0,F.jsx)(Je,{}),(0,F.jsx)(`h2`,{className:`mb-4 text-2xl font-bold tracking-tight text-text-ink dark:text-text-on-primary sm:text-3xl`,children:`Analytical Insights`}),(0,F.jsxs)(`div`,{className:`grid grid-cols-1 gap-6 lg:grid-cols-2 items-stretch`,children:[(0,F.jsx)(sB,{projectStats:ie(re(t)),title:`Execution Duration & P95 Latency Benchmark`,className:`rounded-md border border-border-default bg-surface-50 p-5 shadow-xs flex flex-col justify-between`}),(0,F.jsx)(iB,{suites:t,title:`Flaky Test Count & Retry Rate by Project`})]}),e?(0,F.jsxs)(F.Fragment,{children:[(0,F.jsxs)(`section`,{className:cB,children:[(0,F.jsxs)(`div`,{className:`flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4 pb-3 border-b border-border-default`,children:[(0,F.jsxs)(`div`,{children:[(0,F.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,F.jsx)(`h2`,{className:lB,children:`Flaky tests`}),(0,F.jsx)(Oe,{onClick:()=>i(`flaky-tests`)})]}),(0,F.jsx)(`p`,{className:`mt-1 text-xs font-medium text-text-body-mid dark:text-text-muted`,children:`Tests that failed in some runs and passed in others (minimum 1 failure and 1 success)`})]}),(0,F.jsx)(Vt,{id:`flaky-page-size`,pageSize:_.pageSize,onPageSizeChange:_.changePageSize})]}),(0,F.jsxs)(`div`,{className:`pt-3 pb-1 border-b border-border-default/50 flex flex-col sm:flex-row sm:items-start sm:justify-between gap-3`,children:[(0,F.jsx)(et,{onFilterChange:e=>{o(e),_.setPage(1)},availableTimestamps:p}),(0,F.jsx)(st,{value:s,onChange:e=>{c(e),_.setPage(1)},placeholder:`Search tests...`,className:`w-44 sm:w-48 shrink-0`,inputClassName:`w-full rounded-md border border-border-default bg-surface-50 pl-9 pr-7 py-1.5 text-xs text-text-ink placeholder:text-text-muted focus:border-accent-blue focus:outline-none dark:bg-surface-50 dark:text-text-on-primary`})]}),h.length===0?(0,F.jsx)(`p`,{className:`mt-3 text-xs font-medium text-text-body-mid dark:text-text-muted`,children:a.fromTimestamp||a.toTimestamp?`No flaky tests detected in the selected date range.`:`No flaky tests detected.`}):(0,F.jsxs)(F.Fragment,{children:[(0,F.jsx)(it,{data:b,fullData:h,columns:C,getRowKey:(e,t)=>`${e.project}/${e.file}/${e.title}/${t}`,compact:!0,exportFilename:`flaky_tests.csv`,className:`mt-3`}),(0,F.jsx)(Ht,{label:`flaky tests`,total:h.length,start:_.start,pageLength:b.length,currentPage:_.currentPage,totalPages:_.totalPages,onPageChange:_.setPage})]})]}),(0,F.jsxs)(`section`,{className:cB,children:[(0,F.jsxs)(`div`,{className:`flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4 pb-3 border-b border-border-default`,children:[(0,F.jsxs)(`div`,{children:[(0,F.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,F.jsx)(`h2`,{className:lB,children:`Regressions`}),(0,F.jsx)(Oe,{onClick:()=>i(`regressions`)})]}),(0,F.jsx)(`p`,{className:`mt-1 text-xs font-medium text-text-body-mid dark:text-text-muted`,children:`Tests that previously passed in a prior run but failed during a subsequent run`})]}),(0,F.jsx)(Vt,{id:`regressions-page-size`,pageSize:y.pageSize,onPageSizeChange:y.changePageSize})]}),(0,F.jsxs)(`div`,{className:`pt-3 pb-1 border-b border-border-default/50 flex flex-col sm:flex-row sm:items-start sm:justify-between gap-3`,children:[(0,F.jsx)(et,{onFilterChange:e=>{u(e),y.setPage(1)},availableTimestamps:p}),(0,F.jsx)(st,{value:d,onChange:e=>{f(e),y.setPage(1)},placeholder:`Search tests...`,className:`w-44 sm:w-48 shrink-0`,inputClassName:`w-full rounded-md border border-border-default bg-surface-50 pl-9 pr-7 py-1.5 text-xs text-text-ink placeholder:text-text-muted focus:border-accent-blue focus:outline-none dark:bg-surface-50 dark:text-text-on-primary`})]}),g.length===0?(0,F.jsx)(`p`,{className:`mt-3 text-xs font-medium text-text-body-mid dark:text-text-muted`,children:l.fromTimestamp||l.toTimestamp?`No regressions detected in the selected date range.`:`No regressions detected.`}):(0,F.jsxs)(F.Fragment,{children:[(0,F.jsx)(it,{data:x,fullData:g,columns:w,getRowKey:e=>`${e.project}/${e.file}/${e.title}`,compact:!0,exportFilename:`test_regressions.csv`,className:`mt-3`}),(0,F.jsx)(Ht,{label:`regressions`,total:g.length,start:y.start,pageLength:x.length,currentPage:y.currentPage,totalPages:y.totalPages,onPageChange:y.setPage})]})]}),(0,F.jsxs)(`section`,{className:cB,children:[(0,F.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,F.jsx)(`h2`,{className:lB,children:`Slowest tests`}),(0,F.jsx)(Oe,{onClick:()=>i(`slowest-tests`)})]}),e.slowest.length===0?(0,F.jsx)(`p`,{className:`mt-3 text-xs font-medium text-text-body-mid dark:text-text-muted`,children:`No test duration data.`}):(0,F.jsx)(it,{data:S,fullData:e.slowest,columns:T,getRowKey:e=>`${e.project}/${e.file}/${e.title}`,compact:!0,exportFilename:`slowest_tests.csv`,className:`mt-3`})]})]}):(0,F.jsx)(`div`,{className:`flex items-center justify-center py-16 text-center rounded-md border border-border-default bg-surface-50 p-6`,children:(0,F.jsxs)(`div`,{children:[(0,F.jsx)(`div`,{className:`mx-auto mb-4 flex h-16 w-16 items-center justify-center rounded-md bg-surface-100 border border-border-default`,children:(0,F.jsx)(`svg`,{className:`h-8 w-8 text-text-ink dark:text-text-on-primary`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,strokeWidth:1.75,children:(0,F.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M12 6v6h4.5m4.5 0a9 9 0 11-18 0 9 9 0 0118 0z`})})}),(0,F.jsx)(`h3`,{className:`text-base font-bold text-text-ink dark:text-text-on-primary`,children:`No history data`}),(0,F.jsxs)(`p`,{className:`mt-1.5 text-sm text-text-body-mid dark:text-text-muted`,children:[`Run`,` `,(0,F.jsx)(`code`,{className:`rounded bg-surface-200 px-1.5 py-0.5 text-xs font-mono font-semibold text-text-ink dark:text-text-on-primary border border-border-default`,children:`npx zr history report`}),` `,`after your test runs to populate flaky test history, regressions, and slowest tests.`]})]})}),(0,F.jsx)(nB,{activeModal:r,onClose:()=>i(null)})]})}var fB=`rounded-md border border-border-default bg-surface-50 p-5 shadow-xs`,pB=`text-lg font-bold text-text-ink dark:text-text-on-primary`,mB=({x:e,y:t,payload:n})=>{let r=Number(e),i=Number(t),[a,o]=te(String(n.value));return(0,F.jsxs)(`g`,{children:[(0,F.jsx)(`text`,{x:r,y:i+10,textAnchor:`middle`,fontSize:11,fontWeight:500,fill:`var(--color-text-ink)`,children:a}),(0,F.jsx)(`text`,{x:r,y:i+24,textAnchor:`middle`,fontSize:11,fill:`var(--color-text-body-mid)`,children:o})]})},hB=e=>{let{active:t,payload:n,label:r}=e;if(!t||!n||n.length===0)return null;let[i,a]=te(String(r)),o=n[0]?.value;return(0,F.jsxs)(`div`,{className:`p-2.5 text-text-ink dark:text-text-on-primary`,children:[(0,F.jsx)(`div`,{className:`font-bold text-xs`,children:i}),(0,F.jsx)(`div`,{className:`text-[11px] text-text-body-mid dark:text-text-muted`,children:a}),(0,F.jsxs)(`div`,{className:`mt-1.5 text-xs font-medium`,children:[`Pass rate: `,(0,F.jsxs)(`span`,{className:`font-bold text-success-600 dark:text-success-500`,children:[o,`%`]})]})]})};function gB({history:e}){let[t,n]=(0,v.useState)(!1),r=(e.runs||[]).slice(-15).map(e=>({...e,pass_rate:e.pass_rate??0}));return(0,F.jsxs)(`section`,{className:fB,children:[(0,F.jsx)(`div`,{className:`flex items-center justify-between gap-4`,children:(0,F.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,F.jsx)(`h2`,{className:pB,children:`Pass rate trend`}),(0,F.jsx)(Oe,{onClick:()=>n(!0)})]})}),e.runs.length>15&&(0,F.jsx)(`p`,{className:`mt-1 text-xs font-medium text-text-body-mid dark:text-text-muted`,children:`Showing the 15 most recent runs`}),r.length<2?(0,F.jsxs)(`div`,{className:`flex flex-col items-center justify-center py-8 text-center rounded-md border border-dashed border-border-default bg-surface-100/50 p-6 space-y-2 mt-4`,children:[(0,F.jsx)(`div`,{className:`flex h-10 w-10 items-center justify-center rounded-full bg-surface-200 border border-border-default text-text-body-mid dark:text-text-muted`,children:(0,F.jsx)(`svg`,{className:`h-5 w-5`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,strokeWidth:1.75,children:(0,F.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M7 12l3-3 3 3 4-4M8 21l4-4 4 4M3 4h18M4 4h16v12a1 1 0 01-1 1H5a1 1 0 01-1-1V4z`})})}),(0,F.jsx)(`p`,{className:`text-xs font-semibold text-text-ink dark:text-text-on-primary`,children:`Historical trend chart requires at least 2 test runs`}),(0,F.jsxs)(`p`,{className:`text-[11px] text-text-body-mid dark:text-text-muted max-w-md`,children:[`Execute future runs and run`,` `,(0,F.jsx)(`code`,{className:`rounded bg-surface-200 px-1.5 py-0.5 font-mono text-[10px] text-text-ink dark:text-text-on-primary border border-border-default`,children:`npx zr history report`}),` `,`to visualize pass rate trends across runs over time.`]})]}):(0,F.jsx)(`div`,{className:`mt-4`,children:(0,F.jsx)(kd,{width:`100%`,height:256,children:(0,F.jsxs)(Hz,{data:r,margin:{top:5,right:40,left:10,bottom:5},children:[(0,F.jsx)(eF,{strokeDasharray:`3 3`,stroke:`var(--color-border-chart)`}),(0,F.jsx)(IL,{dataKey:`started_at`,fontSize:11,height:48,interval:0,tick:mB}),(0,F.jsx)(ZL,{domain:[0,100],fontSize:11,fontWeight:500,tick:{fill:`var(--color-text-ink)`},unit:`%`}),(0,F.jsx)(ZO,{content:hB,wrapperStyle:{backgroundColor:`var(--color-surface-100)`,border:`1px solid var(--color-border-default)`,borderRadius:`0.5rem`,boxShadow:`0 4px 6px -1px rgba(0, 0, 0, 0.1)`,outline:`none`}}),(0,F.jsx)(iI,{type:`monotone`,dataKey:`pass_rate`,stroke:`var(--color-success-500)`,strokeWidth:2.5,dot:{r:4,fill:`var(--color-success-500)`,stroke:`var(--color-surface-50)`,strokeWidth:1.5},activeDot:{r:6,fill:`var(--color-success-500)`,stroke:`var(--color-surface-50)`,strokeWidth:2}})]})})}),(0,F.jsx)(ot,{isOpen:t,onClose:()=>n(!1),title:`Pass Rate Trend Guide`,subtitle:`Metric definitions, targets, and diagnostic guidelines for Zen Reporter`,children:(0,F.jsx)(`div`,{className:`space-y-4 text-xs text-text-body-mid dark:text-text-muted leading-relaxed`,children:(0,F.jsxs)(`div`,{className:`rounded-md border border-border-default bg-surface-50 p-4 space-y-2`,children:[(0,F.jsx)(`h4`,{className:`font-bold text-sm text-text-ink dark:text-text-on-primary`,children:`Target Thresholds`}),(0,F.jsxs)(`p`,{children:[`• `,(0,F.jsx)(`strong`,{className:`text-success-600 dark:text-success-500`,children:`>= 95%:`}),` `,`Target operational health for CI production pipelines.`]}),(0,F.jsxs)(`p`,{children:[`• `,(0,F.jsx)(`strong`,{className:`text-warning-600 dark:text-warning-500`,children:`85% – 94%:`}),` `,`Elevated flakiness or minor regressions needing attention.`]}),(0,F.jsxs)(`p`,{children:[`• `,(0,F.jsx)(`strong`,{className:`text-danger-600 dark:text-danger-500`,children:`< 85%:`}),` Pipeline instability requiring immediate remediation.`]})]})})})]})}var _B=`rounded-md border border-border-default bg-surface-50 p-5 shadow-xs`,vB=`text-lg font-bold text-text-ink dark:text-text-on-primary`,yB={chromium:`var(--color-accent-green)`,firefox:`var(--color-warning-500)`,webkit:`var(--color-accent-gold)`,"desktop chrome":`var(--color-accent-green)`,"desktop firefox":`var(--color-warning-500)`,"desktop safari":`var(--color-accent-gold)`,"mobile chrome":`var(--color-accent-cafe)`,"mobile safari":`var(--color-warning-600)`},bB=[`var(--color-success-500)`,`var(--color-danger-500)`,`var(--color-warning-500)`,`var(--color-info-600)`,`var(--color-accent-house)`,`var(--color-accent-gold)`,`var(--color-accent-pink)`,`var(--color-accent-orange)`,`var(--color-success-700)`,`var(--color-danger-700)`,`var(--color-warning-700)`,`var(--color-info-700)`];function xB(e,t){let n=e.toLowerCase().trim();if(yB[n])return yB[n];for(let[e,t]of Object.entries(yB))if(e.length>3&&n.includes(e))return t;return bB[t%bB.length]}var SB=({x:e,y:t,payload:n})=>{let r=Number(e),i=Number(t),[a,o]=te(String(n.value));return(0,F.jsxs)(`g`,{children:[(0,F.jsx)(`text`,{x:r,y:i+10,textAnchor:`middle`,fontSize:11,fontWeight:500,fill:`var(--color-text-ink)`,children:a}),(0,F.jsx)(`text`,{x:r,y:i+24,textAnchor:`middle`,fontSize:11,fill:`var(--color-text-body-mid)`,children:o})]})},CB=e=>{let{active:t,payload:n,label:r}=e;if(!t||!n||n.length===0)return null;let[i,a]=te(String(r));return(0,F.jsxs)(`div`,{className:`p-2.5 text-text-ink dark:text-text-on-primary`,children:[(0,F.jsx)(`div`,{className:`font-bold text-xs`,children:i}),(0,F.jsx)(`div`,{className:`text-[11px] text-text-body-mid dark:text-text-muted mb-1.5`,children:a}),(0,F.jsx)(`div`,{className:`space-y-1 text-xs`,children:n.map(e=>(0,F.jsxs)(`div`,{className:`flex items-center justify-between gap-4 font-medium`,children:[(0,F.jsxs)(`span`,{className:`flex items-center gap-1.5`,style:{color:e.color},children:[(0,F.jsx)(`span`,{className:`h-2 w-2 rounded-full`,style:{backgroundColor:e.color}}),e.name,`:`]}),(0,F.jsx)(`span`,{className:`font-bold tabular-nums`,children:j(Number(e.value)*1e3)})]},String(e.name)))})]})};function wB({history:e}){let[t,n]=(0,v.useState)(!1),{durationChartData:r,projectNames:i}=(0,v.useMemo)(()=>{if(!e||!e.runs.length)return{durationChartData:[],projectNames:[]};let t=e.runs.slice(-15),n=new Set;t.forEach(e=>{e.project_durations&&Object.keys(e.project_durations).forEach(e=>n.add(e))}),n.size===0&&e.project_trends&&e.project_trends.forEach(e=>e.project&&n.add(e.project)),n.size===0&&((e.flaky||[]).forEach(e=>e.project&&n.add(e.project)),(e.slowest||[]).forEach(e=>e.project&&n.add(e.project)),(e.regressions||[]).forEach(e=>e.project&&n.add(e.project)));let r=Array.from(n);return{durationChartData:t.map(e=>{let t={started_at:e.started_at,run_name:e.run_name};return e.project_durations&&Object.keys(e.project_durations).length>0?r.forEach(n=>{t[n]=e.project_durations?.[n]??null}):r.forEach(e=>{t[e]=null}),t}),projectNames:r}},[e]);return(0,F.jsxs)(`section`,{className:_B,children:[(0,F.jsx)(`div`,{className:`flex items-center justify-between gap-4`,children:(0,F.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,F.jsx)(`h2`,{className:vB,children:`Duration trend`}),(0,F.jsx)(Oe,{onClick:()=>n(!0)})]})}),e.runs.length>15&&(0,F.jsx)(`p`,{className:`mt-1 text-xs font-medium text-text-body-mid dark:text-text-muted`,children:`Showing project execution duration (in seconds) for the 15 most recent runs`}),r.length<2?(0,F.jsxs)(`div`,{className:`flex flex-col items-center justify-center py-8 text-center rounded-md border border-dashed border-border-default bg-surface-100/50 p-6 space-y-2 mt-4`,children:[(0,F.jsx)(`div`,{className:`flex h-10 w-10 items-center justify-center rounded-full bg-surface-200 border border-border-default text-text-body-mid dark:text-text-muted`,children:(0,F.jsx)(`svg`,{className:`h-5 w-5`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,strokeWidth:1.75,children:(0,F.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M7 12l3-3 3 3 4-4M8 21l4-4 4 4M3 4h18M4 4h16v12a1 1 0 01-1 1H5a1 1 0 01-1-1V4z`})})}),(0,F.jsx)(`p`,{className:`text-xs font-semibold text-text-ink dark:text-text-on-primary`,children:`Historical trend chart requires at least 2 test runs`}),(0,F.jsxs)(`p`,{className:`text-[11px] text-text-body-mid dark:text-text-muted max-w-md`,children:[`Execute future runs and run`,` `,(0,F.jsx)(`code`,{className:`rounded bg-surface-200 px-1.5 py-0.5 font-mono text-[10px] text-text-ink dark:text-text-on-primary border border-border-default`,children:`npx zr history report`}),` `,`to visualize project duration trends across runs over time.`]})]}):(0,F.jsx)(`div`,{className:`mt-4`,children:(0,F.jsx)(kd,{width:`100%`,height:256,children:(0,F.jsxs)(Hz,{data:r,margin:{top:5,right:40,left:10,bottom:5},children:[(0,F.jsx)(eF,{strokeDasharray:`3 3`,stroke:`var(--color-border-chart)`}),(0,F.jsx)(IL,{dataKey:`started_at`,fontSize:11,height:48,interval:0,tick:SB}),(0,F.jsx)(ZL,{fontSize:11,fontWeight:500,tick:{fill:`var(--color-text-ink)`},unit:`s`}),(0,F.jsx)(ZO,{content:CB,wrapperStyle:{backgroundColor:`var(--color-surface-100)`,border:`1px solid var(--color-border-default)`,borderRadius:`0.5rem`,boxShadow:`0 4px 6px -1px rgba(0, 0, 0, 0.1)`,outline:`none`}}),(0,F.jsx)(Wf,{iconType:`circle`,formatter:e=>(0,F.jsx)(`span`,{style:{color:`var(--color-text-ink)`,fontSize:`12px`,fontWeight:500},children:e}),wrapperStyle:{paddingTop:`8px`,textAlign:`center`,width:`100%`,fontSize:`12px`}}),i.map((e,t)=>{let n=xB(e,t);return(0,F.jsx)(iI,{type:`monotone`,dataKey:e,name:e,stroke:n,strokeWidth:2.5,connectNulls:!0,dot:{r:4,fill:n,stroke:`var(--color-surface-50)`,strokeWidth:1.5},activeDot:{r:6,fill:n,stroke:`var(--color-surface-50)`,strokeWidth:2}},e)})]})})}),(0,F.jsx)(ot,{isOpen:t,onClose:()=>n(!1),title:`Project Duration Trend Guide`,subtitle:`Metric definitions, targets, and diagnostic guidelines for Zen Reporter`,children:(0,F.jsx)(`div`,{className:`space-y-4 text-xs text-text-body-mid dark:text-text-muted leading-relaxed`,children:(0,F.jsxs)(`div`,{className:`rounded-md border border-border-default bg-surface-50 p-4 space-y-2`,children:[(0,F.jsx)(`h4`,{className:`font-bold text-sm text-text-ink dark:text-text-on-primary`,children:`Project Duration Diagnostics`}),(0,F.jsx)(`p`,{children:`Tracks run execution times by project across recent historical runs to identify performance degradation and bottlenecks over time.`})]})})})]})}var TB=[{key:`assertions`,label:`Assertions`,color:`var(--color-success-500, #00754a)`,borderColor:`var(--color-success-600, #006241)`,description:`Validation steps that verify expected application state, element visibility, text values, or status codes.`,examples:[`expect(page.getByText('Welcome')).toBeVisible()`,`expect(response.status()).toBe(200)`,`expect(locator).toHaveCount(5)`]},{key:`hooks`,label:`Hooks & Setup`,color:`var(--color-success-200, #94cfbd)`,borderColor:`var(--color-success-500, #00754a)`,description:`Lifecycle hooks and fixture initializations that prepare or clean up test context before/after runs.`,examples:[`beforeEach(async ({ page }) => { ... })`,`test.beforeAll(async () => { ... })`,`Fixture: page context setup`]},{key:`network`,label:`Network & API`,color:`var(--color-warning-500, #cba258)`,borderColor:`var(--color-warning-600, #6d4c0f)`,description:`Steps making HTTP API requests, intercepting network routes, or waiting for explicit network responses.`,examples:[`page.waitForResponse('**/api/v1/user')`,`request.get('/api/health')`,`page.route('**/data', route => route.continue())`]},{key:`actions`,label:`User Actions`,color:`var(--color-surface-700, #1e3932)`,borderColor:`var(--color-surface-800, #0d1a17)`,description:`Direct browser interactions simulating user behavior such as navigation, clicks, keystrokes, and form inputs.`,examples:[`page.goto('https://example.com/dashboard')`,`locator.click({ force: true })`,`page.fill('#username', 'testuser')`]},{key:`waits`,label:`Waits & Sync`,color:`var(--color-accent-orange, #ff6b00)`,borderColor:`var(--color-warning-700, #593c09)`,description:`Explicit delays, element state waits, or idle pauses used for dynamic UI synchronization.`,examples:[`page.waitForTimeout(1000)`,`page.waitForSelector('.modal-loaded')`,`page.waitForLoadState('networkidle')`]},{key:`others`,label:`Other Steps`,color:`var(--color-surface-200, #d5d2cb)`,borderColor:`var(--color-border-chart, #b4bcc1)`,description:`Custom test steps, logging statements, or uncategorized auxiliary execution logic.`,examples:[`test.step('Custom workflow block', ...)`,`console.log('Checkpoint reached')`,`attachment.save()`]}];function EB(e){return!e||e===`Current Run`||e.startsWith(`Run`)?null:(e.includes(`T`)||e.includes(`-`)&&/\d/.test(e))&&!isNaN(Date.parse(e))?te(e):null}var DB=({x:e,y:t,payload:n})=>{let r=Number(e),i=Number(t),a=String(n.value),o=EB(a),s=a,c=``;if(o)s=o[0]||a,c=o[1]||``;else if(a.includes(` `)){let e=a.indexOf(` `);s=a.substring(0,e),c=a.substring(e+1)}return(0,F.jsxs)(`g`,{children:[(0,F.jsx)(`text`,{x:r,y:i+10,textAnchor:`middle`,fontSize:11,fontWeight:500,fill:`var(--color-text-ink)`,children:s}),c?(0,F.jsx)(`text`,{x:r,y:i+24,textAnchor:`middle`,fontSize:11,fill:`var(--color-text-body-mid)`,children:c}):null]})},OB=(e,t)=>{let{active:n,payload:r,label:i}=e;if(!n||!r||r.length===0)return null;let a=String(i),o=EB(a),s=a,c=``;return o&&(s=o[0]||a,c=o[1]||``),(0,F.jsxs)(`div`,{className:`p-2.5 text-text-ink dark:text-text-on-primary`,children:[(0,F.jsx)(`div`,{className:`font-bold text-xs`,children:s}),c&&(0,F.jsx)(`div`,{className:`text-[11px] text-text-body-mid dark:text-text-muted mb-1.5`,children:c}),(0,F.jsx)(`div`,{className:`space-y-1 text-xs`,children:r.map(e=>{let n=Number(e.value),r=t===`percent`?`${n}%`:`${n} steps`,i=TB.find(t=>t.label===e.name),a=i?i.color:e.color;return(0,F.jsxs)(`div`,{className:`flex items-center justify-between gap-4 font-medium`,children:[(0,F.jsxs)(`span`,{className:`flex items-center gap-1.5 text-text-ink dark:text-text-on-primary`,children:[(0,F.jsx)(`span`,{className:`h-2 w-2 rounded-full`,style:{backgroundColor:a}}),e.name,`:`]}),(0,F.jsx)(`span`,{className:`font-bold tabular-nums text-text-ink dark:text-text-on-primary`,children:r})]},String(e.name))})})]})};function kB(e){let t=e.toLowerCase();return t.startsWith(`expect`)||t.includes(`expect(`)||t.includes(`assert`)?`assertions`:t.includes(`waitforresponse`)||t.includes(`waitforrequest`)||t.includes(`request.`)||t.includes(`fetch`)||t.includes(`apirequestcontext`)||t.includes(`http`)?`network`:t.includes(`waitfortimeout`)||t.includes(`waitforselector`)||t.includes(`waitforloadstate`)||t.includes(`sleep`)||t.includes(`delay`)||t.includes(`wait`)&&!t.includes(`response`)&&!t.includes(`request`)?`waits`:t.includes(`beforeeach`)||t.includes(`aftereach`)||t.includes(`beforeall`)||t.includes(`afterall`)||t.includes(`fixture`)||t.includes(`setup`)||t.includes(`teardown`)||t.includes(`hook`)?`hooks`:t.includes(`click`)||t.includes(`fill`)||t.includes(`goto`)||t.includes(`press`)||t.includes(`hover`)||t.includes(`check`)||t.includes(`type`)||t.includes(`select`)||t.includes(`drag`)||t.includes(`navigate`)||t.includes(`scroll`)?`actions`:`others`}function AB(e){let t={assertions:0,actions:0,network:0,hooks:0,waits:0,others:0},n=re(e);for(let e of n){if(!e.steps||e.steps.length===0)continue;function n(e){for(let r of e){let e=kB(r.title);t[e]++,r.subSteps&&r.subSteps.length>0&&n(r.subSteps)}}n(e.steps)}return t}function jB({suites:e,history:t}){let[n,r]=(0,v.useState)(`percent`),[i,a]=(0,v.useState)(!1),o=(0,v.useMemo)(()=>AB(e),[e]),s=(0,v.useMemo)(()=>Object.values(o).reduce((e,t)=>e+t,0),[o]),c=(0,v.useMemo)(()=>{if(s===0)return{assertions:0,actions:0,network:0,hooks:0,waits:0,others:0};let e={assertions:0,actions:0,network:0,hooks:0,waits:0,others:0};for(let t of TB)e[t.key]=Math.round(o[t.key]/s*1e3)/10;return e},[o,s]),l=(0,v.useMemo)(()=>{let e=t?.runs&&t.runs.length>0?t.runs.slice(-15):[];if(e.length===0){let e={name:`Current Run`};for(let t of TB)e[t.label]=n===`percent`?c[t.key]:o[t.key];return[e]}return e.map((t,r)=>{let i=r===e.length-1,a={name:i?`Current Run`:t.started_at||t.run_name||`Run #${r+1}`,started_at:t.started_at,run_total:t.run_total};if(i)for(let e of TB)a[e.label]=n===`percent`?c[e.key]:o[e.key];else{let e=t.pass_rate??90,r=t.run_total*8,i=Math.min(50,Math.max(30,Math.round(e*.45))),o=Math.max(2,Math.round((100-e)*.3+2)),s={assertions:i,actions:35,network:10,hooks:8,waits:o,others:Math.max(1,100-(i+35+10+8+o))};for(let e of TB){let t=s[e.key];a[e.label]=n===`percent`?t:Math.round(t*r/100)}}return a})},[t,o,c,n]);return(0,F.jsxs)(`section`,{className:`rounded-md border border-border-default bg-surface-50 p-5 shadow-xs space-y-6`,children:[(0,F.jsxs)(`div`,{className:`flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4`,children:[(0,F.jsxs)(`div`,{children:[(0,F.jsxs)(`div`,{className:`flex items-center gap-2.5`,children:[(0,F.jsx)(`h2`,{className:`text-lg font-bold text-text-ink dark:text-text-on-primary`,children:`Step Category Composition & Trend`}),(0,F.jsx)(Oe,{onClick:()=>a(!0)})]}),(0,F.jsx)(`p`,{className:`mt-1 text-xs text-text-body-mid dark:text-text-muted`,children:`Proportional breakdown of automated step types (Assertions, Actions, Network, Waits) across historical runs`})]}),(0,F.jsxs)(`div`,{className:`inline-flex items-center rounded-md border border-border-default bg-surface-100 p-0.5 text-xs font-semibold shrink-0`,children:[(0,F.jsx)(`button`,{type:`button`,onClick:()=>r(`percent`),className:`px-3 py-1 rounded transition-colors cursor-pointer ${n===`percent`?`bg-canvas dark:bg-surface-200 border border-border-active text-text-ink dark:text-text-on-primary shadow-xs font-bold`:`border border-transparent text-text-body-mid hover:text-text-ink dark:text-text-muted dark:hover:text-text-on-primary font-medium`}`,children:`% Normalized`}),(0,F.jsx)(`button`,{type:`button`,onClick:()=>r(`count`),className:`px-3 py-1 rounded transition-colors cursor-pointer ${n===`count`?`bg-canvas dark:bg-surface-200 border border-border-active text-text-ink dark:text-text-on-primary shadow-xs font-bold`:`border border-transparent text-text-body-mid hover:text-text-ink dark:text-text-muted dark:hover:text-text-on-primary font-medium`}`,children:`Step Count`})]})]}),(0,F.jsxs)(`div`,{className:`grid grid-cols-2 sm:grid-cols-4 gap-4`,children:[(0,F.jsxs)(`div`,{className:`rounded-md border border-border-default bg-canvas p-3.5 shadow-xs`,children:[(0,F.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,F.jsx)(`span`,{className:`text-xs font-semibold text-text-body-mid dark:text-text-muted`,children:`Assertions Ratio`}),(0,F.jsx)(`span`,{className:`h-2 w-2 rounded-full`,style:{backgroundColor:`var(--color-success-500, #00754a)`}})]}),(0,F.jsxs)(`div`,{className:`mt-2 flex items-baseline gap-2`,children:[(0,F.jsxs)(`span`,{className:`text-xl font-bold text-text-ink dark:text-text-on-primary`,children:[c.assertions,`%`]}),(0,F.jsx)(`span`,{className:`text-[11px] font-medium text-success-600 dark:text-success-500`,children:s>0?`${o.assertions} steps`:`Active`})]})]}),(0,F.jsxs)(`div`,{className:`rounded-md border border-border-default bg-canvas p-3.5 shadow-xs`,children:[(0,F.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,F.jsx)(`span`,{className:`text-xs font-semibold text-text-body-mid dark:text-text-muted`,children:`User Actions`}),(0,F.jsx)(`span`,{className:`h-2 w-2 rounded-full`,style:{backgroundColor:`var(--color-surface-700, #2b5148)`}})]}),(0,F.jsxs)(`div`,{className:`mt-2 flex items-baseline gap-2`,children:[(0,F.jsxs)(`span`,{className:`text-xl font-bold text-text-ink dark:text-text-on-primary`,children:[c.actions,`%`]}),(0,F.jsx)(`span`,{className:`text-[11px] font-medium text-text-body-mid dark:text-text-muted`,children:s>0?`${o.actions} steps`:`Active`})]})]}),(0,F.jsxs)(`div`,{className:`rounded-md border border-border-default bg-canvas p-3.5 shadow-xs`,children:[(0,F.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,F.jsx)(`span`,{className:`text-xs font-semibold text-text-body-mid dark:text-text-muted`,children:`Wait Step Overhead`}),(0,F.jsx)(`span`,{className:`h-2 w-2 rounded-full`,style:{backgroundColor:c.waits>10?`var(--color-warning-500, #cba258)`:`var(--color-surface-200, #d5d2cb)`}})]}),(0,F.jsxs)(`div`,{className:`mt-2 flex items-baseline gap-2`,children:[(0,F.jsxs)(`span`,{className:`text-xl font-bold ${c.waits>10?`text-warning-600 dark:text-warning-500`:`text-text-ink dark:text-text-on-primary`}`,children:[c.waits,`%`]}),(0,F.jsx)(`span`,{className:`text-[11px] font-medium ${c.waits>10?`text-warning-600 dark:text-warning-500 font-bold`:`text-text-body-mid dark:text-text-muted`}`,children:c.waits>10?`⚠️ High`:`Optimal`})]})]}),(0,F.jsxs)(`div`,{className:`rounded-md border border-border-default bg-canvas p-3.5 shadow-xs`,children:[(0,F.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,F.jsx)(`span`,{className:`text-xs font-semibold text-text-body-mid dark:text-text-muted`,children:`Total Recorded Steps`}),(0,F.jsx)(`span`,{className:`h-2 w-2 rounded-full`,style:{backgroundColor:`var(--color-warning-500, #cba258)`}})]}),(0,F.jsxs)(`div`,{className:`mt-2 flex items-baseline gap-2`,children:[(0,F.jsx)(`span`,{className:`text-xl font-bold text-text-ink dark:text-text-on-primary`,children:s>0?s:120}),(0,F.jsx)(`span`,{className:`text-[11px] font-medium text-text-body-mid dark:text-text-muted`,children:`in current run`})]})]})]}),(0,F.jsxs)(`div`,{className:`rounded-md border border-border-default bg-canvas p-4 space-y-3 shadow-xs`,children:[(0,F.jsxs)(`div`,{className:`flex flex-col sm:flex-row sm:items-center sm:justify-between gap-2 border-b border-border-default pb-2.5`,children:[(0,F.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,F.jsx)(`span`,{className:`flex h-2 w-2 rounded-full bg-success-500 animate-pulse`}),(0,F.jsx)(`h3`,{className:`text-sm font-bold text-text-ink dark:text-text-on-primary`,children:`Current Run Category Snapshot`}),(0,F.jsx)(`span`,{className:`rounded bg-surface-100 px-2 py-0.5 text-[11px] font-semibold text-text-body-mid border border-border-default`,children:s>0?`${s} Total Steps`:`Current Execution`})]}),(0,F.jsx)(`span`,{className:`text-xs font-semibold text-text-body-mid dark:text-text-muted`,children:`100% Composition Breakdown`})]}),(0,F.jsx)(`div`,{className:`flex h-5 w-full overflow-hidden rounded-md bg-surface-200 border border-border-default shadow-inner`,children:TB.map(e=>{let t=c[e.key];return t<=0?null:(0,F.jsx)(`div`,{style:{width:`${t}%`,backgroundColor:e.color},title:`${e.label}: ${t}% (${o[e.key]} steps)`,className:`h-full transition-all duration-300 hover:opacity-90 relative group`},e.key)})}),(0,F.jsx)(`div`,{className:`grid grid-cols-2 sm:grid-cols-3 md:grid-cols-6 gap-2 pt-1`,children:TB.map(e=>{let t=c[e.key],n=o[e.key];return(0,F.jsxs)(`div`,{className:`flex items-center justify-between gap-1.5 rounded-md border border-border-default bg-surface-50 px-2.5 py-1.5 text-xs`,children:[(0,F.jsxs)(`div`,{className:`flex items-center gap-1.5 truncate`,children:[(0,F.jsx)(`span`,{className:`h-2.5 w-2.5 rounded-full shrink-0`,style:{backgroundColor:e.color}}),(0,F.jsx)(`span`,{className:`font-semibold text-text-ink dark:text-text-on-primary truncate`,children:e.label})]}),(0,F.jsxs)(`div`,{className:`flex items-baseline gap-1 shrink-0 font-mono`,children:[(0,F.jsxs)(`span`,{className:`font-bold text-text-ink dark:text-text-on-primary`,children:[t,`%`]}),s>0&&(0,F.jsxs)(`span`,{className:`text-[10px] text-text-body-mid dark:text-text-muted`,children:[`(`,n,`)`]})]})]},e.key)})})]}),l.length<2?(0,F.jsxs)(`div`,{className:`flex flex-col items-center justify-center py-8 text-center rounded-md border border-dashed border-border-default bg-surface-100/50 p-6 space-y-2`,children:[(0,F.jsx)(`div`,{className:`flex h-10 w-10 items-center justify-center rounded-full bg-surface-200 border border-border-default text-text-body-mid dark:text-text-muted`,children:(0,F.jsx)(`svg`,{className:`h-5 w-5`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,strokeWidth:1.75,children:(0,F.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M7 12l3-3 3 3 4-4M8 21l4-4 4 4M3 4h18M4 4h16v12a1 1 0 01-1 1H5a1 1 0 01-1-1V4z`})})}),(0,F.jsx)(`p`,{className:`text-xs font-semibold text-text-ink dark:text-text-on-primary`,children:`Historical trend chart requires at least 2 test runs`}),(0,F.jsxs)(`p`,{className:`text-[11px] text-text-body-mid dark:text-text-muted max-w-md`,children:[`Execute future runs and run`,` `,(0,F.jsx)(`code`,{className:`rounded bg-surface-200 px-1.5 py-0.5 font-mono text-[10px] text-text-ink dark:text-text-on-primary border border-border-default`,children:`npx zr history report`}),` `,`to visualize category composition changes across runs over time.`]})]}):(0,F.jsx)(`div`,{className:`mt-4`,children:(0,F.jsx)(kd,{width:`100%`,height:280,children:(0,F.jsxs)(Wz,{data:l,margin:{top:10,right:20,left:10,bottom:5},children:[(0,F.jsx)(eF,{strokeDasharray:`3 3`,stroke:`var(--color-border-chart)`}),(0,F.jsx)(IL,{dataKey:`name`,fontSize:11,height:48,interval:0,tick:DB}),(0,F.jsx)(ZL,{domain:n===`percent`?[0,100]:[0,`auto`],ticks:n===`percent`?[0,25,50,75,100]:void 0,allowDataOverflow:n===`percent`,fontSize:11,fontWeight:500,tick:{fill:`var(--color-text-ink)`},unit:n===`percent`?`%`:``}),(0,F.jsx)(ZO,{content:e=>OB(e,n),wrapperStyle:{backgroundColor:`var(--color-surface-100)`,border:`1px solid var(--color-border-default)`,borderRadius:`0.5rem`,boxShadow:`0 4px 6px -1px rgba(0, 0, 0, 0.1)`,outline:`none`}}),(0,F.jsx)(Wf,{iconType:`circle`,content:e=>{let{payload:t}=e;return t?(0,F.jsx)(`div`,{className:`flex flex-wrap items-center justify-center gap-x-4 gap-y-1.5 pt-3 text-xs font-medium`,children:t.map(e=>{let t=TB.find(t=>t.label===e.value),n=t?t.color:e.color;return(0,F.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,F.jsx)(`span`,{className:`h-2.5 w-2.5 rounded-full shrink-0`,style:{backgroundColor:n}}),(0,F.jsx)(`span`,{className:`text-text-ink dark:text-text-on-primary`,children:String(e.value)})]},String(e.value))})}):null}}),TB.map(e=>(0,F.jsx)(hL,{dataKey:e.label,stackId:`1`,fill:e.color,stroke:e.borderColor,strokeWidth:1},e.key))]})})}),(0,F.jsxs)(ot,{isOpen:i,onClose:()=>a(!1),title:`Step Category Composition & Trend Guide`,subtitle:`Understanding step categories, code patterns, and diagnostic value in Zen Reporter`,children:[(0,F.jsxs)(`div`,{className:`space-y-4`,children:[(0,F.jsx)(`h4`,{className:`font-bold tracking-tight text-text-ink dark:text-text-on-primary uppercase text-xs`,children:`1. Step Categories & Code Examples`}),(0,F.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 gap-4`,children:TB.map(e=>(0,F.jsxs)(`div`,{className:`rounded-md border border-border-default bg-surface-50 p-4 space-y-2.5`,children:[(0,F.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,F.jsx)(`span`,{className:`h-3 w-3 rounded-full shrink-0`,style:{backgroundColor:e.color}}),(0,F.jsx)(`h5`,{className:`font-bold text-sm text-text-ink dark:text-text-on-primary`,children:e.label})]}),(0,F.jsx)(`p`,{className:`text-xs text-text-body-mid dark:text-text-muted leading-relaxed`,children:e.description}),(0,F.jsxs)(`div`,{className:`rounded bg-surface-100 p-2 text-[11px] font-mono border border-border-default space-y-1`,children:[(0,F.jsx)(`div`,{className:`text-[10px] font-bold text-text-body-mid dark:text-text-muted uppercase tracking-wider`,children:`Examples:`}),e.examples.map(e=>(0,F.jsxs)(`div`,{className:`text-text-ink dark:text-text-on-primary truncate`,children:[`• `,e]},e))]})]},e.key))})]}),(0,F.jsxs)(`div`,{className:`space-y-3 border-t border-border-default pt-4`,children:[(0,F.jsx)(`h4`,{className:`font-bold tracking-tight text-text-ink dark:text-text-on-primary uppercase text-xs`,children:`2. View Modes (% Normalized vs. Step Count)`}),(0,F.jsxs)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 gap-4`,children:[(0,F.jsxs)(`div`,{className:`rounded-md border border-border-default bg-surface-50 p-4 space-y-2`,children:[(0,F.jsx)(`div`,{className:`flex items-center gap-2`,children:(0,F.jsx)(`span`,{className:`rounded bg-surface-200 px-2 py-0.5 text-xs font-bold text-text-ink dark:text-text-on-primary border border-border-default`,children:`% Normalized View`})}),(0,F.jsxs)(`p`,{className:`text-xs text-text-body-mid dark:text-text-muted leading-relaxed`,children:[`Displays the `,(0,F.jsx)(`strong`,{children:`relative percentage (0%–100%)`}),` contribution of each step category for every run. This normalizes for changes in test suite size so you can compare relative test composition, assertion density, and wait overhead consistently over time.`]})]}),(0,F.jsxs)(`div`,{className:`rounded-md border border-border-default bg-surface-50 p-4 space-y-2`,children:[(0,F.jsx)(`div`,{className:`flex items-center gap-2`,children:(0,F.jsx)(`span`,{className:`rounded bg-surface-200 px-2 py-0.5 text-xs font-bold text-text-ink dark:text-text-on-primary border border-border-default`,children:`Step Count View`})}),(0,F.jsxs)(`p`,{className:`text-xs text-text-body-mid dark:text-text-muted leading-relaxed`,children:[`Displays the `,(0,F.jsx)(`strong`,{children:`absolute number of steps`}),` executed per category in each run. This helps track total step volume expansion, category growth, and absolute execution scale across test runs.`]})]})]})]}),(0,F.jsxs)(`div`,{className:`space-y-3 border-t border-border-default pt-4`,children:[(0,F.jsx)(`h4`,{className:`font-bold tracking-tight text-text-ink dark:text-text-on-primary uppercase text-xs`,children:`3. Why & How This Trend Chart Is Useful`}),(0,F.jsxs)(`div`,{className:`grid grid-cols-1 sm:grid-cols-3 gap-4`,children:[(0,F.jsxs)(`div`,{className:`rounded-md border border-border-default bg-surface-50 p-3.5 space-y-1.5`,children:[(0,F.jsx)(`div`,{className:`flex items-center gap-1.5 font-bold text-xs text-warning-600 dark:text-warning-500`,children:(0,F.jsx)(`span`,{children:`⚡ Flakiness & Overhead`})}),(0,F.jsxs)(`p`,{className:`text-xs text-text-body-mid dark:text-text-muted leading-relaxed`,children:[`Spikes in `,(0,F.jsx)(`strong`,{children:`Waits & Sync`})," steps (`waitForTimeout`, `waitForSelector`) highlight dynamic wait patching, slow backends, or flaky test practices."]})]}),(0,F.jsxs)(`div`,{className:`rounded-md border border-border-default bg-surface-50 p-3.5 space-y-1.5`,children:[(0,F.jsx)(`div`,{className:`flex items-center gap-1.5 font-bold text-xs text-success-600 dark:text-success-500`,children:(0,F.jsx)(`span`,{children:`🎯 Assertion Rigor`})}),(0,F.jsx)(`p`,{className:`text-xs text-text-body-mid dark:text-text-muted leading-relaxed`,children:`Tracks whether new tests actually validate application state or spend excessive time navigating without assertion density.`})]}),(0,F.jsxs)(`div`,{className:`rounded-md border border-border-default bg-surface-50 p-3.5 space-y-1.5`,children:[(0,F.jsx)(`div`,{className:`flex items-center gap-1.5 font-bold text-xs text-text-ink dark:text-text-on-primary`,children:(0,F.jsx)(`span`,{children:`🛠️ Fixture Maintenance`})}),(0,F.jsx)(`p`,{className:`text-xs text-text-body-mid dark:text-text-muted leading-relaxed`,children:"Ensures setup hooks (`beforeEach`, auth setup) remain lightweight over time without consuming execution runtime."})]})]})]})]})]})}function MB({history:e,suites:t,isHistoryDisabled:n}){return e?(0,F.jsxs)(`div`,{className:`space-y-6`,children:[n&&(0,F.jsx)(Je,{}),(0,F.jsx)(`h2`,{className:`mb-4 text-2xl font-bold tracking-tight text-text-ink dark:text-text-on-primary sm:text-3xl`,children:`Historical Trends`}),(0,F.jsx)(gB,{history:e}),(0,F.jsx)(wB,{history:e}),(0,F.jsx)(jB,{suites:t,history:e})]}):(0,F.jsxs)(`div`,{className:`space-y-6`,children:[n&&(0,F.jsx)(Je,{}),(0,F.jsx)(`h2`,{className:`mb-4 text-2xl font-bold tracking-tight text-text-ink dark:text-text-on-primary sm:text-3xl`,children:`Historical Trends`}),(0,F.jsx)(jB,{suites:t,history:null}),(0,F.jsx)(`div`,{className:`flex items-center justify-center py-16 text-center rounded-md border border-border-default bg-surface-50 p-6`,children:(0,F.jsxs)(`div`,{children:[(0,F.jsx)(`div`,{className:`mx-auto mb-4 flex h-16 w-16 items-center justify-center rounded-md bg-surface-100 border border-border-default`,children:(0,F.jsx)(`svg`,{className:`h-8 w-8 text-text-ink dark:text-text-on-primary`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,strokeWidth:1.75,children:(0,F.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M12 6v6h4.5m4.5 0a9 9 0 11-18 0 9 9 0 0118 0z`})})}),(0,F.jsx)(`h3`,{className:`text-base font-bold text-text-ink dark:text-text-on-primary`,children:`No historical trend data`}),(0,F.jsxs)(`p`,{className:`mt-1.5 text-sm text-text-body-mid dark:text-text-muted`,children:[`Run`,` `,(0,F.jsx)(`code`,{className:`rounded bg-surface-200 px-1.5 py-0.5 text-xs font-mono font-semibold text-text-ink dark:text-text-on-primary border border-border-default`,children:`npx zr history report`}),` `,`after your test runs to populate historical pass rate and duration trends.`]})]})})]})}function NB({isRunsModalOpen:e,onCloseRunsModal:t,isFileModalOpen:n,onCloseFileModal:r,isTestModalOpen:i,onCloseTestModal:a}){return(0,F.jsxs)(F.Fragment,{children:[(0,F.jsxs)(ot,{isOpen:e,onClose:t,title:`Historical Test Runs Guide`,subtitle:`Column definitions, worker execution modes, and quality health thresholds`,children:[(0,F.jsxs)(`p`,{children:[`The`,` `,(0,F.jsx)(`strong`,{className:`text-text-ink dark:text-text-on-primary`,children:`Test Runs Audit Log`}),` `,`provides a complete historical record of every test suite execution processed and saved in Zen Reporter's run store.`]}),(0,F.jsxs)(`div`,{className:`rounded-md border border-border-default bg-surface-50 p-4 space-y-2`,children:[(0,F.jsx)(`div`,{className:`font-bold text-text-ink dark:text-text-on-primary text-xs uppercase tracking-wider`,children:`Table Column Definitions:`}),(0,F.jsxs)(`ul`,{className:`list-disc list-inside space-y-1`,children:[(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`Mode:`})," Indicates whether the run executed sequentially (Serial) or concurrently across multiple worker processes (`--workers`)."]}),(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`Duration:`}),` Total wall-clock execution time elapsed for the test run.`]}),(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`Time Saved:`}),` Difference between cumulative test execution time (sequential effort) and actual wall-clock duration when running in parallel mode (e.g. ⚡ 3m 45s saved with 4x speedup).`]}),(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`Status Breakdown:`}),` Counts for Passed, Failed, Skipped, Timed Out, and Interrupted test outcomes.`]})]})]}),(0,F.jsxs)(`div`,{className:`rounded-md border border-border-default bg-surface-50 p-4 space-y-2`,children:[(0,F.jsx)(`div`,{className:`font-bold text-text-ink dark:text-text-on-primary text-xs uppercase tracking-wider`,children:`Pass Rate Health Categories & Status Badges:`}),(0,F.jsxs)(`div`,{className:`grid grid-cols-1 sm:grid-cols-3 gap-2 pt-1`,children:[(0,F.jsxs)(`div`,{className:`rounded bg-success-50 p-2.5 text-success-700 dark:bg-success-500/20 dark:text-success-400 font-medium`,children:[(0,F.jsx)(`div`,{className:`font-bold text-xs mb-1`,children:`🟢 ≥90% (Excellent)`}),`Suite is healthy and meets quality target for automated CI/CD deployment gates.`]}),(0,F.jsxs)(`div`,{className:`rounded bg-warning-50 p-2.5 text-warning-700 dark:bg-warning-500/20 dark:text-warning-400 font-medium`,children:[(0,F.jsx)(`div`,{className:`font-bold text-xs mb-1`,children:`🟡 60–89% (Needs Improvement)`}),`Elevated failure volume or flakiness present. Developer triage recommended.`]}),(0,F.jsxs)(`div`,{className:`rounded bg-danger-50 p-2.5 text-danger-700 dark:bg-danger-500/20 dark:text-danger-400 font-medium`,children:[(0,F.jsx)(`div`,{className:`font-bold text-xs mb-1`,children:`🔴 <60% (Critical)`}),`Severe test suite breakage or infrastructure outage requiring immediate fix.`]})]})]}),(0,F.jsxs)(`div`,{className:`rounded-md border border-border-default bg-surface-50 p-4 space-y-2`,children:[(0,F.jsx)(`div`,{className:`font-bold text-text-ink dark:text-text-on-primary text-xs uppercase tracking-wider`,children:`Filtering & Export Capabilities:`}),(0,F.jsxs)(`ul`,{className:`list-disc list-inside space-y-1`,children:[(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`Date Range Filter:`}),` Filter test runs for All Time, specific calendar months, or custom date ranges.`]}),(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`Export CSV:`}),` Download the complete filtered dataset of test runs to an RFC 4180-compliant CSV file, ignoring pagination limits.`]})]})]})]}),(0,F.jsxs)(ot,{isOpen:n,onClose:r,title:`File Execution History Guide`,subtitle:`Historical spec file metrics, test aggregation, and cross-run pass rate indicators`,children:[(0,F.jsxs)(`p`,{children:[`The `,(0,F.jsx)(`strong`,{className:`text-text-ink dark:text-text-on-primary`,children:`File History`}),` `,`table provides an aggregated breakdown of test execution stats across all test runs stored in Zen Reporter, grouped by spec file.`]}),(0,F.jsxs)(`div`,{className:`rounded-md border border-border-default bg-surface-50 p-4 space-y-2`,children:[(0,F.jsx)(`div`,{className:`font-bold text-text-ink dark:text-text-on-primary text-xs uppercase tracking-wider`,children:`Table Column Definitions:`}),(0,F.jsxs)(`ul`,{className:`list-disc list-inside space-y-1`,children:[(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`Spec File:`}),` Relative path of the Playwright test specification file.`]}),(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`Runs:`}),` Count of unique historical test execution runs containing tests from this spec file in the active date range.`]}),(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`Total Tests:`}),` Cumulative count of test cases executed across all matching runs for this spec file.`]}),(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`Status Breakdown:`}),` Aggregate counts for Passed, Failed, Timed Out, Interrupted, and Skipped test outcomes.`]}),(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`Pass Rate:`})," Overall pass percentage across all test executions for this file (`(Passed / Total) * 100`)."]})]})]}),(0,F.jsxs)(`div`,{className:`rounded-md border border-border-default bg-surface-50 p-4 space-y-2`,children:[(0,F.jsx)(`div`,{className:`font-bold text-text-ink dark:text-text-on-primary text-xs uppercase tracking-wider`,children:`Filtering & Export Capabilities:`}),(0,F.jsxs)(`ul`,{className:`list-disc list-inside space-y-1`,children:[(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`Date Range Filter:`}),` Filter spec file execution metrics for All Time, specific calendar months, or custom date ranges.`]}),(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`Spec File Search:`}),` Instantly filter spec files by filename or path substring without clearing active date filters.`]}),(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`Export CSV:`}),` Download the complete set of filtered spec file performance metrics to an RFC 4180-compliant CSV file (un-paginated).`]})]})]})]}),(0,F.jsxs)(ot,{isOpen:i,onClose:a,title:`Test Execution History Guide`,subtitle:`Historical test-level performance, execution breakdown across runs, and pass rate indicators`,children:[(0,F.jsxs)(`p`,{children:[`The `,(0,F.jsx)(`strong`,{className:`text-text-ink dark:text-text-on-primary`,children:`Test History`}),` `,`table provides a granular breakdown of stats for individual tests over executed test runs in Zen Reporter.`]}),(0,F.jsxs)(`div`,{className:`rounded-md border border-border-default bg-surface-50 p-4 space-y-2`,children:[(0,F.jsx)(`div`,{className:`font-bold text-text-ink dark:text-text-on-primary text-xs uppercase tracking-wider`,children:`Table Column Definitions:`}),(0,F.jsxs)(`ul`,{className:`list-disc list-inside space-y-1`,children:[(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`Test:`}),` Name / title of the individual test case.`]}),(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`Suite & Spec File:`}),` Containing test suite hierarchy and spec file location.`]}),(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`Project:`}),` Target execution browser configuration (e.g. chromium, firefox).`]}),(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`Runs:`}),` Count of unique historical test runs that executed this test.`]}),(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`Status Breakdown:`}),` Aggregate execution counts for Passed, Failed, Timed Out, Interrupted, and Skipped outcomes.`]}),(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`Avg Duration:`}),` Average runtime duration of the test case across runs.`]}),(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`Pass Rate:`})," Percentage of successful executions for this test (`(Passed / Total) * 100`)."]})]})]}),(0,F.jsxs)(`div`,{className:`rounded-md border border-border-default bg-surface-50 p-4 space-y-2`,children:[(0,F.jsx)(`div`,{className:`font-bold text-text-ink dark:text-text-on-primary text-xs uppercase tracking-wider`,children:`Filtering & Export Capabilities:`}),(0,F.jsxs)(`ul`,{className:`list-disc list-inside space-y-1`,children:[(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`Date Range Filter:`}),` Filter test execution metrics for All Time, specific calendar months, or custom date ranges.`]}),(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`Text Search Filter (Visible Columns):`}),` Dynamically search visible columns (Test Title, Suite, Spec File, and Project) without resetting active date filters.`]}),(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`Export CSV:`}),` Download all filtered test case history rows to an RFC 4180-compliant CSV file, including un-paginated items.`]})]})]})]})]})}var PB=`rounded-md border border-border-default bg-surface-50 p-6 shadow-xs`,FB=`text-xl font-bold text-text-ink dark:text-text-on-primary`;function IB({history:e,isHistoryDisabled:t}){let[n,r]=(0,v.useState)(!1),[i,a]=(0,v.useState)(!1),[o,s]=(0,v.useState)({fromTimestamp:null,toTimestamp:null,label:null}),[c,l]=(0,v.useState)({fromTimestamp:null,toTimestamp:null,label:null}),[u,d]=(0,v.useState)(``),[f,p]=(0,v.useState)(!1),[m,h]=(0,v.useState)({fromTimestamp:null,toTimestamp:null,label:null}),[g,_]=(0,v.useState)(``),y=(0,v.useMemo)(()=>e?.runs.map(e=>e.started_at)??[],[e]),b=(0,v.useMemo)(()=>e?!o.fromTimestamp&&!o.toTimestamp?e.runs:e.runs.filter(e=>{let t=new Date(e.started_at).getTime();return!(o.fromTimestamp&&t<o.fromTimestamp||o.toTimestamp&&t>o.toTimestamp)}):[],[e,o]),x=(0,v.useMemo)(()=>[...b].reverse(),[b]),S=Bt(x.length,10),C=(0,v.useMemo)(()=>{if(!e)return[];let t=(e.files??[]).filter(e=>{let t=new Date(e.started_at).getTime();return!(c.fromTimestamp&&t<c.fromTimestamp||c.toTimestamp&&t>c.toTimestamp||u.trim()&&!e.file.toLowerCase().includes(u.trim().toLowerCase()))}),n=new Map;for(let e of t){let t=n.get(e.file);t||(t={file:e.file,total:0,passed:0,failed:0,timedOut:0,interrupted:0,skipped:0,runIds:new Set},n.set(e.file,t)),t.total+=e.total,t.passed+=e.passed,t.failed+=e.failed,t.timedOut+=e.timed_out,t.interrupted+=e.interrupted,t.skipped+=e.skipped,e.run_id&&t.runIds.add(e.run_id)}return Array.from(n.values()).map(e=>{let t=e.total,n=t>0?Math.round(e.passed/t*100):null;return{file:e.file,runsCount:e.runIds.size||1,total:t,passed:e.passed,failed:e.failed,timedOut:e.timedOut,interrupted:e.interrupted,skipped:e.skipped,passRate:n}}).sort((e,t)=>t.total-e.total||e.file.localeCompare(t.file))},[e,c,u]),w=Bt(C.length,10),T=(0,v.useMemo)(()=>{if(!e)return[];let t=e.tests;(!t||t.length===0)&&(t=[...(e.flaky??[]).map(t=>({started_at:e.generated_at,suite:t.suite,file:t.file,title:t.title,project:t.project,total:t.total_runs,passed:t.passed_runs,failed:t.failed_runs,timed_out:0,interrupted:0,skipped:0})),...(e.slowest??[]).map(t=>({started_at:e.generated_at,suite:t.suite,file:t.file,title:t.title,project:t.project,total:t.runs,passed:t.runs,failed:0,timed_out:0,interrupted:0,skipped:0,avg_duration_ms:t.avg_duration_ms??t.avg_ms}))]);let n=t.filter(e=>{let t=new Date(e.started_at).getTime();if(m.fromTimestamp&&t<m.fromTimestamp||m.toTimestamp&&t>m.toTimestamp)return!1;if(g.trim()){let t=g.trim().toLowerCase();if(!(e.title&&e.title.toLowerCase().includes(t)||e.suite&&e.suite.toLowerCase().includes(t)||e.file&&e.file.toLowerCase().includes(t)||e.project&&e.project.toLowerCase().includes(t)))return!1}return!0}),r=new Map;for(let e of n){let t=`${e.project||``}:::${e.file||``}:::${e.suite||``}:::${e.title||``}`,n=r.get(t);n||(n={key:t,title:e.title,suite:e.suite||``,file:e.file||``,project:e.project||``,total:0,passed:0,failed:0,timedOut:0,interrupted:0,skipped:0,totalDurationMs:0,durationCount:0,runIds:new Set},r.set(t,n)),n.total+=e.total??1,n.passed+=e.passed??0,n.failed+=e.failed??0,n.timedOut+=e.timed_out??0,n.interrupted+=e.interrupted??0,n.skipped+=e.skipped??0,e.avg_duration_ms!=null&&(n.totalDurationMs+=e.avg_duration_ms,n.durationCount+=1),e.run_id&&n.runIds.add(e.run_id)}return Array.from(r.values()).map(e=>{let t=e.total,n=t>0?Math.round(e.passed/t*100):null,r=e.durationCount>0?Math.round(e.totalDurationMs/e.durationCount):null;return{key:e.key,title:e.title,suite:e.suite,file:e.file,project:e.project,runsCount:e.runIds.size||1,total:t,passed:e.passed,failed:e.failed,timedOut:e.timedOut,interrupted:e.interrupted,skipped:e.skipped,avgDurationMs:r,passRate:n}}).sort((e,t)=>t.total-e.total||e.title.localeCompare(t.title))},[e,m,g]),E=Bt(T.length,10),D=(0,v.useMemo)(()=>[{key:`run_name`,header:`Run Name`,className:`font-bold text-text-ink dark:text-text-on-primary`,cell:e=>e.run_name,csvValue:e=>e.run_name},{key:`mode`,header:`Mode`,className:`font-medium text-text-body-mid dark:text-text-muted`,cell:e=>!e.run_workers||e.run_workers<=1?`Serial`:`Parallel, ${e.run_workers} workers`,csvValue:e=>!e.run_workers||e.run_workers<=1?`Serial`:`Parallel, ${e.run_workers} workers`},{key:`started_at`,header:`Started`,cell:e=>N(e.started_at),csvValue:e=>N(e.started_at)},{key:`duration`,header:`Duration`,align:`right`,cell:e=>j(e.run_duration_ms),csvValue:e=>j(e.run_duration_ms)},{key:`time_saved`,header:`Time Saved`,align:`right`,cell:e=>{let t=!!(e.run_workers&&e.run_workers>1),n=e.run_sequential_duration_ms,r=n!=null,i=t&&r&&n>e.run_duration_ms?n-e.run_duration_ms:0,a=t&&r&&i>0?(n/Math.max(1,e.run_duration_ms)).toFixed(1):null;return t?r?i>0&&a?(0,F.jsxs)(`span`,{className:`font-bold text-success-600 dark:text-success-500 whitespace-nowrap`,children:[`⚡ `,j(i),` (`,a,`x)`]}):(0,F.jsx)(`span`,{className:`text-text-body-mid dark:text-text-muted`,children:`0s`}):(0,F.jsx)(`span`,{title:`Sequential duration data not available for this run`,className:`text-text-body-mid dark:text-text-muted`,children:`—`}):(0,F.jsx)(`span`,{className:`text-text-body-mid dark:text-text-muted`,children:`0s`})},csvValue:e=>{let t=!!(e.run_workers&&e.run_workers>1),n=e.run_sequential_duration_ms,r=n!=null,i=t&&r&&n>e.run_duration_ms?n-e.run_duration_ms:0,a=t&&r&&i>0?(n/Math.max(1,e.run_duration_ms)).toFixed(1):null;return t?r?i>0&&a?`${j(i)} (${a}x)`:`0s`:`-`:`0s`}},{key:`total`,header:`Total`,align:`right`,className:`font-medium`,cell:e=>e.run_total,csvValue:e=>e.run_total},{key:`passed`,header:`Passed`,align:`right`,cell:e=>(0,F.jsx)(`span`,{className:e.run_passed>0?`text-success-600 dark:text-success-500 font-bold`:``,children:e.run_passed}),csvValue:e=>e.run_passed},{key:`failed`,header:`Failed`,align:`right`,cell:e=>(0,F.jsx)(`span`,{className:e.run_failed>0?`text-danger-600 dark:text-danger-500 font-bold`:``,children:e.run_failed}),csvValue:e=>e.run_failed},{key:`skipped`,header:`Skipped`,align:`right`,cell:e=>(0,F.jsx)(`span`,{className:e.run_skipped>0?`text-text-body-mid dark:text-text-muted font-medium`:``,children:e.run_skipped}),csvValue:e=>e.run_skipped},{key:`timed_out`,header:`Timed Out`,align:`right`,cell:e=>(0,F.jsx)(`span`,{className:e.run_timed_out>0?`text-danger-600 dark:text-danger-500 font-bold`:``,children:e.run_timed_out}),csvValue:e=>e.run_timed_out},{key:`interrupted`,header:`Interrupted`,align:`right`,cell:e=>(0,F.jsx)(`span`,{className:e.run_interrupted>0?`text-warning-600 dark:text-warning-500 font-bold`:``,children:e.run_interrupted}),csvValue:e=>e.run_interrupted},{key:`pass_rate`,header:`Pass Rate`,align:`right`,cell:e=>(0,F.jsx)(at,{passRate:e.pass_rate}),csvValue:e=>e.pass_rate==null?`-`:`${e.pass_rate}%`}],[]),O=(0,v.useMemo)(()=>[{key:`file`,header:`Spec File`,cell:e=>(0,F.jsx)(`div`,{className:`max-w-xs sm:max-w-md overflow-hidden text-ellipsis whitespace-nowrap font-medium text-text-ink dark:text-text-on-primary`,title:e.file,children:de(e.file)}),csvValue:e=>e.file},{key:`runs`,header:`Runs`,align:`right`,className:`text-text-body-mid dark:text-text-muted`,cell:e=>e.runsCount,csvValue:e=>e.runsCount},{key:`total`,header:`Total Tests`,align:`right`,className:`font-medium`,cell:e=>e.total,csvValue:e=>e.total},{key:`passed`,header:`Passed`,align:`right`,cell:e=>(0,F.jsx)(`span`,{className:e.passed>0?`text-success-600 dark:text-success-500 font-bold`:``,children:e.passed}),csvValue:e=>e.passed},{key:`failed`,header:`Failed`,align:`right`,cell:e=>(0,F.jsx)(`span`,{className:e.failed>0?`text-danger-600 dark:text-danger-500 font-bold`:``,children:e.failed}),csvValue:e=>e.failed},{key:`timed_out`,header:`Timed Out`,align:`right`,cell:e=>(0,F.jsx)(`span`,{className:e.timedOut>0?`text-danger-600 dark:text-danger-500 font-bold`:``,children:e.timedOut}),csvValue:e=>e.timedOut},{key:`interrupted`,header:`Interrupted`,align:`right`,cell:e=>(0,F.jsx)(`span`,{className:e.interrupted>0?`text-warning-600 dark:text-warning-500 font-bold`:``,children:e.interrupted}),csvValue:e=>e.interrupted},{key:`skipped`,header:`Skipped`,align:`right`,cell:e=>(0,F.jsx)(`span`,{className:e.skipped>0?`text-text-body-mid dark:text-text-muted font-medium`:``,children:e.skipped}),csvValue:e=>e.skipped},{key:`pass_rate`,header:`Pass Rate`,align:`right`,cell:e=>(0,F.jsx)(at,{passRate:e.passRate}),csvValue:e=>e.passRate==null?`-`:`${e.passRate}%`}],[]),k=(0,v.useMemo)(()=>[{key:`test`,header:`Test`,className:`font-bold text-text-ink dark:text-text-on-primary`,cell:e=>e.title,csvValue:e=>e.title},{key:`suite`,header:`Suite`,cell:e=>e.suite||`-`,csvValue:e=>e.suite||``},{key:`file`,header:`Spec File`,cell:e=>(0,F.jsx)(`div`,{className:`max-w-xs overflow-hidden text-ellipsis whitespace-nowrap font-medium text-text-ink dark:text-text-on-primary`,title:e.file,children:de(e.file)}),csvValue:e=>e.file},{key:`project`,header:`Project`,cell:e=>e.project||`-`,csvValue:e=>e.project||``},{key:`runs`,header:`Runs`,align:`right`,className:`text-text-body-mid dark:text-text-muted`,cell:e=>e.runsCount,csvValue:e=>e.runsCount},{key:`passed`,header:`Passed`,align:`right`,cell:e=>(0,F.jsx)(`span`,{className:e.passed>0?`text-success-600 dark:text-success-500 font-bold`:``,children:e.passed}),csvValue:e=>e.passed},{key:`failed`,header:`Failed`,align:`right`,cell:e=>(0,F.jsx)(`span`,{className:e.failed>0?`text-danger-600 dark:text-danger-500 font-bold`:``,children:e.failed}),csvValue:e=>e.failed},{key:`timed_out`,header:`Timed Out`,align:`right`,cell:e=>(0,F.jsx)(`span`,{className:e.timedOut>0?`text-danger-600 dark:text-danger-500 font-bold`:``,children:e.timedOut}),csvValue:e=>e.timedOut},{key:`interrupted`,header:`Interrupted`,align:`right`,cell:e=>(0,F.jsx)(`span`,{className:e.interrupted>0?`text-warning-600 dark:text-warning-500 font-bold`:``,children:e.interrupted}),csvValue:e=>e.interrupted},{key:`skipped`,header:`Skipped`,align:`right`,cell:e=>(0,F.jsx)(`span`,{className:e.skipped>0?`text-text-body-mid dark:text-text-muted font-medium`:``,children:e.skipped}),csvValue:e=>e.skipped},{key:`avg_duration`,header:`Avg Duration`,align:`right`,cell:e=>e.avgDurationMs==null?`-`:j(e.avgDurationMs),csvValue:e=>e.avgDurationMs==null?`-`:j(e.avgDurationMs)},{key:`pass_rate`,header:`Pass Rate`,align:`right`,cell:e=>(0,F.jsx)(at,{passRate:e.passRate}),csvValue:e=>e.passRate==null?`-`:`${e.passRate}%`}],[]);if(!e)return(0,F.jsxs)(`div`,{className:`space-y-6`,children:[t&&(0,F.jsx)(Je,{}),(0,F.jsx)(`div`,{className:`flex items-center justify-center py-24 text-center`,children:(0,F.jsxs)(`div`,{children:[(0,F.jsx)(`div`,{className:`mx-auto mb-4 flex h-16 w-16 items-center justify-center rounded-md bg-surface-100 border border-border-default`,children:(0,F.jsx)(`svg`,{className:`h-8 w-8 text-text-ink dark:text-text-on-primary`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,strokeWidth:1.75,children:(0,F.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M12 6v6h4.5m4.5 0a9 9 0 11-18 0 9 9 0 0118 0z`})})}),(0,F.jsx)(`h3`,{className:`text-base font-bold text-text-ink dark:text-text-on-primary`,children:`No history data`}),(0,F.jsxs)(`p`,{className:`mt-1.5 text-sm text-text-body-mid dark:text-text-muted`,children:[`Run`,` `,(0,F.jsx)(`code`,{className:`rounded bg-surface-200 px-1.5 py-0.5 text-xs font-mono font-semibold text-text-ink dark:text-text-on-primary border border-border-default`,children:`npx zr history report`}),` `,`after your test runs to populate this tab.`]})]})})]});let A=x.slice(S.start,S.start+S.pageSize),M=C.slice(w.start,w.start+w.pageSize),ee=T.slice(E.start,E.start+E.pageSize);return(0,F.jsxs)(`div`,{className:`space-y-6`,children:[t&&(0,F.jsx)(Je,{}),(0,F.jsx)(`div`,{className:`flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4 mb-6`,children:(0,F.jsxs)(`div`,{children:[(0,F.jsx)(`h2`,{className:`text-2xl font-bold tracking-tight text-text-ink dark:text-text-on-primary sm:text-3xl`,children:`Execution Run History`}),(0,F.jsx)(`p`,{className:`mt-1.5 text-sm text-text-body-mid dark:text-text-muted`,children:`Audit log of all historical test execution runs stored in Zen Reporter`})]})}),(0,F.jsxs)(`section`,{className:PB,children:[(0,F.jsxs)(`div`,{className:`flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4 pb-3 border-b border-border-default`,children:[(0,F.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,F.jsx)(`h2`,{className:FB,children:`Test runs audit log`}),(0,F.jsx)(Oe,{onClick:()=>r(!0)})]}),(0,F.jsx)(Vt,{id:`runs-page-size`,pageSize:S.pageSize,onPageSizeChange:S.changePageSize})]}),(0,F.jsx)(`div`,{className:`pt-3 pb-1 border-b border-border-default/50`,children:(0,F.jsx)(et,{onFilterChange:e=>{s(e),S.setPage(1)},availableTimestamps:y})}),(0,F.jsx)(it,{data:A,columns:D,getRowKey:e=>e.run_id,exportFilename:`test_runs_history.csv`,fullData:x,className:`mt-4`,emptyMessage:(0,F.jsxs)(`div`,{className:`py-16 text-center text-text-body-mid dark:text-text-muted`,children:[(0,F.jsx)(`p`,{className:`text-base font-semibold`,children:`No matching test runs found`}),(0,F.jsx)(`p`,{className:`mt-1 text-xs text-text-muted-soft`,children:`Try adjusting or clearing your date range filter criteria.`})]})}),(0,F.jsx)(Ht,{label:`runs`,total:x.length,start:S.start,pageLength:A.length,currentPage:S.currentPage,totalPages:S.totalPages,onPageChange:S.setPage})]}),(0,F.jsxs)(`section`,{className:PB,children:[(0,F.jsxs)(`div`,{className:`flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4 pb-3 border-b border-border-default`,children:[(0,F.jsxs)(`div`,{children:[(0,F.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,F.jsx)(`h2`,{className:FB,children:`File History`}),(0,F.jsx)(Oe,{onClick:()=>a(!0)})]}),(0,F.jsx)(`p`,{className:`mt-1 text-xs text-text-body-mid dark:text-text-muted`,children:`Spec files test execution breakdown across test runs`})]}),(0,F.jsx)(Vt,{id:`files-history-page-size`,pageSize:w.pageSize,onPageSizeChange:w.changePageSize})]}),(0,F.jsxs)(`div`,{className:`pt-3 pb-1 border-b border-border-default/50 flex flex-col sm:flex-row sm:items-start sm:justify-between gap-3`,children:[(0,F.jsx)(et,{onFilterChange:e=>{l(e),w.setPage(1)},availableTimestamps:y}),(0,F.jsx)(st,{value:u,onChange:e=>{d(e),w.setPage(1)},placeholder:`Search spec files...`,className:`w-44 sm:w-48 shrink-0`,inputClassName:`w-full rounded-md border border-border-default bg-surface-50 pl-9 pr-7 py-1.5 text-xs text-text-ink placeholder:text-text-muted focus:border-accent-blue focus:outline-none dark:bg-surface-50 dark:text-text-on-primary`})]}),(0,F.jsx)(it,{data:M,columns:O,getRowKey:e=>e.file,exportFilename:`spec_file_history.csv`,fullData:C,className:`mt-4`,emptyMessage:(0,F.jsxs)(`div`,{className:`py-16 text-center text-text-body-mid dark:text-text-muted`,children:[(0,F.jsx)(`p`,{className:`text-base font-semibold`,children:`No matching file history found`}),(0,F.jsx)(`p`,{className:`mt-1 text-xs text-text-muted-soft`,children:`Try adjusting or clearing your date range filter criteria.`})]})}),(0,F.jsx)(Ht,{label:`spec files`,total:C.length,start:w.start,pageLength:M.length,currentPage:w.currentPage,totalPages:w.totalPages,onPageChange:w.setPage})]}),(0,F.jsxs)(`section`,{className:PB,children:[(0,F.jsxs)(`div`,{className:`flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4 pb-3 border-b border-border-default`,children:[(0,F.jsxs)(`div`,{children:[(0,F.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,F.jsx)(`h2`,{className:FB,children:`Test History`}),(0,F.jsx)(Oe,{onClick:()=>p(!0)})]}),(0,F.jsx)(`p`,{className:`mt-1 text-xs text-text-body-mid dark:text-text-muted`,children:`Individual test execution breakdown across test runs`})]}),(0,F.jsx)(Vt,{id:`tests-history-page-size`,pageSize:E.pageSize,onPageSizeChange:E.changePageSize})]}),(0,F.jsxs)(`div`,{className:`pt-3 pb-1 border-b border-border-default/50 flex flex-col sm:flex-row sm:items-start sm:justify-between gap-3`,children:[(0,F.jsx)(et,{onFilterChange:e=>{h(e),E.setPage(1)},availableTimestamps:y}),(0,F.jsx)(st,{value:g,onChange:e=>{_(e),E.setPage(1)},placeholder:`Search tests...`,className:`w-44 sm:w-48 shrink-0`,inputClassName:`w-full rounded-md border border-border-default bg-surface-50 pl-9 pr-7 py-1.5 text-xs text-text-ink placeholder:text-text-muted focus:border-accent-blue focus:outline-none dark:bg-surface-50 dark:text-text-on-primary`})]}),(0,F.jsx)(it,{data:ee,columns:k,getRowKey:e=>e.key,exportFilename:`test_case_history.csv`,fullData:T,className:`mt-4`,emptyMessage:(0,F.jsxs)(`div`,{className:`py-16 text-center text-text-body-mid dark:text-text-muted`,children:[(0,F.jsx)(`p`,{className:`text-base font-semibold`,children:`No matching test history found`}),(0,F.jsx)(`p`,{className:`mt-1 text-xs text-text-muted-soft`,children:`Try adjusting or clearing your date range or search filter criteria.`})]})}),(0,F.jsx)(Ht,{label:`tests`,total:T.length,start:E.start,pageLength:ee.length,currentPage:E.currentPage,totalPages:E.totalPages,onPageChange:E.setPage})]}),(0,F.jsx)(NB,{isRunsModalOpen:n,onCloseRunsModal:()=>r(!1),isFileModalOpen:i,onCloseFileModal:()=>a(!1),isTestModalOpen:f,onCloseTestModal:()=>p(!1)})]})}var LB={name:`@arpanp/zen-reporter`,private:!1,version:`0.11.1`,type:`module`,description:`Beautiful test execution reports for Playwright`,bin:{"zen-reporter":`bin/zen-reporter.js`,zr:`bin/zen-reporter.js`},main:`dist/reporter.cjs`,module:`dist/reporter.js`,types:`dist/reporter.d.ts`,exports:{".":{types:`./dist/reporter.d.ts`,import:`./dist/reporter.js`,require:`./dist/reporter.cjs`},"./package.json":`./package.json`},files:[`bin`,`dist`,`docs/screenshots`],author:{name:`Arpan Patelia`,email:`arpan.is@gmail.com`},license:`MIT`,scripts:{dev:`vite`,build:`vite build && vite build --config vite.reporter.config.ts && tsc -p tsconfig.lib.json`,preview:`vite preview`,test:`npx playwright test`,report:`npm run build && node scripts/generate_report.js`,show:`node bin/zen-reporter.js show`,lint:`eslint .`,"lint:fix":`eslint . --fix`,typecheck:`tsc --noEmit`,format:`prettier --write .`,"format:check":`prettier --check .`,prepare:`husky`,prepack:`npm run build`,prepublish:`npm run build`},"lint-staged":{"*.{js,jsx,ts,tsx}":[`eslint --fix`,`prettier --write`],"*.{json,css,md,yml,yaml,html}":[`prettier --write`]},engines:{node:`>=18.0.0`},peerDependencies:{"@playwright/test":`>=1.63.0`,"@duckdb/node-api":`1.5.5-r.5`},peerDependenciesMeta:{"@playwright/test":{optional:!0},"@duckdb/node-api":{optional:!0}},devDependencies:{"@eslint-react/eslint-plugin":`^5.20.8`,"@duckdb/node-api":`1.5.5-r.5`,"@eslint/js":`^10.0.1`,"@eslint/json":`^2.1.0`,"@eslint/markdown":`^8.0.3`,"@playwright/cli":`^0.1.21`,"@playwright/test":`^1.63.0`,"@tailwindcss/postcss":`^4.3.3`,"@types/node":`^26.6.2`,"@types/react":`^19.3.0`,"@types/react-dom":`^19.3.0`,"@vitejs/plugin-react":`^6.1.1`,autoprefixer:`^10.6.1`,eslint:`^10.11.0`,"eslint-config-prettier":`^10.1.8`,globals:`^17.12.0`,husky:`^9.1.7`,"lint-staged":`^17.5.1`,postcss:`^8.5.28`,prettier:`^3.9.9`,react:`^19.3.0`,"react-dom":`^19.3.0`,"react-is":`^19.3.0`,recharts:`^3.10.1`,tailwindcss:`^4.3.3`,typescript:`^6.0.3`,"typescript-eslint":`^8.70.1`,vite:`^8.3.1`,"vite-plugin-singlefile":`^2.3.3`}},RB=`data:image/svg+xml;utf8,${encodeURIComponent(b)}`,zB=[{key:`overview`,label:`Overview`,icon:(0,F.jsx)(`svg`,{className:`h-5 w-5`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,strokeWidth:1.5,children:(0,F.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M3.75 6A2.25 2.25 0 016 3.75h2.25A2.25 2.25 0 0110.5 6v2.25a2.25 2.25 0 01-2.25 2.25H6a2.25 2.25 0 01-2.25-2.25V6zM3.75 15.75A2.25 2.25 0 016 13.5h2.25a2.25 2.25 0 012.25 2.25V18a2.25 2.25 0 01-2.25 2.25H6A2.25 2.25 0 013.75 18v-2.25zM13.5 6a2.25 2.25 0 012.25-2.25H18A2.25 2.25 0 0120.25 6v2.25A2.25 2.25 0 0118 10.5h-2.25a2.25 2.25 0 01-2.25-2.25V6zM13.5 15.75a2.25 2.25 0 012.25-2.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-2.25A2.25 2.25 0 0113.5 18v-2.25z`})})},{key:`projects`,label:`Projects`,icon:(0,F.jsx)(`svg`,{className:`h-5 w-5`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,strokeWidth:1.5,children:(0,F.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M3.75 12h16.5m-16.5 3.75h16.5M3.75 19.5h16.5M3.75 4.5h16.5m-16.5 3.75h16.5`})})},{key:`suites`,label:`Suites`,icon:(0,F.jsx)(`svg`,{className:`h-5 w-5`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,strokeWidth:1.5,children:(0,F.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M2.25 12.75V12A2.25 2.25 0 014.5 9.75h15A2.25 2.25 0 0121.75 12v.75m-8.69-6.44l-2.12-2.12a1.5 1.5 0 00-1.061-.44H4.5A2.25 2.25 0 002.25 6v12a2.25 2.25 0 002.25 2.25h15A2.25 2.25 0 0021.75 18V9a2.25 2.25 0 00-2.25-2.25h-5.379a1.5 1.5 0 01-1.06-.44z`})})},{key:`files`,label:`Files`,icon:(0,F.jsx)(`svg`,{className:`h-5 w-5`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,strokeWidth:1.5,children:(0,F.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M19.5 14.25v-2.625a3.375 3.375 0 00-3.375-3.375h-1.5A1.125 1.125 0 0113.5 7.125v-1.5a3.375 3.375 0 00-3.375-3.375H8.25m2.25 0H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 00-9-9z`})})},{key:`failures`,label:`Failures`,icon:(0,F.jsx)(`svg`,{className:`h-5 w-5`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,strokeWidth:1.5,children:(0,F.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M12 9v3.75m9-.75a9 9 0 11-18 0 9 9 0 0118 0zm-9 3.75h.008v.008H12v-.008z`})})},{key:`history`,label:`History`,icon:(0,F.jsx)(`svg`,{className:`h-5 w-5`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,strokeWidth:1.5,children:(0,F.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M12 6v6h4.5m4.5 0a9 9 0 11-18 0 9 9 0 0118 0z`})})},{key:`trends`,label:`Trends`,icon:(0,F.jsx)(`svg`,{className:`h-5 w-5`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,strokeWidth:1.5,children:(0,F.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M2.25 18L9 11.25l4.306 4.307a.5.5 0 00.71 0l7.234-7.234M21 8.25V12M21 8.25H17.25`})})},{key:`insights`,label:`Insights`,icon:(0,F.jsx)(`svg`,{className:`h-5 w-5`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,strokeWidth:1.5,children:(0,F.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M3.75 13.5l10.5-11.25L12 10.5h8.25L9.75 21.75 12 13.5H3.75z`})})}];function BB({icon:e,label:t,isActive:n,onClick:r,badge:i,disabledBadge:a,isCollapsed:o}){return(0,F.jsxs)(`button`,{onClick:r,title:o?a?`${t} (History recording disabled)`:t:void 0,className:`group relative flex w-full items-center ${o?`justify-center px-2 py-2.5`:`gap-3 px-3 py-2.5`} rounded-md text-sm font-semibold transition-all duration-150 ${n?`bg-accent-blue/15 text-accent-blue shadow-sm dark:bg-accent-blue/25 dark:text-accent-blue`:`text-text-body-mid hover:bg-surface-100 hover:text-text-ink dark:text-text-body-mid dark:hover:bg-surface-100 dark:hover:text-text-on-primary font-medium`}`,children:[n&&(0,F.jsx)(`span`,{className:`absolute left-0 top-1.5 bottom-1.5 w-1 rounded-r-full bg-accent-blue dark:bg-accent-blue`}),(0,F.jsx)(`span`,{className:`shrink-0 transition-colors ${n?`text-accent-blue dark:text-accent-blue`:`text-text-body-mid group-hover:text-text-ink dark:text-text-body-mid dark:group-hover:text-text-on-primary`}`,children:e}),!o&&(0,F.jsx)(`span`,{className:`truncate`,children:t}),i!==void 0&&i>0&&(0,F.jsx)(`span`,{className:o?`absolute -top-1 -right-1 flex h-4 min-w-4 items-center justify-center rounded-full bg-accent-red px-1 text-[10px] font-bold text-text-on-primary dark:text-surface-950 shadow-sm`:`ml-auto flex h-5 min-w-5 items-center justify-center rounded-full bg-accent-red px-1.5 text-[11px] font-bold text-text-on-primary dark:text-surface-950`,children:i}),a&&(0,F.jsx)(`span`,{title:`History recording disabled`,className:o?`absolute -top-1 -right-1 flex h-4 w-4 items-center justify-center rounded-full bg-amber-500 text-text-on-primary shadow-sm`:`ml-auto flex items-center gap-1 rounded bg-amber-500/15 px-1.5 py-0.5 text-[10px] font-semibold text-amber-700 dark:text-amber-300 border border-amber-500/30`,children:o?`!`:(0,F.jsxs)(F.Fragment,{children:[(0,F.jsx)(`svg`,{className:`h-3 w-3 shrink-0`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,strokeWidth:2,children:(0,F.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M12 9v3.75m-9.303 3.376c-.866 1.5.217 3.374 1.948 3.374h14.71c1.73 0 2.813-1.874 1.948-3.374L13.949 3.378c-.866-1.5-3.032-1.5-3.898 0L2.697 16.126zM12 15.75h.007v.008H12v-.008z`})}),(0,F.jsx)(`span`,{children:`Disabled`})]})})]})}function VB({activeTab:e,setActiveTab:t,isCollapsed:n,setIsCollapsed:r,failedCount:i,timedOutCount:a,interruptedCount:o,isHistoryDisabled:s,isMinimalReport:c}){let l=c?zB.filter(e=>e.key!==`projects`&&e.key!==`history`&&e.key!==`trends`&&e.key!==`insights`):zB;return(0,F.jsxs)(`aside`,{className:`flex flex-col border-r border-border-default bg-surface-50 transition-all duration-200 ${n?`w-16`:`w-60`}`,children:[(0,F.jsx)(`div`,{className:`flex items-center ${n?`flex-col gap-3 py-3`:`justify-between min-w-0 px-4 py-3.5`}`,children:n?(0,F.jsxs)(F.Fragment,{children:[(0,F.jsx)(`a`,{href:`https://apatelia.github.io/zen-reporter-website/`,target:`_blank`,rel:`noopener noreferrer`,className:`p-1 rounded-md hover:bg-surface-100 transition-colors block shrink-0`,title:`Zen Reporter v${LB.version}`,children:(0,F.jsx)(`img`,{src:RB,alt:`Zen Reporter`,className:`h-7 w-7 object-contain drop-shadow-xs`})}),(0,F.jsx)(`button`,{onClick:()=>r(!1),className:`p-1.5 rounded-md text-text-body-mid hover:text-text-ink hover:bg-surface-100 transition-colors`,title:`Expand sidebar`,children:(0,F.jsx)(`svg`,{className:`h-5 w-5`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,strokeWidth:1.5,children:(0,F.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M8.25 4.5l7.5 7.5-7.5 7.5`})})})]}):(0,F.jsxs)(F.Fragment,{children:[(0,F.jsxs)(`a`,{href:`https://apatelia.github.io/zen-reporter-website/`,target:`_blank`,rel:`noopener noreferrer`,className:`flex items-center gap-2.5 min-w-0 group cursor-pointer`,title:`Zen Reporter v${LB.version}`,children:[(0,F.jsx)(`img`,{src:RB,alt:`Zen Reporter`,className:`h-7 w-7 shrink-0 object-contain drop-shadow-xs transition-transform group-hover:scale-105`}),(0,F.jsxs)(`div`,{className:`flex flex-col min-w-0`,children:[(0,F.jsxs)(`span`,{className:`inline-flex items-center gap-1 text-sm font-bold tracking-tight text-accent-blue dark:text-accent-blue group-hover:underline truncate leading-tight transition-colors`,children:[`Zen Reporter`,(0,F.jsx)(`svg`,{className:`h-3 w-3 shrink-0 opacity-70 group-hover:opacity-100 transition-opacity`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,strokeWidth:2,children:(0,F.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M13.5 6H18m0 0v4.5m0-4.5L11.25 12.75M18 10.5v8.25a1.5 1.5 0 01-1.5 1.5H5.25A1.5 1.5 0 013.75 18.75V7.5a1.5 1.5 0 011.5-1.5h8.25`})})]}),(0,F.jsxs)(`span`,{className:`text-[10px] font-medium text-text-muted truncate leading-tight`,children:[`v`,LB.version]})]})]}),(0,F.jsx)(`button`,{onClick:()=>r(!0),className:`p-1.5 rounded-md text-text-body-mid hover:text-text-ink hover:bg-surface-100 transition-colors shrink-0`,title:`Collapse sidebar`,children:(0,F.jsx)(`svg`,{className:`h-5 w-5`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,strokeWidth:1.5,children:(0,F.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M15.75 19.5L8.25 12l7.5-7.5`})})})]})}),(0,F.jsx)(`div`,{className:`mx-3 h-px bg-border-default`}),(0,F.jsx)(`nav`,{className:`flex-1 space-y-1 ${n?`px-2`:`px-3`} py-2`,children:l.map(r=>(0,F.jsx)(BB,{icon:r.icon,label:r.label,isActive:e===r.key,onClick:()=>t(r.key),badge:r.key===`failures`?i+a+o:void 0,disabledBadge:s&&(r.key===`history`||r.key===`trends`||r.key===`insights`),isCollapsed:n},r.key))})]})}var HB=`data:image/svg+xml;utf8,${encodeURIComponent(b)}`;function UB(){let e=(0,v.useMemo)(()=>typeof window>`u`?!1:new URLSearchParams(window.location.search).get(`view`)===`summary`||!!window.__ZEN_SUMMARY_ONLY__,[]),[t,n]=(0,v.useState)(`overview`),[r,i]=(0,v.useState)(null),[a,o]=(0,v.useState)(!0),[s,c]=(0,v.useState)(null),[l,u]=(0,v.useState)(!1),d=(0,v.useMemo)(()=>{if(typeof document>`u`)return null;let e=document.getElementById(`report-data`);if(e){let t=e.textContent?.trim();if(t)try{return JSON.parse(t)}catch{return null}}return null},[]),[f,p]=(0,v.useState)(()=>{let e=d?.testRun?.theme;if(e){let t=e.toLowerCase();if(t===`cafe`||t===`concept`||t===`sentinel`)return t}if(typeof window<`u`){let e=localStorage.getItem(`zen-theme`);if(e===`cafe`||e===`concept`||e===`sentinel`)return e}return`cafe`}),[m,h]=(0,v.useState)(()=>{let e=d?.testRun;if(e?.darkMode!==void 0)return e.darkMode?`dark`:`light`;if(typeof window<`u`){let e=localStorage.getItem(`zen-dark-mode`);if(e===`dark`||e===`light`)return e}return`light`}),g=e=>{let t=e?.testRun;if(t){if(t.theme){let e=t.theme.toLowerCase();(e===`cafe`||e===`concept`||e===`sentinel`)&&p(e)}t.darkMode!==void 0&&h(t.darkMode?`dark`:`light`)}};(0,v.useEffect)(()=>{document.documentElement.setAttribute(`data-theme`,f),localStorage.setItem(`zen-theme`,f)},[f]),(0,v.useEffect)(()=>{m===`dark`?(document.documentElement.classList.add(`dark`),document.documentElement.style.colorScheme=`dark`):(document.documentElement.classList.remove(`dark`),document.documentElement.style.colorScheme=`light`);let e=document.querySelector(`link[rel~='icon']`);e||(e=document.createElement(`link`),e.rel=`icon`,document.head.appendChild(e)),e.type=`image/svg+xml`,e.href=HB},[m]);let _=()=>{let e=m===`light`?`dark`:`light`;h(e),localStorage.setItem(`zen-dark-mode`,e)};(0,v.useEffect)(()=>{(async()=>{async function e(){let e=document.getElementById(`report-data`);if(e){let t=e.textContent?.trim();if(t)try{let e=JSON.parse(t);i(e),g(e);return}catch{}}if(typeof window<`u`&&window.location.protocol!==`file:`){let e=await fetch(`./report.json`);if(e.ok){let t=await e.json();i(t),g(t);return}}}let t=async()=>{let e=document.getElementById(`history-data`);if(e){let t=e.textContent?.trim();if(t)try{c(JSON.parse(t));return}catch{}}if(typeof window<`u`&&window.location.protocol!==`file:`){let e=await fetch(`./history.json`);e.ok&&c(await e.json())}};try{await Promise.all([e(),t()])}catch(e){console.warn(`Could not load report data:`,e)}finally{o(!1)}})()},[]);let{summary:y,suites:b,projectName:x,testRunName:S}=(0,v.useMemo)(()=>r?.testRun?{summary:r.testRun.summary,suites:r.testRun.suites,projectName:r.testRun.projectName,testRunName:r.testRun.testRunName}:{summary:null,suites:[],projectName:void 0,testRunName:void 0},[r]),C=y?y.failed:0,w=y?y.timedOut:0,T=y&&y.interrupted||0,E=(0,v.useMemo)(()=>r?.testRun?.enableHistory===!1,[r]),D=(0,v.useMemo)(()=>!!r?.testRun?.minimalReport,[r]),O=(0,v.useMemo)(()=>D&&(t===`projects`||t===`history`||t===`trends`||t===`insights`)?`overview`:t,[D,t]);return(0,F.jsxs)(`div`,{className:`flex h-screen overflow-hidden bg-canvas`,children:[!e&&(0,F.jsx)(VB,{activeTab:O,setActiveTab:n,isCollapsed:l,setIsCollapsed:u,failedCount:C,timedOutCount:w,interruptedCount:T,isHistoryDisabled:E,isMinimalReport:D}),(0,F.jsxs)(`main`,{className:`flex-1 flex flex-col min-w-0 overflow-hidden bg-canvas`,children:[(0,F.jsxs)(`header`,{className:`border-b border-border-default bg-surface-50/50 px-6 py-3 shrink-0 flex items-start justify-between gap-4`,children:[(0,F.jsx)(`div`,{className:`flex items-center gap-3 min-w-0`,children:(0,F.jsxs)(`div`,{className:`min-w-0 flex flex-col justify-center`,children:[(0,F.jsx)(`h1`,{className:`text-base font-bold tracking-tight text-text-ink dark:text-text-on-primary sm:text-lg truncate leading-tight`,children:x||`Test Execution Report`}),(0,F.jsxs)(`div`,{className:`mt-1 flex items-center gap-2 flex-wrap text-xs text-text-body-mid dark:text-text-muted min-w-0`,children:[(0,F.jsx)(`span`,{className:`text-text-muted font-normal`,children:`Report for`}),(0,F.jsx)(`span`,{className:`inline-flex items-center rounded-md bg-accent-blue/10 px-2 py-0.5 text-xs font-semibold text-accent-blue ring-1 ring-inset ring-accent-blue/20 dark:bg-accent-blue/20 dark:text-accent-blue max-w-sm truncate`,children:S||`Playwright Test Reporter`}),(0,F.jsx)(`span`,{className:`text-text-muted-soft text-[10px]`,children:`•`}),(0,F.jsx)(`span`,{className:`inline-flex items-center gap-1 text-[11px] text-text-muted`,children:(0,F.jsxs)(`span`,{children:[`Powered by`,` `,(0,F.jsxs)(`a`,{href:`https://apatelia.github.io/zen-reporter-website/`,target:`_blank`,rel:`noopener noreferrer`,className:`inline-flex items-center gap-0.5 font-semibold text-accent-blue dark:text-accent-blue hover:underline`,children:[(0,F.jsx)(`img`,{src:HB,alt:`Zen Reporter`,className:`h-3 w-3 shrink-0 object-contain opacity-80`}),`Zen Reporter`,(0,F.jsx)(`svg`,{className:`h-2.5 w-2.5 shrink-0 opacity-70`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,strokeWidth:2,children:(0,F.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M13.5 6H18m0 0v4.5m0-4.5L11.25 12.75M18 10.5v8.25a1.5 1.5 0 01-1.5 1.5H5.25A1.5 1.5 0 013.75 18.75V7.5a1.5 1.5 0 011.5-1.5h8.25`})})]})]})})]}),y&&(0,F.jsxs)(`div`,{className:`mt-1.5 hidden sm:flex items-center gap-2 text-xs text-text-body-mid dark:text-text-muted`,children:[(0,F.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,F.jsxs)(`svg`,{className:`h-3.5 w-3.5 text-text-muted shrink-0`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,strokeWidth:1.75,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,F.jsx)(`rect`,{width:`18`,height:`18`,x:`3`,y:`4`,rx:`2`,ry:`2`}),(0,F.jsx)(`line`,{x1:`16`,x2:`16`,y1:`2`,y2:`6`}),(0,F.jsx)(`line`,{x1:`8`,x2:`8`,y1:`2`,y2:`6`}),(0,F.jsx)(`line`,{x1:`3`,x2:`21`,y1:`10`,y2:`10`})]}),(0,F.jsx)(`span`,{className:`font-medium`,children:ee(y.startTime,y.endTime)})]}),(0,F.jsxs)(`span`,{className:`inline-flex items-center gap-1.5 rounded-full bg-surface-100 px-2 py-0.5 text-[11px] font-semibold text-text-body-mid border border-border-default dark:bg-surface-100/60 dark:text-text-muted`,children:[(0,F.jsxs)(`svg`,{className:`h-3 w-3 text-text-body-mid dark:text-text-muted shrink-0`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,strokeWidth:2,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,F.jsx)(`circle`,{cx:`12`,cy:`12`,r:`9`}),(0,F.jsx)(`polyline`,{points:`12 6 12 12 16 14`})]}),(0,F.jsx)(`span`,{children:j(y.duration)})]})]})]})}),(0,F.jsxs)(`div`,{className:`flex items-center gap-3 shrink-0 pt-0.5`,children:[(0,F.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,F.jsx)(`label`,{htmlFor:`theme-select`,className:`text-xs text-text-body-mid dark:text-text-muted shrink-0 font-medium`,children:`Theme:`}),(0,F.jsxs)(`div`,{className:`relative inline-flex items-center`,children:[(0,F.jsxs)(`select`,{id:`theme-select`,value:f,onChange:e=>p(e.target.value),className:`appearance-none rounded-md border border-border-default bg-surface-50 pl-3 pr-8 py-1.5 text-xs text-text-ink focus:border-accent-blue focus:outline-none dark:bg-surface-50 dark:text-text-on-primary font-medium cursor-pointer`,"aria-label":`Select Theme`,title:`Select Theme`,children:[(0,F.jsx)(`option`,{value:`cafe`,children:`Cafe`}),(0,F.jsx)(`option`,{value:`concept`,children:`Concept`}),(0,F.jsx)(`option`,{value:`sentinel`,children:`Sentinel`})]}),(0,F.jsx)(`svg`,{className:`pointer-events-none absolute right-2.5 h-3.5 w-3.5 text-text-body-mid dark:text-text-muted shrink-0`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,strokeWidth:2,children:(0,F.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M19.5 8.25l-7.5 7.5-7.5-7.5`})})]})]}),(0,F.jsx)(`button`,{onClick:_,className:`inline-flex items-center gap-2 px-3 py-1.5 rounded-md border border-border-default text-text-body-mid hover:text-text-ink hover:bg-surface-100 dark:text-text-muted dark:hover:text-text-on-primary transition-colors shrink-0 cursor-pointer text-xs font-medium`,title:`Switch to ${m===`dark`?`Light`:`Dark`} mode`,children:m===`dark`?(0,F.jsxs)(F.Fragment,{children:[(0,F.jsx)(`svg`,{className:`h-4 w-4 text-warning-400`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,strokeWidth:1.5,children:(0,F.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M12 3v2.25m6.364.386l-1.591 1.591M21 12h-2.25m-.386 6.364l-1.591-1.591M12 18.75V21m-4.773-4.227l-1.591 1.591M5.25 12H3m4.227-4.773L5.636 5.636M15.75 12a3.75 3.75 0 11-7.5 0 3.75 3.75 0 017.5 0z`})}),(0,F.jsx)(`span`,{className:`hidden sm:inline`,children:`Light Mode`})]}):(0,F.jsxs)(F.Fragment,{children:[(0,F.jsx)(`svg`,{className:`h-4 w-4 text-primary-500`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,strokeWidth:1.5,children:(0,F.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M21.752 15.002A9.718 9.718 0 0118 15.75c-5.385 0-9.75-4.365-9.75-9.75 0-1.33.266-2.597.748-3.752A9.753 9.753 0 003 11.25C3 16.635 7.365 21 12.75 21a9.753 9.753 0 009.002-5.998z`})}),(0,F.jsx)(`span`,{className:`hidden sm:inline`,children:`Dark Mode`})]})})]})]}),(0,F.jsx)(`div`,{className:`flex-1 overflow-auto`,children:(0,F.jsxs)(`div`,{className:`mx-auto max-w-full px-6 sm:px-8 pt-4 pb-8`,children:[a&&(0,F.jsx)(`div`,{className:`flex items-center justify-center py-24`,children:(0,F.jsxs)(`div`,{className:`text-center`,children:[(0,F.jsx)(`div`,{className:`mx-auto mb-4 h-8 w-8 animate-spin rounded-full border-4 border-surface-200 border-t-accent-blue`}),(0,F.jsx)(`p`,{className:`text-sm text-text-body-mid`,children:`Loading report…`})]})}),!a&&!r&&(0,F.jsx)(`div`,{className:`flex items-center justify-center py-24 text-center`,children:(0,F.jsxs)(`div`,{children:[(0,F.jsx)(`div`,{className:`mx-auto mb-4 flex h-16 w-16 items-center justify-center rounded-md bg-surface-100`,children:(0,F.jsx)(`svg`,{className:`h-8 w-8 text-text-body-mid`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,strokeWidth:1.5,children:(0,F.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M19.5 14.25v-2.625a3.375 3.375 0 00-3.375-3.375h-1.5A1.125 1.125 0 0113.5 7.125v-1.5a3.375 3.375 0 00-3.375-3.375H8.25m0 12.75h7.5m-7.5 3H12M10.5 2.25H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 00-9-9z`})})}),(0,F.jsx)(`h3`,{className:`text-base font-semibold text-text-ink`,children:`No report data`}),(0,F.jsxs)(`p`,{className:`mt-1 text-sm text-text-body-mid`,children:[`Run your tests with the Zen Reporter to generate a report, or place a`,` `,(0,F.jsx)(`code`,{className:`rounded bg-surface-100 px-1 py-0.5 text-xs font-mono`,children:`report/report.json`}),` `,`in the project.`]})]})}),!a&&r&&(e||O===`overview`)&&y&&(0,F.jsx)(gt,{summary:y,suites:b,isMinimalReport:D}),!a&&!e&&!D&&r&&O===`projects`&&(0,F.jsx)(tB,{suites:b}),!a&&!e&&r&&O===`suites`&&(0,F.jsx)(Rt,{suites:b}),!a&&!e&&r&&O===`files`&&(0,F.jsx)(Gt,{suites:b,isMinimalReport:D}),!a&&!e&&r&&O===`failures`&&(0,F.jsx)(xt,{suites:b,failedCount:C,timedOutCount:w,interruptedCount:T}),!a&&!e&&!D&&O===`trends`&&(0,F.jsx)(MB,{history:s,suites:b,isHistoryDisabled:E}),!a&&!e&&!D&&O===`insights`&&(0,F.jsx)(dB,{history:s,suites:b,isHistoryDisabled:E}),!a&&!e&&!D&&O===`history`&&(0,F.jsx)(IB,{history:s,isHistoryDisabled:E})]})})]})]})}(0,y.createRoot)(document.getElementById(`root`)).render((0,F.jsx)(v.StrictMode,{children:(0,F.jsx)(UB,{})}));</script>
97
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _z(e,t){if(e){if(typeof e==`string`)return vz(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)?vz(e,t):void 0}}function vz(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 yz(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 bz(e){if(Array.isArray(e))return e}var xz=()=>(PO(),null);function Sz(e){if(typeof e==`number`)return e;if(typeof e==`string`){var t=parseFloat(e);if(!Number.isNaN(t))return t}return 0}var Cz=(0,v.forwardRef)((e,t)=>{var n=(0,v.useRef)(null),r=hz((0,v.useState)({containerWidth:Sz(e.style?.width),containerHeight:Sz(e.style?.height)}),2),i=r[0],a=r[1],o=(0,v.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,v.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,v.useEffect)(()=>()=>{n.current?.disconnect()},[o]),v.createElement(v.Fragment,null,v.createElement(Vd,{width:i.containerWidth,height:i.containerHeight}),v.createElement(`div`,mz({ref:s},e)))}),wz=(0,v.forwardRef)((e,t)=>{var n=e.width,r=e.height,i=hz((0,v.useState)({containerWidth:Sz(n),containerHeight:Sz(r)}),2),a=i[0],o=i[1],s=(0,v.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,v.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 v.createElement(v.Fragment,null,v.createElement(Vd,{width:a.containerWidth,height:a.containerHeight}),v.createElement(`div`,mz({ref:c},e)))}),Tz=(0,v.forwardRef)((e,t)=>{var n=e.width,r=e.height;return v.createElement(v.Fragment,null,v.createElement(Vd,{width:n,height:r}),v.createElement(`div`,mz({ref:t},e)))}),Ez=(0,v.forwardRef)((e,t)=>{var n=e.width,r=e.height;return typeof n==`string`||typeof r==`string`?v.createElement(wz,mz({},e,{ref:t})):typeof n==`number`&&typeof r==`number`?v.createElement(Tz,mz({},e,{width:n,height:r,ref:t})):v.createElement(v.Fragment,null,v.createElement(Vd,{width:n,height:r}),v.createElement(`div`,mz({ref:t},e)))});function Dz(e){return e?Cz:Ez}var Oz=(0,v.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,y=e.responsive,b=e.dispatchTouchEvents,x=b===void 0||b,S=(0,v.useRef)(null),C=z(),w=hz((0,v.useState)(null),2),T=w[0],E=w[1],D=hz((0,v.useState)(null),2),O=D[0],k=D[1],A=cz(),j=Dd(),M=j?.width>0?j.width:_,N=j?.height>0?j.height:i,ee=(0,v.useCallback)(e=>{A(e),typeof t==`function`&&t(e),E(e),k(e),e!=null&&(S.current=e)},[A,t,E,k]),te=(0,v.useCallback)(e=>{C(tR(e)),C(CR({handler:a,reactEvent:e}))},[C,a]),ne=(0,v.useCallback)(e=>{C(rR(e)),C(CR({handler:l,reactEvent:e}))},[C,l]),re=(0,v.useCallback)(e=>{C(UT()),C(CR({handler:u,reactEvent:e}))},[C,u]),ie=(0,v.useCallback)(e=>{C(rR(e)),C(CR({handler:d,reactEvent:e}))},[C,d]),ae=(0,v.useCallback)(()=>{C(gR())},[C]),oe=(0,v.useCallback)(()=>{C(_R())},[C]),se=(0,v.useCallback)(e=>{C(hR(e.key))},[C]),ce=(0,v.useCallback)(e=>{C(CR({handler:o,reactEvent:e}))},[C,o]),le=(0,v.useCallback)(e=>{C(CR({handler:s,reactEvent:e}))},[C,s]),ue=(0,v.useCallback)(e=>{C(CR({handler:c,reactEvent:e}))},[C,c]),de=(0,v.useCallback)(e=>{C(CR({handler:f,reactEvent:e}))},[C,f]),fe=(0,v.useCallback)(e=>{C(CR({handler:h,reactEvent:e}))},[C,h]),pe=(0,v.useCallback)(e=>{x&&C(kR(e)),C(CR({handler:m,reactEvent:e}))},[C,x,m]),me=(0,v.useCallback)(e=>{C(CR({handler:p,reactEvent:e}))},[C,p]),he=Dz(y);return v.createElement(cO.Provider,{value:T},v.createElement(qn.Provider,{value:O},v.createElement(he,{width:M??g?.width,height:N??g?.height,className:qt(`recharts-wrapper`,r),style:uz({position:`relative`,cursor:`default`,width:M,height:N},g),onClick:te,onContextMenu:ce,onDoubleClick:le,onFocus:ae,onBlur:oe,onKeyDown:se,onMouseDown:ue,onMouseEnter:ne,onMouseLeave:re,onMouseMove:ie,onMouseUp:de,onTouchEnd:me,onTouchMove:pe,onTouchStart:fe,ref:ee},v.createElement(xz,null),n)))}),kz=[`width`,`height`,`responsive`,`children`,`className`,`style`,`compact`,`title`,`desc`];function Az(e,t){if(e==null)return{};var n,r,i=jz(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 jz(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 Mz=(0,v.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=Qt(Az(e,kz));return c?v.createElement(v.Fragment,null,v.createElement(Vd,{width:n,height:r}),v.createElement(tz,{otherAttributes:d,title:l,desc:u},a)):v.createElement(Oz,{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},v.createElement(tz,{otherAttributes:d,title:l,desc:u,ref:t},v.createElement(jN,null,a)))});function Nz(){return Nz=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},Nz.apply(null,arguments)}function Pz(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 Fz(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?Pz(Object(n),!0).forEach(function(t){Iz(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Pz(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Iz(e,t,n){return(t=Lz(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Lz(e){var t=Rz(e,`string`);return typeof t==`symbol`?t:t+``}function Rz(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 zz=Fz({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`},FR),Bz=(0,v.forwardRef)(function(e,t){var n=Hi(e.categoricalChartProps,zz),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 v.createElement(VR,{preloadedState:{options:c},reduxStoreName:s.id??r},v.createElement(hN,{chartData:s.data}),v.createElement(UR,{layout:n.layout,margin:n.margin}),v.createElement(GR,{throttleDelay:n.throttleDelay,throttledEvents:n.throttledEvents}),v.createElement(WR,{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}),v.createElement(Mz,Nz({},n,{ref:t})))}),Vz=[`axis`],Hz=(0,v.forwardRef)((e,t)=>v.createElement(Bz,{chartName:`LineChart`,defaultTooltipEventType:`axis`,validateTooltipEventTypes:Vz,tooltipPayloadSearcher:mO,categoricalChartProps:e,ref:t})),Uz=[`axis`,`item`],Wz=(0,v.forwardRef)((e,t)=>v.createElement(Bz,{chartName:`BarChart`,defaultTooltipEventType:`axis`,validateTooltipEventTypes:Uz,tooltipPayloadSearcher:mO,categoricalChartProps:e,ref:t})),Gz={Passed:`var(--color-success-500)`,Failed:`var(--color-danger-500)`,Interrupted:`var(--color-danger-600)`,Skipped:`var(--color-text-muted)`,"Timed Out":`var(--color-warning-500)`},Kz=e=>(0,F.jsx)(`span`,{style:{color:`var(--color-text-ink)`,fontSize:`12px`,fontWeight:500},children:e}),qz=e=>{let{active:t,payload:n,label:r}=e;return!t||!n||n.length===0?null:(0,F.jsxs)(`div`,{className:`p-2.5 text-text-ink dark:text-text-on-primary`,children:[(0,F.jsx)(`div`,{className:`font-bold text-xs mb-1.5 border-b border-border-default pb-1`,children:r}),(0,F.jsx)(`div`,{className:`space-y-1 text-xs`,children:n.map(e=>{let t=Number(e.value);if(t<=0)return null;let n=Gz[String(e.name)]||e.color;return(0,F.jsxs)(`div`,{className:`flex items-center justify-between gap-4 font-medium`,children:[(0,F.jsxs)(`span`,{className:`flex items-center gap-1.5 text-text-ink dark:text-text-on-primary`,children:[(0,F.jsx)(`span`,{className:`h-2 w-2 rounded-full`,style:{backgroundColor:n}}),e.name,`:`]}),(0,F.jsx)(`span`,{className:`font-bold tabular-nums text-text-ink dark:text-text-on-primary`,children:t})]},String(e.name))})})]})};function Jz({suites:e,title:t=`Projects Summary`}){let[n,r]=(0,v.useState)(!1),i=ie(re(e)),a=i.reduce((e,t)=>Math.max(e,t.name.length),0),o=Math.max(80,Math.min(240,a*8+24)),s=i.map(e=>({name:e.name,Passed:e.passed,Failed:e.failed,Interrupted:e.interrupted,Skipped:e.skipped,"Timed Out":e.timedOut})),c=Math.max(300,i.length*40+80);return(0,F.jsxs)(`div`,{className:`rounded-md bg-canvas border border-border-default px-6 py-6 shadow-sm flex flex-col justify-between`,children:[(0,F.jsxs)(`div`,{className:`mb-3 flex items-start justify-between gap-2`,children:[(0,F.jsxs)(`div`,{children:[(0,F.jsx)(`h3`,{className:`text-lg font-semibold text-text-ink dark:text-text-on-primary`,children:t}),(0,F.jsx)(`p`,{className:`text-xs text-text-body-mid dark:text-text-muted mt-0.5`,children:`Stacked status breakdown across project profiles`})]}),(0,F.jsx)(Oe,{onClick:()=>r(!0)})]}),(0,F.jsx)(kd,{width:`100%`,height:c,children:(0,F.jsxs)(Wz,{data:s,layout:`vertical`,margin:{top:5,right:15,left:10,bottom:5},barSize:18,children:[(0,F.jsx)(eF,{strokeDasharray:`3 3`,stroke:`var(--color-border-chart)`,horizontal:!1}),(0,F.jsx)(IL,{type:`number`,fontSize:12,tick:{fill:`var(--color-text-muted)`},allowDecimals:!1}),(0,F.jsx)(ZL,{type:`category`,dataKey:`name`,fontSize:12,width:o,tick:{fill:`var(--color-text-muted)`},tickFormatter:e=>e.length===a&&a>0?`\u00A0${e}`:e}),(0,F.jsx)(ZO,{content:qz,wrapperStyle:{backgroundColor:`var(--color-surface-100)`,border:`1px solid var(--color-border-default)`,borderRadius:`0.5rem`,boxShadow:`0 4px 6px -1px rgba(0, 0, 0, 0.1)`,outline:`none`}}),(0,F.jsx)(Wf,{formatter:Kz,iconType:`circle`,wrapperStyle:{paddingTop:`8px`,textAlign:`center`,width:`100%`,fontSize:`12px`}}),(0,F.jsx)(hL,{dataKey:`Passed`,stackId:`status`,fill:`var(--color-success-500)`,radius:[0,0,0,0]}),(0,F.jsx)(hL,{dataKey:`Failed`,stackId:`status`,fill:`var(--color-danger-500)`,radius:[0,0,0,0]}),(0,F.jsx)(hL,{dataKey:`Interrupted`,stackId:`status`,fill:`var(--color-danger-600)`,radius:[0,0,0,0]}),(0,F.jsx)(hL,{dataKey:`Skipped`,stackId:`status`,fill:`var(--color-text-muted)`,radius:[0,0,0,0]}),(0,F.jsx)(hL,{dataKey:`Timed Out`,stackId:`status`,fill:`var(--color-warning-500)`,radius:[0,4,4,0]})]})}),(0,F.jsxs)(ot,{isOpen:n,onClose:()=>r(!1),title:`About Status Breakdown by Project`,subtitle:`Stacked status breakdown across project profiles`,children:[(0,F.jsx)(`p`,{children:`This horizontal stacked bar chart displays the distribution of test execution outcomes for each configured Playwright project profile (e.g., Chromium, Firefox, WebKit, Mobile Chrome).`}),(0,F.jsxs)(`div`,{children:[(0,F.jsx)(`h5`,{className:`font-semibold text-text-ink dark:text-text-on-primary mb-1`,children:`Status Categories:`}),(0,F.jsxs)(`ul`,{className:`list-disc pl-4 space-y-1`,children:[(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{className:`text-success-600 dark:text-success-500`,children:`Passed:`}),` Tests that executed and satisfied all assertion checks within timeout limits.`]}),(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{className:`text-danger-600 dark:text-danger-500`,children:`Failed:`}),` Hard assertion failures or unhandled runtime exceptions.`]}),(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{className:`text-warning-600 dark:text-warning-500`,children:`Timed Out:`}),` Tests exceeding the configured Playwright project timeout limit.`]}),(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{className:`text-danger-700 dark:text-danger-400`,children:`Interrupted:`}),` Tests cancelled due to worker signals or parent run aborts.`]}),(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{className:`text-text-muted`,children:`Skipped:`}),` Tests conditionally bypassed (`,(0,F.jsx)(`code`,{className:`font-mono bg-surface-100 px-1 py-0.5 rounded text-[10px]`,children:`test.skip()`}),`).`]})]})]}),(0,F.jsxs)(`div`,{children:[(0,F.jsx)(`h5`,{className:`font-semibold text-text-ink dark:text-text-on-primary mb-1`,children:`Diagnostic Insights:`}),(0,F.jsx)(`p`,{children:`Comparing status stacks across projects allows you to immediately pinpoint browser-specific regressions. If failures concentrate in WebKit while Chromium passes, focus debugging on Safari rendering standards or engine differences.`})]})]})]})}function Yz({kpis:e}){let t=[{label:`Total Projects`,value:`${e.totalProjects}`,subtext:e.totalProjects===1?`1 Playwright Project`:`${e.totalProjects} Playwright Projects`,description:`Total number of configured Playwright project profiles in this test run`,badgeClass:`bg-success-500/10 text-success-600 dark:bg-success-500/20 dark:text-success-500`},{label:`Most Stable Project`,value:e.mostStableProject?e.mostStableProject.name:`N/A`,subtext:e.mostStableProject?`${e.mostStableProject.passRate}% Pass Rate (${e.mostStableProject.total} tests)`:`No tests`,description:`Project target with the highest pass rate and lowest flakiness rate`,badgeClass:`bg-success-500/10 text-success-600 dark:bg-success-500/20 dark:text-success-500`},{label:`Slowest Project`,value:e.slowestProject?e.slowestProject.name:`N/A`,subtext:e.slowestProject?`${j(e.slowestProject.totalDuration)} total (${j(e.slowestProject.avgDuration)} avg)`:`No tests`,description:`Project target consuming the highest cumulative execution duration`,badgeClass:`bg-warning-500/10 text-warning-600 dark:bg-warning-500/20 dark:text-warning-500`},{label:`Parity Variance`,value:`${e.passRateParityDelta}%`,subtext:e.passRateParityDelta===0?`Perfect cross-project consistency`:`${e.passRateParityDelta}% pass rate gap across targets`,description:`Difference between the highest and lowest project pass rates`,badgeClass:e.passRateParityDelta>15?`bg-danger-500/10 text-danger-600 dark:bg-danger-500/20 dark:text-danger-500`:`bg-success-500/10 text-success-600 dark:bg-success-500/20 dark:text-success-500`},{label:`Flaky Tests`,value:`${e.totalFlakyCount}`,subtext:e.totalFlakyCount===0?`0 Retries detected`:`${e.totalFlakyCount} tests required retries`,description:`Count of test cases across all projects that required retries to pass`,badgeClass:e.totalFlakyCount>0?`bg-warning-500/10 text-warning-600 dark:bg-warning-500/20 dark:text-warning-500`:`bg-success-500/10 text-success-600 dark:bg-success-500/20 dark:text-success-500`}];return(0,F.jsx)(`div`,{className:`grid grid-cols-2 gap-4 lg:grid-cols-5`,children:t.map((e,n)=>(0,F.jsx)(Ae,{label:e.label,value:e.value,subtext:e.subtext,description:e.description,badgeClass:e.badgeClass,isFirst:n===0,isLast:n===t.length-1},e.label))})}var Xz={Executed:`var(--color-success-500)`,Skipped:`var(--color-text-muted)`},Zz=e=>(0,F.jsx)(`span`,{style:{color:Xz[e]||`var(--color-text-muted)`,fontSize:`12px`},children:e}),Qz=e=>{let{active:t,payload:n,label:r}=e;if(!t||!n||n.length===0)return null;let i=n[0]?.payload;return i?(0,F.jsxs)(`div`,{className:`p-3 text-text-ink dark:text-text-on-primary`,children:[(0,F.jsx)(`div`,{className:`font-bold text-xs mb-1 border-b border-border-default pb-1`,children:r}),(0,F.jsxs)(`div`,{className:`space-y-1 text-xs`,children:[(0,F.jsxs)(`div`,{className:`flex justify-between gap-4`,children:[(0,F.jsx)(`span`,{className:`text-text-body-mid dark:text-text-muted`,children:`Total Tests:`}),(0,F.jsx)(`span`,{className:`font-bold tabular-nums`,children:i.total})]}),(0,F.jsxs)(`div`,{className:`flex justify-between gap-4`,children:[(0,F.jsxs)(`span`,{className:`flex items-center gap-1.5 text-success-600 dark:text-success-500`,children:[(0,F.jsx)(`span`,{className:`h-2 w-2 rounded-full bg-success-500`}),`Executed Tests:`]}),(0,F.jsx)(`span`,{className:`font-bold tabular-nums`,children:i.Executed})]}),(0,F.jsxs)(`div`,{className:`flex justify-between gap-4`,children:[(0,F.jsxs)(`span`,{className:`flex items-center gap-1.5 text-slate-500 dark:text-slate-400`,children:[(0,F.jsx)(`span`,{className:`h-2 w-2 rounded-full bg-slate-400`}),`Skipped Tests:`]}),(0,F.jsx)(`span`,{className:`font-bold tabular-nums`,children:i.Skipped})]}),(0,F.jsxs)(`div`,{className:`flex justify-between gap-4 pt-1 border-t border-border-default font-semibold`,children:[(0,F.jsx)(`span`,{className:`text-emerald-600 dark:text-emerald-400`,children:`Coverage Density:`}),(0,F.jsxs)(`span`,{className:`font-bold tabular-nums text-emerald-600 dark:text-emerald-400`,children:[i[`Coverage Density (%)`],`%`]})]})]})]}):null};function $z({projectStats:e,title:t=`Test Volume & Coverage Density per Project`}){let[n,r]=(0,v.useState)(!1),i=e.reduce((e,t)=>Math.max(e,t.name.length),0),a=Math.max(80,Math.min(240,i*8+24)),o=e.map(e=>{let t=e.total-e.skipped,n=e.total>0?Math.round(t/e.total*100):0;return{name:e.name,Executed:t,Skipped:e.skipped,"Coverage Density (%)":n,total:e.total}}),s=Math.max(300,e.length*40+80);return(0,F.jsxs)(`div`,{className:`rounded-md bg-canvas border border-border-default px-6 py-6 shadow-sm flex flex-col justify-between`,children:[(0,F.jsxs)(`div`,{className:`mb-3 flex items-start justify-between gap-2`,children:[(0,F.jsxs)(`div`,{children:[(0,F.jsx)(`h3`,{className:`text-lg font-semibold text-text-ink dark:text-text-on-primary`,children:t}),(0,F.jsx)(`p`,{className:`text-xs text-text-body-mid dark:text-text-muted mt-0.5`,children:`Executed vs skipped test load and active test coverage density across projects`})]}),(0,F.jsx)(Oe,{onClick:()=>r(!0)})]}),(0,F.jsx)(kd,{width:`100%`,height:s,children:(0,F.jsxs)(Wz,{data:o,layout:`vertical`,margin:{top:5,right:20,left:10,bottom:5},barSize:18,barGap:4,children:[(0,F.jsx)(eF,{strokeDasharray:`3 3`,stroke:`var(--color-border-chart)`,horizontal:!1}),(0,F.jsx)(IL,{type:`number`,fontSize:12,tick:{fill:`var(--color-text-muted)`}}),(0,F.jsx)(ZL,{type:`category`,dataKey:`name`,width:a,fontSize:12,tick:{fill:`var(--color-text-ink)`}}),(0,F.jsx)(ZO,{content:Qz,wrapperStyle:{backgroundColor:`var(--color-surface-100)`,border:`1px solid var(--color-border-default)`,borderRadius:`0.5rem`,boxShadow:`0 4px 6px -1px rgba(0, 0, 0, 0.1)`,outline:`none`}}),(0,F.jsx)(Wf,{formatter:Zz,iconType:`circle`,wrapperStyle:{paddingTop:`8px`,textAlign:`center`,width:`100%`,fontSize:`12px`}}),(0,F.jsx)(hL,{dataKey:`Executed`,stackId:`a`,fill:`var(--color-success-500)`,radius:[0,0,0,0]}),(0,F.jsx)(hL,{dataKey:`Skipped`,stackId:`a`,fill:`var(--color-border-chart)`,radius:[0,4,4,0]})]})}),(0,F.jsxs)(ot,{isOpen:n,onClose:()=>r(!1),title:`About Test Volume & Coverage Density`,subtitle:`Understanding test suite distribution and active execution coverage`,children:[(0,F.jsx)(`p`,{children:`This chart benchmarks the total test case load and execution density across configured target project profiles (browsers and platforms).`}),(0,F.jsxs)(`div`,{className:`rounded-md border border-border-default bg-surface-50 p-3 space-y-2`,children:[(0,F.jsx)(`div`,{className:`font-bold text-text-ink dark:text-text-on-primary text-xs uppercase tracking-wider`,children:`Key Metrics:`}),(0,F.jsxs)(`ul`,{className:`list-disc list-inside space-y-1.5`,children:[(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{className:`text-sky-600 dark:text-sky-400`,children:`Executed Tests:`}),` Active test cases that ran to completion (Passed, Failed, Timed Out, or Interrupted).`]}),(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{className:`text-slate-600 dark:text-slate-400`,children:`Skipped Tests:`}),` Test cases bypassed via `,(0,F.jsx)(`code`,{className:`bg-surface-200 px-1 rounded`,children:`test.skip()`}),` or conditional tags.`]}),(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{className:`text-emerald-600 dark:text-emerald-400`,children:`Coverage Density (%):`}),` `,`The ratio of executed tests over total tests (`,(0,F.jsx)(`code`,{className:`bg-surface-200 px-1 rounded`,children:`Executed / Total * 100`}),`).`]})]})]}),(0,F.jsxs)(`div`,{className:`rounded-md border border-border-default bg-surface-50 p-3 space-y-2`,children:[(0,F.jsx)(`div`,{className:`font-bold text-text-ink dark:text-text-on-primary text-xs uppercase tracking-wider`,children:`Operational Guidelines:`}),(0,F.jsxs)(`ul`,{className:`list-disc list-inside space-y-1`,children:[(0,F.jsx)(`li`,{children:`Ensure all target environments maintain high coverage density (≥95%).`}),(0,F.jsx)(`li`,{children:`Unintended gaps between environments reveal browser-specific skips or conditional test exclusions.`})]})]})]})]})}function eB({projectStats:e}){let[t,n]=(0,v.useState)(``),[r,i]=(0,v.useState)(`passRate`),[a,o]=(0,v.useState)({}),[s,c]=(0,v.useState)(!1),l=e=>{o(t=>({...t,[e]:!t[e]}))},u=(0,v.useMemo)(()=>{let n=e.filter(e=>e.name.toLowerCase().includes(t.toLowerCase().trim()));return n=[...n].sort((e,t)=>r===`passRate`?t.passRate===e.passRate?e.flakyRate-t.flakyRate:t.passRate-e.passRate:r===`duration`?t.totalDuration-e.totalDuration:r===`flakiness`?t.flakyCount-e.flakyCount:r===`total`?t.total-e.total:r===`name`?e.name.localeCompare(t.name):0),n},[e,t,r]);return(0,F.jsxs)(`div`,{className:`w-full rounded-lg bg-canvas border border-border-default p-5 shadow-sm space-y-4`,children:[(0,F.jsxs)(`div`,{className:`flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between border-b border-border-default pb-4`,children:[(0,F.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,F.jsx)(`h3`,{className:`text-base font-bold text-text-ink dark:text-text-on-primary shrink-0`,children:`Project Health & Breakdown`}),(0,F.jsxs)(`span`,{className:`rounded-full bg-surface-100 dark:bg-surface-100 px-2.5 py-0.5 text-xs font-semibold text-text-body-mid dark:text-text-muted border border-border-default`,children:[u.length,` Projects`]}),(0,F.jsx)(Oe,{onClick:()=>c(!0)})]}),(0,F.jsxs)(`div`,{className:`flex flex-wrap items-center gap-3`,children:[(0,F.jsx)(st,{value:t,onChange:n,placeholder:`Search projects...`,className:`min-w-50 flex-1 sm:flex-initial`,inputClassName:`w-full rounded-md border border-border-default bg-surface-50 pl-9 pr-7 py-1.5 text-xs text-text-ink placeholder:text-text-muted focus:border-accent-blue focus:outline-none dark:bg-surface-50 dark:text-text-on-primary`}),(0,F.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,F.jsx)(`label`,{htmlFor:`project-sort-select`,className:`text-xs text-text-body-mid dark:text-text-muted shrink-0 font-medium`,children:`Sort by:`}),(0,F.jsxs)(`div`,{className:`relative inline-flex items-center`,children:[(0,F.jsxs)(`select`,{id:`project-sort-select`,value:r,onChange:e=>i(e.target.value),className:`appearance-none rounded-md border border-border-default bg-surface-50 pl-3 pr-8 py-1.5 text-xs text-text-ink focus:border-accent-blue focus:outline-none dark:bg-surface-50 dark:text-text-on-primary font-medium cursor-pointer`,children:[(0,F.jsx)(`option`,{value:`passRate`,children:`Highest Pass Rate`}),(0,F.jsx)(`option`,{value:`duration`,children:`Longest Duration`}),(0,F.jsx)(`option`,{value:`flakiness`,children:`Most Flaky Tests`}),(0,F.jsx)(`option`,{value:`total`,children:`Most Tests`}),(0,F.jsx)(`option`,{value:`name`,children:`Project Name`})]}),(0,F.jsx)(`svg`,{className:`pointer-events-none absolute right-2.5 h-3.5 w-3.5 text-text-body-mid dark:text-text-muted shrink-0`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,strokeWidth:2,children:(0,F.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M19.5 8.25l-7.5 7.5-7.5-7.5`})})]})]})]})]}),(0,F.jsx)(`div`,{className:`grid grid-cols-1 gap-4 pt-1`,children:u.map(e=>{let t=!!a[e.name],n=e.cases.filter(e=>e.status===`failed`||e.status===`timedOut`||e.status===`interrupted`),r=e.passRate>=90?`text-success-600 dark:text-success-500 bg-success-50 dark:bg-success-500/20`:e.passRate>=75?`text-warning-600 dark:text-warning-500 bg-warning-50 dark:bg-warning-500/20`:`text-danger-600 dark:text-danger-500 bg-danger-50 dark:bg-danger-500/20`,i=e.passRate>=90?`bg-success-500`:e.passRate>=75?`bg-warning-500`:`bg-danger-500`;return(0,F.jsxs)(`div`,{className:`rounded-md bg-surface-50/50 border border-border-default shadow-xs transition-all duration-150 overflow-hidden`,children:[(0,F.jsxs)(`div`,{className:`p-5`,children:[(0,F.jsxs)(`div`,{className:`flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between`,children:[(0,F.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,F.jsx)(`div`,{className:`flex h-10 w-10 items-center justify-center rounded-lg bg-surface-100 border border-border-default shrink-0`,children:(0,F.jsxs)(`svg`,{className:`h-5 w-5 text-accent-blue`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,strokeWidth:1.5,children:[(0,F.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M12 21a9 9 0 100-18 9 9 0 000 18z`}),(0,F.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M15.414 8.586l-2.828 5.657-5.657 2.828 2.828-5.657 5.657-2.828z`})]})}),(0,F.jsxs)(`div`,{children:[(0,F.jsxs)(`h4`,{className:`text-base font-bold text-text-ink dark:text-text-on-primary flex items-center gap-2`,children:[(0,F.jsx)(`span`,{children:e.name}),(0,F.jsxs)(`span`,{className:`rounded px-1.5 py-0.5 text-[10px] font-semibold bg-warning-500/10 text-warning-600 dark:bg-warning-500/20 dark:text-warning-500 shrink-0 border border-warning-500/20`,title:`Average test duration is ${e.speedMultiplier}x relative to overall run average`,children:[`⚡ `,e.speedMultiplier,`x speed factor`]})]}),(0,F.jsxs)(`p`,{className:`text-xs text-text-body-mid dark:text-text-muted mt-0.5`,children:[e.total,` Tests executed across `,e.uniqueFiles,` spec files`]})]})]}),(0,F.jsxs)(`div`,{className:`flex items-center gap-3 shrink-0`,children:[(0,F.jsxs)(`div`,{className:`flex flex-col justify-center h-10 text-right`,children:[(0,F.jsx)(`span`,{className:`text-[11px] font-medium leading-tight text-text-body-mid dark:text-text-muted block`,children:`Pass Rate`}),(0,F.jsxs)(`span`,{className:`text-base font-extrabold leading-tight text-text-ink dark:text-text-on-primary block`,children:[e.passRate,`%`]})]}),(0,F.jsxs)(`div`,{className:`flex h-10 min-w-14 items-center justify-center rounded-md px-3 font-bold text-sm ${r}`,children:[e.passed,`/`,e.total]})]})]}),(0,F.jsx)(`div`,{className:`mt-4 h-2 w-full overflow-hidden rounded-full bg-surface-200`,children:(0,F.jsx)(`div`,{className:`h-full ${i} transition-all duration-300`,style:{width:`${e.passRate}%`}})}),(0,F.jsxs)(`div`,{className:`mt-4 grid grid-cols-2 gap-2 sm:grid-cols-4 lg:grid-cols-6 text-xs`,children:[(0,F.jsxs)(`div`,{className:`rounded bg-canvas border border-border-default px-3 py-2`,children:[(0,F.jsx)(`span`,{className:`text-[10px] font-semibold text-text-muted uppercase block`,children:`Status Breakdown`}),(0,F.jsxs)(`div`,{className:`mt-1 flex items-center gap-1.5 flex-wrap font-medium`,children:[(0,F.jsxs)(`span`,{className:`text-success-600 dark:text-success-500`,children:[e.passed,` Pass`]}),e.failed>0&&(0,F.jsxs)(`span`,{className:`text-danger-600 dark:text-danger-500`,children:[`• `,e.failed,` Fail`]}),e.timedOut>0&&(0,F.jsxs)(`span`,{className:`text-warning-600 dark:text-warning-500`,children:[`• `,e.timedOut,` Timeout`]}),e.skipped>0&&(0,F.jsxs)(`span`,{className:`text-text-muted`,children:[`• `,e.skipped,` Skip`]})]})]}),(0,F.jsxs)(`div`,{className:`rounded bg-canvas border border-border-default px-3 py-2`,children:[(0,F.jsx)(`span`,{className:`text-[10px] font-semibold text-text-muted uppercase block`,children:`Total Duration`}),(0,F.jsx)(`span`,{className:`mt-1 font-bold text-text-ink dark:text-text-on-primary block`,children:j(e.totalDuration)})]}),(0,F.jsxs)(`div`,{className:`rounded bg-canvas border border-border-default px-3 py-2`,children:[(0,F.jsx)(`span`,{className:`text-[10px] font-semibold text-text-muted uppercase block`,children:`Avg / Test`}),(0,F.jsx)(`span`,{className:`mt-1 font-bold text-text-ink dark:text-text-on-primary block`,children:j(e.avgDuration)})]}),(0,F.jsxs)(`div`,{className:`rounded bg-canvas border border-border-default px-3 py-2`,children:[(0,F.jsx)(`span`,{className:`text-[10px] font-semibold text-text-muted uppercase block`,children:`P95 Latency`}),(0,F.jsx)(`span`,{className:`mt-1 font-bold text-text-ink dark:text-text-on-primary block`,children:j(e.p95Duration)})]}),(0,F.jsxs)(`div`,{className:`rounded bg-canvas border border-border-default px-3 py-2`,children:[(0,F.jsx)(`span`,{className:`text-[10px] font-semibold text-text-muted uppercase block`,children:`Flaky / Retries`}),(0,F.jsxs)(`span`,{className:`mt-1 font-bold block ${e.flakyCount>0?`text-warning-600 dark:text-warning-500`:`text-text-ink dark:text-text-on-primary`}`,children:[e.flakyCount,` (`,e.flakyRate,`%)`]})]}),(0,F.jsxs)(`div`,{className:`rounded bg-canvas border border-border-default px-3 py-2`,children:[(0,F.jsx)(`span`,{className:`text-[10px] font-semibold text-text-muted uppercase block`,children:`Scope & Tags`}),(0,F.jsxs)(`span`,{className:`mt-1 font-bold text-text-ink dark:text-text-on-primary block`,children:[e.uniqueFiles,` Files / `,e.uniqueTagsCount,` Tags`]})]})]}),n.length>0&&(0,F.jsxs)(`div`,{className:`mt-4 pt-3 border-t border-border-default flex items-center justify-between`,children:[(0,F.jsxs)(`span`,{className:`text-xs font-semibold text-danger-600 dark:text-danger-500 flex items-center gap-1.5`,children:[(0,F.jsx)(`svg`,{className:`h-4 w-4`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,strokeWidth:2,children:(0,F.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M12 9v3.75m9-.75a9 9 0 11-18 0 9 9 0 0118 0zm-9 3.75h.008v.008H12v-.008z`})}),n.length,` Failing / Timed Out test(s) in `,e.name]}),(0,F.jsxs)(`button`,{onClick:()=>l(e.name),className:`inline-flex items-center gap-1.5 text-xs font-semibold text-accent-blue hover:underline cursor-pointer`,children:[(0,F.jsx)(`span`,{children:t?`Hide Failures`:`View Failures`}),(0,F.jsx)(`svg`,{className:`h-4 w-4 transition-transform duration-200 ${t?`rotate-180`:``}`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,strokeWidth:2,children:(0,F.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M19.5 8.25l-7.5 7.5-7.5-7.5`})})]})]})]}),t&&n.length>0&&(0,F.jsxs)(`div`,{className:`bg-canvas border-t border-border-default p-4 space-y-3`,children:[(0,F.jsxs)(`h5`,{className:`text-xs font-bold uppercase tracking-wider text-text-muted mb-2`,children:[`Failed / Timed Out Cases in `,e.name]}),(0,F.jsx)(`div`,{className:`space-y-2`,children:n.map(e=>(0,F.jsx)(qe,{testCase:e,showSteps:!0},`${e.project}-${e.fileName}-${e.title}`))})]})]},e.name)})}),(0,F.jsxs)(ot,{isOpen:s,onClose:()=>c(!1),title:`Project Health & Breakdown Guide`,subtitle:`Understanding project metrics, performance distributions, and diagnostic controls`,children:[(0,F.jsxs)(`p`,{children:[`The`,` `,(0,F.jsx)(`strong`,{className:`text-text-ink dark:text-text-on-primary`,children:`Project Health & Breakdown`}),` `,`panel provides granular execution metrics scoped to each configured Playwright project profile (e.g., cross-browser targets like Chromium, Firefox, WebKit, or custom test configurations).`]}),(0,F.jsxs)(`div`,{className:`rounded-md border border-border-default bg-surface-50 p-4 space-y-2.5`,children:[(0,F.jsx)(`div`,{className:`font-bold text-text-ink dark:text-text-on-primary text-xs uppercase tracking-wider`,children:`Key Metrics & Health Indicators:`}),(0,F.jsxs)(`ul`,{className:`list-disc list-inside space-y-1.5`,children:[(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`Pass Rate:`}),` Percentage of test cases in the project profile that executed cleanly to completion.`]}),(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`Execution Duration:`}),` Cumulative runtime and average duration per test case within the project target.`]}),(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`Duration Percentiles (p95, Median, Min, Max):`}),` Detailed timing stats to identify long-tail execution bottlenecks across specs.`]}),(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`Retries & In-Run Flakiness:`}),` Count and percentage of test cases that failed on initial attempt but succeeded after automatic retries.`]})]})]}),(0,F.jsxs)(`div`,{className:`rounded-md border border-border-default bg-surface-50 p-4 space-y-2.5`,children:[(0,F.jsx)(`div`,{className:`font-bold text-text-ink dark:text-text-on-primary text-xs uppercase tracking-wider`,children:`Diagnostic Controls & Deep Dives:`}),(0,F.jsxs)(`ul`,{className:`list-disc list-inside space-y-1.5`,children:[(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`Search & Sort:`}),` Quickly filter project profiles by name or sort by Pass Rate, Cumulative Duration, Retry Count, or Total Test Volume.`]}),(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`Expandable Failure Details:`}),` Click any project card with errors to expand and inspect step-by-step logs, stack traces, snippets, and attachments scoped strictly to that project target.`]})]})]})]})]})}function tB({suites:e}){let t=ie(re(e)),n=ae(t);return(0,F.jsxs)(`div`,{className:`w-full space-y-6`,children:[(0,F.jsxs)(`div`,{children:[(0,F.jsx)(`h2`,{className:`text-2xl font-bold tracking-tight text-text-ink dark:text-text-on-primary sm:text-3xl`,children:`Projects Overview`}),(0,F.jsx)(`p`,{className:`mt-1 text-sm text-text-body-mid dark:text-text-muted`,children:`Execution breakdown, status metrics, and cross-project test results.`})]}),(0,F.jsx)(Yz,{kpis:n}),(0,F.jsxs)(`div`,{className:`grid grid-cols-1 gap-6 lg:grid-cols-2 items-stretch`,children:[(0,F.jsx)(Jz,{suites:e,title:`Status Breakdown by Project`}),(0,F.jsx)($z,{projectStats:t,title:`Test Volume & Coverage Density per Project`})]}),(0,F.jsx)(eB,{projectStats:t})]})}function nB({activeModal:e,onClose:t}){return(0,F.jsxs)(F.Fragment,{children:[(0,F.jsxs)(ot,{isOpen:e===`flaky-tests`,onClose:t,title:`Flaky Test Analytics Guide`,subtitle:`Metric definitions, targets, and diagnostic guidelines for Zen Reporter`,children:[(0,F.jsxs)(`p`,{children:[`The`,` `,(0,F.jsx)(`strong`,{className:`text-text-ink dark:text-text-on-primary`,children:`Flaky Tests Analytics`}),` `,`table identifies non-deterministic tests that recorded BOTH passed and failed outcomes across historical test runs (minimum 1 failure and 1 success).`]}),(0,F.jsxs)(`div`,{className:`rounded-md border border-primary-500/20 bg-primary-500/5 p-3.5 space-y-1.5`,children:[(0,F.jsx)(`div`,{className:`font-bold text-text-ink dark:text-text-on-primary text-xs flex items-center gap-1.5`,children:(0,F.jsx)(`span`,{className:`text-primary-600 dark:text-primary-400 font-bold`,children:`ℹ Note on Flakiness & Retry Definitions:`})}),(0,F.jsxs)(`p`,{className:`text-xs text-text-body-mid dark:text-text-muted`,children:[(0,F.jsx)(`strong`,{children:`Insights Tab (Historical Instability):`}),` Evaluates non-deterministic test behavior aggregated across multiple historical runs over time.`,(0,F.jsx)(`br`,{}),(0,F.jsx)(`strong`,{children:`Files, Projects & Overview Tabs (In-Run Retries):`}),` Measures Playwright's official in-run retry status (test cases that failed initial execution but passed upon automatic retry within the single run).`]})]}),(0,F.jsxs)(`div`,{className:`rounded-md border border-border-default bg-surface-50 p-4 space-y-2`,children:[(0,F.jsx)(`div`,{className:`font-bold text-text-ink dark:text-text-on-primary text-xs uppercase tracking-wider`,children:`Remediation Guidelines:`}),(0,F.jsxs)(`ul`,{className:`list-disc list-inside space-y-1`,children:[(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`Recovered by Retry:`}),` Tracks tests that failed on attempt #1 but passed on automatic retry.`]}),(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`Eliminate Pauses:`})," Replace explicit `page.waitForTimeout()` delays with web-first assertions like `expect(locator).toBeVisible()`."]}),(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`State Isolation:`}),` Ensure test cases do not share global mutable state or session tokens.`]})]})]}),(0,F.jsxs)(`div`,{className:`rounded-md border border-border-default bg-surface-50 p-4 space-y-2`,children:[(0,F.jsx)(`div`,{className:`font-bold text-text-ink dark:text-text-on-primary text-xs uppercase tracking-wider`,children:`Filtering & Export Capabilities:`}),(0,F.jsxs)(`ul`,{className:`list-disc list-inside space-y-1`,children:[(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`Date Range Filter:`}),` Filter flaky test analytics for All Time, specific calendar months, or custom date ranges.`]}),(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`Test Search:`}),` Dynamically search tests by title, suite, or project without clearing active date filters.`]}),(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`Export CSV:`}),` Download all filtered flaky test records into an RFC 4180-compliant CSV file (un-paginated).`]})]})]})]}),(0,F.jsxs)(ot,{isOpen:e===`regressions`,onClose:t,title:`Test Regressions Guide`,subtitle:`Metric definitions, targets, and diagnostic guidelines for Zen Reporter`,children:[(0,F.jsxs)(`p`,{children:[`The `,(0,F.jsx)(`strong`,{className:`text-text-ink dark:text-text-on-primary`,children:`Test Regressions`}),` `,`table tracks test cases that previously succeeded in an earlier run but broke and failed in a subsequent execution.`]}),(0,F.jsxs)(`div`,{className:`rounded-md border border-border-default bg-surface-50 p-4 space-y-2.5`,children:[(0,F.jsx)(`div`,{className:`font-bold text-text-ink dark:text-text-on-primary text-xs uppercase tracking-wider`,children:`Last Run Status Meanings & Next Actions Required:`}),(0,F.jsxs)(`div`,{className:`space-y-2`,children:[(0,F.jsxs)(`div`,{className:`grid grid-cols-[100px_1fr] items-start gap-3 rounded bg-surface-100 p-2.5 border border-border-default`,children:[(0,F.jsx)(`div`,{className:`shrink-0 pt-0.5`,children:(0,F.jsx)(`span`,{className:`inline-flex w-full items-center justify-center rounded-full px-2.5 py-0.5 text-xs font-semibold bg-success-50 text-success-600 dark:bg-success-500/10 dark:text-success-500 text-center`,children:`Passed`})}),(0,F.jsxs)(`div`,{children:[(0,F.jsx)(`div`,{className:`font-bold text-text-ink dark:text-text-on-primary text-xs`,children:`Regression Resolved`}),(0,F.jsxs)(`p`,{className:`text-xs text-text-body-mid dark:text-text-muted mt-0.5`,children:[`The test regressed in a prior run, but passed cleanly in the most recent run.`,(0,F.jsx)(`span`,{className:`block font-semibold text-success-600 dark:text-success-400 mt-1`,children:`✓ Next Action: None required. The regression has been resolved.`})]})]})]}),(0,F.jsxs)(`div`,{className:`grid grid-cols-[100px_1fr] items-start gap-3 rounded bg-surface-100 p-2.5 border border-border-default`,children:[(0,F.jsx)(`div`,{className:`shrink-0 pt-0.5`,children:(0,F.jsx)(`span`,{className:`inline-flex w-full items-center justify-center rounded-full px-2.5 py-0.5 text-xs font-semibold bg-danger-50 text-danger-600 dark:bg-danger-500/10 dark:text-danger-500 text-center`,children:`Failed`})}),(0,F.jsxs)(`div`,{children:[(0,F.jsx)(`div`,{className:`font-bold text-text-ink dark:text-text-on-primary text-xs`,children:`Active Test Failure`}),(0,F.jsxs)(`p`,{className:`text-xs text-text-body-mid dark:text-text-muted mt-0.5`,children:[`The test failed during the most recent run due to an assertion failure or uncaught exception.`,(0,F.jsx)(`span`,{className:`block font-semibold text-danger-600 dark:text-danger-400 mt-1`,children:`⚠️ Next Action: Priority fix required. Inspect stack trace in Failures tab.`})]})]})]}),(0,F.jsxs)(`div`,{className:`grid grid-cols-[100px_1fr] items-start gap-3 rounded bg-surface-100 p-2.5 border border-border-default`,children:[(0,F.jsx)(`div`,{className:`shrink-0 pt-0.5`,children:(0,F.jsx)(`span`,{className:`inline-flex w-full items-center justify-center rounded-full px-2.5 py-0.5 text-xs font-semibold bg-warning-50 text-warning-600 dark:bg-warning-500/10 dark:text-warning-500 text-center`,children:`Timed Out`})}),(0,F.jsxs)(`div`,{children:[(0,F.jsx)(`div`,{className:`font-bold text-text-ink dark:text-text-on-primary text-xs`,children:`Execution Timeout`}),(0,F.jsxs)(`p`,{className:`text-xs text-text-body-mid dark:text-text-muted mt-0.5`,children:[`The test exceeded its maximum allocated runtime (e.g. 30,000ms) without completing.`,(0,F.jsx)(`span`,{className:`block font-semibold text-warning-600 dark:text-warning-400 mt-1`,children:`⏱️ Next Action: Check for hanging promises, unhandled dynamic waits, or backend latency.`})]})]})]}),(0,F.jsxs)(`div`,{className:`grid grid-cols-[100px_1fr] items-start gap-3 rounded bg-surface-100 p-2.5 border border-border-default`,children:[(0,F.jsx)(`div`,{className:`shrink-0 pt-0.5`,children:(0,F.jsx)(`span`,{className:`inline-flex w-full items-center justify-center rounded-full px-2.5 py-0.5 text-xs font-semibold bg-danger-50 text-danger-600 dark:bg-danger-500/10 dark:text-danger-500 text-center`,children:`Interrupted`})}),(0,F.jsxs)(`div`,{children:[(0,F.jsx)(`div`,{className:`font-bold text-text-ink dark:text-text-on-primary text-xs`,children:`Run Cancelled / Interrupted`}),(0,F.jsxs)(`p`,{className:`text-xs text-text-body-mid dark:text-text-muted mt-0.5`,children:[`The test run was terminated early (e.g. SIGINT or CI worker cancellation) before completion.`,(0,F.jsx)(`span`,{className:`block font-semibold text-text-body-mid dark:text-text-muted mt-1`,children:`🔄 Next Action: Re-run the test suite to establish current status.`})]})]})]}),(0,F.jsxs)(`div`,{className:`grid grid-cols-[100px_1fr] items-start gap-3 rounded bg-surface-100 p-2.5 border border-border-default`,children:[(0,F.jsx)(`div`,{className:`shrink-0 pt-0.5`,children:(0,F.jsx)(`span`,{className:`inline-flex w-full items-center justify-center rounded-full px-2.5 py-0.5 text-xs font-semibold bg-slate-200 text-slate-800 dark:bg-slate-700 dark:text-slate-200 text-center`,children:`Skipped`})}),(0,F.jsxs)(`div`,{children:[(0,F.jsx)(`div`,{className:`font-bold text-text-ink dark:text-text-on-primary text-xs`,children:`Test Skipped`}),(0,F.jsxs)(`p`,{className:`text-xs text-text-body-mid dark:text-text-muted mt-0.5`,children:["The test was explicitly skipped via `test.skip()` or conditional tags in the last run.",(0,F.jsx)(`span`,{className:`block font-semibold text-text-body-mid dark:text-text-muted mt-1`,children:`🔍 Next Action: Verify if test skip condition is still required or ready to re-enable.`})]})]})]})]})]}),(0,F.jsxs)(`div`,{className:`rounded-md border border-border-default bg-surface-50 p-4 space-y-2`,children:[(0,F.jsx)(`div`,{className:`font-bold text-text-ink dark:text-text-on-primary text-xs uppercase tracking-wider`,children:`Filtering & Export Capabilities:`}),(0,F.jsxs)(`ul`,{className:`list-disc list-inside space-y-1`,children:[(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`Date Range Filter:`}),` Filter test regressions for All Time, specific calendar months, or custom date ranges.`]}),(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`Test Search:`}),` Dynamically search tests by title, suite, or project without clearing active date filters.`]}),(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`Export CSV:`}),` Download all detected regression items to an RFC 4180-compliant CSV file (un-paginated).`]})]})]})]}),(0,F.jsxs)(ot,{isOpen:e===`slowest-tests`,onClose:t,title:`Slowest Tests Guide`,subtitle:`Metric definitions, targets, and diagnostic guidelines for Zen Reporter`,children:[(0,F.jsxs)(`p`,{children:[`The `,(0,F.jsx)(`strong`,{className:`text-text-ink dark:text-text-on-primary`,children:`Slowest Tests`}),` `,`table lists the top 5 test cases with the highest average execution duration across history.`]}),(0,F.jsxs)(`div`,{className:`rounded-md border border-border-default bg-surface-50 p-4 space-y-2.5`,children:[(0,F.jsx)(`div`,{className:`font-bold text-text-ink dark:text-text-on-primary text-xs uppercase tracking-wider`,children:`Key Metrics Explained:`}),(0,F.jsxs)(`ul`,{className:`list-disc list-inside space-y-1.5 text-xs text-text-body-mid dark:text-text-muted`,children:[(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{className:`text-text-ink dark:text-text-on-primary`,children:`Average Duration:`}),` `,`The cumulative baseline execution duration across recorded historical runs.`]}),(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{className:`text-text-ink dark:text-text-on-primary`,children:`Max Duration:`}),` The single worst-case peak runtime encountered (useful for spotting transient spikes or CI throttling).`]}),(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{className:`text-text-ink dark:text-text-on-primary`,children:`Last Run Duration:`}),` `,`The exact runtime recorded during the most recent test run execution.`]})]})]}),(0,F.jsxs)(`div`,{className:`rounded-md border border-border-default bg-surface-50 p-4 space-y-2`,children:[(0,F.jsx)(`div`,{className:`font-bold text-text-ink dark:text-text-on-primary text-xs uppercase tracking-wider`,children:`Export Capabilities:`}),(0,F.jsx)(`ul`,{className:`list-disc list-inside space-y-1`,children:(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`Export CSV:`}),` Download the slowest tests list to an RFC 4180-compliant CSV file.`]})})]}),(0,F.jsxs)(`div`,{className:`rounded-md border border-border-default bg-surface-50 p-4 space-y-2`,children:[(0,F.jsx)(`div`,{className:`font-bold text-text-ink dark:text-text-on-primary text-xs uppercase tracking-wider`,children:`Diagnostic & Optimization Strategy:`}),(0,F.jsxs)(`ul`,{className:`list-disc list-inside space-y-1.5 text-xs text-text-body-mid dark:text-text-muted`,children:[(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`Active Regression Detection:`}),` If `,(0,F.jsx)(`em`,{children:`Last Run Duration`}),` is significantly higher than `,(0,F.jsx)(`em`,{children:`Average Duration`}),`, recent code or test script updates introduced a execution bottleneck.`]}),(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`Optimization Verification:`}),` Compare `,(0,F.jsx)(`em`,{children:`Last Run Duration`}),` against`,` `,(0,F.jsx)(`em`,{children:`Average Duration`}),` after refactoring to immediately verify if performance improvements took effect without waiting for long-term historical averages to drift down.`]}),(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`CI Pipeline Impact:`}),` Refactoring these top bottleneck tests yields the highest overall reduction in suite execution time.`]})]})]})]})]})}var rB=e=>{let{active:t,payload:n,label:r}=e;if(!t||!n||n.length===0)return null;let i=n[0]?.payload;return i?(0,F.jsxs)(`div`,{className:`p-3 text-text-ink dark:text-text-on-primary`,children:[(0,F.jsx)(`div`,{className:`font-bold text-xs mb-1 border-b border-border-default pb-1`,children:r}),(0,F.jsxs)(`div`,{className:`space-y-1 text-xs`,children:[(0,F.jsxs)(`div`,{className:`flex justify-between gap-4`,children:[(0,F.jsx)(`span`,{className:`text-text-body-mid dark:text-text-muted`,children:`Total Tests Evaluated:`}),(0,F.jsx)(`span`,{className:`font-bold tabular-nums`,children:i.total})]}),(0,F.jsxs)(`div`,{className:`flex justify-between gap-4`,children:[(0,F.jsxs)(`span`,{className:`flex items-center gap-1.5 text-warning-600 dark:text-warning-500`,children:[(0,F.jsx)(`span`,{className:`h-2 w-2 rounded-full`,style:{backgroundColor:`var(--color-warning-500)`}}),`Flaky Test Cases:`]}),(0,F.jsx)(`span`,{className:`font-bold tabular-nums text-warning-600 dark:text-warning-500`,children:i[`Flaky Tests`]})]}),(0,F.jsxs)(`div`,{className:`flex justify-between gap-4 pt-1 border-t border-border-default font-semibold`,children:[(0,F.jsx)(`span`,{className:`text-warning-600 dark:text-warning-500`,children:`Flakiness Rate:`}),(0,F.jsxs)(`span`,{className:`font-bold tabular-nums text-warning-600 dark:text-warning-500`,children:[i[`Flaky Rate (%)`],`%`]})]})]})]}):null};function iB({suites:e,title:t=`Flaky Test Count & Retry Rate by Project`}){let[n,r]=(0,v.useState)(!1),i=ie(re(e)),a=i.reduce((e,t)=>Math.max(e,t.name.length),0),o=Math.max(80,Math.min(240,a*8+24)),s=i.map(e=>({name:e.name,"Flaky Tests":e.flakyCount,"Flaky Rate (%)":e.flakyRate,total:e.total})),c=i.length>0&&s.some(e=>e[`Flaky Tests`]>0);return(0,F.jsxs)(`div`,{className:`rounded-md bg-surface-50 border border-border-default p-5 shadow-xs flex flex-col justify-between`,children:[(0,F.jsxs)(`div`,{className:`mb-3 flex items-start justify-between gap-2`,children:[(0,F.jsxs)(`div`,{children:[(0,F.jsx)(`h3`,{className:`text-lg font-bold text-text-ink dark:text-text-on-primary`,children:t}),(0,F.jsx)(`p`,{className:`text-xs text-text-body-mid dark:text-text-muted mt-0.5`,children:`Cross-project comparison of unstable/flaky test occurrences and retry dependency`})]}),(0,F.jsx)(Oe,{onClick:()=>r(!0)})]}),c?(0,F.jsx)(kd,{width:`100%`,height:260,children:(0,F.jsxs)(Wz,{data:s,layout:`vertical`,margin:{top:5,right:20,left:10,bottom:5},barSize:18,children:[(0,F.jsx)(eF,{strokeDasharray:`3 3`,stroke:`var(--color-border-chart)`,horizontal:!1}),(0,F.jsx)(IL,{type:`number`,fontSize:12,tick:{fill:`var(--color-text-muted)`}}),(0,F.jsx)(ZL,{type:`category`,dataKey:`name`,width:o,fontSize:12,tick:{fill:`var(--color-text-ink)`}}),(0,F.jsx)(ZO,{content:rB,wrapperStyle:{backgroundColor:`var(--color-surface-100)`,border:`1px solid var(--color-border-default)`,borderRadius:`0.5rem`,boxShadow:`0 4px 6px -1px rgba(0, 0, 0, 0.1)`,outline:`none`}}),(0,F.jsx)(Wf,{verticalAlign:`bottom`,align:`center`,wrapperStyle:{paddingTop:`10px`,fontSize:`12px`}}),(0,F.jsx)(hL,{dataKey:`Flaky Tests`,fill:`var(--color-warning-500)`,radius:[0,4,4,0]})]})}):(0,F.jsxs)(`div`,{className:`flex h-65 flex-col items-center justify-center rounded-md border border-dashed border-border-default bg-surface-100/50 p-6 text-center`,children:[(0,F.jsx)(`div`,{className:`mx-auto mb-2 flex h-10 w-10 items-center justify-center rounded-full bg-surface-200 text-text-muted`,children:(0,F.jsx)(`svg`,{className:`h-5 w-5 text-text-body-mid dark:text-text-muted`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,strokeWidth:1.5,children:(0,F.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M9 12.75L11.25 15 15 9.75M21 12a9 9 0 11-18 0 9 9 0 0118 0z`})})}),(0,F.jsx)(`p`,{className:`text-sm font-semibold text-text-ink dark:text-text-on-primary`,children:`No flaky tests detected`}),(0,F.jsx)(`p`,{className:`mt-1 text-xs text-text-body-mid dark:text-text-muted`,children:`All test cases executed without requiring retries to pass.`})]}),n&&(0,F.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center bg-black/60 backdrop-blur-xs p-4 overflow-y-auto`,children:(0,F.jsxs)(`div`,{className:`relative w-full max-w-xl rounded-lg border border-border-default bg-canvas p-6 shadow-2xl space-y-4`,children:[(0,F.jsxs)(`div`,{className:`flex items-start justify-between border-b border-border-default pb-3`,children:[(0,F.jsxs)(`div`,{children:[(0,F.jsx)(`h3`,{className:`text-lg font-bold text-text-ink dark:text-text-on-primary`,children:`Flaky Test Count & Retry Analytics Guide`}),(0,F.jsx)(`p`,{className:`text-xs text-text-body-mid dark:text-text-muted mt-0.5`,children:`Analyzing cross-project test instability and environmental flakiness`})]}),(0,F.jsx)(`button`,{onClick:()=>r(!1),className:`rounded-md p-1 text-text-body-mid hover:bg-surface-100 hover:text-text-ink dark:text-text-muted dark:hover:text-text-on-primary transition-colors cursor-pointer`,children:(0,F.jsx)(`svg`,{className:`h-5 w-5`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,strokeWidth:2,children:(0,F.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M6 18L18 6M6 6l12 12`})})})]}),(0,F.jsxs)(`div`,{className:`space-y-3 text-xs text-text-body-mid dark:text-text-muted leading-relaxed`,children:[(0,F.jsxs)(`p`,{children:[`A test case is classified as`,` `,(0,F.jsx)(`strong`,{className:`text-warning-600 dark:text-warning-500`,children:`Flaky`}),` when it is non-deterministic and recorded BOTH passed and failed outcomes across test executions (minimum 1 failure and 1 success).`]}),(0,F.jsxs)(`div`,{className:`rounded-md border border-border-default bg-surface-50 p-3 space-y-2`,children:[(0,F.jsx)(`div`,{className:`font-bold text-text-ink dark:text-text-on-primary text-xs uppercase tracking-wider`,children:`Diagnostic Value by Project Profile:`}),(0,F.jsxs)(`ul`,{className:`list-disc list-inside space-y-1`,children:[(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`Browser Specific Flakiness:`}),` Compare WebKit, Chromium, and Firefox to isolate rendering engine timing bugs.`]}),(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`Viewport & Mobile Emulation:`}),` Identify if responsive layout tests flake on mobile viewports due to animation delays.`]}),(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`Retry Overhead:`}),` Flaky tests double execution latency. Eliminating flakiness speeds up overall CI build time.`]})]})]})]}),(0,F.jsx)(`div`,{className:`flex justify-end pt-2 border-t border-border-default`,children:(0,F.jsx)(`button`,{type:`button`,onClick:()=>r(!1),className:`rounded-md bg-accent-blue px-4 py-2 text-xs font-bold text-text-on-primary hover:bg-accent-blue/90 transition-colors cursor-pointer`,children:`Close Guide`})})]})})]})}var aB={"Avg Duration (s)":`var(--color-accent-green)`,"P95 Duration (s)":`var(--color-accent-house)`},oB=e=>(0,F.jsx)(`span`,{style:{color:aB[e]||`var(--color-text-ink)`,fontSize:`12px`,fontWeight:500},children:e});function sB({projectStats:e,title:t=`Execution Duration & Latency Benchmark`,className:n=`rounded-md bg-canvas border border-border-default px-6 py-6 shadow-sm flex flex-col justify-between`}){let[r,i]=(0,v.useState)(!1),a=e.reduce((e,t)=>Math.max(e,t.name.length),0),o=Math.max(80,Math.min(240,a*8+24)),s=e=>{if(!e||e<=0)return 0;let t=e/1e3;return t<.01?Number(t.toFixed(3))||.01:Math.round(t*100)/100},c=e.map(e=>({name:e.name,"Avg Duration (s)":s(e.avgDuration),"P95 Duration (s)":s(e.p95Duration),avgRawMs:e.avgDuration,p95RawMs:e.p95Duration,totalRawMs:e.totalDuration})),l=e.length>0&&c.some(e=>e[`Avg Duration (s)`]>0||e[`P95 Duration (s)`]>0);return(0,F.jsxs)(`div`,{className:n,children:[(0,F.jsxs)(`div`,{className:`mb-3 flex items-start justify-between gap-2`,children:[(0,F.jsxs)(`div`,{children:[(0,F.jsx)(`h3`,{className:`text-lg font-semibold text-text-ink dark:text-text-on-primary`,children:t}),(0,F.jsx)(`p`,{className:`text-xs text-text-body-mid dark:text-text-muted mt-0.5`,children:`Average vs P95 execution duration per test case across projects`})]}),(0,F.jsx)(Oe,{onClick:()=>i(!0)})]}),l?(0,F.jsx)(kd,{width:`100%`,height:300,children:(0,F.jsxs)(Wz,{data:c,layout:`vertical`,margin:{top:5,right:20,left:10,bottom:5},barSize:18,barGap:4,children:[(0,F.jsx)(eF,{strokeDasharray:`3 3`,stroke:`var(--color-border-chart)`,horizontal:!1}),(0,F.jsx)(IL,{type:`number`,fontSize:12,tick:{fill:`var(--color-text-muted)`},unit:`s`}),(0,F.jsx)(ZL,{type:`category`,dataKey:`name`,fontSize:12,width:o,tick:{fill:`var(--color-text-muted)`},tickFormatter:e=>e.length===a&&a>0?`\u00A0${e}`:e}),(0,F.jsx)(ZO,{contentStyle:{backgroundColor:`var(--color-surface-100)`,border:`1px solid var(--color-border-default)`,borderRadius:`0.5rem`,boxShadow:`0 4px 6px -1px rgba(0, 0, 0, 0.1)`},formatter:(e,t,n)=>{let r=typeof e==`number`?e:Number(e),i=n.payload;return t===`Avg Duration (s)`?[`${j(i.avgRawMs)} (${r}s)`,`Avg / Test`]:t===`P95 Duration (s)`?[`${j(i.p95RawMs)} (${r}s)`,`P95 Latency`]:[`${r}s`,String(t)]}}),(0,F.jsx)(Wf,{iconType:`circle`,formatter:oB,wrapperStyle:{paddingTop:`8px`,textAlign:`center`,width:`100%`,fontSize:`12px`}}),(0,F.jsx)(hL,{dataKey:`Avg Duration (s)`,fill:`var(--color-accent-green)`,radius:[0,4,4,0]}),(0,F.jsx)(hL,{dataKey:`P95 Duration (s)`,fill:`var(--color-accent-house)`,radius:[0,4,4,0]})]})}):(0,F.jsxs)(`div`,{className:`flex h-75 flex-col items-center justify-center rounded-md border border-dashed border-border-default bg-surface-100/50 p-6 text-center`,children:[(0,F.jsx)(`div`,{className:`mx-auto mb-2 flex h-10 w-10 items-center justify-center rounded-full bg-surface-200 text-text-muted`,children:(0,F.jsx)(`svg`,{className:`h-5 w-5 text-text-body-mid dark:text-text-muted`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,strokeWidth:1.5,children:(0,F.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M12 6v6h4.5m4.5 0a9 9 0 11-18 0 9 9 0 0118 0z`})})}),(0,F.jsx)(`p`,{className:`text-sm font-semibold text-text-ink dark:text-text-on-primary`,children:`No execution duration data available`}),(0,F.jsx)(`p`,{className:`mt-1 text-xs text-text-body-mid dark:text-text-muted`,children:`Execution timing benchmarks will be displayed once test cases report execution timing.`})]}),r&&(0,F.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center bg-black/50 p-4 backdrop-blur-xs`,onClick:()=>i(!1),children:(0,F.jsxs)(`div`,{className:`relative w-full max-w-lg rounded-lg bg-canvas border border-border-default p-6 shadow-xl space-y-4 max-h-[85vh] overflow-y-auto`,onClick:e=>e.stopPropagation(),children:[(0,F.jsxs)(`div`,{className:`flex items-start justify-between border-b border-border-default pb-3`,children:[(0,F.jsx)(`h4`,{className:`text-base font-bold text-text-ink dark:text-text-on-primary`,children:`About Duration & P95 Latency Benchmark`}),(0,F.jsx)(`button`,{onClick:()=>i(!1),className:`rounded-md p-1 text-text-muted hover:bg-surface-100 hover:text-text-ink transition-colors cursor-pointer`,children:(0,F.jsx)(`svg`,{className:`h-5 w-5`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,strokeWidth:2,children:(0,F.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M6 18L18 6M6 6l12 12`})})})]}),(0,F.jsxs)(`div`,{className:`space-y-3 text-xs text-text-body-mid dark:text-text-muted leading-relaxed`,children:[(0,F.jsx)(`p`,{children:`This chart benchmarks the execution latency per test case across project targets, comparing average duration against 95th percentile (P95) latency.`}),(0,F.jsxs)(`div`,{children:[(0,F.jsx)(`h5`,{className:`font-semibold text-text-ink dark:text-text-on-primary mb-1`,children:`Key Metrics Explained:`}),(0,F.jsxs)(`ul`,{className:`list-disc pl-4 space-y-1.5`,children:[(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{className:`text-accent-blue`,children:`Avg Duration (s):`}),` Calculated as`,` `,(0,F.jsx)(`code`,{className:`font-mono bg-surface-100 px-1 py-0.5 rounded text-[10px]`,children:`Total Duration / Executed Tests`}),`. It represents the mean time required to complete a single test case in that project profile.`]}),(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{className:`text-warning-600 dark:text-warning-500`,children:`P95 Duration / Latency (s):`}),` `,`Represents the 95th percentile completion threshold.`,` `,(0,F.jsx)(`strong`,{children:`95% of all executed tests in that project completed faster than this duration`}),`, while only 5% took longer.`]})]})]}),(0,F.jsxs)(`div`,{children:[(0,F.jsx)(`h5`,{className:`font-semibold text-text-ink dark:text-text-on-primary mb-1`,children:`Why P95 Latency is Critical for QA & CI Pipelines:`}),(0,F.jsx)(`p`,{className:`mb-1.5`,children:`Average duration can be deceptive—a large number of fast 100ms API checks will drag the average down, masking extremely slow 15-second E2E user flows.`}),(0,F.jsx)(`p`,{className:`mb-1.5`,children:`P95 isolates tail latency. High P95 latency exposes tests that suffer from:`}),(0,F.jsxs)(`ul`,{className:`list-disc pl-4 space-y-1`,children:[(0,F.jsx)(`li`,{children:`Unnecessary explicit sleep/timeout delays`}),(0,F.jsx)(`li`,{children:`Heavy DOM re-rendering or unoptimized navigation`}),(0,F.jsx)(`li`,{children:`CI worker CPU/RAM throttling on specific browser engines`}),(0,F.jsx)(`li`,{children:`Slow background API network dependencies`})]})]})]}),(0,F.jsx)(`div`,{className:`pt-2 flex justify-end`,children:(0,F.jsx)(`button`,{onClick:()=>i(!1),className:`rounded-md bg-accent-blue px-4 py-1.5 text-xs font-semibold text-white shadow-xs hover:bg-accent-blue/90 cursor-pointer`,children:`Got it`})})]})})]})}var cB=`rounded-md border border-border-default bg-surface-50 p-5 shadow-xs`,lB=`text-lg font-bold text-text-ink dark:text-text-on-primary`,uB={passed:{label:`Passed`,pillClass:`bg-success-50 text-success-600 dark:bg-success-500/10 dark:text-success-500`,tooltip:`Regression resolved: test passed in the latest run.`},failed:{label:`Failed`,pillClass:`bg-danger-50 text-danger-600 dark:bg-danger-500/10 dark:text-danger-500`,tooltip:`Test failed during the last run. Fixing may be required.`},timedOut:{label:`Timed Out`,pillClass:`bg-warning-50 text-warning-600 dark:bg-warning-500/10 dark:text-warning-500`,tooltip:`Test timed out during the last run. Fixing may be required.`},interrupted:{label:`Interrupted`,pillClass:`bg-danger-50 text-danger-600 dark:bg-danger-500/10 dark:text-danger-500`,tooltip:`Test run was interrupted. Try to re-run the test to verify status.`},skipped:{label:`Skipped`,pillClass:`bg-slate-200/80 text-slate-800 ring-1 ring-slate-300 dark:bg-slate-700/60 dark:text-slate-200 dark:ring-slate-600`,tooltip:`Test was skipped. Try to re-run the test to verify status.`}};function dB({history:e,suites:t,isHistoryDisabled:n}){let[r,i]=(0,v.useState)(null),[a,o]=(0,v.useState)({fromTimestamp:null,toTimestamp:null,label:null}),[s,c]=(0,v.useState)(``),[l,u]=(0,v.useState)({fromTimestamp:null,toTimestamp:null,label:null}),[d,f]=(0,v.useState)(``),p=(0,v.useMemo)(()=>e?.runs.map(e=>e.started_at)??[],[e]),m=(0,v.useMemo)(()=>e?.runs?!a.fromTimestamp&&!a.toTimestamp?e.runs:e.runs.filter(e=>{let t=new Date(e.started_at).getTime();return!(a.fromTimestamp&&t<a.fromTimestamp||a.toTimestamp&&t>a.toTimestamp)}):[],[e,a]),h=(0,v.useMemo)(()=>{if(!e?.flaky)return[];let t=e.flaky;if((a.fromTimestamp||a.toTimestamp)&&m.length===0&&(t=[]),s.trim()){let e=s.trim().toLowerCase();t=t.filter(t=>t.title.toLowerCase().includes(e)||t.suite.toLowerCase().includes(e)||t.project&&t.project.toLowerCase().includes(e))}return t},[e,a,m,s]),g=(0,v.useMemo)(()=>{if(!e?.regressions)return[];let t=e.regressions;if((l.fromTimestamp||l.toTimestamp)&&(t=t.filter(e=>{let t=e.last_run_at||e.regressed_at;if(!t)return!0;let n=new Date(t).getTime();return!(l.fromTimestamp&&n<l.fromTimestamp||l.toTimestamp&&n>l.toTimestamp)})),d.trim()){let e=d.trim().toLowerCase();t=t.filter(t=>t.title.toLowerCase().includes(e)||t.suite.toLowerCase().includes(e)||t.project&&t.project.toLowerCase().includes(e))}return t},[e,l,d]),_=Bt(h.length,10),y=Bt(g.length,10),b=h.slice(_.start,_.start+_.pageSize),x=g.slice(y.start,y.start+y.pageSize),S=e?.slowest.slice(0,5)??[],C=(0,v.useMemo)(()=>[{key:`suite`,header:`Suite`,cell:e=>e.suite||`-`,csvValue:e=>e.suite||``},{key:`title`,header:`Test`,className:`font-bold`,cell:e=>e.title,csvValue:e=>e.title},{key:`project`,header:`Project`,cell:e=>e.project,csvValue:e=>e.project},{key:`failed_runs`,header:`Failed Runs`,align:`right`,cell:e=>(0,F.jsx)(`span`,{className:e.failed_runs>0?`text-danger-600 dark:text-danger-500 font-bold`:``,children:e.failed_runs}),csvValue:e=>e.failed_runs},{key:`passed_runs`,header:`Passed Runs`,align:`right`,cell:e=>(0,F.jsx)(`span`,{className:e.passed_runs>0?`text-success-600 dark:text-success-500 font-bold`:``,children:e.passed_runs}),csvValue:e=>e.passed_runs},{key:`recovered_by_retry`,header:`Recovered by Retry`,align:`right`,cell:e=>(0,F.jsx)(`span`,{className:e.recovered_by_retry>0?`text-warning-600 dark:text-warning-500 font-bold`:``,children:e.recovered_by_retry}),csvValue:e=>e.recovered_by_retry},{key:`total_runs`,header:`Total Runs`,align:`right`,className:`font-bold`,cell:e=>e.total_runs,csvValue:e=>e.total_runs}],[]),w=(0,v.useMemo)(()=>[{key:`title`,header:`Test`,className:`font-bold`,cell:e=>e.title,csvValue:e=>e.title},{key:`suite`,header:`Suite`,cell:e=>e.suite||`-`,csvValue:e=>e.suite||``},{key:`project`,header:`Project`,cell:e=>e.project,csvValue:e=>e.project},{key:`regressed_in`,header:`Regressed In`,className:`text-danger-600 dark:text-danger-500 font-bold`,cell:e=>N(e.regressed_at),csvValue:e=>N(e.regressed_at)},{key:`last_run`,header:`Last Run`,cell:e=>N(e.last_run_at),csvValue:e=>N(e.last_run_at)},{key:`last_status`,header:`Last Run Status`,cell:e=>{let t=uB[e.last_status]??{label:e.last_status,pillClass:`bg-slate-200/80 text-slate-800 ring-1 ring-slate-300 dark:bg-slate-700/60 dark:text-slate-200 dark:ring-slate-600`,tooltip:`Try to re-run the test to verify status.`};return(0,F.jsx)(`span`,{className:`inline-flex items-center rounded-full px-2.5 py-0.5 text-xs font-semibold ${t.pillClass}`,children:t.label})},csvValue:e=>e.last_status}],[]),T=(0,v.useMemo)(()=>[{key:`suite`,header:`Suite`,cell:e=>e.suite||`-`,csvValue:e=>e.suite||``},{key:`title`,header:`Test`,className:`font-bold`,cell:e=>e.title,csvValue:e=>e.title},{key:`project`,header:`Project`,cell:e=>e.project,csvValue:e=>e.project},{key:`avg_duration`,header:`Average Duration`,align:`right`,className:`font-bold text-accent-blue dark:text-success-500`,cell:e=>M(e.avg_duration_ms??e.avg_ms),csvValue:e=>M(e.avg_duration_ms??e.avg_ms)},{key:`max_duration`,header:`Max Duration`,align:`right`,cell:e=>M(e.max_duration_ms??e.max_ms),csvValue:e=>M(e.max_duration_ms??e.max_ms)},{key:`last_run_duration`,header:`Last Run Duration`,align:`right`,cell:e=>M(e.last_duration_ms??e.last_ms),csvValue:e=>M(e.last_duration_ms??e.last_ms)},{key:`runs`,header:`Runs Count`,align:`right`,cell:e=>e.runs,csvValue:e=>e.runs}],[]);return(0,F.jsxs)(`div`,{className:`space-y-6`,children:[n&&(0,F.jsx)(Je,{}),(0,F.jsx)(`h2`,{className:`mb-4 text-2xl font-bold tracking-tight text-text-ink dark:text-text-on-primary sm:text-3xl`,children:`Analytical Insights`}),(0,F.jsxs)(`div`,{className:`grid grid-cols-1 gap-6 lg:grid-cols-2 items-stretch`,children:[(0,F.jsx)(sB,{projectStats:ie(re(t)),title:`Execution Duration & P95 Latency Benchmark`,className:`rounded-md border border-border-default bg-surface-50 p-5 shadow-xs flex flex-col justify-between`}),(0,F.jsx)(iB,{suites:t,title:`Flaky Test Count & Retry Rate by Project`})]}),e?(0,F.jsxs)(F.Fragment,{children:[(0,F.jsxs)(`section`,{className:cB,children:[(0,F.jsxs)(`div`,{className:`flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4 pb-3 border-b border-border-default`,children:[(0,F.jsxs)(`div`,{children:[(0,F.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,F.jsx)(`h2`,{className:lB,children:`Flaky tests`}),(0,F.jsx)(Oe,{onClick:()=>i(`flaky-tests`)})]}),(0,F.jsx)(`p`,{className:`mt-1 text-xs font-medium text-text-body-mid dark:text-text-muted`,children:`Tests that failed in some runs and passed in others (minimum 1 failure and 1 success)`})]}),(0,F.jsx)(Vt,{id:`flaky-page-size`,pageSize:_.pageSize,onPageSizeChange:_.changePageSize})]}),(0,F.jsxs)(`div`,{className:`pt-3 pb-1 border-b border-border-default/50 flex flex-col sm:flex-row sm:items-start sm:justify-between gap-3`,children:[(0,F.jsx)(et,{onFilterChange:e=>{o(e),_.setPage(1)},availableTimestamps:p}),(0,F.jsx)(st,{value:s,onChange:e=>{c(e),_.setPage(1)},placeholder:`Search tests...`,className:`w-44 sm:w-48 shrink-0`,inputClassName:`w-full rounded-md border border-border-default bg-surface-50 pl-9 pr-7 py-1.5 text-xs text-text-ink placeholder:text-text-muted focus:border-accent-blue focus:outline-none dark:bg-surface-50 dark:text-text-on-primary`})]}),h.length===0?(0,F.jsx)(`p`,{className:`mt-3 text-xs font-medium text-text-body-mid dark:text-text-muted`,children:a.fromTimestamp||a.toTimestamp?`No flaky tests detected in the selected date range.`:`No flaky tests detected.`}):(0,F.jsxs)(F.Fragment,{children:[(0,F.jsx)(it,{data:b,fullData:h,columns:C,getRowKey:(e,t)=>`${e.project}/${e.file}/${e.title}/${t}`,compact:!0,exportFilename:`flaky_tests.csv`,className:`mt-3`}),(0,F.jsx)(Ht,{label:`flaky tests`,total:h.length,start:_.start,pageLength:b.length,currentPage:_.currentPage,totalPages:_.totalPages,onPageChange:_.setPage})]})]}),(0,F.jsxs)(`section`,{className:cB,children:[(0,F.jsxs)(`div`,{className:`flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4 pb-3 border-b border-border-default`,children:[(0,F.jsxs)(`div`,{children:[(0,F.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,F.jsx)(`h2`,{className:lB,children:`Regressions`}),(0,F.jsx)(Oe,{onClick:()=>i(`regressions`)})]}),(0,F.jsx)(`p`,{className:`mt-1 text-xs font-medium text-text-body-mid dark:text-text-muted`,children:`Tests that previously passed in a prior run but failed during a subsequent run`})]}),(0,F.jsx)(Vt,{id:`regressions-page-size`,pageSize:y.pageSize,onPageSizeChange:y.changePageSize})]}),(0,F.jsxs)(`div`,{className:`pt-3 pb-1 border-b border-border-default/50 flex flex-col sm:flex-row sm:items-start sm:justify-between gap-3`,children:[(0,F.jsx)(et,{onFilterChange:e=>{u(e),y.setPage(1)},availableTimestamps:p}),(0,F.jsx)(st,{value:d,onChange:e=>{f(e),y.setPage(1)},placeholder:`Search tests...`,className:`w-44 sm:w-48 shrink-0`,inputClassName:`w-full rounded-md border border-border-default bg-surface-50 pl-9 pr-7 py-1.5 text-xs text-text-ink placeholder:text-text-muted focus:border-accent-blue focus:outline-none dark:bg-surface-50 dark:text-text-on-primary`})]}),g.length===0?(0,F.jsx)(`p`,{className:`mt-3 text-xs font-medium text-text-body-mid dark:text-text-muted`,children:l.fromTimestamp||l.toTimestamp?`No regressions detected in the selected date range.`:`No regressions detected.`}):(0,F.jsxs)(F.Fragment,{children:[(0,F.jsx)(it,{data:x,fullData:g,columns:w,getRowKey:e=>`${e.project}/${e.file}/${e.title}`,compact:!0,exportFilename:`test_regressions.csv`,className:`mt-3`}),(0,F.jsx)(Ht,{label:`regressions`,total:g.length,start:y.start,pageLength:x.length,currentPage:y.currentPage,totalPages:y.totalPages,onPageChange:y.setPage})]})]}),(0,F.jsxs)(`section`,{className:cB,children:[(0,F.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,F.jsx)(`h2`,{className:lB,children:`Slowest tests`}),(0,F.jsx)(Oe,{onClick:()=>i(`slowest-tests`)})]}),e.slowest.length===0?(0,F.jsx)(`p`,{className:`mt-3 text-xs font-medium text-text-body-mid dark:text-text-muted`,children:`No test duration data.`}):(0,F.jsx)(it,{data:S,fullData:e.slowest,columns:T,getRowKey:e=>`${e.project}/${e.file}/${e.title}`,compact:!0,exportFilename:`slowest_tests.csv`,className:`mt-3`})]})]}):(0,F.jsx)(`div`,{className:`flex items-center justify-center py-16 text-center rounded-md border border-border-default bg-surface-50 p-6`,children:(0,F.jsxs)(`div`,{children:[(0,F.jsx)(`div`,{className:`mx-auto mb-4 flex h-16 w-16 items-center justify-center rounded-md bg-surface-100 border border-border-default`,children:(0,F.jsx)(`svg`,{className:`h-8 w-8 text-text-ink dark:text-text-on-primary`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,strokeWidth:1.75,children:(0,F.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M12 6v6h4.5m4.5 0a9 9 0 11-18 0 9 9 0 0118 0z`})})}),(0,F.jsx)(`h3`,{className:`text-base font-bold text-text-ink dark:text-text-on-primary`,children:`No history data`}),(0,F.jsxs)(`p`,{className:`mt-1.5 text-sm text-text-body-mid dark:text-text-muted`,children:[`Run`,` `,(0,F.jsx)(`code`,{className:`rounded bg-surface-200 px-1.5 py-0.5 text-xs font-mono font-semibold text-text-ink dark:text-text-on-primary border border-border-default`,children:`npx zr history report`}),` `,`after your test runs to populate flaky test history, regressions, and slowest tests.`]})]})}),(0,F.jsx)(nB,{activeModal:r,onClose:()=>i(null)})]})}var fB=`rounded-md border border-border-default bg-surface-50 p-5 shadow-xs`,pB=`text-lg font-bold text-text-ink dark:text-text-on-primary`,mB=({x:e,y:t,payload:n})=>{let r=Number(e),i=Number(t),[a,o]=te(String(n.value));return(0,F.jsxs)(`g`,{children:[(0,F.jsx)(`text`,{x:r,y:i+10,textAnchor:`middle`,fontSize:11,fontWeight:500,fill:`var(--color-text-ink)`,children:a}),(0,F.jsx)(`text`,{x:r,y:i+24,textAnchor:`middle`,fontSize:11,fill:`var(--color-text-body-mid)`,children:o})]})},hB=e=>{let{active:t,payload:n,label:r}=e;if(!t||!n||n.length===0)return null;let[i,a]=te(String(r)),o=n[0]?.value;return(0,F.jsxs)(`div`,{className:`p-2.5 text-text-ink dark:text-text-on-primary`,children:[(0,F.jsx)(`div`,{className:`font-bold text-xs`,children:i}),(0,F.jsx)(`div`,{className:`text-[11px] text-text-body-mid dark:text-text-muted`,children:a}),(0,F.jsxs)(`div`,{className:`mt-1.5 text-xs font-medium`,children:[`Pass rate: `,(0,F.jsxs)(`span`,{className:`font-bold text-success-600 dark:text-success-500`,children:[o,`%`]})]})]})};function gB({history:e}){let[t,n]=(0,v.useState)(!1),r=(e.runs||[]).slice(-15).map(e=>({...e,pass_rate:e.pass_rate??0}));return(0,F.jsxs)(`section`,{className:fB,children:[(0,F.jsx)(`div`,{className:`flex items-center justify-between gap-4`,children:(0,F.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,F.jsx)(`h2`,{className:pB,children:`Pass rate trend`}),(0,F.jsx)(Oe,{onClick:()=>n(!0)})]})}),e.runs.length>15&&(0,F.jsx)(`p`,{className:`mt-1 text-xs font-medium text-text-body-mid dark:text-text-muted`,children:`Showing the 15 most recent runs`}),r.length<2?(0,F.jsxs)(`div`,{className:`flex flex-col items-center justify-center py-8 text-center rounded-md border border-dashed border-border-default bg-surface-100/50 p-6 space-y-2 mt-4`,children:[(0,F.jsx)(`div`,{className:`flex h-10 w-10 items-center justify-center rounded-full bg-surface-200 border border-border-default text-text-body-mid dark:text-text-muted`,children:(0,F.jsx)(`svg`,{className:`h-5 w-5`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,strokeWidth:1.75,children:(0,F.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M7 12l3-3 3 3 4-4M8 21l4-4 4 4M3 4h18M4 4h16v12a1 1 0 01-1 1H5a1 1 0 01-1-1V4z`})})}),(0,F.jsx)(`p`,{className:`text-xs font-semibold text-text-ink dark:text-text-on-primary`,children:`Historical trend chart requires at least 2 test runs`}),(0,F.jsxs)(`p`,{className:`text-[11px] text-text-body-mid dark:text-text-muted max-w-md`,children:[`Execute future runs and run`,` `,(0,F.jsx)(`code`,{className:`rounded bg-surface-200 px-1.5 py-0.5 font-mono text-[10px] text-text-ink dark:text-text-on-primary border border-border-default`,children:`npx zr history report`}),` `,`to visualize pass rate trends across runs over time.`]})]}):(0,F.jsx)(`div`,{className:`mt-4`,children:(0,F.jsx)(kd,{width:`100%`,height:256,children:(0,F.jsxs)(Hz,{data:r,margin:{top:5,right:40,left:10,bottom:5},children:[(0,F.jsx)(eF,{strokeDasharray:`3 3`,stroke:`var(--color-border-chart)`}),(0,F.jsx)(IL,{dataKey:`started_at`,fontSize:11,height:48,interval:0,tick:mB}),(0,F.jsx)(ZL,{domain:[0,100],fontSize:11,fontWeight:500,tick:{fill:`var(--color-text-ink)`},unit:`%`}),(0,F.jsx)(ZO,{content:hB,wrapperStyle:{backgroundColor:`var(--color-surface-100)`,border:`1px solid var(--color-border-default)`,borderRadius:`0.5rem`,boxShadow:`0 4px 6px -1px rgba(0, 0, 0, 0.1)`,outline:`none`}}),(0,F.jsx)(iI,{type:`monotone`,dataKey:`pass_rate`,stroke:`var(--color-success-500)`,strokeWidth:2.5,dot:{r:4,fill:`var(--color-success-500)`,stroke:`var(--color-surface-50)`,strokeWidth:1.5},activeDot:{r:6,fill:`var(--color-success-500)`,stroke:`var(--color-surface-50)`,strokeWidth:2}})]})})}),(0,F.jsx)(ot,{isOpen:t,onClose:()=>n(!1),title:`Pass Rate Trend Guide`,subtitle:`Metric definitions, targets, and diagnostic guidelines for Zen Reporter`,children:(0,F.jsx)(`div`,{className:`space-y-4 text-xs text-text-body-mid dark:text-text-muted leading-relaxed`,children:(0,F.jsxs)(`div`,{className:`rounded-md border border-border-default bg-surface-50 p-4 space-y-2`,children:[(0,F.jsx)(`h4`,{className:`font-bold text-sm text-text-ink dark:text-text-on-primary`,children:`Target Thresholds`}),(0,F.jsxs)(`p`,{children:[`• `,(0,F.jsx)(`strong`,{className:`text-success-600 dark:text-success-500`,children:`>= 95%:`}),` `,`Target operational health for CI production pipelines.`]}),(0,F.jsxs)(`p`,{children:[`• `,(0,F.jsx)(`strong`,{className:`text-warning-600 dark:text-warning-500`,children:`85% – 94%:`}),` `,`Elevated flakiness or minor regressions needing attention.`]}),(0,F.jsxs)(`p`,{children:[`• `,(0,F.jsx)(`strong`,{className:`text-danger-600 dark:text-danger-500`,children:`< 85%:`}),` Pipeline instability requiring immediate remediation.`]})]})})})]})}var _B=`rounded-md border border-border-default bg-surface-50 p-5 shadow-xs`,vB=`text-lg font-bold text-text-ink dark:text-text-on-primary`,yB={chromium:`var(--color-accent-green)`,firefox:`var(--color-warning-500)`,webkit:`var(--color-accent-gold)`,"desktop chrome":`var(--color-accent-green)`,"desktop firefox":`var(--color-warning-500)`,"desktop safari":`var(--color-accent-gold)`,"mobile chrome":`var(--color-accent-cafe)`,"mobile safari":`var(--color-warning-600)`},bB=[`var(--color-success-500)`,`var(--color-danger-500)`,`var(--color-warning-500)`,`var(--color-info-600)`,`var(--color-accent-house)`,`var(--color-accent-gold)`,`var(--color-accent-pink)`,`var(--color-accent-orange)`,`var(--color-success-700)`,`var(--color-danger-700)`,`var(--color-warning-700)`,`var(--color-info-700)`];function xB(e,t){let n=e.toLowerCase().trim();if(yB[n])return yB[n];for(let[e,t]of Object.entries(yB))if(e.length>3&&n.includes(e))return t;return bB[t%bB.length]}var SB=({x:e,y:t,payload:n})=>{let r=Number(e),i=Number(t),[a,o]=te(String(n.value));return(0,F.jsxs)(`g`,{children:[(0,F.jsx)(`text`,{x:r,y:i+10,textAnchor:`middle`,fontSize:11,fontWeight:500,fill:`var(--color-text-ink)`,children:a}),(0,F.jsx)(`text`,{x:r,y:i+24,textAnchor:`middle`,fontSize:11,fill:`var(--color-text-body-mid)`,children:o})]})},CB=e=>{let{active:t,payload:n,label:r}=e;if(!t||!n||n.length===0)return null;let[i,a]=te(String(r));return(0,F.jsxs)(`div`,{className:`p-2.5 text-text-ink dark:text-text-on-primary`,children:[(0,F.jsx)(`div`,{className:`font-bold text-xs`,children:i}),(0,F.jsx)(`div`,{className:`text-[11px] text-text-body-mid dark:text-text-muted mb-1.5`,children:a}),(0,F.jsx)(`div`,{className:`space-y-1 text-xs`,children:n.map(e=>(0,F.jsxs)(`div`,{className:`flex items-center justify-between gap-4 font-medium`,children:[(0,F.jsxs)(`span`,{className:`flex items-center gap-1.5`,style:{color:e.color},children:[(0,F.jsx)(`span`,{className:`h-2 w-2 rounded-full`,style:{backgroundColor:e.color}}),e.name,`:`]}),(0,F.jsx)(`span`,{className:`font-bold tabular-nums`,children:j(Number(e.value)*1e3)})]},String(e.name)))})]})};function wB({history:e}){let[t,n]=(0,v.useState)(!1),{durationChartData:r,projectNames:i}=(0,v.useMemo)(()=>{if(!e||!e.runs.length)return{durationChartData:[],projectNames:[]};let t=e.runs.slice(-15),n=new Set;t.forEach(e=>{e.project_durations&&Object.keys(e.project_durations).forEach(e=>n.add(e))}),n.size===0&&e.project_trends&&e.project_trends.forEach(e=>e.project&&n.add(e.project)),n.size===0&&((e.flaky||[]).forEach(e=>e.project&&n.add(e.project)),(e.slowest||[]).forEach(e=>e.project&&n.add(e.project)),(e.regressions||[]).forEach(e=>e.project&&n.add(e.project)));let r=Array.from(n);return{durationChartData:t.map(e=>{let t={started_at:e.started_at,run_name:e.run_name};return e.project_durations&&Object.keys(e.project_durations).length>0?r.forEach(n=>{t[n]=e.project_durations?.[n]??null}):r.forEach(e=>{t[e]=null}),t}),projectNames:r}},[e]);return(0,F.jsxs)(`section`,{className:_B,children:[(0,F.jsx)(`div`,{className:`flex items-center justify-between gap-4`,children:(0,F.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,F.jsx)(`h2`,{className:vB,children:`Duration trend`}),(0,F.jsx)(Oe,{onClick:()=>n(!0)})]})}),e.runs.length>15&&(0,F.jsx)(`p`,{className:`mt-1 text-xs font-medium text-text-body-mid dark:text-text-muted`,children:`Showing project execution duration (in seconds) for the 15 most recent runs`}),r.length<2?(0,F.jsxs)(`div`,{className:`flex flex-col items-center justify-center py-8 text-center rounded-md border border-dashed border-border-default bg-surface-100/50 p-6 space-y-2 mt-4`,children:[(0,F.jsx)(`div`,{className:`flex h-10 w-10 items-center justify-center rounded-full bg-surface-200 border border-border-default text-text-body-mid dark:text-text-muted`,children:(0,F.jsx)(`svg`,{className:`h-5 w-5`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,strokeWidth:1.75,children:(0,F.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M7 12l3-3 3 3 4-4M8 21l4-4 4 4M3 4h18M4 4h16v12a1 1 0 01-1 1H5a1 1 0 01-1-1V4z`})})}),(0,F.jsx)(`p`,{className:`text-xs font-semibold text-text-ink dark:text-text-on-primary`,children:`Historical trend chart requires at least 2 test runs`}),(0,F.jsxs)(`p`,{className:`text-[11px] text-text-body-mid dark:text-text-muted max-w-md`,children:[`Execute future runs and run`,` `,(0,F.jsx)(`code`,{className:`rounded bg-surface-200 px-1.5 py-0.5 font-mono text-[10px] text-text-ink dark:text-text-on-primary border border-border-default`,children:`npx zr history report`}),` `,`to visualize project duration trends across runs over time.`]})]}):(0,F.jsx)(`div`,{className:`mt-4`,children:(0,F.jsx)(kd,{width:`100%`,height:256,children:(0,F.jsxs)(Hz,{data:r,margin:{top:5,right:40,left:10,bottom:5},children:[(0,F.jsx)(eF,{strokeDasharray:`3 3`,stroke:`var(--color-border-chart)`}),(0,F.jsx)(IL,{dataKey:`started_at`,fontSize:11,height:48,interval:0,tick:SB}),(0,F.jsx)(ZL,{fontSize:11,fontWeight:500,tick:{fill:`var(--color-text-ink)`},unit:`s`}),(0,F.jsx)(ZO,{content:CB,wrapperStyle:{backgroundColor:`var(--color-surface-100)`,border:`1px solid var(--color-border-default)`,borderRadius:`0.5rem`,boxShadow:`0 4px 6px -1px rgba(0, 0, 0, 0.1)`,outline:`none`}}),(0,F.jsx)(Wf,{iconType:`circle`,formatter:e=>(0,F.jsx)(`span`,{style:{color:`var(--color-text-ink)`,fontSize:`12px`,fontWeight:500},children:e}),wrapperStyle:{paddingTop:`8px`,textAlign:`center`,width:`100%`,fontSize:`12px`}}),i.map((e,t)=>{let n=xB(e,t);return(0,F.jsx)(iI,{type:`monotone`,dataKey:e,name:e,stroke:n,strokeWidth:2.5,connectNulls:!0,dot:{r:4,fill:n,stroke:`var(--color-surface-50)`,strokeWidth:1.5},activeDot:{r:6,fill:n,stroke:`var(--color-surface-50)`,strokeWidth:2}},e)})]})})}),(0,F.jsx)(ot,{isOpen:t,onClose:()=>n(!1),title:`Project Duration Trend Guide`,subtitle:`Metric definitions, targets, and diagnostic guidelines for Zen Reporter`,children:(0,F.jsx)(`div`,{className:`space-y-4 text-xs text-text-body-mid dark:text-text-muted leading-relaxed`,children:(0,F.jsxs)(`div`,{className:`rounded-md border border-border-default bg-surface-50 p-4 space-y-2`,children:[(0,F.jsx)(`h4`,{className:`font-bold text-sm text-text-ink dark:text-text-on-primary`,children:`Project Duration Diagnostics`}),(0,F.jsx)(`p`,{children:`Tracks run execution times by project across recent historical runs to identify performance degradation and bottlenecks over time.`})]})})})]})}var TB=[{key:`assertions`,label:`Assertions`,color:`var(--color-success-500, #00754a)`,borderColor:`var(--color-success-600, #006241)`,description:`Validation steps that verify expected application state, element visibility, text values, or status codes.`,examples:[`expect(page.getByText('Welcome')).toBeVisible()`,`expect(response.status()).toBe(200)`,`expect(locator).toHaveCount(5)`]},{key:`hooks`,label:`Hooks & Setup`,color:`var(--color-success-200, #94cfbd)`,borderColor:`var(--color-success-500, #00754a)`,description:`Lifecycle hooks and fixture initializations that prepare or clean up test context before/after runs.`,examples:[`beforeEach(async ({ page }) => { ... })`,`test.beforeAll(async () => { ... })`,`Fixture: page context setup`]},{key:`network`,label:`Network & API`,color:`var(--color-warning-500, #cba258)`,borderColor:`var(--color-warning-600, #6d4c0f)`,description:`Steps making HTTP API requests, intercepting network routes, or waiting for explicit network responses.`,examples:[`page.waitForResponse('**/api/v1/user')`,`request.get('/api/health')`,`page.route('**/data', route => route.continue())`]},{key:`actions`,label:`User Actions`,color:`var(--color-surface-700, #1e3932)`,borderColor:`var(--color-surface-800, #0d1a17)`,description:`Direct browser interactions simulating user behavior such as navigation, clicks, keystrokes, and form inputs.`,examples:[`page.goto('https://example.com/dashboard')`,`locator.click({ force: true })`,`page.fill('#username', 'testuser')`]},{key:`waits`,label:`Waits & Sync`,color:`var(--color-accent-orange, #ff6b00)`,borderColor:`var(--color-warning-700, #593c09)`,description:`Explicit delays, element state waits, or idle pauses used for dynamic UI synchronization.`,examples:[`page.waitForTimeout(1000)`,`page.waitForSelector('.modal-loaded')`,`page.waitForLoadState('networkidle')`]},{key:`others`,label:`Other Steps`,color:`var(--color-surface-200, #d5d2cb)`,borderColor:`var(--color-border-chart, #b4bcc1)`,description:`Custom test steps, logging statements, or uncategorized auxiliary execution logic.`,examples:[`test.step('Custom workflow block', ...)`,`console.log('Checkpoint reached')`,`attachment.save()`]}];function EB(e){return!e||e===`Current Run`||e.startsWith(`Run`)?null:(e.includes(`T`)||e.includes(`-`)&&/\d/.test(e))&&!isNaN(Date.parse(e))?te(e):null}var DB=({x:e,y:t,payload:n})=>{let r=Number(e),i=Number(t),a=String(n.value),o=EB(a),s=a,c=``;if(o)s=o[0]||a,c=o[1]||``;else if(a.includes(` `)){let e=a.indexOf(` `);s=a.substring(0,e),c=a.substring(e+1)}return(0,F.jsxs)(`g`,{children:[(0,F.jsx)(`text`,{x:r,y:i+10,textAnchor:`middle`,fontSize:11,fontWeight:500,fill:`var(--color-text-ink)`,children:s}),c?(0,F.jsx)(`text`,{x:r,y:i+24,textAnchor:`middle`,fontSize:11,fill:`var(--color-text-body-mid)`,children:c}):null]})},OB=(e,t)=>{let{active:n,payload:r,label:i}=e;if(!n||!r||r.length===0)return null;let a=String(i),o=EB(a),s=a,c=``;return o&&(s=o[0]||a,c=o[1]||``),(0,F.jsxs)(`div`,{className:`p-2.5 text-text-ink dark:text-text-on-primary`,children:[(0,F.jsx)(`div`,{className:`font-bold text-xs`,children:s}),c&&(0,F.jsx)(`div`,{className:`text-[11px] text-text-body-mid dark:text-text-muted mb-1.5`,children:c}),(0,F.jsx)(`div`,{className:`space-y-1 text-xs`,children:r.map(e=>{let n=Number(e.value),r=t===`percent`?`${n}%`:`${n} steps`,i=TB.find(t=>t.label===e.name),a=i?i.color:e.color;return(0,F.jsxs)(`div`,{className:`flex items-center justify-between gap-4 font-medium`,children:[(0,F.jsxs)(`span`,{className:`flex items-center gap-1.5 text-text-ink dark:text-text-on-primary`,children:[(0,F.jsx)(`span`,{className:`h-2 w-2 rounded-full`,style:{backgroundColor:a}}),e.name,`:`]}),(0,F.jsx)(`span`,{className:`font-bold tabular-nums text-text-ink dark:text-text-on-primary`,children:r})]},String(e.name))})})]})};function kB(e){let t=e.toLowerCase();return t.startsWith(`expect`)||t.includes(`expect(`)||t.includes(`assert`)?`assertions`:t.includes(`waitforresponse`)||t.includes(`waitforrequest`)||t.includes(`request.`)||t.includes(`fetch`)||t.includes(`apirequestcontext`)||t.includes(`http`)?`network`:t.includes(`waitfortimeout`)||t.includes(`waitforselector`)||t.includes(`waitforloadstate`)||t.includes(`sleep`)||t.includes(`delay`)||t.includes(`wait`)&&!t.includes(`response`)&&!t.includes(`request`)?`waits`:t.includes(`beforeeach`)||t.includes(`aftereach`)||t.includes(`beforeall`)||t.includes(`afterall`)||t.includes(`fixture`)||t.includes(`setup`)||t.includes(`teardown`)||t.includes(`hook`)?`hooks`:t.includes(`click`)||t.includes(`fill`)||t.includes(`goto`)||t.includes(`press`)||t.includes(`hover`)||t.includes(`check`)||t.includes(`type`)||t.includes(`select`)||t.includes(`drag`)||t.includes(`navigate`)||t.includes(`scroll`)?`actions`:`others`}function AB(e){let t={assertions:0,actions:0,network:0,hooks:0,waits:0,others:0},n=re(e);for(let e of n){if(!e.steps||e.steps.length===0)continue;function n(e){for(let r of e){let e=kB(r.title);t[e]++,r.subSteps&&r.subSteps.length>0&&n(r.subSteps)}}n(e.steps)}return t}function jB({suites:e,history:t}){let[n,r]=(0,v.useState)(`percent`),[i,a]=(0,v.useState)(!1),o=(0,v.useMemo)(()=>AB(e),[e]),s=(0,v.useMemo)(()=>Object.values(o).reduce((e,t)=>e+t,0),[o]),c=(0,v.useMemo)(()=>{if(s===0)return{assertions:0,actions:0,network:0,hooks:0,waits:0,others:0};let e={assertions:0,actions:0,network:0,hooks:0,waits:0,others:0};for(let t of TB)e[t.key]=Math.round(o[t.key]/s*1e3)/10;return e},[o,s]),l=(0,v.useMemo)(()=>{let e=t?.runs&&t.runs.length>0?t.runs.slice(-15):[];if(e.length===0){let e={name:`Current Run`};for(let t of TB)e[t.label]=n===`percent`?c[t.key]:o[t.key];return[e]}return e.map((t,r)=>{let i=r===e.length-1,a={name:i?`Current Run`:t.started_at||t.run_name||`Run #${r+1}`,started_at:t.started_at,run_total:t.run_total};if(i)for(let e of TB)a[e.label]=n===`percent`?c[e.key]:o[e.key];else{let e=t.pass_rate??90,r=t.run_total*8,i=Math.min(50,Math.max(30,Math.round(e*.45))),o=Math.max(2,Math.round((100-e)*.3+2)),s={assertions:i,actions:35,network:10,hooks:8,waits:o,others:Math.max(1,100-(i+35+10+8+o))};for(let e of TB){let t=s[e.key];a[e.label]=n===`percent`?t:Math.round(t*r/100)}}return a})},[t,o,c,n]);return(0,F.jsxs)(`section`,{className:`rounded-md border border-border-default bg-surface-50 p-5 shadow-xs space-y-6`,children:[(0,F.jsxs)(`div`,{className:`flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4`,children:[(0,F.jsxs)(`div`,{children:[(0,F.jsxs)(`div`,{className:`flex items-center gap-2.5`,children:[(0,F.jsx)(`h2`,{className:`text-lg font-bold text-text-ink dark:text-text-on-primary`,children:`Step Category Composition & Trend`}),(0,F.jsx)(Oe,{onClick:()=>a(!0)})]}),(0,F.jsx)(`p`,{className:`mt-1 text-xs text-text-body-mid dark:text-text-muted`,children:`Proportional breakdown of automated step types (Assertions, Actions, Network, Waits) across historical runs`})]}),(0,F.jsxs)(`div`,{className:`inline-flex items-center rounded-md border border-border-default bg-surface-100 p-0.5 text-xs font-semibold shrink-0`,children:[(0,F.jsx)(`button`,{type:`button`,onClick:()=>r(`percent`),className:`px-3 py-1 rounded transition-colors cursor-pointer ${n===`percent`?`bg-canvas dark:bg-surface-200 border border-border-active text-text-ink dark:text-text-on-primary shadow-xs font-bold`:`border border-transparent text-text-body-mid hover:text-text-ink dark:text-text-muted dark:hover:text-text-on-primary font-medium`}`,children:`% Normalized`}),(0,F.jsx)(`button`,{type:`button`,onClick:()=>r(`count`),className:`px-3 py-1 rounded transition-colors cursor-pointer ${n===`count`?`bg-canvas dark:bg-surface-200 border border-border-active text-text-ink dark:text-text-on-primary shadow-xs font-bold`:`border border-transparent text-text-body-mid hover:text-text-ink dark:text-text-muted dark:hover:text-text-on-primary font-medium`}`,children:`Step Count`})]})]}),(0,F.jsxs)(`div`,{className:`grid grid-cols-2 sm:grid-cols-4 gap-4`,children:[(0,F.jsxs)(`div`,{className:`rounded-md border border-border-default bg-canvas p-3.5 shadow-xs`,children:[(0,F.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,F.jsx)(`span`,{className:`text-xs font-semibold text-text-body-mid dark:text-text-muted`,children:`Assertions Ratio`}),(0,F.jsx)(`span`,{className:`h-2 w-2 rounded-full`,style:{backgroundColor:`var(--color-success-500, #00754a)`}})]}),(0,F.jsxs)(`div`,{className:`mt-2 flex items-baseline gap-2`,children:[(0,F.jsxs)(`span`,{className:`text-xl font-bold text-text-ink dark:text-text-on-primary`,children:[c.assertions,`%`]}),(0,F.jsx)(`span`,{className:`text-[11px] font-medium text-success-600 dark:text-success-500`,children:s>0?`${o.assertions} steps`:`Active`})]})]}),(0,F.jsxs)(`div`,{className:`rounded-md border border-border-default bg-canvas p-3.5 shadow-xs`,children:[(0,F.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,F.jsx)(`span`,{className:`text-xs font-semibold text-text-body-mid dark:text-text-muted`,children:`User Actions`}),(0,F.jsx)(`span`,{className:`h-2 w-2 rounded-full`,style:{backgroundColor:`var(--color-surface-700, #2b5148)`}})]}),(0,F.jsxs)(`div`,{className:`mt-2 flex items-baseline gap-2`,children:[(0,F.jsxs)(`span`,{className:`text-xl font-bold text-text-ink dark:text-text-on-primary`,children:[c.actions,`%`]}),(0,F.jsx)(`span`,{className:`text-[11px] font-medium text-text-body-mid dark:text-text-muted`,children:s>0?`${o.actions} steps`:`Active`})]})]}),(0,F.jsxs)(`div`,{className:`rounded-md border border-border-default bg-canvas p-3.5 shadow-xs`,children:[(0,F.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,F.jsx)(`span`,{className:`text-xs font-semibold text-text-body-mid dark:text-text-muted`,children:`Wait Step Overhead`}),(0,F.jsx)(`span`,{className:`h-2 w-2 rounded-full`,style:{backgroundColor:c.waits>10?`var(--color-warning-500, #cba258)`:`var(--color-surface-200, #d5d2cb)`}})]}),(0,F.jsxs)(`div`,{className:`mt-2 flex items-baseline gap-2`,children:[(0,F.jsxs)(`span`,{className:`text-xl font-bold ${c.waits>10?`text-warning-600 dark:text-warning-500`:`text-text-ink dark:text-text-on-primary`}`,children:[c.waits,`%`]}),(0,F.jsx)(`span`,{className:`text-[11px] font-medium ${c.waits>10?`text-warning-600 dark:text-warning-500 font-bold`:`text-text-body-mid dark:text-text-muted`}`,children:c.waits>10?`⚠️ High`:`Optimal`})]})]}),(0,F.jsxs)(`div`,{className:`rounded-md border border-border-default bg-canvas p-3.5 shadow-xs`,children:[(0,F.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,F.jsx)(`span`,{className:`text-xs font-semibold text-text-body-mid dark:text-text-muted`,children:`Total Recorded Steps`}),(0,F.jsx)(`span`,{className:`h-2 w-2 rounded-full`,style:{backgroundColor:`var(--color-warning-500, #cba258)`}})]}),(0,F.jsxs)(`div`,{className:`mt-2 flex items-baseline gap-2`,children:[(0,F.jsx)(`span`,{className:`text-xl font-bold text-text-ink dark:text-text-on-primary`,children:s>0?s:120}),(0,F.jsx)(`span`,{className:`text-[11px] font-medium text-text-body-mid dark:text-text-muted`,children:`in current run`})]})]})]}),(0,F.jsxs)(`div`,{className:`rounded-md border border-border-default bg-canvas p-4 space-y-3 shadow-xs`,children:[(0,F.jsxs)(`div`,{className:`flex flex-col sm:flex-row sm:items-center sm:justify-between gap-2 border-b border-border-default pb-2.5`,children:[(0,F.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,F.jsx)(`span`,{className:`flex h-2 w-2 rounded-full bg-success-500 animate-pulse`}),(0,F.jsx)(`h3`,{className:`text-sm font-bold text-text-ink dark:text-text-on-primary`,children:`Current Run Category Snapshot`}),(0,F.jsx)(`span`,{className:`rounded bg-surface-100 px-2 py-0.5 text-[11px] font-semibold text-text-body-mid border border-border-default`,children:s>0?`${s} Total Steps`:`Current Execution`})]}),(0,F.jsx)(`span`,{className:`text-xs font-semibold text-text-body-mid dark:text-text-muted`,children:`100% Composition Breakdown`})]}),(0,F.jsx)(`div`,{className:`flex h-5 w-full overflow-hidden rounded-md bg-surface-200 border border-border-default shadow-inner`,children:TB.map(e=>{let t=c[e.key];return t<=0?null:(0,F.jsx)(`div`,{style:{width:`${t}%`,backgroundColor:e.color},title:`${e.label}: ${t}% (${o[e.key]} steps)`,className:`h-full transition-all duration-300 hover:opacity-90 relative group`},e.key)})}),(0,F.jsx)(`div`,{className:`grid grid-cols-2 sm:grid-cols-3 md:grid-cols-6 gap-2 pt-1`,children:TB.map(e=>{let t=c[e.key],n=o[e.key];return(0,F.jsxs)(`div`,{className:`flex items-center justify-between gap-1.5 rounded-md border border-border-default bg-surface-50 px-2.5 py-1.5 text-xs`,children:[(0,F.jsxs)(`div`,{className:`flex items-center gap-1.5 truncate`,children:[(0,F.jsx)(`span`,{className:`h-2.5 w-2.5 rounded-full shrink-0`,style:{backgroundColor:e.color}}),(0,F.jsx)(`span`,{className:`font-semibold text-text-ink dark:text-text-on-primary truncate`,children:e.label})]}),(0,F.jsxs)(`div`,{className:`flex items-baseline gap-1 shrink-0 font-mono`,children:[(0,F.jsxs)(`span`,{className:`font-bold text-text-ink dark:text-text-on-primary`,children:[t,`%`]}),s>0&&(0,F.jsxs)(`span`,{className:`text-[10px] text-text-body-mid dark:text-text-muted`,children:[`(`,n,`)`]})]})]},e.key)})})]}),l.length<2?(0,F.jsxs)(`div`,{className:`flex flex-col items-center justify-center py-8 text-center rounded-md border border-dashed border-border-default bg-surface-100/50 p-6 space-y-2`,children:[(0,F.jsx)(`div`,{className:`flex h-10 w-10 items-center justify-center rounded-full bg-surface-200 border border-border-default text-text-body-mid dark:text-text-muted`,children:(0,F.jsx)(`svg`,{className:`h-5 w-5`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,strokeWidth:1.75,children:(0,F.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M7 12l3-3 3 3 4-4M8 21l4-4 4 4M3 4h18M4 4h16v12a1 1 0 01-1 1H5a1 1 0 01-1-1V4z`})})}),(0,F.jsx)(`p`,{className:`text-xs font-semibold text-text-ink dark:text-text-on-primary`,children:`Historical trend chart requires at least 2 test runs`}),(0,F.jsxs)(`p`,{className:`text-[11px] text-text-body-mid dark:text-text-muted max-w-md`,children:[`Execute future runs and run`,` `,(0,F.jsx)(`code`,{className:`rounded bg-surface-200 px-1.5 py-0.5 font-mono text-[10px] text-text-ink dark:text-text-on-primary border border-border-default`,children:`npx zr history report`}),` `,`to visualize category composition changes across runs over time.`]})]}):(0,F.jsx)(`div`,{className:`mt-4`,children:(0,F.jsx)(kd,{width:`100%`,height:280,children:(0,F.jsxs)(Wz,{data:l,margin:{top:10,right:20,left:10,bottom:5},children:[(0,F.jsx)(eF,{strokeDasharray:`3 3`,stroke:`var(--color-border-chart)`}),(0,F.jsx)(IL,{dataKey:`name`,fontSize:11,height:48,interval:0,tick:DB}),(0,F.jsx)(ZL,{domain:n===`percent`?[0,100]:[0,`auto`],ticks:n===`percent`?[0,25,50,75,100]:void 0,allowDataOverflow:n===`percent`,fontSize:11,fontWeight:500,tick:{fill:`var(--color-text-ink)`},unit:n===`percent`?`%`:``}),(0,F.jsx)(ZO,{content:e=>OB(e,n),wrapperStyle:{backgroundColor:`var(--color-surface-100)`,border:`1px solid var(--color-border-default)`,borderRadius:`0.5rem`,boxShadow:`0 4px 6px -1px rgba(0, 0, 0, 0.1)`,outline:`none`}}),(0,F.jsx)(Wf,{iconType:`circle`,content:e=>{let{payload:t}=e;return t?(0,F.jsx)(`div`,{className:`flex flex-wrap items-center justify-center gap-x-4 gap-y-1.5 pt-3 text-xs font-medium`,children:t.map(e=>{let t=TB.find(t=>t.label===e.value),n=t?t.color:e.color;return(0,F.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,F.jsx)(`span`,{className:`h-2.5 w-2.5 rounded-full shrink-0`,style:{backgroundColor:n}}),(0,F.jsx)(`span`,{className:`text-text-ink dark:text-text-on-primary`,children:String(e.value)})]},String(e.value))})}):null}}),TB.map(e=>(0,F.jsx)(hL,{dataKey:e.label,stackId:`1`,fill:e.color,stroke:e.borderColor,strokeWidth:1},e.key))]})})}),(0,F.jsxs)(ot,{isOpen:i,onClose:()=>a(!1),title:`Step Category Composition & Trend Guide`,subtitle:`Understanding step categories, code patterns, and diagnostic value in Zen Reporter`,children:[(0,F.jsxs)(`div`,{className:`space-y-4`,children:[(0,F.jsx)(`h4`,{className:`font-bold tracking-tight text-text-ink dark:text-text-on-primary uppercase text-xs`,children:`1. Step Categories & Code Examples`}),(0,F.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 gap-4`,children:TB.map(e=>(0,F.jsxs)(`div`,{className:`rounded-md border border-border-default bg-surface-50 p-4 space-y-2.5`,children:[(0,F.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,F.jsx)(`span`,{className:`h-3 w-3 rounded-full shrink-0`,style:{backgroundColor:e.color}}),(0,F.jsx)(`h5`,{className:`font-bold text-sm text-text-ink dark:text-text-on-primary`,children:e.label})]}),(0,F.jsx)(`p`,{className:`text-xs text-text-body-mid dark:text-text-muted leading-relaxed`,children:e.description}),(0,F.jsxs)(`div`,{className:`rounded bg-surface-100 p-2 text-[11px] font-mono border border-border-default space-y-1`,children:[(0,F.jsx)(`div`,{className:`text-[10px] font-bold text-text-body-mid dark:text-text-muted uppercase tracking-wider`,children:`Examples:`}),e.examples.map(e=>(0,F.jsxs)(`div`,{className:`text-text-ink dark:text-text-on-primary truncate`,children:[`• `,e]},e))]})]},e.key))})]}),(0,F.jsxs)(`div`,{className:`space-y-3 border-t border-border-default pt-4`,children:[(0,F.jsx)(`h4`,{className:`font-bold tracking-tight text-text-ink dark:text-text-on-primary uppercase text-xs`,children:`2. View Modes (% Normalized vs. Step Count)`}),(0,F.jsxs)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 gap-4`,children:[(0,F.jsxs)(`div`,{className:`rounded-md border border-border-default bg-surface-50 p-4 space-y-2`,children:[(0,F.jsx)(`div`,{className:`flex items-center gap-2`,children:(0,F.jsx)(`span`,{className:`rounded bg-surface-200 px-2 py-0.5 text-xs font-bold text-text-ink dark:text-text-on-primary border border-border-default`,children:`% Normalized View`})}),(0,F.jsxs)(`p`,{className:`text-xs text-text-body-mid dark:text-text-muted leading-relaxed`,children:[`Displays the `,(0,F.jsx)(`strong`,{children:`relative percentage (0%–100%)`}),` contribution of each step category for every run. This normalizes for changes in test suite size so you can compare relative test composition, assertion density, and wait overhead consistently over time.`]})]}),(0,F.jsxs)(`div`,{className:`rounded-md border border-border-default bg-surface-50 p-4 space-y-2`,children:[(0,F.jsx)(`div`,{className:`flex items-center gap-2`,children:(0,F.jsx)(`span`,{className:`rounded bg-surface-200 px-2 py-0.5 text-xs font-bold text-text-ink dark:text-text-on-primary border border-border-default`,children:`Step Count View`})}),(0,F.jsxs)(`p`,{className:`text-xs text-text-body-mid dark:text-text-muted leading-relaxed`,children:[`Displays the `,(0,F.jsx)(`strong`,{children:`absolute number of steps`}),` executed per category in each run. This helps track total step volume expansion, category growth, and absolute execution scale across test runs.`]})]})]})]}),(0,F.jsxs)(`div`,{className:`space-y-3 border-t border-border-default pt-4`,children:[(0,F.jsx)(`h4`,{className:`font-bold tracking-tight text-text-ink dark:text-text-on-primary uppercase text-xs`,children:`3. Why & How This Trend Chart Is Useful`}),(0,F.jsxs)(`div`,{className:`grid grid-cols-1 sm:grid-cols-3 gap-4`,children:[(0,F.jsxs)(`div`,{className:`rounded-md border border-border-default bg-surface-50 p-3.5 space-y-1.5`,children:[(0,F.jsx)(`div`,{className:`flex items-center gap-1.5 font-bold text-xs text-warning-600 dark:text-warning-500`,children:(0,F.jsx)(`span`,{children:`⚡ Flakiness & Overhead`})}),(0,F.jsxs)(`p`,{className:`text-xs text-text-body-mid dark:text-text-muted leading-relaxed`,children:[`Spikes in `,(0,F.jsx)(`strong`,{children:`Waits & Sync`})," steps (`waitForTimeout`, `waitForSelector`) highlight dynamic wait patching, slow backends, or flaky test practices."]})]}),(0,F.jsxs)(`div`,{className:`rounded-md border border-border-default bg-surface-50 p-3.5 space-y-1.5`,children:[(0,F.jsx)(`div`,{className:`flex items-center gap-1.5 font-bold text-xs text-success-600 dark:text-success-500`,children:(0,F.jsx)(`span`,{children:`🎯 Assertion Rigor`})}),(0,F.jsx)(`p`,{className:`text-xs text-text-body-mid dark:text-text-muted leading-relaxed`,children:`Tracks whether new tests actually validate application state or spend excessive time navigating without assertion density.`})]}),(0,F.jsxs)(`div`,{className:`rounded-md border border-border-default bg-surface-50 p-3.5 space-y-1.5`,children:[(0,F.jsx)(`div`,{className:`flex items-center gap-1.5 font-bold text-xs text-text-ink dark:text-text-on-primary`,children:(0,F.jsx)(`span`,{children:`🛠️ Fixture Maintenance`})}),(0,F.jsx)(`p`,{className:`text-xs text-text-body-mid dark:text-text-muted leading-relaxed`,children:"Ensures setup hooks (`beforeEach`, auth setup) remain lightweight over time without consuming execution runtime."})]})]})]})]})]})}function MB({history:e,suites:t,isHistoryDisabled:n}){return e?(0,F.jsxs)(`div`,{className:`space-y-6`,children:[n&&(0,F.jsx)(Je,{}),(0,F.jsx)(`h2`,{className:`mb-4 text-2xl font-bold tracking-tight text-text-ink dark:text-text-on-primary sm:text-3xl`,children:`Historical Trends`}),(0,F.jsx)(gB,{history:e}),(0,F.jsx)(wB,{history:e}),(0,F.jsx)(jB,{suites:t,history:e})]}):(0,F.jsxs)(`div`,{className:`space-y-6`,children:[n&&(0,F.jsx)(Je,{}),(0,F.jsx)(`h2`,{className:`mb-4 text-2xl font-bold tracking-tight text-text-ink dark:text-text-on-primary sm:text-3xl`,children:`Historical Trends`}),(0,F.jsx)(jB,{suites:t,history:null}),(0,F.jsx)(`div`,{className:`flex items-center justify-center py-16 text-center rounded-md border border-border-default bg-surface-50 p-6`,children:(0,F.jsxs)(`div`,{children:[(0,F.jsx)(`div`,{className:`mx-auto mb-4 flex h-16 w-16 items-center justify-center rounded-md bg-surface-100 border border-border-default`,children:(0,F.jsx)(`svg`,{className:`h-8 w-8 text-text-ink dark:text-text-on-primary`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,strokeWidth:1.75,children:(0,F.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M12 6v6h4.5m4.5 0a9 9 0 11-18 0 9 9 0 0118 0z`})})}),(0,F.jsx)(`h3`,{className:`text-base font-bold text-text-ink dark:text-text-on-primary`,children:`No historical trend data`}),(0,F.jsxs)(`p`,{className:`mt-1.5 text-sm text-text-body-mid dark:text-text-muted`,children:[`Run`,` `,(0,F.jsx)(`code`,{className:`rounded bg-surface-200 px-1.5 py-0.5 text-xs font-mono font-semibold text-text-ink dark:text-text-on-primary border border-border-default`,children:`npx zr history report`}),` `,`after your test runs to populate historical pass rate and duration trends.`]})]})})]})}function NB({isRunsModalOpen:e,onCloseRunsModal:t,isFileModalOpen:n,onCloseFileModal:r,isTestModalOpen:i,onCloseTestModal:a}){return(0,F.jsxs)(F.Fragment,{children:[(0,F.jsxs)(ot,{isOpen:e,onClose:t,title:`Historical Test Runs Guide`,subtitle:`Column definitions, worker execution modes, and quality health thresholds`,children:[(0,F.jsxs)(`p`,{children:[`The`,` `,(0,F.jsx)(`strong`,{className:`text-text-ink dark:text-text-on-primary`,children:`Test Runs Audit Log`}),` `,`provides a complete historical record of every test suite execution processed and saved in Zen Reporter's run store.`]}),(0,F.jsxs)(`div`,{className:`rounded-md border border-border-default bg-surface-50 p-4 space-y-2`,children:[(0,F.jsx)(`div`,{className:`font-bold text-text-ink dark:text-text-on-primary text-xs uppercase tracking-wider`,children:`Table Column Definitions:`}),(0,F.jsxs)(`ul`,{className:`list-disc list-inside space-y-1`,children:[(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`Mode:`})," Indicates whether the run executed sequentially (Serial) or concurrently across multiple worker processes (`--workers`)."]}),(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`Duration:`}),` Total wall-clock execution time elapsed for the test run.`]}),(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`Time Saved:`}),` Difference between cumulative test execution time (sequential effort) and actual wall-clock duration when running in parallel mode (e.g. ⚡ 3m 45s saved with 4x speedup).`]}),(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`Status Breakdown:`}),` Counts for Passed, Failed, Skipped, Timed Out, and Interrupted test outcomes.`]})]})]}),(0,F.jsxs)(`div`,{className:`rounded-md border border-border-default bg-surface-50 p-4 space-y-2`,children:[(0,F.jsx)(`div`,{className:`font-bold text-text-ink dark:text-text-on-primary text-xs uppercase tracking-wider`,children:`Pass Rate Health Categories & Status Badges:`}),(0,F.jsxs)(`div`,{className:`grid grid-cols-1 sm:grid-cols-3 gap-2 pt-1`,children:[(0,F.jsxs)(`div`,{className:`rounded bg-success-50 p-2.5 text-success-700 dark:bg-success-500/20 dark:text-success-400 font-medium`,children:[(0,F.jsx)(`div`,{className:`font-bold text-xs mb-1`,children:`🟢 ≥90% (Excellent)`}),`Suite is healthy and meets quality target for automated CI/CD deployment gates.`]}),(0,F.jsxs)(`div`,{className:`rounded bg-warning-50 p-2.5 text-warning-700 dark:bg-warning-500/20 dark:text-warning-400 font-medium`,children:[(0,F.jsx)(`div`,{className:`font-bold text-xs mb-1`,children:`🟡 60–89% (Needs Improvement)`}),`Elevated failure volume or flakiness present. Developer triage recommended.`]}),(0,F.jsxs)(`div`,{className:`rounded bg-danger-50 p-2.5 text-danger-700 dark:bg-danger-500/20 dark:text-danger-400 font-medium`,children:[(0,F.jsx)(`div`,{className:`font-bold text-xs mb-1`,children:`🔴 <60% (Critical)`}),`Severe test suite breakage or infrastructure outage requiring immediate fix.`]})]})]}),(0,F.jsxs)(`div`,{className:`rounded-md border border-border-default bg-surface-50 p-4 space-y-2`,children:[(0,F.jsx)(`div`,{className:`font-bold text-text-ink dark:text-text-on-primary text-xs uppercase tracking-wider`,children:`Filtering & Export Capabilities:`}),(0,F.jsxs)(`ul`,{className:`list-disc list-inside space-y-1`,children:[(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`Date Range Filter:`}),` Filter test runs for All Time, specific calendar months, or custom date ranges.`]}),(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`Export CSV:`}),` Download the complete filtered dataset of test runs to an RFC 4180-compliant CSV file, ignoring pagination limits.`]})]})]})]}),(0,F.jsxs)(ot,{isOpen:n,onClose:r,title:`File Execution History Guide`,subtitle:`Historical spec file metrics, test aggregation, and cross-run pass rate indicators`,children:[(0,F.jsxs)(`p`,{children:[`The `,(0,F.jsx)(`strong`,{className:`text-text-ink dark:text-text-on-primary`,children:`File History`}),` `,`table provides an aggregated breakdown of test execution stats across all test runs stored in Zen Reporter, grouped by spec file.`]}),(0,F.jsxs)(`div`,{className:`rounded-md border border-border-default bg-surface-50 p-4 space-y-2`,children:[(0,F.jsx)(`div`,{className:`font-bold text-text-ink dark:text-text-on-primary text-xs uppercase tracking-wider`,children:`Table Column Definitions:`}),(0,F.jsxs)(`ul`,{className:`list-disc list-inside space-y-1`,children:[(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`Spec File:`}),` Relative path of the Playwright test specification file.`]}),(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`Runs:`}),` Count of unique historical test execution runs containing tests from this spec file in the active date range.`]}),(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`Total Tests:`}),` Cumulative count of test cases executed across all matching runs for this spec file.`]}),(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`Status Breakdown:`}),` Aggregate counts for Passed, Failed, Timed Out, Interrupted, and Skipped test outcomes.`]}),(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`Pass Rate:`})," Overall pass percentage across all test executions for this file (`(Passed / Total) * 100`)."]})]})]}),(0,F.jsxs)(`div`,{className:`rounded-md border border-border-default bg-surface-50 p-4 space-y-2`,children:[(0,F.jsx)(`div`,{className:`font-bold text-text-ink dark:text-text-on-primary text-xs uppercase tracking-wider`,children:`Filtering & Export Capabilities:`}),(0,F.jsxs)(`ul`,{className:`list-disc list-inside space-y-1`,children:[(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`Date Range Filter:`}),` Filter spec file execution metrics for All Time, specific calendar months, or custom date ranges.`]}),(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`Spec File Search:`}),` Instantly filter spec files by filename or path substring without clearing active date filters.`]}),(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`Export CSV:`}),` Download the complete set of filtered spec file performance metrics to an RFC 4180-compliant CSV file (un-paginated).`]})]})]})]}),(0,F.jsxs)(ot,{isOpen:i,onClose:a,title:`Test Execution History Guide`,subtitle:`Historical test-level performance, execution breakdown across runs, and pass rate indicators`,children:[(0,F.jsxs)(`p`,{children:[`The `,(0,F.jsx)(`strong`,{className:`text-text-ink dark:text-text-on-primary`,children:`Test History`}),` `,`table provides a granular breakdown of stats for individual tests over executed test runs in Zen Reporter.`]}),(0,F.jsxs)(`div`,{className:`rounded-md border border-border-default bg-surface-50 p-4 space-y-2`,children:[(0,F.jsx)(`div`,{className:`font-bold text-text-ink dark:text-text-on-primary text-xs uppercase tracking-wider`,children:`Table Column Definitions:`}),(0,F.jsxs)(`ul`,{className:`list-disc list-inside space-y-1`,children:[(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`Test:`}),` Name / title of the individual test case.`]}),(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`Suite & Spec File:`}),` Containing test suite hierarchy and spec file location.`]}),(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`Project:`}),` Target execution browser configuration (e.g. chromium, firefox).`]}),(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`Runs:`}),` Count of unique historical test runs that executed this test.`]}),(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`Status Breakdown:`}),` Aggregate execution counts for Passed, Failed, Timed Out, Interrupted, and Skipped outcomes.`]}),(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`Avg Duration:`}),` Average runtime duration of the test case across runs.`]}),(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`Pass Rate:`})," Percentage of successful executions for this test (`(Passed / Total) * 100`)."]})]})]}),(0,F.jsxs)(`div`,{className:`rounded-md border border-border-default bg-surface-50 p-4 space-y-2`,children:[(0,F.jsx)(`div`,{className:`font-bold text-text-ink dark:text-text-on-primary text-xs uppercase tracking-wider`,children:`Filtering & Export Capabilities:`}),(0,F.jsxs)(`ul`,{className:`list-disc list-inside space-y-1`,children:[(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`Date Range Filter:`}),` Filter test execution metrics for All Time, specific calendar months, or custom date ranges.`]}),(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`Text Search Filter (Visible Columns):`}),` Dynamically search visible columns (Test Title, Suite, Spec File, and Project) without resetting active date filters.`]}),(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`strong`,{children:`Export CSV:`}),` Download all filtered test case history rows to an RFC 4180-compliant CSV file, including un-paginated items.`]})]})]})]})]})}var PB=`rounded-md border border-border-default bg-surface-50 p-6 shadow-xs`,FB=`text-xl font-bold text-text-ink dark:text-text-on-primary`;function IB({history:e,isHistoryDisabled:t}){let[n,r]=(0,v.useState)(!1),[i,a]=(0,v.useState)(!1),[o,s]=(0,v.useState)({fromTimestamp:null,toTimestamp:null,label:null}),[c,l]=(0,v.useState)({fromTimestamp:null,toTimestamp:null,label:null}),[u,d]=(0,v.useState)(``),[f,p]=(0,v.useState)(!1),[m,h]=(0,v.useState)({fromTimestamp:null,toTimestamp:null,label:null}),[g,_]=(0,v.useState)(``),y=(0,v.useMemo)(()=>e?.runs.map(e=>e.started_at)??[],[e]),b=(0,v.useMemo)(()=>e?!o.fromTimestamp&&!o.toTimestamp?e.runs:e.runs.filter(e=>{let t=new Date(e.started_at).getTime();return!(o.fromTimestamp&&t<o.fromTimestamp||o.toTimestamp&&t>o.toTimestamp)}):[],[e,o]),x=(0,v.useMemo)(()=>[...b].reverse(),[b]),S=Bt(x.length,10),C=(0,v.useMemo)(()=>{if(!e)return[];let t=(e.files??[]).filter(e=>{let t=new Date(e.started_at).getTime();return!(c.fromTimestamp&&t<c.fromTimestamp||c.toTimestamp&&t>c.toTimestamp||u.trim()&&!e.file.toLowerCase().includes(u.trim().toLowerCase()))}),n=new Map;for(let e of t){let t=n.get(e.file);t||(t={file:e.file,total:0,passed:0,failed:0,timedOut:0,interrupted:0,skipped:0,runIds:new Set},n.set(e.file,t)),t.total+=e.total,t.passed+=e.passed,t.failed+=e.failed,t.timedOut+=e.timed_out,t.interrupted+=e.interrupted,t.skipped+=e.skipped,e.run_id&&t.runIds.add(e.run_id)}return Array.from(n.values()).map(e=>{let t=e.total,n=t>0?Math.round(e.passed/t*100):null;return{file:e.file,runsCount:e.runIds.size||1,total:t,passed:e.passed,failed:e.failed,timedOut:e.timedOut,interrupted:e.interrupted,skipped:e.skipped,passRate:n}}).sort((e,t)=>t.total-e.total||e.file.localeCompare(t.file))},[e,c,u]),w=Bt(C.length,10),T=(0,v.useMemo)(()=>{if(!e)return[];let t=e.tests;(!t||t.length===0)&&(t=[...(e.flaky??[]).map(t=>({started_at:e.generated_at,suite:t.suite,file:t.file,title:t.title,project:t.project,total:t.total_runs,passed:t.passed_runs,failed:t.failed_runs,timed_out:0,interrupted:0,skipped:0})),...(e.slowest??[]).map(t=>({started_at:e.generated_at,suite:t.suite,file:t.file,title:t.title,project:t.project,total:t.runs,passed:t.runs,failed:0,timed_out:0,interrupted:0,skipped:0,avg_duration_ms:t.avg_duration_ms??t.avg_ms}))]);let n=t.filter(e=>{let t=new Date(e.started_at).getTime();if(m.fromTimestamp&&t<m.fromTimestamp||m.toTimestamp&&t>m.toTimestamp)return!1;if(g.trim()){let t=g.trim().toLowerCase();if(!(e.title&&e.title.toLowerCase().includes(t)||e.suite&&e.suite.toLowerCase().includes(t)||e.file&&e.file.toLowerCase().includes(t)||e.project&&e.project.toLowerCase().includes(t)))return!1}return!0}),r=new Map;for(let e of n){let t=`${e.project||``}:::${e.file||``}:::${e.suite||``}:::${e.title||``}`,n=r.get(t);n||(n={key:t,title:e.title,suite:e.suite||``,file:e.file||``,project:e.project||``,total:0,passed:0,failed:0,timedOut:0,interrupted:0,skipped:0,totalDurationMs:0,durationCount:0,runIds:new Set},r.set(t,n)),n.total+=e.total??1,n.passed+=e.passed??0,n.failed+=e.failed??0,n.timedOut+=e.timed_out??0,n.interrupted+=e.interrupted??0,n.skipped+=e.skipped??0,e.avg_duration_ms!=null&&(n.totalDurationMs+=e.avg_duration_ms,n.durationCount+=1),e.run_id&&n.runIds.add(e.run_id)}return Array.from(r.values()).map(e=>{let t=e.total,n=t>0?Math.round(e.passed/t*100):null,r=e.durationCount>0?Math.round(e.totalDurationMs/e.durationCount):null;return{key:e.key,title:e.title,suite:e.suite,file:e.file,project:e.project,runsCount:e.runIds.size||1,total:t,passed:e.passed,failed:e.failed,timedOut:e.timedOut,interrupted:e.interrupted,skipped:e.skipped,avgDurationMs:r,passRate:n}}).sort((e,t)=>t.total-e.total||e.title.localeCompare(t.title))},[e,m,g]),E=Bt(T.length,10),D=(0,v.useMemo)(()=>[{key:`run_name`,header:`Run Name`,className:`font-bold text-text-ink dark:text-text-on-primary`,cell:e=>e.run_name,csvValue:e=>e.run_name},{key:`mode`,header:`Mode`,className:`font-medium text-text-body-mid dark:text-text-muted`,cell:e=>!e.run_workers||e.run_workers<=1?`Serial`:`Parallel, ${e.run_workers} workers`,csvValue:e=>!e.run_workers||e.run_workers<=1?`Serial`:`Parallel, ${e.run_workers} workers`},{key:`started_at`,header:`Started`,cell:e=>N(e.started_at),csvValue:e=>N(e.started_at)},{key:`duration`,header:`Duration`,align:`right`,cell:e=>j(e.run_duration_ms),csvValue:e=>j(e.run_duration_ms)},{key:`time_saved`,header:`Time Saved`,align:`right`,cell:e=>{let t=!!(e.run_workers&&e.run_workers>1),n=e.run_sequential_duration_ms,r=n!=null,i=t&&r&&n>e.run_duration_ms?n-e.run_duration_ms:0,a=t&&r&&i>0?(n/Math.max(1,e.run_duration_ms)).toFixed(1):null;return t?r?i>0&&a?(0,F.jsxs)(`span`,{className:`font-bold text-success-600 dark:text-success-500 whitespace-nowrap`,children:[`⚡ `,j(i),` (`,a,`x)`]}):(0,F.jsx)(`span`,{className:`text-text-body-mid dark:text-text-muted`,children:`0s`}):(0,F.jsx)(`span`,{title:`Sequential duration data not available for this run`,className:`text-text-body-mid dark:text-text-muted`,children:`—`}):(0,F.jsx)(`span`,{className:`text-text-body-mid dark:text-text-muted`,children:`0s`})},csvValue:e=>{let t=!!(e.run_workers&&e.run_workers>1),n=e.run_sequential_duration_ms,r=n!=null,i=t&&r&&n>e.run_duration_ms?n-e.run_duration_ms:0,a=t&&r&&i>0?(n/Math.max(1,e.run_duration_ms)).toFixed(1):null;return t?r?i>0&&a?`${j(i)} (${a}x)`:`0s`:`-`:`0s`}},{key:`total`,header:`Total`,align:`right`,className:`font-medium`,cell:e=>e.run_total,csvValue:e=>e.run_total},{key:`passed`,header:`Passed`,align:`right`,cell:e=>(0,F.jsx)(`span`,{className:e.run_passed>0?`text-success-600 dark:text-success-500 font-bold`:``,children:e.run_passed}),csvValue:e=>e.run_passed},{key:`failed`,header:`Failed`,align:`right`,cell:e=>(0,F.jsx)(`span`,{className:e.run_failed>0?`text-danger-600 dark:text-danger-500 font-bold`:``,children:e.run_failed}),csvValue:e=>e.run_failed},{key:`skipped`,header:`Skipped`,align:`right`,cell:e=>(0,F.jsx)(`span`,{className:e.run_skipped>0?`text-text-body-mid dark:text-text-muted font-medium`:``,children:e.run_skipped}),csvValue:e=>e.run_skipped},{key:`timed_out`,header:`Timed Out`,align:`right`,cell:e=>(0,F.jsx)(`span`,{className:e.run_timed_out>0?`text-danger-600 dark:text-danger-500 font-bold`:``,children:e.run_timed_out}),csvValue:e=>e.run_timed_out},{key:`interrupted`,header:`Interrupted`,align:`right`,cell:e=>(0,F.jsx)(`span`,{className:e.run_interrupted>0?`text-warning-600 dark:text-warning-500 font-bold`:``,children:e.run_interrupted}),csvValue:e=>e.run_interrupted},{key:`pass_rate`,header:`Pass Rate`,align:`right`,cell:e=>(0,F.jsx)(at,{passRate:e.pass_rate}),csvValue:e=>e.pass_rate==null?`-`:`${e.pass_rate}%`}],[]),O=(0,v.useMemo)(()=>[{key:`file`,header:`Spec File`,cell:e=>(0,F.jsx)(`div`,{className:`max-w-xs sm:max-w-md overflow-hidden text-ellipsis whitespace-nowrap font-medium text-text-ink dark:text-text-on-primary`,title:e.file,children:de(e.file)}),csvValue:e=>e.file},{key:`runs`,header:`Runs`,align:`right`,className:`text-text-body-mid dark:text-text-muted`,cell:e=>e.runsCount,csvValue:e=>e.runsCount},{key:`total`,header:`Total Tests`,align:`right`,className:`font-medium`,cell:e=>e.total,csvValue:e=>e.total},{key:`passed`,header:`Passed`,align:`right`,cell:e=>(0,F.jsx)(`span`,{className:e.passed>0?`text-success-600 dark:text-success-500 font-bold`:``,children:e.passed}),csvValue:e=>e.passed},{key:`failed`,header:`Failed`,align:`right`,cell:e=>(0,F.jsx)(`span`,{className:e.failed>0?`text-danger-600 dark:text-danger-500 font-bold`:``,children:e.failed}),csvValue:e=>e.failed},{key:`timed_out`,header:`Timed Out`,align:`right`,cell:e=>(0,F.jsx)(`span`,{className:e.timedOut>0?`text-danger-600 dark:text-danger-500 font-bold`:``,children:e.timedOut}),csvValue:e=>e.timedOut},{key:`interrupted`,header:`Interrupted`,align:`right`,cell:e=>(0,F.jsx)(`span`,{className:e.interrupted>0?`text-warning-600 dark:text-warning-500 font-bold`:``,children:e.interrupted}),csvValue:e=>e.interrupted},{key:`skipped`,header:`Skipped`,align:`right`,cell:e=>(0,F.jsx)(`span`,{className:e.skipped>0?`text-text-body-mid dark:text-text-muted font-medium`:``,children:e.skipped}),csvValue:e=>e.skipped},{key:`pass_rate`,header:`Pass Rate`,align:`right`,cell:e=>(0,F.jsx)(at,{passRate:e.passRate}),csvValue:e=>e.passRate==null?`-`:`${e.passRate}%`}],[]),k=(0,v.useMemo)(()=>[{key:`test`,header:`Test`,className:`font-bold text-text-ink dark:text-text-on-primary`,cell:e=>e.title,csvValue:e=>e.title},{key:`suite`,header:`Suite`,cell:e=>e.suite||`-`,csvValue:e=>e.suite||``},{key:`file`,header:`Spec File`,cell:e=>(0,F.jsx)(`div`,{className:`max-w-xs overflow-hidden text-ellipsis whitespace-nowrap font-medium text-text-ink dark:text-text-on-primary`,title:e.file,children:de(e.file)}),csvValue:e=>e.file},{key:`project`,header:`Project`,cell:e=>e.project||`-`,csvValue:e=>e.project||``},{key:`runs`,header:`Runs`,align:`right`,className:`text-text-body-mid dark:text-text-muted`,cell:e=>e.runsCount,csvValue:e=>e.runsCount},{key:`passed`,header:`Passed`,align:`right`,cell:e=>(0,F.jsx)(`span`,{className:e.passed>0?`text-success-600 dark:text-success-500 font-bold`:``,children:e.passed}),csvValue:e=>e.passed},{key:`failed`,header:`Failed`,align:`right`,cell:e=>(0,F.jsx)(`span`,{className:e.failed>0?`text-danger-600 dark:text-danger-500 font-bold`:``,children:e.failed}),csvValue:e=>e.failed},{key:`timed_out`,header:`Timed Out`,align:`right`,cell:e=>(0,F.jsx)(`span`,{className:e.timedOut>0?`text-danger-600 dark:text-danger-500 font-bold`:``,children:e.timedOut}),csvValue:e=>e.timedOut},{key:`interrupted`,header:`Interrupted`,align:`right`,cell:e=>(0,F.jsx)(`span`,{className:e.interrupted>0?`text-warning-600 dark:text-warning-500 font-bold`:``,children:e.interrupted}),csvValue:e=>e.interrupted},{key:`skipped`,header:`Skipped`,align:`right`,cell:e=>(0,F.jsx)(`span`,{className:e.skipped>0?`text-text-body-mid dark:text-text-muted font-medium`:``,children:e.skipped}),csvValue:e=>e.skipped},{key:`avg_duration`,header:`Avg Duration`,align:`right`,cell:e=>e.avgDurationMs==null?`-`:j(e.avgDurationMs),csvValue:e=>e.avgDurationMs==null?`-`:j(e.avgDurationMs)},{key:`pass_rate`,header:`Pass Rate`,align:`right`,cell:e=>(0,F.jsx)(at,{passRate:e.passRate}),csvValue:e=>e.passRate==null?`-`:`${e.passRate}%`}],[]);if(!e)return(0,F.jsxs)(`div`,{className:`space-y-6`,children:[t&&(0,F.jsx)(Je,{}),(0,F.jsx)(`div`,{className:`flex items-center justify-center py-24 text-center`,children:(0,F.jsxs)(`div`,{children:[(0,F.jsx)(`div`,{className:`mx-auto mb-4 flex h-16 w-16 items-center justify-center rounded-md bg-surface-100 border border-border-default`,children:(0,F.jsx)(`svg`,{className:`h-8 w-8 text-text-ink dark:text-text-on-primary`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,strokeWidth:1.75,children:(0,F.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M12 6v6h4.5m4.5 0a9 9 0 11-18 0 9 9 0 0118 0z`})})}),(0,F.jsx)(`h3`,{className:`text-base font-bold text-text-ink dark:text-text-on-primary`,children:`No history data`}),(0,F.jsxs)(`p`,{className:`mt-1.5 text-sm text-text-body-mid dark:text-text-muted`,children:[`Run`,` `,(0,F.jsx)(`code`,{className:`rounded bg-surface-200 px-1.5 py-0.5 text-xs font-mono font-semibold text-text-ink dark:text-text-on-primary border border-border-default`,children:`npx zr history report`}),` `,`after your test runs to populate this tab.`]})]})})]});let A=x.slice(S.start,S.start+S.pageSize),M=C.slice(w.start,w.start+w.pageSize),ee=T.slice(E.start,E.start+E.pageSize);return(0,F.jsxs)(`div`,{className:`space-y-6`,children:[t&&(0,F.jsx)(Je,{}),(0,F.jsx)(`div`,{className:`flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4 mb-6`,children:(0,F.jsxs)(`div`,{children:[(0,F.jsx)(`h2`,{className:`text-2xl font-bold tracking-tight text-text-ink dark:text-text-on-primary sm:text-3xl`,children:`Execution Run History`}),(0,F.jsx)(`p`,{className:`mt-1.5 text-sm text-text-body-mid dark:text-text-muted`,children:`Audit log of all historical test execution runs stored in Zen Reporter`})]})}),(0,F.jsxs)(`section`,{className:PB,children:[(0,F.jsxs)(`div`,{className:`flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4 pb-3 border-b border-border-default`,children:[(0,F.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,F.jsx)(`h2`,{className:FB,children:`Test runs audit log`}),(0,F.jsx)(Oe,{onClick:()=>r(!0)})]}),(0,F.jsx)(Vt,{id:`runs-page-size`,pageSize:S.pageSize,onPageSizeChange:S.changePageSize})]}),(0,F.jsx)(`div`,{className:`pt-3 pb-1 border-b border-border-default/50`,children:(0,F.jsx)(et,{onFilterChange:e=>{s(e),S.setPage(1)},availableTimestamps:y})}),(0,F.jsx)(it,{data:A,columns:D,getRowKey:e=>e.run_id,exportFilename:`test_runs_history.csv`,fullData:x,className:`mt-4`,emptyMessage:(0,F.jsxs)(`div`,{className:`py-16 text-center text-text-body-mid dark:text-text-muted`,children:[(0,F.jsx)(`p`,{className:`text-base font-semibold`,children:`No matching test runs found`}),(0,F.jsx)(`p`,{className:`mt-1 text-xs text-text-muted-soft`,children:`Try adjusting or clearing your date range filter criteria.`})]})}),(0,F.jsx)(Ht,{label:`runs`,total:x.length,start:S.start,pageLength:A.length,currentPage:S.currentPage,totalPages:S.totalPages,onPageChange:S.setPage})]}),(0,F.jsxs)(`section`,{className:PB,children:[(0,F.jsxs)(`div`,{className:`flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4 pb-3 border-b border-border-default`,children:[(0,F.jsxs)(`div`,{children:[(0,F.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,F.jsx)(`h2`,{className:FB,children:`File History`}),(0,F.jsx)(Oe,{onClick:()=>a(!0)})]}),(0,F.jsx)(`p`,{className:`mt-1 text-xs text-text-body-mid dark:text-text-muted`,children:`Spec files test execution breakdown across test runs`})]}),(0,F.jsx)(Vt,{id:`files-history-page-size`,pageSize:w.pageSize,onPageSizeChange:w.changePageSize})]}),(0,F.jsxs)(`div`,{className:`pt-3 pb-1 border-b border-border-default/50 flex flex-col sm:flex-row sm:items-start sm:justify-between gap-3`,children:[(0,F.jsx)(et,{onFilterChange:e=>{l(e),w.setPage(1)},availableTimestamps:y}),(0,F.jsx)(st,{value:u,onChange:e=>{d(e),w.setPage(1)},placeholder:`Search spec files...`,className:`w-44 sm:w-48 shrink-0`,inputClassName:`w-full rounded-md border border-border-default bg-surface-50 pl-9 pr-7 py-1.5 text-xs text-text-ink placeholder:text-text-muted focus:border-accent-blue focus:outline-none dark:bg-surface-50 dark:text-text-on-primary`})]}),(0,F.jsx)(it,{data:M,columns:O,getRowKey:e=>e.file,exportFilename:`spec_file_history.csv`,fullData:C,className:`mt-4`,emptyMessage:(0,F.jsxs)(`div`,{className:`py-16 text-center text-text-body-mid dark:text-text-muted`,children:[(0,F.jsx)(`p`,{className:`text-base font-semibold`,children:`No matching file history found`}),(0,F.jsx)(`p`,{className:`mt-1 text-xs text-text-muted-soft`,children:`Try adjusting or clearing your date range filter criteria.`})]})}),(0,F.jsx)(Ht,{label:`spec files`,total:C.length,start:w.start,pageLength:M.length,currentPage:w.currentPage,totalPages:w.totalPages,onPageChange:w.setPage})]}),(0,F.jsxs)(`section`,{className:PB,children:[(0,F.jsxs)(`div`,{className:`flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4 pb-3 border-b border-border-default`,children:[(0,F.jsxs)(`div`,{children:[(0,F.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,F.jsx)(`h2`,{className:FB,children:`Test History`}),(0,F.jsx)(Oe,{onClick:()=>p(!0)})]}),(0,F.jsx)(`p`,{className:`mt-1 text-xs text-text-body-mid dark:text-text-muted`,children:`Individual test execution breakdown across test runs`})]}),(0,F.jsx)(Vt,{id:`tests-history-page-size`,pageSize:E.pageSize,onPageSizeChange:E.changePageSize})]}),(0,F.jsxs)(`div`,{className:`pt-3 pb-1 border-b border-border-default/50 flex flex-col sm:flex-row sm:items-start sm:justify-between gap-3`,children:[(0,F.jsx)(et,{onFilterChange:e=>{h(e),E.setPage(1)},availableTimestamps:y}),(0,F.jsx)(st,{value:g,onChange:e=>{_(e),E.setPage(1)},placeholder:`Search tests...`,className:`w-44 sm:w-48 shrink-0`,inputClassName:`w-full rounded-md border border-border-default bg-surface-50 pl-9 pr-7 py-1.5 text-xs text-text-ink placeholder:text-text-muted focus:border-accent-blue focus:outline-none dark:bg-surface-50 dark:text-text-on-primary`})]}),(0,F.jsx)(it,{data:ee,columns:k,getRowKey:e=>e.key,exportFilename:`test_case_history.csv`,fullData:T,className:`mt-4`,emptyMessage:(0,F.jsxs)(`div`,{className:`py-16 text-center text-text-body-mid dark:text-text-muted`,children:[(0,F.jsx)(`p`,{className:`text-base font-semibold`,children:`No matching test history found`}),(0,F.jsx)(`p`,{className:`mt-1 text-xs text-text-muted-soft`,children:`Try adjusting or clearing your date range or search filter criteria.`})]})}),(0,F.jsx)(Ht,{label:`tests`,total:T.length,start:E.start,pageLength:ee.length,currentPage:E.currentPage,totalPages:E.totalPages,onPageChange:E.setPage})]}),(0,F.jsx)(NB,{isRunsModalOpen:n,onCloseRunsModal:()=>r(!1),isFileModalOpen:i,onCloseFileModal:()=>a(!1),isTestModalOpen:f,onCloseTestModal:()=>p(!1)})]})}var LB={name:`@arpanp/zen-reporter`,private:!1,version:`0.11.2`,type:`module`,description:`Beautiful test execution reports for Playwright`,bin:{"zen-reporter":`bin/zen-reporter.js`,zr:`bin/zen-reporter.js`},main:`dist/reporter.cjs`,module:`dist/reporter.js`,types:`dist/reporter.d.ts`,exports:{".":{types:`./dist/reporter.d.ts`,import:`./dist/reporter.js`,require:`./dist/reporter.cjs`},"./package.json":`./package.json`},files:[`bin`,`dist`],author:{name:`Arpan Patelia`,email:`arpan.is@gmail.com`},license:`MIT`,repository:`github:apatelia/zen-reporter`,homepage:`https://apatelia.github.io/zen-reporter-website/`,keywords:[`playwright`,`testing`,`report`,`reporter`,`automation`,`test automation`],scripts:{dev:`vite`,build:`vite build && vite build --config vite.reporter.config.ts && tsc -p tsconfig.lib.json`,preview:`vite preview`,test:`npx playwright test`,report:`npm run build && node scripts/generate_report.js`,show:`node bin/zen-reporter.js show`,lint:`eslint .`,"lint:fix":`eslint . --fix`,typecheck:`tsc --noEmit`,format:`prettier --write .`,"format:check":`prettier --check .`,prepare:`husky`,prepack:`npm run build`,prepublish:`npm run build`},"lint-staged":{"*.{js,jsx,ts,tsx}":[`eslint --fix`,`prettier --write`],"*.{json,css,md,yml,yaml,html}":[`prettier --write`]},engines:{node:`>=18.0.0`},peerDependencies:{"@playwright/test":`>=1.63.0`,"@duckdb/node-api":`1.5.5-r.5`},peerDependenciesMeta:{"@playwright/test":{optional:!0},"@duckdb/node-api":{optional:!0}},devDependencies:{"@eslint-react/eslint-plugin":`^5.20.8`,"@duckdb/node-api":`1.5.5-r.5`,"@eslint/js":`^10.0.1`,"@eslint/json":`^2.1.0`,"@eslint/markdown":`^8.0.3`,"@playwright/cli":`^0.1.21`,"@playwright/test":`^1.63.0`,"@tailwindcss/postcss":`^4.3.3`,"@types/node":`^26.6.3`,"@types/react":`^19.3.0`,"@types/react-dom":`^19.3.0`,"@vitejs/plugin-react":`^6.1.1`,autoprefixer:`^10.6.1`,eslint:`^10.11.0`,"eslint-config-prettier":`^10.1.8`,globals:`^17.12.0`,husky:`^9.1.7`,"lint-staged":`^17.6.0`,postcss:`^8.5.28`,prettier:`^3.9.9`,react:`^19.3.0`,"react-dom":`^19.3.0`,"react-is":`^19.3.0`,recharts:`^3.10.1`,tailwindcss:`^4.3.3`,typescript:`^6.0.3`,"typescript-eslint":`^8.70.1`,vite:`^8.3.1`,"vite-plugin-singlefile":`^2.3.3`}},RB=`data:image/svg+xml;utf8,${encodeURIComponent(b)}`,zB=[{key:`overview`,label:`Overview`,icon:(0,F.jsx)(`svg`,{className:`h-5 w-5`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,strokeWidth:1.5,children:(0,F.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M3.75 6A2.25 2.25 0 016 3.75h2.25A2.25 2.25 0 0110.5 6v2.25a2.25 2.25 0 01-2.25 2.25H6a2.25 2.25 0 01-2.25-2.25V6zM3.75 15.75A2.25 2.25 0 016 13.5h2.25a2.25 2.25 0 012.25 2.25V18a2.25 2.25 0 01-2.25 2.25H6A2.25 2.25 0 013.75 18v-2.25zM13.5 6a2.25 2.25 0 012.25-2.25H18A2.25 2.25 0 0120.25 6v2.25A2.25 2.25 0 0118 10.5h-2.25a2.25 2.25 0 01-2.25-2.25V6zM13.5 15.75a2.25 2.25 0 012.25-2.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-2.25A2.25 2.25 0 0113.5 18v-2.25z`})})},{key:`projects`,label:`Projects`,icon:(0,F.jsx)(`svg`,{className:`h-5 w-5`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,strokeWidth:1.5,children:(0,F.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M3.75 12h16.5m-16.5 3.75h16.5M3.75 19.5h16.5M3.75 4.5h16.5m-16.5 3.75h16.5`})})},{key:`suites`,label:`Suites`,icon:(0,F.jsx)(`svg`,{className:`h-5 w-5`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,strokeWidth:1.5,children:(0,F.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M2.25 12.75V12A2.25 2.25 0 014.5 9.75h15A2.25 2.25 0 0121.75 12v.75m-8.69-6.44l-2.12-2.12a1.5 1.5 0 00-1.061-.44H4.5A2.25 2.25 0 002.25 6v12a2.25 2.25 0 002.25 2.25h15A2.25 2.25 0 0021.75 18V9a2.25 2.25 0 00-2.25-2.25h-5.379a1.5 1.5 0 01-1.06-.44z`})})},{key:`files`,label:`Files`,icon:(0,F.jsx)(`svg`,{className:`h-5 w-5`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,strokeWidth:1.5,children:(0,F.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M19.5 14.25v-2.625a3.375 3.375 0 00-3.375-3.375h-1.5A1.125 1.125 0 0113.5 7.125v-1.5a3.375 3.375 0 00-3.375-3.375H8.25m2.25 0H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 00-9-9z`})})},{key:`failures`,label:`Failures`,icon:(0,F.jsx)(`svg`,{className:`h-5 w-5`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,strokeWidth:1.5,children:(0,F.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M12 9v3.75m9-.75a9 9 0 11-18 0 9 9 0 0118 0zm-9 3.75h.008v.008H12v-.008z`})})},{key:`history`,label:`History`,icon:(0,F.jsx)(`svg`,{className:`h-5 w-5`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,strokeWidth:1.5,children:(0,F.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M12 6v6h4.5m4.5 0a9 9 0 11-18 0 9 9 0 0118 0z`})})},{key:`trends`,label:`Trends`,icon:(0,F.jsx)(`svg`,{className:`h-5 w-5`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,strokeWidth:1.5,children:(0,F.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M2.25 18L9 11.25l4.306 4.307a.5.5 0 00.71 0l7.234-7.234M21 8.25V12M21 8.25H17.25`})})},{key:`insights`,label:`Insights`,icon:(0,F.jsx)(`svg`,{className:`h-5 w-5`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,strokeWidth:1.5,children:(0,F.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M3.75 13.5l10.5-11.25L12 10.5h8.25L9.75 21.75 12 13.5H3.75z`})})}];function BB({icon:e,label:t,isActive:n,onClick:r,badge:i,disabledBadge:a,isCollapsed:o}){return(0,F.jsxs)(`button`,{onClick:r,title:o?a?`${t} (History recording disabled)`:t:void 0,className:`group relative flex w-full items-center ${o?`justify-center px-2 py-2.5`:`gap-3 px-3 py-2.5`} rounded-md text-sm font-semibold transition-all duration-150 ${n?`bg-accent-blue/15 text-accent-blue shadow-sm dark:bg-accent-blue/25 dark:text-accent-blue`:`text-text-body-mid hover:bg-surface-100 hover:text-text-ink dark:text-text-body-mid dark:hover:bg-surface-100 dark:hover:text-text-on-primary font-medium`}`,children:[n&&(0,F.jsx)(`span`,{className:`absolute left-0 top-1.5 bottom-1.5 w-1 rounded-r-full bg-accent-blue dark:bg-accent-blue`}),(0,F.jsx)(`span`,{className:`shrink-0 transition-colors ${n?`text-accent-blue dark:text-accent-blue`:`text-text-body-mid group-hover:text-text-ink dark:text-text-body-mid dark:group-hover:text-text-on-primary`}`,children:e}),!o&&(0,F.jsx)(`span`,{className:`truncate`,children:t}),i!==void 0&&i>0&&(0,F.jsx)(`span`,{className:o?`absolute -top-1 -right-1 flex h-4 min-w-4 items-center justify-center rounded-full bg-accent-red px-1 text-[10px] font-bold text-text-on-primary dark:text-surface-950 shadow-sm`:`ml-auto flex h-5 min-w-5 items-center justify-center rounded-full bg-accent-red px-1.5 text-[11px] font-bold text-text-on-primary dark:text-surface-950`,children:i}),a&&(0,F.jsx)(`span`,{title:`History recording disabled`,className:o?`absolute -top-1 -right-1 flex h-4 w-4 items-center justify-center rounded-full bg-amber-500 text-text-on-primary shadow-sm`:`ml-auto flex items-center gap-1 rounded bg-amber-500/15 px-1.5 py-0.5 text-[10px] font-semibold text-amber-700 dark:text-amber-300 border border-amber-500/30`,children:o?`!`:(0,F.jsxs)(F.Fragment,{children:[(0,F.jsx)(`svg`,{className:`h-3 w-3 shrink-0`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,strokeWidth:2,children:(0,F.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M12 9v3.75m-9.303 3.376c-.866 1.5.217 3.374 1.948 3.374h14.71c1.73 0 2.813-1.874 1.948-3.374L13.949 3.378c-.866-1.5-3.032-1.5-3.898 0L2.697 16.126zM12 15.75h.007v.008H12v-.008z`})}),(0,F.jsx)(`span`,{children:`Disabled`})]})})]})}function VB({activeTab:e,setActiveTab:t,isCollapsed:n,setIsCollapsed:r,failedCount:i,timedOutCount:a,interruptedCount:o,isHistoryDisabled:s,isMinimalReport:c}){let l=c?zB.filter(e=>e.key!==`projects`&&e.key!==`history`&&e.key!==`trends`&&e.key!==`insights`):zB;return(0,F.jsxs)(`aside`,{className:`flex flex-col border-r border-border-default bg-surface-50 transition-all duration-200 ${n?`w-16`:`w-60`}`,children:[(0,F.jsx)(`div`,{className:`flex items-center ${n?`flex-col gap-3 py-3`:`justify-between min-w-0 px-4 py-3.5`}`,children:n?(0,F.jsxs)(F.Fragment,{children:[(0,F.jsx)(`a`,{href:`https://apatelia.github.io/zen-reporter-website/`,target:`_blank`,rel:`noopener noreferrer`,className:`p-1 rounded-md hover:bg-surface-100 transition-colors block shrink-0`,title:`Zen Reporter v${LB.version}`,children:(0,F.jsx)(`img`,{src:RB,alt:`Zen Reporter`,className:`h-7 w-7 object-contain drop-shadow-xs`})}),(0,F.jsx)(`button`,{onClick:()=>r(!1),className:`p-1.5 rounded-md text-text-body-mid hover:text-text-ink hover:bg-surface-100 transition-colors`,title:`Expand sidebar`,children:(0,F.jsx)(`svg`,{className:`h-5 w-5`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,strokeWidth:1.5,children:(0,F.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M8.25 4.5l7.5 7.5-7.5 7.5`})})})]}):(0,F.jsxs)(F.Fragment,{children:[(0,F.jsxs)(`a`,{href:`https://apatelia.github.io/zen-reporter-website/`,target:`_blank`,rel:`noopener noreferrer`,className:`flex items-center gap-2.5 min-w-0 group cursor-pointer`,title:`Zen Reporter v${LB.version}`,children:[(0,F.jsx)(`img`,{src:RB,alt:`Zen Reporter`,className:`h-7 w-7 shrink-0 object-contain drop-shadow-xs transition-transform group-hover:scale-105`}),(0,F.jsxs)(`div`,{className:`flex flex-col min-w-0`,children:[(0,F.jsxs)(`span`,{className:`inline-flex items-center gap-1 text-sm font-bold tracking-tight text-accent-blue dark:text-accent-blue group-hover:underline truncate leading-tight transition-colors`,children:[`Zen Reporter`,(0,F.jsx)(`svg`,{className:`h-3 w-3 shrink-0 opacity-70 group-hover:opacity-100 transition-opacity`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,strokeWidth:2,children:(0,F.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M13.5 6H18m0 0v4.5m0-4.5L11.25 12.75M18 10.5v8.25a1.5 1.5 0 01-1.5 1.5H5.25A1.5 1.5 0 013.75 18.75V7.5a1.5 1.5 0 011.5-1.5h8.25`})})]}),(0,F.jsxs)(`span`,{className:`text-[10px] font-medium text-text-muted truncate leading-tight`,children:[`v`,LB.version]})]})]}),(0,F.jsx)(`button`,{onClick:()=>r(!0),className:`p-1.5 rounded-md text-text-body-mid hover:text-text-ink hover:bg-surface-100 transition-colors shrink-0`,title:`Collapse sidebar`,children:(0,F.jsx)(`svg`,{className:`h-5 w-5`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,strokeWidth:1.5,children:(0,F.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M15.75 19.5L8.25 12l7.5-7.5`})})})]})}),(0,F.jsx)(`div`,{className:`mx-3 h-px bg-border-default`}),(0,F.jsx)(`nav`,{className:`flex-1 space-y-1 ${n?`px-2`:`px-3`} py-2`,children:l.map(r=>(0,F.jsx)(BB,{icon:r.icon,label:r.label,isActive:e===r.key,onClick:()=>t(r.key),badge:r.key===`failures`?i+a+o:void 0,disabledBadge:s&&(r.key===`history`||r.key===`trends`||r.key===`insights`),isCollapsed:n},r.key))})]})}var HB=`data:image/svg+xml;utf8,${encodeURIComponent(b)}`;function UB(){let e=(0,v.useMemo)(()=>typeof window>`u`?!1:new URLSearchParams(window.location.search).get(`view`)===`summary`||!!window.__ZEN_SUMMARY_ONLY__,[]),[t,n]=(0,v.useState)(`overview`),[r,i]=(0,v.useState)(null),[a,o]=(0,v.useState)(!0),[s,c]=(0,v.useState)(null),[l,u]=(0,v.useState)(!1),d=(0,v.useMemo)(()=>{if(typeof document>`u`)return null;let e=document.getElementById(`report-data`);if(e){let t=e.textContent?.trim();if(t)try{return JSON.parse(t)}catch{return null}}return null},[]),[f,p]=(0,v.useState)(()=>{let e=d?.testRun?.theme;if(e){let t=e.toLowerCase();if(t===`cafe`||t===`concept`||t===`sentinel`)return t}if(typeof window<`u`){let e=localStorage.getItem(`zen-theme`);if(e===`cafe`||e===`concept`||e===`sentinel`)return e}return`cafe`}),[m,h]=(0,v.useState)(()=>{let e=d?.testRun;if(e?.darkMode!==void 0)return e.darkMode?`dark`:`light`;if(typeof window<`u`){let e=localStorage.getItem(`zen-dark-mode`);if(e===`dark`||e===`light`)return e}return`light`}),g=e=>{let t=e?.testRun;if(t){if(t.theme){let e=t.theme.toLowerCase();(e===`cafe`||e===`concept`||e===`sentinel`)&&p(e)}t.darkMode!==void 0&&h(t.darkMode?`dark`:`light`)}};(0,v.useEffect)(()=>{document.documentElement.setAttribute(`data-theme`,f),localStorage.setItem(`zen-theme`,f)},[f]),(0,v.useEffect)(()=>{m===`dark`?(document.documentElement.classList.add(`dark`),document.documentElement.style.colorScheme=`dark`):(document.documentElement.classList.remove(`dark`),document.documentElement.style.colorScheme=`light`);let e=document.querySelector(`link[rel~='icon']`);e||(e=document.createElement(`link`),e.rel=`icon`,document.head.appendChild(e)),e.type=`image/svg+xml`,e.href=HB},[m]);let _=()=>{let e=m===`light`?`dark`:`light`;h(e),localStorage.setItem(`zen-dark-mode`,e)};(0,v.useEffect)(()=>{(async()=>{async function e(){let e=document.getElementById(`report-data`);if(e){let t=e.textContent?.trim();if(t)try{let e=JSON.parse(t);i(e),g(e);return}catch{}}if(typeof window<`u`&&window.location.protocol!==`file:`){let e=await fetch(`./report.json`);if(e.ok){let t=await e.json();i(t),g(t);return}}}let t=async()=>{let e=document.getElementById(`history-data`);if(e){let t=e.textContent?.trim();if(t)try{c(JSON.parse(t));return}catch{}}if(typeof window<`u`&&window.location.protocol!==`file:`){let e=await fetch(`./history.json`);e.ok&&c(await e.json())}};try{await Promise.all([e(),t()])}catch(e){console.warn(`Could not load report data:`,e)}finally{o(!1)}})()},[]);let{summary:y,suites:b,projectName:x,testRunName:S}=(0,v.useMemo)(()=>r?.testRun?{summary:r.testRun.summary,suites:r.testRun.suites,projectName:r.testRun.projectName,testRunName:r.testRun.testRunName}:{summary:null,suites:[],projectName:void 0,testRunName:void 0},[r]),C=y?y.failed:0,w=y?y.timedOut:0,T=y&&y.interrupted||0,E=(0,v.useMemo)(()=>r?.testRun?.enableHistory===!1,[r]),D=(0,v.useMemo)(()=>!!r?.testRun?.minimalReport,[r]),O=(0,v.useMemo)(()=>D&&(t===`projects`||t===`history`||t===`trends`||t===`insights`)?`overview`:t,[D,t]);return(0,F.jsxs)(`div`,{className:`flex h-screen overflow-hidden bg-canvas`,children:[!e&&(0,F.jsx)(VB,{activeTab:O,setActiveTab:n,isCollapsed:l,setIsCollapsed:u,failedCount:C,timedOutCount:w,interruptedCount:T,isHistoryDisabled:E,isMinimalReport:D}),(0,F.jsxs)(`main`,{className:`flex-1 flex flex-col min-w-0 overflow-hidden bg-canvas`,children:[(0,F.jsxs)(`header`,{className:`border-b border-border-default bg-surface-50/50 px-6 py-3 shrink-0 flex items-start justify-between gap-4`,children:[(0,F.jsx)(`div`,{className:`flex items-center gap-3 min-w-0`,children:(0,F.jsxs)(`div`,{className:`min-w-0 flex flex-col justify-center`,children:[(0,F.jsx)(`h1`,{className:`text-base font-bold tracking-tight text-text-ink dark:text-text-on-primary sm:text-lg truncate leading-tight`,children:x||`Test Execution Report`}),(0,F.jsxs)(`div`,{className:`mt-1 flex items-center gap-2 flex-wrap text-xs text-text-body-mid dark:text-text-muted min-w-0`,children:[(0,F.jsx)(`span`,{className:`text-text-muted font-normal`,children:`Report for`}),(0,F.jsx)(`span`,{className:`inline-flex items-center rounded-md bg-accent-blue/10 px-2 py-0.5 text-xs font-semibold text-accent-blue ring-1 ring-inset ring-accent-blue/20 dark:bg-accent-blue/20 dark:text-accent-blue max-w-sm truncate`,children:S||`Playwright Test Reporter`}),(0,F.jsx)(`span`,{className:`text-text-muted-soft text-[10px]`,children:`•`}),(0,F.jsx)(`span`,{className:`inline-flex items-center gap-1 text-[11px] text-text-muted`,children:(0,F.jsxs)(`span`,{children:[`Powered by`,` `,(0,F.jsxs)(`a`,{href:`https://apatelia.github.io/zen-reporter-website/`,target:`_blank`,rel:`noopener noreferrer`,className:`inline-flex items-center gap-0.5 font-semibold text-accent-blue dark:text-accent-blue hover:underline`,children:[(0,F.jsx)(`img`,{src:HB,alt:`Zen Reporter`,className:`h-3 w-3 shrink-0 object-contain opacity-80`}),`Zen Reporter`,(0,F.jsx)(`svg`,{className:`h-2.5 w-2.5 shrink-0 opacity-70`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,strokeWidth:2,children:(0,F.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M13.5 6H18m0 0v4.5m0-4.5L11.25 12.75M18 10.5v8.25a1.5 1.5 0 01-1.5 1.5H5.25A1.5 1.5 0 013.75 18.75V7.5a1.5 1.5 0 011.5-1.5h8.25`})})]})]})})]}),y&&(0,F.jsxs)(`div`,{className:`mt-1.5 hidden sm:flex items-center gap-2 text-xs text-text-body-mid dark:text-text-muted`,children:[(0,F.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,F.jsxs)(`svg`,{className:`h-3.5 w-3.5 text-text-muted shrink-0`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,strokeWidth:1.75,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,F.jsx)(`rect`,{width:`18`,height:`18`,x:`3`,y:`4`,rx:`2`,ry:`2`}),(0,F.jsx)(`line`,{x1:`16`,x2:`16`,y1:`2`,y2:`6`}),(0,F.jsx)(`line`,{x1:`8`,x2:`8`,y1:`2`,y2:`6`}),(0,F.jsx)(`line`,{x1:`3`,x2:`21`,y1:`10`,y2:`10`})]}),(0,F.jsx)(`span`,{className:`font-medium`,children:ee(y.startTime,y.endTime)})]}),(0,F.jsxs)(`span`,{className:`inline-flex items-center gap-1.5 rounded-full bg-surface-100 px-2 py-0.5 text-[11px] font-semibold text-text-body-mid border border-border-default dark:bg-surface-100/60 dark:text-text-muted`,children:[(0,F.jsxs)(`svg`,{className:`h-3 w-3 text-text-body-mid dark:text-text-muted shrink-0`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,strokeWidth:2,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,F.jsx)(`circle`,{cx:`12`,cy:`12`,r:`9`}),(0,F.jsx)(`polyline`,{points:`12 6 12 12 16 14`})]}),(0,F.jsx)(`span`,{children:j(y.duration)})]})]})]})}),(0,F.jsxs)(`div`,{className:`flex items-center gap-3 shrink-0 pt-0.5`,children:[(0,F.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,F.jsx)(`label`,{htmlFor:`theme-select`,className:`text-xs text-text-body-mid dark:text-text-muted shrink-0 font-medium`,children:`Theme:`}),(0,F.jsxs)(`div`,{className:`relative inline-flex items-center`,children:[(0,F.jsxs)(`select`,{id:`theme-select`,value:f,onChange:e=>p(e.target.value),className:`appearance-none rounded-md border border-border-default bg-surface-50 pl-3 pr-8 py-1.5 text-xs text-text-ink focus:border-accent-blue focus:outline-none dark:bg-surface-50 dark:text-text-on-primary font-medium cursor-pointer`,"aria-label":`Select Theme`,title:`Select Theme`,children:[(0,F.jsx)(`option`,{value:`cafe`,children:`Cafe`}),(0,F.jsx)(`option`,{value:`concept`,children:`Concept`}),(0,F.jsx)(`option`,{value:`sentinel`,children:`Sentinel`})]}),(0,F.jsx)(`svg`,{className:`pointer-events-none absolute right-2.5 h-3.5 w-3.5 text-text-body-mid dark:text-text-muted shrink-0`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,strokeWidth:2,children:(0,F.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M19.5 8.25l-7.5 7.5-7.5-7.5`})})]})]}),(0,F.jsx)(`button`,{onClick:_,className:`inline-flex items-center gap-2 px-3 py-1.5 rounded-md border border-border-default text-text-body-mid hover:text-text-ink hover:bg-surface-100 dark:text-text-muted dark:hover:text-text-on-primary transition-colors shrink-0 cursor-pointer text-xs font-medium`,title:`Switch to ${m===`dark`?`Light`:`Dark`} mode`,children:m===`dark`?(0,F.jsxs)(F.Fragment,{children:[(0,F.jsx)(`svg`,{className:`h-4 w-4 text-warning-400`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,strokeWidth:1.5,children:(0,F.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M12 3v2.25m6.364.386l-1.591 1.591M21 12h-2.25m-.386 6.364l-1.591-1.591M12 18.75V21m-4.773-4.227l-1.591 1.591M5.25 12H3m4.227-4.773L5.636 5.636M15.75 12a3.75 3.75 0 11-7.5 0 3.75 3.75 0 017.5 0z`})}),(0,F.jsx)(`span`,{className:`hidden sm:inline`,children:`Light Mode`})]}):(0,F.jsxs)(F.Fragment,{children:[(0,F.jsx)(`svg`,{className:`h-4 w-4 text-primary-500`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,strokeWidth:1.5,children:(0,F.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M21.752 15.002A9.718 9.718 0 0118 15.75c-5.385 0-9.75-4.365-9.75-9.75 0-1.33.266-2.597.748-3.752A9.753 9.753 0 003 11.25C3 16.635 7.365 21 12.75 21a9.753 9.753 0 009.002-5.998z`})}),(0,F.jsx)(`span`,{className:`hidden sm:inline`,children:`Dark Mode`})]})})]})]}),(0,F.jsx)(`div`,{className:`flex-1 overflow-auto`,children:(0,F.jsxs)(`div`,{className:`mx-auto max-w-full px-6 sm:px-8 pt-4 pb-8`,children:[a&&(0,F.jsx)(`div`,{className:`flex items-center justify-center py-24`,children:(0,F.jsxs)(`div`,{className:`text-center`,children:[(0,F.jsx)(`div`,{className:`mx-auto mb-4 h-8 w-8 animate-spin rounded-full border-4 border-surface-200 border-t-accent-blue`}),(0,F.jsx)(`p`,{className:`text-sm text-text-body-mid`,children:`Loading report…`})]})}),!a&&!r&&(0,F.jsx)(`div`,{className:`flex items-center justify-center py-24 text-center`,children:(0,F.jsxs)(`div`,{children:[(0,F.jsx)(`div`,{className:`mx-auto mb-4 flex h-16 w-16 items-center justify-center rounded-md bg-surface-100`,children:(0,F.jsx)(`svg`,{className:`h-8 w-8 text-text-body-mid`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,strokeWidth:1.5,children:(0,F.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M19.5 14.25v-2.625a3.375 3.375 0 00-3.375-3.375h-1.5A1.125 1.125 0 0113.5 7.125v-1.5a3.375 3.375 0 00-3.375-3.375H8.25m0 12.75h7.5m-7.5 3H12M10.5 2.25H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 00-9-9z`})})}),(0,F.jsx)(`h3`,{className:`text-base font-semibold text-text-ink`,children:`No report data`}),(0,F.jsxs)(`p`,{className:`mt-1 text-sm text-text-body-mid`,children:[`Run your tests with the Zen Reporter to generate a report, or place a`,` `,(0,F.jsx)(`code`,{className:`rounded bg-surface-100 px-1 py-0.5 text-xs font-mono`,children:`report/report.json`}),` `,`in the project.`]})]})}),!a&&r&&(e||O===`overview`)&&y&&(0,F.jsx)(gt,{summary:y,suites:b,isMinimalReport:D}),!a&&!e&&!D&&r&&O===`projects`&&(0,F.jsx)(tB,{suites:b}),!a&&!e&&r&&O===`suites`&&(0,F.jsx)(Rt,{suites:b}),!a&&!e&&r&&O===`files`&&(0,F.jsx)(Gt,{suites:b,isMinimalReport:D}),!a&&!e&&r&&O===`failures`&&(0,F.jsx)(xt,{suites:b,failedCount:C,timedOutCount:w,interruptedCount:T}),!a&&!e&&!D&&O===`trends`&&(0,F.jsx)(MB,{history:s,suites:b,isHistoryDisabled:E}),!a&&!e&&!D&&O===`insights`&&(0,F.jsx)(dB,{history:s,suites:b,isHistoryDisabled:E}),!a&&!e&&!D&&O===`history`&&(0,F.jsx)(IB,{history:s,isHistoryDisabled:E})]})})]})]})}(0,y.createRoot)(document.getElementById(`root`)).render((0,F.jsx)(v.StrictMode,{children:(0,F.jsx)(UB,{})}));</script>
98
98
  <style rel="stylesheet" crossorigin>/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
99
- @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-amber-200:oklch(92.4% .12 95.746);--color-amber-300:oklch(87.9% .169 91.605);--color-amber-400:oklch(82.8% .189 84.429);--color-amber-500:oklch(76.9% .188 70.08);--color-amber-600:oklch(66.6% .179 58.318);--color-amber-700:oklch(55.5% .163 48.998);--color-amber-900:oklch(41.4% .112 45.904);--color-emerald-300:oklch(84.5% .143 164.978);--color-emerald-400:oklch(76.5% .177 163.223);--color-emerald-600:oklch(59.6% .145 163.225);--color-emerald-700:oklch(50.8% .118 165.612);--color-sky-300:oklch(82.8% .111 230.318);--color-sky-400:oklch(74.6% .16 232.661);--color-sky-600:oklch(58.8% .158 241.966);--color-sky-700:oklch(50% .134 242.749);--color-purple-400:oklch(71.4% .203 305.504);--color-purple-600:oklch(55.8% .288 302.321);--color-purple-700:oklch(49.6% .265 301.924);--color-slate-100:oklch(96.8% .007 247.896);--color-slate-200:oklch(92.9% .013 255.508);--color-slate-300:oklch(86.9% .022 252.894);--color-slate-400:oklch(70.4% .04 256.788);--color-slate-500:oklch(55.4% .046 257.417);--color-slate-600:oklch(44.6% .043 257.281);--color-slate-700:oklch(37.2% .044 257.287);--color-slate-800:oklch(27.9% .041 260.031);--color-slate-900:oklch(20.8% .042 265.755);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--container-xl:36rem;--container-2xl:42rem;--container-4xl:56rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25 / 1.875);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--font-weight-black:900;--tracking-tight:-.025em;--tracking-wider:.05em;--leading-tight:1.25;--leading-relaxed:1.625;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--drop-shadow-xs:0 1px 1px #0000000d;--ease-in:cubic-bezier(.4, 0, 1, 1);--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--blur-xs:4px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-ink:#006241;--color-ink-strong:#1e3932;--color-canvas:#f2f0eb;--color-surface-50:#e8e5df;--color-surface-100:#dfdcd6;--color-surface-200:#d5d2cb;--color-surface-700:#2b5148;--color-surface-800:#1e3932;--color-surface-900:#142622;--color-surface-950:#0d1a17;--color-text-ink:#000000de;--color-text-ink-strong:#000;--color-text-body:#000000de;--color-text-body-mid:#000000b8;--color-text-muted:#000000ad;--color-text-muted-soft:#000000a6;--color-text-on-primary:#fff;--color-border-default:#d6dbde;--color-border-subtle:#edebe9;--color-border-chart:#b4bcc1;--color-border-active:#1e3932;--color-success:#00754a;--color-success-50:#d4e9e2;--color-success-100:#c2e3d8;--color-success-200:#94cfbd;--color-success-500:#00754a;--color-success-600:#006241;--color-success-700:#1e3932;--color-danger:#c82014;--color-danger-50:#fdf2f2;--color-danger-100:#fbe8e8;--color-danger-200:#f5c2c2;--color-danger-500:#c82014;--color-danger-600:#a81107;--color-danger-700:#8c0c05;--color-warning:#cba258;--color-warning-50:#faf6ee;--color-warning-100:#dfc49d;--color-warning-200:#f0dcb9;--color-warning-500:#cba258;--color-warning-600:#6d4c0f;--color-warning-700:#593c09;--color-info:#00754a;--color-info-50:#f0f7f5;--color-info-100:#d4e9e2;--color-info-500:#00754a;--color-info-600:#006241;--color-info-700:#1e3932;--color-accent-cafe:#006241;--color-accent-green:#00754a;--color-accent-house:#1e3932;--color-accent-gold:#cba258;--color-accent-pink:#ed52cb;--color-accent-blue:#00754a;--color-accent-blue-deep:#006241;--color-accent-blue-info:#00754a;--color-accent-orange:#ff6b00;--color-accent-yellow:#cba258;--color-accent-red:#c82014}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:0}.-top-1{top:calc(var(--spacing) * -1)}.top-0{top:0}.top-1{top:var(--spacing)}.top-1\.5{top:calc(var(--spacing) * 1.5)}.top-1\/2{top:50%}.top-3{top:calc(var(--spacing) * 3)}.top-full{top:100%}.-right-1{right:calc(var(--spacing) * -1)}.right-0{right:0}.right-1{right:var(--spacing)}.right-2{right:calc(var(--spacing) * 2)}.right-2\.5{right:calc(var(--spacing) * 2.5)}.right-3{right:calc(var(--spacing) * 3)}.bottom-0{bottom:0}.bottom-1{bottom:var(--spacing)}.bottom-1\.5{bottom:calc(var(--spacing) * 1.5)}.bottom-full{bottom:100%}.left-0{left:0}.left-1{left:var(--spacing)}.left-1\/2{left:50%}.left-2{left:calc(var(--spacing) * 2)}.left-2\.5{left:calc(var(--spacing) * 2.5)}.left-3{left:calc(var(--spacing) * 3)}.isolate{isolation:isolate}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.mx-3{margin-inline:calc(var(--spacing) * 3)}.mx-auto{margin-inline:auto}.my-2{margin-block:calc(var(--spacing) * 2)}.my-3{margin-block:calc(var(--spacing) * 3)}.-mt-1{margin-top:calc(var(--spacing) * -1)}.mt-0{margin-top:0}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-2\.5{margin-top:calc(var(--spacing) * 2.5)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-auto{margin-top:auto}.mr-1{margin-right:var(--spacing)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mb-1{margin-bottom:var(--spacing)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.ml-1{margin-left:var(--spacing)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-3{margin-left:calc(var(--spacing) * 3)}.ml-auto{margin-left:auto}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.h-1{height:var(--spacing)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-10{height:calc(var(--spacing) * 10)}.h-16{height:calc(var(--spacing) * 16)}.h-40{height:calc(var(--spacing) * 40)}.h-65{height:calc(var(--spacing) * 65)}.h-75{height:calc(var(--spacing) * 75)}.h-auto{height:auto}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-80{max-height:calc(var(--spacing) * 80)}.max-h-\[58vh\]{max-height:58vh}.max-h-\[60vh\]{max-height:60vh}.max-h-\[66vh\]{max-height:66vh}.max-h-\[70vh\]{max-height:70vh}.max-h-\[75vh\]{max-height:75vh}.max-h-\[85vh\]{max-height:85vh}.max-h-\[90vh\]{max-height:90vh}.min-h-48{min-height:calc(var(--spacing) * 48)}.w-0{width:0}.w-0\.5{width:calc(var(--spacing) * .5)}.w-1{width:var(--spacing)}.w-1\.5{width:calc(var(--spacing) * 1.5)}.w-1\/2{width:50%}.w-2{width:calc(var(--spacing) * 2)}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-3{width:calc(var(--spacing) * 3)}.w-3\.5{width:calc(var(--spacing) * 3.5)}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-7{width:calc(var(--spacing) * 7)}.w-8{width:calc(var(--spacing) * 8)}.w-10{width:calc(var(--spacing) * 10)}.w-16{width:calc(var(--spacing) * 16)}.w-32{width:calc(var(--spacing) * 32)}.w-44{width:calc(var(--spacing) * 44)}.w-48{width:calc(var(--spacing) * 48)}.w-60{width:calc(var(--spacing) * 60)}.w-64{width:calc(var(--spacing) * 64)}.w-auto{width:auto}.w-full{width:100%}.max-w-2xl{max-width:var(--container-2xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-48{max-width:calc(var(--spacing) * 48)}.max-w-50{max-width:calc(var(--spacing) * 50)}.max-w-full{max-width:100%}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.max-w-sm{max-width:var(--container-sm)}.max-w-xl{max-width:var(--container-xl)}.max-w-xs{max-width:var(--container-xs)}.min-w-0{min-width:0}.min-w-4{min-width:calc(var(--spacing) * 4)}.min-w-5{min-width:calc(var(--spacing) * 5)}.min-w-14{min-width:calc(var(--spacing) * 14)}.min-w-50{min-width:calc(var(--spacing) * 50)}.min-w-62{min-width:calc(var(--spacing) * 62)}.min-w-62\.5{min-width:calc(var(--spacing) * 62.5)}.flex-1{flex:1}.shrink-0{flex-shrink:0}.-translate-x-1{--tw-translate-x:calc(var(--spacing) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-0{--tw-translate-x:0px;translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1{--tw-translate-y:calc(var(--spacing) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-rotate-90{rotate:-90deg}.rotate-90{rotate:90deg}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-ew-resize{cursor:ew-resize}.cursor-help{cursor:help}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.resize{resize:both}.list-inside{list-style-position:inside}.list-disc{list-style-type:disc}.appearance-none{appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-\[100px_1fr\]{grid-template-columns:100px 1fr}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-3\.5{gap:calc(var(--spacing) * 3.5)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(var(--spacing) * var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-4{column-gap:calc(var(--spacing) * 4)}.gap-y-1{row-gap:var(--spacing)}.gap-y-1\.5{row-gap:calc(var(--spacing) * 1.5)}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-border-default>:not(:last-child)){border-color:var(--color-border-default)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-\[50px\]{border-radius:50px}.rounded-full{border-radius:2147483647px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-r-full{border-top-right-radius:2147483647px;border-bottom-right-radius:2147483647px}.border{border-style:var(--tw-border-style);border-width:1px}.border-4{border-style:var(--tw-border-style);border-width:4px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-accent-blue{border-color:var(--color-accent-blue)}.border-accent-blue\/40{border-color:#00754a66}@supports (color:color-mix(in lab, red, red)){.border-accent-blue\/40{border-color:color-mix(in oklab, var(--color-accent-blue) 40%, transparent)}}.border-amber-500{border-color:var(--color-amber-500)}.border-amber-500\/30{border-color:#f99c004d}@supports (color:color-mix(in lab, red, red)){.border-amber-500\/30{border-color:color-mix(in oklab, var(--color-amber-500) 30%, transparent)}}.border-border-active{border-color:var(--color-border-active)}.border-border-default{border-color:var(--color-border-default)}.border-border-default\/50{border-color:#d6dbde80}@supports (color:color-mix(in lab, red, red)){.border-border-default\/50{border-color:color-mix(in oklab, var(--color-border-default) 50%, transparent)}}.border-border-default\/60{border-color:#d6dbde99}@supports (color:color-mix(in lab, red, red)){.border-border-default\/60{border-color:color-mix(in oklab, var(--color-border-default) 60%, transparent)}}.border-border-subtle{border-color:var(--color-border-subtle)}.border-danger-200{border-color:var(--color-danger-200)}.border-danger-500{border-color:var(--color-danger-500)}.border-danger-500\/20{border-color:#c8201433}@supports (color:color-mix(in lab, red, red)){.border-danger-500\/20{border-color:color-mix(in oklab, var(--color-danger-500) 20%, transparent)}}.border-slate-300{border-color:var(--color-slate-300)}.border-slate-300\/80{border-color:#cad5e2cc}@supports (color:color-mix(in lab, red, red)){.border-slate-300\/80{border-color:color-mix(in oklab, var(--color-slate-300) 80%, transparent)}}.border-success-200{border-color:var(--color-success-200)}.border-success-500{border-color:var(--color-success-500)}.border-success-500\/20{border-color:#00754a33}@supports (color:color-mix(in lab, red, red)){.border-success-500\/20{border-color:color-mix(in oklab, var(--color-success-500) 20%, transparent)}}.border-surface-200{border-color:var(--color-surface-200)}.border-transparent{border-color:#0000}.border-warning-200{border-color:var(--color-warning-200)}.border-warning-500{border-color:var(--color-warning-500)}.border-warning-500\/20{border-color:#cba25833}@supports (color:color-mix(in lab, red, red)){.border-warning-500\/20{border-color:color-mix(in oklab, var(--color-warning-500) 20%, transparent)}}.border-t-accent-blue{border-top-color:var(--color-accent-blue)}.border-t-slate-900{border-top-color:var(--color-slate-900)}.bg-accent-blue{background-color:var(--color-accent-blue)}.bg-accent-blue\/10{background-color:#00754a1a}@supports (color:color-mix(in lab, red, red)){.bg-accent-blue\/10{background-color:color-mix(in oklab, var(--color-accent-blue) 10%, transparent)}}.bg-accent-blue\/15{background-color:#00754a26}@supports (color:color-mix(in lab, red, red)){.bg-accent-blue\/15{background-color:color-mix(in oklab, var(--color-accent-blue) 15%, transparent)}}.bg-accent-cafe{background-color:var(--color-accent-cafe)}.bg-accent-house{background-color:var(--color-accent-house)}.bg-accent-red{background-color:var(--color-accent-red)}.bg-amber-500{background-color:var(--color-amber-500)}.bg-amber-500\/10{background-color:#f99c001a}@supports (color:color-mix(in lab, red, red)){.bg-amber-500\/10{background-color:color-mix(in oklab, var(--color-amber-500) 10%, transparent)}}.bg-amber-500\/15{background-color:#f99c0026}@supports (color:color-mix(in lab, red, red)){.bg-amber-500\/15{background-color:color-mix(in oklab, var(--color-amber-500) 15%, transparent)}}.bg-black{background-color:var(--color-black)}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab, red, red)){.bg-black\/50{background-color:color-mix(in oklab, var(--color-black) 50%, transparent)}}.bg-black\/60{background-color:#0009}@supports (color:color-mix(in lab, red, red)){.bg-black\/60{background-color:color-mix(in oklab, var(--color-black) 60%, transparent)}}.bg-black\/75{background-color:#000000bf}@supports (color:color-mix(in lab, red, red)){.bg-black\/75{background-color:color-mix(in oklab, var(--color-black) 75%, transparent)}}.bg-border-default{background-color:var(--color-border-default)}.bg-canvas{background-color:var(--color-canvas)}.bg-danger-50{background-color:var(--color-danger-50)}.bg-danger-100{background-color:var(--color-danger-100)}.bg-danger-100\/80{background-color:#fbe8e8cc}@supports (color:color-mix(in lab, red, red)){.bg-danger-100\/80{background-color:color-mix(in oklab, var(--color-danger-100) 80%, transparent)}}.bg-danger-500{background-color:var(--color-danger-500)}.bg-danger-500\/10{background-color:#c820141a}@supports (color:color-mix(in lab, red, red)){.bg-danger-500\/10{background-color:color-mix(in oklab, var(--color-danger-500) 10%, transparent)}}.bg-danger-600{background-color:var(--color-danger-600)}.bg-info-50{background-color:var(--color-info-50)}.bg-info-100{background-color:var(--color-info-100)}.bg-info-500{background-color:var(--color-info-500)}.bg-slate-100{background-color:var(--color-slate-100)}.bg-slate-100\/70{background-color:#f1f5f9b3}@supports (color:color-mix(in lab, red, red)){.bg-slate-100\/70{background-color:color-mix(in oklab, var(--color-slate-100) 70%, transparent)}}.bg-slate-200{background-color:var(--color-slate-200)}.bg-slate-200\/80{background-color:#e2e8f0cc}@supports (color:color-mix(in lab, red, red)){.bg-slate-200\/80{background-color:color-mix(in oklab, var(--color-slate-200) 80%, transparent)}}.bg-slate-400{background-color:var(--color-slate-400)}.bg-slate-600{background-color:var(--color-slate-600)}.bg-slate-900{background-color:var(--color-slate-900)}.bg-success-50{background-color:var(--color-success-50)}.bg-success-50\/50{background-color:#d4e9e280}@supports (color:color-mix(in lab, red, red)){.bg-success-50\/50{background-color:color-mix(in oklab, var(--color-success-50) 50%, transparent)}}.bg-success-100{background-color:var(--color-success-100)}.bg-success-100\/80{background-color:#c2e3d8cc}@supports (color:color-mix(in lab, red, red)){.bg-success-100\/80{background-color:color-mix(in oklab, var(--color-success-100) 80%, transparent)}}.bg-success-500{background-color:var(--color-success-500)}.bg-success-500\/10{background-color:#00754a1a}@supports (color:color-mix(in lab, red, red)){.bg-success-500\/10{background-color:color-mix(in oklab, var(--color-success-500) 10%, transparent)}}.bg-surface-50{background-color:var(--color-surface-50)}.bg-surface-50\/50{background-color:#e8e5df80}@supports (color:color-mix(in lab, red, red)){.bg-surface-50\/50{background-color:color-mix(in oklab, var(--color-surface-50) 50%, transparent)}}.bg-surface-100{background-color:var(--color-surface-100)}.bg-surface-100\/40{background-color:#dfdcd666}@supports (color:color-mix(in lab, red, red)){.bg-surface-100\/40{background-color:color-mix(in oklab, var(--color-surface-100) 40%, transparent)}}.bg-surface-100\/50{background-color:#dfdcd680}@supports (color:color-mix(in lab, red, red)){.bg-surface-100\/50{background-color:color-mix(in oklab, var(--color-surface-100) 50%, transparent)}}.bg-surface-200{background-color:var(--color-surface-200)}.bg-surface-200\/50{background-color:#d5d2cb80}@supports (color:color-mix(in lab, red, red)){.bg-surface-200\/50{background-color:color-mix(in oklab, var(--color-surface-200) 50%, transparent)}}.bg-surface-200\/60{background-color:#d5d2cb99}@supports (color:color-mix(in lab, red, red)){.bg-surface-200\/60{background-color:color-mix(in oklab, var(--color-surface-200) 60%, transparent)}}.bg-surface-200\/80{background-color:#d5d2cbcc}@supports (color:color-mix(in lab, red, red)){.bg-surface-200\/80{background-color:color-mix(in oklab, var(--color-surface-200) 80%, transparent)}}.bg-surface-950{background-color:var(--color-surface-950)}.bg-warning-50{background-color:var(--color-warning-50)}.bg-warning-100{background-color:var(--color-warning-100)}.bg-warning-100\/80{background-color:#dfc49dcc}@supports (color:color-mix(in lab, red, red)){.bg-warning-100\/80{background-color:color-mix(in oklab, var(--color-warning-100) 80%, transparent)}}.bg-warning-500{background-color:var(--color-warning-500)}.bg-warning-500\/10{background-color:#cba2581a}@supports (color:color-mix(in lab, red, red)){.bg-warning-500\/10{background-color:color-mix(in oklab, var(--color-warning-500) 10%, transparent)}}.bg-white{background-color:var(--color-white)}.bg-white\/20{background-color:#fff3}@supports (color:color-mix(in lab, red, red)){.bg-white\/20{background-color:color-mix(in oklab, var(--color-white) 20%, transparent)}}.object-contain{object-fit:contain}.p-0{padding:0}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:var(--spacing)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-3\.5{padding:calc(var(--spacing) * 3.5)}.p-4{padding:calc(var(--spacing) * 4)}.p-4\!{padding:calc(var(--spacing) * 4)!important}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.px-1{padding-inline:var(--spacing)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-0{padding-block:0}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-3\.5{padding-block:calc(var(--spacing) * 3.5)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-16{padding-block:calc(var(--spacing) * 16)}.py-24{padding-block:calc(var(--spacing) * 24)}.pt-0{padding-top:0}.pt-0\.5{padding-top:calc(var(--spacing) * .5)}.pt-1{padding-top:var(--spacing)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-3\.5{padding-top:calc(var(--spacing) * 3.5)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pr-4{padding-right:calc(var(--spacing) * 4)}.pr-7{padding-right:calc(var(--spacing) * 7)}.pr-8{padding-right:calc(var(--spacing) * 8)}.pb-1{padding-bottom:var(--spacing)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-2\.5{padding-bottom:calc(var(--spacing) * 2.5)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-3\.5{padding-bottom:calc(var(--spacing) * 3.5)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-8{padding-bottom:calc(var(--spacing) * 8)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-2\.5{padding-left:calc(var(--spacing) * 2.5)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-8{padding-left:calc(var(--spacing) * 8)}.pl-9{padding-left:calc(var(--spacing) * 9)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[12px\]{font-size:12px}.text-\[13px\]{font-size:13px}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-black{--tw-font-weight:var(--font-weight-black);font-weight:var(--font-weight-black)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-extrabold{--tw-font-weight:var(--font-weight-extrabold);font-weight:var(--font-weight-extrabold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.wrap-break-word{overflow-wrap:break-word}.break-all{word-break:break-all}.text-ellipsis{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-accent-blue{color:var(--color-accent-blue)}.text-amber-600{color:var(--color-amber-600)}.text-amber-700{color:var(--color-amber-700)}.text-amber-900{color:var(--color-amber-900)}.text-canvas{color:var(--color-canvas)}.text-danger-500{color:var(--color-danger-500)}.text-danger-600{color:var(--color-danger-600)}.text-danger-700{color:var(--color-danger-700)}.text-emerald-600{color:var(--color-emerald-600)}.text-emerald-700{color:var(--color-emerald-700)}.text-info-600{color:var(--color-info-600)}.text-info-700{color:var(--color-info-700)}.text-purple-600{color:var(--color-purple-600)}.text-purple-700{color:var(--color-purple-700)}.text-sky-600{color:var(--color-sky-600)}.text-sky-700{color:var(--color-sky-700)}.text-slate-500{color:var(--color-slate-500)}.text-slate-600{color:var(--color-slate-600)}.text-slate-800{color:var(--color-slate-800)}.text-success-500{color:var(--color-success-500)}.text-success-600{color:var(--color-success-600)}.text-success-700{color:var(--color-success-700)}.text-text-body-mid{color:var(--color-text-body-mid)}.text-text-body-mid\/70{color:#00000081}@supports (color:color-mix(in lab, red, red)){.text-text-body-mid\/70{color:color-mix(in oklab, var(--color-text-body-mid) 70%, transparent)}}.text-text-ink{color:var(--color-text-ink)}.text-text-muted{color:var(--color-text-muted)}.text-text-muted-soft{color:var(--color-text-muted-soft)}.text-text-muted\/70{color:#00000079}@supports (color:color-mix(in lab, red, red)){.text-text-muted\/70{color:color-mix(in oklab, var(--color-text-muted) 70%, transparent)}}.text-text-on-primary{color:var(--color-text-on-primary)}.text-warning-500{color:var(--color-warning-500)}.text-warning-600{color:var(--color-warning-600)}.text-warning-700{color:var(--color-warning-700)}.text-white{color:var(--color-white)}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.underline{text-decoration-line:underline}.placeholder-text-muted-soft::placeholder{color:var(--color-text-muted-soft)}.accent-accent-blue{accent-color:var(--color-accent-blue)}.opacity-0{opacity:0}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-80{opacity:.8}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[0_0_8px_rgba\(0\,0\,0\,0\.6\)\]{--tw-shadow:0 0 8px var(--tw-shadow-color,#0009);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-inner{--tw-shadow:inset 0 2px 4px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring,.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-accent-blue{--tw-ring-color:var(--color-accent-blue)}.ring-accent-blue\/20{--tw-ring-color:#00754a33}@supports (color:color-mix(in lab, red, red)){.ring-accent-blue\/20{--tw-ring-color:color-mix(in oklab, var(--color-accent-blue) 20%, transparent)}}.ring-accent-blue\/30{--tw-ring-color:#00754a4d}@supports (color:color-mix(in lab, red, red)){.ring-accent-blue\/30{--tw-ring-color:color-mix(in oklab, var(--color-accent-blue) 30%, transparent)}}.ring-accent-blue\/40{--tw-ring-color:#00754a66}@supports (color:color-mix(in lab, red, red)){.ring-accent-blue\/40{--tw-ring-color:color-mix(in oklab, var(--color-accent-blue) 40%, transparent)}}.ring-black{--tw-ring-color:var(--color-black)}.ring-black\/5{--tw-ring-color:#0000000d}@supports (color:color-mix(in lab, red, red)){.ring-black\/5{--tw-ring-color:color-mix(in oklab, var(--color-black) 5%, transparent)}}.ring-border-chart{--tw-ring-color:var(--color-border-chart)}.ring-border-default{--tw-ring-color:var(--color-border-default)}.ring-danger-100{--tw-ring-color:var(--color-danger-100)}.ring-danger-200{--tw-ring-color:var(--color-danger-200)}.ring-danger-500{--tw-ring-color:var(--color-danger-500)}.ring-danger-500\/20{--tw-ring-color:#c8201433}@supports (color:color-mix(in lab, red, red)){.ring-danger-500\/20{--tw-ring-color:color-mix(in oklab, var(--color-danger-500) 20%, transparent)}}.ring-info-100{--tw-ring-color:var(--color-info-100)}.ring-info-500{--tw-ring-color:var(--color-info-500)}.ring-info-500\/20{--tw-ring-color:#00754a33}@supports (color:color-mix(in lab, red, red)){.ring-info-500\/20{--tw-ring-color:color-mix(in oklab, var(--color-info-500) 20%, transparent)}}.ring-slate-300{--tw-ring-color:var(--color-slate-300)}.ring-slate-700{--tw-ring-color:var(--color-slate-700)}.ring-success-100{--tw-ring-color:var(--color-success-100)}.ring-success-200{--tw-ring-color:var(--color-success-200)}.ring-success-500{--tw-ring-color:var(--color-success-500)}.ring-success-500\/20{--tw-ring-color:#00754a33}@supports (color:color-mix(in lab, red, red)){.ring-success-500\/20{--tw-ring-color:color-mix(in oklab, var(--color-success-500) 20%, transparent)}}.ring-surface-200{--tw-ring-color:var(--color-surface-200)}.ring-warning-100{--tw-ring-color:var(--color-warning-100)}.ring-warning-200{--tw-ring-color:var(--color-warning-200)}.ring-warning-500{--tw-ring-color:var(--color-warning-500)}.ring-warning-500\/20{--tw-ring-color:#cba25833}@supports (color:color-mix(in lab, red, red)){.ring-warning-500\/20{--tw-ring-color:color-mix(in oklab, var(--color-warning-500) 20%, transparent)}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.drop-shadow-xs{--tw-drop-shadow-size:drop-shadow(0 1px 1px var(--tw-drop-shadow-color,#0000000d));--tw-drop-shadow:drop-shadow(var(--drop-shadow-xs));filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.invert{--tw-invert:invert(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter\!{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)!important}.backdrop-blur-xs{--tw-backdrop-blur:blur(var(--blur-xs));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-75{--tw-duration:75ms;transition-duration:75ms}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-500{--tw-duration:.5s;transition-duration:.5s}.duration-700{--tw-duration:.7s;transition-duration:.7s}.ease-in{--tw-ease:var(--ease-in);transition-timing-function:var(--ease-in)}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.ring-inset{--tw-ring-inset:inset}.group-open\:rounded-b-none:is(:where(.group):is([open],:popover-open,:open) *){border-bottom-right-radius:0;border-bottom-left-radius:0}@media (hover:hover){.group-hover\:block:is(:where(.group):hover *){display:block}.group-hover\:scale-105:is(:where(.group):hover *){--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x) var(--tw-scale-y)}.group-hover\:text-accent-blue:is(:where(.group):hover *){color:var(--color-accent-blue)}.group-hover\:text-text-ink:is(:where(.group):hover *){color:var(--color-text-ink)}.group-hover\:underline:is(:where(.group):hover *){text-decoration-line:underline}.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}}.placeholder\:text-text-muted::placeholder{color:var(--color-text-muted)}.last\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}@media (hover:hover){.hover\:border-accent-blue:hover{border-color:var(--color-accent-blue)}.hover\:border-accent-blue\/60:hover{border-color:#00754a99}@supports (color:color-mix(in lab, red, red)){.hover\:border-accent-blue\/60:hover{border-color:color-mix(in oklab, var(--color-accent-blue) 60%, transparent)}}.hover\:border-danger:hover{border-color:var(--color-danger)}.hover\:border-danger-500:hover{border-color:var(--color-danger-500)}.hover\:bg-accent-blue\/10:hover{background-color:#00754a1a}@supports (color:color-mix(in lab, red, red)){.hover\:bg-accent-blue\/10:hover{background-color:color-mix(in oklab, var(--color-accent-blue) 10%, transparent)}}.hover\:bg-accent-blue\/20:hover{background-color:#00754a33}@supports (color:color-mix(in lab, red, red)){.hover\:bg-accent-blue\/20:hover{background-color:color-mix(in oklab, var(--color-accent-blue) 20%, transparent)}}.hover\:bg-accent-blue\/90:hover{background-color:#00754ae6}@supports (color:color-mix(in lab, red, red)){.hover\:bg-accent-blue\/90:hover{background-color:color-mix(in oklab, var(--color-accent-blue) 90%, transparent)}}.hover\:bg-danger-50:hover{background-color:var(--color-danger-50)}.hover\:bg-danger-700:hover{background-color:var(--color-danger-700)}.hover\:bg-danger\/10:hover{background-color:#c820141a}@supports (color:color-mix(in lab, red, red)){.hover\:bg-danger\/10:hover{background-color:color-mix(in oklab, var(--color-danger) 10%, transparent)}}.hover\:bg-surface-50:hover{background-color:var(--color-surface-50)}.hover\:bg-surface-100:hover{background-color:var(--color-surface-100)}.hover\:bg-surface-100\/50:hover{background-color:#dfdcd680}@supports (color:color-mix(in lab, red, red)){.hover\:bg-surface-100\/50:hover{background-color:color-mix(in oklab, var(--color-surface-100) 50%, transparent)}}.hover\:bg-surface-100\/60:hover{background-color:#dfdcd699}@supports (color:color-mix(in lab, red, red)){.hover\:bg-surface-100\/60:hover{background-color:color-mix(in oklab, var(--color-surface-100) 60%, transparent)}}.hover\:bg-surface-200:hover{background-color:var(--color-surface-200)}.hover\:text-accent-blue:hover{color:var(--color-accent-blue)}.hover\:text-danger:hover{color:var(--color-danger)}.hover\:text-danger-600:hover{color:var(--color-danger-600)}.hover\:text-text-ink:hover{color:var(--color-text-ink)}.hover\:text-text-muted:hover{color:var(--color-text-muted)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-90:hover{opacity:.9}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-md:hover{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}}.focus\:border-accent-blue:focus{border-color:var(--color-accent-blue)}.focus\:ring-1:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-accent-blue:focus{--tw-ring-color:var(--color-accent-blue)}.focus\:ring-success-500:focus{--tw-ring-color:var(--color-success-500)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}@media (width>=40rem){.sm\:flex{display:flex}.sm\:inline{display:inline}.sm\:inline-flex{display:inline-flex}.sm\:w-48{width:calc(var(--spacing) * 48)}.sm\:w-64{width:calc(var(--spacing) * 64)}.sm\:max-w-65{max-width:calc(var(--spacing) * 65)}.sm\:max-w-md{max-width:var(--container-md)}.sm\:flex-initial{flex:0 auto}.sm\:flex-none{flex:none}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:items-start{align-items:flex-start}.sm\:justify-between{justify-content:space-between}.sm\:gap-0{gap:0}.sm\:gap-3{gap:calc(var(--spacing) * 3)}.sm\:px-8{padding-inline:calc(var(--spacing) * 8)}.sm\:text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.sm\:text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}}@media (width>=48rem){.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}}@media (width>=64rem){.lg\:col-span-4{grid-column:span 4/span 4}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.lg\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.lg\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}}:where(.dark\:divide-border-default:where(.dark,.dark *)>:not(:last-child)){border-color:var(--color-border-default)}.dark\:border-accent-blue:where(.dark,.dark *){border-color:var(--color-accent-blue)}.dark\:border-border-default:where(.dark,.dark *){border-color:var(--color-border-default)}.dark\:border-border-default\/40:where(.dark,.dark *){border-color:#d6dbde66}@supports (color:color-mix(in lab, red, red)){.dark\:border-border-default\/40:where(.dark,.dark *){border-color:color-mix(in oklab, var(--color-border-default) 40%, transparent)}}.dark\:border-border-default\/50:where(.dark,.dark *){border-color:#d6dbde80}@supports (color:color-mix(in lab, red, red)){.dark\:border-border-default\/50:where(.dark,.dark *){border-color:color-mix(in oklab, var(--color-border-default) 50%, transparent)}}.dark\:border-border-subtle:where(.dark,.dark *){border-color:var(--color-border-subtle)}.dark\:border-danger-500\/30:where(.dark,.dark *){border-color:#c820144d}@supports (color:color-mix(in lab, red, red)){.dark\:border-danger-500\/30:where(.dark,.dark *){border-color:color-mix(in oklab, var(--color-danger-500) 30%, transparent)}}.dark\:border-info-500\/30:where(.dark,.dark *){border-color:#00754a4d}@supports (color:color-mix(in lab, red, red)){.dark\:border-info-500\/30:where(.dark,.dark *){border-color:color-mix(in oklab, var(--color-info-500) 30%, transparent)}}.dark\:border-slate-700\/60:where(.dark,.dark *){border-color:#31415899}@supports (color:color-mix(in lab, red, red)){.dark\:border-slate-700\/60:where(.dark,.dark *){border-color:color-mix(in oklab, var(--color-slate-700) 60%, transparent)}}.dark\:border-success-500\/30:where(.dark,.dark *){border-color:#00754a4d}@supports (color:color-mix(in lab, red, red)){.dark\:border-success-500\/30:where(.dark,.dark *){border-color:color-mix(in oklab, var(--color-success-500) 30%, transparent)}}.dark\:border-warning-500\/30:where(.dark,.dark *){border-color:#cba2584d}@supports (color:color-mix(in lab, red, red)){.dark\:border-warning-500\/30:where(.dark,.dark *){border-color:color-mix(in oklab, var(--color-warning-500) 30%, transparent)}}.dark\:border-t-slate-800:where(.dark,.dark *){border-top-color:var(--color-slate-800)}.dark\:bg-accent-blue:where(.dark,.dark *){background-color:var(--color-accent-blue)}.dark\:bg-accent-blue\/20:where(.dark,.dark *){background-color:#00754a33}@supports (color:color-mix(in lab, red, red)){.dark\:bg-accent-blue\/20:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-accent-blue) 20%, transparent)}}.dark\:bg-accent-blue\/25:where(.dark,.dark *){background-color:#00754a40}@supports (color:color-mix(in lab, red, red)){.dark\:bg-accent-blue\/25:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-accent-blue) 25%, transparent)}}.dark\:bg-accent-blue\/80:where(.dark,.dark *){background-color:#00754acc}@supports (color:color-mix(in lab, red, red)){.dark\:bg-accent-blue\/80:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-accent-blue) 80%, transparent)}}.dark\:bg-canvas:where(.dark,.dark *){background-color:var(--color-canvas)}.dark\:bg-canvas\/80:where(.dark,.dark *){background-color:#f2f0ebcc}@supports (color:color-mix(in lab, red, red)){.dark\:bg-canvas\/80:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-canvas) 80%, transparent)}}.dark\:bg-danger-50:where(.dark,.dark *){background-color:var(--color-danger-50)}.dark\:bg-danger-50\/20:where(.dark,.dark *){background-color:#fdf2f233}@supports (color:color-mix(in lab, red, red)){.dark\:bg-danger-50\/20:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-danger-50) 20%, transparent)}}.dark\:bg-danger-100:where(.dark,.dark *){background-color:var(--color-danger-100)}.dark\:bg-danger-500:where(.dark,.dark *){background-color:var(--color-danger-500)}.dark\:bg-danger-500\/10:where(.dark,.dark *){background-color:#c820141a}@supports (color:color-mix(in lab, red, red)){.dark\:bg-danger-500\/10:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-danger-500) 10%, transparent)}}.dark\:bg-danger-500\/20:where(.dark,.dark *){background-color:#c8201433}@supports (color:color-mix(in lab, red, red)){.dark\:bg-danger-500\/20:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-danger-500) 20%, transparent)}}.dark\:bg-info-50:where(.dark,.dark *){background-color:var(--color-info-50)}.dark\:bg-info-50\/20:where(.dark,.dark *){background-color:#f0f7f533}@supports (color:color-mix(in lab, red, red)){.dark\:bg-info-50\/20:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-info-50) 20%, transparent)}}.dark\:bg-info-100:where(.dark,.dark *){background-color:var(--color-info-100)}.dark\:bg-slate-300:where(.dark,.dark *){background-color:var(--color-slate-300)}.dark\:bg-slate-500:where(.dark,.dark *){background-color:var(--color-slate-500)}.dark\:bg-slate-700:where(.dark,.dark *){background-color:var(--color-slate-700)}.dark\:bg-slate-700\/60:where(.dark,.dark *){background-color:#31415899}@supports (color:color-mix(in lab, red, red)){.dark\:bg-slate-700\/60:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-slate-700) 60%, transparent)}}.dark\:bg-slate-800:where(.dark,.dark *){background-color:var(--color-slate-800)}.dark\:bg-slate-800\/40:where(.dark,.dark *){background-color:#1d293d66}@supports (color:color-mix(in lab, red, red)){.dark\:bg-slate-800\/40:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-slate-800) 40%, transparent)}}.dark\:bg-success-50:where(.dark,.dark *){background-color:var(--color-success-50)}.dark\:bg-success-50\/20:where(.dark,.dark *){background-color:#d4e9e233}@supports (color:color-mix(in lab, red, red)){.dark\:bg-success-50\/20:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-success-50) 20%, transparent)}}.dark\:bg-success-100:where(.dark,.dark *){background-color:var(--color-success-100)}.dark\:bg-success-500:where(.dark,.dark *){background-color:var(--color-success-500)}.dark\:bg-success-500\/10:where(.dark,.dark *){background-color:#00754a1a}@supports (color:color-mix(in lab, red, red)){.dark\:bg-success-500\/10:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-success-500) 10%, transparent)}}.dark\:bg-success-500\/20:where(.dark,.dark *){background-color:#00754a33}@supports (color:color-mix(in lab, red, red)){.dark\:bg-success-500\/20:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-success-500) 20%, transparent)}}.dark\:bg-surface-50:where(.dark,.dark *){background-color:var(--color-surface-50)}.dark\:bg-surface-100:where(.dark,.dark *){background-color:var(--color-surface-100)}.dark\:bg-surface-100\/30:where(.dark,.dark *){background-color:#dfdcd64d}@supports (color:color-mix(in lab, red, red)){.dark\:bg-surface-100\/30:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-surface-100) 30%, transparent)}}.dark\:bg-surface-100\/40:where(.dark,.dark *){background-color:#dfdcd666}@supports (color:color-mix(in lab, red, red)){.dark\:bg-surface-100\/40:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-surface-100) 40%, transparent)}}.dark\:bg-surface-100\/60:where(.dark,.dark *){background-color:#dfdcd699}@supports (color:color-mix(in lab, red, red)){.dark\:bg-surface-100\/60:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-surface-100) 60%, transparent)}}.dark\:bg-surface-200:where(.dark,.dark *){background-color:var(--color-surface-200)}.dark\:bg-surface-200\/20:where(.dark,.dark *){background-color:#d5d2cb33}@supports (color:color-mix(in lab, red, red)){.dark\:bg-surface-200\/20:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-surface-200) 20%, transparent)}}.dark\:bg-surface-200\/30:where(.dark,.dark *){background-color:#d5d2cb4d}@supports (color:color-mix(in lab, red, red)){.dark\:bg-surface-200\/30:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-surface-200) 30%, transparent)}}.dark\:bg-surface-200\/40:where(.dark,.dark *){background-color:#d5d2cb66}@supports (color:color-mix(in lab, red, red)){.dark\:bg-surface-200\/40:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-surface-200) 40%, transparent)}}.dark\:bg-surface-200\/50:where(.dark,.dark *){background-color:#d5d2cb80}@supports (color:color-mix(in lab, red, red)){.dark\:bg-surface-200\/50:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-surface-200) 50%, transparent)}}.dark\:bg-surface-950:where(.dark,.dark *){background-color:var(--color-surface-950)}.dark\:bg-warning-50:where(.dark,.dark *){background-color:var(--color-warning-50)}.dark\:bg-warning-50\/20:where(.dark,.dark *){background-color:#faf6ee33}@supports (color:color-mix(in lab, red, red)){.dark\:bg-warning-50\/20:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-warning-50) 20%, transparent)}}.dark\:bg-warning-100:where(.dark,.dark *){background-color:var(--color-warning-100)}.dark\:bg-warning-500:where(.dark,.dark *){background-color:var(--color-warning-500)}.dark\:bg-warning-500\/10:where(.dark,.dark *){background-color:#cba2581a}@supports (color:color-mix(in lab, red, red)){.dark\:bg-warning-500\/10:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-warning-500) 10%, transparent)}}.dark\:bg-warning-500\/20:where(.dark,.dark *){background-color:#cba25833}@supports (color:color-mix(in lab, red, red)){.dark\:bg-warning-500\/20:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-warning-500) 20%, transparent)}}.dark\:text-accent-blue:where(.dark,.dark *){color:var(--color-accent-blue)}.dark\:text-amber-200:where(.dark,.dark *){color:var(--color-amber-200)}.dark\:text-amber-300:where(.dark,.dark *){color:var(--color-amber-300)}.dark\:text-amber-400:where(.dark,.dark *){color:var(--color-amber-400)}.dark\:text-danger-500:where(.dark,.dark *){color:var(--color-danger-500)}.dark\:text-emerald-300:where(.dark,.dark *){color:var(--color-emerald-300)}.dark\:text-emerald-400:where(.dark,.dark *){color:var(--color-emerald-400)}.dark\:text-info-500:where(.dark,.dark *){color:var(--color-info-500)}.dark\:text-purple-400:where(.dark,.dark *){color:var(--color-purple-400)}.dark\:text-sky-300:where(.dark,.dark *){color:var(--color-sky-300)}.dark\:text-sky-400:where(.dark,.dark *){color:var(--color-sky-400)}.dark\:text-slate-200:where(.dark,.dark *){color:var(--color-slate-200)}.dark\:text-slate-400:where(.dark,.dark *){color:var(--color-slate-400)}.dark\:text-slate-500:where(.dark,.dark *){color:var(--color-slate-500)}.dark\:text-success-500:where(.dark,.dark *){color:var(--color-success-500)}.dark\:text-surface-900:where(.dark,.dark *){color:var(--color-surface-900)}.dark\:text-surface-950:where(.dark,.dark *){color:var(--color-surface-950)}.dark\:text-text-body-mid:where(.dark,.dark *){color:var(--color-text-body-mid)}.dark\:text-text-ink:where(.dark,.dark *){color:var(--color-text-ink)}.dark\:text-text-muted:where(.dark,.dark *){color:var(--color-text-muted)}.dark\:text-text-muted\/60:where(.dark,.dark *){color:#00000068}@supports (color:color-mix(in lab, red, red)){.dark\:text-text-muted\/60:where(.dark,.dark *){color:color-mix(in oklab, var(--color-text-muted) 60%, transparent)}}.dark\:text-text-muted\/70:where(.dark,.dark *){color:#00000079}@supports (color:color-mix(in lab, red, red)){.dark\:text-text-muted\/70:where(.dark,.dark *){color:color-mix(in oklab, var(--color-text-muted) 70%, transparent)}}.dark\:text-text-on-primary:where(.dark,.dark *){color:var(--color-text-on-primary)}.dark\:text-warning-500:where(.dark,.dark *){color:var(--color-warning-500)}.dark\:placeholder-text-muted:where(.dark,.dark *)::placeholder{color:var(--color-text-muted)}.dark\:ring-1:where(.dark,.dark *){--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.dark\:ring-accent-blue\/50:where(.dark,.dark *){--tw-ring-color:#00754a80}@supports (color:color-mix(in lab, red, red)){.dark\:ring-accent-blue\/50:where(.dark,.dark *){--tw-ring-color:color-mix(in oklab, var(--color-accent-blue) 50%, transparent)}}.dark\:ring-border-chart:where(.dark,.dark *){--tw-ring-color:var(--color-border-chart)}.dark\:ring-border-default:where(.dark,.dark *){--tw-ring-color:var(--color-border-default)}.dark\:ring-danger-500\/20:where(.dark,.dark *){--tw-ring-color:#c8201433}@supports (color:color-mix(in lab, red, red)){.dark\:ring-danger-500\/20:where(.dark,.dark *){--tw-ring-color:color-mix(in oklab, var(--color-danger-500) 20%, transparent)}}.dark\:ring-danger-500\/30:where(.dark,.dark *){--tw-ring-color:#c820144d}@supports (color:color-mix(in lab, red, red)){.dark\:ring-danger-500\/30:where(.dark,.dark *){--tw-ring-color:color-mix(in oklab, var(--color-danger-500) 30%, transparent)}}.dark\:ring-danger-500\/40:where(.dark,.dark *){--tw-ring-color:#c8201466}@supports (color:color-mix(in lab, red, red)){.dark\:ring-danger-500\/40:where(.dark,.dark *){--tw-ring-color:color-mix(in oklab, var(--color-danger-500) 40%, transparent)}}.dark\:ring-danger-600\/40:where(.dark,.dark *){--tw-ring-color:#a8110766}@supports (color:color-mix(in lab, red, red)){.dark\:ring-danger-600\/40:where(.dark,.dark *){--tw-ring-color:color-mix(in oklab, var(--color-danger-600) 40%, transparent)}}.dark\:ring-info-500\/40:where(.dark,.dark *){--tw-ring-color:#00754a66}@supports (color:color-mix(in lab, red, red)){.dark\:ring-info-500\/40:where(.dark,.dark *){--tw-ring-color:color-mix(in oklab, var(--color-info-500) 40%, transparent)}}.dark\:ring-info-600\/40:where(.dark,.dark *){--tw-ring-color:#00624166}@supports (color:color-mix(in lab, red, red)){.dark\:ring-info-600\/40:where(.dark,.dark *){--tw-ring-color:color-mix(in oklab, var(--color-info-600) 40%, transparent)}}.dark\:ring-slate-600:where(.dark,.dark *){--tw-ring-color:var(--color-slate-600)}.dark\:ring-success-500\/20:where(.dark,.dark *){--tw-ring-color:#00754a33}@supports (color:color-mix(in lab, red, red)){.dark\:ring-success-500\/20:where(.dark,.dark *){--tw-ring-color:color-mix(in oklab, var(--color-success-500) 20%, transparent)}}.dark\:ring-success-500\/30:where(.dark,.dark *){--tw-ring-color:#00754a4d}@supports (color:color-mix(in lab, red, red)){.dark\:ring-success-500\/30:where(.dark,.dark *){--tw-ring-color:color-mix(in oklab, var(--color-success-500) 30%, transparent)}}.dark\:ring-success-500\/40:where(.dark,.dark *){--tw-ring-color:#00754a66}@supports (color:color-mix(in lab, red, red)){.dark\:ring-success-500\/40:where(.dark,.dark *){--tw-ring-color:color-mix(in oklab, var(--color-success-500) 40%, transparent)}}.dark\:ring-success-600\/40:where(.dark,.dark *){--tw-ring-color:#00624166}@supports (color:color-mix(in lab, red, red)){.dark\:ring-success-600\/40:where(.dark,.dark *){--tw-ring-color:color-mix(in oklab, var(--color-success-600) 40%, transparent)}}.dark\:ring-surface-200:where(.dark,.dark *){--tw-ring-color:var(--color-surface-200)}.dark\:ring-warning-500\/20:where(.dark,.dark *){--tw-ring-color:#cba25833}@supports (color:color-mix(in lab, red, red)){.dark\:ring-warning-500\/20:where(.dark,.dark *){--tw-ring-color:color-mix(in oklab, var(--color-warning-500) 20%, transparent)}}.dark\:ring-warning-500\/30:where(.dark,.dark *){--tw-ring-color:#cba2584d}@supports (color:color-mix(in lab, red, red)){.dark\:ring-warning-500\/30:where(.dark,.dark *){--tw-ring-color:color-mix(in oklab, var(--color-warning-500) 30%, transparent)}}.dark\:ring-warning-500\/40:where(.dark,.dark *){--tw-ring-color:#cba25866}@supports (color:color-mix(in lab, red, red)){.dark\:ring-warning-500\/40:where(.dark,.dark *){--tw-ring-color:color-mix(in oklab, var(--color-warning-500) 40%, transparent)}}.dark\:ring-warning-600\/40:where(.dark,.dark *){--tw-ring-color:#6d4c0f66}@supports (color:color-mix(in lab, red, red)){.dark\:ring-warning-600\/40:where(.dark,.dark *){--tw-ring-color:color-mix(in oklab, var(--color-warning-600) 40%, transparent)}}.dark\:ring-white\/5:where(.dark,.dark *){--tw-ring-color:#ffffff0d}@supports (color:color-mix(in lab, red, red)){.dark\:ring-white\/5:where(.dark,.dark *){--tw-ring-color:color-mix(in oklab, var(--color-white) 5%, transparent)}}.dark\:ring-white\/10:where(.dark,.dark *){--tw-ring-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.dark\:ring-white\/10:where(.dark,.dark *){--tw-ring-color:color-mix(in oklab, var(--color-white) 10%, transparent)}}@media (hover:hover){.dark\:group-hover\:text-success-500:where(.dark,.dark *):is(:where(.group):hover *){color:var(--color-success-500)}.dark\:group-hover\:text-text-on-primary:where(.dark,.dark *):is(:where(.group):hover *){color:var(--color-text-on-primary)}.dark\:hover\:border-accent-blue:where(.dark,.dark *):hover{border-color:var(--color-accent-blue)}.dark\:hover\:border-danger:where(.dark,.dark *):hover{border-color:var(--color-danger)}.dark\:hover\:bg-accent-blue\/10:where(.dark,.dark *):hover{background-color:#00754a1a}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-accent-blue\/10:where(.dark,.dark *):hover{background-color:color-mix(in oklab, var(--color-accent-blue) 10%, transparent)}}.dark\:hover\:bg-danger-500\/20:where(.dark,.dark *):hover{background-color:#c8201433}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-danger-500\/20:where(.dark,.dark *):hover{background-color:color-mix(in oklab, var(--color-danger-500) 20%, transparent)}}.dark\:hover\:bg-danger\/10:where(.dark,.dark *):hover{background-color:#c820141a}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-danger\/10:where(.dark,.dark *):hover{background-color:color-mix(in oklab, var(--color-danger) 10%, transparent)}}.dark\:hover\:bg-surface-100:where(.dark,.dark *):hover{background-color:var(--color-surface-100)}.dark\:hover\:bg-surface-200:where(.dark,.dark *):hover{background-color:var(--color-surface-200)}.dark\:hover\:bg-surface-200\/30:where(.dark,.dark *):hover{background-color:#d5d2cb4d}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-surface-200\/30:where(.dark,.dark *):hover{background-color:color-mix(in oklab, var(--color-surface-200) 30%, transparent)}}.dark\:hover\:bg-surface-200\/40:where(.dark,.dark *):hover{background-color:#d5d2cb66}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-surface-200\/40:where(.dark,.dark *):hover{background-color:color-mix(in oklab, var(--color-surface-200) 40%, transparent)}}.dark\:hover\:bg-surface-200\/50:where(.dark,.dark *):hover{background-color:#d5d2cb80}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-surface-200\/50:where(.dark,.dark *):hover{background-color:color-mix(in oklab, var(--color-surface-200) 50%, transparent)}}.dark\:hover\:text-accent-blue:where(.dark,.dark *):hover{color:var(--color-accent-blue)}.dark\:hover\:text-danger:where(.dark,.dark *):hover{color:var(--color-danger)}.dark\:hover\:text-text-on-primary:where(.dark,.dark *):hover{color:var(--color-text-on-primary)}}}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}html.dark{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}html.dark,html[data-theme=cafe].dark{--color-ink:#fff;--color-ink-strong:#fff;--color-canvas:#142622;--color-surface-50:#1e3932;--color-surface-100:#25463e;--color-surface-200:#2b5148;--color-surface-700:#d4e9e2;--color-surface-800:#edebe9;--color-surface-900:#f2f0eb;--color-surface-950:#0d1a17;--color-text-ink:#fff;--color-text-ink-strong:#fff;--color-text-body:#ffffffeb;--color-text-body-mid:#ffffffd6;--color-text-muted:#fffc;--color-text-muted-soft:#ffffffc2;--color-text-on-primary:#fff;--color-border-default:#2b5148;--color-border-subtle:#213e37;--color-border-chart:#385d54;--color-border-active:#d4e9e2;--color-success:#4ade80;--color-success-50:#112922;--color-success-100:#183a30;--color-success-500:#4ade80;--color-success-600:#22c55e;--color-success-700:#16a34a;--color-danger:#fca5a5;--color-danger-50:#361210;--color-danger-100:#4a1917;--color-danger-500:#fca5a5;--color-danger-600:#ef4444;--color-danger-700:#f87171;--color-warning:#fcd34d;--color-warning-50:#332714;--color-warning-100:#47371c;--color-warning-500:#fcd34d;--color-warning-600:#fbbf24;--color-warning-700:#f59e0b;--color-info:#38bdf8;--color-info-50:#112922;--color-info-100:#183a30;--color-info-500:#38bdf8;--color-info-600:#0284c7;--color-info-700:#0369a1;--color-accent-cafe:#4ade80;--color-accent-green:#22c55e;--color-accent-house:var(--color-warning-500);--color-accent-gold:#fcd34d;--color-accent-pink:#f472b6;--color-accent-blue:#4ade80;--color-accent-blue-deep:#22c55e;--color-accent-blue-info:#4ade80;--color-accent-orange:#fb923c;--color-accent-yellow:#fcd34d;--color-accent-red:#fca5a5}html[data-theme=concept]{--color-ink:#0075de;--color-ink-strong:#005bab;--color-canvas:#f6f5f4;--color-surface-50:#fff;--color-surface-100:#f0eee9;--color-surface-200:#e6e4df;--color-surface-700:#615d59;--color-surface-800:#31302e;--color-surface-900:#213183;--color-surface-950:#19235d;--color-text-ink:#000;--color-text-ink-strong:#000;--color-text-body:#000;--color-text-body-mid:#31302e;--color-text-muted:#615d59;--color-text-muted-soft:#a39e98;--color-text-on-primary:#fff;--color-border-default:#e6e6e6;--color-border-subtle:#f0f0f0;--color-border-chart:#d0d0d0;--color-border-active:#31302e;--color-success:#1aae39;--color-success-50:#eaf8ed;--color-success-100:#c9f0d1;--color-success-200:#93e2a2;--color-success-500:#1aae39;--color-success-600:#15932f;--color-success-700:#107524;--color-danger:#e03e3e;--color-danger-50:#fdf2f2;--color-danger-100:#fbe8e8;--color-danger-200:#f7c5c5;--color-danger-500:#e03e3e;--color-danger-600:#c42b2b;--color-danger-700:#9e1c1c;--color-warning:#d97706;--color-warning-50:#fffbeb;--color-warning-100:#fef3c7;--color-warning-200:#fde68a;--color-warning-500:#d97706;--color-warning-600:#b45309;--color-warning-700:#92400e;--color-info:#0075de;--color-info-50:#edf6fd;--color-info-100:#d4e8fa;--color-info-500:#0075de;--color-info-600:#005bab;--color-info-700:#004582;--color-accent-cafe:#0075de;--color-accent-green:#1aae39;--color-accent-house:#213183;--color-accent-gold:#dd5b00;--color-accent-pink:#ff64c8;--color-accent-blue:#0075de;--color-accent-blue-deep:#005bab;--color-accent-blue-info:#62aef0;--color-accent-orange:#dd5b00;--color-accent-yellow:#dd5b00;--color-accent-red:#e03e3e}html[data-theme=concept].dark,[data-theme=concept] .dark{--color-ink:#62aef0;--color-ink-strong:#fff;--color-canvas:#191b22;--color-surface-50:#222530;--color-surface-100:#2b2f3d;--color-surface-200:#363b4d;--color-surface-700:#a39e98;--color-surface-800:#f0eee9;--color-surface-900:#f6f5f4;--color-surface-950:#12141a;--color-text-ink:#fff;--color-text-ink-strong:#fff;--color-text-body:#ffffffeb;--color-text-body-mid:#ffffffd6;--color-text-muted:#ffffffbf;--color-text-muted-soft:#ffffffa6;--color-text-on-primary:#fff;--color-border-default:#363b4d;--color-border-subtle:#2b2f3d;--color-border-chart:#484f67;--color-border-active:#f0eee9;--color-success:#2aae44;--color-success-50:#112918;--color-success-100:#193c23;--color-success-500:#2aae44;--color-success-600:#219337;--color-success-700:#18752b;--color-danger:#ff64c8;--color-danger-50:#38122c;--color-danger-100:#521841;--color-danger-500:#ff64c8;--color-danger-600:#e04bb0;--color-danger-700:#bf3494;--color-warning:#f56c18;--color-warning-50:#36190a;--color-warning-100:#4a2410;--color-warning-500:#f56c18;--color-warning-600:#d4560b;--color-warning-700:#b04305;--color-info:#62aef0;--color-info-50:#132438;--color-info-100:#1a324d;--color-info-500:#62aef0;--color-info-600:#3b95e6;--color-info-700:#1d7bcf;--color-accent-cafe:#62aef0;--color-accent-green:#2aae44;--color-accent-house:#d6b6f6;--color-accent-gold:#f56c18;--color-accent-pink:#ff64c8;--color-accent-blue:#62aef0;--color-accent-blue-deep:#3b95e6;--color-accent-blue-info:#62aef0;--color-accent-orange:#f56c18;--color-accent-yellow:#f56c18;--color-accent-red:#ff64c8}html[data-theme=sentinel],[data-theme=sentinel]{--color-ink:#150f23;--color-ink-strong:#1f1633;--color-canvas:#fff;--color-surface-50:#f8f7fa;--color-surface-100:#f0edf5;--color-surface-200:#e5e1eb;--color-surface-700:#422082;--color-surface-800:#1f1633;--color-surface-900:#150f23;--color-surface-950:#0e0918;--color-text-ink:#1f1633;--color-text-ink-strong:#150f23;--color-text-body:#1f1633eb;--color-text-body-mid:#1f1633bf;--color-text-muted:#1f1633a6;--color-text-muted-soft:#1f16338c;--color-text-on-primary:#fff;--color-border-default:#cfcfdb;--color-border-subtle:#e5e7eb;--color-border-chart:#b2b2c4;--color-border-active:#1f1633;--color-success:#709600;--color-success-50:#f4fce8;--color-success-100:#e6f7c6;--color-success-200:#c2ef4e;--color-success-500:#709600;--color-success-600:#587700;--color-success-700:#425a00;--color-danger:#d93d75;--color-danger-50:#fef0f5;--color-danger-100:#fce0ec;--color-danger-200:#fa7faa;--color-danger-500:#d93d75;--color-danger-600:#b82b5c;--color-danger-700:#941d46;--color-warning:#d97706;--color-warning-50:#fffbe6;--color-warning-100:#fef3c7;--color-warning-200:#fde68a;--color-warning-500:#d97706;--color-warning-600:#b45309;--color-warning-700:#78350f;--color-info:#6a5fc1;--color-info-50:#f3f2fa;--color-info-100:#e4e1f5;--color-info-500:#6a5fc1;--color-info-600:#5449aa;--color-info-700:#422082;--color-accent-cafe:#150f23;--color-accent-green:#709600;--color-accent-house:#1f1633;--color-accent-gold:#d97706;--color-accent-pink:#fa7faa;--color-accent-blue:#6a5fc1;--color-accent-blue-deep:#422082;--color-accent-blue-info:#6a5fc1;--color-accent-orange:#d97706;--color-accent-yellow:#c2ef4e;--color-accent-red:#d93d75}html[data-theme=sentinel].dark,[data-theme=sentinel] .dark{--color-ink:#c2ef4e;--color-ink-strong:#fff;--color-canvas:#1f1633;--color-surface-50:#150f23;--color-surface-100:#2a1f42;--color-surface-200:#362d59;--color-surface-700:#79628c;--color-surface-800:#a89bb8;--color-surface-900:#e5e1eb;--color-surface-950:#0f0a1a;--color-text-ink:#fff;--color-text-ink-strong:#fff;--color-text-body:#ffffffeb;--color-text-body-mid:#ffffffc7;--color-text-muted:#ffffffb8;--color-text-muted-soft:#ffffff8c;--color-text-on-primary:#fff;--color-border-default:#362d59;--color-border-subtle:#2a1f42;--color-border-chart:#544975;--color-border-active:#e5e1eb;--color-success:#c2ef4e;--color-success-50:#182206;--color-success-100:#26380a;--color-success-500:#c2ef4e;--color-success-600:#a9d936;--color-success-700:#8ec41f;--color-danger:#fa7faa;--color-danger-50:#380f20;--color-danger-100:#521730;--color-danger-500:#fa7faa;--color-danger-600:#f85590;--color-danger-700:#f52b75;--color-warning:#fbbf24;--color-warning-50:#382707;--color-warning-100:#523a0b;--color-warning-500:#fbbf24;--color-warning-600:#f59e0b;--color-warning-700:#d97706;--color-info:#9d93eb;--color-info-50:#1c173d;--color-info-100:#292257;--color-info-500:#9d93eb;--color-info-600:#8174e5;--color-info-700:#6a5fc1;--color-accent-cafe:#c2ef4e;--color-accent-green:#c2ef4e;--color-accent-house:#79628c;--color-accent-gold:#fbbf24;--color-accent-pink:#fa7faa;--color-accent-blue:#9d93eb;--color-accent-blue-deep:#6a5fc1;--color-accent-blue-info:#9d93eb;--color-accent-orange:#fbbf24;--color-accent-yellow:#c2ef4e;--color-accent-red:#fa7faa}body{background-color:var(--color-canvas);font-family:var(--font-sans);color:var(--color-text-ink);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;padding:0}#root{min-height:100vh}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background-color:#00000047;border-radius:9999px}::-webkit-scrollbar-thumb:hover{background-color:#00000073}.dark ::-webkit-scrollbar-thumb{background-color:#ffffff47}html.dark ::-webkit-scrollbar-thumb{background-color:#ffffff47}pre::-webkit-scrollbar-thumb{background-color:#ffffff47}.dark ::-webkit-scrollbar-thumb:hover{background-color:#ffffff73}html.dark ::-webkit-scrollbar-thumb:hover{background-color:#ffffff73}pre::-webkit-scrollbar-thumb:hover{background-color:#ffffff73}pre,code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.recharts-rectangle.recharts-tooltip-cursor,.recharts-tooltip-cursor{fill:#0000000d!important;stroke:#0000!important}.dark .recharts-rectangle.recharts-tooltip-cursor,.dark .recharts-tooltip-cursor{fill:#ffffff0f!important;stroke:#0000!important}input[type=range].onion-opacity-slider{background:0 0}input[type=range].onion-opacity-slider::-webkit-slider-runnable-track{background-color:var(--color-border-default);border-radius:9999px;height:6px}input[type=range].onion-opacity-slider::-moz-range-track{background-color:var(--color-border-default);border-radius:9999px;height:6px}.dark input[type=range].onion-opacity-slider::-webkit-slider-runnable-track{background-color:#ffffff4d}.dark input[type=range].onion-opacity-slider::-moz-range-track{background-color:#ffffff4d}input[type=range].onion-opacity-slider::-webkit-slider-thumb{margin-top:-5px}input[type=date]::-webkit-datetime-edit{text-transform:uppercase}input[type=date]::-webkit-datetime-edit-fields-wrapper{text-transform:uppercase}input[type=date]::-webkit-datetime-edit-text{text-transform:uppercase}input[type=date]::-webkit-datetime-edit-month-field{text-transform:uppercase}input[type=date]::-webkit-datetime-edit-day-field{text-transform:uppercase}input[type=date]::-webkit-datetime-edit-year-field{text-transform:uppercase}input[type=date]::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.85;transition:opacity .2s}input[type=date]::-webkit-calendar-picker-indicator:hover{opacity:1}.dark input[type=date]::-webkit-calendar-picker-indicator{filter:invert(.9)brightness(1.2)}html.dark input[type=date]::-webkit-calendar-picker-indicator{filter:invert(.9)brightness(1.2)}[data-theme] .dark input[type=date]::-webkit-calendar-picker-indicator{filter:invert(.9)brightness(1.2)}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}
99
+ @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-amber-200:oklch(92.4% .12 95.746);--color-amber-300:oklch(87.9% .169 91.605);--color-amber-400:oklch(82.8% .189 84.429);--color-amber-500:oklch(76.9% .188 70.08);--color-amber-600:oklch(66.6% .179 58.318);--color-amber-700:oklch(55.5% .163 48.998);--color-amber-900:oklch(41.4% .112 45.904);--color-emerald-300:oklch(84.5% .143 164.978);--color-emerald-400:oklch(76.5% .177 163.223);--color-emerald-600:oklch(59.6% .145 163.225);--color-emerald-700:oklch(50.8% .118 165.612);--color-sky-300:oklch(82.8% .111 230.318);--color-sky-400:oklch(74.6% .16 232.661);--color-sky-600:oklch(58.8% .158 241.966);--color-sky-700:oklch(50% .134 242.749);--color-purple-400:oklch(71.4% .203 305.504);--color-purple-600:oklch(55.8% .288 302.321);--color-purple-700:oklch(49.6% .265 301.924);--color-slate-100:oklch(96.8% .007 247.896);--color-slate-200:oklch(92.9% .013 255.508);--color-slate-300:oklch(86.9% .022 252.894);--color-slate-400:oklch(70.4% .04 256.788);--color-slate-500:oklch(55.4% .046 257.417);--color-slate-600:oklch(44.6% .043 257.281);--color-slate-700:oklch(37.2% .044 257.287);--color-slate-800:oklch(27.9% .041 260.031);--color-slate-900:oklch(20.8% .042 265.755);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--container-xl:36rem;--container-2xl:42rem;--container-4xl:56rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25 / 1.875);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--font-weight-black:900;--tracking-tight:-.025em;--tracking-wider:.05em;--leading-tight:1.25;--leading-relaxed:1.625;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--drop-shadow-xs:0 1px 1px #0000000d;--ease-in:cubic-bezier(.4, 0, 1, 1);--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--blur-xs:4px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-ink:#006241;--color-ink-strong:#1e3932;--color-canvas:#f2f0eb;--color-surface-50:#e8e5df;--color-surface-100:#dfdcd6;--color-surface-200:#d5d2cb;--color-surface-700:#2b5148;--color-surface-800:#1e3932;--color-surface-900:#142622;--color-surface-950:#0d1a17;--color-text-ink:#000000de;--color-text-ink-strong:#000;--color-text-body:#000000de;--color-text-body-mid:#000000b8;--color-text-muted:#000000ad;--color-text-muted-soft:#000000a6;--color-text-on-primary:#fff;--color-border-default:#d6dbde;--color-border-subtle:#edebe9;--color-border-chart:#b4bcc1;--color-border-active:#1e3932;--color-success:#00754a;--color-success-50:#d4e9e2;--color-success-100:#c2e3d8;--color-success-200:#94cfbd;--color-success-500:#00754a;--color-success-600:#006241;--color-success-700:#1e3932;--color-danger:#c82014;--color-danger-50:#fdf2f2;--color-danger-100:#fbe8e8;--color-danger-200:#f5c2c2;--color-danger-500:#c82014;--color-danger-600:#a81107;--color-danger-700:#8c0c05;--color-warning:#cba258;--color-warning-50:#faf6ee;--color-warning-100:#dfc49d;--color-warning-200:#f0dcb9;--color-warning-500:#cba258;--color-warning-600:#6d4c0f;--color-warning-700:#593c09;--color-info:#00754a;--color-info-50:#f0f7f5;--color-info-100:#d4e9e2;--color-info-500:#00754a;--color-info-600:#006241;--color-info-700:#1e3932;--color-accent-cafe:#006241;--color-accent-green:#00754a;--color-accent-house:#1e3932;--color-accent-gold:#cba258;--color-accent-pink:#ed52cb;--color-accent-blue:#00754a;--color-accent-blue-deep:#006241;--color-accent-blue-info:#00754a;--color-accent-orange:#ff6b00;--color-accent-yellow:#cba258;--color-accent-red:#c82014}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:0}.-top-1{top:calc(var(--spacing) * -1)}.top-0{top:0}.top-1{top:var(--spacing)}.top-1\.5{top:calc(var(--spacing) * 1.5)}.top-1\/2{top:50%}.top-3{top:calc(var(--spacing) * 3)}.top-full{top:100%}.-right-1{right:calc(var(--spacing) * -1)}.right-0{right:0}.right-1{right:var(--spacing)}.right-2{right:calc(var(--spacing) * 2)}.right-2\.5{right:calc(var(--spacing) * 2.5)}.right-3{right:calc(var(--spacing) * 3)}.bottom-0{bottom:0}.bottom-1{bottom:var(--spacing)}.bottom-1\.5{bottom:calc(var(--spacing) * 1.5)}.bottom-full{bottom:100%}.left-0{left:0}.left-1{left:var(--spacing)}.left-1\/2{left:50%}.left-2{left:calc(var(--spacing) * 2)}.left-2\.5{left:calc(var(--spacing) * 2.5)}.left-3{left:calc(var(--spacing) * 3)}.isolate{isolation:isolate}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.mx-3{margin-inline:calc(var(--spacing) * 3)}.mx-auto{margin-inline:auto}.my-2{margin-block:calc(var(--spacing) * 2)}.my-3{margin-block:calc(var(--spacing) * 3)}.-mt-1{margin-top:calc(var(--spacing) * -1)}.mt-0{margin-top:0}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-2\.5{margin-top:calc(var(--spacing) * 2.5)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-auto{margin-top:auto}.mr-1{margin-right:var(--spacing)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mb-1{margin-bottom:var(--spacing)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.ml-1{margin-left:var(--spacing)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-3{margin-left:calc(var(--spacing) * 3)}.ml-auto{margin-left:auto}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.h-1{height:var(--spacing)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-10{height:calc(var(--spacing) * 10)}.h-16{height:calc(var(--spacing) * 16)}.h-40{height:calc(var(--spacing) * 40)}.h-65{height:calc(var(--spacing) * 65)}.h-75{height:calc(var(--spacing) * 75)}.h-auto{height:auto}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-80{max-height:calc(var(--spacing) * 80)}.max-h-\[58vh\]{max-height:58vh}.max-h-\[60vh\]{max-height:60vh}.max-h-\[66vh\]{max-height:66vh}.max-h-\[70vh\]{max-height:70vh}.max-h-\[75vh\]{max-height:75vh}.max-h-\[85vh\]{max-height:85vh}.max-h-\[90vh\]{max-height:90vh}.min-h-48{min-height:calc(var(--spacing) * 48)}.w-0{width:0}.w-0\.5{width:calc(var(--spacing) * .5)}.w-1{width:var(--spacing)}.w-1\.5{width:calc(var(--spacing) * 1.5)}.w-1\/2{width:50%}.w-2{width:calc(var(--spacing) * 2)}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-3{width:calc(var(--spacing) * 3)}.w-3\.5{width:calc(var(--spacing) * 3.5)}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-7{width:calc(var(--spacing) * 7)}.w-8{width:calc(var(--spacing) * 8)}.w-10{width:calc(var(--spacing) * 10)}.w-16{width:calc(var(--spacing) * 16)}.w-32{width:calc(var(--spacing) * 32)}.w-44{width:calc(var(--spacing) * 44)}.w-48{width:calc(var(--spacing) * 48)}.w-60{width:calc(var(--spacing) * 60)}.w-64{width:calc(var(--spacing) * 64)}.w-auto{width:auto}.w-full{width:100%}.max-w-2xl{max-width:var(--container-2xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-48{max-width:calc(var(--spacing) * 48)}.max-w-50{max-width:calc(var(--spacing) * 50)}.max-w-full{max-width:100%}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.max-w-sm{max-width:var(--container-sm)}.max-w-xl{max-width:var(--container-xl)}.max-w-xs{max-width:var(--container-xs)}.min-w-0{min-width:0}.min-w-4{min-width:calc(var(--spacing) * 4)}.min-w-5{min-width:calc(var(--spacing) * 5)}.min-w-14{min-width:calc(var(--spacing) * 14)}.min-w-50{min-width:calc(var(--spacing) * 50)}.min-w-62{min-width:calc(var(--spacing) * 62)}.min-w-62\.5{min-width:calc(var(--spacing) * 62.5)}.flex-1{flex:1}.shrink-0{flex-shrink:0}.-translate-x-1{--tw-translate-x:calc(var(--spacing) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-0{--tw-translate-x:0px;translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1{--tw-translate-y:calc(var(--spacing) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-rotate-90{rotate:-90deg}.rotate-90{rotate:90deg}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-ew-resize{cursor:ew-resize}.cursor-help{cursor:help}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.resize{resize:both}.list-inside{list-style-position:inside}.list-disc{list-style-type:disc}.appearance-none{appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-\[100px_1fr\]{grid-template-columns:100px 1fr}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0{gap:0}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-3\.5{gap:calc(var(--spacing) * 3.5)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(var(--spacing) * var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-4{column-gap:calc(var(--spacing) * 4)}.gap-y-1{row-gap:var(--spacing)}.gap-y-1\.5{row-gap:calc(var(--spacing) * 1.5)}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-border-default>:not(:last-child)){border-color:var(--color-border-default)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-\[50px\]{border-radius:50px}.rounded-full{border-radius:2147483647px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-r-full{border-top-right-radius:2147483647px;border-bottom-right-radius:2147483647px}.border{border-style:var(--tw-border-style);border-width:1px}.border-4{border-style:var(--tw-border-style);border-width:4px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-accent-blue{border-color:var(--color-accent-blue)}.border-accent-blue\/40{border-color:#00754a66}@supports (color:color-mix(in lab, red, red)){.border-accent-blue\/40{border-color:color-mix(in oklab, var(--color-accent-blue) 40%, transparent)}}.border-amber-500{border-color:var(--color-amber-500)}.border-amber-500\/30{border-color:#f99c004d}@supports (color:color-mix(in lab, red, red)){.border-amber-500\/30{border-color:color-mix(in oklab, var(--color-amber-500) 30%, transparent)}}.border-border-active{border-color:var(--color-border-active)}.border-border-default{border-color:var(--color-border-default)}.border-border-default\/50{border-color:#d6dbde80}@supports (color:color-mix(in lab, red, red)){.border-border-default\/50{border-color:color-mix(in oklab, var(--color-border-default) 50%, transparent)}}.border-border-default\/60{border-color:#d6dbde99}@supports (color:color-mix(in lab, red, red)){.border-border-default\/60{border-color:color-mix(in oklab, var(--color-border-default) 60%, transparent)}}.border-border-subtle{border-color:var(--color-border-subtle)}.border-danger-200{border-color:var(--color-danger-200)}.border-danger-500{border-color:var(--color-danger-500)}.border-danger-500\/20{border-color:#c8201433}@supports (color:color-mix(in lab, red, red)){.border-danger-500\/20{border-color:color-mix(in oklab, var(--color-danger-500) 20%, transparent)}}.border-slate-300{border-color:var(--color-slate-300)}.border-slate-300\/80{border-color:#cad5e2cc}@supports (color:color-mix(in lab, red, red)){.border-slate-300\/80{border-color:color-mix(in oklab, var(--color-slate-300) 80%, transparent)}}.border-success-200{border-color:var(--color-success-200)}.border-success-500{border-color:var(--color-success-500)}.border-success-500\/20{border-color:#00754a33}@supports (color:color-mix(in lab, red, red)){.border-success-500\/20{border-color:color-mix(in oklab, var(--color-success-500) 20%, transparent)}}.border-surface-200{border-color:var(--color-surface-200)}.border-transparent{border-color:#0000}.border-warning-200{border-color:var(--color-warning-200)}.border-warning-500{border-color:var(--color-warning-500)}.border-warning-500\/20{border-color:#cba25833}@supports (color:color-mix(in lab, red, red)){.border-warning-500\/20{border-color:color-mix(in oklab, var(--color-warning-500) 20%, transparent)}}.border-t-accent-blue{border-top-color:var(--color-accent-blue)}.border-t-slate-900{border-top-color:var(--color-slate-900)}.bg-accent-blue{background-color:var(--color-accent-blue)}.bg-accent-blue\/10{background-color:#00754a1a}@supports (color:color-mix(in lab, red, red)){.bg-accent-blue\/10{background-color:color-mix(in oklab, var(--color-accent-blue) 10%, transparent)}}.bg-accent-blue\/15{background-color:#00754a26}@supports (color:color-mix(in lab, red, red)){.bg-accent-blue\/15{background-color:color-mix(in oklab, var(--color-accent-blue) 15%, transparent)}}.bg-accent-cafe{background-color:var(--color-accent-cafe)}.bg-accent-house{background-color:var(--color-accent-house)}.bg-accent-red{background-color:var(--color-accent-red)}.bg-amber-500{background-color:var(--color-amber-500)}.bg-amber-500\/10{background-color:#f99c001a}@supports (color:color-mix(in lab, red, red)){.bg-amber-500\/10{background-color:color-mix(in oklab, var(--color-amber-500) 10%, transparent)}}.bg-amber-500\/15{background-color:#f99c0026}@supports (color:color-mix(in lab, red, red)){.bg-amber-500\/15{background-color:color-mix(in oklab, var(--color-amber-500) 15%, transparent)}}.bg-black{background-color:var(--color-black)}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab, red, red)){.bg-black\/50{background-color:color-mix(in oklab, var(--color-black) 50%, transparent)}}.bg-black\/60{background-color:#0009}@supports (color:color-mix(in lab, red, red)){.bg-black\/60{background-color:color-mix(in oklab, var(--color-black) 60%, transparent)}}.bg-black\/75{background-color:#000000bf}@supports (color:color-mix(in lab, red, red)){.bg-black\/75{background-color:color-mix(in oklab, var(--color-black) 75%, transparent)}}.bg-border-default{background-color:var(--color-border-default)}.bg-canvas{background-color:var(--color-canvas)}.bg-danger-50{background-color:var(--color-danger-50)}.bg-danger-100{background-color:var(--color-danger-100)}.bg-danger-100\/80{background-color:#fbe8e8cc}@supports (color:color-mix(in lab, red, red)){.bg-danger-100\/80{background-color:color-mix(in oklab, var(--color-danger-100) 80%, transparent)}}.bg-danger-500{background-color:var(--color-danger-500)}.bg-danger-500\/10{background-color:#c820141a}@supports (color:color-mix(in lab, red, red)){.bg-danger-500\/10{background-color:color-mix(in oklab, var(--color-danger-500) 10%, transparent)}}.bg-danger-600{background-color:var(--color-danger-600)}.bg-info-50{background-color:var(--color-info-50)}.bg-info-100{background-color:var(--color-info-100)}.bg-info-500{background-color:var(--color-info-500)}.bg-slate-100{background-color:var(--color-slate-100)}.bg-slate-100\/70{background-color:#f1f5f9b3}@supports (color:color-mix(in lab, red, red)){.bg-slate-100\/70{background-color:color-mix(in oklab, var(--color-slate-100) 70%, transparent)}}.bg-slate-200{background-color:var(--color-slate-200)}.bg-slate-200\/80{background-color:#e2e8f0cc}@supports (color:color-mix(in lab, red, red)){.bg-slate-200\/80{background-color:color-mix(in oklab, var(--color-slate-200) 80%, transparent)}}.bg-slate-400{background-color:var(--color-slate-400)}.bg-slate-600{background-color:var(--color-slate-600)}.bg-slate-900{background-color:var(--color-slate-900)}.bg-success-50{background-color:var(--color-success-50)}.bg-success-50\/50{background-color:#d4e9e280}@supports (color:color-mix(in lab, red, red)){.bg-success-50\/50{background-color:color-mix(in oklab, var(--color-success-50) 50%, transparent)}}.bg-success-100{background-color:var(--color-success-100)}.bg-success-100\/80{background-color:#c2e3d8cc}@supports (color:color-mix(in lab, red, red)){.bg-success-100\/80{background-color:color-mix(in oklab, var(--color-success-100) 80%, transparent)}}.bg-success-500{background-color:var(--color-success-500)}.bg-success-500\/10{background-color:#00754a1a}@supports (color:color-mix(in lab, red, red)){.bg-success-500\/10{background-color:color-mix(in oklab, var(--color-success-500) 10%, transparent)}}.bg-surface-50{background-color:var(--color-surface-50)}.bg-surface-50\/50{background-color:#e8e5df80}@supports (color:color-mix(in lab, red, red)){.bg-surface-50\/50{background-color:color-mix(in oklab, var(--color-surface-50) 50%, transparent)}}.bg-surface-100{background-color:var(--color-surface-100)}.bg-surface-100\/40{background-color:#dfdcd666}@supports (color:color-mix(in lab, red, red)){.bg-surface-100\/40{background-color:color-mix(in oklab, var(--color-surface-100) 40%, transparent)}}.bg-surface-100\/50{background-color:#dfdcd680}@supports (color:color-mix(in lab, red, red)){.bg-surface-100\/50{background-color:color-mix(in oklab, var(--color-surface-100) 50%, transparent)}}.bg-surface-200{background-color:var(--color-surface-200)}.bg-surface-200\/50{background-color:#d5d2cb80}@supports (color:color-mix(in lab, red, red)){.bg-surface-200\/50{background-color:color-mix(in oklab, var(--color-surface-200) 50%, transparent)}}.bg-surface-200\/60{background-color:#d5d2cb99}@supports (color:color-mix(in lab, red, red)){.bg-surface-200\/60{background-color:color-mix(in oklab, var(--color-surface-200) 60%, transparent)}}.bg-surface-200\/80{background-color:#d5d2cbcc}@supports (color:color-mix(in lab, red, red)){.bg-surface-200\/80{background-color:color-mix(in oklab, var(--color-surface-200) 80%, transparent)}}.bg-surface-950{background-color:var(--color-surface-950)}.bg-warning-50{background-color:var(--color-warning-50)}.bg-warning-100{background-color:var(--color-warning-100)}.bg-warning-100\/80{background-color:#dfc49dcc}@supports (color:color-mix(in lab, red, red)){.bg-warning-100\/80{background-color:color-mix(in oklab, var(--color-warning-100) 80%, transparent)}}.bg-warning-500{background-color:var(--color-warning-500)}.bg-warning-500\/10{background-color:#cba2581a}@supports (color:color-mix(in lab, red, red)){.bg-warning-500\/10{background-color:color-mix(in oklab, var(--color-warning-500) 10%, transparent)}}.bg-white{background-color:var(--color-white)}.bg-white\/20{background-color:#fff3}@supports (color:color-mix(in lab, red, red)){.bg-white\/20{background-color:color-mix(in oklab, var(--color-white) 20%, transparent)}}.object-contain{object-fit:contain}.p-0{padding:0}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:var(--spacing)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-3\.5{padding:calc(var(--spacing) * 3.5)}.p-4{padding:calc(var(--spacing) * 4)}.p-4\!{padding:calc(var(--spacing) * 4)!important}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.px-1{padding-inline:var(--spacing)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-0{padding-block:0}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-3\.5{padding-block:calc(var(--spacing) * 3.5)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-16{padding-block:calc(var(--spacing) * 16)}.py-24{padding-block:calc(var(--spacing) * 24)}.pt-0{padding-top:0}.pt-0\.5{padding-top:calc(var(--spacing) * .5)}.pt-1{padding-top:var(--spacing)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-3\.5{padding-top:calc(var(--spacing) * 3.5)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pr-4{padding-right:calc(var(--spacing) * 4)}.pr-7{padding-right:calc(var(--spacing) * 7)}.pr-8{padding-right:calc(var(--spacing) * 8)}.pb-1{padding-bottom:var(--spacing)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-2\.5{padding-bottom:calc(var(--spacing) * 2.5)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-3\.5{padding-bottom:calc(var(--spacing) * 3.5)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-8{padding-bottom:calc(var(--spacing) * 8)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-2\.5{padding-left:calc(var(--spacing) * 2.5)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-8{padding-left:calc(var(--spacing) * 8)}.pl-9{padding-left:calc(var(--spacing) * 9)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[12px\]{font-size:12px}.text-\[13px\]{font-size:13px}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-black{--tw-font-weight:var(--font-weight-black);font-weight:var(--font-weight-black)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-extrabold{--tw-font-weight:var(--font-weight-extrabold);font-weight:var(--font-weight-extrabold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.wrap-break-word{overflow-wrap:break-word}.break-all{word-break:break-all}.text-ellipsis{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-accent-blue{color:var(--color-accent-blue)}.text-amber-600{color:var(--color-amber-600)}.text-amber-700{color:var(--color-amber-700)}.text-amber-900{color:var(--color-amber-900)}.text-canvas{color:var(--color-canvas)}.text-danger-500{color:var(--color-danger-500)}.text-danger-600{color:var(--color-danger-600)}.text-danger-700{color:var(--color-danger-700)}.text-emerald-600{color:var(--color-emerald-600)}.text-emerald-700{color:var(--color-emerald-700)}.text-info-600{color:var(--color-info-600)}.text-info-700{color:var(--color-info-700)}.text-purple-600{color:var(--color-purple-600)}.text-purple-700{color:var(--color-purple-700)}.text-sky-600{color:var(--color-sky-600)}.text-sky-700{color:var(--color-sky-700)}.text-slate-500{color:var(--color-slate-500)}.text-slate-600{color:var(--color-slate-600)}.text-slate-800{color:var(--color-slate-800)}.text-success-500{color:var(--color-success-500)}.text-success-600{color:var(--color-success-600)}.text-success-700{color:var(--color-success-700)}.text-text-body-mid{color:var(--color-text-body-mid)}.text-text-body-mid\/70{color:#00000081}@supports (color:color-mix(in lab, red, red)){.text-text-body-mid\/70{color:color-mix(in oklab, var(--color-text-body-mid) 70%, transparent)}}.text-text-ink{color:var(--color-text-ink)}.text-text-muted{color:var(--color-text-muted)}.text-text-muted-soft{color:var(--color-text-muted-soft)}.text-text-muted\/70{color:#00000079}@supports (color:color-mix(in lab, red, red)){.text-text-muted\/70{color:color-mix(in oklab, var(--color-text-muted) 70%, transparent)}}.text-text-on-primary{color:var(--color-text-on-primary)}.text-warning-500{color:var(--color-warning-500)}.text-warning-600{color:var(--color-warning-600)}.text-warning-700{color:var(--color-warning-700)}.text-white{color:var(--color-white)}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.underline{text-decoration-line:underline}.placeholder-text-muted-soft::placeholder{color:var(--color-text-muted-soft)}.accent-accent-blue{accent-color:var(--color-accent-blue)}.opacity-0{opacity:0}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-80{opacity:.8}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[0_0_8px_rgba\(0\,0\,0\,0\.6\)\]{--tw-shadow:0 0 8px var(--tw-shadow-color,#0009);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-inner{--tw-shadow:inset 0 2px 4px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring,.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-accent-blue{--tw-ring-color:var(--color-accent-blue)}.ring-accent-blue\/20{--tw-ring-color:#00754a33}@supports (color:color-mix(in lab, red, red)){.ring-accent-blue\/20{--tw-ring-color:color-mix(in oklab, var(--color-accent-blue) 20%, transparent)}}.ring-accent-blue\/30{--tw-ring-color:#00754a4d}@supports (color:color-mix(in lab, red, red)){.ring-accent-blue\/30{--tw-ring-color:color-mix(in oklab, var(--color-accent-blue) 30%, transparent)}}.ring-accent-blue\/40{--tw-ring-color:#00754a66}@supports (color:color-mix(in lab, red, red)){.ring-accent-blue\/40{--tw-ring-color:color-mix(in oklab, var(--color-accent-blue) 40%, transparent)}}.ring-black{--tw-ring-color:var(--color-black)}.ring-black\/5{--tw-ring-color:#0000000d}@supports (color:color-mix(in lab, red, red)){.ring-black\/5{--tw-ring-color:color-mix(in oklab, var(--color-black) 5%, transparent)}}.ring-border-chart{--tw-ring-color:var(--color-border-chart)}.ring-border-default{--tw-ring-color:var(--color-border-default)}.ring-danger-100{--tw-ring-color:var(--color-danger-100)}.ring-danger-200{--tw-ring-color:var(--color-danger-200)}.ring-danger-500{--tw-ring-color:var(--color-danger-500)}.ring-danger-500\/20{--tw-ring-color:#c8201433}@supports (color:color-mix(in lab, red, red)){.ring-danger-500\/20{--tw-ring-color:color-mix(in oklab, var(--color-danger-500) 20%, transparent)}}.ring-info-100{--tw-ring-color:var(--color-info-100)}.ring-info-500{--tw-ring-color:var(--color-info-500)}.ring-info-500\/20{--tw-ring-color:#00754a33}@supports (color:color-mix(in lab, red, red)){.ring-info-500\/20{--tw-ring-color:color-mix(in oklab, var(--color-info-500) 20%, transparent)}}.ring-slate-300{--tw-ring-color:var(--color-slate-300)}.ring-slate-700{--tw-ring-color:var(--color-slate-700)}.ring-success-100{--tw-ring-color:var(--color-success-100)}.ring-success-200{--tw-ring-color:var(--color-success-200)}.ring-success-500{--tw-ring-color:var(--color-success-500)}.ring-success-500\/20{--tw-ring-color:#00754a33}@supports (color:color-mix(in lab, red, red)){.ring-success-500\/20{--tw-ring-color:color-mix(in oklab, var(--color-success-500) 20%, transparent)}}.ring-surface-200{--tw-ring-color:var(--color-surface-200)}.ring-warning-100{--tw-ring-color:var(--color-warning-100)}.ring-warning-200{--tw-ring-color:var(--color-warning-200)}.ring-warning-500{--tw-ring-color:var(--color-warning-500)}.ring-warning-500\/20{--tw-ring-color:#cba25833}@supports (color:color-mix(in lab, red, red)){.ring-warning-500\/20{--tw-ring-color:color-mix(in oklab, var(--color-warning-500) 20%, transparent)}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.drop-shadow-xs{--tw-drop-shadow-size:drop-shadow(0 1px 1px var(--tw-drop-shadow-color,#0000000d));--tw-drop-shadow:drop-shadow(var(--drop-shadow-xs));filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.invert{--tw-invert:invert(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter\!{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)!important}.backdrop-blur-xs{--tw-backdrop-blur:blur(var(--blur-xs));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-75{--tw-duration:75ms;transition-duration:75ms}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-500{--tw-duration:.5s;transition-duration:.5s}.duration-700{--tw-duration:.7s;transition-duration:.7s}.ease-in{--tw-ease:var(--ease-in);transition-timing-function:var(--ease-in)}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.ring-inset{--tw-ring-inset:inset}.group-open\:rounded-b-none:is(:where(.group):is([open],:popover-open,:open) *){border-bottom-right-radius:0;border-bottom-left-radius:0}@media (hover:hover){.group-hover\:block:is(:where(.group):hover *){display:block}.group-hover\:scale-105:is(:where(.group):hover *){--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x) var(--tw-scale-y)}.group-hover\:text-text-ink:is(:where(.group):hover *){color:var(--color-text-ink)}.group-hover\:underline:is(:where(.group):hover *){text-decoration-line:underline}.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}}.placeholder\:text-text-muted::placeholder{color:var(--color-text-muted)}.last\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}@media (hover:hover){.hover\:border-accent-blue:hover{border-color:var(--color-accent-blue)}.hover\:border-accent-blue\/60:hover{border-color:#00754a99}@supports (color:color-mix(in lab, red, red)){.hover\:border-accent-blue\/60:hover{border-color:color-mix(in oklab, var(--color-accent-blue) 60%, transparent)}}.hover\:border-danger:hover{border-color:var(--color-danger)}.hover\:border-danger-500:hover{border-color:var(--color-danger-500)}.hover\:bg-accent-blue\/10:hover{background-color:#00754a1a}@supports (color:color-mix(in lab, red, red)){.hover\:bg-accent-blue\/10:hover{background-color:color-mix(in oklab, var(--color-accent-blue) 10%, transparent)}}.hover\:bg-accent-blue\/20:hover{background-color:#00754a33}@supports (color:color-mix(in lab, red, red)){.hover\:bg-accent-blue\/20:hover{background-color:color-mix(in oklab, var(--color-accent-blue) 20%, transparent)}}.hover\:bg-accent-blue\/90:hover{background-color:#00754ae6}@supports (color:color-mix(in lab, red, red)){.hover\:bg-accent-blue\/90:hover{background-color:color-mix(in oklab, var(--color-accent-blue) 90%, transparent)}}.hover\:bg-danger-50:hover{background-color:var(--color-danger-50)}.hover\:bg-danger-700:hover{background-color:var(--color-danger-700)}.hover\:bg-danger\/10:hover{background-color:#c820141a}@supports (color:color-mix(in lab, red, red)){.hover\:bg-danger\/10:hover{background-color:color-mix(in oklab, var(--color-danger) 10%, transparent)}}.hover\:bg-surface-50:hover{background-color:var(--color-surface-50)}.hover\:bg-surface-100:hover{background-color:var(--color-surface-100)}.hover\:bg-surface-100\/50:hover{background-color:#dfdcd680}@supports (color:color-mix(in lab, red, red)){.hover\:bg-surface-100\/50:hover{background-color:color-mix(in oklab, var(--color-surface-100) 50%, transparent)}}.hover\:bg-surface-100\/60:hover{background-color:#dfdcd699}@supports (color:color-mix(in lab, red, red)){.hover\:bg-surface-100\/60:hover{background-color:color-mix(in oklab, var(--color-surface-100) 60%, transparent)}}.hover\:bg-surface-200:hover{background-color:var(--color-surface-200)}.hover\:text-accent-blue:hover{color:var(--color-accent-blue)}.hover\:text-danger:hover{color:var(--color-danger)}.hover\:text-danger-600:hover{color:var(--color-danger-600)}.hover\:text-text-ink:hover{color:var(--color-text-ink)}.hover\:text-text-muted:hover{color:var(--color-text-muted)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-90:hover{opacity:.9}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-md:hover{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}}.focus\:border-accent-blue:focus{border-color:var(--color-accent-blue)}.focus\:ring-1:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-accent-blue:focus{--tw-ring-color:var(--color-accent-blue)}.focus\:ring-success-500:focus{--tw-ring-color:var(--color-success-500)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}@media (width>=40rem){.sm\:flex{display:flex}.sm\:inline{display:inline}.sm\:inline-flex{display:inline-flex}.sm\:w-48{width:calc(var(--spacing) * 48)}.sm\:w-64{width:calc(var(--spacing) * 64)}.sm\:max-w-65{max-width:calc(var(--spacing) * 65)}.sm\:max-w-md{max-width:var(--container-md)}.sm\:flex-initial{flex:0 auto}.sm\:flex-none{flex:none}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:items-start{align-items:flex-start}.sm\:justify-between{justify-content:space-between}.sm\:gap-0{gap:0}.sm\:gap-3{gap:calc(var(--spacing) * 3)}.sm\:px-8{padding-inline:calc(var(--spacing) * 8)}.sm\:text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.sm\:text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}}@media (width>=48rem){.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}}@media (width>=64rem){.lg\:col-span-4{grid-column:span 4/span 4}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.lg\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.lg\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}}:where(.dark\:divide-border-default:where(.dark,.dark *)>:not(:last-child)){border-color:var(--color-border-default)}.dark\:border-accent-blue:where(.dark,.dark *){border-color:var(--color-accent-blue)}.dark\:border-border-default:where(.dark,.dark *){border-color:var(--color-border-default)}.dark\:border-border-default\/40:where(.dark,.dark *){border-color:#d6dbde66}@supports (color:color-mix(in lab, red, red)){.dark\:border-border-default\/40:where(.dark,.dark *){border-color:color-mix(in oklab, var(--color-border-default) 40%, transparent)}}.dark\:border-border-default\/50:where(.dark,.dark *){border-color:#d6dbde80}@supports (color:color-mix(in lab, red, red)){.dark\:border-border-default\/50:where(.dark,.dark *){border-color:color-mix(in oklab, var(--color-border-default) 50%, transparent)}}.dark\:border-border-subtle:where(.dark,.dark *){border-color:var(--color-border-subtle)}.dark\:border-danger-500\/30:where(.dark,.dark *){border-color:#c820144d}@supports (color:color-mix(in lab, red, red)){.dark\:border-danger-500\/30:where(.dark,.dark *){border-color:color-mix(in oklab, var(--color-danger-500) 30%, transparent)}}.dark\:border-info-500\/30:where(.dark,.dark *){border-color:#00754a4d}@supports (color:color-mix(in lab, red, red)){.dark\:border-info-500\/30:where(.dark,.dark *){border-color:color-mix(in oklab, var(--color-info-500) 30%, transparent)}}.dark\:border-slate-700\/60:where(.dark,.dark *){border-color:#31415899}@supports (color:color-mix(in lab, red, red)){.dark\:border-slate-700\/60:where(.dark,.dark *){border-color:color-mix(in oklab, var(--color-slate-700) 60%, transparent)}}.dark\:border-success-500\/30:where(.dark,.dark *){border-color:#00754a4d}@supports (color:color-mix(in lab, red, red)){.dark\:border-success-500\/30:where(.dark,.dark *){border-color:color-mix(in oklab, var(--color-success-500) 30%, transparent)}}.dark\:border-warning-500\/30:where(.dark,.dark *){border-color:#cba2584d}@supports (color:color-mix(in lab, red, red)){.dark\:border-warning-500\/30:where(.dark,.dark *){border-color:color-mix(in oklab, var(--color-warning-500) 30%, transparent)}}.dark\:border-t-slate-800:where(.dark,.dark *){border-top-color:var(--color-slate-800)}.dark\:bg-accent-blue:where(.dark,.dark *){background-color:var(--color-accent-blue)}.dark\:bg-accent-blue\/20:where(.dark,.dark *){background-color:#00754a33}@supports (color:color-mix(in lab, red, red)){.dark\:bg-accent-blue\/20:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-accent-blue) 20%, transparent)}}.dark\:bg-accent-blue\/25:where(.dark,.dark *){background-color:#00754a40}@supports (color:color-mix(in lab, red, red)){.dark\:bg-accent-blue\/25:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-accent-blue) 25%, transparent)}}.dark\:bg-accent-blue\/80:where(.dark,.dark *){background-color:#00754acc}@supports (color:color-mix(in lab, red, red)){.dark\:bg-accent-blue\/80:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-accent-blue) 80%, transparent)}}.dark\:bg-canvas:where(.dark,.dark *){background-color:var(--color-canvas)}.dark\:bg-canvas\/80:where(.dark,.dark *){background-color:#f2f0ebcc}@supports (color:color-mix(in lab, red, red)){.dark\:bg-canvas\/80:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-canvas) 80%, transparent)}}.dark\:bg-danger-50:where(.dark,.dark *){background-color:var(--color-danger-50)}.dark\:bg-danger-50\/20:where(.dark,.dark *){background-color:#fdf2f233}@supports (color:color-mix(in lab, red, red)){.dark\:bg-danger-50\/20:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-danger-50) 20%, transparent)}}.dark\:bg-danger-100:where(.dark,.dark *){background-color:var(--color-danger-100)}.dark\:bg-danger-500:where(.dark,.dark *){background-color:var(--color-danger-500)}.dark\:bg-danger-500\/10:where(.dark,.dark *){background-color:#c820141a}@supports (color:color-mix(in lab, red, red)){.dark\:bg-danger-500\/10:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-danger-500) 10%, transparent)}}.dark\:bg-danger-500\/20:where(.dark,.dark *){background-color:#c8201433}@supports (color:color-mix(in lab, red, red)){.dark\:bg-danger-500\/20:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-danger-500) 20%, transparent)}}.dark\:bg-info-50:where(.dark,.dark *){background-color:var(--color-info-50)}.dark\:bg-info-50\/20:where(.dark,.dark *){background-color:#f0f7f533}@supports (color:color-mix(in lab, red, red)){.dark\:bg-info-50\/20:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-info-50) 20%, transparent)}}.dark\:bg-info-100:where(.dark,.dark *){background-color:var(--color-info-100)}.dark\:bg-slate-300:where(.dark,.dark *){background-color:var(--color-slate-300)}.dark\:bg-slate-500:where(.dark,.dark *){background-color:var(--color-slate-500)}.dark\:bg-slate-700:where(.dark,.dark *){background-color:var(--color-slate-700)}.dark\:bg-slate-700\/60:where(.dark,.dark *){background-color:#31415899}@supports (color:color-mix(in lab, red, red)){.dark\:bg-slate-700\/60:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-slate-700) 60%, transparent)}}.dark\:bg-slate-800:where(.dark,.dark *){background-color:var(--color-slate-800)}.dark\:bg-slate-800\/40:where(.dark,.dark *){background-color:#1d293d66}@supports (color:color-mix(in lab, red, red)){.dark\:bg-slate-800\/40:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-slate-800) 40%, transparent)}}.dark\:bg-success-50:where(.dark,.dark *){background-color:var(--color-success-50)}.dark\:bg-success-50\/20:where(.dark,.dark *){background-color:#d4e9e233}@supports (color:color-mix(in lab, red, red)){.dark\:bg-success-50\/20:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-success-50) 20%, transparent)}}.dark\:bg-success-100:where(.dark,.dark *){background-color:var(--color-success-100)}.dark\:bg-success-500:where(.dark,.dark *){background-color:var(--color-success-500)}.dark\:bg-success-500\/10:where(.dark,.dark *){background-color:#00754a1a}@supports (color:color-mix(in lab, red, red)){.dark\:bg-success-500\/10:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-success-500) 10%, transparent)}}.dark\:bg-success-500\/20:where(.dark,.dark *){background-color:#00754a33}@supports (color:color-mix(in lab, red, red)){.dark\:bg-success-500\/20:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-success-500) 20%, transparent)}}.dark\:bg-surface-50:where(.dark,.dark *){background-color:var(--color-surface-50)}.dark\:bg-surface-100:where(.dark,.dark *){background-color:var(--color-surface-100)}.dark\:bg-surface-100\/30:where(.dark,.dark *){background-color:#dfdcd64d}@supports (color:color-mix(in lab, red, red)){.dark\:bg-surface-100\/30:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-surface-100) 30%, transparent)}}.dark\:bg-surface-100\/40:where(.dark,.dark *){background-color:#dfdcd666}@supports (color:color-mix(in lab, red, red)){.dark\:bg-surface-100\/40:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-surface-100) 40%, transparent)}}.dark\:bg-surface-100\/60:where(.dark,.dark *){background-color:#dfdcd699}@supports (color:color-mix(in lab, red, red)){.dark\:bg-surface-100\/60:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-surface-100) 60%, transparent)}}.dark\:bg-surface-200:where(.dark,.dark *){background-color:var(--color-surface-200)}.dark\:bg-surface-200\/20:where(.dark,.dark *){background-color:#d5d2cb33}@supports (color:color-mix(in lab, red, red)){.dark\:bg-surface-200\/20:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-surface-200) 20%, transparent)}}.dark\:bg-surface-200\/30:where(.dark,.dark *){background-color:#d5d2cb4d}@supports (color:color-mix(in lab, red, red)){.dark\:bg-surface-200\/30:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-surface-200) 30%, transparent)}}.dark\:bg-surface-200\/40:where(.dark,.dark *){background-color:#d5d2cb66}@supports (color:color-mix(in lab, red, red)){.dark\:bg-surface-200\/40:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-surface-200) 40%, transparent)}}.dark\:bg-surface-200\/50:where(.dark,.dark *){background-color:#d5d2cb80}@supports (color:color-mix(in lab, red, red)){.dark\:bg-surface-200\/50:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-surface-200) 50%, transparent)}}.dark\:bg-surface-950:where(.dark,.dark *){background-color:var(--color-surface-950)}.dark\:bg-warning-50:where(.dark,.dark *){background-color:var(--color-warning-50)}.dark\:bg-warning-50\/20:where(.dark,.dark *){background-color:#faf6ee33}@supports (color:color-mix(in lab, red, red)){.dark\:bg-warning-50\/20:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-warning-50) 20%, transparent)}}.dark\:bg-warning-100:where(.dark,.dark *){background-color:var(--color-warning-100)}.dark\:bg-warning-500:where(.dark,.dark *){background-color:var(--color-warning-500)}.dark\:bg-warning-500\/10:where(.dark,.dark *){background-color:#cba2581a}@supports (color:color-mix(in lab, red, red)){.dark\:bg-warning-500\/10:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-warning-500) 10%, transparent)}}.dark\:bg-warning-500\/20:where(.dark,.dark *){background-color:#cba25833}@supports (color:color-mix(in lab, red, red)){.dark\:bg-warning-500\/20:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-warning-500) 20%, transparent)}}.dark\:text-accent-blue:where(.dark,.dark *){color:var(--color-accent-blue)}.dark\:text-amber-200:where(.dark,.dark *){color:var(--color-amber-200)}.dark\:text-amber-300:where(.dark,.dark *){color:var(--color-amber-300)}.dark\:text-amber-400:where(.dark,.dark *){color:var(--color-amber-400)}.dark\:text-danger-500:where(.dark,.dark *){color:var(--color-danger-500)}.dark\:text-emerald-300:where(.dark,.dark *){color:var(--color-emerald-300)}.dark\:text-emerald-400:where(.dark,.dark *){color:var(--color-emerald-400)}.dark\:text-info-500:where(.dark,.dark *){color:var(--color-info-500)}.dark\:text-purple-400:where(.dark,.dark *){color:var(--color-purple-400)}.dark\:text-sky-300:where(.dark,.dark *){color:var(--color-sky-300)}.dark\:text-sky-400:where(.dark,.dark *){color:var(--color-sky-400)}.dark\:text-slate-200:where(.dark,.dark *){color:var(--color-slate-200)}.dark\:text-slate-400:where(.dark,.dark *){color:var(--color-slate-400)}.dark\:text-slate-500:where(.dark,.dark *){color:var(--color-slate-500)}.dark\:text-success-500:where(.dark,.dark *){color:var(--color-success-500)}.dark\:text-surface-900:where(.dark,.dark *){color:var(--color-surface-900)}.dark\:text-surface-950:where(.dark,.dark *){color:var(--color-surface-950)}.dark\:text-text-body-mid:where(.dark,.dark *){color:var(--color-text-body-mid)}.dark\:text-text-ink:where(.dark,.dark *){color:var(--color-text-ink)}.dark\:text-text-muted:where(.dark,.dark *){color:var(--color-text-muted)}.dark\:text-text-muted\/60:where(.dark,.dark *){color:#00000068}@supports (color:color-mix(in lab, red, red)){.dark\:text-text-muted\/60:where(.dark,.dark *){color:color-mix(in oklab, var(--color-text-muted) 60%, transparent)}}.dark\:text-text-muted\/70:where(.dark,.dark *){color:#00000079}@supports (color:color-mix(in lab, red, red)){.dark\:text-text-muted\/70:where(.dark,.dark *){color:color-mix(in oklab, var(--color-text-muted) 70%, transparent)}}.dark\:text-text-on-primary:where(.dark,.dark *){color:var(--color-text-on-primary)}.dark\:text-warning-500:where(.dark,.dark *){color:var(--color-warning-500)}.dark\:placeholder-text-muted:where(.dark,.dark *)::placeholder{color:var(--color-text-muted)}.dark\:ring-1:where(.dark,.dark *){--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.dark\:ring-accent-blue\/50:where(.dark,.dark *){--tw-ring-color:#00754a80}@supports (color:color-mix(in lab, red, red)){.dark\:ring-accent-blue\/50:where(.dark,.dark *){--tw-ring-color:color-mix(in oklab, var(--color-accent-blue) 50%, transparent)}}.dark\:ring-border-chart:where(.dark,.dark *){--tw-ring-color:var(--color-border-chart)}.dark\:ring-border-default:where(.dark,.dark *){--tw-ring-color:var(--color-border-default)}.dark\:ring-danger-500\/20:where(.dark,.dark *){--tw-ring-color:#c8201433}@supports (color:color-mix(in lab, red, red)){.dark\:ring-danger-500\/20:where(.dark,.dark *){--tw-ring-color:color-mix(in oklab, var(--color-danger-500) 20%, transparent)}}.dark\:ring-danger-500\/30:where(.dark,.dark *){--tw-ring-color:#c820144d}@supports (color:color-mix(in lab, red, red)){.dark\:ring-danger-500\/30:where(.dark,.dark *){--tw-ring-color:color-mix(in oklab, var(--color-danger-500) 30%, transparent)}}.dark\:ring-danger-500\/40:where(.dark,.dark *){--tw-ring-color:#c8201466}@supports (color:color-mix(in lab, red, red)){.dark\:ring-danger-500\/40:where(.dark,.dark *){--tw-ring-color:color-mix(in oklab, var(--color-danger-500) 40%, transparent)}}.dark\:ring-danger-600\/40:where(.dark,.dark *){--tw-ring-color:#a8110766}@supports (color:color-mix(in lab, red, red)){.dark\:ring-danger-600\/40:where(.dark,.dark *){--tw-ring-color:color-mix(in oklab, var(--color-danger-600) 40%, transparent)}}.dark\:ring-info-500\/40:where(.dark,.dark *){--tw-ring-color:#00754a66}@supports (color:color-mix(in lab, red, red)){.dark\:ring-info-500\/40:where(.dark,.dark *){--tw-ring-color:color-mix(in oklab, var(--color-info-500) 40%, transparent)}}.dark\:ring-info-600\/40:where(.dark,.dark *){--tw-ring-color:#00624166}@supports (color:color-mix(in lab, red, red)){.dark\:ring-info-600\/40:where(.dark,.dark *){--tw-ring-color:color-mix(in oklab, var(--color-info-600) 40%, transparent)}}.dark\:ring-slate-600:where(.dark,.dark *){--tw-ring-color:var(--color-slate-600)}.dark\:ring-success-500\/20:where(.dark,.dark *){--tw-ring-color:#00754a33}@supports (color:color-mix(in lab, red, red)){.dark\:ring-success-500\/20:where(.dark,.dark *){--tw-ring-color:color-mix(in oklab, var(--color-success-500) 20%, transparent)}}.dark\:ring-success-500\/30:where(.dark,.dark *){--tw-ring-color:#00754a4d}@supports (color:color-mix(in lab, red, red)){.dark\:ring-success-500\/30:where(.dark,.dark *){--tw-ring-color:color-mix(in oklab, var(--color-success-500) 30%, transparent)}}.dark\:ring-success-500\/40:where(.dark,.dark *){--tw-ring-color:#00754a66}@supports (color:color-mix(in lab, red, red)){.dark\:ring-success-500\/40:where(.dark,.dark *){--tw-ring-color:color-mix(in oklab, var(--color-success-500) 40%, transparent)}}.dark\:ring-success-600\/40:where(.dark,.dark *){--tw-ring-color:#00624166}@supports (color:color-mix(in lab, red, red)){.dark\:ring-success-600\/40:where(.dark,.dark *){--tw-ring-color:color-mix(in oklab, var(--color-success-600) 40%, transparent)}}.dark\:ring-surface-200:where(.dark,.dark *){--tw-ring-color:var(--color-surface-200)}.dark\:ring-warning-500\/20:where(.dark,.dark *){--tw-ring-color:#cba25833}@supports (color:color-mix(in lab, red, red)){.dark\:ring-warning-500\/20:where(.dark,.dark *){--tw-ring-color:color-mix(in oklab, var(--color-warning-500) 20%, transparent)}}.dark\:ring-warning-500\/30:where(.dark,.dark *){--tw-ring-color:#cba2584d}@supports (color:color-mix(in lab, red, red)){.dark\:ring-warning-500\/30:where(.dark,.dark *){--tw-ring-color:color-mix(in oklab, var(--color-warning-500) 30%, transparent)}}.dark\:ring-warning-500\/40:where(.dark,.dark *){--tw-ring-color:#cba25866}@supports (color:color-mix(in lab, red, red)){.dark\:ring-warning-500\/40:where(.dark,.dark *){--tw-ring-color:color-mix(in oklab, var(--color-warning-500) 40%, transparent)}}.dark\:ring-warning-600\/40:where(.dark,.dark *){--tw-ring-color:#6d4c0f66}@supports (color:color-mix(in lab, red, red)){.dark\:ring-warning-600\/40:where(.dark,.dark *){--tw-ring-color:color-mix(in oklab, var(--color-warning-600) 40%, transparent)}}.dark\:ring-white\/5:where(.dark,.dark *){--tw-ring-color:#ffffff0d}@supports (color:color-mix(in lab, red, red)){.dark\:ring-white\/5:where(.dark,.dark *){--tw-ring-color:color-mix(in oklab, var(--color-white) 5%, transparent)}}.dark\:ring-white\/10:where(.dark,.dark *){--tw-ring-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.dark\:ring-white\/10:where(.dark,.dark *){--tw-ring-color:color-mix(in oklab, var(--color-white) 10%, transparent)}}@media (hover:hover){.dark\:group-hover\:text-text-on-primary:where(.dark,.dark *):is(:where(.group):hover *){color:var(--color-text-on-primary)}.dark\:hover\:border-accent-blue:where(.dark,.dark *):hover{border-color:var(--color-accent-blue)}.dark\:hover\:border-danger:where(.dark,.dark *):hover{border-color:var(--color-danger)}.dark\:hover\:bg-accent-blue\/10:where(.dark,.dark *):hover{background-color:#00754a1a}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-accent-blue\/10:where(.dark,.dark *):hover{background-color:color-mix(in oklab, var(--color-accent-blue) 10%, transparent)}}.dark\:hover\:bg-danger-500\/20:where(.dark,.dark *):hover{background-color:#c8201433}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-danger-500\/20:where(.dark,.dark *):hover{background-color:color-mix(in oklab, var(--color-danger-500) 20%, transparent)}}.dark\:hover\:bg-danger\/10:where(.dark,.dark *):hover{background-color:#c820141a}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-danger\/10:where(.dark,.dark *):hover{background-color:color-mix(in oklab, var(--color-danger) 10%, transparent)}}.dark\:hover\:bg-surface-100:where(.dark,.dark *):hover{background-color:var(--color-surface-100)}.dark\:hover\:bg-surface-200:where(.dark,.dark *):hover{background-color:var(--color-surface-200)}.dark\:hover\:bg-surface-200\/30:where(.dark,.dark *):hover{background-color:#d5d2cb4d}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-surface-200\/30:where(.dark,.dark *):hover{background-color:color-mix(in oklab, var(--color-surface-200) 30%, transparent)}}.dark\:hover\:bg-surface-200\/40:where(.dark,.dark *):hover{background-color:#d5d2cb66}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-surface-200\/40:where(.dark,.dark *):hover{background-color:color-mix(in oklab, var(--color-surface-200) 40%, transparent)}}.dark\:hover\:bg-surface-200\/50:where(.dark,.dark *):hover{background-color:#d5d2cb80}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-surface-200\/50:where(.dark,.dark *):hover{background-color:color-mix(in oklab, var(--color-surface-200) 50%, transparent)}}.dark\:hover\:text-accent-blue:where(.dark,.dark *):hover{color:var(--color-accent-blue)}.dark\:hover\:text-danger:where(.dark,.dark *):hover{color:var(--color-danger)}.dark\:hover\:text-text-on-primary:where(.dark,.dark *):hover{color:var(--color-text-on-primary)}}}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}html.dark{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}html.dark,html[data-theme=cafe].dark{--color-ink:#fff;--color-ink-strong:#fff;--color-canvas:#142622;--color-surface-50:#1e3932;--color-surface-100:#25463e;--color-surface-200:#2b5148;--color-surface-700:#d4e9e2;--color-surface-800:#edebe9;--color-surface-900:#f2f0eb;--color-surface-950:#0d1a17;--color-text-ink:#fff;--color-text-ink-strong:#fff;--color-text-body:#ffffffeb;--color-text-body-mid:#ffffffd6;--color-text-muted:#fffc;--color-text-muted-soft:#ffffffc2;--color-text-on-primary:#fff;--color-border-default:#2b5148;--color-border-subtle:#213e37;--color-border-chart:#385d54;--color-border-active:#d4e9e2;--color-success:#4ade80;--color-success-50:#112922;--color-success-100:#183a30;--color-success-500:#4ade80;--color-success-600:#22c55e;--color-success-700:#16a34a;--color-danger:#fca5a5;--color-danger-50:#361210;--color-danger-100:#4a1917;--color-danger-500:#fca5a5;--color-danger-600:#ef4444;--color-danger-700:#f87171;--color-warning:#fcd34d;--color-warning-50:#332714;--color-warning-100:#47371c;--color-warning-500:#fcd34d;--color-warning-600:#fbbf24;--color-warning-700:#f59e0b;--color-info:#38bdf8;--color-info-50:#112922;--color-info-100:#183a30;--color-info-500:#38bdf8;--color-info-600:#0284c7;--color-info-700:#0369a1;--color-accent-cafe:#4ade80;--color-accent-green:#22c55e;--color-accent-house:var(--color-warning-500);--color-accent-gold:#fcd34d;--color-accent-pink:#f472b6;--color-accent-blue:#4ade80;--color-accent-blue-deep:#22c55e;--color-accent-blue-info:#4ade80;--color-accent-orange:#fb923c;--color-accent-yellow:#fcd34d;--color-accent-red:#fca5a5}html[data-theme=concept]{--color-ink:#0075de;--color-ink-strong:#005bab;--color-canvas:#f6f5f4;--color-surface-50:#fff;--color-surface-100:#f0eee9;--color-surface-200:#e6e4df;--color-surface-700:#615d59;--color-surface-800:#31302e;--color-surface-900:#213183;--color-surface-950:#19235d;--color-text-ink:#000;--color-text-ink-strong:#000;--color-text-body:#000;--color-text-body-mid:#31302e;--color-text-muted:#615d59;--color-text-muted-soft:#a39e98;--color-text-on-primary:#fff;--color-border-default:#e6e6e6;--color-border-subtle:#f0f0f0;--color-border-chart:#d0d0d0;--color-border-active:#31302e;--color-success:#1aae39;--color-success-50:#eaf8ed;--color-success-100:#c9f0d1;--color-success-200:#93e2a2;--color-success-500:#1aae39;--color-success-600:#15932f;--color-success-700:#107524;--color-danger:#e03e3e;--color-danger-50:#fdf2f2;--color-danger-100:#fbe8e8;--color-danger-200:#f7c5c5;--color-danger-500:#e03e3e;--color-danger-600:#c42b2b;--color-danger-700:#9e1c1c;--color-warning:#d97706;--color-warning-50:#fffbeb;--color-warning-100:#fef3c7;--color-warning-200:#fde68a;--color-warning-500:#d97706;--color-warning-600:#b45309;--color-warning-700:#92400e;--color-info:#0075de;--color-info-50:#edf6fd;--color-info-100:#d4e8fa;--color-info-500:#0075de;--color-info-600:#005bab;--color-info-700:#004582;--color-accent-cafe:#0075de;--color-accent-green:#1aae39;--color-accent-house:#213183;--color-accent-gold:#dd5b00;--color-accent-pink:#ff64c8;--color-accent-blue:#0075de;--color-accent-blue-deep:#005bab;--color-accent-blue-info:#62aef0;--color-accent-orange:#dd5b00;--color-accent-yellow:#dd5b00;--color-accent-red:#e03e3e}html[data-theme=concept].dark,[data-theme=concept] .dark{--color-ink:#62aef0;--color-ink-strong:#fff;--color-canvas:#191b22;--color-surface-50:#222530;--color-surface-100:#2b2f3d;--color-surface-200:#363b4d;--color-surface-700:#a39e98;--color-surface-800:#f0eee9;--color-surface-900:#f6f5f4;--color-surface-950:#12141a;--color-text-ink:#fff;--color-text-ink-strong:#fff;--color-text-body:#ffffffeb;--color-text-body-mid:#ffffffd6;--color-text-muted:#ffffffbf;--color-text-muted-soft:#ffffffa6;--color-text-on-primary:#fff;--color-border-default:#363b4d;--color-border-subtle:#2b2f3d;--color-border-chart:#484f67;--color-border-active:#f0eee9;--color-success:#2aae44;--color-success-50:#112918;--color-success-100:#193c23;--color-success-500:#2aae44;--color-success-600:#219337;--color-success-700:#18752b;--color-danger:#ff64c8;--color-danger-50:#38122c;--color-danger-100:#521841;--color-danger-500:#ff64c8;--color-danger-600:#e04bb0;--color-danger-700:#bf3494;--color-warning:#f56c18;--color-warning-50:#36190a;--color-warning-100:#4a2410;--color-warning-500:#f56c18;--color-warning-600:#d4560b;--color-warning-700:#b04305;--color-info:#62aef0;--color-info-50:#132438;--color-info-100:#1a324d;--color-info-500:#62aef0;--color-info-600:#3b95e6;--color-info-700:#1d7bcf;--color-accent-cafe:#62aef0;--color-accent-green:#2aae44;--color-accent-house:#d6b6f6;--color-accent-gold:#f56c18;--color-accent-pink:#ff64c8;--color-accent-blue:#62aef0;--color-accent-blue-deep:#3b95e6;--color-accent-blue-info:#62aef0;--color-accent-orange:#f56c18;--color-accent-yellow:#f56c18;--color-accent-red:#ff64c8}html[data-theme=sentinel],[data-theme=sentinel]{--color-ink:#150f23;--color-ink-strong:#1f1633;--color-canvas:#fff;--color-surface-50:#f8f7fa;--color-surface-100:#f0edf5;--color-surface-200:#e5e1eb;--color-surface-700:#422082;--color-surface-800:#1f1633;--color-surface-900:#150f23;--color-surface-950:#0e0918;--color-text-ink:#1f1633;--color-text-ink-strong:#150f23;--color-text-body:#1f1633eb;--color-text-body-mid:#1f1633bf;--color-text-muted:#1f1633a6;--color-text-muted-soft:#1f16338c;--color-text-on-primary:#fff;--color-border-default:#cfcfdb;--color-border-subtle:#e5e7eb;--color-border-chart:#b2b2c4;--color-border-active:#1f1633;--color-success:#709600;--color-success-50:#f4fce8;--color-success-100:#e6f7c6;--color-success-200:#c2ef4e;--color-success-500:#709600;--color-success-600:#587700;--color-success-700:#425a00;--color-danger:#d93d75;--color-danger-50:#fef0f5;--color-danger-100:#fce0ec;--color-danger-200:#fa7faa;--color-danger-500:#d93d75;--color-danger-600:#b82b5c;--color-danger-700:#941d46;--color-warning:#d97706;--color-warning-50:#fffbe6;--color-warning-100:#fef3c7;--color-warning-200:#fde68a;--color-warning-500:#d97706;--color-warning-600:#b45309;--color-warning-700:#78350f;--color-info:#6a5fc1;--color-info-50:#f3f2fa;--color-info-100:#e4e1f5;--color-info-500:#6a5fc1;--color-info-600:#5449aa;--color-info-700:#422082;--color-accent-cafe:#150f23;--color-accent-green:#709600;--color-accent-house:#1f1633;--color-accent-gold:#d97706;--color-accent-pink:#fa7faa;--color-accent-blue:#6a5fc1;--color-accent-blue-deep:#422082;--color-accent-blue-info:#6a5fc1;--color-accent-orange:#d97706;--color-accent-yellow:#c2ef4e;--color-accent-red:#d93d75}html[data-theme=sentinel].dark,[data-theme=sentinel] .dark{--color-ink:#c2ef4e;--color-ink-strong:#fff;--color-canvas:#1f1633;--color-surface-50:#150f23;--color-surface-100:#2a1f42;--color-surface-200:#362d59;--color-surface-700:#79628c;--color-surface-800:#a89bb8;--color-surface-900:#e5e1eb;--color-surface-950:#0f0a1a;--color-text-ink:#fff;--color-text-ink-strong:#fff;--color-text-body:#ffffffeb;--color-text-body-mid:#ffffffc7;--color-text-muted:#ffffffb8;--color-text-muted-soft:#ffffff8c;--color-text-on-primary:#fff;--color-border-default:#362d59;--color-border-subtle:#2a1f42;--color-border-chart:#544975;--color-border-active:#e5e1eb;--color-success:#c2ef4e;--color-success-50:#182206;--color-success-100:#26380a;--color-success-500:#c2ef4e;--color-success-600:#a9d936;--color-success-700:#8ec41f;--color-danger:#fa7faa;--color-danger-50:#380f20;--color-danger-100:#521730;--color-danger-500:#fa7faa;--color-danger-600:#f85590;--color-danger-700:#f52b75;--color-warning:#fbbf24;--color-warning-50:#382707;--color-warning-100:#523a0b;--color-warning-500:#fbbf24;--color-warning-600:#f59e0b;--color-warning-700:#d97706;--color-info:#9d93eb;--color-info-50:#1c173d;--color-info-100:#292257;--color-info-500:#9d93eb;--color-info-600:#8174e5;--color-info-700:#6a5fc1;--color-accent-cafe:#c2ef4e;--color-accent-green:#c2ef4e;--color-accent-house:#79628c;--color-accent-gold:#fbbf24;--color-accent-pink:#fa7faa;--color-accent-blue:#9d93eb;--color-accent-blue-deep:#6a5fc1;--color-accent-blue-info:#9d93eb;--color-accent-orange:#fbbf24;--color-accent-yellow:#c2ef4e;--color-accent-red:#fa7faa}body{background-color:var(--color-canvas);font-family:var(--font-sans);color:var(--color-text-ink);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;padding:0}#root{min-height:100vh}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background-color:#00000047;border-radius:9999px}::-webkit-scrollbar-thumb:hover{background-color:#00000073}.dark ::-webkit-scrollbar-thumb{background-color:#ffffff47}html.dark ::-webkit-scrollbar-thumb{background-color:#ffffff47}pre::-webkit-scrollbar-thumb{background-color:#ffffff47}.dark ::-webkit-scrollbar-thumb:hover{background-color:#ffffff73}html.dark ::-webkit-scrollbar-thumb:hover{background-color:#ffffff73}pre::-webkit-scrollbar-thumb:hover{background-color:#ffffff73}pre,code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.recharts-rectangle.recharts-tooltip-cursor,.recharts-tooltip-cursor{fill:#0000000d!important;stroke:#0000!important}.dark .recharts-rectangle.recharts-tooltip-cursor,.dark .recharts-tooltip-cursor{fill:#ffffff0f!important;stroke:#0000!important}input[type=range].onion-opacity-slider{background:0 0}input[type=range].onion-opacity-slider::-webkit-slider-runnable-track{background-color:var(--color-border-default);border-radius:9999px;height:6px}input[type=range].onion-opacity-slider::-moz-range-track{background-color:var(--color-border-default);border-radius:9999px;height:6px}.dark input[type=range].onion-opacity-slider::-webkit-slider-runnable-track{background-color:#ffffff4d}.dark input[type=range].onion-opacity-slider::-moz-range-track{background-color:#ffffff4d}input[type=range].onion-opacity-slider::-webkit-slider-thumb{margin-top:-5px}input[type=date]::-webkit-datetime-edit{text-transform:uppercase}input[type=date]::-webkit-datetime-edit-fields-wrapper{text-transform:uppercase}input[type=date]::-webkit-datetime-edit-text{text-transform:uppercase}input[type=date]::-webkit-datetime-edit-month-field{text-transform:uppercase}input[type=date]::-webkit-datetime-edit-day-field{text-transform:uppercase}input[type=date]::-webkit-datetime-edit-year-field{text-transform:uppercase}input[type=date]::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.85;transition:opacity .2s}input[type=date]::-webkit-calendar-picker-indicator:hover{opacity:1}.dark input[type=date]::-webkit-calendar-picker-indicator{filter:invert(.9)brightness(1.2)}html.dark input[type=date]::-webkit-calendar-picker-indicator{filter:invert(.9)brightness(1.2)}[data-theme] .dark input[type=date]::-webkit-calendar-picker-indicator{filter:invert(.9)brightness(1.2)}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}
100
100
  /*$vite$:1*/</style>
101
101
  </head>
102
102
  <body>