agentic-ui-libs 0.0.8 → 0.0.9

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.js CHANGED
@@ -21813,10 +21813,11 @@ const Da = ({
21813
21813
  }
21814
21814
  );
21815
21815
  }
21816
+ const h = `${window.location.origin}/agenticai/assets/agent-avatars/agent1.svg`;
21816
21817
  return /* @__PURE__ */ b.jsx(
21817
21818
  "img",
21818
21819
  {
21819
- src: "https://api.dicebear.com/7.x/avataaars/svg?seed=default-agent&backgroundColor=b6e3f4,c0aede,d1d4f9&backgroundType=solid",
21820
+ src: h,
21820
21821
  alt: a,
21821
21822
  className: `${f} rounded-full object-cover ${n}`
21822
21823
  }
@@ -206,7 +206,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
206
206
  <path d="M6 5.5H3M4 7.5H3M7 3.5H3M9 3.4V8.6C9 9.44008 9 9.86012 8.83651 10.181C8.6927 10.4632 8.46323 10.6927 8.18099 10.8365C7.86012 11 7.44008 11 6.6 11H3.4C2.55992 11 2.13988 11 1.81901 10.8365C1.53677 10.6927 1.3073 10.4632 1.16349 10.181C1 9.86012 1 9.44008 1 8.6V3.4C1 2.55992 1 2.13988 1.16349 1.81901C1.3073 1.53677 1.53677 1.3073 1.81901 1.16349C2.13988 1 2.55992 1 3.4 1H6.6C7.44008 1 7.86012 1 8.18099 1.16349C8.46323 1.3073 8.6927 1.53677 8.83651 1.81901C9 2.13988 9 2.55992 9 3.4Z" stroke="#7A5AF8" stroke-width="1.33" stroke-linecap="round" stroke-linejoin="round"/>
207
207
  </svg>`,MCP:`<svg width="14" height="14" viewBox="0 0 22 23" fill="none" xmlns="http://www.w3.org/2000/svg">
208
208
  <path d="M1.8125 10.7455L10.647 1.91124C11.8411 0.717087 13.7773 0.717087 14.9714 1.91124C16.1655 3.10539 16.1655 5.0415 14.9714 6.23565M14.9714 6.23565L8.29911 12.9077M14.9714 6.23565C16.1655 5.0415 18.1018 5.0415 19.2958 6.23565C20.4899 7.4298 20.4899 9.36593 19.2958 10.56L11.7665 18.0893C11.3443 18.5115 11.3443 19.1961 11.7665 19.6182L13.164 21.0158M16.9479 8.58236L10.2756 15.2547C9.08153 16.4488 7.1453 16.4488 5.95123 15.2547C4.75716 14.0605 4.75716 12.1244 5.95123 10.9303L12.6234 4.25814" stroke="#101828" stroke-width="2.00016" stroke-linecap="round" stroke-linejoin="round"/>
209
- </svg>`},cW=(e,t)=>{const r=e.toLowerCase();if(r.includes("code"))return Lt.inlineTool;if(r.includes("workflow")||r.includes("library"))return Lt.toolLibrary;if(r.includes("knowledge"))return Lt.KNOWLEDGE;if(r.includes("mcp"))return Lt.MCP;if(Lt[e])return Lt[e];const n=t.toLowerCase();return n.includes("code")||n.includes("inline")||n.includes("calculate")?Lt.inlineTool:n.includes("library")||n.includes("workflow")?Lt.toolLibrary:n.includes("knowledge")||n.includes("document")||n.includes("fetch")?Lt.KNOWLEDGE:n.includes("mcp")||n.includes("protocol")?Lt.MCP:Lt.toolLibrary},sf=({icon:e,iconSource:t="agent",size:r="small",className:n="",name:a="Unknown",toolType:i})=>{const[o,s]=S.useState(!1),[l,u]=S.useState(!1),c=oW(e),f=uW[r];if(c!=null&&c.name&&c.name!=="fallback"&&!o){const y=lW(c,t),p=()=>{s(!0)};return b.jsx("img",{src:y,alt:a,className:`${f} rounded-full object-cover ${n}`,onError:p})}if(o&&!l&&t==="agent"){const y=`${window.location.origin}/agenticai/assets/agent-avatars/agent1.svg`,p=()=>{u(!0)};return b.jsx("img",{src:y,alt:a,className:`${f} rounded-full object-cover ${n}`,onError:p})}const d=c||sW(a,t);if(t==="workflowtool"){const y=i||d.type||"toolLibrary",p=cW(y,a);return b.jsx("div",{className:`${f} rounded-full flex items-center justify-center bg-gray-100 ${n}`,children:b.jsx("div",{dangerouslySetInnerHTML:{__html:p}})})}return b.jsx("img",{src:"https://api.dicebear.com/7.x/avataaars/svg?seed=default-agent&backgroundColor=b6e3f4,c0aede,d1d4f9&backgroundType=solid",alt:a,className:`${f} rounded-full object-cover ${n}`})},yb=({data:e,className:t})=>{const[r,n]=S.useState(5),a=()=>{n(o=>Math.min(o+10,e.length))},i=o=>o>=1e3?`${Math.floor(o/1e3)}k`:o.toString();return b.jsxs("div",{className:ue("w-full",t),children:[b.jsxs("div",{className:"grid grid-cols-4 gap-4 px-4 py-3 bg-gray-50 border-b border-gray-200 text-sm font-medium text-gray-700",children:[b.jsx("div",{className:"text-left",children:"Name"}),b.jsx("div",{className:"text-right",children:"Runs"}),b.jsx("div",{className:"text-right",children:"Response Time"}),b.jsx("div",{className:"text-right",children:"Tokens"})]}),b.jsx("div",{className:"divide-y divide-gray-100",children:e.slice(0,r).map((o,s)=>b.jsxs("div",{className:"grid grid-cols-4 gap-4 px-4 py-4 hover:bg-gray-50 transition-colors duration-150",children:[b.jsxs("div",{className:"flex items-center space-x-3",children:[b.jsx("div",{className:"flex-shrink-0",children:b.jsx(sf,{icon:o.icon,iconSource:"agent",size:"small",name:o.name||"Unknown Agent"})}),b.jsx("div",{className:"min-w-0 flex-1",children:b.jsx("div",{className:"text-sm font-medium text-gray-900 truncate",children:o.name||"Unknown Agent"})})]}),b.jsx("div",{className:"text-right text-sm text-gray-900",children:o.runs?i(o.runs):"-"}),b.jsx("div",{className:"text-right text-sm text-gray-900",children:o.responseTime||"-"}),b.jsx("div",{className:"text-right text-sm text-gray-900",children:o.tokens?i(o.tokens):"-"})]},o.id||s))}),r<e.length&&b.jsx("div",{className:"flex justify-center py-6",children:b.jsx("button",{onClick:a,className:"px-4 py-2 text-sm font-medium text-gray-700 bg-white border border-gray-300 rounded-md hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 transition-colors duration-150",children:"Load 10 more"})})]})},fW=e=>{switch(e.toLowerCase()){case"code tool":case"inlinetool":return"bg-orange-100 text-orange-800 border-orange-200";case"workflow tool":case"toollibrary":return"bg-blue-100 text-blue-800 border-blue-200";case"mcp tool":case"mcp":return"bg-green-100 text-green-800 border-green-200";case"knowledge":case"knowledge tool":return"bg-purple-100 text-purple-800 border-purple-200";default:return"bg-gray-100 text-gray-800 border-gray-200"}},mb=({data:e,className:t})=>{const[r,n]=S.useState(5),a=()=>{n(o=>Math.min(o+10,e.length))},i=o=>o>=1e3?`${Math.floor(o/1e3)}k`:o.toString();return b.jsxs("div",{className:ue("w-full",t),children:[b.jsxs("div",{className:"grid grid-cols-4 gap-4 px-4 py-3 bg-gray-50 border-b border-gray-200 text-sm font-medium text-gray-700",children:[b.jsx("div",{className:"text-left",children:"Name"}),b.jsx("div",{className:"text-left",children:"Type"}),b.jsx("div",{className:"text-right",children:"Runs"}),b.jsx("div",{className:"text-right",children:"Response Time"})]}),b.jsx("div",{className:"divide-y divide-gray-100",children:e.slice(0,r).map((o,s)=>b.jsxs("div",{className:"grid grid-cols-4 gap-4 px-4 py-4 hover:bg-gray-50 transition-colors duration-150",children:[b.jsxs("div",{className:"flex items-center space-x-3",children:[b.jsx("div",{className:"flex-shrink-0",children:b.jsx(sf,{icon:o.icon,iconSource:"workflowtool",size:"small",name:o.name||"Unknown Tool",toolType:o.type})}),b.jsx("div",{className:"min-w-0 flex-1",children:b.jsx("div",{className:"text-sm font-medium text-gray-900 truncate",children:o.name||"Unknown Tool"})})]}),b.jsx("div",{className:"flex items-center",children:b.jsx("span",{className:ue("inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium border",fW(o.type||"Default")),children:o.type||"Tool"})}),b.jsx("div",{className:"text-right text-sm text-gray-900",children:o.runs?i(o.runs):"-"}),b.jsx("div",{className:"text-right text-sm text-gray-900",children:o.responseTime||"-"})]},o.id||s))}),r<e.length&&b.jsx("div",{className:"flex justify-center py-6",children:b.jsx("button",{onClick:a,className:"px-4 py-2 text-sm font-medium text-gray-700 bg-white border border-gray-300 rounded-md hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 transition-colors duration-150",children:"Load 10 more"})})]})},dW=e=>{const t=e.toLowerCase();return t.includes("gpt")||t.includes("openai")?b.jsx("div",{className:"w-6 h-6 rounded-full bg-gray-900 flex items-center justify-center",children:b.jsx("span",{className:"text-white text-xs font-bold",children:"⚡"})}):t.includes("claude")||t.includes("anthropic")?b.jsx("div",{className:"w-6 h-6 rounded-full bg-orange-500 flex items-center justify-center",children:b.jsx("span",{className:"text-white text-xs font-bold",children:"A"})}):t.includes("gemini")||t.includes("google")?b.jsx("div",{className:"w-6 h-6 rounded-full bg-blue-500 flex items-center justify-center",children:b.jsx("span",{className:"text-white text-xs font-bold",children:"G"})}):t.includes("llama")||t.includes("meta")?b.jsx("div",{className:"w-6 h-6 rounded-full bg-blue-600 flex items-center justify-center",children:b.jsx("span",{className:"text-white text-xs font-bold",children:"M"})}):b.jsx("div",{className:"w-6 h-6 rounded-full bg-gray-500 flex items-center justify-center",children:b.jsx("span",{className:"text-white text-xs font-bold",children:"🤖"})})},gb=({data:e,className:t})=>{const[r,n]=S.useState(5),a=()=>{n(o=>Math.min(o+10,e.length))},i=o=>o>=1e3?`${Math.floor(o/1e3)}k`:o.toString();return b.jsxs("div",{className:ue("w-full",t),children:[b.jsxs("div",{className:"grid grid-cols-4 gap-4 px-4 py-3 bg-gray-50 border-b border-gray-200 text-sm font-medium text-gray-700",children:[b.jsx("div",{className:"text-left",children:"Model Name"}),b.jsx("div",{className:"text-right",children:"Runs"}),b.jsx("div",{className:"text-right",children:"Tokens"}),b.jsx("div",{className:"text-right",children:"Response Time"})]}),b.jsx("div",{className:"divide-y divide-gray-100",children:e.slice(0,r).map((o,s)=>b.jsxs("div",{className:"grid grid-cols-4 gap-4 px-4 py-4 hover:bg-gray-50 transition-colors duration-150",children:[b.jsxs("div",{className:"flex items-center space-x-3",children:[b.jsx("div",{className:"flex-shrink-0",children:dW(o.name||"Unknown")}),b.jsx("div",{className:"min-w-0 flex-1",children:b.jsx("div",{className:"text-sm font-medium text-gray-900 truncate",children:o.name||"Unknown Model"})})]}),b.jsx("div",{className:"text-right text-sm text-gray-900",children:i(o.runs||0)}),b.jsx("div",{className:"text-right text-sm text-gray-900",children:i(o.tokens||0)}),b.jsx("div",{className:"text-right text-sm text-gray-900",children:o.responseTime})]},o.id||s))}),r<e.length&&b.jsx("div",{className:"flex justify-center py-6",children:b.jsx("button",{onClick:a,className:"px-4 py-2 text-sm font-medium text-gray-700 bg-white border border-gray-300 rounded-md hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 transition-colors duration-150",children:"Load 10 more"})})]})},bb=({config:e,className:t,isLoading:r,context:n})=>{const{type:a,chart:i,table:o,layout:s="vertical"}=e,l=()=>i?(console.log("ViewRenderer - Chart config:",i),console.log("ViewRenderer - Chart data:",i.data),console.log("ViewRenderer - Context:",n),b.jsx("div",{className:"flex-1",children:b.jsx(pb,{config:i,isLoading:r})})):null,u=()=>o?(n==null?void 0:n.metricType)==="agentRuns"?b.jsx("div",{className:"flex-1 min-h-[380px]",children:b.jsx(yb,{data:o.data})}):(n==null?void 0:n.metricType)==="toolRuns"?b.jsx("div",{className:"flex-1 min-h-[380px]",children:b.jsx(mb,{data:o.data})}):(n==null?void 0:n.metricType)==="modelRuns"?b.jsx("div",{className:"flex-1 min-h-[380px]",children:b.jsx(gb,{data:o.data})}):b.jsx("div",{className:"flex-1 min-h-[380px]",children:b.jsx(vb,{config:o})}):null,c=()=>{switch(a){case"chart":return l();case"table":return u();case"mixed":return b.jsxs("div",{className:ue("flex gap-6",s==="horizontal"?"flex-row":"flex-col"),children:[l(),u()]});default:return b.jsxs("div",{className:"p-4 text-center text-gray-500",children:["Unsupported view type: ",a]})}};return b.jsx("div",{className:ue("w-full",t),children:c()})},js=({options:e,value:t,placeholder:r="Select an option",onChange:n,className:a,disabled:i=!1})=>{const[o,s]=S.useState(!1),[l,u]=S.useState(t||""),c=S.useRef(null),f=e.find(y=>y.value===l);S.useEffect(()=>{const y=p=>{c.current&&!c.current.contains(p.target)&&s(!1)};return o&&document.addEventListener("mousedown",y),()=>{document.removeEventListener("mousedown",y)}},[o]);const d=y=>{i||(u(y),s(!1),n==null||n(y))},h=()=>{i||s(!o)};return b.jsxs("div",{ref:c,className:ue("relative min-w-[200px]",a),children:[b.jsxs("button",{type:"button",className:ue("flex h-10 w-full min-w-[200px] items-center justify-between rounded-md border border-gray-300 bg-white px-3 py-2 text-sm shadow-sm hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500 disabled:cursor-not-allowed disabled:opacity-50 transition-colors",a),onClick:h,disabled:i,children:[b.jsx("span",{className:ue("truncate",!f&&"text-gray-500"),children:f?f.label:r}),b.jsx(Ei,{className:ue("h-4 w-4 text-gray-400 transition-transform duration-200",o&&"rotate-180")})]}),o&&!i&&b.jsx("div",{className:"absolute top-full left-0 z-50 mt-1 min-w-[300px] w-max max-w-lg rounded-md border border-gray-200 bg-white shadow-lg max-h-60 overflow-y-auto",children:e.map(y=>{const p=l===y.value;return b.jsxs("div",{className:"relative group",children:[b.jsx("button",{className:ue("relative flex w-full cursor-pointer select-none items-center px-3 py-2 text-sm text-left outline-none transition-colors",y.disabled?"opacity-50 cursor-not-allowed text-gray-400":p?"bg-blue-50 text-blue-900 font-medium":"text-gray-900 hover:bg-gray-100"),onClick:()=>!y.disabled&&d(y.value),disabled:y.disabled,children:b.jsx("span",{className:"block whitespace-nowrap",children:y.label})}),y.label.length>25&&b.jsx("div",{className:"absolute left-full top-0 ml-2 z-[60] opacity-0 group-hover:opacity-100 transition-opacity duration-200 pointer-events-none",children:b.jsxs("div",{className:"bg-gray-900 text-white text-xs rounded-md px-3 py-2 whitespace-nowrap shadow-lg",children:[y.label,b.jsx("div",{className:"absolute left-0 top-1/2 transform -translate-x-full -translate-y-1/2 w-0 h-0 border-t-4 border-b-4 border-r-4 border-transparent border-r-gray-900"})]})})]},y.value)})})]})},hW=({options:e,value:t,defaultValue:r,placeholder:n="Select...",multiSelect:a=!1,searchable:i=!1,onChange:o,className:s,iconSource:l="app",maxItems:u=100,maxLabelLength:c=30})=>{const[f,d]=S.useState(!1),[h,y]=S.useState(""),[p,v]=S.useState(()=>{const P=t||r;return a?Array.isArray(P)?P:P?[P]:[]:P?[Array.isArray(P)?P[0]:P]:[]}),g=S.useRef(null);S.useEffect(()=>{const P=j=>{g.current&&!g.current.contains(j.target)&&d(!1)};return document.addEventListener("mousedown",P),()=>document.removeEventListener("mousedown",P)},[]);const O=(P,j=c)=>P.length<=j?P:P.substring(0,j)+"...",x=i?e.filter(P=>P.label.toLowerCase().includes(h.toLowerCase())):e,A=x.slice(0,u),m=x.length>u,w=P=>{let j;if(a){if(P==="all"){_();return}if(p.includes(P))j=p.filter(B=>B!==P),j=j.filter(B=>B!=="all");else{j=p.filter(E=>E!=="all"),j=[...j,P];const B=x.filter(E=>E.value!=="all").map(E=>E.value),M=j.filter(E=>E!=="all");M.length===B.length&&(j=["all",...M])}}else j=[P],d(!1);v(j);const L=a?j:j[0]||"";o==null||o(L)},T=()=>{if(!a)return{checked:!1,indeterminate:!1};const P=x.filter(L=>L.value!=="all").map(L=>L.value),j=p.filter(L=>L!=="all"&&P.includes(L));return p.includes("all")&&j.length===0?{checked:!1,indeterminate:!1}:j.length===0?{checked:!1,indeterminate:!1}:j.length===P.length?{checked:!0,indeterminate:!1}:{checked:!1,indeterminate:!0}},_=()=>{if(!a)return;const P=T(),j=x.filter(L=>L.value!=="all").map(L=>L.value);if(P.checked)v(["all"]),o==null||o(["all"]);else{const L=["all",...j];v(L),o==null||o(L)}},$=()=>{v(["all"]),o==null||o(a?["all"]:"all")},R=()=>{if(!a){if(p.length===0)return n;const B=e.find(M=>M.value===p[0]);return(B==null?void 0:B.label)||n}const P=p.filter(B=>B!=="all"),j=p.includes("all");if(P.length===0)return n;if(P.length===1){const B=e.find(M=>M.value===P[0]);return(B==null?void 0:B.label)||n}const L=e.filter(B=>B.value!=="all").length;return P.length===L?"All selected":`${P.length} selected`};return b.jsxs("div",{className:ue("relative",s),ref:g,children:[b.jsxs("button",{type:"button",onClick:()=>d(!f),className:ue("w-full flex items-center justify-between px-3 py-2 text-left text-sm","border border-gray-300 rounded-md bg-white hover:bg-gray-50","focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500","transition-colors duration-150"),children:[b.jsx("span",{className:ue("truncate",p.length===0&&"text-gray-500"),children:R()}),b.jsx(Ei,{className:ue("w-4 h-4 text-gray-400 transition-transform duration-150",f&&"transform rotate-180")})]}),f&&b.jsxs("div",{className:"absolute z-50 min-w-[300px] w-max max-w-lg mt-1 bg-white border border-gray-200 rounded-md shadow-lg max-h-80 overflow-hidden",children:[i&&b.jsx("div",{className:"p-3 border-b border-gray-100",children:b.jsxs("div",{className:"relative",children:[b.jsx(gf,{className:"absolute left-3 top-1/2 transform -translate-y-1/2 w-4 h-4 text-gray-400"}),b.jsx("input",{type:"text",placeholder:`Search ${n.toLowerCase()}...`,value:h,onChange:P=>y(P.target.value),className:"w-full pl-10 pr-4 py-2 text-sm border border-gray-200 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500"})]})}),a&&b.jsxs("div",{className:"flex items-center justify-between px-3 py-2 border-b border-gray-100 bg-gray-50",children:[b.jsxs("button",{type:"button",onClick:_,className:"flex items-center text-sm font-medium text-gray-700 hover:text-gray-900",children:[b.jsx("div",{className:ue("flex items-center justify-center w-4 h-4 mr-2 border rounded transition-colors duration-150",(()=>{const P=T();return P.indeterminate||P.checked?"bg-blue-600 border-blue-600 text-white":"border-gray-300 bg-white"})()),children:(()=>{const P=T();return P.indeterminate?b.jsx("div",{className:"w-2 h-0.5 bg-white rounded"}):P.checked?b.jsx("svg",{className:"w-3 h-3",fill:"currentColor",viewBox:"0 0 20 20",children:b.jsx("path",{fillRule:"evenodd",d:"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z",clipRule:"evenodd"})}):null})()}),"Select all"]}),b.jsx("button",{type:"button",onClick:$,className:"text-sm font-medium text-blue-600 hover:text-blue-800",children:"Clear"})]}),b.jsxs("div",{className:"max-h-60 overflow-y-auto",children:[A.length===0?b.jsx("div",{className:"px-3 py-4 text-sm text-gray-500 text-center",children:"No options found"}):A.map(P=>{let j;return P.value==="all"?null:(j=p.includes(P.value),b.jsxs("div",{className:"relative group",children:[b.jsxs("div",{onClick:()=>w(P.value),className:ue("flex items-center px-3 py-2 cursor-pointer hover:bg-gray-50","transition-colors duration-150",j&&"bg-blue-50"),children:[a?b.jsx("div",{className:ue("flex items-center justify-center w-4 h-4 mr-3 border rounded","transition-colors duration-150",j?"bg-blue-600 border-blue-600 text-white":"border-gray-300 bg-white"),children:j&&b.jsx("svg",{className:"w-3 h-3",fill:"currentColor",viewBox:"0 0 20 20",children:b.jsx("path",{fillRule:"evenodd",d:"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z",clipRule:"evenodd"})})}):b.jsx("div",{className:ue("w-4 h-4 mr-3 rounded-full border-2 transition-colors duration-150",j?"border-blue-600 bg-blue-600":"border-gray-300"),children:j&&b.jsx("div",{className:"w-full h-full rounded-full bg-white scale-50"})}),(P.avatar||P.icon)&&b.jsx("div",{className:"mr-3",children:b.jsx(sf,{icon:P.icon,iconSource:l,size:"xs",name:P.label,toolType:P.type})}),b.jsx("span",{className:ue("flex-1 text-sm whitespace-nowrap",j?"font-medium text-gray-900":"text-gray-700"),children:O(P.label)})]}),P.label.length>c&&b.jsx("div",{className:"absolute left-full top-1/2 transform -translate-y-1/2 ml-2 z-[80] opacity-0 group-hover:opacity-100 transition-opacity duration-200 pointer-events-none",children:b.jsxs("div",{className:"bg-gray-900 text-white text-xs rounded-md px-3 py-2 shadow-lg max-w-xs break-words whitespace-normal",children:[P.label,b.jsx("div",{className:"absolute left-0 top-1/2 transform -translate-x-full -translate-y-1/2 w-0 h-0 border-t-4 border-b-4 border-r-4 border-transparent border-r-gray-900"})]})})]},P.value))}),m&&b.jsxs("div",{className:"px-3 py-2 text-xs text-gray-500 bg-gray-50 border-t border-gray-100",children:[b.jsxs("div",{className:"text-center font-medium",children:["+",x.length-u," more items"]}),i&&b.jsx("div",{className:"text-center mt-1 text-gray-400",children:"Use search above to find specific items"})]})]})]})]})},xb=({config:e,className:t})=>{var s;const{dropdown:r,buttons:n,toggle:a}=e,i=l=>{const u=l.toLowerCase();return u.includes("agent")?"agent":u.includes("tool")?"workflowtool":"app"},o=l=>{const u=l.toLowerCase();return u.includes("agent")?{maxItems:50,maxLabelLength:25}:u.includes("tool")?{maxItems:30,maxLabelLength:20}:{maxItems:40,maxLabelLength:25}};return b.jsxs("div",{className:ue("flex items-center gap-3",t),children:[r&&b.jsx(b.Fragment,{children:r.multiSelect?b.jsx(hW,{options:r.options,value:r.defaultValue,placeholder:r.label,multiSelect:r.multiSelect,searchable:r.searchable,onChange:r.onChange,className:"w-48",iconSource:i(r.label),maxItems:o(r.label).maxItems,maxLabelLength:o(r.label).maxLabelLength}):b.jsx(js,{options:r.options,value:Array.isArray(r.defaultValue)?r.defaultValue[0]:r.defaultValue||((s=r.options[0])==null?void 0:s.value),placeholder:r.label,onChange:l=>{var u;return(u=r.onChange)==null?void 0:u.call(r,l)},className:"w-48"})}),n&&n.length>0&&b.jsx("div",{className:"flex items-center border border-gray-200 rounded-lg overflow-hidden",children:n.map((l,u)=>b.jsxs("button",{onClick:()=>{var c;return(c=l.onClick)==null?void 0:c.call(l,l.value)},className:ue("px-3 py-2 text-sm font-medium transition-colors","hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-inset",l.active?"bg-blue-50 text-blue-700 border-blue-200":"text-gray-700 bg-white",u>0&&"border-l border-gray-200"),children:[l.icon&&b.jsx("span",{className:"mr-2",children:l.icon}),l.label]},l.value))}),a&&b.jsxs("div",{className:"flex items-center border border-gray-200 rounded-lg overflow-hidden",children:[b.jsxs("button",{onClick:()=>{var l;return(l=a.onToggle)==null?void 0:l.call(a,"chart")},className:ue("px-3 py-2 text-sm font-medium transition-colors flex items-center gap-2","hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-inset",a.chartView?"bg-blue-50 text-blue-700 border-blue-200":"text-gray-700 bg-white"),children:[b.jsx(Jb,{className:"w-4 h-4"}),"Chart"]}),b.jsxs("button",{onClick:()=>{var l;return(l=a.onToggle)==null?void 0:l.call(a,"table")},className:ue("px-3 py-2 text-sm font-medium transition-colors flex items-center gap-2","hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-inset","border-l border-gray-200",a.tableView?"bg-blue-50 text-blue-700 border-blue-200":"text-gray-700 bg-white"),children:[b.jsx(n0,{className:"w-4 h-4"}),"Table"]})]})]})},wb=({section:e,className:t,isLoading:r,isChartLoading:n,onMetricClick:a})=>{const{id:i,title:o,description:s,metrics:l,view:u,controls:c,layout:f}=e,[d,h]=S.useState(u.type),[y,p]=S.useState("chart"),v=()=>i==="usage-analytics"?"users":i==="runs"?"agentRuns":"users",[g,O]=S.useState(v()),[x,A]=S.useState("all"),m=k=>{var I,W,z,V,Z;const N=_();(I=N==null?void 0:N.controls)!=null&&I.toggle?(p(k),(z=(W=N.controls.toggle).onToggle)==null||z.call(W,k)):(h(k),(Z=(V=c==null?void 0:c.toggle)==null?void 0:V.onToggle)==null||Z.call(V,k))},w=k=>{var W,z;const N=k.metricType||k.title.toLowerCase();O(N);const I=l.find(V=>(V.metricType||V.title.toLowerCase())===N);(z=(W=I==null?void 0:I.controls)==null?void 0:W.dropdown)!=null&&z.multiSelect?A(["all"]):A("all"),a==null||a(k)},T=k=>{var I,W,z;A(k);const N=l.find(V=>(V.metricType||V.title.toLowerCase())===g);(z=(W=(I=N==null?void 0:N.controls)==null?void 0:I.dropdown)==null?void 0:W.onChange)==null||z.call(W,k)},_=()=>l.find(k=>(k.metricType||k.title.toLowerCase())===g)||null,$=k=>Array.isArray(k)?k.filter(I=>I!=="all").length>0:k!=="all",R=k=>Array.isArray(k)?k.filter(N=>N!=="all"):k!=="all"?[k]:[],P=k=>{var z,V,Z,Q,ae,te,G,Y,J;const N=((V=(z=k.view)==null?void 0:z.chart)==null?void 0:V.data)||((Z=u.chart)==null?void 0:Z.data)||[];if(!$(x))return N;const I=k.metricType,W=R(x);if(W.length===1){const D=W[0],ie=_(),q=(te=(ae=(Q=ie==null?void 0:ie.controls)==null?void 0:Q.dropdown)==null?void 0:ae.options)==null?void 0:te.find(oe=>oe.value===D),ee=q==null?void 0:q.label;return console.log("🔍 Filtering chart data:",{metricType:I,singleFilter:D,selectedLabel:ee,baseDataSample:N[0]}),N.map(oe=>{let Ce=0;return oe.listView&&Array.isArray(oe.listView)&&(Ce=oe.listView.filter(et=>I==="agentRuns"&&et.agentName?et.agentName===ee||et.agentName.toLowerCase()===(ee==null?void 0:ee.toLowerCase()):I==="toolRuns"&&et.toolName?et.toolName===ee||et.toolName.toLowerCase()===(ee==null?void 0:ee.toLowerCase()):I==="modelRuns"&&et.modelName?et.modelName===ee||et.modelName.toLowerCase()===(ee==null?void 0:ee.toLowerCase()):!1).reduce((et,Rt)=>et+(Rt.count||0),0)),console.log("📊 Filtered value for",ee,":",Ce),{...oe,[I]:Ce}})}if(W.length>1){const D=_(),q=(((J=(Y=(G=D==null?void 0:D.controls)==null?void 0:G.dropdown)==null?void 0:Y.options)==null?void 0:J.filter(ee=>W.includes(ee.value)))||[]).map(ee=>ee.label);return N.map(ee=>{let oe=0;return ee.listView&&Array.isArray(ee.listView)&&(oe=ee.listView.filter(Te=>I==="agentRuns"&&Te.agentName?q.some(Ee=>Te.agentName===Ee||Te.agentName.toLowerCase()===(Ee==null?void 0:Ee.toLowerCase())):I==="toolRuns"&&Te.toolName?q.some(Ee=>Te.toolName===Ee||Te.toolName.toLowerCase()===(Ee==null?void 0:Ee.toLowerCase())):I==="modelRuns"&&Te.modelName?q.some(Ee=>Te.modelName===Ee||Te.modelName.toLowerCase()===(Ee==null?void 0:Ee.toLowerCase())):!1).reduce((Te,Ee)=>Te+(Ee.count||0),0)),{...ee,[I]:oe}})}return N},j=k=>{var z;if(!((z=k.view)!=null&&z.chart))return null;const N=P(k),I=()=>{var Z,Q,ae,te,G,Y;if(!$(x)||!((Z=k.controls)!=null&&Z.dropdown))return((ae=(Q=k.view)==null?void 0:Q.chart)==null?void 0:ae.title)||k.title;const V=R(x);if(V.length===1){const J=(te=k.controls.dropdown.options)==null?void 0:te.find(D=>D.value===V[0]);return J?`${J.label}`:((Y=(G=k.view)==null?void 0:G.chart)==null?void 0:Y.title)||k.title}return`${V.length} selected`},W=R(x);return k.metricType==="toolRuns"&&W.length===1?{...k.view.chart,data:N,title:I(),lines:void 0,dataKey:"toolRuns",color:"#f97316",showLegend:!1}:k.metricType==="modelRuns"&&W.length===1?{...k.view.chart,data:N,title:I(),dataKey:"modelRuns",color:"#10b981",showLegend:!1}:{...k.view.chart,data:N,title:I()}},L=(k,N)=>{if(!$(x))return k;const I=R(x);if(I.length===1){const W=I[0];if(i==="runs"&&N==="agentRuns")return k.map(z=>({...z,agentRuns:z[W]||0}));if(i==="runs"&&N==="toolRuns")return k.map(z=>({...z,toolRuns:z[W.replace(/[-]/g,"")]||0}));if(i==="runs"&&N==="modelRuns")return k.map(z=>({...z,modelRuns:z[W.replace(/[-\.]/g,"")]||0}))}return k},B=k=>{var z;const N=((z=u.chart)==null?void 0:z.data)||[],I=L(N,k),W=V=>{var Q,ae;if(!$(x))return V;const Z=R(x);if(Z.length===1){const te=(ae=(Q=c==null?void 0:c.dropdown)==null?void 0:Q.options)==null?void 0:ae.find(G=>G.value===Z[0]);return te?`${te.label}`:V}return`${Z.length} selected`};switch(k){case"users":return{type:"line",title:"Total Users",data:N,dataKey:"users",color:"#8b5cf6",yAxisLabel:"Number of Users",height:300,showGrid:!0,curve:"monotone",tooltip:{show:!0,style:"dark"},dateRange:{start:"2025-05-06",end:"2025-06-05"}};case"sessions":return{type:"line",title:"Total Sessions",data:N,dataKey:"sessions",color:"#06b6d4",yAxisLabel:"Number of Sessions",height:300,showGrid:!0,curve:"monotone",tooltip:{show:!0,style:"dark"},dateRange:{start:"2025-05-06",end:"2025-06-05"}};case"messages":return{type:"line",title:"Total Messages",data:N,dataKey:"messages",color:"#ec4899",yAxisLabel:"Number of Messages",height:300,showGrid:!0,curve:"monotone",tooltip:{show:!0,style:"dark"},dateRange:{start:"2025-05-06",end:"2025-06-05"}};case"tokens":return{type:"line",title:"Token Usage Breakdown",data:N,yAxisLabel:"Number of Tokens",lines:[{dataKey:"totalTokens",color:"#f59e0b",label:"Total Tokens"},{dataKey:"inputTokens",color:"#3b82f6",label:"Input Tokens"},{dataKey:"outputTokens",color:"#ec4899",label:"Output Tokens"}],height:300,showGrid:!0,showLegend:!0,curve:"monotone",tooltip:{show:!0,style:"dark"},dateRange:{start:"2025-05-06",end:"2025-06-05"}};case"agentRuns":return{type:"line",title:W("Agent Runs"),data:I,dataKey:"agentRuns",color:"#06b6d4",yAxisLabel:"Number of Agent Runs",height:300,showGrid:!0,curve:"monotone",tooltip:{show:!0,style:"dark"},dateRange:{start:"2025-05-06",end:"2025-06-05"}};case"toolRuns":return R(x).length===1?{type:"line",title:W("Tool Runs"),data:L(N,"toolRuns"),dataKey:"toolRuns",color:"#f97316",yAxisLabel:"Number of Tool Runs",height:300,showGrid:!0,curve:"monotone",tooltip:{show:!0,style:"dark"},dateRange:{start:"2025-05-06",end:"2025-06-05"}}:{type:"line",title:"Tool Runs",data:I,yAxisLabel:"Number of Tool Runs",lines:[{dataKey:"toolRuns",color:"#06b6d4",label:"Tool Runs"},{dataKey:"codeTools",color:"#f97316",label:"Code Tools"},{dataKey:"workflowTools",color:"#10b981",label:"Workflow Tools"},{dataKey:"knowledgeTools",color:"#8b5cf6",label:"Knowledge"},{dataKey:"mcpTools",color:"#ef4444",label:"MCP Tools"}],height:300,showGrid:!0,showLegend:!0,curve:"monotone",tooltip:{show:!0,style:"dark"},dateRange:{start:"2025-05-06",end:"2025-06-05"}};case"modelRuns":return R(x).length===1?{type:"line",title:W("Model Runs"),data:L(N,"modelRuns"),dataKey:"modelRuns",color:"#10b981",yAxisLabel:"Number of Model Runs",height:300,showGrid:!0,curve:"monotone",tooltip:{show:!0,style:"dark"},dateRange:{start:"2025-05-06",end:"2025-06-05"}}:{type:"line",title:W("Model Runs"),data:I,dataKey:"modelRuns",color:"#10b981",yAxisLabel:"Number of Model Runs",height:300,showGrid:!0,curve:"monotone",tooltip:{show:!0,style:"dark"},dateRange:{start:"2025-05-06",end:"2025-06-05"}};default:return null}},M=(()=>{const k=_();return k!=null&&k.controls?{...k.controls,dropdown:k.controls.dropdown?{...k.controls.dropdown,onChange:T}:void 0,toggle:k.controls.toggle?{...k.controls.toggle,chartView:y==="chart",tableView:y==="table",onToggle:m}:void 0}:c?{...c,dropdown:c.dropdown?{...c.dropdown,onChange:T}:void 0,toggle:c.toggle?{...c.toggle,chartView:d==="chart",tableView:d==="table",onToggle:m}:void 0}:void 0})(),F=(()=>{var I,W,z,V,Z,Q,ae,te,G,Y;const k=_();if(k!=null&&k.view){if((I=k.controls)!=null&&I.toggle){if(y==="table"&&k.view.table){let D=k.view.table.data;if(k.metricType==="agentRuns"&&$(x)){const ie=R(x);if(ie.length>0){const q=((V=(z=(W=k.controls)==null?void 0:W.dropdown)==null?void 0:z.options)==null?void 0:V.filter(ee=>ie.includes(ee.value)))||[];q.length>0&&(D=D.filter(ee=>q.some(oe=>ee.name===oe.label||ee.name&&ee.name.toLowerCase().includes(oe.label.toLowerCase()))))}}if(k.metricType==="toolRuns"&&$(x)){const ie=R(x);if(ie.length>0){const q=((ae=(Q=(Z=k.controls)==null?void 0:Z.dropdown)==null?void 0:Q.options)==null?void 0:ae.filter(ee=>ie.includes(ee.value)))||[];q.length>0&&(D=D.filter(ee=>q.some(oe=>ee.name===oe.label||ee.name&&ee.name.toLowerCase().includes(oe.label.toLowerCase()))))}}if(k.metricType==="modelRuns"&&$(x)){const ie=R(x);if(ie.length>0){const q=((Y=(G=(te=k.controls)==null?void 0:te.dropdown)==null?void 0:G.options)==null?void 0:Y.filter(ee=>ie.includes(ee.value)))||[];q.length>0&&(D=D.filter(ee=>q.some(oe=>ee.name===oe.label||ee.name&&ee.name.toLowerCase().includes(oe.label.toLowerCase()))))}}return{type:"table",table:{...k.view.table,data:D}}}else if(y==="chart"&&k.view.chart)return{type:"chart",chart:j(k)||k.view.chart}}const J=j(k);return J?{...k.view,chart:J}:k.view}const N=B(g);return N?{type:"chart",chart:N}:{...u,type:d}})(),U=()=>l.map(k=>{const N=k.metricType||k.title.toLowerCase();return{...k,highlighted:k.highlighted||N===g}});return b.jsxs("div",{className:ue("bg-white rounded-lg border border-gray-200 p-6",t),style:{gridColumn:f!=null&&f.span?`span ${f.span}`:void 0,order:f==null?void 0:f.order},children:[b.jsxs("div",{className:"mb-6",children:[b.jsxs("div",{className:"flex items-center justify-between mb-4",children:[b.jsxs("div",{children:[b.jsx("h2",{className:"text-lg font-semibold text-gray-900",children:o}),s&&b.jsx("p",{className:"text-sm text-gray-600 mt-1",children:s})]}),M&&b.jsx(xb,{config:M})]}),b.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4",children:r?b.jsxs(b.Fragment,{children:[b.jsx(mi,{}),b.jsx(mi,{}),b.jsx(mi,{}),b.jsx(mi,{})]}):U().map((k,N)=>b.jsx(_f,{data:k,onClick:w},`${i}-metric-${N}`))})]}),b.jsx(bb,{config:F,className:"mt-6",isLoading:r||n,context:{sectionId:i,metricType:g}})]})},$s=S.forwardRef(({className:e,variant:t="default",size:r="md",children:n,...a},i)=>{const o="inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50",s={default:"bg-primary text-primary-foreground hover:bg-primary/90",outline:"border border-input bg-background hover:bg-accent hover:text-accent-foreground",ghost:"hover:bg-accent hover:text-accent-foreground"},l={sm:"h-9 px-3",md:"h-10 px-4 py-2",lg:"h-11 px-8"};return b.jsx("button",{className:ue(o,s[t],l[r],e),ref:i,...a,children:n})});$s.displayName="Button";function Cs(e){"@babel/helpers - typeof";return Cs=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Cs(e)}function Et(e){if(e===null||e===!0||e===!1)return NaN;var t=Number(e);return isNaN(t)?t:t<0?Math.ceil(t):Math.floor(t)}function De(e,t){if(t.length<e)throw new TypeError(e+" argument"+(e>1?"s":"")+" required, but only "+t.length+" present")}function Ue(e){De(1,arguments);var t=Object.prototype.toString.call(e);return e instanceof Date||Cs(e)==="object"&&t==="[object Date]"?new Date(e.getTime()):typeof e=="number"||t==="[object Number]"?new Date(e):((typeof e=="string"||t==="[object String]")&&typeof console<"u"&&(console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments"),console.warn(new Error().stack)),new Date(NaN))}function pW(e,t){De(2,arguments);var r=Ue(e),n=Et(t);return isNaN(n)?new Date(NaN):(n&&r.setDate(r.getDate()+n),r)}function lf(e,t){De(2,arguments);var r=Ue(e),n=Et(t);if(isNaN(n))return new Date(NaN);if(!n)return r;var a=r.getDate(),i=new Date(r.getTime());i.setMonth(r.getMonth()+n+1,0);var o=i.getDate();return a>=o?i:(r.setFullYear(i.getFullYear(),i.getMonth(),a),r)}function vW(e,t){De(2,arguments);var r=Ue(e).getTime(),n=Et(t);return new Date(r+n)}var yW={};function gi(){return yW}function mW(e,t){var r,n,a,i,o,s;De(1,arguments);var l=gi(),u=Et((r=(n=(a=(i=void 0)!==null&&i!==void 0?i:void 0)!==null&&a!==void 0?a:l.weekStartsOn)!==null&&n!==void 0?n:(o=l.locale)===null||o===void 0||(s=o.options)===null||s===void 0?void 0:s.weekStartsOn)!==null&&r!==void 0?r:0);if(!(u>=0&&u<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var c=Ue(e),f=c.getDay(),d=(f<u?7:0)+f-u;return c.setDate(c.getDate()-d),c.setHours(0,0,0,0),c}function gW(e){var t=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()));return t.setUTCFullYear(e.getFullYear()),e.getTime()-t.getTime()}function Yr(e){De(1,arguments);var t=Ue(e);return t.setHours(0,0,0,0),t}function bi(e,t){De(2,arguments);var r=Yr(e),n=Yr(t);return r.getTime()===n.getTime()}function bW(e){return De(1,arguments),e instanceof Date||Cs(e)==="object"&&Object.prototype.toString.call(e)==="[object Date]"}function xW(e){if(De(1,arguments),!bW(e)&&typeof e!="number")return!1;var t=Ue(e);return!isNaN(Number(t))}function wW(e){De(1,arguments);var t=Ue(e);return t.setHours(23,59,59,999),t}function OW(e){De(1,arguments);var t=Ue(e);return t.setDate(1),t.setHours(0,0,0,0),t}function SW(e,t){De(2,arguments);var r=Et(t);return vW(e,-r)}var AW=864e5;function TW(e){De(1,arguments);var t=Ue(e),r=t.getTime();t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0);var n=t.getTime(),a=r-n;return Math.floor(a/AW)+1}function Ms(e){De(1,arguments);var t=1,r=Ue(e),n=r.getUTCDay(),a=(n<t?7:0)+n-t;return r.setUTCDate(r.getUTCDate()-a),r.setUTCHours(0,0,0,0),r}function Ob(e){De(1,arguments);var t=Ue(e),r=t.getUTCFullYear(),n=new Date(0);n.setUTCFullYear(r+1,0,4),n.setUTCHours(0,0,0,0);var a=Ms(n),i=new Date(0);i.setUTCFullYear(r,0,4),i.setUTCHours(0,0,0,0);var o=Ms(i);return t.getTime()>=a.getTime()?r+1:t.getTime()>=o.getTime()?r:r-1}function PW(e){De(1,arguments);var t=Ob(e),r=new Date(0);r.setUTCFullYear(t,0,4),r.setUTCHours(0,0,0,0);var n=Ms(r);return n}var _W=6048e5;function EW(e){De(1,arguments);var t=Ue(e),r=Ms(t).getTime()-PW(t).getTime();return Math.round(r/_W)+1}function ks(e,t){var r,n,a,i,o,s,l,u;De(1,arguments);var c=gi(),f=Et((r=(n=(a=(i=t==null?void 0:t.weekStartsOn)!==null&&i!==void 0?i:t==null||(o=t.locale)===null||o===void 0||(s=o.options)===null||s===void 0?void 0:s.weekStartsOn)!==null&&a!==void 0?a:c.weekStartsOn)!==null&&n!==void 0?n:(l=c.locale)===null||l===void 0||(u=l.options)===null||u===void 0?void 0:u.weekStartsOn)!==null&&r!==void 0?r:0);if(!(f>=0&&f<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var d=Ue(e),h=d.getUTCDay(),y=(h<f?7:0)+h-f;return d.setUTCDate(d.getUTCDate()-y),d.setUTCHours(0,0,0,0),d}function Sb(e,t){var r,n,a,i,o,s,l,u;De(1,arguments);var c=Ue(e),f=c.getUTCFullYear(),d=gi(),h=Et((r=(n=(a=(i=t==null?void 0:t.firstWeekContainsDate)!==null&&i!==void 0?i:t==null||(o=t.locale)===null||o===void 0||(s=o.options)===null||s===void 0?void 0:s.firstWeekContainsDate)!==null&&a!==void 0?a:d.firstWeekContainsDate)!==null&&n!==void 0?n:(l=d.locale)===null||l===void 0||(u=l.options)===null||u===void 0?void 0:u.firstWeekContainsDate)!==null&&r!==void 0?r:1);if(!(h>=1&&h<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var y=new Date(0);y.setUTCFullYear(f+1,0,h),y.setUTCHours(0,0,0,0);var p=ks(y,t),v=new Date(0);v.setUTCFullYear(f,0,h),v.setUTCHours(0,0,0,0);var g=ks(v,t);return c.getTime()>=p.getTime()?f+1:c.getTime()>=g.getTime()?f:f-1}function jW(e,t){var r,n,a,i,o,s,l,u;De(1,arguments);var c=gi(),f=Et((r=(n=(a=(i=t==null?void 0:t.firstWeekContainsDate)!==null&&i!==void 0?i:t==null||(o=t.locale)===null||o===void 0||(s=o.options)===null||s===void 0?void 0:s.firstWeekContainsDate)!==null&&a!==void 0?a:c.firstWeekContainsDate)!==null&&n!==void 0?n:(l=c.locale)===null||l===void 0||(u=l.options)===null||u===void 0?void 0:u.firstWeekContainsDate)!==null&&r!==void 0?r:1),d=Sb(e,t),h=new Date(0);h.setUTCFullYear(d,0,f),h.setUTCHours(0,0,0,0);var y=ks(h,t);return y}var $W=6048e5;function CW(e,t){De(1,arguments);var r=Ue(e),n=ks(r,t).getTime()-jW(r,t).getTime();return Math.round(n/$W)+1}function _e(e,t){for(var r=e<0?"-":"",n=Math.abs(e).toString();n.length<t;)n="0"+n;return r+n}var Pr={y:function(t,r){var n=t.getUTCFullYear(),a=n>0?n:1-n;return _e(r==="yy"?a%100:a,r.length)},M:function(t,r){var n=t.getUTCMonth();return r==="M"?String(n+1):_e(n+1,2)},d:function(t,r){return _e(t.getUTCDate(),r.length)},a:function(t,r){var n=t.getUTCHours()/12>=1?"pm":"am";switch(r){case"a":case"aa":return n.toUpperCase();case"aaa":return n;case"aaaaa":return n[0];case"aaaa":default:return n==="am"?"a.m.":"p.m."}},h:function(t,r){return _e(t.getUTCHours()%12||12,r.length)},H:function(t,r){return _e(t.getUTCHours(),r.length)},m:function(t,r){return _e(t.getUTCMinutes(),r.length)},s:function(t,r){return _e(t.getUTCSeconds(),r.length)},S:function(t,r){var n=r.length,a=t.getUTCMilliseconds(),i=Math.floor(a*Math.pow(10,n-3));return _e(i,r.length)}},na={midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},MW={G:function(t,r,n){var a=t.getUTCFullYear()>0?1:0;switch(r){case"G":case"GG":case"GGG":return n.era(a,{width:"abbreviated"});case"GGGGG":return n.era(a,{width:"narrow"});case"GGGG":default:return n.era(a,{width:"wide"})}},y:function(t,r,n){if(r==="yo"){var a=t.getUTCFullYear(),i=a>0?a:1-a;return n.ordinalNumber(i,{unit:"year"})}return Pr.y(t,r)},Y:function(t,r,n,a){var i=Sb(t,a),o=i>0?i:1-i;if(r==="YY"){var s=o%100;return _e(s,2)}return r==="Yo"?n.ordinalNumber(o,{unit:"year"}):_e(o,r.length)},R:function(t,r){var n=Ob(t);return _e(n,r.length)},u:function(t,r){var n=t.getUTCFullYear();return _e(n,r.length)},Q:function(t,r,n){var a=Math.ceil((t.getUTCMonth()+1)/3);switch(r){case"Q":return String(a);case"QQ":return _e(a,2);case"Qo":return n.ordinalNumber(a,{unit:"quarter"});case"QQQ":return n.quarter(a,{width:"abbreviated",context:"formatting"});case"QQQQQ":return n.quarter(a,{width:"narrow",context:"formatting"});case"QQQQ":default:return n.quarter(a,{width:"wide",context:"formatting"})}},q:function(t,r,n){var a=Math.ceil((t.getUTCMonth()+1)/3);switch(r){case"q":return String(a);case"qq":return _e(a,2);case"qo":return n.ordinalNumber(a,{unit:"quarter"});case"qqq":return n.quarter(a,{width:"abbreviated",context:"standalone"});case"qqqqq":return n.quarter(a,{width:"narrow",context:"standalone"});case"qqqq":default:return n.quarter(a,{width:"wide",context:"standalone"})}},M:function(t,r,n){var a=t.getUTCMonth();switch(r){case"M":case"MM":return Pr.M(t,r);case"Mo":return n.ordinalNumber(a+1,{unit:"month"});case"MMM":return n.month(a,{width:"abbreviated",context:"formatting"});case"MMMMM":return n.month(a,{width:"narrow",context:"formatting"});case"MMMM":default:return n.month(a,{width:"wide",context:"formatting"})}},L:function(t,r,n){var a=t.getUTCMonth();switch(r){case"L":return String(a+1);case"LL":return _e(a+1,2);case"Lo":return n.ordinalNumber(a+1,{unit:"month"});case"LLL":return n.month(a,{width:"abbreviated",context:"standalone"});case"LLLLL":return n.month(a,{width:"narrow",context:"standalone"});case"LLLL":default:return n.month(a,{width:"wide",context:"standalone"})}},w:function(t,r,n,a){var i=CW(t,a);return r==="wo"?n.ordinalNumber(i,{unit:"week"}):_e(i,r.length)},I:function(t,r,n){var a=EW(t);return r==="Io"?n.ordinalNumber(a,{unit:"week"}):_e(a,r.length)},d:function(t,r,n){return r==="do"?n.ordinalNumber(t.getUTCDate(),{unit:"date"}):Pr.d(t,r)},D:function(t,r,n){var a=TW(t);return r==="Do"?n.ordinalNumber(a,{unit:"dayOfYear"}):_e(a,r.length)},E:function(t,r,n){var a=t.getUTCDay();switch(r){case"E":case"EE":case"EEE":return n.day(a,{width:"abbreviated",context:"formatting"});case"EEEEE":return n.day(a,{width:"narrow",context:"formatting"});case"EEEEEE":return n.day(a,{width:"short",context:"formatting"});case"EEEE":default:return n.day(a,{width:"wide",context:"formatting"})}},e:function(t,r,n,a){var i=t.getUTCDay(),o=(i-a.weekStartsOn+8)%7||7;switch(r){case"e":return String(o);case"ee":return _e(o,2);case"eo":return n.ordinalNumber(o,{unit:"day"});case"eee":return n.day(i,{width:"abbreviated",context:"formatting"});case"eeeee":return n.day(i,{width:"narrow",context:"formatting"});case"eeeeee":return n.day(i,{width:"short",context:"formatting"});case"eeee":default:return n.day(i,{width:"wide",context:"formatting"})}},c:function(t,r,n,a){var i=t.getUTCDay(),o=(i-a.weekStartsOn+8)%7||7;switch(r){case"c":return String(o);case"cc":return _e(o,r.length);case"co":return n.ordinalNumber(o,{unit:"day"});case"ccc":return n.day(i,{width:"abbreviated",context:"standalone"});case"ccccc":return n.day(i,{width:"narrow",context:"standalone"});case"cccccc":return n.day(i,{width:"short",context:"standalone"});case"cccc":default:return n.day(i,{width:"wide",context:"standalone"})}},i:function(t,r,n){var a=t.getUTCDay(),i=a===0?7:a;switch(r){case"i":return String(i);case"ii":return _e(i,r.length);case"io":return n.ordinalNumber(i,{unit:"day"});case"iii":return n.day(a,{width:"abbreviated",context:"formatting"});case"iiiii":return n.day(a,{width:"narrow",context:"formatting"});case"iiiiii":return n.day(a,{width:"short",context:"formatting"});case"iiii":default:return n.day(a,{width:"wide",context:"formatting"})}},a:function(t,r,n){var a=t.getUTCHours(),i=a/12>=1?"pm":"am";switch(r){case"a":case"aa":return n.dayPeriod(i,{width:"abbreviated",context:"formatting"});case"aaa":return n.dayPeriod(i,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return n.dayPeriod(i,{width:"narrow",context:"formatting"});case"aaaa":default:return n.dayPeriod(i,{width:"wide",context:"formatting"})}},b:function(t,r,n){var a=t.getUTCHours(),i;switch(a===12?i=na.noon:a===0?i=na.midnight:i=a/12>=1?"pm":"am",r){case"b":case"bb":return n.dayPeriod(i,{width:"abbreviated",context:"formatting"});case"bbb":return n.dayPeriod(i,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return n.dayPeriod(i,{width:"narrow",context:"formatting"});case"bbbb":default:return n.dayPeriod(i,{width:"wide",context:"formatting"})}},B:function(t,r,n){var a=t.getUTCHours(),i;switch(a>=17?i=na.evening:a>=12?i=na.afternoon:a>=4?i=na.morning:i=na.night,r){case"B":case"BB":case"BBB":return n.dayPeriod(i,{width:"abbreviated",context:"formatting"});case"BBBBB":return n.dayPeriod(i,{width:"narrow",context:"formatting"});case"BBBB":default:return n.dayPeriod(i,{width:"wide",context:"formatting"})}},h:function(t,r,n){if(r==="ho"){var a=t.getUTCHours()%12;return a===0&&(a=12),n.ordinalNumber(a,{unit:"hour"})}return Pr.h(t,r)},H:function(t,r,n){return r==="Ho"?n.ordinalNumber(t.getUTCHours(),{unit:"hour"}):Pr.H(t,r)},K:function(t,r,n){var a=t.getUTCHours()%12;return r==="Ko"?n.ordinalNumber(a,{unit:"hour"}):_e(a,r.length)},k:function(t,r,n){var a=t.getUTCHours();return a===0&&(a=24),r==="ko"?n.ordinalNumber(a,{unit:"hour"}):_e(a,r.length)},m:function(t,r,n){return r==="mo"?n.ordinalNumber(t.getUTCMinutes(),{unit:"minute"}):Pr.m(t,r)},s:function(t,r,n){return r==="so"?n.ordinalNumber(t.getUTCSeconds(),{unit:"second"}):Pr.s(t,r)},S:function(t,r){return Pr.S(t,r)},X:function(t,r,n,a){var i=a._originalDate||t,o=i.getTimezoneOffset();if(o===0)return"Z";switch(r){case"X":return Tb(o);case"XXXX":case"XX":return Xr(o);case"XXXXX":case"XXX":default:return Xr(o,":")}},x:function(t,r,n,a){var i=a._originalDate||t,o=i.getTimezoneOffset();switch(r){case"x":return Tb(o);case"xxxx":case"xx":return Xr(o);case"xxxxx":case"xxx":default:return Xr(o,":")}},O:function(t,r,n,a){var i=a._originalDate||t,o=i.getTimezoneOffset();switch(r){case"O":case"OO":case"OOO":return"GMT"+Ab(o,":");case"OOOO":default:return"GMT"+Xr(o,":")}},z:function(t,r,n,a){var i=a._originalDate||t,o=i.getTimezoneOffset();switch(r){case"z":case"zz":case"zzz":return"GMT"+Ab(o,":");case"zzzz":default:return"GMT"+Xr(o,":")}},t:function(t,r,n,a){var i=a._originalDate||t,o=Math.floor(i.getTime()/1e3);return _e(o,r.length)},T:function(t,r,n,a){var i=a._originalDate||t,o=i.getTime();return _e(o,r.length)}};function Ab(e,t){var r=e>0?"-":"+",n=Math.abs(e),a=Math.floor(n/60),i=n%60;if(i===0)return r+String(a);var o=t;return r+String(a)+o+_e(i,2)}function Tb(e,t){if(e%60===0){var r=e>0?"-":"+";return r+_e(Math.abs(e)/60,2)}return Xr(e,t)}function Xr(e,t){var r=t||"",n=e>0?"-":"+",a=Math.abs(e),i=_e(Math.floor(a/60),2),o=_e(a%60,2);return n+i+r+o}var Pb=function(t,r){switch(t){case"P":return r.date({width:"short"});case"PP":return r.date({width:"medium"});case"PPP":return r.date({width:"long"});case"PPPP":default:return r.date({width:"full"})}},_b=function(t,r){switch(t){case"p":return r.time({width:"short"});case"pp":return r.time({width:"medium"});case"ppp":return r.time({width:"long"});case"pppp":default:return r.time({width:"full"})}},kW=function(t,r){var n=t.match(/(P+)(p+)?/)||[],a=n[1],i=n[2];if(!i)return Pb(t,r);var o;switch(a){case"P":o=r.dateTime({width:"short"});break;case"PP":o=r.dateTime({width:"medium"});break;case"PPP":o=r.dateTime({width:"long"});break;case"PPPP":default:o=r.dateTime({width:"full"});break}return o.replace("{{date}}",Pb(a,r)).replace("{{time}}",_b(i,r))},NW={p:_b,P:kW},DW=["D","DD"],IW=["YY","YYYY"];function LW(e){return DW.indexOf(e)!==-1}function RW(e){return IW.indexOf(e)!==-1}function Eb(e,t,r){if(e==="YYYY")throw new RangeError("Use `yyyy` instead of `YYYY` (in `".concat(t,"`) for formatting years to the input `").concat(r,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if(e==="YY")throw new RangeError("Use `yy` instead of `YY` (in `".concat(t,"`) for formatting years to the input `").concat(r,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if(e==="D")throw new RangeError("Use `d` instead of `D` (in `".concat(t,"`) for formatting days of the month to the input `").concat(r,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if(e==="DD")throw new RangeError("Use `dd` instead of `DD` (in `".concat(t,"`) for formatting days of the month to the input `").concat(r,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"))}var BW={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}},FW=function(t,r,n){var a,i=BW[t];return typeof i=="string"?a=i:r===1?a=i.one:a=i.other.replace("{{count}}",r.toString()),n!=null&&n.addSuffix?n.comparison&&n.comparison>0?"in "+a:a+" ago":a};function uf(e){return function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=t.width?String(t.width):e.defaultWidth,n=e.formats[r]||e.formats[e.defaultWidth];return n}}var WW={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},UW={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},zW={full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},KW={date:uf({formats:WW,defaultWidth:"full"}),time:uf({formats:UW,defaultWidth:"full"}),dateTime:uf({formats:zW,defaultWidth:"full"})},GW={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"},qW=function(t,r,n,a){return GW[t]};function xi(e){return function(t,r){var n=r!=null&&r.context?String(r.context):"standalone",a;if(n==="formatting"&&e.formattingValues){var i=e.defaultFormattingWidth||e.defaultWidth,o=r!=null&&r.width?String(r.width):i;a=e.formattingValues[o]||e.formattingValues[i]}else{var s=e.defaultWidth,l=r!=null&&r.width?String(r.width):e.defaultWidth;a=e.values[l]||e.values[s]}var u=e.argumentCallback?e.argumentCallback(t):t;return a[u]}}var VW={narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},HW={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},YW={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},XW={narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},JW={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},ZW={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},QW=function(t,r){var n=Number(t),a=n%100;if(a>20||a<10)switch(a%10){case 1:return n+"st";case 2:return n+"nd";case 3:return n+"rd"}return n+"th"},eU={ordinalNumber:QW,era:xi({values:VW,defaultWidth:"wide"}),quarter:xi({values:HW,defaultWidth:"wide",argumentCallback:function(t){return t-1}}),month:xi({values:YW,defaultWidth:"wide"}),day:xi({values:XW,defaultWidth:"wide"}),dayPeriod:xi({values:JW,defaultWidth:"wide",formattingValues:ZW,defaultFormattingWidth:"wide"})};function wi(e){return function(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=r.width,a=n&&e.matchPatterns[n]||e.matchPatterns[e.defaultMatchWidth],i=t.match(a);if(!i)return null;var o=i[0],s=n&&e.parsePatterns[n]||e.parsePatterns[e.defaultParseWidth],l=Array.isArray(s)?rU(s,function(f){return f.test(o)}):tU(s,function(f){return f.test(o)}),u;u=e.valueCallback?e.valueCallback(l):l,u=r.valueCallback?r.valueCallback(u):u;var c=t.slice(o.length);return{value:u,rest:c}}}function tU(e,t){for(var r in e)if(e.hasOwnProperty(r)&&t(e[r]))return r}function rU(e,t){for(var r=0;r<e.length;r++)if(t(e[r]))return r}function nU(e){return function(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=t.match(e.matchPattern);if(!n)return null;var a=n[0],i=t.match(e.parsePattern);if(!i)return null;var o=e.valueCallback?e.valueCallback(i[0]):i[0];o=r.valueCallback?r.valueCallback(o):o;var s=t.slice(a.length);return{value:o,rest:s}}}var aU=/^(\d+)(th|st|nd|rd)?/i,iU=/\d+/i,oU={narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},sU={any:[/^b/i,/^(a|c)/i]},lU={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},uU={any:[/1/i,/2/i,/3/i,/4/i]},cU={narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},fU={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},dU={narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},hU={narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},pU={narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},vU={any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},yU={ordinalNumber:nU({matchPattern:aU,parsePattern:iU,valueCallback:function(t){return parseInt(t,10)}}),era:wi({matchPatterns:oU,defaultMatchWidth:"wide",parsePatterns:sU,defaultParseWidth:"any"}),quarter:wi({matchPatterns:lU,defaultMatchWidth:"wide",parsePatterns:uU,defaultParseWidth:"any",valueCallback:function(t){return t+1}}),month:wi({matchPatterns:cU,defaultMatchWidth:"wide",parsePatterns:fU,defaultParseWidth:"any"}),day:wi({matchPatterns:dU,defaultMatchWidth:"wide",parsePatterns:hU,defaultParseWidth:"any"}),dayPeriod:wi({matchPatterns:pU,defaultMatchWidth:"any",parsePatterns:vU,defaultParseWidth:"any"})},mU={code:"en-US",formatDistance:FW,formatLong:KW,formatRelative:qW,localize:eU,match:yU,options:{weekStartsOn:0,firstWeekContainsDate:1}},gU=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,bU=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,xU=/^'([^]*?)'?$/,wU=/''/g,OU=/[a-zA-Z]/;function Ns(e,t,r){var n,a,i,o,s,l,u,c,f,d,h,y,p,v;De(2,arguments);var g=String(t),O=gi(),x=(n=(a=void 0)!==null&&a!==void 0?a:O.locale)!==null&&n!==void 0?n:mU,A=Et((i=(o=(s=(l=void 0)!==null&&l!==void 0?l:void 0)!==null&&s!==void 0?s:O.firstWeekContainsDate)!==null&&o!==void 0?o:(u=O.locale)===null||u===void 0||(c=u.options)===null||c===void 0?void 0:c.firstWeekContainsDate)!==null&&i!==void 0?i:1);if(!(A>=1&&A<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var m=Et((f=(d=(h=(y=void 0)!==null&&y!==void 0?y:void 0)!==null&&h!==void 0?h:O.weekStartsOn)!==null&&d!==void 0?d:(p=O.locale)===null||p===void 0||(v=p.options)===null||v===void 0?void 0:v.weekStartsOn)!==null&&f!==void 0?f:0);if(!(m>=0&&m<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");if(!x.localize)throw new RangeError("locale must contain localize property");if(!x.formatLong)throw new RangeError("locale must contain formatLong property");var w=Ue(e);if(!xW(w))throw new RangeError("Invalid time value");var T=gW(w),_=SW(w,T),$={firstWeekContainsDate:A,weekStartsOn:m,locale:x,_originalDate:w},R=g.match(bU).map(function(P){var j=P[0];if(j==="p"||j==="P"){var L=NW[j];return L(P,x.formatLong)}return P}).join("").match(gU).map(function(P){if(P==="''")return"'";var j=P[0];if(j==="'")return SU(P);var L=MW[j];if(L)return RW(P)&&Eb(P,t,String(e)),LW(P)&&Eb(P,t,String(e)),L(_,P,x.localize,$);if(j.match(OU))throw new RangeError("Format string contains an unescaped latin alphabet character `"+j+"`");return P}).join("");return R}function SU(e){var t=e.match(xU);return t?t[1].replace(wU,"'"):e}function jb(e,t){De(2,arguments);var r=Ue(e),n=Ue(t);return r.getTime()<n.getTime()}function AU(e,t){De(2,arguments);var r=Ue(e).getTime(),n=Ue(t.start).getTime(),a=Ue(t.end).getTime();if(!(n<=a))throw new RangeError("Invalid interval");return r>=n&&r<=a}function Ds(e,t){De(2,arguments);var r=Et(t);return pW(e,-r)}function $b(e,t){De(2,arguments);var r=Et(t);return lf(e,-r)}const Cb=({children:e})=>{const[t,r]=S.useState(!1);return S.useEffect(()=>(r(!0),()=>r(!1)),[]),t?Qr.createPortal(e,document.body):null};function Mb({className:e,defaultValue:t,onDateRangeChange:r}){console.log("🗓️ DateRangePicker component rendered with props:",{className:e,defaultValue:t,hasCallback:!!r});const n=[{label:"Today",value:"today",dateRange:{from:Yr(new Date),to:new Date}},{label:"Yesterday",value:"yesterday",dateRange:{from:Yr(Ds(new Date,1)),to:wW(Ds(new Date,1))}},{label:"This week",value:"thisWeek",dateRange:{from:mW(new Date),to:new Date}},{label:"Last 7 days",value:"7d",dateRange:{from:Yr(Ds(new Date,6)),to:new Date}},{label:"This month",value:"thisMonth",dateRange:{from:OW(new Date),to:new Date}},{label:"Last 30 days",value:"30d",dateRange:{from:Yr(Ds(new Date,29)),to:new Date}},{label:"Last 3 months",value:"90d",dateRange:{from:Yr($b(new Date,3)),to:new Date}}],a=t?n.find(E=>E.value===t):null;console.log("📅 DateRangePicker initialization:",{defaultValue:t,defaultPreset:a==null?void 0:a.label,hasDateRange:!!(a!=null&&a.dateRange),allPresetValues:n.map(E=>E.value),foundPreset:!!a});const[i,o]=S.useState(a==null?void 0:a.dateRange),[s,l]=S.useState(a==null?void 0:a.dateRange),[u,c]=S.useState(!1),[f,d]=S.useState((a==null?void 0:a.label)||null),[h,y]=S.useState((a==null?void 0:a.label)||null),[p,v]=S.useState(new Date),[g,O]=S.useState(null),[x,A]=S.useState({top:0,left:0}),m=S.useRef(null),w=S.useRef(null);S.useEffect(()=>{var E,F;console.log("📅 DateRangePicker useEffect running:",{hasDefaultPreset:!!a,hasOnDateRangeChange:!!r,currentDate:i,currentLabel:f,defaultValue:t,defaultPresetLabel:a==null?void 0:a.label,defaultPresetValue:a==null?void 0:a.value}),a!=null&&a.dateRange&&r?(console.log("📅 DateRangePicker: Setting initial default value:",{label:a.label,dateRange:a.dateRange,from:(E=a.dateRange.from)==null?void 0:E.toLocaleDateString(),to:(F=a.dateRange.to)==null?void 0:F.toLocaleDateString()}),r(a.dateRange)):console.log("📅 DateRangePicker: NOT setting initial value because:",{hasDefaultPreset:!!a,hasDateRange:!!(a!=null&&a.dateRange),hasCallback:!!r,presetLabelsAvailable:n.map(U=>`${U.value}:${U.label}`)})},[]),S.useEffect(()=>{t&&(a!=null&&a.dateRange)&&(console.log("📅 DateRangePicker: DefaultValue changed, updating state:",{defaultValue:t,label:a.label}),o(a.dateRange),d(a.label),l(a.dateRange),y(a.label))},[t]);const T=()=>{if(!w.current)return;const E=w.current.getBoundingClientRect(),F=window.scrollY,U=window.scrollX,k=window.innerWidth,N=window.innerHeight,I=720,W=450;let z=E.bottom+F+8,V=E.left+U;V+I>k&&(V=E.right+U-I),V+I>k&&(V=k-I-20),z+W>N&&(z=E.top+F-W-8),V<20&&(V=20),z<20&&(z=20),A({top:z,left:V})};S.useEffect(()=>{const E=()=>{u&&T()};return u&&(window.addEventListener("resize",E),window.addEventListener("scroll",E)),()=>{window.removeEventListener("resize",E),window.removeEventListener("scroll",E)}},[u]);const _=(E,F)=>{if(l(E),y(F),O(null),E.from){const U=new Date(E.from.getFullYear(),E.from.getMonth(),1);v(U)}},$=E=>{if(!g)O(E),l({from:E,to:E}),y(null);else{const F=jb(E,g)?E:g,U=jb(E,g)?g:E;l({from:F,to:U}),O(null),y(null)}},R=()=>{o(s),d(h),r==null||r(s),c(!1),O(null)},P=()=>{l(void 0),y(null),o(void 0),d(null),r==null||r(void 0),c(!1),O(null)},j=E=>{E?(l(i),y(f),O(null),setTimeout(T,0)):(l(i),y(f),O(null)),c(E)},L=(E,F)=>(console.log("📅 formatDateRange called with:",{presetLabel:F,hasDateRange:!!(E!=null&&E.from)}),F||(E!=null&&E.from?!E.to||bi(E.from,E.to)?Ns(E.from,"MMM dd, yyyy"):`${Ns(E.from,"MMM dd, yyyy")} - ${Ns(E.to,"MMM dd, yyyy")}`:"Pick a date range")),B=(E=0)=>{const F=lf(p,E),U=F.getFullYear(),k=F.getMonth(),N=new Date(U,k,1),W=new Date(U,k+1,0).getDate(),z=N.getDay(),V=["January","February","March","April","May","June","July","August","September","October","November","December"],Z=["Su","Mo","Tu","We","Th","Fr","Sa"],Q=[],te=new Date(U,k-1,0).getDate();for(let J=z-1;J>=0;J--){const D=te-J,ie=new Date(U,k-1,D);Q.push(b.jsx("button",{onClick:()=>$(ie),className:"h-8 w-8 text-xs text-gray-400 hover:bg-gray-100 rounded flex items-center justify-center",children:D},`prev-${D}`))}for(let J=1;J<=W;J++){const D=new Date(U,k,J),ie=bi(D,new Date),q=(s==null?void 0:s.from)&&(s==null?void 0:s.to)&&AU(D,{start:s.from,end:s.to}),ee=(s==null?void 0:s.from)&&bi(D,s.from),oe=(s==null?void 0:s.to)&&bi(D,s.to),Ce=g&&bi(D,g);let Te="h-8 w-8 text-xs hover:bg-gray-100 rounded flex items-center justify-center transition-colors ";ie&&(Te+="font-semibold "),Ce||ee||oe?Te+="bg-blue-500 text-white hover:bg-blue-600 ":q&&(Te+="bg-blue-100 text-blue-900 "),Q.push(b.jsx("button",{onClick:()=>$(D),className:Te,children:J},`current-${J}`))}const Y=Math.ceil((z+W)/7)*7-z-W;for(let J=1;J<=Y;J++){const D=new Date(U,k+1,J);Q.push(b.jsx("button",{onClick:()=>$(D),className:"h-8 w-8 text-xs text-gray-400 hover:bg-gray-100 rounded flex items-center justify-center",children:J},`next-${J}`))}return b.jsxs("div",{className:"p-3",children:[b.jsxs("div",{className:"flex items-center justify-between mb-3",children:[E===0&&b.jsx("button",{onClick:()=>v($b(p,1)),className:"p-1 hover:bg-gray-100 rounded",children:b.jsx(Zb,{className:"h-4 w-4"})}),b.jsxs("div",{className:"font-medium text-sm",children:[V[k]," ",U]}),E===1&&b.jsx("button",{onClick:()=>v(lf(p,1)),className:"p-1 hover:bg-gray-100 rounded",children:b.jsx(Qb,{className:"h-4 w-4"})})]}),b.jsx("div",{className:"grid grid-cols-7 gap-1 mb-2",children:Z.map(J=>b.jsx("div",{className:"h-8 flex items-center justify-center text-xs font-medium text-gray-500",children:J},J))}),b.jsx("div",{className:"grid grid-cols-7 gap-1",children:Q})]})},M=()=>"fixed bg-white border border-gray-200 rounded-lg shadow-xl z-[99999]";return b.jsxs("div",{className:`relative ${e}`,children:[b.jsxs("button",{ref:w,onClick:()=>j(!u),className:`min-w-[200px] px-3 py-2 text-left border border-gray-300 rounded-md shadow-sm bg-white hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500 flex items-center ${i?"text-gray-900":"text-gray-500"}`,children:[b.jsx(yf,{className:"mr-2 h-4 w-4"}),(()=>{const E=L(i,f);return console.log("📅 Button display text:",{displayText:E,date:i,selectedPresetLabel:f}),E})()]}),u&&b.jsxs(Cb,{children:[b.jsx("div",{className:"fixed inset-0 z-[99998] bg-black bg-opacity-10",onClick:()=>j(!1)}),b.jsxs("div",{ref:m,className:M(),style:{top:x.top,left:x.left,width:"720px",minWidth:"720px",maxHeight:"90vh"},onClick:E=>E.stopPropagation(),children:[b.jsxs("div",{className:"flex",children:[b.jsxs("div",{className:"flex flex-col gap-1 p-3 border-r border-gray-200 w-[160px] flex-shrink-0",children:[b.jsx("div",{className:"text-sm font-medium text-gray-500 mb-2",children:"Presets"}),n.map(E=>b.jsx("button",{onClick:()=>_(E.dateRange,E.label),className:`text-left px-2 py-1.5 text-sm rounded hover:bg-gray-100 transition-colors ${h===E.label?"bg-gray-100":""}`,children:E.label},E.label))]}),b.jsxs("div",{className:"flex flex-1",children:[B(0),B(1)]})]}),b.jsxs("div",{className:"border-t border-gray-200 p-3 flex justify-end gap-2",children:[b.jsx("button",{onClick:P,className:"px-3 py-1.5 text-sm border border-gray-300 rounded hover:bg-gray-50 transition-colors",children:"Clear"}),b.jsx("button",{onClick:R,disabled:!(s!=null&&s.from),className:"px-3 py-1.5 text-sm bg-blue-600 text-white rounded hover:bg-blue-700 disabled:opacity-50 disabled:cursor-not-allowed transition-colors",children:"Apply"})]})]})]})]})}class kb{constructor(t=""){Bt(this,"API_PATH","/tracing/api/trpc/metrics.getMetrics");Bt(this,"baseUrl","");Bt(this,"endpoints",{});this.baseUrl=t,this.initializeEndpoints()}setBaseUrl(t){this.baseUrl=t,this.initializeEndpoints()}getEndpoint(t){return this.endpoints[t]||{endpoint:"",method:"GET"}}getBaseUrl(){return this.baseUrl}initializeEndpoints(){const t=`${this.baseUrl}${this.API_PATH}`;this.endpoints["usage-analytics.cards"]={endpoint:t,method:"GET",baseEndpoint:this.API_PATH},this.endpoints["usage-analytics.sessions.timeseries"]={endpoint:t,method:"GET",baseEndpoint:this.API_PATH},this.endpoints["usage-analytics.messages.timeseries"]={endpoint:t,method:"GET",baseEndpoint:this.API_PATH},this.endpoints["usage-analytics.users.timeseries"]={endpoint:t,method:"GET",baseEndpoint:this.API_PATH},this.endpoints["usage-analytics.tokens.timeseries"]={endpoint:t,method:"GET",baseEndpoint:this.API_PATH},this.endpoints["runs.cards"]={endpoint:t,method:"GET",baseEndpoint:this.API_PATH},this.endpoints["runs.agent-runs.timeseries"]={endpoint:t,method:"GET",baseEndpoint:this.API_PATH},this.endpoints["runs.model-runs.timeseries"]={endpoint:t,method:"GET",baseEndpoint:this.API_PATH},this.endpoints["runs.tool-runs.timeseries"]={endpoint:t,method:"GET",baseEndpoint:this.API_PATH}}getAvailableEndpoints(){return Object.keys(this.endpoints)}hasEndpoint(t){return t in this.endpoints}}class Nb{constructor(t){Bt(this,"endpointsService");Bt(this,"defaultHeaders");Bt(this,"timeout");this.endpointsService=new kb(t.baseUrl),this.defaultHeaders={"Content-Type":"application/json",...t.defaultHeaders},this.timeout=t.timeout||3e4}updateConfig(t){t.baseUrl&&this.endpointsService.setBaseUrl(t.baseUrl),t.defaultHeaders&&(this.defaultHeaders={...this.defaultHeaders,...t.defaultHeaders}),t.timeout&&(this.timeout=t.timeout)}async invoke(t,r,n,a){const i=this.endpointsService.getEndpoint(t);if(!i.endpoint)throw new Error(`Endpoint not found for service: ${t}`);const o=this.prepareRequest(i,r,n);try{const s=new AbortController,l=setTimeout(()=>s.abort(),(a==null?void 0:a.timeout)||this.timeout),u=await fetch(o.url,{method:o.method,headers:o.headers,body:o.body,signal:(a==null?void 0:a.signal)||s.signal});if(clearTimeout(l),!u.ok)throw new Error(`HTTP Error: ${u.status} ${u.statusText}`);return await u.json()}catch(s){throw s instanceof Error?s.name==="AbortError"?new Error("Request timeout"):s:new Error("Unknown error occurred during API call")}}prepareRequest(t,r,n){const a={...this.defaultHeaders,...n},i={};Object.entries(a).forEach(([l,u])=>{u!==void 0&&(i[l]=u)});let o=t.endpoint,s;if(t.method==="GET"&&r){const l=this.buildQueryParams(r);o+=`?${l}`}else r&&(s=JSON.stringify(r));return{url:o,method:t.method,headers:i,body:s}}buildQueryParams(t){const r={json:t},n=new URLSearchParams;return n.append("input",JSON.stringify(r)),n.append("rnd",Math.random().toString(36).substring(7)),n.toString()}getBaseUrl(){return this.endpointsService.getBaseUrl()}hasEndpoint(t){return this.endpointsService.hasEndpoint(t)}getAvailableEndpoints(){return this.endpointsService.getAvailableEndpoints()}}class ur{constructor(t){Bt(this,"apiInvoker");Bt(this,"projectId");Bt(this,"environment");Bt(this,"defaultTimeRange");const r={baseUrl:t.baseUrl,defaultHeaders:t.headers,timeout:3e4};this.apiInvoker=new Nb(r),this.projectId=t.projectId,this.environment=t.environment,this.defaultTimeRange=t.defaultTimeRange}updateConfig(t){(t.baseUrl||t.headers)&&this.apiInvoker.updateConfig({baseUrl:t.baseUrl,defaultHeaders:t.headers}),t.projectId&&(this.projectId=t.projectId),t.environment&&(this.environment=t.environment),t.defaultTimeRange&&(this.defaultTimeRange=t.defaultTimeRange,console.log("🔄 API Service: Updated defaultTimeRange:",this.defaultTimeRange))}getDefaultTimeRange(){return this.defaultTimeRange||ur.getDateRange(30)}async fetchEnvironments(){try{const r=`${this.apiInvoker.getBaseUrl()}/aaa/api/v1/apps/${this.projectId}/environments?rnd=${Math.random().toString(36).substring(2,8)}`;console.log("🌍 Fetching environments for project:",this.projectId),console.log("🔗 Environment API URL:",r);const n=await fetch(r,{method:"GET",headers:{"Content-Type":"application/json",...this.apiInvoker.defaultHeaders}});if(!n.ok)throw new Error(`HTTP error! status: ${n.status}`);const a=await n.json();return console.log("✅ Environments fetched successfully:",a.map(i=>({name:i.envName,enabled:i.isEnabled,status:i.status}))),a}catch(t){throw console.error("❌ Error fetching environments:",t),t}}async fetchUsageAnalyticsCards(t,r,n,a=[]){const i=n||ur.getTimeDimension(t,r);console.log("📊 Fetching usage analytics cards:",{dateRange:{fromTimestamp:t,toTimestamp:r},providedTimeDimension:n,resolvedTimeDimension:i});const o={projectId:this.projectId,type:"cards",category:"usage-analytics",envId:this.environment,fromTimestamp:t,toTimestamp:r,filter:a,includeTrends:!0,timeDimension:i};return(await this.apiInvoker.invoke("usage-analytics.cards",o)).result.data.json}async fetchRunsCards(t,r,n,a=[]){const i=n||ur.getTimeDimension(t,r);console.log("📊 Fetching runs cards:",{dateRange:{fromTimestamp:t,toTimestamp:r},providedTimeDimension:n,resolvedTimeDimension:i});const o={projectId:this.projectId,type:"cards",category:"runs",envId:this.environment,fromTimestamp:t,toTimestamp:r,filter:a,includeTrends:!0,timeDimension:i};return(await this.apiInvoker.invoke("runs.cards",o)).result.data.json}async fetchTimeSeriesData(t,r,n,a,i,o=[]){const s=i||ur.getTimeDimension(n,a);console.log("📊 Fetching time series data:",{metric:t,category:r,dateRange:{fromTimestamp:n,toTimestamp:a},providedTimeDimension:i,resolvedTimeDimension:s});const l=`${r}.${t}.timeseries`,u={projectId:this.projectId,type:"time-series",category:r,envId:this.environment,fromTimestamp:n,toTimestamp:a,filter:o,metric:t,timeDimension:s};return(await this.apiInvoker.invoke(l,u)).result.data.json}transformUsageAnalyticsCards(t){const r=t.data.trends;console.log("Transforming usage analytics cards with trends:",r);const n=a=>a>0?"increase":"decrease";return[{title:"Users",value:t.data.users,metricType:"users",icon:"users",highlighted:!0,change:r!=null&&r.users?{value:Math.abs(r.users.changePercent),type:n(r.users.changePercent)}:void 0},{title:"Sessions",value:t.data.sessions,metricType:"sessions",icon:"activity",highlighted:!1,change:r!=null&&r.sessions?{value:Math.abs(r.sessions.changePercent),type:n(r.sessions.changePercent)}:void 0},{title:"Messages",value:t.data.messages.total,metricType:"messages",icon:"message-circle",info:`Input: ${t.data.messages.input}, Output: ${t.data.messages.output}`,highlighted:!1,change:r!=null&&r.messages?{value:Math.abs(r.messages.changePercent.total),type:n(r.messages.changePercent.total)}:void 0},{title:"Tokens",value:t.data.tokens.total,metricType:"tokens",icon:"coins",info:`Input: ${t.data.tokens.input}, Output: ${t.data.tokens.output}`,highlighted:!1,change:r!=null&&r.tokens?{value:Math.abs(r.tokens.changePercent.total),type:n(r.tokens.changePercent.total)}:void 0}]}transformRunsCards(t){const r=t.data.trends;console.log("Transforming runs cards with trends:",r);const n=a=>a>0?"increase":"decrease";return[{title:"Agent Runs",value:t.data.agentRuns,metricType:"agentRuns",icon:"bot",highlighted:!0,change:r!=null&&r.agentRuns?{value:Math.abs(r.agentRuns.changePercent),type:n(r.agentRuns.changePercent)}:void 0},{title:"Tool Runs",value:t.data.toolRuns.total,metricType:"toolRuns",icon:"wrench",info:`Code: ${t.data.toolRuns.codeTools}, Library: ${t.data.toolRuns.libraryTools}, Knowledge: ${t.data.toolRuns.knowledgeTools}, MCP: ${t.data.toolRuns.mcpTools}`,highlighted:!1,change:r!=null&&r.toolRuns?{value:Math.abs(r.toolRuns.changePercent.total),type:n(r.toolRuns.changePercent.total)}:void 0},{title:"Model Runs",value:t.data.modelRuns,metricType:"modelRuns",icon:"cpu",highlighted:!1,change:r!=null&&r.modelRuns?{value:Math.abs(r.modelRuns.changePercent),type:n(r.modelRuns.changePercent)}:void 0}]}transformTimeSeriesDataForMetric(t,r){var a;if(console.log("=== METRIC-SPECIFIC TRANSFORM DEBUG ==="),console.log("Raw TimeSeriesResponse:",JSON.stringify(t,null,2)),console.log("Metric type:",r),!t||!t.data||!Array.isArray(t.data))return console.error("Invalid time series data structure:",t),[];const n=t.data.map((i,o)=>{console.log(`Processing point ${o}:`,i);const s=new Date(i.timestamp),l=s.toISOString().split("T")[0],u=s.toLocaleDateString("en-US",{month:"short",day:"numeric"}),c={date:l,timestamp:u,formattedDate:u,count:i.count||0,value:i.count||0,input_tokens:i.input_tokens||0,output_tokens:i.output_tokens||0,total_tokens:(i.input_tokens||0)+(i.output_tokens||0),inputTokens:i.input_tokens||0,outputTokens:i.output_tokens||0,totalTokens:(i.input_tokens||0)+(i.output_tokens||0),listView:i.listView||[],index:o};switch(r){case"users":c.users=i.count||0;break;case"sessions":c.sessions=i.count||0;break;case"messages":c.messages=i.count||0;break;case"tokens":c.tokens=i.count||0,i.input_tokens||i.output_tokens?c.totalTokens=(i.input_tokens||0)+(i.output_tokens||0):c.totalTokens=i.count||0;break;case"agentRuns":c.agentRuns=i.count||0;break;case"toolRuns":c.toolRuns=i.count||0;break;case"modelRuns":c.modelRuns=i.count||0;break;default:c.users=i.count||0,c.sessions=i.count||0,c.messages=i.count||0,c.tokens=i.count||0,c.agentRuns=i.count||0,c.toolRuns=i.count||0,c.modelRuns=i.count||0}return console.log(`Transformed point ${o} for metric ${r}:`,c),c});return console.log("Final transformed data array:",JSON.stringify(n,null,2)),console.log("Sample transformed point for chart:",n[0]),console.log("Populated metric property:",r,"=",(a=n[0])==null?void 0:a[r||"count"]),console.log("=== END METRIC-SPECIFIC TRANSFORM DEBUG ==="),n}transformTimeSeriesData(t){return this.transformTimeSeriesDataForMetric(t)}transformAgentsListViewToTable(t){return Array.isArray(t)?t.map((r,n)=>{var o,s;let a="",i=null;if(r.icon)try{if(i=typeof r.icon=="string"?JSON.parse(r.icon):r.icon,i.name){const l=((o=r.agentName)==null?void 0:o.replace(/\s+/g,""))||`agent${n}`,u=((s=i.color)==null?void 0:s.replace("#",""))||"b6e3f4";a=`https://api.dicebear.com/7.x/avataaars/svg?seed=${l}&backgroundColor=${u}&backgroundType=solid`}}catch{console.warn("Failed to parse icon data:",r.icon)}return{id:`agent-${n+1}`,name:r.agentName||`Agent ${n+1}`,runs:r.count||0,responseTime:r.avgResponseTime?`${Math.round(r.avgResponseTime)}s`:"0s",tokens:r.tokens||Math.floor((r.count||0)*150),successRate:r.successRate?`${Math.round(r.successRate)}%`:"95%",lastRun:r.lastRun||new Date(Date.now()-Math.random()*7*24*60*60*1e3).toLocaleDateString(),avatar:a||`https://api.dicebear.com/7.x/avataaars/svg?seed=agent${n}&backgroundColor=b6e3f4,c0aede,d1d4f9&backgroundType=solid`,icon:r.icon||void 0}}):(console.warn("Invalid listView data for agents:",t),[])}transformToolsListViewToTable(t){if(!Array.isArray(t))return console.warn("Invalid listView data for tools:",t),[];const r=n=>{const a=n.toLowerCase();return a.includes("calculate")||a.includes("compute")?"Code Tool":a.includes("workflow")||a.includes("process")?"Workflow Tool":a.includes("mcp")||a.includes("protocol")?"MCP Tool":a.includes("knowledge")||a.includes("search")||a.includes("fetch")?"Knowledge":"Code Tool"};return t.map((n,a)=>({id:`tool-${a+1}`,name:n.toolName||`Tool ${a+1}`,type:n.type||r(n.toolName||""),runs:n.count||0,responseTime:n.avgResponseTime?`${Math.round(n.avgResponseTime)}s`:"0s",tokens:n.tokens||Math.floor((n.count||0)*50),successRate:n.successRate?`${Math.round(n.successRate)}%`:"92%",lastRun:n.lastRun||new Date(Date.now()-Math.random()*7*24*60*60*1e3).toLocaleDateString(),icon:n.icon||void 0}))}transformModelsListViewToTable(t){if(!Array.isArray(t))return console.warn("Invalid listView data for models:",t),[];const r=n=>{const a=n.toLowerCase();return a.includes("gpt")||a.includes("openai")?"⚡":a.includes("claude")||a.includes("anthropic")?"A":a.includes("gemini")||a.includes("google")?"G":a.includes("llama")||a.includes("meta")?"M":"🤖"};return t.map((n,a)=>({id:`model-${a+1}`,name:n.modelName||`Model ${a+1}`,runs:n.count||0,responseTime:n.avgResponseTime?`${Math.round(n.avgResponseTime)}s`:"0s",tokens:n.tokens||Math.floor((n.count||0)*300),successRate:n.successRate?`${Math.round(n.successRate)}%`:"98%",lastRun:n.lastRun||new Date(Date.now()-Math.random()*7*24*60*60*1e3).toLocaleDateString(),icon:r(n.modelName||"")}))}extractAgentControlOptions(t){if(!Array.isArray(t))return[{label:"All Agents",value:"all"}];const r=[{label:"All Agents",value:"all"}];return t.forEach(n=>{var a;if(n.agentName){let i="";try{if(n.icon){const o=typeof n.icon=="string"?JSON.parse(n.icon):n.icon;if(o.name){const s=n.agentName.replace(/\s+/g,""),l=((a=o.color)==null?void 0:a.replace("#",""))||"b6e3f4";i=`https://api.dicebear.com/7.x/avataaars/svg?seed=${s}&backgroundColor=${l}&backgroundType=solid`}}}catch{console.warn("Failed to parse icon data for control:",n.icon)}r.push({label:n.agentName,value:n.agentName.replace(/\s+/g,"").toLowerCase(),avatar:i||`https://api.dicebear.com/7.x/avataaars/svg?seed=${n.agentName.replace(/\s+/g,"")}&backgroundColor=b6e3f4,c0aede,d1d4f9&backgroundType=solid`})}}),r}extractToolControlOptions(t){if(!Array.isArray(t))return[{label:"All Tools",value:"all"}];const r=[{label:"All Tools",value:"all"}];return t.forEach(n=>{if(n.toolName){const a=i=>{const o=i.toLowerCase();return o.includes("calculate")||o.includes("compute")?"Code Tool":o.includes("workflow")||o.includes("process")?"Workflow Tool":o.includes("mcp")||o.includes("protocol")?"MCP Tool":o.includes("knowledge")||o.includes("search")||o.includes("fetch")?"Knowledge":"Code Tool"};r.push({label:n.toolName,value:n.toolName.replace(/[-]/g,""),icon:n.icon||void 0,type:n.type||a(n.toolName)})}}),r}extractModelControlOptions(t){if(!Array.isArray(t))return[{label:"All Models",value:"all"}];const r=[{label:"All Models",value:"all"}],n=a=>{const i=a.toLowerCase();return i.includes("gpt")||i.includes("openai")?"⚡":i.includes("claude")||i.includes("anthropic")?"A":i.includes("gemini")||i.includes("google")?"G":i.includes("llama")||i.includes("meta")?"M":"🤖"};return t.forEach(a=>{a.modelName&&r.push({label:a.modelName,value:a.modelName.replace(/[-\.]/g,""),icon:n(a.modelName)})}),r}async fetchTimeSeriesDataWithTableData(t,r,n,a,i,o=[]){const s=await this.fetchTimeSeriesData(t,r,n,a,i,o);let l=[];s.data.forEach(d=>{d.listView&&Array.isArray(d.listView)&&(l=[...l,...d.listView])});const u=this.aggregateListViewItems(l);let c=[],f=[];return t==="agent-runs"?(c=this.transformAgentsListViewToTable(u),f=this.extractAgentControlOptions(u)):t==="tool-runs"?(c=this.transformToolsListViewToTable(u),f=this.extractToolControlOptions(u)):t==="model-runs"&&(c=this.transformModelsListViewToTable(u),f=this.extractModelControlOptions(u)),{chartData:this.transformTimeSeriesDataForMetric(s,t.replace("-","")),tableData:c,controlOptions:f}}aggregateListViewItems(t){const r=new Map;return t.forEach(n=>{const a=n.agentName||n.toolName||n.modelName||"unknown";if(r.has(a)){const i=r.get(a);i.count=(i.count||0)+(n.count||0),i.avgResponseTime=i.avgResponseTime&&n.avgResponseTime?(i.avgResponseTime+n.avgResponseTime)/2:i.avgResponseTime||n.avgResponseTime,i.tokens=(i.tokens||0)+(n.tokens||0)}else r.set(a,{...n})}),Array.from(r.values())}async fetchEnhancedMetricsData(t,r,n,a=[]){try{const[i,o,s]=await Promise.all([this.fetchTimeSeriesDataWithTableData("agent-runs","runs",t,r,n,a),this.fetchTimeSeriesDataWithTableData("tool-runs","runs",t,r,n,a),this.fetchTimeSeriesDataWithTableData("model-runs","runs",t,r,n,a)]);return{agents:i,tools:o,models:s}}catch(i){throw console.error("Error fetching enhanced metrics data:",i),i}}async transformRunsCardsWithEnhancedData(t,r,n,a,i=[]){const o=t.data.trends,s=h=>h>0?"increase":"decrease",[l,u,c,f]=await Promise.all([this.fetchTimeSeriesDataWithTableData("agent-runs","runs",r,n,a,i),this.fetchTimeSeriesDataWithTableData("tool-runs","runs",r,n,a,i),this.fetchTimeSeriesDataWithTableData("model-runs","runs",r,n,a,i),this.fetchTimeSeriesData("tool-runs","runs",r,n,a,i)]),d=this.transformTimeSeriesDataForToolRuns(f);return[{title:"Agent Runs",value:t.data.agentRuns,metricType:"agentRuns",icon:"bot",highlighted:!0,info:"Number of agent executions",change:o!=null&&o.agentRuns?{value:Math.abs(o.agentRuns.changePercent),type:s(o.agentRuns.changePercent)}:void 0,view:{type:"chart",chart:{type:"line",title:"Agent Runs",data:l.chartData,dataKey:"agentRuns",color:"#0BA5EC",yAxisLabel:"Number of Agent Runs",height:300,showGrid:!0,curve:"monotone",tooltip:{show:!0,style:"dark"},dateRange:{start:r.split("T")[0],end:n.split("T")[0]}},table:{title:"Agent Runs",data:l.tableData,columns:[{key:"name",title:"Name",width:200,align:"left"},{key:"runs",title:"Runs",width:100,align:"right",formatter:h=>`${Math.floor(h/1e3)}k`},{key:"responseTime",title:"Response Time",width:120,align:"right"},{key:"tokens",title:"Tokens",width:100,align:"right",formatter:h=>`${Math.floor(h/1e3)}k`}]}},controls:{dropdown:{label:"All Agents",options:l.controlOptions,defaultValue:["all"],multiSelect:!0,searchable:!0},toggle:{chartView:!0,tableView:!0}}},{title:"Tool Runs",value:t.data.toolRuns.total,metricType:"toolRuns",icon:"wrench",info:`Code: ${t.data.toolRuns.codeTools}, Library: ${t.data.toolRuns.libraryTools}, Knowledge: ${t.data.toolRuns.knowledgeTools}, MCP: ${t.data.toolRuns.mcpTools}`,highlighted:!1,change:o!=null&&o.toolRuns?{value:Math.abs(o.toolRuns.changePercent.total),type:s(o.toolRuns.changePercent.total)}:void 0,view:{type:"chart",chart:{type:"line",title:"Tool Runs",data:d,yAxisLabel:"Number of Tool Runs",lines:[{dataKey:"toolRuns",color:"#667085",label:"Tool Runs"},{dataKey:"codeTools",color:"#F38744",label:"Code Tools"},{dataKey:"workflowTools",color:"#2970FF",label:"Workflow Tools"},{dataKey:"knowledgeTools",color:"#7A5AF8",label:"Knowledge"},{dataKey:"mcpTools",color:"#47CD89",label:"MCP Tools"}],height:300,showGrid:!0,showLegend:!0,curve:"monotone",tooltip:{show:!0,style:"dark"},dateRange:{start:r.split("T")[0],end:n.split("T")[0]}},table:{title:"Tool Runs",data:u.tableData,columns:[{key:"name",title:"Name",width:200,align:"left"},{key:"type",title:"Type",width:150,align:"left"},{key:"runs",title:"Runs",width:100,align:"right",formatter:h=>`${Math.floor(h/1e3)}k`},{key:"responseTime",title:"Response Time",width:120,align:"right"}]}},controls:{dropdown:{label:"All Tools",options:u.controlOptions,defaultValue:["all"],multiSelect:!0,searchable:!0},toggle:{chartView:!0,tableView:!0}}},{title:"Model Runs",value:t.data.modelRuns,metricType:"modelRuns",icon:"cpu",highlighted:!1,info:"Number of model inferences",change:o!=null&&o.modelRuns?{value:Math.abs(o.modelRuns.changePercent),type:s(o.modelRuns.changePercent)}:void 0,view:{type:"chart",chart:{type:"line",title:"Model Runs",data:c.chartData,dataKey:"modelRuns",color:"#47CD89",yAxisLabel:"Number of Model Runs",height:300,showGrid:!0,curve:"monotone",tooltip:{show:!0,style:"dark"},dateRange:{start:r.split("T")[0],end:n.split("T")[0]}},table:{title:"Model Runs",data:c.tableData,columns:[{key:"name",title:"Model Name",width:200,align:"left"},{key:"runs",title:"Runs",width:100,align:"right",formatter:h=>`${Math.floor(h/1e3)}k`},{key:"tokens",title:"Tokens",width:120,align:"right",formatter:h=>`${Math.floor(h/1e3)}k`},{key:"responseTime",title:"Response Time",width:120,align:"right"}]}},controls:{dropdown:{label:"All Models",options:c.controlOptions,defaultValue:["all"],multiSelect:!0,searchable:!0},toggle:{chartView:!0,tableView:!0}}}]}async transformUsageAnalyticsCardsWithEnhancedData(t,r,n,a,i=[]){const o=t.data.trends,s=d=>d>0?"increase":"decrease",[l,u,c,f]=await Promise.all([this.fetchTimeSeriesData("users","usage-analytics",r,n,a,i),this.fetchTimeSeriesData("sessions","usage-analytics",r,n,a,i),this.fetchTimeSeriesData("messages","usage-analytics",r,n,a,i),this.fetchTimeSeriesData("tokens","usage-analytics",r,n,a,i)]);return[{title:"Users",value:t.data.users,metricType:"users",icon:"users",highlighted:!0,info:"Total number of unique users",change:o!=null&&o.users?{value:Math.abs(o.users.changePercent),type:s(o.users.changePercent)}:void 0,view:{type:"chart",chart:{type:"line",title:"Total Users",data:this.transformTimeSeriesDataForMetric(l,"users"),dataKey:"users",color:"#4E5BA6",yAxisLabel:"Number of Users",height:300,showGrid:!0,curve:"monotone",tooltip:{show:!0,style:"dark"},dateRange:{start:r.split("T")[0],end:n.split("T")[0]}}}},{title:"Sessions",value:t.data.sessions,metricType:"sessions",icon:"activity",highlighted:!1,info:"Total number of user sessions",change:o!=null&&o.sessions?{value:Math.abs(o.sessions.changePercent),type:s(o.sessions.changePercent)}:void 0,view:{type:"chart",chart:{type:"line",title:"Total Sessions",data:this.transformTimeSeriesDataForMetric(u,"sessions"),dataKey:"sessions",color:"#0BA5EC",yAxisLabel:"Number of Sessions",height:300,showGrid:!0,curve:"monotone",tooltip:{show:!0,style:"dark"},dateRange:{start:r.split("T")[0],end:n.split("T")[0]}}}},{title:"Messages",value:t.data.messages.total,metricType:"messages",icon:"message-circle",info:`Input: ${t.data.messages.input}, Output: ${t.data.messages.output}`,highlighted:!1,change:o!=null&&o.messages?{value:Math.abs(o.messages.changePercent.total),type:s(o.messages.changePercent.total)}:void 0,view:{type:"chart",chart:{type:"line",title:"Total Messages",data:this.transformTimeSeriesDataForMetric(c,"messages"),dataKey:"messages",color:"#E478FA",yAxisLabel:"Number of Messages",height:300,showGrid:!0,curve:"monotone",tooltip:{show:!0,style:"dark"},dateRange:{start:r.split("T")[0],end:n.split("T")[0]}}}},{title:"Tokens",value:t.data.tokens.total,metricType:"tokens",icon:"coins",info:`Input: ${t.data.tokens.input}, Output: ${t.data.tokens.output}`,highlighted:!1,change:o!=null&&o.tokens?{value:Math.abs(o.tokens.changePercent.total),type:s(o.tokens.changePercent.total)}:void 0,view:{type:"chart",chart:{type:"line",title:"Token Usage Breakdown",data:this.transformTimeSeriesDataForMetric(f,"tokens"),yAxisLabel:"Number of Tokens",lines:[{dataKey:"totalTokens",color:"#FF692E",label:"Total Tokens"},{dataKey:"inputTokens",color:"#5925DC",label:"Input Tokens"},{dataKey:"outputTokens",color:"#E478FA",label:"Output Tokens"}],height:300,showGrid:!0,showLegend:!0,curve:"monotone",tooltip:{show:!0,style:"dark"},dateRange:{start:r.split("T")[0],end:n.split("T")[0]}}}}]}transformTimeSeriesDataForToolRuns(t){if(console.log("=== TOOL RUNS SPECIFIC TRANSFORM DEBUG ==="),console.log("Raw TimeSeriesResponse for tool runs:",JSON.stringify(t,null,2)),!t||!t.data||!Array.isArray(t.data))return console.error("Invalid time series data structure:",t),[];const r=t.data.map((n,a)=>{console.log(`Processing point ${a}:`,n);const i=new Date(n.timestamp),o=i.toISOString().split("T")[0],s=i.toLocaleDateString("en-US",{month:"short",day:"numeric"}),l=n.count||0;let u=0,c=0,f=0,d=0;if(n.listView&&Array.isArray(n.listView)){n.listView.forEach(p=>{const v=p.count||0,g=(p.toolType||"").toLowerCase(),O=(p.toolName||"").toLowerCase();console.log("Processing listView item:",{toolType:g,toolName:O,count:v}),g==="tool"||g==="code"||g==="codetool"?u+=v:g==="workflow"||g==="workflowtool"||O.includes("workflow")?c+=v:g==="knowledge"||g==="knowledgetool"||O.includes("knowledge")||O.includes("search")||O.includes("fetch")?f+=v:g==="mcp"||g==="mcptool"||O.includes("mcp")?d+=v:(console.log(`Unknown tool type '${g}' for tool '${O}', defaulting to code tools`),u+=v)}),console.log(`Calculated breakdown for point ${a}:`,{codeTools:u,workflowTools:c,knowledgeTools:f,mcpTools:d,total:u+c+f+d,expectedTotal:l});const y=u+c+f+d;if(Math.abs(y-l)>1){console.warn(`Breakdown total (${y}) doesn't match expected total (${l}) for point ${a}`);const p=l-y;u+=p,console.log(`Adjusted codeTools by ${p} to balance total`)}}else console.log(`No listView data for point ${a}, assigning all ${l} to codeTools`),u=l;const h={date:o,timestamp:s,formattedDate:s,toolRuns:l,value:l,count:l,codeTools:u,workflowTools:c,knowledgeTools:f,mcpTools:d,input_tokens:n.input_tokens||0,output_tokens:n.output_tokens||0,total_tokens:(n.input_tokens||0)+(n.output_tokens||0),inputTokens:n.input_tokens||0,outputTokens:n.output_tokens||0,totalTokens:(n.input_tokens||0)+(n.output_tokens||0),listView:n.listView||[],index:a};return console.log(`Transformed tool runs point ${a}:`,h),h});return console.log("Final tool runs transformed data:",JSON.stringify(r,null,2)),console.log("=== END TOOL RUNS SPECIFIC TRANSFORM DEBUG ==="),r}async fetchAllCardsData(t,r,n=[]){try{const[a,i]=await Promise.all([this.fetchUsageAnalyticsCards(t,r,void 0,n),this.fetchRunsCards(t,r,void 0,n)]);return{usageAnalytics:this.transformUsageAnalyticsCards(a),runs:this.transformRunsCards(i)}}catch(a){throw console.error("Error fetching cards data:",a),a}}async fetchAllCardsDataWithEnhancedViews(t,r,n,a=[]){try{const[i,o]=await Promise.all([this.fetchUsageAnalyticsCards(t,r,n,a),this.fetchRunsCards(t,r,n,a)]),[s,l]=await Promise.all([this.transformUsageAnalyticsCardsWithEnhancedData(i,t,r,n,a),this.transformRunsCardsWithEnhancedData(o,t,r,n,a)]);return{usageAnalytics:s,runs:l}}catch(i){throw console.error("Error fetching enhanced cards data:",i),i}}async fetchDefaultTimeSeriesData(t,r,n,a=[]){try{const[i,o]=await Promise.all([this.fetchTimeSeriesData("sessions","usage-analytics",t,r,n,a),this.fetchTimeSeriesData("agent-runs","runs",t,r,n,a)]);return{sessions:this.transformTimeSeriesData(i),agentRuns:this.transformTimeSeriesData(o)}}catch(i){throw console.error("Error fetching default time series data:",i),i}}static getDateRange(t=30){const r=new Date,n=new Date;return n.setDate(r.getDate()-t),{fromTimestamp:n.toISOString(),toTimestamp:r.toISOString()}}static getTimeDimension(t,r){const n=new Date(t),a=new Date(r),i=new Date(n.getFullYear(),n.getMonth(),n.getDate()),o=new Date(a.getFullYear(),a.getMonth(),a.getDate()),s=o.getTime()-i.getTime(),l=s/(1e3*60*60*24),u=i.toISOString().split("T")[0],c=o.toISOString().split("T")[0],f=u===c,d=new Date(n.getFullYear(),n.getMonth(),n.getDate()),h=f&&Math.abs(n.getTime()-d.getTime())<1e3,y=Math.abs(a.getTime()-n.getTime()),p=y<60*1e3;return console.log("🕐 TimeDimension calculation:",{fromTimestamp:t,toTimestamp:r,fromDateStr:u,toDateStr:c,diffInMs:s,diffInDays:l,isSameCalendarDay:f,isTodayPattern:h,timeDiffInMs:y,isVeryClose:p,fromStartOfDay:d.toISOString(),recommended:f||h||p||l<=1?"hour":l<=31?"day":l<=90?"week":"month"}),f||h||p||l<=1?"hour":"day"}getAvailableMetrics(){return{"usage-analytics":["sessions","messages","users","tokens"],runs:["agent-runs","model-runs","tool-runs"]}}}const TU=({config:e,appConfig:t,className:r,onExport:n,onDraftChange:a,onTimeRangeChange:i})=>{var B;const{title:o,subtitle:s,sections:l,globalControls:u,layout:c={columns:12,gap:24,responsive:!0}}=e,[f,d]=S.useState(!1),[h,y]=S.useState({}),[p,v]=S.useState(l),[g,O]=S.useState([]),[x,A]=S.useState(!1),m=S.useRef(null);S.useEffect(()=>{if(t)try{m.current=new ur(t),w(),T()}catch(M){console.error("Failed to initialize API service:",M)}},[t]);const w=async()=>{if(!(!m.current||!t)){A(!0);try{const M=await m.current.fetchEnvironments();O(M),console.log("🌍 Environments loaded:",M.map(E=>E.envName))}catch(M){console.error("Error loading environments:",M)}finally{A(!1)}}},T=async()=>{if(!(!m.current||!t)){d(!0);try{const M=m.current.getDefaultTimeRange();console.log("📊 Loading dashboard data with date range:",{fromTimestamp:M.fromTimestamp,toTimestamp:M.toTimestamp,fromDate:new Date(M.fromTimestamp).toLocaleDateString(),toDate:new Date(M.toTimestamp).toLocaleDateString()});const E=await m.current.fetchAllCardsDataWithEnhancedViews(M.fromTimestamp,M.toTimestamp);console.log("✅ Enhanced cards data loaded successfully:",E),console.log("📈 Data covers period:",{from:new Date(M.fromTimestamp).toLocaleDateString(),to:new Date(M.toTimestamp).toLocaleDateString()});const F=l.map(U=>U.id==="usage-analytics"?(console.log("Updating usage-analytics section with enhanced data"),{...U,metrics:E.usageAnalytics}):U.id==="runs"?(console.log("Updating runs section with enhanced data including table and controls"),{...U,metrics:E.runs}):U);v(F)}catch(M){console.error("Error loading initial data:",M),v(l)}finally{d(!1)}}},_=async(M,E)=>{if(!(!m.current||!t||!E.metricType)){v(F=>F.map(U=>U.id===M?{...U,metrics:U.metrics.map(k=>({...k,highlighted:k.metricType===E.metricType}))}:U)),y(F=>({...F,[M]:!0}));try{const F=t.defaultTimeRange||ur.getDateRange(30);let U,k;if(["users","sessions","messages","tokens"].includes(E.metricType))U="usage-analytics",k=E.metricType;else if(["agentRuns","toolRuns","modelRuns"].includes(E.metricType))U="runs",k=E.metricType==="agentRuns"?"agent-runs":E.metricType==="toolRuns"?"tool-runs":"model-runs";else return;const N=await m.current.fetchTimeSeriesData(k,U,F.fromTimestamp,F.toTimestamp),I=m.current.transformTimeSeriesDataForMetric(N,E.metricType);console.log("Time series response for",E.title,":",N),console.log("Transformed data for",E.title,":",I),console.log("Metric type used for transformation:",E.metricType);const z=(V=>({users:"users",sessions:"sessions",messages:"messages",tokens:"totalTokens",agentRuns:"agentRuns",toolRuns:"toolRuns",modelRuns:"modelRuns"})[V]||"count")(E.metricType||"count");console.log("Using dataKey for metric",E.metricType,":",z),v(V=>V.map(Z=>{if(Z.id===M){const Q={...Z,view:{...Z.view,chart:Z.view.chart?{...Z.view.chart,data:I,dataKey:z,lines:[{dataKey:z,color:Z.view.chart.color||"#3b82f6",label:E.title,strokeWidth:2}]}:{type:"line",data:I,dataKey:z,lines:[{dataKey:z,color:"#3b82f6",label:E.title,strokeWidth:2}],yAxisLabel:E.title}}};return console.log("Updated section for",M,":",Q),console.log("Chart config set:",Q.view.chart),Q}return Z}))}catch(F){console.error("Error loading metric data:",F)}finally{y(F=>({...F,[M]:!1}))}}},$=M=>{var E,F;if((F=(E=u==null?void 0:u.draft)==null?void 0:E.onChange)==null||F.call(E,M),a==null||a(M),t&&m.current){const U={...t,environment:M};m.current.updateConfig(U),T()}},R=M=>{var E,F;if(console.log("🗓️ Time range change requested:",M),typeof M=="string"&&((F=(E=u==null?void 0:u.timeRange)==null?void 0:E.onChange)==null||F.call(E,M)),i==null||i(M),t&&m.current){let U=null;if(typeof M=="object"&&M.from&&M.to)U={fromTimestamp:M.from.toISOString(),toTimestamp:M.to.toISOString()},console.log("📅 Converting DateRange to API format:",U);else if(typeof M=="string"){const N={"24h":1,"7d":7,"30d":30,"90d":90}[M];N&&(U=ur.getDateRange(N),console.log(`📅 Converting preset "${M}" (${N} days) to API format:`,U))}if(U){const k={...t,defaultTimeRange:U};console.log("🔄 Updating API configuration with new date range:",k.defaultTimeRange),m.current.updateConfig(k),console.log("🚀 Reloading dashboard data with new date range..."),T()}else console.warn("⚠️ Unable to convert time range value to API format:",M)}},P=(M="csv")=>{var E,F;(F=(E=u==null?void 0:u.export)==null?void 0:E.onExport)==null||F.call(E,M),n==null||n()},j=()=>{t&&m.current&&T()},L=Object.values(h).some(M=>M);return b.jsxs("div",{className:ue("mx-auto p-6",r),children:[b.jsx("div",{className:"mb-8",children:b.jsxs("div",{className:"flex items-center justify-between",children:[b.jsxs("div",{children:[b.jsx("h1",{className:"text-3xl font-bold text-gray-900",children:o}),s&&b.jsx("p",{className:"text-gray-600 mt-2",children:s})]}),b.jsxs("div",{className:"flex items-center gap-3",children:[t&&b.jsxs($s,{variant:"outline",onClick:j,disabled:f||L,className:"gap-2",children:[b.jsx(r0,{className:ue("h-4 w-4",(f||L)&&"animate-spin")}),"Refresh"]}),u&&b.jsxs(b.Fragment,{children:[u.draft&&b.jsx(js,{options:g.length>0?g.map(M=>({label:M.envName.charAt(0).toUpperCase()+M.envName.slice(1),value:M.envName})):u.draft.options,value:u.draft.defaultValue,placeholder:x?"Loading environments...":u.draft.label,onChange:$,className:"min-w-[200px]",disabled:f||L||x}),u.timeRange&&(u.timeRange.useDatePicker?(console.log("🗓️ Dashboard: Rendering DateRangePicker with defaultValue:",u.timeRange.defaultValue),b.jsx(Mb,{defaultValue:u.timeRange.defaultValue,onDateRangeChange:M=>{console.log("🗓️ Dashboard: DateRangePicker callback received:",M),M&&R(M)}})):b.jsxs("div",{className:"flex items-center gap-2",children:[b.jsx(yf,{className:"h-4 w-4 text-gray-500"}),b.jsx(js,{options:u.timeRange.options||[],value:u.timeRange.defaultValue,placeholder:u.timeRange.label,onChange:R,className:"min-w-[200px]",disabled:f||L})]})),((B=u.export)==null?void 0:B.enabled)&&b.jsxs($s,{variant:"outline",onClick:()=>P(),className:"gap-2",disabled:f||L,children:[b.jsx(e0,{className:"h-4 w-4"}),"Export"]})]})]})]})}),b.jsx("div",{className:ue("grid gap-6",c.responsive&&"grid-cols-1 lg:grid-cols-12"),style:{gridTemplateColumns:c.responsive?void 0:`repeat(${c.columns}, minmax(0, 1fr))`,gap:c.gap?`${c.gap}px`:void 0},children:p.map(M=>{var E,F,U,k;return b.jsx(wb,{section:M,isLoading:f,isChartLoading:h[M.id]||!1,onMetricClick:N=>_(M.id,N),className:ue(c.responsive&&((E=M.layout)==null?void 0:E.span)===12&&"lg:col-span-12",c.responsive&&((F=M.layout)==null?void 0:F.span)===6&&"lg:col-span-6",c.responsive&&((U=M.layout)==null?void 0:U.span)===4&&"lg:col-span-4",c.responsive&&((k=M.layout)==null?void 0:k.span)===3&&"lg:col-span-3")},M.id)})})]})},Is=["Portfolio Analysis Expert","Mortgage Evaluator","Credit Risk Specialist","Asset Valuation Analyst","Liability Assessment Advisor"],Ls=["calculate-creditScore","calculate-risk","calculate-mortgage","analyse-expenses","fetch-statement"],Rs=["gpt-4o","gpt-4o-mini","gpt-3.5-turbo","claude-3-5-sonnet","claude-3-5-haiku","claude-3-opus","gemini-1.5-pro","gemini-1.5-flash","llama-3.1-405b","llama-3.1-70b"],PU=(e=30)=>{const t=[],r=new Date;for(let n=e-1;n>=0;n--){const a=new Date(r);a.setDate(r.getDate()-n);const i=600+Math.sin(n*.1)*100,o=Math.floor(i+Math.random()*100),s=Math.floor(o*3.5+Math.random()*200),l=Math.floor(s*2.9+Math.random()*500),u=Math.floor(l*.9+Math.random()*300),c=Math.floor(u*.6),f=u-c,d=Math.floor(s*.8+Math.random()*100),h=Math.floor(d*12+Math.random()*500),y=Math.floor(d*8+Math.random()*300),p=Math.floor(h*.3+Math.random()*100),v=Math.floor(h*.25+Math.random()*80),g=Math.floor(h*.2+Math.random()*60),O=Math.floor(h*.15+Math.random()*50),x={};Is.forEach(w=>{const T=w.replace(/\s+/g,"").toLowerCase(),_=Math.floor(d/Is.length);x[T]=Math.floor(_+Math.random()*(_*.5))});const A={};Ls.forEach(w=>{const T=w.replace(/[-]/g,""),_=Math.floor(h/Ls.length);A[T]=Math.floor(_+Math.random()*(_*.8))});const m={};Rs.forEach(w=>{const T=w.replace(/[-\.]/g,""),_=Math.floor(y/Rs.length);m[T]=Math.floor(_+Math.random()*(_*.6))}),t.push({date:a.toISOString().split("T")[0],users:o,sessions:s,messages:l,totalTokens:u,inputTokens:c,outputTokens:f,agentRuns:d,toolRuns:h,modelRuns:y,codeTools:p,workflowTools:v,knowledgeTools:g,mcpTools:O,...x,...A,...m,value:o})}return t},_U=()=>{const e=[],t=['{"name":"avatar14","color":"#F6D0FE","type":"human"}','{"name":"avatar2","color":"#3B82F6","type":"human"}','{"name":"avatar7","color":"#EF4444","type":"human"}','{"name":"avatar12","color":"#10B981","type":"human"}','{"name":"avatar8","color":"#F59E0B","type":"human"}'];return Is.forEach((r,n)=>{e.push({id:`agent-${n+1}`,name:r,runs:Math.floor(Math.random()*8e3)+4e3,responseTime:`${Math.floor(Math.random()*120)+15}s`,tokens:Math.floor(Math.random()*4e5)+1e5,successRate:`${Math.floor(Math.random()*20)+80}%`,lastRun:new Date(Date.now()-Math.random()*7*24*60*60*1e3).toLocaleDateString(),avatar:`https://api.dicebear.com/7.x/avataaars/svg?seed=${r.replace(/\s+/g,"")}&backgroundColor=b6e3f4,c0aede,d1d4f9&backgroundType=solid`,icon:t[n]||t[0]})}),e},EU=()=>{const e=r=>r.includes("calculate-creditscore")?"Code Tool":r.includes("calculate-risk")?"Workflow Tool":r.includes("calculate-mortgage")?"MCP Tool":r.includes("analyse-expenses")?"Workflow Tool":r.includes("fetch-statement")?"Knowledge":"Code Tool",t=['{"name":"calculator","color":"#EF6820","type":"inlineTool"}','{"name":"workflow","color":"#155EEF","type":"toolLibrary"}','{"name":"mcptool","color":"#101828","type":"MCP"}','{"name":"expenses","color":"#155EEF","type":"toolLibrary"}','{"name":"knowledge","color":"#7A5AF8","type":"KNOWLEDGE"}'];return Ls.map((r,n)=>({id:`tool-${n+1}`,name:r,type:e(r),runs:Math.floor(Math.random()*8e3)+4e3,responseTime:`${Math.floor(Math.random()*90)+15}s`,tokens:Math.floor(Math.random()*2e4)+5e3,successRate:`${Math.floor(Math.random()*15)+85}%`,lastRun:new Date(Date.now()-Math.random()*7*24*60*60*1e3).toLocaleDateString(),icon:t[n]||t[0]}))},jU=()=>Rs.map((e,t)=>({id:`model-${t+1}`,name:e,runs:Math.floor(Math.random()*8e3)+4e3,responseTime:`${Math.floor(Math.random()*120)+15}s`,tokens:Math.floor(Math.random()*5e5)+1e5,successRate:`${Math.floor(Math.random()*15)+85}%`,lastRun:new Date(Date.now()-Math.random()*7*24*60*60*1e3).toLocaleDateString()})),Jr=PU(),$U=_U(),CU=EU(),MU=jU(),kU={id:"main-dashboard",title:"Dashboard",subtitle:"Monitor and review the usage of your agentic app.",version:"1.0.0",globalControls:{draft:{label:"Draft",options:[{label:"Current Draft",value:"current"},{label:"Previous Draft",value:"previous"},{label:"All Drafts",value:"all"}],defaultValue:"current"},timeRange:{label:"Time Range",options:[{label:"This month",value:"month"},{label:"Last 7 days",value:"week"},{label:"Last 30 days",value:"30days"},{label:"Last 90 days",value:"90days"}],defaultValue:"month"},export:{enabled:!0,formats:["csv","json","pdf"]}},layout:{columns:12,gap:24,responsive:!0},sections:[{id:"sessions",title:"Sessions",description:"User engagement and session analytics",metrics:[{title:"Users",value:3384,change:{value:6,type:"increase"},info:"Total number of unique users",metricType:"users",view:{type:"chart",chart:{type:"line",title:"Total Users",data:Jr,dataKey:"users",color:"#8b5cf6",yAxisLabel:"Number of Users",height:300,showGrid:!0,curve:"monotone",tooltip:{show:!0,style:"dark"},dateRange:{start:"2025-05-06",end:"2025-06-05"}}}},{title:"Sessions",value:11847,change:{value:18,type:"increase"},info:"Total number of user sessions",metricType:"sessions",view:{type:"chart",chart:{type:"line",title:"Total Sessions",data:Jr,dataKey:"sessions",color:"#06b6d4",yAxisLabel:"Number of Sessions",height:300,showGrid:!0,curve:"monotone",tooltip:{show:!0,style:"dark"},dateRange:{start:"2025-05-06",end:"2025-06-05"}}}},{title:"Messages",value:34563,change:{value:5,type:"increase"},info:"Total messages exchanged",metricType:"messages",view:{type:"chart",chart:{type:"line",title:"Total Messages",data:Jr,dataKey:"messages",color:"#e879f9",yAxisLabel:"Number of Messages",height:300,showGrid:!0,curve:"monotone",tooltip:{show:!0,style:"dark"},dateRange:{start:"2025-05-06",end:"2025-06-05"}}}},{title:"Tokens",value:32044,change:{value:44,type:"increase"},info:"Total tokens processed",metricType:"tokens",view:{type:"chart",chart:{type:"line",title:"Token Usage Breakdown",data:Jr,yAxisLabel:"Number of Tokens",lines:[{dataKey:"totalTokens",color:"#f97316",label:"Total Tokens"},{dataKey:"inputTokens",color:"#3b82f6",label:"Input Tokens"},{dataKey:"outputTokens",color:"#e879f9",label:"Output Tokens"}],height:300,showGrid:!0,showLegend:!0,curve:"monotone",tooltip:{show:!0,style:"dark"},dateRange:{start:"2025-05-06",end:"2025-06-05"}}}}],view:{type:"chart"},layout:{span:12,order:1}},{id:"runs",title:"Runs",description:"Agent, tool, and model execution analytics",metrics:[{title:"Agent Runs",value:3384,change:{value:6,type:"increase"},info:"Number of agent executions",metricType:"agentRuns",view:{type:"chart",chart:{type:"line",title:"Agent Runs",data:Jr,dataKey:"agentRuns",color:"#06b6d4",yAxisLabel:"Number of Agent Runs",height:300,showGrid:!0,curve:"monotone",tooltip:{show:!0,style:"dark"},dateRange:{start:"2025-05-06",end:"2025-06-05"}},table:{title:"Agent Runs",data:$U,columns:[{key:"name",title:"Name",width:200,align:"left"},{key:"runs",title:"Runs",width:100,align:"right",formatter:e=>`${Math.floor(e/1e3)}k`},{key:"responseTime",title:"Response Time",width:120,align:"right"},{key:"tokens",title:"Tokens",width:100,align:"right",formatter:e=>`${Math.floor(e/1e3)}k`}]}},controls:{dropdown:{label:"All Agents",options:[{label:"All Agents",value:"all"},...Is.map(e=>({label:e,value:e.replace(/\s+/g,"").toLowerCase(),avatar:`https://api.dicebear.com/7.x/avataaars/svg?seed=${e.replace(/\s+/g,"")}&backgroundColor=b6e3f4,c0aede,d1d4f9&backgroundType=solid`}))],defaultValue:["all"],multiSelect:!0,searchable:!0},toggle:{chartView:!0,tableView:!0}}},{title:"Tool Runs",value:34563,change:{value:5,type:"increase"},info:"Number of tool executions",metricType:"toolRuns",view:{type:"chart",chart:{type:"line",title:"Tool Runs",data:Jr,yAxisLabel:"Number of Tool Runs",lines:[{dataKey:"toolRuns",color:"#06b6d4",label:"Tool Runs"},{dataKey:"codeTools",color:"#f97316",label:"Code Tools"},{dataKey:"workflowTools",color:"#10b981",label:"Workflow Tools"},{dataKey:"knowledgeTools",color:"#8b5cf6",label:"Knowledge"},{dataKey:"mcpTools",color:"#ef4444",label:"MCP Tools"}],height:300,showGrid:!0,showLegend:!0,curve:"monotone",tooltip:{show:!0,style:"dark"},dateRange:{start:"2025-05-06",end:"2025-06-05"}},table:{title:"Tool Runs",data:CU,columns:[{key:"name",title:"Name",width:200,align:"left"},{key:"type",title:"Type",width:150,align:"left"},{key:"runs",title:"Runs",width:100,align:"right",formatter:e=>`${Math.floor(e/1e3)}k`},{key:"responseTime",title:"Response Time",width:120,align:"right"}]}},controls:{dropdown:{label:"All Tools",options:[{label:"All Tools",value:"all"},...Ls.map((e,t)=>{const r=['{"name":"calculator","color":"#EF6820","type":"inlineTool"}','{"name":"workflow","color":"#155EEF","type":"toolLibrary"}','{"name":"mcptool","color":"#101828","type":"MCP"}','{"name":"expenses","color":"#155EEF","type":"toolLibrary"}','{"name":"knowledge","color":"#7A5AF8","type":"KNOWLEDGE"}'],n=a=>a.includes("calculate-creditscore")?"Code Tool":a.includes("calculate-risk")?"Workflow Tool":a.includes("calculate-mortgage")?"MCP Tool":a.includes("analyse-expenses")?"Workflow Tool":a.includes("fetch-statement")?"Knowledge":"Code Tool";return{label:e,value:e.replace(/[-]/g,""),icon:r[t]||r[0],type:n(e)}})],defaultValue:["all"],multiSelect:!0,searchable:!0},toggle:{chartView:!0,tableView:!0}}},{title:"Model Runs",value:32044,change:{value:44,type:"increase"},info:"Number of model inferences",metricType:"modelRuns",view:{type:"chart",chart:{type:"line",title:"Model Runs",data:Jr,dataKey:"modelRuns",color:"#10b981",yAxisLabel:"Number of Model Runs",height:300,showGrid:!0,curve:"monotone",tooltip:{show:!0,style:"dark"},dateRange:{start:"2025-05-06",end:"2025-06-05"}},table:{title:"Model Runs",data:MU,columns:[{key:"name",title:"Model Name",width:200,align:"left"},{key:"runs",title:"Runs",width:100,align:"right",formatter:e=>`${Math.floor(e/1e3)}k`},{key:"tokens",title:"Tokens",width:120,align:"right",formatter:e=>`${Math.floor(e/1e3)}k`},{key:"responseTime",title:"Response Time",width:120,align:"right"}]}},controls:{dropdown:{label:"All Models",options:[{label:"All Models",value:"all"},...Rs.map(e=>{const t=r=>{const n=r.toLowerCase();return n.includes("gpt")||n.includes("openai")?"⚡":n.includes("claude")||n.includes("anthropic")?"A":n.includes("gemini")||n.includes("google")?"G":n.includes("llama")||n.includes("meta")?"M":"🤖"};return{label:e,value:e.replace(/[-\.]/g,""),icon:t(e)}})],defaultValue:["all"],multiSelect:!0,searchable:!0},toggle:{chartView:!0,tableView:!0}}}],view:{type:"chart"},layout:{span:12,order:2}}]},Ht={primary:["#8b5cf6","#06b6d4","#f97316","#10b981","#ec4899","#f59e0b","#3b82f6","#ef4444"],secondary:["#a78bfa","#22d3ee","#fb923c","#34d399","#f472b6","#fbbf24","#60a5fa","#f87171"],accent:["#6366f1","#8b5cf6","#d946ef","#06b6d4","#84cc16","#eab308"],semantic:{success:"#10b981",warning:"#f59e0b",error:"#ef4444",info:"#3b82f6"},gradients:{purple:["#8b5cf6","#a78bfa"],cyan:["#06b6d4","#22d3ee"],orange:["#f97316","#fb923c"],green:["#10b981","#34d399"],sunset:["#f97316","#ec4899"],ocean:["#06b6d4","#3b82f6"],forest:["#10b981","#84cc16"]}},NU={primary:["#7c3aed","#0891b2","#ea580c","#059669","#db2777","#d97706","#2563eb","#dc2626"],secondary:["#8b5cf6","#06b6d4","#f97316","#10b981","#ec4899","#f59e0b","#3b82f6","#ef4444"],accent:["#4f46e5","#7c3aed","#c026d3","#0891b2","#65a30d","#ca8a04"],semantic:{success:"#059669",warning:"#d97706",error:"#dc2626",info:"#2563eb"}},DU={primary:["#a78bfa","#22d3ee","#fb923c","#34d399","#f472b6","#fbbf24","#60a5fa","#f87171"],secondary:["#c4b5fd","#67e8f9","#fdba74","#6ee7b7","#f9a8d4","#fcd34d","#93c5fd","#fca5a5"],accent:["#818cf8","#a78bfa","#e879f9","#22d3ee","#a3e635","#facc15"],semantic:{success:"#34d399",warning:"#fbbf24",error:"#f87171",info:"#60a5fa"}},IU={primary:["#1f2937","#374151","#6b7280","#9ca3af","#3b82f6","#1d4ed8","#10b981","#f59e0b"],secondary:["#4b5563","#6b7280","#9ca3af","#d1d5db","#60a5fa","#3b82f6","#34d399","#fbbf24"],accent:["#2563eb","#1d4ed8","#059669","#0891b2","#d97706","#b45309"],semantic:{success:"#059669",warning:"#d97706",error:"#dc2626",info:"#1d4ed8"}},Db=(e,t)=>e.primary[t%e.primary.length],Oi=(e,t)=>e.semantic[t],LU=(e,t)=>{var r;return((r=e.gradients)==null?void 0:r[t])||[e.primary[0],e.primary[1]]},Ib=(e,t=Ht)=>e.map((r,n)=>({...r,color:Db(t,n)})),Bs=((e=30)=>{const t=[],r=new Date;for(let n=e-1;n>=0;n--){const a=new Date(r);a.setDate(r.getDate()-n);const i=600+Math.sin(n*.1)*100,o=Math.floor(i+Math.random()*100),s=Math.floor(o*3.5+Math.random()*200),l=Math.floor(s*2.9+Math.random()*500),u=Math.floor(l*.9+Math.random()*300),c=Math.floor(u*.6),f=u-c,d=Math.floor(s*.8+Math.random()*100),h=Math.floor(d*12+Math.random()*500),y=Math.floor(d*8+Math.random()*300);t.push({date:a.toISOString().split("T")[0],users:o,sessions:s,messages:l,totalTokens:u,inputTokens:c,outputTokens:f,agentRuns:d,toolRuns:h,modelRuns:y,value:o})}return t})(),RU={id:"enhanced-dashboard",title:"Enhanced Color Configuration Dashboard",subtitle:"Demonstrating all color configuration options",version:"1.0.0",globalControls:{draft:{label:"Draft",options:[{label:"Current Draft",value:"current"},{label:"Previous Draft",value:"previous"}],defaultValue:"current"},timeRange:{label:"Time Range",options:[{label:"Last 7 days",value:"week"},{label:"Last 30 days",value:"30days"}],defaultValue:"30days"},export:{enabled:!0,formats:["csv","json"]}},layout:{columns:12,gap:24,responsive:!0},sections:[{id:"manual-colors",title:"Manual Color Assignment",description:"Each line has manually assigned colors",metrics:[{title:"Total Users",value:3384,change:{value:6,type:"increase"},info:"Manually colored chart"}],view:{type:"chart",chart:{type:"line",title:"Manual Color Configuration",data:Bs,lines:[{dataKey:"users",color:"#8b5cf6",label:"Users",strokeWidth:3},{dataKey:"sessions",color:"#06b6d4",label:"Sessions",strokeWidth:2},{dataKey:"messages",color:"#f97316",label:"Messages",strokeWidth:2,strokeDasharray:"5 5"}],dateRange:{start:"2025-05-06",end:"2025-06-05"},tooltip:{show:!0,style:"dark"},height:300,showLegend:!1}},layout:{span:6,order:1}},{id:"auto-colors",title:"Auto-Assigned Colors",description:"Colors automatically assigned from palette",metrics:[{title:"Agent Runs",value:3384,change:{value:6,type:"increase"},info:"Auto-colored from palette"}],view:{type:"chart",chart:{type:"line",title:"Auto Color Assignment",data:Bs,lines:Ib([{dataKey:"agentRuns",label:"Agent Runs"},{dataKey:"toolRuns",label:"Tool Runs"},{dataKey:"modelRuns",label:"Model Runs"},{dataKey:"totalTokens",label:"Total Tokens"}],Ht),dateRange:{start:"2025-05-06",end:"2025-06-05"},tooltip:{show:!0,style:"dark"},height:300,showLegend:!1}},layout:{span:6,order:2}},{id:"semantic-colors",title:"Semantic Colors",description:"Using semantic colors for different data types",metrics:[{title:"Success Rate",value:"94.2%",change:{value:2,type:"increase"},info:"Using semantic success color"},{title:"Error Rate",value:"5.8%",change:{value:1,type:"decrease"},info:"Using semantic error color"}],view:{type:"chart",chart:{type:"line",title:"Semantic Color Usage",data:Bs,lines:[{dataKey:"users",color:Oi(Ht,"success"),label:"Successful Operations",strokeWidth:3},{dataKey:"sessions",color:Oi(Ht,"warning"),label:"Warning Events",strokeWidth:2},{dataKey:"messages",color:Oi(Ht,"error"),label:"Error Events",strokeWidth:2},{dataKey:"totalTokens",color:Oi(Ht,"info"),label:"Info Events",strokeWidth:2}],dateRange:{start:"2025-05-06",end:"2025-06-05"},tooltip:{show:!0,style:"dark"},height:300,showLegend:!1}},layout:{span:12,order:3}},{id:"single-custom",title:"Single Line Custom Color",description:"Single line chart with custom color and styling",metrics:[{title:"Total Messages",value:34563,change:{value:5,type:"increase"},info:"Custom styled single line"}],view:{type:"chart",chart:{type:"line",title:"Custom Single Line",data:Bs,dataKey:"messages",color:"#ec4899",dateRange:{start:"2025-05-06",end:"2025-06-05"},tooltip:{show:!0,style:"dark"},height:250,showGrid:!0,curve:"monotone"}},layout:{span:12,order:4}}]},BU={manualColors:{line1:"#8b5cf6",line2:"#06b6d4",line3:"#f97316",line4:"#10b981"},paletteColors:Ht.primary,semanticColors:Ht.semantic,gradientColors:Ht.gradients},FU={baseUrl:window.location.protocol+"//"+window.location.hostname,dashboardType:"agenticDashboard",projectId:"aa-bdbfa4eb-c7c4-4350-be96-d778188c2c4b",environment:"draft",headers:{authorization:"Bearer 2amvsUbh87obVLVYjbNnXCbXnOr-plekM7-qjKt2EJIZnZuAV2KT9WSTG0L4U33X",accountId:"6290f982fb880154e99bbede","Content-Type":"application/json"},defaultTimeRange:{fromTimestamp:new Date(Date.now()-30*24*60*60*1e3).toISOString(),toTimestamp:new Date().toISOString()},refreshInterval:3e4},WU={id:"agentic-analytics-dashboard",title:"Dashboard",subtitle:"Monitor and review the usage of your agentic app.",sections:[{id:"usage-analytics",title:"Sessions",metrics:[{title:"Users",value:0,metricType:"users",highlighted:!0},{title:"Sessions",value:0,metricType:"sessions",highlighted:!1},{title:"Messages",value:0,metricType:"messages",highlighted:!1},{title:"Tokens",value:0,metricType:"tokens",highlighted:!1}],view:{type:"chart",chart:{type:"line",title:"Usage Over Time",data:[],lines:[{dataKey:"count",color:"#3B82F6",label:"Count",strokeWidth:2}],xAxisLabel:"Date",yAxisLabel:"Count",tooltip:{show:!0,formatter:(e,t)=>[`${e}`,t]}}},layout:{span:12}},{id:"runs",title:"Runs",metrics:[{title:"Agent Runs",value:0,metricType:"agentRuns",highlighted:!0},{title:"Tool Runs",value:0,metricType:"toolRuns",highlighted:!1},{title:"Model Runs",value:0,metricType:"modelRuns",highlighted:!1}],view:{type:"chart",chart:{type:"line",title:"Execution Runs Over Time",data:[],lines:[{dataKey:"count",color:"#10B981",label:"Runs",strokeWidth:2}],xAxisLabel:"Date",yAxisLabel:"Count",tooltip:{show:!0,formatter:(e,t)=>[`${e}`,t]}}},layout:{span:12}}],globalControls:{draft:{label:"Environment",options:[{label:"Draft",value:"draft"},{label:"Production",value:"production"},{label:"Staging",value:"staging"}],defaultValue:"draft"},timeRange:{label:"Time Range",useDatePicker:!0,options:[{label:"Last 7 days",value:"7d"},{label:"Last 30 days",value:"30d"},{label:"Last 90 days",value:"90d"}],defaultValue:"30d"},export:{enabled:!1,formats:["csv","json"],onExport:e=>{console.log(`Exporting in ${e} format`)}}},layout:{columns:12,gap:24,responsive:!0}},UU=`
209
+ </svg>`},cW=(e,t)=>{const r=e.toLowerCase();if(r.includes("code"))return Lt.inlineTool;if(r.includes("workflow")||r.includes("library"))return Lt.toolLibrary;if(r.includes("knowledge"))return Lt.KNOWLEDGE;if(r.includes("mcp"))return Lt.MCP;if(Lt[e])return Lt[e];const n=t.toLowerCase();return n.includes("code")||n.includes("inline")||n.includes("calculate")?Lt.inlineTool:n.includes("library")||n.includes("workflow")?Lt.toolLibrary:n.includes("knowledge")||n.includes("document")||n.includes("fetch")?Lt.KNOWLEDGE:n.includes("mcp")||n.includes("protocol")?Lt.MCP:Lt.toolLibrary},sf=({icon:e,iconSource:t="agent",size:r="small",className:n="",name:a="Unknown",toolType:i})=>{const[o,s]=S.useState(!1),[l,u]=S.useState(!1),c=oW(e),f=uW[r];if(c!=null&&c.name&&c.name!=="fallback"&&!o){const y=lW(c,t),p=()=>{s(!0)};return b.jsx("img",{src:y,alt:a,className:`${f} rounded-full object-cover ${n}`,onError:p})}if(o&&!l&&t==="agent"){const y=`${window.location.origin}/agenticai/assets/agent-avatars/agent1.svg`,p=()=>{u(!0)};return b.jsx("img",{src:y,alt:a,className:`${f} rounded-full object-cover ${n}`,onError:p})}const d=c||sW(a,t);if(t==="workflowtool"){const y=i||d.type||"toolLibrary",p=cW(y,a);return b.jsx("div",{className:`${f} rounded-full flex items-center justify-center bg-gray-100 ${n}`,children:b.jsx("div",{dangerouslySetInnerHTML:{__html:p}})})}const h=`${window.location.origin}/agenticai/assets/agent-avatars/agent1.svg`;return b.jsx("img",{src:h,alt:a,className:`${f} rounded-full object-cover ${n}`})},yb=({data:e,className:t})=>{const[r,n]=S.useState(5),a=()=>{n(o=>Math.min(o+10,e.length))},i=o=>o>=1e3?`${Math.floor(o/1e3)}k`:o.toString();return b.jsxs("div",{className:ue("w-full",t),children:[b.jsxs("div",{className:"grid grid-cols-4 gap-4 px-4 py-3 bg-gray-50 border-b border-gray-200 text-sm font-medium text-gray-700",children:[b.jsx("div",{className:"text-left",children:"Name"}),b.jsx("div",{className:"text-right",children:"Runs"}),b.jsx("div",{className:"text-right",children:"Response Time"}),b.jsx("div",{className:"text-right",children:"Tokens"})]}),b.jsx("div",{className:"divide-y divide-gray-100",children:e.slice(0,r).map((o,s)=>b.jsxs("div",{className:"grid grid-cols-4 gap-4 px-4 py-4 hover:bg-gray-50 transition-colors duration-150",children:[b.jsxs("div",{className:"flex items-center space-x-3",children:[b.jsx("div",{className:"flex-shrink-0",children:b.jsx(sf,{icon:o.icon,iconSource:"agent",size:"small",name:o.name||"Unknown Agent"})}),b.jsx("div",{className:"min-w-0 flex-1",children:b.jsx("div",{className:"text-sm font-medium text-gray-900 truncate",children:o.name||"Unknown Agent"})})]}),b.jsx("div",{className:"text-right text-sm text-gray-900",children:o.runs?i(o.runs):"-"}),b.jsx("div",{className:"text-right text-sm text-gray-900",children:o.responseTime||"-"}),b.jsx("div",{className:"text-right text-sm text-gray-900",children:o.tokens?i(o.tokens):"-"})]},o.id||s))}),r<e.length&&b.jsx("div",{className:"flex justify-center py-6",children:b.jsx("button",{onClick:a,className:"px-4 py-2 text-sm font-medium text-gray-700 bg-white border border-gray-300 rounded-md hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 transition-colors duration-150",children:"Load 10 more"})})]})},fW=e=>{switch(e.toLowerCase()){case"code tool":case"inlinetool":return"bg-orange-100 text-orange-800 border-orange-200";case"workflow tool":case"toollibrary":return"bg-blue-100 text-blue-800 border-blue-200";case"mcp tool":case"mcp":return"bg-green-100 text-green-800 border-green-200";case"knowledge":case"knowledge tool":return"bg-purple-100 text-purple-800 border-purple-200";default:return"bg-gray-100 text-gray-800 border-gray-200"}},mb=({data:e,className:t})=>{const[r,n]=S.useState(5),a=()=>{n(o=>Math.min(o+10,e.length))},i=o=>o>=1e3?`${Math.floor(o/1e3)}k`:o.toString();return b.jsxs("div",{className:ue("w-full",t),children:[b.jsxs("div",{className:"grid grid-cols-4 gap-4 px-4 py-3 bg-gray-50 border-b border-gray-200 text-sm font-medium text-gray-700",children:[b.jsx("div",{className:"text-left",children:"Name"}),b.jsx("div",{className:"text-left",children:"Type"}),b.jsx("div",{className:"text-right",children:"Runs"}),b.jsx("div",{className:"text-right",children:"Response Time"})]}),b.jsx("div",{className:"divide-y divide-gray-100",children:e.slice(0,r).map((o,s)=>b.jsxs("div",{className:"grid grid-cols-4 gap-4 px-4 py-4 hover:bg-gray-50 transition-colors duration-150",children:[b.jsxs("div",{className:"flex items-center space-x-3",children:[b.jsx("div",{className:"flex-shrink-0",children:b.jsx(sf,{icon:o.icon,iconSource:"workflowtool",size:"small",name:o.name||"Unknown Tool",toolType:o.type})}),b.jsx("div",{className:"min-w-0 flex-1",children:b.jsx("div",{className:"text-sm font-medium text-gray-900 truncate",children:o.name||"Unknown Tool"})})]}),b.jsx("div",{className:"flex items-center",children:b.jsx("span",{className:ue("inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium border",fW(o.type||"Default")),children:o.type||"Tool"})}),b.jsx("div",{className:"text-right text-sm text-gray-900",children:o.runs?i(o.runs):"-"}),b.jsx("div",{className:"text-right text-sm text-gray-900",children:o.responseTime||"-"})]},o.id||s))}),r<e.length&&b.jsx("div",{className:"flex justify-center py-6",children:b.jsx("button",{onClick:a,className:"px-4 py-2 text-sm font-medium text-gray-700 bg-white border border-gray-300 rounded-md hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 transition-colors duration-150",children:"Load 10 more"})})]})},dW=e=>{const t=e.toLowerCase();return t.includes("gpt")||t.includes("openai")?b.jsx("div",{className:"w-6 h-6 rounded-full bg-gray-900 flex items-center justify-center",children:b.jsx("span",{className:"text-white text-xs font-bold",children:"⚡"})}):t.includes("claude")||t.includes("anthropic")?b.jsx("div",{className:"w-6 h-6 rounded-full bg-orange-500 flex items-center justify-center",children:b.jsx("span",{className:"text-white text-xs font-bold",children:"A"})}):t.includes("gemini")||t.includes("google")?b.jsx("div",{className:"w-6 h-6 rounded-full bg-blue-500 flex items-center justify-center",children:b.jsx("span",{className:"text-white text-xs font-bold",children:"G"})}):t.includes("llama")||t.includes("meta")?b.jsx("div",{className:"w-6 h-6 rounded-full bg-blue-600 flex items-center justify-center",children:b.jsx("span",{className:"text-white text-xs font-bold",children:"M"})}):b.jsx("div",{className:"w-6 h-6 rounded-full bg-gray-500 flex items-center justify-center",children:b.jsx("span",{className:"text-white text-xs font-bold",children:"🤖"})})},gb=({data:e,className:t})=>{const[r,n]=S.useState(5),a=()=>{n(o=>Math.min(o+10,e.length))},i=o=>o>=1e3?`${Math.floor(o/1e3)}k`:o.toString();return b.jsxs("div",{className:ue("w-full",t),children:[b.jsxs("div",{className:"grid grid-cols-4 gap-4 px-4 py-3 bg-gray-50 border-b border-gray-200 text-sm font-medium text-gray-700",children:[b.jsx("div",{className:"text-left",children:"Model Name"}),b.jsx("div",{className:"text-right",children:"Runs"}),b.jsx("div",{className:"text-right",children:"Tokens"}),b.jsx("div",{className:"text-right",children:"Response Time"})]}),b.jsx("div",{className:"divide-y divide-gray-100",children:e.slice(0,r).map((o,s)=>b.jsxs("div",{className:"grid grid-cols-4 gap-4 px-4 py-4 hover:bg-gray-50 transition-colors duration-150",children:[b.jsxs("div",{className:"flex items-center space-x-3",children:[b.jsx("div",{className:"flex-shrink-0",children:dW(o.name||"Unknown")}),b.jsx("div",{className:"min-w-0 flex-1",children:b.jsx("div",{className:"text-sm font-medium text-gray-900 truncate",children:o.name||"Unknown Model"})})]}),b.jsx("div",{className:"text-right text-sm text-gray-900",children:i(o.runs||0)}),b.jsx("div",{className:"text-right text-sm text-gray-900",children:i(o.tokens||0)}),b.jsx("div",{className:"text-right text-sm text-gray-900",children:o.responseTime})]},o.id||s))}),r<e.length&&b.jsx("div",{className:"flex justify-center py-6",children:b.jsx("button",{onClick:a,className:"px-4 py-2 text-sm font-medium text-gray-700 bg-white border border-gray-300 rounded-md hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 transition-colors duration-150",children:"Load 10 more"})})]})},bb=({config:e,className:t,isLoading:r,context:n})=>{const{type:a,chart:i,table:o,layout:s="vertical"}=e,l=()=>i?(console.log("ViewRenderer - Chart config:",i),console.log("ViewRenderer - Chart data:",i.data),console.log("ViewRenderer - Context:",n),b.jsx("div",{className:"flex-1",children:b.jsx(pb,{config:i,isLoading:r})})):null,u=()=>o?(n==null?void 0:n.metricType)==="agentRuns"?b.jsx("div",{className:"flex-1 min-h-[380px]",children:b.jsx(yb,{data:o.data})}):(n==null?void 0:n.metricType)==="toolRuns"?b.jsx("div",{className:"flex-1 min-h-[380px]",children:b.jsx(mb,{data:o.data})}):(n==null?void 0:n.metricType)==="modelRuns"?b.jsx("div",{className:"flex-1 min-h-[380px]",children:b.jsx(gb,{data:o.data})}):b.jsx("div",{className:"flex-1 min-h-[380px]",children:b.jsx(vb,{config:o})}):null,c=()=>{switch(a){case"chart":return l();case"table":return u();case"mixed":return b.jsxs("div",{className:ue("flex gap-6",s==="horizontal"?"flex-row":"flex-col"),children:[l(),u()]});default:return b.jsxs("div",{className:"p-4 text-center text-gray-500",children:["Unsupported view type: ",a]})}};return b.jsx("div",{className:ue("w-full",t),children:c()})},js=({options:e,value:t,placeholder:r="Select an option",onChange:n,className:a,disabled:i=!1})=>{const[o,s]=S.useState(!1),[l,u]=S.useState(t||""),c=S.useRef(null),f=e.find(y=>y.value===l);S.useEffect(()=>{const y=p=>{c.current&&!c.current.contains(p.target)&&s(!1)};return o&&document.addEventListener("mousedown",y),()=>{document.removeEventListener("mousedown",y)}},[o]);const d=y=>{i||(u(y),s(!1),n==null||n(y))},h=()=>{i||s(!o)};return b.jsxs("div",{ref:c,className:ue("relative min-w-[200px]",a),children:[b.jsxs("button",{type:"button",className:ue("flex h-10 w-full min-w-[200px] items-center justify-between rounded-md border border-gray-300 bg-white px-3 py-2 text-sm shadow-sm hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500 disabled:cursor-not-allowed disabled:opacity-50 transition-colors",a),onClick:h,disabled:i,children:[b.jsx("span",{className:ue("truncate",!f&&"text-gray-500"),children:f?f.label:r}),b.jsx(Ei,{className:ue("h-4 w-4 text-gray-400 transition-transform duration-200",o&&"rotate-180")})]}),o&&!i&&b.jsx("div",{className:"absolute top-full left-0 z-50 mt-1 min-w-[300px] w-max max-w-lg rounded-md border border-gray-200 bg-white shadow-lg max-h-60 overflow-y-auto",children:e.map(y=>{const p=l===y.value;return b.jsxs("div",{className:"relative group",children:[b.jsx("button",{className:ue("relative flex w-full cursor-pointer select-none items-center px-3 py-2 text-sm text-left outline-none transition-colors",y.disabled?"opacity-50 cursor-not-allowed text-gray-400":p?"bg-blue-50 text-blue-900 font-medium":"text-gray-900 hover:bg-gray-100"),onClick:()=>!y.disabled&&d(y.value),disabled:y.disabled,children:b.jsx("span",{className:"block whitespace-nowrap",children:y.label})}),y.label.length>25&&b.jsx("div",{className:"absolute left-full top-0 ml-2 z-[60] opacity-0 group-hover:opacity-100 transition-opacity duration-200 pointer-events-none",children:b.jsxs("div",{className:"bg-gray-900 text-white text-xs rounded-md px-3 py-2 whitespace-nowrap shadow-lg",children:[y.label,b.jsx("div",{className:"absolute left-0 top-1/2 transform -translate-x-full -translate-y-1/2 w-0 h-0 border-t-4 border-b-4 border-r-4 border-transparent border-r-gray-900"})]})})]},y.value)})})]})},hW=({options:e,value:t,defaultValue:r,placeholder:n="Select...",multiSelect:a=!1,searchable:i=!1,onChange:o,className:s,iconSource:l="app",maxItems:u=100,maxLabelLength:c=30})=>{const[f,d]=S.useState(!1),[h,y]=S.useState(""),[p,v]=S.useState(()=>{const P=t||r;return a?Array.isArray(P)?P:P?[P]:[]:P?[Array.isArray(P)?P[0]:P]:[]}),g=S.useRef(null);S.useEffect(()=>{const P=j=>{g.current&&!g.current.contains(j.target)&&d(!1)};return document.addEventListener("mousedown",P),()=>document.removeEventListener("mousedown",P)},[]);const O=(P,j=c)=>P.length<=j?P:P.substring(0,j)+"...",x=i?e.filter(P=>P.label.toLowerCase().includes(h.toLowerCase())):e,A=x.slice(0,u),m=x.length>u,w=P=>{let j;if(a){if(P==="all"){_();return}if(p.includes(P))j=p.filter(B=>B!==P),j=j.filter(B=>B!=="all");else{j=p.filter(E=>E!=="all"),j=[...j,P];const B=x.filter(E=>E.value!=="all").map(E=>E.value),M=j.filter(E=>E!=="all");M.length===B.length&&(j=["all",...M])}}else j=[P],d(!1);v(j);const L=a?j:j[0]||"";o==null||o(L)},T=()=>{if(!a)return{checked:!1,indeterminate:!1};const P=x.filter(L=>L.value!=="all").map(L=>L.value),j=p.filter(L=>L!=="all"&&P.includes(L));return p.includes("all")&&j.length===0?{checked:!1,indeterminate:!1}:j.length===0?{checked:!1,indeterminate:!1}:j.length===P.length?{checked:!0,indeterminate:!1}:{checked:!1,indeterminate:!0}},_=()=>{if(!a)return;const P=T(),j=x.filter(L=>L.value!=="all").map(L=>L.value);if(P.checked)v(["all"]),o==null||o(["all"]);else{const L=["all",...j];v(L),o==null||o(L)}},$=()=>{v(["all"]),o==null||o(a?["all"]:"all")},R=()=>{if(!a){if(p.length===0)return n;const B=e.find(M=>M.value===p[0]);return(B==null?void 0:B.label)||n}const P=p.filter(B=>B!=="all"),j=p.includes("all");if(P.length===0)return n;if(P.length===1){const B=e.find(M=>M.value===P[0]);return(B==null?void 0:B.label)||n}const L=e.filter(B=>B.value!=="all").length;return P.length===L?"All selected":`${P.length} selected`};return b.jsxs("div",{className:ue("relative",s),ref:g,children:[b.jsxs("button",{type:"button",onClick:()=>d(!f),className:ue("w-full flex items-center justify-between px-3 py-2 text-left text-sm","border border-gray-300 rounded-md bg-white hover:bg-gray-50","focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500","transition-colors duration-150"),children:[b.jsx("span",{className:ue("truncate",p.length===0&&"text-gray-500"),children:R()}),b.jsx(Ei,{className:ue("w-4 h-4 text-gray-400 transition-transform duration-150",f&&"transform rotate-180")})]}),f&&b.jsxs("div",{className:"absolute z-50 min-w-[300px] w-max max-w-lg mt-1 bg-white border border-gray-200 rounded-md shadow-lg max-h-80 overflow-hidden",children:[i&&b.jsx("div",{className:"p-3 border-b border-gray-100",children:b.jsxs("div",{className:"relative",children:[b.jsx(gf,{className:"absolute left-3 top-1/2 transform -translate-y-1/2 w-4 h-4 text-gray-400"}),b.jsx("input",{type:"text",placeholder:`Search ${n.toLowerCase()}...`,value:h,onChange:P=>y(P.target.value),className:"w-full pl-10 pr-4 py-2 text-sm border border-gray-200 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500"})]})}),a&&b.jsxs("div",{className:"flex items-center justify-between px-3 py-2 border-b border-gray-100 bg-gray-50",children:[b.jsxs("button",{type:"button",onClick:_,className:"flex items-center text-sm font-medium text-gray-700 hover:text-gray-900",children:[b.jsx("div",{className:ue("flex items-center justify-center w-4 h-4 mr-2 border rounded transition-colors duration-150",(()=>{const P=T();return P.indeterminate||P.checked?"bg-blue-600 border-blue-600 text-white":"border-gray-300 bg-white"})()),children:(()=>{const P=T();return P.indeterminate?b.jsx("div",{className:"w-2 h-0.5 bg-white rounded"}):P.checked?b.jsx("svg",{className:"w-3 h-3",fill:"currentColor",viewBox:"0 0 20 20",children:b.jsx("path",{fillRule:"evenodd",d:"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z",clipRule:"evenodd"})}):null})()}),"Select all"]}),b.jsx("button",{type:"button",onClick:$,className:"text-sm font-medium text-blue-600 hover:text-blue-800",children:"Clear"})]}),b.jsxs("div",{className:"max-h-60 overflow-y-auto",children:[A.length===0?b.jsx("div",{className:"px-3 py-4 text-sm text-gray-500 text-center",children:"No options found"}):A.map(P=>{let j;return P.value==="all"?null:(j=p.includes(P.value),b.jsxs("div",{className:"relative group",children:[b.jsxs("div",{onClick:()=>w(P.value),className:ue("flex items-center px-3 py-2 cursor-pointer hover:bg-gray-50","transition-colors duration-150",j&&"bg-blue-50"),children:[a?b.jsx("div",{className:ue("flex items-center justify-center w-4 h-4 mr-3 border rounded","transition-colors duration-150",j?"bg-blue-600 border-blue-600 text-white":"border-gray-300 bg-white"),children:j&&b.jsx("svg",{className:"w-3 h-3",fill:"currentColor",viewBox:"0 0 20 20",children:b.jsx("path",{fillRule:"evenodd",d:"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z",clipRule:"evenodd"})})}):b.jsx("div",{className:ue("w-4 h-4 mr-3 rounded-full border-2 transition-colors duration-150",j?"border-blue-600 bg-blue-600":"border-gray-300"),children:j&&b.jsx("div",{className:"w-full h-full rounded-full bg-white scale-50"})}),(P.avatar||P.icon)&&b.jsx("div",{className:"mr-3",children:b.jsx(sf,{icon:P.icon,iconSource:l,size:"xs",name:P.label,toolType:P.type})}),b.jsx("span",{className:ue("flex-1 text-sm whitespace-nowrap",j?"font-medium text-gray-900":"text-gray-700"),children:O(P.label)})]}),P.label.length>c&&b.jsx("div",{className:"absolute left-full top-1/2 transform -translate-y-1/2 ml-2 z-[80] opacity-0 group-hover:opacity-100 transition-opacity duration-200 pointer-events-none",children:b.jsxs("div",{className:"bg-gray-900 text-white text-xs rounded-md px-3 py-2 shadow-lg max-w-xs break-words whitespace-normal",children:[P.label,b.jsx("div",{className:"absolute left-0 top-1/2 transform -translate-x-full -translate-y-1/2 w-0 h-0 border-t-4 border-b-4 border-r-4 border-transparent border-r-gray-900"})]})})]},P.value))}),m&&b.jsxs("div",{className:"px-3 py-2 text-xs text-gray-500 bg-gray-50 border-t border-gray-100",children:[b.jsxs("div",{className:"text-center font-medium",children:["+",x.length-u," more items"]}),i&&b.jsx("div",{className:"text-center mt-1 text-gray-400",children:"Use search above to find specific items"})]})]})]})]})},xb=({config:e,className:t})=>{var s;const{dropdown:r,buttons:n,toggle:a}=e,i=l=>{const u=l.toLowerCase();return u.includes("agent")?"agent":u.includes("tool")?"workflowtool":"app"},o=l=>{const u=l.toLowerCase();return u.includes("agent")?{maxItems:50,maxLabelLength:25}:u.includes("tool")?{maxItems:30,maxLabelLength:20}:{maxItems:40,maxLabelLength:25}};return b.jsxs("div",{className:ue("flex items-center gap-3",t),children:[r&&b.jsx(b.Fragment,{children:r.multiSelect?b.jsx(hW,{options:r.options,value:r.defaultValue,placeholder:r.label,multiSelect:r.multiSelect,searchable:r.searchable,onChange:r.onChange,className:"w-48",iconSource:i(r.label),maxItems:o(r.label).maxItems,maxLabelLength:o(r.label).maxLabelLength}):b.jsx(js,{options:r.options,value:Array.isArray(r.defaultValue)?r.defaultValue[0]:r.defaultValue||((s=r.options[0])==null?void 0:s.value),placeholder:r.label,onChange:l=>{var u;return(u=r.onChange)==null?void 0:u.call(r,l)},className:"w-48"})}),n&&n.length>0&&b.jsx("div",{className:"flex items-center border border-gray-200 rounded-lg overflow-hidden",children:n.map((l,u)=>b.jsxs("button",{onClick:()=>{var c;return(c=l.onClick)==null?void 0:c.call(l,l.value)},className:ue("px-3 py-2 text-sm font-medium transition-colors","hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-inset",l.active?"bg-blue-50 text-blue-700 border-blue-200":"text-gray-700 bg-white",u>0&&"border-l border-gray-200"),children:[l.icon&&b.jsx("span",{className:"mr-2",children:l.icon}),l.label]},l.value))}),a&&b.jsxs("div",{className:"flex items-center border border-gray-200 rounded-lg overflow-hidden",children:[b.jsxs("button",{onClick:()=>{var l;return(l=a.onToggle)==null?void 0:l.call(a,"chart")},className:ue("px-3 py-2 text-sm font-medium transition-colors flex items-center gap-2","hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-inset",a.chartView?"bg-blue-50 text-blue-700 border-blue-200":"text-gray-700 bg-white"),children:[b.jsx(Jb,{className:"w-4 h-4"}),"Chart"]}),b.jsxs("button",{onClick:()=>{var l;return(l=a.onToggle)==null?void 0:l.call(a,"table")},className:ue("px-3 py-2 text-sm font-medium transition-colors flex items-center gap-2","hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-inset","border-l border-gray-200",a.tableView?"bg-blue-50 text-blue-700 border-blue-200":"text-gray-700 bg-white"),children:[b.jsx(n0,{className:"w-4 h-4"}),"Table"]})]})]})},wb=({section:e,className:t,isLoading:r,isChartLoading:n,onMetricClick:a})=>{const{id:i,title:o,description:s,metrics:l,view:u,controls:c,layout:f}=e,[d,h]=S.useState(u.type),[y,p]=S.useState("chart"),v=()=>i==="usage-analytics"?"users":i==="runs"?"agentRuns":"users",[g,O]=S.useState(v()),[x,A]=S.useState("all"),m=k=>{var I,W,z,V,Z;const N=_();(I=N==null?void 0:N.controls)!=null&&I.toggle?(p(k),(z=(W=N.controls.toggle).onToggle)==null||z.call(W,k)):(h(k),(Z=(V=c==null?void 0:c.toggle)==null?void 0:V.onToggle)==null||Z.call(V,k))},w=k=>{var W,z;const N=k.metricType||k.title.toLowerCase();O(N);const I=l.find(V=>(V.metricType||V.title.toLowerCase())===N);(z=(W=I==null?void 0:I.controls)==null?void 0:W.dropdown)!=null&&z.multiSelect?A(["all"]):A("all"),a==null||a(k)},T=k=>{var I,W,z;A(k);const N=l.find(V=>(V.metricType||V.title.toLowerCase())===g);(z=(W=(I=N==null?void 0:N.controls)==null?void 0:I.dropdown)==null?void 0:W.onChange)==null||z.call(W,k)},_=()=>l.find(k=>(k.metricType||k.title.toLowerCase())===g)||null,$=k=>Array.isArray(k)?k.filter(I=>I!=="all").length>0:k!=="all",R=k=>Array.isArray(k)?k.filter(N=>N!=="all"):k!=="all"?[k]:[],P=k=>{var z,V,Z,Q,ae,te,G,Y,J;const N=((V=(z=k.view)==null?void 0:z.chart)==null?void 0:V.data)||((Z=u.chart)==null?void 0:Z.data)||[];if(!$(x))return N;const I=k.metricType,W=R(x);if(W.length===1){const D=W[0],ie=_(),q=(te=(ae=(Q=ie==null?void 0:ie.controls)==null?void 0:Q.dropdown)==null?void 0:ae.options)==null?void 0:te.find(oe=>oe.value===D),ee=q==null?void 0:q.label;return console.log("🔍 Filtering chart data:",{metricType:I,singleFilter:D,selectedLabel:ee,baseDataSample:N[0]}),N.map(oe=>{let Ce=0;return oe.listView&&Array.isArray(oe.listView)&&(Ce=oe.listView.filter(et=>I==="agentRuns"&&et.agentName?et.agentName===ee||et.agentName.toLowerCase()===(ee==null?void 0:ee.toLowerCase()):I==="toolRuns"&&et.toolName?et.toolName===ee||et.toolName.toLowerCase()===(ee==null?void 0:ee.toLowerCase()):I==="modelRuns"&&et.modelName?et.modelName===ee||et.modelName.toLowerCase()===(ee==null?void 0:ee.toLowerCase()):!1).reduce((et,Rt)=>et+(Rt.count||0),0)),console.log("📊 Filtered value for",ee,":",Ce),{...oe,[I]:Ce}})}if(W.length>1){const D=_(),q=(((J=(Y=(G=D==null?void 0:D.controls)==null?void 0:G.dropdown)==null?void 0:Y.options)==null?void 0:J.filter(ee=>W.includes(ee.value)))||[]).map(ee=>ee.label);return N.map(ee=>{let oe=0;return ee.listView&&Array.isArray(ee.listView)&&(oe=ee.listView.filter(Te=>I==="agentRuns"&&Te.agentName?q.some(Ee=>Te.agentName===Ee||Te.agentName.toLowerCase()===(Ee==null?void 0:Ee.toLowerCase())):I==="toolRuns"&&Te.toolName?q.some(Ee=>Te.toolName===Ee||Te.toolName.toLowerCase()===(Ee==null?void 0:Ee.toLowerCase())):I==="modelRuns"&&Te.modelName?q.some(Ee=>Te.modelName===Ee||Te.modelName.toLowerCase()===(Ee==null?void 0:Ee.toLowerCase())):!1).reduce((Te,Ee)=>Te+(Ee.count||0),0)),{...ee,[I]:oe}})}return N},j=k=>{var z;if(!((z=k.view)!=null&&z.chart))return null;const N=P(k),I=()=>{var Z,Q,ae,te,G,Y;if(!$(x)||!((Z=k.controls)!=null&&Z.dropdown))return((ae=(Q=k.view)==null?void 0:Q.chart)==null?void 0:ae.title)||k.title;const V=R(x);if(V.length===1){const J=(te=k.controls.dropdown.options)==null?void 0:te.find(D=>D.value===V[0]);return J?`${J.label}`:((Y=(G=k.view)==null?void 0:G.chart)==null?void 0:Y.title)||k.title}return`${V.length} selected`},W=R(x);return k.metricType==="toolRuns"&&W.length===1?{...k.view.chart,data:N,title:I(),lines:void 0,dataKey:"toolRuns",color:"#f97316",showLegend:!1}:k.metricType==="modelRuns"&&W.length===1?{...k.view.chart,data:N,title:I(),dataKey:"modelRuns",color:"#10b981",showLegend:!1}:{...k.view.chart,data:N,title:I()}},L=(k,N)=>{if(!$(x))return k;const I=R(x);if(I.length===1){const W=I[0];if(i==="runs"&&N==="agentRuns")return k.map(z=>({...z,agentRuns:z[W]||0}));if(i==="runs"&&N==="toolRuns")return k.map(z=>({...z,toolRuns:z[W.replace(/[-]/g,"")]||0}));if(i==="runs"&&N==="modelRuns")return k.map(z=>({...z,modelRuns:z[W.replace(/[-\.]/g,"")]||0}))}return k},B=k=>{var z;const N=((z=u.chart)==null?void 0:z.data)||[],I=L(N,k),W=V=>{var Q,ae;if(!$(x))return V;const Z=R(x);if(Z.length===1){const te=(ae=(Q=c==null?void 0:c.dropdown)==null?void 0:Q.options)==null?void 0:ae.find(G=>G.value===Z[0]);return te?`${te.label}`:V}return`${Z.length} selected`};switch(k){case"users":return{type:"line",title:"Total Users",data:N,dataKey:"users",color:"#8b5cf6",yAxisLabel:"Number of Users",height:300,showGrid:!0,curve:"monotone",tooltip:{show:!0,style:"dark"},dateRange:{start:"2025-05-06",end:"2025-06-05"}};case"sessions":return{type:"line",title:"Total Sessions",data:N,dataKey:"sessions",color:"#06b6d4",yAxisLabel:"Number of Sessions",height:300,showGrid:!0,curve:"monotone",tooltip:{show:!0,style:"dark"},dateRange:{start:"2025-05-06",end:"2025-06-05"}};case"messages":return{type:"line",title:"Total Messages",data:N,dataKey:"messages",color:"#ec4899",yAxisLabel:"Number of Messages",height:300,showGrid:!0,curve:"monotone",tooltip:{show:!0,style:"dark"},dateRange:{start:"2025-05-06",end:"2025-06-05"}};case"tokens":return{type:"line",title:"Token Usage Breakdown",data:N,yAxisLabel:"Number of Tokens",lines:[{dataKey:"totalTokens",color:"#f59e0b",label:"Total Tokens"},{dataKey:"inputTokens",color:"#3b82f6",label:"Input Tokens"},{dataKey:"outputTokens",color:"#ec4899",label:"Output Tokens"}],height:300,showGrid:!0,showLegend:!0,curve:"monotone",tooltip:{show:!0,style:"dark"},dateRange:{start:"2025-05-06",end:"2025-06-05"}};case"agentRuns":return{type:"line",title:W("Agent Runs"),data:I,dataKey:"agentRuns",color:"#06b6d4",yAxisLabel:"Number of Agent Runs",height:300,showGrid:!0,curve:"monotone",tooltip:{show:!0,style:"dark"},dateRange:{start:"2025-05-06",end:"2025-06-05"}};case"toolRuns":return R(x).length===1?{type:"line",title:W("Tool Runs"),data:L(N,"toolRuns"),dataKey:"toolRuns",color:"#f97316",yAxisLabel:"Number of Tool Runs",height:300,showGrid:!0,curve:"monotone",tooltip:{show:!0,style:"dark"},dateRange:{start:"2025-05-06",end:"2025-06-05"}}:{type:"line",title:"Tool Runs",data:I,yAxisLabel:"Number of Tool Runs",lines:[{dataKey:"toolRuns",color:"#06b6d4",label:"Tool Runs"},{dataKey:"codeTools",color:"#f97316",label:"Code Tools"},{dataKey:"workflowTools",color:"#10b981",label:"Workflow Tools"},{dataKey:"knowledgeTools",color:"#8b5cf6",label:"Knowledge"},{dataKey:"mcpTools",color:"#ef4444",label:"MCP Tools"}],height:300,showGrid:!0,showLegend:!0,curve:"monotone",tooltip:{show:!0,style:"dark"},dateRange:{start:"2025-05-06",end:"2025-06-05"}};case"modelRuns":return R(x).length===1?{type:"line",title:W("Model Runs"),data:L(N,"modelRuns"),dataKey:"modelRuns",color:"#10b981",yAxisLabel:"Number of Model Runs",height:300,showGrid:!0,curve:"monotone",tooltip:{show:!0,style:"dark"},dateRange:{start:"2025-05-06",end:"2025-06-05"}}:{type:"line",title:W("Model Runs"),data:I,dataKey:"modelRuns",color:"#10b981",yAxisLabel:"Number of Model Runs",height:300,showGrid:!0,curve:"monotone",tooltip:{show:!0,style:"dark"},dateRange:{start:"2025-05-06",end:"2025-06-05"}};default:return null}},M=(()=>{const k=_();return k!=null&&k.controls?{...k.controls,dropdown:k.controls.dropdown?{...k.controls.dropdown,onChange:T}:void 0,toggle:k.controls.toggle?{...k.controls.toggle,chartView:y==="chart",tableView:y==="table",onToggle:m}:void 0}:c?{...c,dropdown:c.dropdown?{...c.dropdown,onChange:T}:void 0,toggle:c.toggle?{...c.toggle,chartView:d==="chart",tableView:d==="table",onToggle:m}:void 0}:void 0})(),F=(()=>{var I,W,z,V,Z,Q,ae,te,G,Y;const k=_();if(k!=null&&k.view){if((I=k.controls)!=null&&I.toggle){if(y==="table"&&k.view.table){let D=k.view.table.data;if(k.metricType==="agentRuns"&&$(x)){const ie=R(x);if(ie.length>0){const q=((V=(z=(W=k.controls)==null?void 0:W.dropdown)==null?void 0:z.options)==null?void 0:V.filter(ee=>ie.includes(ee.value)))||[];q.length>0&&(D=D.filter(ee=>q.some(oe=>ee.name===oe.label||ee.name&&ee.name.toLowerCase().includes(oe.label.toLowerCase()))))}}if(k.metricType==="toolRuns"&&$(x)){const ie=R(x);if(ie.length>0){const q=((ae=(Q=(Z=k.controls)==null?void 0:Z.dropdown)==null?void 0:Q.options)==null?void 0:ae.filter(ee=>ie.includes(ee.value)))||[];q.length>0&&(D=D.filter(ee=>q.some(oe=>ee.name===oe.label||ee.name&&ee.name.toLowerCase().includes(oe.label.toLowerCase()))))}}if(k.metricType==="modelRuns"&&$(x)){const ie=R(x);if(ie.length>0){const q=((Y=(G=(te=k.controls)==null?void 0:te.dropdown)==null?void 0:G.options)==null?void 0:Y.filter(ee=>ie.includes(ee.value)))||[];q.length>0&&(D=D.filter(ee=>q.some(oe=>ee.name===oe.label||ee.name&&ee.name.toLowerCase().includes(oe.label.toLowerCase()))))}}return{type:"table",table:{...k.view.table,data:D}}}else if(y==="chart"&&k.view.chart)return{type:"chart",chart:j(k)||k.view.chart}}const J=j(k);return J?{...k.view,chart:J}:k.view}const N=B(g);return N?{type:"chart",chart:N}:{...u,type:d}})(),U=()=>l.map(k=>{const N=k.metricType||k.title.toLowerCase();return{...k,highlighted:k.highlighted||N===g}});return b.jsxs("div",{className:ue("bg-white rounded-lg border border-gray-200 p-6",t),style:{gridColumn:f!=null&&f.span?`span ${f.span}`:void 0,order:f==null?void 0:f.order},children:[b.jsxs("div",{className:"mb-6",children:[b.jsxs("div",{className:"flex items-center justify-between mb-4",children:[b.jsxs("div",{children:[b.jsx("h2",{className:"text-lg font-semibold text-gray-900",children:o}),s&&b.jsx("p",{className:"text-sm text-gray-600 mt-1",children:s})]}),M&&b.jsx(xb,{config:M})]}),b.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4",children:r?b.jsxs(b.Fragment,{children:[b.jsx(mi,{}),b.jsx(mi,{}),b.jsx(mi,{}),b.jsx(mi,{})]}):U().map((k,N)=>b.jsx(_f,{data:k,onClick:w},`${i}-metric-${N}`))})]}),b.jsx(bb,{config:F,className:"mt-6",isLoading:r||n,context:{sectionId:i,metricType:g}})]})},$s=S.forwardRef(({className:e,variant:t="default",size:r="md",children:n,...a},i)=>{const o="inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50",s={default:"bg-primary text-primary-foreground hover:bg-primary/90",outline:"border border-input bg-background hover:bg-accent hover:text-accent-foreground",ghost:"hover:bg-accent hover:text-accent-foreground"},l={sm:"h-9 px-3",md:"h-10 px-4 py-2",lg:"h-11 px-8"};return b.jsx("button",{className:ue(o,s[t],l[r],e),ref:i,...a,children:n})});$s.displayName="Button";function Cs(e){"@babel/helpers - typeof";return Cs=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Cs(e)}function Et(e){if(e===null||e===!0||e===!1)return NaN;var t=Number(e);return isNaN(t)?t:t<0?Math.ceil(t):Math.floor(t)}function De(e,t){if(t.length<e)throw new TypeError(e+" argument"+(e>1?"s":"")+" required, but only "+t.length+" present")}function Ue(e){De(1,arguments);var t=Object.prototype.toString.call(e);return e instanceof Date||Cs(e)==="object"&&t==="[object Date]"?new Date(e.getTime()):typeof e=="number"||t==="[object Number]"?new Date(e):((typeof e=="string"||t==="[object String]")&&typeof console<"u"&&(console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments"),console.warn(new Error().stack)),new Date(NaN))}function pW(e,t){De(2,arguments);var r=Ue(e),n=Et(t);return isNaN(n)?new Date(NaN):(n&&r.setDate(r.getDate()+n),r)}function lf(e,t){De(2,arguments);var r=Ue(e),n=Et(t);if(isNaN(n))return new Date(NaN);if(!n)return r;var a=r.getDate(),i=new Date(r.getTime());i.setMonth(r.getMonth()+n+1,0);var o=i.getDate();return a>=o?i:(r.setFullYear(i.getFullYear(),i.getMonth(),a),r)}function vW(e,t){De(2,arguments);var r=Ue(e).getTime(),n=Et(t);return new Date(r+n)}var yW={};function gi(){return yW}function mW(e,t){var r,n,a,i,o,s;De(1,arguments);var l=gi(),u=Et((r=(n=(a=(i=void 0)!==null&&i!==void 0?i:void 0)!==null&&a!==void 0?a:l.weekStartsOn)!==null&&n!==void 0?n:(o=l.locale)===null||o===void 0||(s=o.options)===null||s===void 0?void 0:s.weekStartsOn)!==null&&r!==void 0?r:0);if(!(u>=0&&u<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var c=Ue(e),f=c.getDay(),d=(f<u?7:0)+f-u;return c.setDate(c.getDate()-d),c.setHours(0,0,0,0),c}function gW(e){var t=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()));return t.setUTCFullYear(e.getFullYear()),e.getTime()-t.getTime()}function Yr(e){De(1,arguments);var t=Ue(e);return t.setHours(0,0,0,0),t}function bi(e,t){De(2,arguments);var r=Yr(e),n=Yr(t);return r.getTime()===n.getTime()}function bW(e){return De(1,arguments),e instanceof Date||Cs(e)==="object"&&Object.prototype.toString.call(e)==="[object Date]"}function xW(e){if(De(1,arguments),!bW(e)&&typeof e!="number")return!1;var t=Ue(e);return!isNaN(Number(t))}function wW(e){De(1,arguments);var t=Ue(e);return t.setHours(23,59,59,999),t}function OW(e){De(1,arguments);var t=Ue(e);return t.setDate(1),t.setHours(0,0,0,0),t}function SW(e,t){De(2,arguments);var r=Et(t);return vW(e,-r)}var AW=864e5;function TW(e){De(1,arguments);var t=Ue(e),r=t.getTime();t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0);var n=t.getTime(),a=r-n;return Math.floor(a/AW)+1}function Ms(e){De(1,arguments);var t=1,r=Ue(e),n=r.getUTCDay(),a=(n<t?7:0)+n-t;return r.setUTCDate(r.getUTCDate()-a),r.setUTCHours(0,0,0,0),r}function Ob(e){De(1,arguments);var t=Ue(e),r=t.getUTCFullYear(),n=new Date(0);n.setUTCFullYear(r+1,0,4),n.setUTCHours(0,0,0,0);var a=Ms(n),i=new Date(0);i.setUTCFullYear(r,0,4),i.setUTCHours(0,0,0,0);var o=Ms(i);return t.getTime()>=a.getTime()?r+1:t.getTime()>=o.getTime()?r:r-1}function PW(e){De(1,arguments);var t=Ob(e),r=new Date(0);r.setUTCFullYear(t,0,4),r.setUTCHours(0,0,0,0);var n=Ms(r);return n}var _W=6048e5;function EW(e){De(1,arguments);var t=Ue(e),r=Ms(t).getTime()-PW(t).getTime();return Math.round(r/_W)+1}function ks(e,t){var r,n,a,i,o,s,l,u;De(1,arguments);var c=gi(),f=Et((r=(n=(a=(i=t==null?void 0:t.weekStartsOn)!==null&&i!==void 0?i:t==null||(o=t.locale)===null||o===void 0||(s=o.options)===null||s===void 0?void 0:s.weekStartsOn)!==null&&a!==void 0?a:c.weekStartsOn)!==null&&n!==void 0?n:(l=c.locale)===null||l===void 0||(u=l.options)===null||u===void 0?void 0:u.weekStartsOn)!==null&&r!==void 0?r:0);if(!(f>=0&&f<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var d=Ue(e),h=d.getUTCDay(),y=(h<f?7:0)+h-f;return d.setUTCDate(d.getUTCDate()-y),d.setUTCHours(0,0,0,0),d}function Sb(e,t){var r,n,a,i,o,s,l,u;De(1,arguments);var c=Ue(e),f=c.getUTCFullYear(),d=gi(),h=Et((r=(n=(a=(i=t==null?void 0:t.firstWeekContainsDate)!==null&&i!==void 0?i:t==null||(o=t.locale)===null||o===void 0||(s=o.options)===null||s===void 0?void 0:s.firstWeekContainsDate)!==null&&a!==void 0?a:d.firstWeekContainsDate)!==null&&n!==void 0?n:(l=d.locale)===null||l===void 0||(u=l.options)===null||u===void 0?void 0:u.firstWeekContainsDate)!==null&&r!==void 0?r:1);if(!(h>=1&&h<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var y=new Date(0);y.setUTCFullYear(f+1,0,h),y.setUTCHours(0,0,0,0);var p=ks(y,t),v=new Date(0);v.setUTCFullYear(f,0,h),v.setUTCHours(0,0,0,0);var g=ks(v,t);return c.getTime()>=p.getTime()?f+1:c.getTime()>=g.getTime()?f:f-1}function jW(e,t){var r,n,a,i,o,s,l,u;De(1,arguments);var c=gi(),f=Et((r=(n=(a=(i=t==null?void 0:t.firstWeekContainsDate)!==null&&i!==void 0?i:t==null||(o=t.locale)===null||o===void 0||(s=o.options)===null||s===void 0?void 0:s.firstWeekContainsDate)!==null&&a!==void 0?a:c.firstWeekContainsDate)!==null&&n!==void 0?n:(l=c.locale)===null||l===void 0||(u=l.options)===null||u===void 0?void 0:u.firstWeekContainsDate)!==null&&r!==void 0?r:1),d=Sb(e,t),h=new Date(0);h.setUTCFullYear(d,0,f),h.setUTCHours(0,0,0,0);var y=ks(h,t);return y}var $W=6048e5;function CW(e,t){De(1,arguments);var r=Ue(e),n=ks(r,t).getTime()-jW(r,t).getTime();return Math.round(n/$W)+1}function _e(e,t){for(var r=e<0?"-":"",n=Math.abs(e).toString();n.length<t;)n="0"+n;return r+n}var Pr={y:function(t,r){var n=t.getUTCFullYear(),a=n>0?n:1-n;return _e(r==="yy"?a%100:a,r.length)},M:function(t,r){var n=t.getUTCMonth();return r==="M"?String(n+1):_e(n+1,2)},d:function(t,r){return _e(t.getUTCDate(),r.length)},a:function(t,r){var n=t.getUTCHours()/12>=1?"pm":"am";switch(r){case"a":case"aa":return n.toUpperCase();case"aaa":return n;case"aaaaa":return n[0];case"aaaa":default:return n==="am"?"a.m.":"p.m."}},h:function(t,r){return _e(t.getUTCHours()%12||12,r.length)},H:function(t,r){return _e(t.getUTCHours(),r.length)},m:function(t,r){return _e(t.getUTCMinutes(),r.length)},s:function(t,r){return _e(t.getUTCSeconds(),r.length)},S:function(t,r){var n=r.length,a=t.getUTCMilliseconds(),i=Math.floor(a*Math.pow(10,n-3));return _e(i,r.length)}},na={midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},MW={G:function(t,r,n){var a=t.getUTCFullYear()>0?1:0;switch(r){case"G":case"GG":case"GGG":return n.era(a,{width:"abbreviated"});case"GGGGG":return n.era(a,{width:"narrow"});case"GGGG":default:return n.era(a,{width:"wide"})}},y:function(t,r,n){if(r==="yo"){var a=t.getUTCFullYear(),i=a>0?a:1-a;return n.ordinalNumber(i,{unit:"year"})}return Pr.y(t,r)},Y:function(t,r,n,a){var i=Sb(t,a),o=i>0?i:1-i;if(r==="YY"){var s=o%100;return _e(s,2)}return r==="Yo"?n.ordinalNumber(o,{unit:"year"}):_e(o,r.length)},R:function(t,r){var n=Ob(t);return _e(n,r.length)},u:function(t,r){var n=t.getUTCFullYear();return _e(n,r.length)},Q:function(t,r,n){var a=Math.ceil((t.getUTCMonth()+1)/3);switch(r){case"Q":return String(a);case"QQ":return _e(a,2);case"Qo":return n.ordinalNumber(a,{unit:"quarter"});case"QQQ":return n.quarter(a,{width:"abbreviated",context:"formatting"});case"QQQQQ":return n.quarter(a,{width:"narrow",context:"formatting"});case"QQQQ":default:return n.quarter(a,{width:"wide",context:"formatting"})}},q:function(t,r,n){var a=Math.ceil((t.getUTCMonth()+1)/3);switch(r){case"q":return String(a);case"qq":return _e(a,2);case"qo":return n.ordinalNumber(a,{unit:"quarter"});case"qqq":return n.quarter(a,{width:"abbreviated",context:"standalone"});case"qqqqq":return n.quarter(a,{width:"narrow",context:"standalone"});case"qqqq":default:return n.quarter(a,{width:"wide",context:"standalone"})}},M:function(t,r,n){var a=t.getUTCMonth();switch(r){case"M":case"MM":return Pr.M(t,r);case"Mo":return n.ordinalNumber(a+1,{unit:"month"});case"MMM":return n.month(a,{width:"abbreviated",context:"formatting"});case"MMMMM":return n.month(a,{width:"narrow",context:"formatting"});case"MMMM":default:return n.month(a,{width:"wide",context:"formatting"})}},L:function(t,r,n){var a=t.getUTCMonth();switch(r){case"L":return String(a+1);case"LL":return _e(a+1,2);case"Lo":return n.ordinalNumber(a+1,{unit:"month"});case"LLL":return n.month(a,{width:"abbreviated",context:"standalone"});case"LLLLL":return n.month(a,{width:"narrow",context:"standalone"});case"LLLL":default:return n.month(a,{width:"wide",context:"standalone"})}},w:function(t,r,n,a){var i=CW(t,a);return r==="wo"?n.ordinalNumber(i,{unit:"week"}):_e(i,r.length)},I:function(t,r,n){var a=EW(t);return r==="Io"?n.ordinalNumber(a,{unit:"week"}):_e(a,r.length)},d:function(t,r,n){return r==="do"?n.ordinalNumber(t.getUTCDate(),{unit:"date"}):Pr.d(t,r)},D:function(t,r,n){var a=TW(t);return r==="Do"?n.ordinalNumber(a,{unit:"dayOfYear"}):_e(a,r.length)},E:function(t,r,n){var a=t.getUTCDay();switch(r){case"E":case"EE":case"EEE":return n.day(a,{width:"abbreviated",context:"formatting"});case"EEEEE":return n.day(a,{width:"narrow",context:"formatting"});case"EEEEEE":return n.day(a,{width:"short",context:"formatting"});case"EEEE":default:return n.day(a,{width:"wide",context:"formatting"})}},e:function(t,r,n,a){var i=t.getUTCDay(),o=(i-a.weekStartsOn+8)%7||7;switch(r){case"e":return String(o);case"ee":return _e(o,2);case"eo":return n.ordinalNumber(o,{unit:"day"});case"eee":return n.day(i,{width:"abbreviated",context:"formatting"});case"eeeee":return n.day(i,{width:"narrow",context:"formatting"});case"eeeeee":return n.day(i,{width:"short",context:"formatting"});case"eeee":default:return n.day(i,{width:"wide",context:"formatting"})}},c:function(t,r,n,a){var i=t.getUTCDay(),o=(i-a.weekStartsOn+8)%7||7;switch(r){case"c":return String(o);case"cc":return _e(o,r.length);case"co":return n.ordinalNumber(o,{unit:"day"});case"ccc":return n.day(i,{width:"abbreviated",context:"standalone"});case"ccccc":return n.day(i,{width:"narrow",context:"standalone"});case"cccccc":return n.day(i,{width:"short",context:"standalone"});case"cccc":default:return n.day(i,{width:"wide",context:"standalone"})}},i:function(t,r,n){var a=t.getUTCDay(),i=a===0?7:a;switch(r){case"i":return String(i);case"ii":return _e(i,r.length);case"io":return n.ordinalNumber(i,{unit:"day"});case"iii":return n.day(a,{width:"abbreviated",context:"formatting"});case"iiiii":return n.day(a,{width:"narrow",context:"formatting"});case"iiiiii":return n.day(a,{width:"short",context:"formatting"});case"iiii":default:return n.day(a,{width:"wide",context:"formatting"})}},a:function(t,r,n){var a=t.getUTCHours(),i=a/12>=1?"pm":"am";switch(r){case"a":case"aa":return n.dayPeriod(i,{width:"abbreviated",context:"formatting"});case"aaa":return n.dayPeriod(i,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return n.dayPeriod(i,{width:"narrow",context:"formatting"});case"aaaa":default:return n.dayPeriod(i,{width:"wide",context:"formatting"})}},b:function(t,r,n){var a=t.getUTCHours(),i;switch(a===12?i=na.noon:a===0?i=na.midnight:i=a/12>=1?"pm":"am",r){case"b":case"bb":return n.dayPeriod(i,{width:"abbreviated",context:"formatting"});case"bbb":return n.dayPeriod(i,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return n.dayPeriod(i,{width:"narrow",context:"formatting"});case"bbbb":default:return n.dayPeriod(i,{width:"wide",context:"formatting"})}},B:function(t,r,n){var a=t.getUTCHours(),i;switch(a>=17?i=na.evening:a>=12?i=na.afternoon:a>=4?i=na.morning:i=na.night,r){case"B":case"BB":case"BBB":return n.dayPeriod(i,{width:"abbreviated",context:"formatting"});case"BBBBB":return n.dayPeriod(i,{width:"narrow",context:"formatting"});case"BBBB":default:return n.dayPeriod(i,{width:"wide",context:"formatting"})}},h:function(t,r,n){if(r==="ho"){var a=t.getUTCHours()%12;return a===0&&(a=12),n.ordinalNumber(a,{unit:"hour"})}return Pr.h(t,r)},H:function(t,r,n){return r==="Ho"?n.ordinalNumber(t.getUTCHours(),{unit:"hour"}):Pr.H(t,r)},K:function(t,r,n){var a=t.getUTCHours()%12;return r==="Ko"?n.ordinalNumber(a,{unit:"hour"}):_e(a,r.length)},k:function(t,r,n){var a=t.getUTCHours();return a===0&&(a=24),r==="ko"?n.ordinalNumber(a,{unit:"hour"}):_e(a,r.length)},m:function(t,r,n){return r==="mo"?n.ordinalNumber(t.getUTCMinutes(),{unit:"minute"}):Pr.m(t,r)},s:function(t,r,n){return r==="so"?n.ordinalNumber(t.getUTCSeconds(),{unit:"second"}):Pr.s(t,r)},S:function(t,r){return Pr.S(t,r)},X:function(t,r,n,a){var i=a._originalDate||t,o=i.getTimezoneOffset();if(o===0)return"Z";switch(r){case"X":return Tb(o);case"XXXX":case"XX":return Xr(o);case"XXXXX":case"XXX":default:return Xr(o,":")}},x:function(t,r,n,a){var i=a._originalDate||t,o=i.getTimezoneOffset();switch(r){case"x":return Tb(o);case"xxxx":case"xx":return Xr(o);case"xxxxx":case"xxx":default:return Xr(o,":")}},O:function(t,r,n,a){var i=a._originalDate||t,o=i.getTimezoneOffset();switch(r){case"O":case"OO":case"OOO":return"GMT"+Ab(o,":");case"OOOO":default:return"GMT"+Xr(o,":")}},z:function(t,r,n,a){var i=a._originalDate||t,o=i.getTimezoneOffset();switch(r){case"z":case"zz":case"zzz":return"GMT"+Ab(o,":");case"zzzz":default:return"GMT"+Xr(o,":")}},t:function(t,r,n,a){var i=a._originalDate||t,o=Math.floor(i.getTime()/1e3);return _e(o,r.length)},T:function(t,r,n,a){var i=a._originalDate||t,o=i.getTime();return _e(o,r.length)}};function Ab(e,t){var r=e>0?"-":"+",n=Math.abs(e),a=Math.floor(n/60),i=n%60;if(i===0)return r+String(a);var o=t;return r+String(a)+o+_e(i,2)}function Tb(e,t){if(e%60===0){var r=e>0?"-":"+";return r+_e(Math.abs(e)/60,2)}return Xr(e,t)}function Xr(e,t){var r=t||"",n=e>0?"-":"+",a=Math.abs(e),i=_e(Math.floor(a/60),2),o=_e(a%60,2);return n+i+r+o}var Pb=function(t,r){switch(t){case"P":return r.date({width:"short"});case"PP":return r.date({width:"medium"});case"PPP":return r.date({width:"long"});case"PPPP":default:return r.date({width:"full"})}},_b=function(t,r){switch(t){case"p":return r.time({width:"short"});case"pp":return r.time({width:"medium"});case"ppp":return r.time({width:"long"});case"pppp":default:return r.time({width:"full"})}},kW=function(t,r){var n=t.match(/(P+)(p+)?/)||[],a=n[1],i=n[2];if(!i)return Pb(t,r);var o;switch(a){case"P":o=r.dateTime({width:"short"});break;case"PP":o=r.dateTime({width:"medium"});break;case"PPP":o=r.dateTime({width:"long"});break;case"PPPP":default:o=r.dateTime({width:"full"});break}return o.replace("{{date}}",Pb(a,r)).replace("{{time}}",_b(i,r))},NW={p:_b,P:kW},DW=["D","DD"],IW=["YY","YYYY"];function LW(e){return DW.indexOf(e)!==-1}function RW(e){return IW.indexOf(e)!==-1}function Eb(e,t,r){if(e==="YYYY")throw new RangeError("Use `yyyy` instead of `YYYY` (in `".concat(t,"`) for formatting years to the input `").concat(r,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if(e==="YY")throw new RangeError("Use `yy` instead of `YY` (in `".concat(t,"`) for formatting years to the input `").concat(r,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if(e==="D")throw new RangeError("Use `d` instead of `D` (in `".concat(t,"`) for formatting days of the month to the input `").concat(r,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if(e==="DD")throw new RangeError("Use `dd` instead of `DD` (in `".concat(t,"`) for formatting days of the month to the input `").concat(r,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"))}var BW={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}},FW=function(t,r,n){var a,i=BW[t];return typeof i=="string"?a=i:r===1?a=i.one:a=i.other.replace("{{count}}",r.toString()),n!=null&&n.addSuffix?n.comparison&&n.comparison>0?"in "+a:a+" ago":a};function uf(e){return function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=t.width?String(t.width):e.defaultWidth,n=e.formats[r]||e.formats[e.defaultWidth];return n}}var WW={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},UW={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},zW={full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},KW={date:uf({formats:WW,defaultWidth:"full"}),time:uf({formats:UW,defaultWidth:"full"}),dateTime:uf({formats:zW,defaultWidth:"full"})},GW={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"},qW=function(t,r,n,a){return GW[t]};function xi(e){return function(t,r){var n=r!=null&&r.context?String(r.context):"standalone",a;if(n==="formatting"&&e.formattingValues){var i=e.defaultFormattingWidth||e.defaultWidth,o=r!=null&&r.width?String(r.width):i;a=e.formattingValues[o]||e.formattingValues[i]}else{var s=e.defaultWidth,l=r!=null&&r.width?String(r.width):e.defaultWidth;a=e.values[l]||e.values[s]}var u=e.argumentCallback?e.argumentCallback(t):t;return a[u]}}var VW={narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},HW={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},YW={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},XW={narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},JW={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},ZW={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},QW=function(t,r){var n=Number(t),a=n%100;if(a>20||a<10)switch(a%10){case 1:return n+"st";case 2:return n+"nd";case 3:return n+"rd"}return n+"th"},eU={ordinalNumber:QW,era:xi({values:VW,defaultWidth:"wide"}),quarter:xi({values:HW,defaultWidth:"wide",argumentCallback:function(t){return t-1}}),month:xi({values:YW,defaultWidth:"wide"}),day:xi({values:XW,defaultWidth:"wide"}),dayPeriod:xi({values:JW,defaultWidth:"wide",formattingValues:ZW,defaultFormattingWidth:"wide"})};function wi(e){return function(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=r.width,a=n&&e.matchPatterns[n]||e.matchPatterns[e.defaultMatchWidth],i=t.match(a);if(!i)return null;var o=i[0],s=n&&e.parsePatterns[n]||e.parsePatterns[e.defaultParseWidth],l=Array.isArray(s)?rU(s,function(f){return f.test(o)}):tU(s,function(f){return f.test(o)}),u;u=e.valueCallback?e.valueCallback(l):l,u=r.valueCallback?r.valueCallback(u):u;var c=t.slice(o.length);return{value:u,rest:c}}}function tU(e,t){for(var r in e)if(e.hasOwnProperty(r)&&t(e[r]))return r}function rU(e,t){for(var r=0;r<e.length;r++)if(t(e[r]))return r}function nU(e){return function(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=t.match(e.matchPattern);if(!n)return null;var a=n[0],i=t.match(e.parsePattern);if(!i)return null;var o=e.valueCallback?e.valueCallback(i[0]):i[0];o=r.valueCallback?r.valueCallback(o):o;var s=t.slice(a.length);return{value:o,rest:s}}}var aU=/^(\d+)(th|st|nd|rd)?/i,iU=/\d+/i,oU={narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},sU={any:[/^b/i,/^(a|c)/i]},lU={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},uU={any:[/1/i,/2/i,/3/i,/4/i]},cU={narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},fU={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},dU={narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},hU={narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},pU={narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},vU={any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},yU={ordinalNumber:nU({matchPattern:aU,parsePattern:iU,valueCallback:function(t){return parseInt(t,10)}}),era:wi({matchPatterns:oU,defaultMatchWidth:"wide",parsePatterns:sU,defaultParseWidth:"any"}),quarter:wi({matchPatterns:lU,defaultMatchWidth:"wide",parsePatterns:uU,defaultParseWidth:"any",valueCallback:function(t){return t+1}}),month:wi({matchPatterns:cU,defaultMatchWidth:"wide",parsePatterns:fU,defaultParseWidth:"any"}),day:wi({matchPatterns:dU,defaultMatchWidth:"wide",parsePatterns:hU,defaultParseWidth:"any"}),dayPeriod:wi({matchPatterns:pU,defaultMatchWidth:"any",parsePatterns:vU,defaultParseWidth:"any"})},mU={code:"en-US",formatDistance:FW,formatLong:KW,formatRelative:qW,localize:eU,match:yU,options:{weekStartsOn:0,firstWeekContainsDate:1}},gU=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,bU=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,xU=/^'([^]*?)'?$/,wU=/''/g,OU=/[a-zA-Z]/;function Ns(e,t,r){var n,a,i,o,s,l,u,c,f,d,h,y,p,v;De(2,arguments);var g=String(t),O=gi(),x=(n=(a=void 0)!==null&&a!==void 0?a:O.locale)!==null&&n!==void 0?n:mU,A=Et((i=(o=(s=(l=void 0)!==null&&l!==void 0?l:void 0)!==null&&s!==void 0?s:O.firstWeekContainsDate)!==null&&o!==void 0?o:(u=O.locale)===null||u===void 0||(c=u.options)===null||c===void 0?void 0:c.firstWeekContainsDate)!==null&&i!==void 0?i:1);if(!(A>=1&&A<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var m=Et((f=(d=(h=(y=void 0)!==null&&y!==void 0?y:void 0)!==null&&h!==void 0?h:O.weekStartsOn)!==null&&d!==void 0?d:(p=O.locale)===null||p===void 0||(v=p.options)===null||v===void 0?void 0:v.weekStartsOn)!==null&&f!==void 0?f:0);if(!(m>=0&&m<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");if(!x.localize)throw new RangeError("locale must contain localize property");if(!x.formatLong)throw new RangeError("locale must contain formatLong property");var w=Ue(e);if(!xW(w))throw new RangeError("Invalid time value");var T=gW(w),_=SW(w,T),$={firstWeekContainsDate:A,weekStartsOn:m,locale:x,_originalDate:w},R=g.match(bU).map(function(P){var j=P[0];if(j==="p"||j==="P"){var L=NW[j];return L(P,x.formatLong)}return P}).join("").match(gU).map(function(P){if(P==="''")return"'";var j=P[0];if(j==="'")return SU(P);var L=MW[j];if(L)return RW(P)&&Eb(P,t,String(e)),LW(P)&&Eb(P,t,String(e)),L(_,P,x.localize,$);if(j.match(OU))throw new RangeError("Format string contains an unescaped latin alphabet character `"+j+"`");return P}).join("");return R}function SU(e){var t=e.match(xU);return t?t[1].replace(wU,"'"):e}function jb(e,t){De(2,arguments);var r=Ue(e),n=Ue(t);return r.getTime()<n.getTime()}function AU(e,t){De(2,arguments);var r=Ue(e).getTime(),n=Ue(t.start).getTime(),a=Ue(t.end).getTime();if(!(n<=a))throw new RangeError("Invalid interval");return r>=n&&r<=a}function Ds(e,t){De(2,arguments);var r=Et(t);return pW(e,-r)}function $b(e,t){De(2,arguments);var r=Et(t);return lf(e,-r)}const Cb=({children:e})=>{const[t,r]=S.useState(!1);return S.useEffect(()=>(r(!0),()=>r(!1)),[]),t?Qr.createPortal(e,document.body):null};function Mb({className:e,defaultValue:t,onDateRangeChange:r}){console.log("🗓️ DateRangePicker component rendered with props:",{className:e,defaultValue:t,hasCallback:!!r});const n=[{label:"Today",value:"today",dateRange:{from:Yr(new Date),to:new Date}},{label:"Yesterday",value:"yesterday",dateRange:{from:Yr(Ds(new Date,1)),to:wW(Ds(new Date,1))}},{label:"This week",value:"thisWeek",dateRange:{from:mW(new Date),to:new Date}},{label:"Last 7 days",value:"7d",dateRange:{from:Yr(Ds(new Date,6)),to:new Date}},{label:"This month",value:"thisMonth",dateRange:{from:OW(new Date),to:new Date}},{label:"Last 30 days",value:"30d",dateRange:{from:Yr(Ds(new Date,29)),to:new Date}},{label:"Last 3 months",value:"90d",dateRange:{from:Yr($b(new Date,3)),to:new Date}}],a=t?n.find(E=>E.value===t):null;console.log("📅 DateRangePicker initialization:",{defaultValue:t,defaultPreset:a==null?void 0:a.label,hasDateRange:!!(a!=null&&a.dateRange),allPresetValues:n.map(E=>E.value),foundPreset:!!a});const[i,o]=S.useState(a==null?void 0:a.dateRange),[s,l]=S.useState(a==null?void 0:a.dateRange),[u,c]=S.useState(!1),[f,d]=S.useState((a==null?void 0:a.label)||null),[h,y]=S.useState((a==null?void 0:a.label)||null),[p,v]=S.useState(new Date),[g,O]=S.useState(null),[x,A]=S.useState({top:0,left:0}),m=S.useRef(null),w=S.useRef(null);S.useEffect(()=>{var E,F;console.log("📅 DateRangePicker useEffect running:",{hasDefaultPreset:!!a,hasOnDateRangeChange:!!r,currentDate:i,currentLabel:f,defaultValue:t,defaultPresetLabel:a==null?void 0:a.label,defaultPresetValue:a==null?void 0:a.value}),a!=null&&a.dateRange&&r?(console.log("📅 DateRangePicker: Setting initial default value:",{label:a.label,dateRange:a.dateRange,from:(E=a.dateRange.from)==null?void 0:E.toLocaleDateString(),to:(F=a.dateRange.to)==null?void 0:F.toLocaleDateString()}),r(a.dateRange)):console.log("📅 DateRangePicker: NOT setting initial value because:",{hasDefaultPreset:!!a,hasDateRange:!!(a!=null&&a.dateRange),hasCallback:!!r,presetLabelsAvailable:n.map(U=>`${U.value}:${U.label}`)})},[]),S.useEffect(()=>{t&&(a!=null&&a.dateRange)&&(console.log("📅 DateRangePicker: DefaultValue changed, updating state:",{defaultValue:t,label:a.label}),o(a.dateRange),d(a.label),l(a.dateRange),y(a.label))},[t]);const T=()=>{if(!w.current)return;const E=w.current.getBoundingClientRect(),F=window.scrollY,U=window.scrollX,k=window.innerWidth,N=window.innerHeight,I=720,W=450;let z=E.bottom+F+8,V=E.left+U;V+I>k&&(V=E.right+U-I),V+I>k&&(V=k-I-20),z+W>N&&(z=E.top+F-W-8),V<20&&(V=20),z<20&&(z=20),A({top:z,left:V})};S.useEffect(()=>{const E=()=>{u&&T()};return u&&(window.addEventListener("resize",E),window.addEventListener("scroll",E)),()=>{window.removeEventListener("resize",E),window.removeEventListener("scroll",E)}},[u]);const _=(E,F)=>{if(l(E),y(F),O(null),E.from){const U=new Date(E.from.getFullYear(),E.from.getMonth(),1);v(U)}},$=E=>{if(!g)O(E),l({from:E,to:E}),y(null);else{const F=jb(E,g)?E:g,U=jb(E,g)?g:E;l({from:F,to:U}),O(null),y(null)}},R=()=>{o(s),d(h),r==null||r(s),c(!1),O(null)},P=()=>{l(void 0),y(null),o(void 0),d(null),r==null||r(void 0),c(!1),O(null)},j=E=>{E?(l(i),y(f),O(null),setTimeout(T,0)):(l(i),y(f),O(null)),c(E)},L=(E,F)=>(console.log("📅 formatDateRange called with:",{presetLabel:F,hasDateRange:!!(E!=null&&E.from)}),F||(E!=null&&E.from?!E.to||bi(E.from,E.to)?Ns(E.from,"MMM dd, yyyy"):`${Ns(E.from,"MMM dd, yyyy")} - ${Ns(E.to,"MMM dd, yyyy")}`:"Pick a date range")),B=(E=0)=>{const F=lf(p,E),U=F.getFullYear(),k=F.getMonth(),N=new Date(U,k,1),W=new Date(U,k+1,0).getDate(),z=N.getDay(),V=["January","February","March","April","May","June","July","August","September","October","November","December"],Z=["Su","Mo","Tu","We","Th","Fr","Sa"],Q=[],te=new Date(U,k-1,0).getDate();for(let J=z-1;J>=0;J--){const D=te-J,ie=new Date(U,k-1,D);Q.push(b.jsx("button",{onClick:()=>$(ie),className:"h-8 w-8 text-xs text-gray-400 hover:bg-gray-100 rounded flex items-center justify-center",children:D},`prev-${D}`))}for(let J=1;J<=W;J++){const D=new Date(U,k,J),ie=bi(D,new Date),q=(s==null?void 0:s.from)&&(s==null?void 0:s.to)&&AU(D,{start:s.from,end:s.to}),ee=(s==null?void 0:s.from)&&bi(D,s.from),oe=(s==null?void 0:s.to)&&bi(D,s.to),Ce=g&&bi(D,g);let Te="h-8 w-8 text-xs hover:bg-gray-100 rounded flex items-center justify-center transition-colors ";ie&&(Te+="font-semibold "),Ce||ee||oe?Te+="bg-blue-500 text-white hover:bg-blue-600 ":q&&(Te+="bg-blue-100 text-blue-900 "),Q.push(b.jsx("button",{onClick:()=>$(D),className:Te,children:J},`current-${J}`))}const Y=Math.ceil((z+W)/7)*7-z-W;for(let J=1;J<=Y;J++){const D=new Date(U,k+1,J);Q.push(b.jsx("button",{onClick:()=>$(D),className:"h-8 w-8 text-xs text-gray-400 hover:bg-gray-100 rounded flex items-center justify-center",children:J},`next-${J}`))}return b.jsxs("div",{className:"p-3",children:[b.jsxs("div",{className:"flex items-center justify-between mb-3",children:[E===0&&b.jsx("button",{onClick:()=>v($b(p,1)),className:"p-1 hover:bg-gray-100 rounded",children:b.jsx(Zb,{className:"h-4 w-4"})}),b.jsxs("div",{className:"font-medium text-sm",children:[V[k]," ",U]}),E===1&&b.jsx("button",{onClick:()=>v(lf(p,1)),className:"p-1 hover:bg-gray-100 rounded",children:b.jsx(Qb,{className:"h-4 w-4"})})]}),b.jsx("div",{className:"grid grid-cols-7 gap-1 mb-2",children:Z.map(J=>b.jsx("div",{className:"h-8 flex items-center justify-center text-xs font-medium text-gray-500",children:J},J))}),b.jsx("div",{className:"grid grid-cols-7 gap-1",children:Q})]})},M=()=>"fixed bg-white border border-gray-200 rounded-lg shadow-xl z-[99999]";return b.jsxs("div",{className:`relative ${e}`,children:[b.jsxs("button",{ref:w,onClick:()=>j(!u),className:`min-w-[200px] px-3 py-2 text-left border border-gray-300 rounded-md shadow-sm bg-white hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500 flex items-center ${i?"text-gray-900":"text-gray-500"}`,children:[b.jsx(yf,{className:"mr-2 h-4 w-4"}),(()=>{const E=L(i,f);return console.log("📅 Button display text:",{displayText:E,date:i,selectedPresetLabel:f}),E})()]}),u&&b.jsxs(Cb,{children:[b.jsx("div",{className:"fixed inset-0 z-[99998] bg-black bg-opacity-10",onClick:()=>j(!1)}),b.jsxs("div",{ref:m,className:M(),style:{top:x.top,left:x.left,width:"720px",minWidth:"720px",maxHeight:"90vh"},onClick:E=>E.stopPropagation(),children:[b.jsxs("div",{className:"flex",children:[b.jsxs("div",{className:"flex flex-col gap-1 p-3 border-r border-gray-200 w-[160px] flex-shrink-0",children:[b.jsx("div",{className:"text-sm font-medium text-gray-500 mb-2",children:"Presets"}),n.map(E=>b.jsx("button",{onClick:()=>_(E.dateRange,E.label),className:`text-left px-2 py-1.5 text-sm rounded hover:bg-gray-100 transition-colors ${h===E.label?"bg-gray-100":""}`,children:E.label},E.label))]}),b.jsxs("div",{className:"flex flex-1",children:[B(0),B(1)]})]}),b.jsxs("div",{className:"border-t border-gray-200 p-3 flex justify-end gap-2",children:[b.jsx("button",{onClick:P,className:"px-3 py-1.5 text-sm border border-gray-300 rounded hover:bg-gray-50 transition-colors",children:"Clear"}),b.jsx("button",{onClick:R,disabled:!(s!=null&&s.from),className:"px-3 py-1.5 text-sm bg-blue-600 text-white rounded hover:bg-blue-700 disabled:opacity-50 disabled:cursor-not-allowed transition-colors",children:"Apply"})]})]})]})]})}class kb{constructor(t=""){Bt(this,"API_PATH","/tracing/api/trpc/metrics.getMetrics");Bt(this,"baseUrl","");Bt(this,"endpoints",{});this.baseUrl=t,this.initializeEndpoints()}setBaseUrl(t){this.baseUrl=t,this.initializeEndpoints()}getEndpoint(t){return this.endpoints[t]||{endpoint:"",method:"GET"}}getBaseUrl(){return this.baseUrl}initializeEndpoints(){const t=`${this.baseUrl}${this.API_PATH}`;this.endpoints["usage-analytics.cards"]={endpoint:t,method:"GET",baseEndpoint:this.API_PATH},this.endpoints["usage-analytics.sessions.timeseries"]={endpoint:t,method:"GET",baseEndpoint:this.API_PATH},this.endpoints["usage-analytics.messages.timeseries"]={endpoint:t,method:"GET",baseEndpoint:this.API_PATH},this.endpoints["usage-analytics.users.timeseries"]={endpoint:t,method:"GET",baseEndpoint:this.API_PATH},this.endpoints["usage-analytics.tokens.timeseries"]={endpoint:t,method:"GET",baseEndpoint:this.API_PATH},this.endpoints["runs.cards"]={endpoint:t,method:"GET",baseEndpoint:this.API_PATH},this.endpoints["runs.agent-runs.timeseries"]={endpoint:t,method:"GET",baseEndpoint:this.API_PATH},this.endpoints["runs.model-runs.timeseries"]={endpoint:t,method:"GET",baseEndpoint:this.API_PATH},this.endpoints["runs.tool-runs.timeseries"]={endpoint:t,method:"GET",baseEndpoint:this.API_PATH}}getAvailableEndpoints(){return Object.keys(this.endpoints)}hasEndpoint(t){return t in this.endpoints}}class Nb{constructor(t){Bt(this,"endpointsService");Bt(this,"defaultHeaders");Bt(this,"timeout");this.endpointsService=new kb(t.baseUrl),this.defaultHeaders={"Content-Type":"application/json",...t.defaultHeaders},this.timeout=t.timeout||3e4}updateConfig(t){t.baseUrl&&this.endpointsService.setBaseUrl(t.baseUrl),t.defaultHeaders&&(this.defaultHeaders={...this.defaultHeaders,...t.defaultHeaders}),t.timeout&&(this.timeout=t.timeout)}async invoke(t,r,n,a){const i=this.endpointsService.getEndpoint(t);if(!i.endpoint)throw new Error(`Endpoint not found for service: ${t}`);const o=this.prepareRequest(i,r,n);try{const s=new AbortController,l=setTimeout(()=>s.abort(),(a==null?void 0:a.timeout)||this.timeout),u=await fetch(o.url,{method:o.method,headers:o.headers,body:o.body,signal:(a==null?void 0:a.signal)||s.signal});if(clearTimeout(l),!u.ok)throw new Error(`HTTP Error: ${u.status} ${u.statusText}`);return await u.json()}catch(s){throw s instanceof Error?s.name==="AbortError"?new Error("Request timeout"):s:new Error("Unknown error occurred during API call")}}prepareRequest(t,r,n){const a={...this.defaultHeaders,...n},i={};Object.entries(a).forEach(([l,u])=>{u!==void 0&&(i[l]=u)});let o=t.endpoint,s;if(t.method==="GET"&&r){const l=this.buildQueryParams(r);o+=`?${l}`}else r&&(s=JSON.stringify(r));return{url:o,method:t.method,headers:i,body:s}}buildQueryParams(t){const r={json:t},n=new URLSearchParams;return n.append("input",JSON.stringify(r)),n.append("rnd",Math.random().toString(36).substring(7)),n.toString()}getBaseUrl(){return this.endpointsService.getBaseUrl()}hasEndpoint(t){return this.endpointsService.hasEndpoint(t)}getAvailableEndpoints(){return this.endpointsService.getAvailableEndpoints()}}class ur{constructor(t){Bt(this,"apiInvoker");Bt(this,"projectId");Bt(this,"environment");Bt(this,"defaultTimeRange");const r={baseUrl:t.baseUrl,defaultHeaders:t.headers,timeout:3e4};this.apiInvoker=new Nb(r),this.projectId=t.projectId,this.environment=t.environment,this.defaultTimeRange=t.defaultTimeRange}updateConfig(t){(t.baseUrl||t.headers)&&this.apiInvoker.updateConfig({baseUrl:t.baseUrl,defaultHeaders:t.headers}),t.projectId&&(this.projectId=t.projectId),t.environment&&(this.environment=t.environment),t.defaultTimeRange&&(this.defaultTimeRange=t.defaultTimeRange,console.log("🔄 API Service: Updated defaultTimeRange:",this.defaultTimeRange))}getDefaultTimeRange(){return this.defaultTimeRange||ur.getDateRange(30)}async fetchEnvironments(){try{const r=`${this.apiInvoker.getBaseUrl()}/aaa/api/v1/apps/${this.projectId}/environments?rnd=${Math.random().toString(36).substring(2,8)}`;console.log("🌍 Fetching environments for project:",this.projectId),console.log("🔗 Environment API URL:",r);const n=await fetch(r,{method:"GET",headers:{"Content-Type":"application/json",...this.apiInvoker.defaultHeaders}});if(!n.ok)throw new Error(`HTTP error! status: ${n.status}`);const a=await n.json();return console.log("✅ Environments fetched successfully:",a.map(i=>({name:i.envName,enabled:i.isEnabled,status:i.status}))),a}catch(t){throw console.error("❌ Error fetching environments:",t),t}}async fetchUsageAnalyticsCards(t,r,n,a=[]){const i=n||ur.getTimeDimension(t,r);console.log("📊 Fetching usage analytics cards:",{dateRange:{fromTimestamp:t,toTimestamp:r},providedTimeDimension:n,resolvedTimeDimension:i});const o={projectId:this.projectId,type:"cards",category:"usage-analytics",envId:this.environment,fromTimestamp:t,toTimestamp:r,filter:a,includeTrends:!0,timeDimension:i};return(await this.apiInvoker.invoke("usage-analytics.cards",o)).result.data.json}async fetchRunsCards(t,r,n,a=[]){const i=n||ur.getTimeDimension(t,r);console.log("📊 Fetching runs cards:",{dateRange:{fromTimestamp:t,toTimestamp:r},providedTimeDimension:n,resolvedTimeDimension:i});const o={projectId:this.projectId,type:"cards",category:"runs",envId:this.environment,fromTimestamp:t,toTimestamp:r,filter:a,includeTrends:!0,timeDimension:i};return(await this.apiInvoker.invoke("runs.cards",o)).result.data.json}async fetchTimeSeriesData(t,r,n,a,i,o=[]){const s=i||ur.getTimeDimension(n,a);console.log("📊 Fetching time series data:",{metric:t,category:r,dateRange:{fromTimestamp:n,toTimestamp:a},providedTimeDimension:i,resolvedTimeDimension:s});const l=`${r}.${t}.timeseries`,u={projectId:this.projectId,type:"time-series",category:r,envId:this.environment,fromTimestamp:n,toTimestamp:a,filter:o,metric:t,timeDimension:s};return(await this.apiInvoker.invoke(l,u)).result.data.json}transformUsageAnalyticsCards(t){const r=t.data.trends;console.log("Transforming usage analytics cards with trends:",r);const n=a=>a>0?"increase":"decrease";return[{title:"Users",value:t.data.users,metricType:"users",icon:"users",highlighted:!0,change:r!=null&&r.users?{value:Math.abs(r.users.changePercent),type:n(r.users.changePercent)}:void 0},{title:"Sessions",value:t.data.sessions,metricType:"sessions",icon:"activity",highlighted:!1,change:r!=null&&r.sessions?{value:Math.abs(r.sessions.changePercent),type:n(r.sessions.changePercent)}:void 0},{title:"Messages",value:t.data.messages.total,metricType:"messages",icon:"message-circle",info:`Input: ${t.data.messages.input}, Output: ${t.data.messages.output}`,highlighted:!1,change:r!=null&&r.messages?{value:Math.abs(r.messages.changePercent.total),type:n(r.messages.changePercent.total)}:void 0},{title:"Tokens",value:t.data.tokens.total,metricType:"tokens",icon:"coins",info:`Input: ${t.data.tokens.input}, Output: ${t.data.tokens.output}`,highlighted:!1,change:r!=null&&r.tokens?{value:Math.abs(r.tokens.changePercent.total),type:n(r.tokens.changePercent.total)}:void 0}]}transformRunsCards(t){const r=t.data.trends;console.log("Transforming runs cards with trends:",r);const n=a=>a>0?"increase":"decrease";return[{title:"Agent Runs",value:t.data.agentRuns,metricType:"agentRuns",icon:"bot",highlighted:!0,change:r!=null&&r.agentRuns?{value:Math.abs(r.agentRuns.changePercent),type:n(r.agentRuns.changePercent)}:void 0},{title:"Tool Runs",value:t.data.toolRuns.total,metricType:"toolRuns",icon:"wrench",info:`Code: ${t.data.toolRuns.codeTools}, Library: ${t.data.toolRuns.libraryTools}, Knowledge: ${t.data.toolRuns.knowledgeTools}, MCP: ${t.data.toolRuns.mcpTools}`,highlighted:!1,change:r!=null&&r.toolRuns?{value:Math.abs(r.toolRuns.changePercent.total),type:n(r.toolRuns.changePercent.total)}:void 0},{title:"Model Runs",value:t.data.modelRuns,metricType:"modelRuns",icon:"cpu",highlighted:!1,change:r!=null&&r.modelRuns?{value:Math.abs(r.modelRuns.changePercent),type:n(r.modelRuns.changePercent)}:void 0}]}transformTimeSeriesDataForMetric(t,r){var a;if(console.log("=== METRIC-SPECIFIC TRANSFORM DEBUG ==="),console.log("Raw TimeSeriesResponse:",JSON.stringify(t,null,2)),console.log("Metric type:",r),!t||!t.data||!Array.isArray(t.data))return console.error("Invalid time series data structure:",t),[];const n=t.data.map((i,o)=>{console.log(`Processing point ${o}:`,i);const s=new Date(i.timestamp),l=s.toISOString().split("T")[0],u=s.toLocaleDateString("en-US",{month:"short",day:"numeric"}),c={date:l,timestamp:u,formattedDate:u,count:i.count||0,value:i.count||0,input_tokens:i.input_tokens||0,output_tokens:i.output_tokens||0,total_tokens:(i.input_tokens||0)+(i.output_tokens||0),inputTokens:i.input_tokens||0,outputTokens:i.output_tokens||0,totalTokens:(i.input_tokens||0)+(i.output_tokens||0),listView:i.listView||[],index:o};switch(r){case"users":c.users=i.count||0;break;case"sessions":c.sessions=i.count||0;break;case"messages":c.messages=i.count||0;break;case"tokens":c.tokens=i.count||0,i.input_tokens||i.output_tokens?c.totalTokens=(i.input_tokens||0)+(i.output_tokens||0):c.totalTokens=i.count||0;break;case"agentRuns":c.agentRuns=i.count||0;break;case"toolRuns":c.toolRuns=i.count||0;break;case"modelRuns":c.modelRuns=i.count||0;break;default:c.users=i.count||0,c.sessions=i.count||0,c.messages=i.count||0,c.tokens=i.count||0,c.agentRuns=i.count||0,c.toolRuns=i.count||0,c.modelRuns=i.count||0}return console.log(`Transformed point ${o} for metric ${r}:`,c),c});return console.log("Final transformed data array:",JSON.stringify(n,null,2)),console.log("Sample transformed point for chart:",n[0]),console.log("Populated metric property:",r,"=",(a=n[0])==null?void 0:a[r||"count"]),console.log("=== END METRIC-SPECIFIC TRANSFORM DEBUG ==="),n}transformTimeSeriesData(t){return this.transformTimeSeriesDataForMetric(t)}transformAgentsListViewToTable(t){return Array.isArray(t)?t.map((r,n)=>{var o,s;let a="",i=null;if(r.icon)try{if(i=typeof r.icon=="string"?JSON.parse(r.icon):r.icon,i.name){const l=((o=r.agentName)==null?void 0:o.replace(/\s+/g,""))||`agent${n}`,u=((s=i.color)==null?void 0:s.replace("#",""))||"b6e3f4";a=`https://api.dicebear.com/7.x/avataaars/svg?seed=${l}&backgroundColor=${u}&backgroundType=solid`}}catch{console.warn("Failed to parse icon data:",r.icon)}return{id:`agent-${n+1}`,name:r.agentName||`Agent ${n+1}`,runs:r.count||0,responseTime:r.avgResponseTime?`${Math.round(r.avgResponseTime)}s`:"0s",tokens:r.tokens||Math.floor((r.count||0)*150),successRate:r.successRate?`${Math.round(r.successRate)}%`:"95%",lastRun:r.lastRun||new Date(Date.now()-Math.random()*7*24*60*60*1e3).toLocaleDateString(),avatar:a||`https://api.dicebear.com/7.x/avataaars/svg?seed=agent${n}&backgroundColor=b6e3f4,c0aede,d1d4f9&backgroundType=solid`,icon:r.icon||void 0}}):(console.warn("Invalid listView data for agents:",t),[])}transformToolsListViewToTable(t){if(!Array.isArray(t))return console.warn("Invalid listView data for tools:",t),[];const r=n=>{const a=n.toLowerCase();return a.includes("calculate")||a.includes("compute")?"Code Tool":a.includes("workflow")||a.includes("process")?"Workflow Tool":a.includes("mcp")||a.includes("protocol")?"MCP Tool":a.includes("knowledge")||a.includes("search")||a.includes("fetch")?"Knowledge":"Code Tool"};return t.map((n,a)=>({id:`tool-${a+1}`,name:n.toolName||`Tool ${a+1}`,type:n.type||r(n.toolName||""),runs:n.count||0,responseTime:n.avgResponseTime?`${Math.round(n.avgResponseTime)}s`:"0s",tokens:n.tokens||Math.floor((n.count||0)*50),successRate:n.successRate?`${Math.round(n.successRate)}%`:"92%",lastRun:n.lastRun||new Date(Date.now()-Math.random()*7*24*60*60*1e3).toLocaleDateString(),icon:n.icon||void 0}))}transformModelsListViewToTable(t){if(!Array.isArray(t))return console.warn("Invalid listView data for models:",t),[];const r=n=>{const a=n.toLowerCase();return a.includes("gpt")||a.includes("openai")?"⚡":a.includes("claude")||a.includes("anthropic")?"A":a.includes("gemini")||a.includes("google")?"G":a.includes("llama")||a.includes("meta")?"M":"🤖"};return t.map((n,a)=>({id:`model-${a+1}`,name:n.modelName||`Model ${a+1}`,runs:n.count||0,responseTime:n.avgResponseTime?`${Math.round(n.avgResponseTime)}s`:"0s",tokens:n.tokens||Math.floor((n.count||0)*300),successRate:n.successRate?`${Math.round(n.successRate)}%`:"98%",lastRun:n.lastRun||new Date(Date.now()-Math.random()*7*24*60*60*1e3).toLocaleDateString(),icon:r(n.modelName||"")}))}extractAgentControlOptions(t){if(!Array.isArray(t))return[{label:"All Agents",value:"all"}];const r=[{label:"All Agents",value:"all"}];return t.forEach(n=>{var a;if(n.agentName){let i="";try{if(n.icon){const o=typeof n.icon=="string"?JSON.parse(n.icon):n.icon;if(o.name){const s=n.agentName.replace(/\s+/g,""),l=((a=o.color)==null?void 0:a.replace("#",""))||"b6e3f4";i=`https://api.dicebear.com/7.x/avataaars/svg?seed=${s}&backgroundColor=${l}&backgroundType=solid`}}}catch{console.warn("Failed to parse icon data for control:",n.icon)}r.push({label:n.agentName,value:n.agentName.replace(/\s+/g,"").toLowerCase(),avatar:i||`https://api.dicebear.com/7.x/avataaars/svg?seed=${n.agentName.replace(/\s+/g,"")}&backgroundColor=b6e3f4,c0aede,d1d4f9&backgroundType=solid`})}}),r}extractToolControlOptions(t){if(!Array.isArray(t))return[{label:"All Tools",value:"all"}];const r=[{label:"All Tools",value:"all"}];return t.forEach(n=>{if(n.toolName){const a=i=>{const o=i.toLowerCase();return o.includes("calculate")||o.includes("compute")?"Code Tool":o.includes("workflow")||o.includes("process")?"Workflow Tool":o.includes("mcp")||o.includes("protocol")?"MCP Tool":o.includes("knowledge")||o.includes("search")||o.includes("fetch")?"Knowledge":"Code Tool"};r.push({label:n.toolName,value:n.toolName.replace(/[-]/g,""),icon:n.icon||void 0,type:n.type||a(n.toolName)})}}),r}extractModelControlOptions(t){if(!Array.isArray(t))return[{label:"All Models",value:"all"}];const r=[{label:"All Models",value:"all"}],n=a=>{const i=a.toLowerCase();return i.includes("gpt")||i.includes("openai")?"⚡":i.includes("claude")||i.includes("anthropic")?"A":i.includes("gemini")||i.includes("google")?"G":i.includes("llama")||i.includes("meta")?"M":"🤖"};return t.forEach(a=>{a.modelName&&r.push({label:a.modelName,value:a.modelName.replace(/[-\.]/g,""),icon:n(a.modelName)})}),r}async fetchTimeSeriesDataWithTableData(t,r,n,a,i,o=[]){const s=await this.fetchTimeSeriesData(t,r,n,a,i,o);let l=[];s.data.forEach(d=>{d.listView&&Array.isArray(d.listView)&&(l=[...l,...d.listView])});const u=this.aggregateListViewItems(l);let c=[],f=[];return t==="agent-runs"?(c=this.transformAgentsListViewToTable(u),f=this.extractAgentControlOptions(u)):t==="tool-runs"?(c=this.transformToolsListViewToTable(u),f=this.extractToolControlOptions(u)):t==="model-runs"&&(c=this.transformModelsListViewToTable(u),f=this.extractModelControlOptions(u)),{chartData:this.transformTimeSeriesDataForMetric(s,t.replace("-","")),tableData:c,controlOptions:f}}aggregateListViewItems(t){const r=new Map;return t.forEach(n=>{const a=n.agentName||n.toolName||n.modelName||"unknown";if(r.has(a)){const i=r.get(a);i.count=(i.count||0)+(n.count||0),i.avgResponseTime=i.avgResponseTime&&n.avgResponseTime?(i.avgResponseTime+n.avgResponseTime)/2:i.avgResponseTime||n.avgResponseTime,i.tokens=(i.tokens||0)+(n.tokens||0)}else r.set(a,{...n})}),Array.from(r.values())}async fetchEnhancedMetricsData(t,r,n,a=[]){try{const[i,o,s]=await Promise.all([this.fetchTimeSeriesDataWithTableData("agent-runs","runs",t,r,n,a),this.fetchTimeSeriesDataWithTableData("tool-runs","runs",t,r,n,a),this.fetchTimeSeriesDataWithTableData("model-runs","runs",t,r,n,a)]);return{agents:i,tools:o,models:s}}catch(i){throw console.error("Error fetching enhanced metrics data:",i),i}}async transformRunsCardsWithEnhancedData(t,r,n,a,i=[]){const o=t.data.trends,s=h=>h>0?"increase":"decrease",[l,u,c,f]=await Promise.all([this.fetchTimeSeriesDataWithTableData("agent-runs","runs",r,n,a,i),this.fetchTimeSeriesDataWithTableData("tool-runs","runs",r,n,a,i),this.fetchTimeSeriesDataWithTableData("model-runs","runs",r,n,a,i),this.fetchTimeSeriesData("tool-runs","runs",r,n,a,i)]),d=this.transformTimeSeriesDataForToolRuns(f);return[{title:"Agent Runs",value:t.data.agentRuns,metricType:"agentRuns",icon:"bot",highlighted:!0,info:"Number of agent executions",change:o!=null&&o.agentRuns?{value:Math.abs(o.agentRuns.changePercent),type:s(o.agentRuns.changePercent)}:void 0,view:{type:"chart",chart:{type:"line",title:"Agent Runs",data:l.chartData,dataKey:"agentRuns",color:"#0BA5EC",yAxisLabel:"Number of Agent Runs",height:300,showGrid:!0,curve:"monotone",tooltip:{show:!0,style:"dark"},dateRange:{start:r.split("T")[0],end:n.split("T")[0]}},table:{title:"Agent Runs",data:l.tableData,columns:[{key:"name",title:"Name",width:200,align:"left"},{key:"runs",title:"Runs",width:100,align:"right",formatter:h=>`${Math.floor(h/1e3)}k`},{key:"responseTime",title:"Response Time",width:120,align:"right"},{key:"tokens",title:"Tokens",width:100,align:"right",formatter:h=>`${Math.floor(h/1e3)}k`}]}},controls:{dropdown:{label:"All Agents",options:l.controlOptions,defaultValue:["all"],multiSelect:!0,searchable:!0},toggle:{chartView:!0,tableView:!0}}},{title:"Tool Runs",value:t.data.toolRuns.total,metricType:"toolRuns",icon:"wrench",info:`Code: ${t.data.toolRuns.codeTools}, Library: ${t.data.toolRuns.libraryTools}, Knowledge: ${t.data.toolRuns.knowledgeTools}, MCP: ${t.data.toolRuns.mcpTools}`,highlighted:!1,change:o!=null&&o.toolRuns?{value:Math.abs(o.toolRuns.changePercent.total),type:s(o.toolRuns.changePercent.total)}:void 0,view:{type:"chart",chart:{type:"line",title:"Tool Runs",data:d,yAxisLabel:"Number of Tool Runs",lines:[{dataKey:"toolRuns",color:"#667085",label:"Tool Runs"},{dataKey:"codeTools",color:"#F38744",label:"Code Tools"},{dataKey:"workflowTools",color:"#2970FF",label:"Workflow Tools"},{dataKey:"knowledgeTools",color:"#7A5AF8",label:"Knowledge"},{dataKey:"mcpTools",color:"#47CD89",label:"MCP Tools"}],height:300,showGrid:!0,showLegend:!0,curve:"monotone",tooltip:{show:!0,style:"dark"},dateRange:{start:r.split("T")[0],end:n.split("T")[0]}},table:{title:"Tool Runs",data:u.tableData,columns:[{key:"name",title:"Name",width:200,align:"left"},{key:"type",title:"Type",width:150,align:"left"},{key:"runs",title:"Runs",width:100,align:"right",formatter:h=>`${Math.floor(h/1e3)}k`},{key:"responseTime",title:"Response Time",width:120,align:"right"}]}},controls:{dropdown:{label:"All Tools",options:u.controlOptions,defaultValue:["all"],multiSelect:!0,searchable:!0},toggle:{chartView:!0,tableView:!0}}},{title:"Model Runs",value:t.data.modelRuns,metricType:"modelRuns",icon:"cpu",highlighted:!1,info:"Number of model inferences",change:o!=null&&o.modelRuns?{value:Math.abs(o.modelRuns.changePercent),type:s(o.modelRuns.changePercent)}:void 0,view:{type:"chart",chart:{type:"line",title:"Model Runs",data:c.chartData,dataKey:"modelRuns",color:"#47CD89",yAxisLabel:"Number of Model Runs",height:300,showGrid:!0,curve:"monotone",tooltip:{show:!0,style:"dark"},dateRange:{start:r.split("T")[0],end:n.split("T")[0]}},table:{title:"Model Runs",data:c.tableData,columns:[{key:"name",title:"Model Name",width:200,align:"left"},{key:"runs",title:"Runs",width:100,align:"right",formatter:h=>`${Math.floor(h/1e3)}k`},{key:"tokens",title:"Tokens",width:120,align:"right",formatter:h=>`${Math.floor(h/1e3)}k`},{key:"responseTime",title:"Response Time",width:120,align:"right"}]}},controls:{dropdown:{label:"All Models",options:c.controlOptions,defaultValue:["all"],multiSelect:!0,searchable:!0},toggle:{chartView:!0,tableView:!0}}}]}async transformUsageAnalyticsCardsWithEnhancedData(t,r,n,a,i=[]){const o=t.data.trends,s=d=>d>0?"increase":"decrease",[l,u,c,f]=await Promise.all([this.fetchTimeSeriesData("users","usage-analytics",r,n,a,i),this.fetchTimeSeriesData("sessions","usage-analytics",r,n,a,i),this.fetchTimeSeriesData("messages","usage-analytics",r,n,a,i),this.fetchTimeSeriesData("tokens","usage-analytics",r,n,a,i)]);return[{title:"Users",value:t.data.users,metricType:"users",icon:"users",highlighted:!0,info:"Total number of unique users",change:o!=null&&o.users?{value:Math.abs(o.users.changePercent),type:s(o.users.changePercent)}:void 0,view:{type:"chart",chart:{type:"line",title:"Total Users",data:this.transformTimeSeriesDataForMetric(l,"users"),dataKey:"users",color:"#4E5BA6",yAxisLabel:"Number of Users",height:300,showGrid:!0,curve:"monotone",tooltip:{show:!0,style:"dark"},dateRange:{start:r.split("T")[0],end:n.split("T")[0]}}}},{title:"Sessions",value:t.data.sessions,metricType:"sessions",icon:"activity",highlighted:!1,info:"Total number of user sessions",change:o!=null&&o.sessions?{value:Math.abs(o.sessions.changePercent),type:s(o.sessions.changePercent)}:void 0,view:{type:"chart",chart:{type:"line",title:"Total Sessions",data:this.transformTimeSeriesDataForMetric(u,"sessions"),dataKey:"sessions",color:"#0BA5EC",yAxisLabel:"Number of Sessions",height:300,showGrid:!0,curve:"monotone",tooltip:{show:!0,style:"dark"},dateRange:{start:r.split("T")[0],end:n.split("T")[0]}}}},{title:"Messages",value:t.data.messages.total,metricType:"messages",icon:"message-circle",info:`Input: ${t.data.messages.input}, Output: ${t.data.messages.output}`,highlighted:!1,change:o!=null&&o.messages?{value:Math.abs(o.messages.changePercent.total),type:s(o.messages.changePercent.total)}:void 0,view:{type:"chart",chart:{type:"line",title:"Total Messages",data:this.transformTimeSeriesDataForMetric(c,"messages"),dataKey:"messages",color:"#E478FA",yAxisLabel:"Number of Messages",height:300,showGrid:!0,curve:"monotone",tooltip:{show:!0,style:"dark"},dateRange:{start:r.split("T")[0],end:n.split("T")[0]}}}},{title:"Tokens",value:t.data.tokens.total,metricType:"tokens",icon:"coins",info:`Input: ${t.data.tokens.input}, Output: ${t.data.tokens.output}`,highlighted:!1,change:o!=null&&o.tokens?{value:Math.abs(o.tokens.changePercent.total),type:s(o.tokens.changePercent.total)}:void 0,view:{type:"chart",chart:{type:"line",title:"Token Usage Breakdown",data:this.transformTimeSeriesDataForMetric(f,"tokens"),yAxisLabel:"Number of Tokens",lines:[{dataKey:"totalTokens",color:"#FF692E",label:"Total Tokens"},{dataKey:"inputTokens",color:"#5925DC",label:"Input Tokens"},{dataKey:"outputTokens",color:"#E478FA",label:"Output Tokens"}],height:300,showGrid:!0,showLegend:!0,curve:"monotone",tooltip:{show:!0,style:"dark"},dateRange:{start:r.split("T")[0],end:n.split("T")[0]}}}}]}transformTimeSeriesDataForToolRuns(t){if(console.log("=== TOOL RUNS SPECIFIC TRANSFORM DEBUG ==="),console.log("Raw TimeSeriesResponse for tool runs:",JSON.stringify(t,null,2)),!t||!t.data||!Array.isArray(t.data))return console.error("Invalid time series data structure:",t),[];const r=t.data.map((n,a)=>{console.log(`Processing point ${a}:`,n);const i=new Date(n.timestamp),o=i.toISOString().split("T")[0],s=i.toLocaleDateString("en-US",{month:"short",day:"numeric"}),l=n.count||0;let u=0,c=0,f=0,d=0;if(n.listView&&Array.isArray(n.listView)){n.listView.forEach(p=>{const v=p.count||0,g=(p.toolType||"").toLowerCase(),O=(p.toolName||"").toLowerCase();console.log("Processing listView item:",{toolType:g,toolName:O,count:v}),g==="tool"||g==="code"||g==="codetool"?u+=v:g==="workflow"||g==="workflowtool"||O.includes("workflow")?c+=v:g==="knowledge"||g==="knowledgetool"||O.includes("knowledge")||O.includes("search")||O.includes("fetch")?f+=v:g==="mcp"||g==="mcptool"||O.includes("mcp")?d+=v:(console.log(`Unknown tool type '${g}' for tool '${O}', defaulting to code tools`),u+=v)}),console.log(`Calculated breakdown for point ${a}:`,{codeTools:u,workflowTools:c,knowledgeTools:f,mcpTools:d,total:u+c+f+d,expectedTotal:l});const y=u+c+f+d;if(Math.abs(y-l)>1){console.warn(`Breakdown total (${y}) doesn't match expected total (${l}) for point ${a}`);const p=l-y;u+=p,console.log(`Adjusted codeTools by ${p} to balance total`)}}else console.log(`No listView data for point ${a}, assigning all ${l} to codeTools`),u=l;const h={date:o,timestamp:s,formattedDate:s,toolRuns:l,value:l,count:l,codeTools:u,workflowTools:c,knowledgeTools:f,mcpTools:d,input_tokens:n.input_tokens||0,output_tokens:n.output_tokens||0,total_tokens:(n.input_tokens||0)+(n.output_tokens||0),inputTokens:n.input_tokens||0,outputTokens:n.output_tokens||0,totalTokens:(n.input_tokens||0)+(n.output_tokens||0),listView:n.listView||[],index:a};return console.log(`Transformed tool runs point ${a}:`,h),h});return console.log("Final tool runs transformed data:",JSON.stringify(r,null,2)),console.log("=== END TOOL RUNS SPECIFIC TRANSFORM DEBUG ==="),r}async fetchAllCardsData(t,r,n=[]){try{const[a,i]=await Promise.all([this.fetchUsageAnalyticsCards(t,r,void 0,n),this.fetchRunsCards(t,r,void 0,n)]);return{usageAnalytics:this.transformUsageAnalyticsCards(a),runs:this.transformRunsCards(i)}}catch(a){throw console.error("Error fetching cards data:",a),a}}async fetchAllCardsDataWithEnhancedViews(t,r,n,a=[]){try{const[i,o]=await Promise.all([this.fetchUsageAnalyticsCards(t,r,n,a),this.fetchRunsCards(t,r,n,a)]),[s,l]=await Promise.all([this.transformUsageAnalyticsCardsWithEnhancedData(i,t,r,n,a),this.transformRunsCardsWithEnhancedData(o,t,r,n,a)]);return{usageAnalytics:s,runs:l}}catch(i){throw console.error("Error fetching enhanced cards data:",i),i}}async fetchDefaultTimeSeriesData(t,r,n,a=[]){try{const[i,o]=await Promise.all([this.fetchTimeSeriesData("sessions","usage-analytics",t,r,n,a),this.fetchTimeSeriesData("agent-runs","runs",t,r,n,a)]);return{sessions:this.transformTimeSeriesData(i),agentRuns:this.transformTimeSeriesData(o)}}catch(i){throw console.error("Error fetching default time series data:",i),i}}static getDateRange(t=30){const r=new Date,n=new Date;return n.setDate(r.getDate()-t),{fromTimestamp:n.toISOString(),toTimestamp:r.toISOString()}}static getTimeDimension(t,r){const n=new Date(t),a=new Date(r),i=new Date(n.getFullYear(),n.getMonth(),n.getDate()),o=new Date(a.getFullYear(),a.getMonth(),a.getDate()),s=o.getTime()-i.getTime(),l=s/(1e3*60*60*24),u=i.toISOString().split("T")[0],c=o.toISOString().split("T")[0],f=u===c,d=new Date(n.getFullYear(),n.getMonth(),n.getDate()),h=f&&Math.abs(n.getTime()-d.getTime())<1e3,y=Math.abs(a.getTime()-n.getTime()),p=y<60*1e3;return console.log("🕐 TimeDimension calculation:",{fromTimestamp:t,toTimestamp:r,fromDateStr:u,toDateStr:c,diffInMs:s,diffInDays:l,isSameCalendarDay:f,isTodayPattern:h,timeDiffInMs:y,isVeryClose:p,fromStartOfDay:d.toISOString(),recommended:f||h||p||l<=1?"hour":l<=31?"day":l<=90?"week":"month"}),f||h||p||l<=1?"hour":"day"}getAvailableMetrics(){return{"usage-analytics":["sessions","messages","users","tokens"],runs:["agent-runs","model-runs","tool-runs"]}}}const TU=({config:e,appConfig:t,className:r,onExport:n,onDraftChange:a,onTimeRangeChange:i})=>{var B;const{title:o,subtitle:s,sections:l,globalControls:u,layout:c={columns:12,gap:24,responsive:!0}}=e,[f,d]=S.useState(!1),[h,y]=S.useState({}),[p,v]=S.useState(l),[g,O]=S.useState([]),[x,A]=S.useState(!1),m=S.useRef(null);S.useEffect(()=>{if(t)try{m.current=new ur(t),w(),T()}catch(M){console.error("Failed to initialize API service:",M)}},[t]);const w=async()=>{if(!(!m.current||!t)){A(!0);try{const M=await m.current.fetchEnvironments();O(M),console.log("🌍 Environments loaded:",M.map(E=>E.envName))}catch(M){console.error("Error loading environments:",M)}finally{A(!1)}}},T=async()=>{if(!(!m.current||!t)){d(!0);try{const M=m.current.getDefaultTimeRange();console.log("📊 Loading dashboard data with date range:",{fromTimestamp:M.fromTimestamp,toTimestamp:M.toTimestamp,fromDate:new Date(M.fromTimestamp).toLocaleDateString(),toDate:new Date(M.toTimestamp).toLocaleDateString()});const E=await m.current.fetchAllCardsDataWithEnhancedViews(M.fromTimestamp,M.toTimestamp);console.log("✅ Enhanced cards data loaded successfully:",E),console.log("📈 Data covers period:",{from:new Date(M.fromTimestamp).toLocaleDateString(),to:new Date(M.toTimestamp).toLocaleDateString()});const F=l.map(U=>U.id==="usage-analytics"?(console.log("Updating usage-analytics section with enhanced data"),{...U,metrics:E.usageAnalytics}):U.id==="runs"?(console.log("Updating runs section with enhanced data including table and controls"),{...U,metrics:E.runs}):U);v(F)}catch(M){console.error("Error loading initial data:",M),v(l)}finally{d(!1)}}},_=async(M,E)=>{if(!(!m.current||!t||!E.metricType)){v(F=>F.map(U=>U.id===M?{...U,metrics:U.metrics.map(k=>({...k,highlighted:k.metricType===E.metricType}))}:U)),y(F=>({...F,[M]:!0}));try{const F=t.defaultTimeRange||ur.getDateRange(30);let U,k;if(["users","sessions","messages","tokens"].includes(E.metricType))U="usage-analytics",k=E.metricType;else if(["agentRuns","toolRuns","modelRuns"].includes(E.metricType))U="runs",k=E.metricType==="agentRuns"?"agent-runs":E.metricType==="toolRuns"?"tool-runs":"model-runs";else return;const N=await m.current.fetchTimeSeriesData(k,U,F.fromTimestamp,F.toTimestamp),I=m.current.transformTimeSeriesDataForMetric(N,E.metricType);console.log("Time series response for",E.title,":",N),console.log("Transformed data for",E.title,":",I),console.log("Metric type used for transformation:",E.metricType);const z=(V=>({users:"users",sessions:"sessions",messages:"messages",tokens:"totalTokens",agentRuns:"agentRuns",toolRuns:"toolRuns",modelRuns:"modelRuns"})[V]||"count")(E.metricType||"count");console.log("Using dataKey for metric",E.metricType,":",z),v(V=>V.map(Z=>{if(Z.id===M){const Q={...Z,view:{...Z.view,chart:Z.view.chart?{...Z.view.chart,data:I,dataKey:z,lines:[{dataKey:z,color:Z.view.chart.color||"#3b82f6",label:E.title,strokeWidth:2}]}:{type:"line",data:I,dataKey:z,lines:[{dataKey:z,color:"#3b82f6",label:E.title,strokeWidth:2}],yAxisLabel:E.title}}};return console.log("Updated section for",M,":",Q),console.log("Chart config set:",Q.view.chart),Q}return Z}))}catch(F){console.error("Error loading metric data:",F)}finally{y(F=>({...F,[M]:!1}))}}},$=M=>{var E,F;if((F=(E=u==null?void 0:u.draft)==null?void 0:E.onChange)==null||F.call(E,M),a==null||a(M),t&&m.current){const U={...t,environment:M};m.current.updateConfig(U),T()}},R=M=>{var E,F;if(console.log("🗓️ Time range change requested:",M),typeof M=="string"&&((F=(E=u==null?void 0:u.timeRange)==null?void 0:E.onChange)==null||F.call(E,M)),i==null||i(M),t&&m.current){let U=null;if(typeof M=="object"&&M.from&&M.to)U={fromTimestamp:M.from.toISOString(),toTimestamp:M.to.toISOString()},console.log("📅 Converting DateRange to API format:",U);else if(typeof M=="string"){const N={"24h":1,"7d":7,"30d":30,"90d":90}[M];N&&(U=ur.getDateRange(N),console.log(`📅 Converting preset "${M}" (${N} days) to API format:`,U))}if(U){const k={...t,defaultTimeRange:U};console.log("🔄 Updating API configuration with new date range:",k.defaultTimeRange),m.current.updateConfig(k),console.log("🚀 Reloading dashboard data with new date range..."),T()}else console.warn("⚠️ Unable to convert time range value to API format:",M)}},P=(M="csv")=>{var E,F;(F=(E=u==null?void 0:u.export)==null?void 0:E.onExport)==null||F.call(E,M),n==null||n()},j=()=>{t&&m.current&&T()},L=Object.values(h).some(M=>M);return b.jsxs("div",{className:ue("mx-auto p-6",r),children:[b.jsx("div",{className:"mb-8",children:b.jsxs("div",{className:"flex items-center justify-between",children:[b.jsxs("div",{children:[b.jsx("h1",{className:"text-3xl font-bold text-gray-900",children:o}),s&&b.jsx("p",{className:"text-gray-600 mt-2",children:s})]}),b.jsxs("div",{className:"flex items-center gap-3",children:[t&&b.jsxs($s,{variant:"outline",onClick:j,disabled:f||L,className:"gap-2",children:[b.jsx(r0,{className:ue("h-4 w-4",(f||L)&&"animate-spin")}),"Refresh"]}),u&&b.jsxs(b.Fragment,{children:[u.draft&&b.jsx(js,{options:g.length>0?g.map(M=>({label:M.envName.charAt(0).toUpperCase()+M.envName.slice(1),value:M.envName})):u.draft.options,value:u.draft.defaultValue,placeholder:x?"Loading environments...":u.draft.label,onChange:$,className:"min-w-[200px]",disabled:f||L||x}),u.timeRange&&(u.timeRange.useDatePicker?(console.log("🗓️ Dashboard: Rendering DateRangePicker with defaultValue:",u.timeRange.defaultValue),b.jsx(Mb,{defaultValue:u.timeRange.defaultValue,onDateRangeChange:M=>{console.log("🗓️ Dashboard: DateRangePicker callback received:",M),M&&R(M)}})):b.jsxs("div",{className:"flex items-center gap-2",children:[b.jsx(yf,{className:"h-4 w-4 text-gray-500"}),b.jsx(js,{options:u.timeRange.options||[],value:u.timeRange.defaultValue,placeholder:u.timeRange.label,onChange:R,className:"min-w-[200px]",disabled:f||L})]})),((B=u.export)==null?void 0:B.enabled)&&b.jsxs($s,{variant:"outline",onClick:()=>P(),className:"gap-2",disabled:f||L,children:[b.jsx(e0,{className:"h-4 w-4"}),"Export"]})]})]})]})}),b.jsx("div",{className:ue("grid gap-6",c.responsive&&"grid-cols-1 lg:grid-cols-12"),style:{gridTemplateColumns:c.responsive?void 0:`repeat(${c.columns}, minmax(0, 1fr))`,gap:c.gap?`${c.gap}px`:void 0},children:p.map(M=>{var E,F,U,k;return b.jsx(wb,{section:M,isLoading:f,isChartLoading:h[M.id]||!1,onMetricClick:N=>_(M.id,N),className:ue(c.responsive&&((E=M.layout)==null?void 0:E.span)===12&&"lg:col-span-12",c.responsive&&((F=M.layout)==null?void 0:F.span)===6&&"lg:col-span-6",c.responsive&&((U=M.layout)==null?void 0:U.span)===4&&"lg:col-span-4",c.responsive&&((k=M.layout)==null?void 0:k.span)===3&&"lg:col-span-3")},M.id)})})]})},Is=["Portfolio Analysis Expert","Mortgage Evaluator","Credit Risk Specialist","Asset Valuation Analyst","Liability Assessment Advisor"],Ls=["calculate-creditScore","calculate-risk","calculate-mortgage","analyse-expenses","fetch-statement"],Rs=["gpt-4o","gpt-4o-mini","gpt-3.5-turbo","claude-3-5-sonnet","claude-3-5-haiku","claude-3-opus","gemini-1.5-pro","gemini-1.5-flash","llama-3.1-405b","llama-3.1-70b"],PU=(e=30)=>{const t=[],r=new Date;for(let n=e-1;n>=0;n--){const a=new Date(r);a.setDate(r.getDate()-n);const i=600+Math.sin(n*.1)*100,o=Math.floor(i+Math.random()*100),s=Math.floor(o*3.5+Math.random()*200),l=Math.floor(s*2.9+Math.random()*500),u=Math.floor(l*.9+Math.random()*300),c=Math.floor(u*.6),f=u-c,d=Math.floor(s*.8+Math.random()*100),h=Math.floor(d*12+Math.random()*500),y=Math.floor(d*8+Math.random()*300),p=Math.floor(h*.3+Math.random()*100),v=Math.floor(h*.25+Math.random()*80),g=Math.floor(h*.2+Math.random()*60),O=Math.floor(h*.15+Math.random()*50),x={};Is.forEach(w=>{const T=w.replace(/\s+/g,"").toLowerCase(),_=Math.floor(d/Is.length);x[T]=Math.floor(_+Math.random()*(_*.5))});const A={};Ls.forEach(w=>{const T=w.replace(/[-]/g,""),_=Math.floor(h/Ls.length);A[T]=Math.floor(_+Math.random()*(_*.8))});const m={};Rs.forEach(w=>{const T=w.replace(/[-\.]/g,""),_=Math.floor(y/Rs.length);m[T]=Math.floor(_+Math.random()*(_*.6))}),t.push({date:a.toISOString().split("T")[0],users:o,sessions:s,messages:l,totalTokens:u,inputTokens:c,outputTokens:f,agentRuns:d,toolRuns:h,modelRuns:y,codeTools:p,workflowTools:v,knowledgeTools:g,mcpTools:O,...x,...A,...m,value:o})}return t},_U=()=>{const e=[],t=['{"name":"avatar14","color":"#F6D0FE","type":"human"}','{"name":"avatar2","color":"#3B82F6","type":"human"}','{"name":"avatar7","color":"#EF4444","type":"human"}','{"name":"avatar12","color":"#10B981","type":"human"}','{"name":"avatar8","color":"#F59E0B","type":"human"}'];return Is.forEach((r,n)=>{e.push({id:`agent-${n+1}`,name:r,runs:Math.floor(Math.random()*8e3)+4e3,responseTime:`${Math.floor(Math.random()*120)+15}s`,tokens:Math.floor(Math.random()*4e5)+1e5,successRate:`${Math.floor(Math.random()*20)+80}%`,lastRun:new Date(Date.now()-Math.random()*7*24*60*60*1e3).toLocaleDateString(),avatar:`https://api.dicebear.com/7.x/avataaars/svg?seed=${r.replace(/\s+/g,"")}&backgroundColor=b6e3f4,c0aede,d1d4f9&backgroundType=solid`,icon:t[n]||t[0]})}),e},EU=()=>{const e=r=>r.includes("calculate-creditscore")?"Code Tool":r.includes("calculate-risk")?"Workflow Tool":r.includes("calculate-mortgage")?"MCP Tool":r.includes("analyse-expenses")?"Workflow Tool":r.includes("fetch-statement")?"Knowledge":"Code Tool",t=['{"name":"calculator","color":"#EF6820","type":"inlineTool"}','{"name":"workflow","color":"#155EEF","type":"toolLibrary"}','{"name":"mcptool","color":"#101828","type":"MCP"}','{"name":"expenses","color":"#155EEF","type":"toolLibrary"}','{"name":"knowledge","color":"#7A5AF8","type":"KNOWLEDGE"}'];return Ls.map((r,n)=>({id:`tool-${n+1}`,name:r,type:e(r),runs:Math.floor(Math.random()*8e3)+4e3,responseTime:`${Math.floor(Math.random()*90)+15}s`,tokens:Math.floor(Math.random()*2e4)+5e3,successRate:`${Math.floor(Math.random()*15)+85}%`,lastRun:new Date(Date.now()-Math.random()*7*24*60*60*1e3).toLocaleDateString(),icon:t[n]||t[0]}))},jU=()=>Rs.map((e,t)=>({id:`model-${t+1}`,name:e,runs:Math.floor(Math.random()*8e3)+4e3,responseTime:`${Math.floor(Math.random()*120)+15}s`,tokens:Math.floor(Math.random()*5e5)+1e5,successRate:`${Math.floor(Math.random()*15)+85}%`,lastRun:new Date(Date.now()-Math.random()*7*24*60*60*1e3).toLocaleDateString()})),Jr=PU(),$U=_U(),CU=EU(),MU=jU(),kU={id:"main-dashboard",title:"Dashboard",subtitle:"Monitor and review the usage of your agentic app.",version:"1.0.0",globalControls:{draft:{label:"Draft",options:[{label:"Current Draft",value:"current"},{label:"Previous Draft",value:"previous"},{label:"All Drafts",value:"all"}],defaultValue:"current"},timeRange:{label:"Time Range",options:[{label:"This month",value:"month"},{label:"Last 7 days",value:"week"},{label:"Last 30 days",value:"30days"},{label:"Last 90 days",value:"90days"}],defaultValue:"month"},export:{enabled:!0,formats:["csv","json","pdf"]}},layout:{columns:12,gap:24,responsive:!0},sections:[{id:"sessions",title:"Sessions",description:"User engagement and session analytics",metrics:[{title:"Users",value:3384,change:{value:6,type:"increase"},info:"Total number of unique users",metricType:"users",view:{type:"chart",chart:{type:"line",title:"Total Users",data:Jr,dataKey:"users",color:"#8b5cf6",yAxisLabel:"Number of Users",height:300,showGrid:!0,curve:"monotone",tooltip:{show:!0,style:"dark"},dateRange:{start:"2025-05-06",end:"2025-06-05"}}}},{title:"Sessions",value:11847,change:{value:18,type:"increase"},info:"Total number of user sessions",metricType:"sessions",view:{type:"chart",chart:{type:"line",title:"Total Sessions",data:Jr,dataKey:"sessions",color:"#06b6d4",yAxisLabel:"Number of Sessions",height:300,showGrid:!0,curve:"monotone",tooltip:{show:!0,style:"dark"},dateRange:{start:"2025-05-06",end:"2025-06-05"}}}},{title:"Messages",value:34563,change:{value:5,type:"increase"},info:"Total messages exchanged",metricType:"messages",view:{type:"chart",chart:{type:"line",title:"Total Messages",data:Jr,dataKey:"messages",color:"#e879f9",yAxisLabel:"Number of Messages",height:300,showGrid:!0,curve:"monotone",tooltip:{show:!0,style:"dark"},dateRange:{start:"2025-05-06",end:"2025-06-05"}}}},{title:"Tokens",value:32044,change:{value:44,type:"increase"},info:"Total tokens processed",metricType:"tokens",view:{type:"chart",chart:{type:"line",title:"Token Usage Breakdown",data:Jr,yAxisLabel:"Number of Tokens",lines:[{dataKey:"totalTokens",color:"#f97316",label:"Total Tokens"},{dataKey:"inputTokens",color:"#3b82f6",label:"Input Tokens"},{dataKey:"outputTokens",color:"#e879f9",label:"Output Tokens"}],height:300,showGrid:!0,showLegend:!0,curve:"monotone",tooltip:{show:!0,style:"dark"},dateRange:{start:"2025-05-06",end:"2025-06-05"}}}}],view:{type:"chart"},layout:{span:12,order:1}},{id:"runs",title:"Runs",description:"Agent, tool, and model execution analytics",metrics:[{title:"Agent Runs",value:3384,change:{value:6,type:"increase"},info:"Number of agent executions",metricType:"agentRuns",view:{type:"chart",chart:{type:"line",title:"Agent Runs",data:Jr,dataKey:"agentRuns",color:"#06b6d4",yAxisLabel:"Number of Agent Runs",height:300,showGrid:!0,curve:"monotone",tooltip:{show:!0,style:"dark"},dateRange:{start:"2025-05-06",end:"2025-06-05"}},table:{title:"Agent Runs",data:$U,columns:[{key:"name",title:"Name",width:200,align:"left"},{key:"runs",title:"Runs",width:100,align:"right",formatter:e=>`${Math.floor(e/1e3)}k`},{key:"responseTime",title:"Response Time",width:120,align:"right"},{key:"tokens",title:"Tokens",width:100,align:"right",formatter:e=>`${Math.floor(e/1e3)}k`}]}},controls:{dropdown:{label:"All Agents",options:[{label:"All Agents",value:"all"},...Is.map(e=>({label:e,value:e.replace(/\s+/g,"").toLowerCase(),avatar:`https://api.dicebear.com/7.x/avataaars/svg?seed=${e.replace(/\s+/g,"")}&backgroundColor=b6e3f4,c0aede,d1d4f9&backgroundType=solid`}))],defaultValue:["all"],multiSelect:!0,searchable:!0},toggle:{chartView:!0,tableView:!0}}},{title:"Tool Runs",value:34563,change:{value:5,type:"increase"},info:"Number of tool executions",metricType:"toolRuns",view:{type:"chart",chart:{type:"line",title:"Tool Runs",data:Jr,yAxisLabel:"Number of Tool Runs",lines:[{dataKey:"toolRuns",color:"#06b6d4",label:"Tool Runs"},{dataKey:"codeTools",color:"#f97316",label:"Code Tools"},{dataKey:"workflowTools",color:"#10b981",label:"Workflow Tools"},{dataKey:"knowledgeTools",color:"#8b5cf6",label:"Knowledge"},{dataKey:"mcpTools",color:"#ef4444",label:"MCP Tools"}],height:300,showGrid:!0,showLegend:!0,curve:"monotone",tooltip:{show:!0,style:"dark"},dateRange:{start:"2025-05-06",end:"2025-06-05"}},table:{title:"Tool Runs",data:CU,columns:[{key:"name",title:"Name",width:200,align:"left"},{key:"type",title:"Type",width:150,align:"left"},{key:"runs",title:"Runs",width:100,align:"right",formatter:e=>`${Math.floor(e/1e3)}k`},{key:"responseTime",title:"Response Time",width:120,align:"right"}]}},controls:{dropdown:{label:"All Tools",options:[{label:"All Tools",value:"all"},...Ls.map((e,t)=>{const r=['{"name":"calculator","color":"#EF6820","type":"inlineTool"}','{"name":"workflow","color":"#155EEF","type":"toolLibrary"}','{"name":"mcptool","color":"#101828","type":"MCP"}','{"name":"expenses","color":"#155EEF","type":"toolLibrary"}','{"name":"knowledge","color":"#7A5AF8","type":"KNOWLEDGE"}'],n=a=>a.includes("calculate-creditscore")?"Code Tool":a.includes("calculate-risk")?"Workflow Tool":a.includes("calculate-mortgage")?"MCP Tool":a.includes("analyse-expenses")?"Workflow Tool":a.includes("fetch-statement")?"Knowledge":"Code Tool";return{label:e,value:e.replace(/[-]/g,""),icon:r[t]||r[0],type:n(e)}})],defaultValue:["all"],multiSelect:!0,searchable:!0},toggle:{chartView:!0,tableView:!0}}},{title:"Model Runs",value:32044,change:{value:44,type:"increase"},info:"Number of model inferences",metricType:"modelRuns",view:{type:"chart",chart:{type:"line",title:"Model Runs",data:Jr,dataKey:"modelRuns",color:"#10b981",yAxisLabel:"Number of Model Runs",height:300,showGrid:!0,curve:"monotone",tooltip:{show:!0,style:"dark"},dateRange:{start:"2025-05-06",end:"2025-06-05"}},table:{title:"Model Runs",data:MU,columns:[{key:"name",title:"Model Name",width:200,align:"left"},{key:"runs",title:"Runs",width:100,align:"right",formatter:e=>`${Math.floor(e/1e3)}k`},{key:"tokens",title:"Tokens",width:120,align:"right",formatter:e=>`${Math.floor(e/1e3)}k`},{key:"responseTime",title:"Response Time",width:120,align:"right"}]}},controls:{dropdown:{label:"All Models",options:[{label:"All Models",value:"all"},...Rs.map(e=>{const t=r=>{const n=r.toLowerCase();return n.includes("gpt")||n.includes("openai")?"⚡":n.includes("claude")||n.includes("anthropic")?"A":n.includes("gemini")||n.includes("google")?"G":n.includes("llama")||n.includes("meta")?"M":"🤖"};return{label:e,value:e.replace(/[-\.]/g,""),icon:t(e)}})],defaultValue:["all"],multiSelect:!0,searchable:!0},toggle:{chartView:!0,tableView:!0}}}],view:{type:"chart"},layout:{span:12,order:2}}]},Ht={primary:["#8b5cf6","#06b6d4","#f97316","#10b981","#ec4899","#f59e0b","#3b82f6","#ef4444"],secondary:["#a78bfa","#22d3ee","#fb923c","#34d399","#f472b6","#fbbf24","#60a5fa","#f87171"],accent:["#6366f1","#8b5cf6","#d946ef","#06b6d4","#84cc16","#eab308"],semantic:{success:"#10b981",warning:"#f59e0b",error:"#ef4444",info:"#3b82f6"},gradients:{purple:["#8b5cf6","#a78bfa"],cyan:["#06b6d4","#22d3ee"],orange:["#f97316","#fb923c"],green:["#10b981","#34d399"],sunset:["#f97316","#ec4899"],ocean:["#06b6d4","#3b82f6"],forest:["#10b981","#84cc16"]}},NU={primary:["#7c3aed","#0891b2","#ea580c","#059669","#db2777","#d97706","#2563eb","#dc2626"],secondary:["#8b5cf6","#06b6d4","#f97316","#10b981","#ec4899","#f59e0b","#3b82f6","#ef4444"],accent:["#4f46e5","#7c3aed","#c026d3","#0891b2","#65a30d","#ca8a04"],semantic:{success:"#059669",warning:"#d97706",error:"#dc2626",info:"#2563eb"}},DU={primary:["#a78bfa","#22d3ee","#fb923c","#34d399","#f472b6","#fbbf24","#60a5fa","#f87171"],secondary:["#c4b5fd","#67e8f9","#fdba74","#6ee7b7","#f9a8d4","#fcd34d","#93c5fd","#fca5a5"],accent:["#818cf8","#a78bfa","#e879f9","#22d3ee","#a3e635","#facc15"],semantic:{success:"#34d399",warning:"#fbbf24",error:"#f87171",info:"#60a5fa"}},IU={primary:["#1f2937","#374151","#6b7280","#9ca3af","#3b82f6","#1d4ed8","#10b981","#f59e0b"],secondary:["#4b5563","#6b7280","#9ca3af","#d1d5db","#60a5fa","#3b82f6","#34d399","#fbbf24"],accent:["#2563eb","#1d4ed8","#059669","#0891b2","#d97706","#b45309"],semantic:{success:"#059669",warning:"#d97706",error:"#dc2626",info:"#1d4ed8"}},Db=(e,t)=>e.primary[t%e.primary.length],Oi=(e,t)=>e.semantic[t],LU=(e,t)=>{var r;return((r=e.gradients)==null?void 0:r[t])||[e.primary[0],e.primary[1]]},Ib=(e,t=Ht)=>e.map((r,n)=>({...r,color:Db(t,n)})),Bs=((e=30)=>{const t=[],r=new Date;for(let n=e-1;n>=0;n--){const a=new Date(r);a.setDate(r.getDate()-n);const i=600+Math.sin(n*.1)*100,o=Math.floor(i+Math.random()*100),s=Math.floor(o*3.5+Math.random()*200),l=Math.floor(s*2.9+Math.random()*500),u=Math.floor(l*.9+Math.random()*300),c=Math.floor(u*.6),f=u-c,d=Math.floor(s*.8+Math.random()*100),h=Math.floor(d*12+Math.random()*500),y=Math.floor(d*8+Math.random()*300);t.push({date:a.toISOString().split("T")[0],users:o,sessions:s,messages:l,totalTokens:u,inputTokens:c,outputTokens:f,agentRuns:d,toolRuns:h,modelRuns:y,value:o})}return t})(),RU={id:"enhanced-dashboard",title:"Enhanced Color Configuration Dashboard",subtitle:"Demonstrating all color configuration options",version:"1.0.0",globalControls:{draft:{label:"Draft",options:[{label:"Current Draft",value:"current"},{label:"Previous Draft",value:"previous"}],defaultValue:"current"},timeRange:{label:"Time Range",options:[{label:"Last 7 days",value:"week"},{label:"Last 30 days",value:"30days"}],defaultValue:"30days"},export:{enabled:!0,formats:["csv","json"]}},layout:{columns:12,gap:24,responsive:!0},sections:[{id:"manual-colors",title:"Manual Color Assignment",description:"Each line has manually assigned colors",metrics:[{title:"Total Users",value:3384,change:{value:6,type:"increase"},info:"Manually colored chart"}],view:{type:"chart",chart:{type:"line",title:"Manual Color Configuration",data:Bs,lines:[{dataKey:"users",color:"#8b5cf6",label:"Users",strokeWidth:3},{dataKey:"sessions",color:"#06b6d4",label:"Sessions",strokeWidth:2},{dataKey:"messages",color:"#f97316",label:"Messages",strokeWidth:2,strokeDasharray:"5 5"}],dateRange:{start:"2025-05-06",end:"2025-06-05"},tooltip:{show:!0,style:"dark"},height:300,showLegend:!1}},layout:{span:6,order:1}},{id:"auto-colors",title:"Auto-Assigned Colors",description:"Colors automatically assigned from palette",metrics:[{title:"Agent Runs",value:3384,change:{value:6,type:"increase"},info:"Auto-colored from palette"}],view:{type:"chart",chart:{type:"line",title:"Auto Color Assignment",data:Bs,lines:Ib([{dataKey:"agentRuns",label:"Agent Runs"},{dataKey:"toolRuns",label:"Tool Runs"},{dataKey:"modelRuns",label:"Model Runs"},{dataKey:"totalTokens",label:"Total Tokens"}],Ht),dateRange:{start:"2025-05-06",end:"2025-06-05"},tooltip:{show:!0,style:"dark"},height:300,showLegend:!1}},layout:{span:6,order:2}},{id:"semantic-colors",title:"Semantic Colors",description:"Using semantic colors for different data types",metrics:[{title:"Success Rate",value:"94.2%",change:{value:2,type:"increase"},info:"Using semantic success color"},{title:"Error Rate",value:"5.8%",change:{value:1,type:"decrease"},info:"Using semantic error color"}],view:{type:"chart",chart:{type:"line",title:"Semantic Color Usage",data:Bs,lines:[{dataKey:"users",color:Oi(Ht,"success"),label:"Successful Operations",strokeWidth:3},{dataKey:"sessions",color:Oi(Ht,"warning"),label:"Warning Events",strokeWidth:2},{dataKey:"messages",color:Oi(Ht,"error"),label:"Error Events",strokeWidth:2},{dataKey:"totalTokens",color:Oi(Ht,"info"),label:"Info Events",strokeWidth:2}],dateRange:{start:"2025-05-06",end:"2025-06-05"},tooltip:{show:!0,style:"dark"},height:300,showLegend:!1}},layout:{span:12,order:3}},{id:"single-custom",title:"Single Line Custom Color",description:"Single line chart with custom color and styling",metrics:[{title:"Total Messages",value:34563,change:{value:5,type:"increase"},info:"Custom styled single line"}],view:{type:"chart",chart:{type:"line",title:"Custom Single Line",data:Bs,dataKey:"messages",color:"#ec4899",dateRange:{start:"2025-05-06",end:"2025-06-05"},tooltip:{show:!0,style:"dark"},height:250,showGrid:!0,curve:"monotone"}},layout:{span:12,order:4}}]},BU={manualColors:{line1:"#8b5cf6",line2:"#06b6d4",line3:"#f97316",line4:"#10b981"},paletteColors:Ht.primary,semanticColors:Ht.semantic,gradientColors:Ht.gradients},FU={baseUrl:window.location.protocol+"//"+window.location.hostname,dashboardType:"agenticDashboard",projectId:"aa-bdbfa4eb-c7c4-4350-be96-d778188c2c4b",environment:"draft",headers:{authorization:"Bearer 2amvsUbh87obVLVYjbNnXCbXnOr-plekM7-qjKt2EJIZnZuAV2KT9WSTG0L4U33X",accountId:"6290f982fb880154e99bbede","Content-Type":"application/json"},defaultTimeRange:{fromTimestamp:new Date(Date.now()-30*24*60*60*1e3).toISOString(),toTimestamp:new Date().toISOString()},refreshInterval:3e4},WU={id:"agentic-analytics-dashboard",title:"Dashboard",subtitle:"Monitor and review the usage of your agentic app.",sections:[{id:"usage-analytics",title:"Sessions",metrics:[{title:"Users",value:0,metricType:"users",highlighted:!0},{title:"Sessions",value:0,metricType:"sessions",highlighted:!1},{title:"Messages",value:0,metricType:"messages",highlighted:!1},{title:"Tokens",value:0,metricType:"tokens",highlighted:!1}],view:{type:"chart",chart:{type:"line",title:"Usage Over Time",data:[],lines:[{dataKey:"count",color:"#3B82F6",label:"Count",strokeWidth:2}],xAxisLabel:"Date",yAxisLabel:"Count",tooltip:{show:!0,formatter:(e,t)=>[`${e}`,t]}}},layout:{span:12}},{id:"runs",title:"Runs",metrics:[{title:"Agent Runs",value:0,metricType:"agentRuns",highlighted:!0},{title:"Tool Runs",value:0,metricType:"toolRuns",highlighted:!1},{title:"Model Runs",value:0,metricType:"modelRuns",highlighted:!1}],view:{type:"chart",chart:{type:"line",title:"Execution Runs Over Time",data:[],lines:[{dataKey:"count",color:"#10B981",label:"Runs",strokeWidth:2}],xAxisLabel:"Date",yAxisLabel:"Count",tooltip:{show:!0,formatter:(e,t)=>[`${e}`,t]}}},layout:{span:12}}],globalControls:{draft:{label:"Environment",options:[{label:"Draft",value:"draft"},{label:"Production",value:"production"},{label:"Staging",value:"staging"}],defaultValue:"draft"},timeRange:{label:"Time Range",useDatePicker:!0,options:[{label:"Last 7 days",value:"7d"},{label:"Last 30 days",value:"30d"},{label:"Last 90 days",value:"90d"}],defaultValue:"30d"},export:{enabled:!1,formats:["csv","json"],onExport:e=>{console.log(`Exporting in ${e} format`)}}},layout:{columns:12,gap:24,responsive:!0}},UU=`
210
210
  // In your Angular component (usage-analytics.component.ts)
211
211
  import { Dashboard, apiEnabledDashboardConfig, agenticAppConfig } from '@agentic/ui-libs';
212
212
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agentic-ui-libs",
3
- "version": "0.0.8",
3
+ "version": "0.0.9",
4
4
  "type": "module",
5
5
  "description": "A modular, config-driven analytics library for React and Angular applications",
6
6
  "main": "dist/index.js",