@odigos/ui-kit 0.0.135 → 0.0.136

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.
@@ -6,6 +6,7 @@ export interface DataCardProps {
6
6
  id: string;
7
7
  title: string;
8
8
  label?: string;
9
+ withCopy?: boolean;
9
10
  badge?: BadgeProps;
10
11
  }[];
11
12
  }
@@ -13,6 +13,7 @@ export interface SectionCardProps {
13
13
  size?: SectionCardSize;
14
14
  icon: SVG;
15
15
  title: string;
16
+ withCopyTitle?: boolean;
16
17
  badge?: BadgeProps;
17
18
  actions?: {
18
19
  id: string;
@@ -0,0 +1,7 @@
1
+ import { type FC } from 'react';
2
+ export interface CliCommandProps {
3
+ value: string;
4
+ hideCopy?: boolean;
5
+ onDone?: () => void;
6
+ }
7
+ export declare const CliCommand: FC<CliCommandProps>;
@@ -1,4 +1,4 @@
1
- import { type FC } from 'react';
1
+ import { type MouseEventHandler, type FC } from 'react';
2
2
  import type { SVG } from '@/types';
3
3
  export declare enum IconButtonSize {
4
4
  XS = 16,
@@ -9,6 +9,6 @@ export declare enum IconButtonSize {
9
9
  export interface IconButtonProps {
10
10
  icon: SVG;
11
11
  size?: IconButtonSize;
12
- onClick: () => void;
12
+ onClick?: MouseEventHandler;
13
13
  }
14
14
  export declare const IconButton: FC<IconButtonProps>;
@@ -5,6 +5,7 @@ export * from './button-tab-list';
5
5
  export * from './cards';
6
6
  export * from './checkbox';
7
7
  export * from './checkbox-list';
8
+ export * from './cli-command';
8
9
  export * from './drawer';
9
10
  export * from './header';
10
11
  export * from './icon-button';
@@ -1 +1 @@
1
- export{j as Badge,o as Button,B as ButtonSize,cY as ButtonTab,cZ as ButtonTabList,h as ButtonVariants,d0 as Checkbox,d2 as CheckboxList,d1 as CheckboxListDirection,c$ as CheckboxSize,d as DataCard,D as Drawer,d3 as Header,I as IconButton,d4 as IconButtonSize,d5 as Input,d6 as Modal,d7 as Navbar,d8 as Note,da as Radio,dc as RadioGroup,db as RadioGroupDirection,d9 as RadioSize,S as SectionCard,f as SectionCardActionType,c_ as SectionCardSize,n as Segment,p as StatusCard,k as Table,dd as Tag,q as TextCard,e as Typography,m as TypographySize,de as TypographyVariants}from"../chunks/ui-components-c87427ab.js";import"../icons.js";import"react";import"zustand";import"javascript-time-ago";import"../chunks/vendor-55cc654c.js";import"react-dom";import"styled-components";import"@xyflow/react";import"prism-react-renderer";import"react-error-boundary";import"lottie-react";
1
+ export{n as Badge,r as Button,B as ButtonSize,c$ as ButtonTab,d0 as ButtonTabList,i as ButtonVariants,d3 as Checkbox,d5 as CheckboxList,d4 as CheckboxListDirection,d2 as CheckboxSize,f as CliCommand,d as DataCard,D as Drawer,d6 as Header,I as IconButton,c2 as IconButtonSize,d7 as Input,d8 as Modal,d9 as Navbar,da as Note,dc as Radio,de as RadioGroup,dd as RadioGroupDirection,db as RadioSize,S as SectionCard,h as SectionCardActionType,d1 as SectionCardSize,q as Segment,s as StatusCard,k as Table,df as Tag,t as TextCard,e as Typography,p as TypographySize,dg as TypographyVariants}from"../chunks/ui-components-d05b354a.js";import"../icons.js";import"react";import"zustand";import"javascript-time-ago";import"../chunks/vendor-55cc654c.js";import"react-dom";import"styled-components";import"@xyflow/react";import"prism-react-renderer";import"react-error-boundary";import"lottie-react";
package/lib/components.js CHANGED
@@ -1 +1 @@
1
- export{aj as AutocompleteInput,aE as Badge,aH as Button,a4 as CancelWarning,C as CenterThis,w as Checkbox,i as Code,aa as ConditionDetails,ab as DataCard,t as DataCardFieldTypes,bs as DataCardFields,cM as DataFinger,aK as DataTab,a3 as DeleteWarning,bP as DescribeRow,ak as Divider,V as DocsButton,a2 as Drawer,cO as DrawerFooter,cN as DrawerHeader,b5 as Dropdown,cP as ErrorBoundary,be as ExtendArrow,F as FadeLoader,x as FieldError,v as FieldLabel,c as FlexColumn,l as FlexRow,cQ as Header,bd as IconButton,bY as IconGroup,ay as IconTitleBadge,at as IconWrapped,bL as IconsNav,cR as ImageControlled,z as Input,M as InputList,H as InputTable,aB as InteractiveTable,L as KeyValueInputsList,aG as LoadingText,ae as Modal,ag as ModalBody,X as MonitorsCheckboxes,av as MonitorsIcons,af as NavigationButtons,aC as NoDataFound,ah as NotificationNote,cX as Overlay,P as PageContent,b0 as Popup,c0 as PopupForm,c5 as ScrollX,aO as ScrollY,U as SectionTitle,R as Segment,b1 as SelectionButton,aS as SkeletonLoader,am as Status,br as Stepper,cS as TabList,aw as TableContainer,ax as TableTitleWrap,aA as TableWrap,bB as Tag,Q as Text,Y as TextArea,J as Toggle,c3 as ToggleCodeComponent,ao as Tooltip,aD as TraceLoader,b2 as VerticalScroll,cW as WarningModal,cT as getLinksFromText,cU as getStrongsFromText,cV as renderText}from"./chunks/ui-components-c87427ab.js";import"./icons.js";import"react";import"zustand";import"javascript-time-ago";import"./chunks/vendor-55cc654c.js";import"react-dom";import"styled-components";import"@xyflow/react";import"prism-react-renderer";import"react-error-boundary";import"lottie-react";
1
+ export{al as AutocompleteInput,aG as Badge,aJ as Button,a6 as CancelWarning,C as CenterThis,y as Checkbox,j as Code,ac as ConditionDetails,ad as DataCard,w as DataCardFieldTypes,bu as DataCardFields,cP as DataFinger,aM as DataTab,a5 as DeleteWarning,bR as DescribeRow,am as Divider,Y as DocsButton,a4 as Drawer,cR as DrawerFooter,cQ as DrawerHeader,b7 as Dropdown,cS as ErrorBoundary,bg as ExtendArrow,F as FadeLoader,z as FieldError,x as FieldLabel,c as FlexColumn,o as FlexRow,cT as Header,bf as IconButton,b_ as IconGroup,aA as IconTitleBadge,av as IconWrapped,bN as IconsNav,cU as ImageControlled,G as Input,Q as InputList,L as InputTable,aD as InteractiveTable,N as KeyValueInputsList,aI as LoadingText,ag as Modal,ai as ModalBody,Z as MonitorsCheckboxes,ax as MonitorsIcons,ah as NavigationButtons,aE as NoDataFound,aj as NotificationNote,c_ as Overlay,P as PageContent,b2 as Popup,c3 as PopupForm,c8 as ScrollX,aQ as ScrollY,X as SectionTitle,V as Segment,b3 as SelectionButton,aU as SkeletonLoader,ao as Status,bt as Stepper,cV as TabList,ay as TableContainer,az as TableTitleWrap,aC as TableWrap,bD as Tag,U as Text,_ as TextArea,M as Toggle,c6 as ToggleCodeComponent,aq as Tooltip,aF as TraceLoader,b4 as VerticalScroll,cZ as WarningModal,cW as getLinksFromText,cX as getStrongsFromText,cY as renderText}from"./chunks/ui-components-d05b354a.js";import"./icons.js";import"react";import"zustand";import"javascript-time-ago";import"./chunks/vendor-55cc654c.js";import"react-dom";import"styled-components";import"@xyflow/react";import"prism-react-renderer";import"react-error-boundary";import"lottie-react";
package/lib/constants.js CHANGED
@@ -1 +1 @@
1
- export{a8 as ACTION_OPTIONS,a1 as BUTTON_TEXTS,bc as DEFAULT_DATA_STREAM_NAME,bp as DESTINATION_CATEGORIES,b6 as DISPLAY_LANGUAGES,s as DISPLAY_TITLES,ai as FORM_ALERTS,bE as INSTRUMENTATION_RULE_OPTIONS,cF as LANGUAGE_OPTIONS,b7 as MONITORS_OPTIONS,b8 as STORAGE_KEYS,cG as TOKEN_ABOUT_TO_EXPIRE}from"./chunks/ui-components-c87427ab.js";import"./icons.js";import"react";import"zustand";import"javascript-time-ago";import"./chunks/vendor-55cc654c.js";import"react-dom";import"styled-components";import"@xyflow/react";import"prism-react-renderer";import"react-error-boundary";import"lottie-react";
1
+ export{aa as ACTION_OPTIONS,a3 as BUTTON_TEXTS,be as DEFAULT_DATA_STREAM_NAME,br as DESTINATION_CATEGORIES,b8 as DISPLAY_LANGUAGES,v as DISPLAY_TITLES,ak as FORM_ALERTS,bG as INSTRUMENTATION_RULE_OPTIONS,cI as LANGUAGE_OPTIONS,b9 as MONITORS_OPTIONS,ba as STORAGE_KEYS,cJ as TOKEN_ABOUT_TO_EXPIRE}from"./chunks/ui-components-d05b354a.js";import"./icons.js";import"react";import"zustand";import"javascript-time-ago";import"./chunks/vendor-55cc654c.js";import"react-dom";import"styled-components";import"@xyflow/react";import"prism-react-renderer";import"react-error-boundary";import"lottie-react";
@@ -1,5 +1,5 @@
1
1
  import { type FC, type CSSProperties } from 'react';
2
- import type { GetExtendedPodInfo, PodInfo } from '@/types';
2
+ import { type GetExtendedPodInfo, type PodInfo } from '@/types';
3
3
  export interface PodsInfoProps {
4
4
  isLoading?: boolean;
5
5
  tableRowsMaxHeight: CSSProperties['maxHeight'];
@@ -1,4 +1,4 @@
1
- import e,{useState as a,useEffect as l,useMemo as t,useCallback as i}from"react";import{T as s,u as o,a as n,g as r,b as d,D as c,C as u,F as g,S as b,c as p,d as m,e as y,I as k,f as C,B as w,h as v,i as f,j as h,k as L,l as x,m as P,n as R,o as I,p as D,q as M,r as $,O as A,W as N,P as S}from"../chunks/ui-components-c87427ab.js";import T from"styled-components";import{PodIcon as V,ChevronUpIcon as z,ChevronDownIcon as j,YamlIcon as O,VIcon as U,CopyIcon as E,PipelineCollectorIcon as H,DownloadIcon as q,RefreshIcon as G,GatewayIcon as Y}from"../icons.js";import"zustand";import"javascript-time-ago";import"../chunks/vendor-55cc654c.js";import"react-dom";import"@xyflow/react";import"prism-react-renderer";import"react-error-boundary";import"lottie-react";const F=T.div`
1
+ import e,{useState as a,useEffect as t,useMemo as l,useCallback as s}from"react";import{T as i,u as o,a as n,g as r,b as d,D as c,C as u,F as g,S as b,c as p,d as m,e as y,I as k,f as C,h as v,B as w,i as f,j as h,k as L,l as x,m as P,n as R,o as $,p as I,q as A,r as D,s as M,t as S,O as N,W as z,P as T}from"../chunks/ui-components-d05b354a.js";import V,{useTheme as j}from"styled-components";import{PodIcon as O,ChevronUpIcon as U,ChevronDownIcon as E,TerminalIcon as H,YamlIcon as q,VIcon as G,CopyIcon as Y,VSquareIcon as F,XSquareIcon as W,PipelineCollectorIcon as B,DownloadIcon as K,RefreshIcon as J,GatewayIcon as Q}from"../icons.js";import"zustand";import"javascript-time-ago";import"../chunks/vendor-55cc654c.js";import"react-dom";import"@xyflow/react";import"prism-react-renderer";import"react-error-boundary";import"lottie-react";const X=V.div`
2
2
  display: flex;
3
3
  align-items: center;
4
4
  justify-content: space-between;
@@ -6,10 +6,14 @@ import e,{useState as a,useEffect as l,useMemo as t,useCallback as i}from"react"
6
6
  padding: 8px 12px;
7
7
  border-radius: 12px;
8
8
  background-color: ${({theme:e})=>e.v2.colors.silver[800]};
9
- `,W=T.div`
10
- animation-name: ${s.animations.fade.in};
11
- `,B=({pod:i,getExtendedPodInfo:s,onClose:h})=>{const{formatTimeAgo:L}=o(),{clickCopy:x,isCopied:P}=n(),[R,I]=a(null),[D,M]=a(!1);l(()=>{i?s(i.namespace,i.name).then(e=>I(e??null)):(I(null),M(!1))},[i]);const $=t(()=>[{id:r(),title:"Node",label:R?.node??"-"},{id:r(),title:"Role",label:R?.role??"-"},{id:r(),title:"Status",badge:{status:d(R?.status),label:R?.status??"-"}}],[R]),A=t(()=>R?.containers?.map(e=>({id:r(),items:[{id:r(),title:"Container",label:e.name??"-"},{id:r(),title:"Status",badge:{status:d(e.status),label:e.status??"-"},label:e.startedAt?`(since ${L(e.startedAt)})`:""},{id:r(),title:"Image Version",label:e.image?.split(":")?.[1]??"-"},{id:r(),title:"Image Repository",label:e.image?.split(":")?.[0]??"-"},{id:r(),title:"Restarts",label:e.restarts.toString()},{id:r(),title:"State Reason",label:e.stateReason??"-"},{id:r(),title:"Resource Requests",label:`CPU ${e.resources.requests.cpu} • Memory ${e.resources.requests.memory}`},{id:r(),title:"Resource Limits",label:`CPU ${e.resources.limits.cpu} • Memory ${e.resources.limits.memory}`}]}))||[],[R]);return e.createElement(c,{isOpen:!!i,header:{icon:V,title:"Pod Information",onClose:h}},R?null:e.createElement(u,null,e.createElement(g,null)),R?e.createElement(e.Fragment,null,e.createElement(b,{icon:V,title:R.name},e.createElement(p,{$gap:24},e.createElement(m,{cellsPerRow:3,items:$}),A.length>0&&e.createElement(p,{$gap:12},e.createElement(F,null,e.createElement(y,null,"Containers Overview"),e.createElement(k,{icon:D?z:j,onClick:()=>M(e=>!e)})),D&&A.map(({id:a,items:l})=>e.createElement(W,{key:a},e.createElement(m,{cellsPerRow:2,items:l})))))),e.createElement(b,{icon:O,title:"YAML",actions:[{id:r(),type:C.Button,props:{label:"",leftIcon:P?U:E,onClick:()=>x(R.manifestYAML),disabled:P,size:w.S,variant:v.Secondary}}]},e.createElement("div",{style:{padding:"0 12px"}},e.createElement(f,{code:R.manifestYAML,language:"yaml",theme:"duotoneDark"})))):null)};var J;!function(e){e.PodName="podName",e.Ready="ready",e.Status="status",e.Restarts="restarts",e.NodeName="nodeName",e.Age="age",e.DockerImage="dockerImage"}(J||(J={}));const K=[{key:J.PodName,label:"Pod Name",sortable:!0},{key:J.Ready,label:"Ready",sortable:!0,textAlign:"right"},{key:J.Status,label:"Status",sortable:!0},{key:J.Restarts,label:"Restarts",sortable:!0,textAlign:"right"},{key:J.NodeName,label:"Node Name",sortable:!0},{key:J.Age,label:"Age",sortable:!0,textAlign:"right"},{key:J.DockerImage,label:"Docker Image",sortable:!0,textAlign:"right"}],Q=({isLoading:l,tableRowsMaxHeight:i,pods:s,getExtendedPodInfo:n})=>{const{formatTimeAgo:r}=o(),[c,u]=a(null),g=t(()=>s.map(a=>({onClick:()=>u(a),cells:[{key:J.PodName,rawValue:a.name},{key:J.Ready,rawValue:a.ready},{key:J.Status,rawValue:a.status??"-",component:a.status?()=>e.createElement(h,{status:d(a.status),label:a.status}):void 0},{key:J.Restarts,rawValue:a.restartsCount},{key:J.NodeName,rawValue:a.nodeName},{key:J.Age,rawValue:r(a.creationTimestamp)},{key:J.DockerImage,rawValue:a.image}]})),[s]);return e.createElement(b,{icon:V,title:"Pods"},e.createElement(L,{maxHeight:i,isLoading:l,columns:K,rows:g}),e.createElement(B,{pod:c,getExtendedPodInfo:n,onClose:()=>u(null)}))};var X;!function(e){e.Gateway="gateway",e.Node="node"}(X||(X={}));const Z=[{value:X.Gateway,label:"Gateway"},{value:X.Node,label:"Node Collector"}],_=T.div`
9
+ cursor: pointer;
10
+ &:hover {
11
+ background: ${({theme:e})=>e.v2.colors.silver[700]};
12
+ }
13
+ `,Z=V.div`
14
+ animation-name: ${i.animations.fade.in};
15
+ `,_=({pod:s,getExtendedPodInfo:i,onClose:L})=>{const{formatTimeAgo:x}=o(),{clickCopy:P,isCopied:R}=n(),[$,I]=a(null),[A,D]=a(!1);t(()=>{s?i(s.namespace,s.name).then(e=>I(e??null)):(I(null),D(!1))},[s]);const M=l(()=>[{id:r(),title:"Node",label:$?.node??"-",withCopy:!0},{id:r(),title:"Status",badge:{status:d($?.status),label:$?.status??"-"}}],[$]),S=l(()=>$?.containers?.map(e=>({id:r(),items:[{id:r(),title:"Container",label:e.name??"-"},{id:r(),title:"Status",badge:{status:d(e.status),label:e.status??"-"},label:e.startedAt?`(since ${x(e.startedAt)})`:""},{id:r(),title:"Image Version",label:e.image?.split(":")?.[1]??"-"},{id:r(),title:"Image Repository",label:e.image?.split(":")?.[0]??"-"},{id:r(),title:"Restarts",label:e.restarts.toString()},{id:r(),title:"State Reason",label:e.stateReason??"-"},{id:r(),title:"Resource Requests",label:`CPU ${e.resources.requests.cpu} • Memory ${e.resources.requests.memory}`},{id:r(),title:"Resource Limits",label:`CPU ${e.resources.limits.cpu} • Memory ${e.resources.limits.memory}`}]}))||[],[$]);return e.createElement(c,{isOpen:!!s,header:{icon:O,title:"Pod Information",onClose:L}},$?null:e.createElement(u,null,e.createElement(g,null)),$?e.createElement(e.Fragment,null,e.createElement(b,{icon:O,title:$.name,withCopyTitle:!0},e.createElement(p,{$gap:24},e.createElement(m,{cellsPerRow:2,items:M}),S.length>0&&e.createElement(p,{$gap:12},e.createElement(X,{onClick:()=>D(e=>!e)},e.createElement(y,null,"Containers Overview"),e.createElement(k,{icon:A?U:E})),A&&S.map(({id:a,items:t})=>e.createElement(Z,{key:a},e.createElement(m,{cellsPerRow:2,items:t})))))),e.createElement(b,{icon:H,title:"Kubectl Commands"},e.createElement(p,{$gap:12},e.createElement(C,{value:`kubectl get pod ${$.name} -n ${$.namespace} -o yaml`}),e.createElement(C,{value:`kubectl describe pod ${$.name} -n ${$.namespace}`}),e.createElement(C,{value:`kubectl logs ${$.name} -n ${$.namespace}`}))),e.createElement(b,{icon:q,title:"YAML",actions:[{id:r(),type:v.Button,props:{label:"",leftIcon:R?G:Y,onClick:()=>P($.manifestYAML),disabled:R,size:w.S,variant:f.Secondary}}]},e.createElement("div",{style:{padding:"0 12px"}},e.createElement(h,{code:$.manifestYAML,language:"yaml",theme:"duotoneDark"})))):null)};var ee;!function(e){e.PodName="podName",e.Ready="ready",e.Started="started",e.Status="status",e.Restarts="restarts",e.NodeName="nodeName",e.Age="age",e.DockerImage="dockerImage"}(ee||(ee={}));const ae=[{key:ee.PodName,label:"Pod Name",sortable:!0},{key:ee.Ready,label:"Ready",sortable:!0,textAlign:"right"},{key:ee.Started,label:"Started",sortable:!0,textAlign:"right"},{key:ee.Status,label:"Status",sortable:!0},{key:ee.Restarts,label:"Restarts",sortable:!0,textAlign:"right"},{key:ee.NodeName,label:"Node Name",sortable:!0},{key:ee.Age,label:"Age",sortable:!0,textAlign:"right"},{key:ee.DockerImage,label:"Docker Image",sortable:!0,textAlign:"right"}],te=({isLoading:t,tableRowsMaxHeight:s,pods:i,getExtendedPodInfo:n})=>{const r=j(),{formatTimeAgo:c}=o(),[u,g]=a(null),p=l(()=>{const a=a=>a?e.createElement(F,{fill:x(r,P.Success,"500"),size:20}):e.createElement(W,{fill:x(r,P.Error,"500"),size:20});return i.map(t=>({onClick:()=>g(t),cells:[{key:ee.PodName,rawValue:t.name},{key:ee.Ready,rawValue:t.ready,component:()=>a(t.ready)},{key:ee.Started,rawValue:t.started,component:()=>a(t.started)},{key:ee.Status,rawValue:t.status,component:()=>{return a=t.status,e.createElement(R,{status:d(a),label:a});var a}},{key:ee.Restarts,rawValue:t.restartsCount.toString()},{key:ee.NodeName,rawValue:t.nodeName},{key:ee.Age,rawValue:c(t.creationTimestamp)},{key:ee.DockerImage,rawValue:t.image}]}))},[i,r]);return e.createElement(b,{icon:O,title:"Pods"},e.createElement(L,{maxHeight:s,isLoading:t,columns:ae,rows:p}),e.createElement(_,{pod:u,getExtendedPodInfo:n,onClose:()=>g(null)}))};var le;!function(e){e.Gateway="gateway",e.Node="node"}(le||(le={}));const se=[{value:le.Gateway,label:"Gateway"},{value:le.Node,label:"Node Collector"}],ie=V.div`
12
16
  display: flex;
13
17
  align-items: center;
14
18
  justify-content: space-between;
15
- `,ee=({selectedTab:a,setSelectedTab:l,onClickDownloadDiagnose:t,onClickRefresh:i,isLoading:s})=>e.createElement(_,null,e.createElement(x,{$gap:12},e.createElement(x,{$gap:8},e.createElement(H,{size:32}),e.createElement(y,{size:P.M,weight:500},"Pipeline Collectors")),e.createElement(R,{options:Z,selected:a,setSelected:l})),e.createElement(x,{$gap:8},t&&e.createElement(I,{label:"Download Diagnose",leftIcon:q,size:w.S,variant:v.Text,onClick:t}),i&&e.createElement(I,{label:"Refresh",leftIcon:G,size:w.S,variant:v.Text,onClick:i,loading:s}))),ae=({isOpen:a,onClose:l,title:t,yaml:i})=>{const{clickCopy:s,isCopied:o}=n();return e.createElement(c,{isOpen:a,header:{icon:Y,title:t,onClose:l}},e.createElement(b,{icon:O,title:"YAML",actions:[{id:r(),type:C.Button,props:{label:"",leftIcon:o?U:E,onClick:()=>s(i),disabled:o,size:w.S,variant:v.Secondary}}]},e.createElement("div",{style:{padding:"0 12px"}},e.createElement(f,{code:i,language:"yaml",theme:"duotoneDark"}))))},le=({icon:l,title:t,badge:i,statusCard:s,textCards:o,yaml:n})=>{const[d,c]=a(!1);return e.createElement(b,{icon:l,title:t,badge:i,actions:[{id:r(),type:C.Button,props:{variant:v.Secondary,size:w.S,leftIcon:O,label:"View YAML",onClick:()=>c(!0)}}]},e.createElement(x,{$gap:16},e.createElement(D,{...s}),o.map(a=>e.createElement(M,{key:a.title,...a}))),e.createElement(ae,{isOpen:d,onClose:()=>c(!1),title:t,yaml:n}))},te=e=>{switch(e){case N.Healthy:return"All desired replicas are updated, available, and ready";case N.Updating:return"Workload is progressing towards desired state (e.g., updating pods)";case N.Degraded:return"Progressing but with availability issues (e.g., not enough available replicas)";case N.Failed:return"Progress deadline exceeded or an unrecoverable error occurred";case N.Down:return"No available replicas";case N.Unknown:return"Status cannot be determined from current signals";default:return"Status unknown"}},ie=({tableRowsMaxHeight:s,getGatewayInfo:n,getGatewayPods:r,getNodeCollectorInfo:c,getNodeCollectorPods:u,getExtendedPodInfo:g})=>{const{formatTimeAgo:b}=o(),[p,m]=a(!1),[y,k]=a(X.Gateway),[C,w]=a(null),[v,f]=a([]),[h,L]=a(null),[x,P]=a([]),R=i(async()=>{switch(m(!0),y){case X.Gateway:w(await n()??null),f(await r()??[]);break;case X.Node:L(await c()??null),P(await u()??[])}m(!1)},[y]);l(()=>{R().catch(e=>{})},[R]);const I=t(()=>(e=>{const a=Z.find(a=>a.value===e);return a?.label??"Pipeline Collectors"})(y),[y]),D=t(()=>((e,a,l,t)=>{const i={status:A.Disabled,label:"No rollouts yet"};let s=!1,o=null;switch(e){case X.Gateway:s=a?.rolloutInProgress??!1,o=a?.lastRolloutAt??null;break;case X.Node:s=l?.rolloutInProgress??!1,o=l?.lastRolloutAt??null;break;default:return i}return s?{status:$.Info,label:"Rollout in progress",rightIcon:G,useSecondaryTone:!0}:o?{status:A.Disabled,label:`Last Rollout: ${t(o)}`}:i})(y,C,h,b),[C,h,y,b]),M=t(()=>((e,a,l,t)=>{if(t)return{status:$.Info,title:"Loading",description:"Fetching data..."};let i=A.Unknown,s=N.Unknown,o=te(N.Unknown);switch(e){case X.Gateway:i=d(a?.status),s=a?.status??s,o=a?.status?te(a.status):o;break;case X.Node:i=d(a?.status),s=l?.status??s,o=l?.status?te(l.status):o}return{status:i,title:s,description:o}})(y,C,h,p),[C,h,y,p]),T=t(()=>((e,a,l,t)=>{switch(e){case X.Gateway:return[{title:"HPA Spec (Replicas)",cells:[{label:"Min.",value:a?.hpa.min.toString()??"-",isLoading:t},{label:"Max.",value:a?.hpa.max.toString()??"-",isLoading:t},{label:"Current",value:a?.hpa.current.toString()??"-",isLoading:t},{label:"Desired",value:a?.hpa.desired.toString()??"-",isLoading:t}]},{title:"Requests",cells:[{label:"CPU",value:a?.resources.requests.cpu??"-",isLoading:t},{label:"Memory",value:a?.resources.requests.memory??"-",isLoading:t}]},{title:"Limits",cells:[{label:"CPU",value:a?.resources.limits.cpu??"-",isLoading:t},{label:"Memory",value:a?.resources.limits.memory??"-",isLoading:t}]},{title:"Docker Image",cells:[{value:a?.imageVersion??"-",isLoading:t}]}];case X.Node:return[{title:"Nodes",cells:[{label:"Desired",value:l?.nodes.desired.toString()??"-",isLoading:t},{label:"Ready",value:l?.nodes.ready.toString()??"-",isLoading:t}]},{title:"Requests",cells:[{label:"CPU",value:l?.resources.requests.cpu??"-",isLoading:t},{label:"Memory",value:l?.resources.requests.memory??"-",isLoading:t}]},{title:"Limits",cells:[{label:"CPU",value:l?.resources.limits.cpu??"-",isLoading:t},{label:"Memory",value:l?.resources.limits.memory??"-",isLoading:t}]},{title:"Docker Image",cells:[{value:l?.imageVersion??"-",isLoading:t}]}];default:return[]}})(y,C,h,p),[C,h,y,p]),V=t(()=>(y===X.Gateway?C?.manifestYAML:h?.manifestYAML)??"",[C,h,y]),z=t(()=>y===X.Gateway?v:x,[v,x,y]);return e.createElement(S,null,e.createElement(ee,{isLoading:p,selectedTab:y,setSelectedTab:k,onClickDownloadDiagnose:void 0,onClickRefresh:R}),e.createElement(le,{icon:Y,title:I,badge:D,statusCard:M,textCards:T,yaml:V}),e.createElement(Q,{isLoading:p,tableRowsMaxHeight:s,pods:z,getExtendedPodInfo:g}))};export{ie as PipelineCollectors};
19
+ `,oe=({selectedTab:a,setSelectedTab:t,onClickDownloadDiagnose:l,onClickRefresh:s,isLoading:i})=>e.createElement(ie,null,e.createElement($,{$gap:12},e.createElement($,{$gap:8},e.createElement(B,{size:32}),e.createElement(y,{size:I.M,weight:500},"Pipeline Collectors")),e.createElement(A,{options:se,selected:a,setSelected:t})),e.createElement($,{$gap:8},l&&e.createElement(D,{label:"Download Diagnose",leftIcon:K,size:w.S,variant:f.Text,onClick:l}),s&&e.createElement(D,{label:"Refresh",leftIcon:J,size:w.S,variant:f.Text,onClick:s,loading:i}))),ne=({isOpen:a,onClose:t,title:l,yaml:s})=>{const{clickCopy:i,isCopied:o}=n();return e.createElement(c,{isOpen:a,header:{icon:Q,title:l,onClose:t}},e.createElement(b,{icon:q,title:"YAML",actions:[{id:r(),type:v.Button,props:{label:"",leftIcon:o?G:Y,onClick:()=>i(s),disabled:o,size:w.S,variant:f.Secondary}}]},e.createElement("div",{style:{padding:"0 12px"}},e.createElement(h,{code:s,language:"yaml",theme:"duotoneDark"}))))},re=({icon:t,title:l,badge:s,statusCard:i,textCards:o,yaml:n})=>{const[d,c]=a(!1);return e.createElement(b,{icon:t,title:l,badge:s,actions:[{id:r(),type:v.Button,props:{variant:f.Secondary,size:w.S,leftIcon:q,label:"View YAML",onClick:()=>c(!0)}}]},e.createElement($,{$gap:16},e.createElement(M,{...i}),o.map(a=>e.createElement(S,{key:a.title,...a}))),e.createElement(ne,{isOpen:d,onClose:()=>c(!1),title:l,yaml:n}))},de=e=>{switch(e){case z.Healthy:return"All desired replicas are updated, available, and ready";case z.Updating:return"Workload is progressing towards desired state (e.g., updating pods)";case z.Degraded:return"Progressing but with availability issues (e.g., not enough available replicas)";case z.Failed:return"Progress deadline exceeded or an unrecoverable error occurred";case z.Down:return"No available replicas";case z.Unknown:return"Status cannot be determined from current signals";default:return"Status unknown"}},ce=({tableRowsMaxHeight:i,getGatewayInfo:n,getGatewayPods:r,getNodeCollectorInfo:c,getNodeCollectorPods:u,getExtendedPodInfo:g})=>{const{formatTimeAgo:b}=o(),[p,m]=a(!1),[y,k]=a(le.Gateway),[C,v]=a(null),[w,f]=a([]),[h,L]=a(null),[x,R]=a([]),$=s(async()=>{switch(m(!0),y){case le.Gateway:v(await n()??null),f(await r()??[]);break;case le.Node:L(await c()??null),R(await u()??[])}m(!1)},[y]);t(()=>{$().catch(e=>{})},[$]);const I=l(()=>(e=>{const a=se.find(a=>a.value===e);return a?.label??"Pipeline Collectors"})(y),[y]),A=l(()=>((e,a,t,l)=>{const s={status:N.Disabled,label:"No rollouts yet"};let i=!1,o=null;switch(e){case le.Gateway:i=a?.rolloutInProgress??!1,o=a?.lastRolloutAt??null;break;case le.Node:i=t?.rolloutInProgress??!1,o=t?.lastRolloutAt??null;break;default:return s}return i?{status:P.Info,label:"Rollout in progress",rightIcon:J,useSecondaryTone:!0}:o?{status:N.Disabled,label:`Last Rollout: ${l(o)}`}:s})(y,C,h,b),[C,h,y,b]),D=l(()=>((e,a,t,l)=>{let s=l?P.Info:N.Unknown,i=l?"Loading":z.Unknown,o=l?"Fetching data...":de(z.Unknown);switch(e){case le.Gateway:s=a?.status?d(a?.status):s,i=a?.status??i,o=a?.status?de(a.status):o;break;case le.Node:s=t?.status?d(t?.status):s,i=t?.status??i,o=t?.status?de(t.status):o}return{status:s,title:i,description:o}})(y,C,h,p),[C,h,y,p]),M=l(()=>((e,a,t,l)=>{switch(e){case le.Gateway:return[{title:"HPA Spec (Replicas)",cells:[{label:"Min.",value:a?.hpa?.min.toString()??"-",isLoading:l},{label:"Max.",value:a?.hpa?.max.toString()??"-",isLoading:l},{label:"Current",value:a?.hpa?.current.toString()??"-",isLoading:l},{label:"Desired",value:a?.hpa?.desired.toString()??"-",isLoading:l}]},{title:"Requests",cells:[{label:"CPU",value:a?.resources?.requests.cpu??"-",isLoading:l},{label:"Memory",value:a?.resources?.requests.memory??"-",isLoading:l}]},{title:"Limits",cells:[{label:"CPU",value:a?.resources?.limits.cpu??"-",isLoading:l},{label:"Memory",value:a?.resources?.limits.memory??"-",isLoading:l}]},{title:"Docker Image",cells:[{value:a?.imageVersion??"-",isLoading:l}]}];case le.Node:return[{title:"Nodes",cells:[{label:"Desired",value:t?.nodes?.desired.toString()??"-",isLoading:l},{label:"Ready",value:t?.nodes?.ready.toString()??"-",isLoading:l}]},{title:"Requests",cells:[{label:"CPU",value:t?.resources?.requests.cpu??"-",isLoading:l},{label:"Memory",value:t?.resources?.requests.memory??"-",isLoading:l}]},{title:"Limits",cells:[{label:"CPU",value:t?.resources?.limits.cpu??"-",isLoading:l},{label:"Memory",value:t?.resources?.limits.memory??"-",isLoading:l}]},{title:"Docker Image",cells:[{value:t?.imageVersion??"-",isLoading:l}]}];default:return[]}})(y,C,h,p),[C,h,y,p]),S=l(()=>(y===le.Gateway?C?.manifestYAML:h?.manifestYAML)??"",[C,h,y]),V=l(()=>y===le.Gateway?w:x,[w,x,y]);return e.createElement(T,null,e.createElement(oe,{isLoading:p,selectedTab:y,setSelectedTab:k,onClickDownloadDiagnose:void 0,onClickRefresh:$}),e.createElement(re,{icon:Q,title:I,badge:A,statusCard:D,textCards:M,yaml:S}),e.createElement(te,{isLoading:p,tableRowsMaxHeight:i,pods:V,getExtendedPodInfo:g}))};export{ce as PipelineCollectors};