@odigos/ui-kit 0.0.39 → 0.0.40

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/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.0.40](https://github.com/odigos-io/ui-kit/compare/ui-kit-v0.0.39...ui-kit-v0.0.40) (2025-06-15)
4
+
5
+
6
+ ### Features
7
+
8
+ * add fields to Describe Source ([#174](https://github.com/odigos-io/ui-kit/issues/174)) ([ae72399](https://github.com/odigos-io/ui-kit/commit/ae7239975090f9e666c6ea196d1e3b8dbd6ee772))
9
+
3
10
  ## [0.0.39](https://github.com/odigos-io/ui-kit/compare/ui-kit-v0.0.38...ui-kit-v0.0.39) (2025-06-15)
4
11
 
5
12
 
@@ -14,6 +14,7 @@ interface VisualProps {
14
14
  bgColorHover?: CSSProperties['backgroundColor'];
15
15
  monitors?: SignalType[];
16
16
  monitorsWithLabels?: boolean;
17
+ componentsUnderTitles?: ReactNode[];
17
18
  }
18
19
  interface CheckboxProps {
19
20
  withCheckbox?: boolean;
package/lib/components.js CHANGED
@@ -1,6 +1,6 @@
1
- import { B as Button } from './index-1BlMhN86.js';
2
- export { a as AutocompleteInput, b as Badge, a1 as CenterThis, C as Checkbox, c as Code, d as ConditionDetails, D as DataCard, f as DataCardFieldTypes, e as DataCardFields, g as DataTab, h as Divider, i as DocsButton, j as Drawer, l as DrawerFooter, k as DrawerHeader, m as Dropdown, E as ExtendArrow, F as FadeLoader, n as FieldError, o as FieldLabel, a0 as FlexColumn, $ as FlexRow, H as Header, I as IconButton, p as IconGroup, q as IconTitleBadge, r as IconWrapped, s as IconsNav, t as ImageControlled, u as Input, v as InputList, w as InputTable, x as InteractiveTable, K as KeyValueInputsList, M as Modal, a4 as ModalBody, y as MonitorsCheckboxes, z as MonitorsIcons, N as NavigationButtons, G as NoDataFound, J as NotificationNote, a3 as Overlay, S as ScrollX, L as SectionTitle, O as Segment, P as SelectionButton, Q as SkeletonLoader, R as Status, U as Stepper, a5 as TableContainer, a6 as TableTitleWrap, a7 as TableWrap, V as Text, W as TextArea, X as Toggle, T as ToggleCodeComponent, Y as Tooltip, Z as TraceLoader, a2 as VerticalScroll, _ as WarningModal } from './index-1BlMhN86.js';
3
- export { C as CancelWarning, D as DeleteWarning } from './index-B2poxiOR.js';
1
+ import { B as Button } from './index-BuoxtJOI.js';
2
+ export { a as AutocompleteInput, b as Badge, a1 as CenterThis, C as Checkbox, c as Code, d as ConditionDetails, D as DataCard, f as DataCardFieldTypes, e as DataCardFields, g as DataTab, h as Divider, i as DocsButton, j as Drawer, l as DrawerFooter, k as DrawerHeader, m as Dropdown, E as ExtendArrow, F as FadeLoader, n as FieldError, o as FieldLabel, a0 as FlexColumn, $ as FlexRow, H as Header, I as IconButton, p as IconGroup, q as IconTitleBadge, r as IconWrapped, s as IconsNav, t as ImageControlled, u as Input, v as InputList, w as InputTable, x as InteractiveTable, K as KeyValueInputsList, M as Modal, a4 as ModalBody, y as MonitorsCheckboxes, z as MonitorsIcons, N as NavigationButtons, G as NoDataFound, J as NotificationNote, a3 as Overlay, S as ScrollX, L as SectionTitle, O as Segment, P as SelectionButton, Q as SkeletonLoader, R as Status, U as Stepper, a5 as TableContainer, a6 as TableTitleWrap, a7 as TableWrap, V as Text, W as TextArea, X as Toggle, T as ToggleCodeComponent, Y as Tooltip, Z as TraceLoader, a2 as VerticalScroll, _ as WarningModal } from './index-BuoxtJOI.js';
3
+ export { C as CancelWarning, D as DeleteWarning } from './index-BOzJKKRm.js';
4
4
  import React, { Component, createElement, createContext } from 'react';
5
5
  import { T as Theme } from './index-BdZq2vdJ.js';
6
6
  import './types.js';
package/lib/containers.js CHANGED
@@ -2,7 +2,7 @@ import React, { useState, useEffect, forwardRef, useRef, useImperativeHandle, us
2
2
  import styled, { css } from 'styled-components';
3
3
  import { k as DISPLAY_TITLES, T as Theme, h as usePendingStore, g as useNotificationStore, b as useDrawerStore, B as BUTTON_TEXTS, c as useEntityStore, A as ACTION_OPTIONS, l as getActionIcon, f as useModalStore, F as FORM_ALERTS, d as useFilterStore, M as MONITORS_OPTIONS, t as styleInject, i as useSelectedStore, e as useInstrumentStore, n as getInstrumentationRuleIcon, a as useDataStreamStore, m as getEntityId, S as STORAGE_KEYS, j as useSetupStore, I as INSTRUMENTATION_RULE_OPTIONS, u as useDarkMode } from './index-BdZq2vdJ.js';
4
4
  import { ActionType, ActionKeyTypes, InputTypes, FieldTypes, EntityTypes, StatusType, Crud, OtherStatus, NodeTypes, AddNodeTypes, EdgeTypes, SignalType, HeadersCollectionKeyTypes, CodeAttributesKeyTypes, PayloadCollectionKeyTypes, InstrumentationRuleType } from './types.js';
5
- import { f as DataCardFieldTypes, o as FieldLabel, C as Checkbox, n as FieldError, u as Input, w as InputTable, K as KeyValueInputsList, v as InputList, V as Text, O as Segment, L as SectionTitle, i as DocsButton, y as MonitorsCheckboxes, W as TextArea, j as Drawer, d as ConditionDetails, D as DataCard, a0 as FlexColumn, M as Modal, N as NavigationButtons, a4 as ModalBody, J as NotificationNote, a as AutocompleteInput, h as Divider, R as Status, $ as FlexRow, Y as Tooltip, r as IconWrapped, z as MonitorsIcons, a5 as TableContainer, a6 as TableTitleWrap, q as IconTitleBadge, a7 as TableWrap, x as InteractiveTable, a1 as CenterThis, G as NoDataFound, Z as TraceLoader, b as Badge, E as ExtendArrow, a2 as VerticalScroll, P as SelectionButton, B as Button, m as Dropdown, a8 as getDefaultExportFromCjs, F as FadeLoader, g as DataTab, Q as SkeletonLoader, X as Toggle, A as AddButton$1, U as Stepper, I as IconButton, e as DataCardFields, s as IconsNav, p as IconGroup } from './index-1BlMhN86.js';
5
+ import { f as DataCardFieldTypes, o as FieldLabel, C as Checkbox, n as FieldError, u as Input, w as InputTable, K as KeyValueInputsList, v as InputList, V as Text, O as Segment, L as SectionTitle, i as DocsButton, y as MonitorsCheckboxes, W as TextArea, j as Drawer, d as ConditionDetails, D as DataCard, a0 as FlexColumn, M as Modal, N as NavigationButtons, a4 as ModalBody, J as NotificationNote, a as AutocompleteInput, h as Divider, R as Status, $ as FlexRow, Y as Tooltip, r as IconWrapped, z as MonitorsIcons, a5 as TableContainer, a6 as TableTitleWrap, q as IconTitleBadge, a7 as TableWrap, x as InteractiveTable, a1 as CenterThis, G as NoDataFound, Z as TraceLoader, b as Badge, E as ExtendArrow, a2 as VerticalScroll, P as SelectionButton, B as Button, m as Dropdown, a8 as getDefaultExportFromCjs, F as FadeLoader, g as DataTab, Q as SkeletonLoader, X as Toggle, A as AddButton$1, U as Stepper, I as IconButton, e as DataCardFields, s as IconsNav, p as IconGroup } from './index-BuoxtJOI.js';
6
6
  import { i as isEmpty, s as safeJsonParse } from './index-BV85P9UP.js';
7
7
  import { i as CheckCircledIcon, O as OdigosLogo } from './index-BeVb1H9n.js';
8
8
  import { C as CrossCircledIcon, O as OdigosLogoText, a as OverviewIcon, F as FilterIcon, D as DataStreamsIcon, R as RetryIcon, N as NotificationIcon, S as SlackLogo, K as KeyIcon, T as TerminalIcon } from './index-zXCdgpRU.js';
@@ -10,12 +10,12 @@ import { u as useActionFormData, a as useClickNode, e as useSessionStorage, c as
10
10
  import { d as useKeyDown, e as useOnClickOutside, u as useContainerSize, c as useInstrumentationRuleFormData, g as useTransition, f as useTimeAgo, a as useCopy } from './useTransition-BumZECD3.js';
11
11
  import { E as EditIcon } from './index-CDHYBh8C.js';
12
12
  import { T as TrashIcon, S as SearchIcon, P as PlusIcon$1, f as CheckIcon, A as ArrowIcon, a as CopyIcon, g as CrossIcon } from './index-Cau7bWmr.js';
13
- import { D as DeleteWarning, C as CancelWarning } from './index-B2poxiOR.js';
13
+ import { D as DeleteWarning, C as CancelWarning } from './index-BOzJKKRm.js';
14
14
  import { m as mapConditions, b as getStatusIcon, c as capitalizeFirstLetter } from './index-DnKXoQhy.js';
15
15
  import { f as filterActions, i as getConditionsBooleans, n as getEntityLabel, m as getEntityIcon, w as sleep$1, p as getPlatformIcon, q as getPlatformLabel, h as formatBytes, k as getContainersIcons, r as getValueForRange, l as getDestinationIcon, g as filterSourcesByStream, e as filterSources, b as filterDestinationsByStream, a as filterDestinations, v as mapDestinationFieldsForDisplay, c as compareCondition, t as getYamlFieldsForDestination, d as deepClone, o as getMetricForEntity, s as getWorkloadId, j as getContainersInstrumentedCount, u as isOverTime } from './index-Quqq11nF.js';
16
16
  import { createPortal } from 'react-dom';
17
17
  import { m as mapExportedSignals } from './index-BlZKWuxe.js';
18
- import { N as NoteBackToSummary, E as EditButton } from './index-0AME5hOa.js';
18
+ import { N as NoteBackToSummary, E as EditButton } from './index-CDljW3_P.js';
19
19
  import { D as DESTINATION_CATEGORIES } from './index-Dqief9td.js';
20
20
  import { a6 as RulesIcon, a7 as SourcesIcon, a3 as ActionsIcon, a4 as DestinationsIcon } from './index-CBgnxpkW.js';
21
21
 
@@ -16034,60 +16034,96 @@ const Describe$1 = ({ source, fetchDescribeSource }) => {
16034
16034
  React.createElement(FadeLoader, null)));
16035
16035
  }
16036
16036
  return (React.createElement(FlexColumn, { "$gap": 12 }, !describe.pods?.length ? (React.createElement(CenterThis, null,
16037
- React.createElement(NoDataFound, { subTitle: 'Check if you have any running pods and try again' }))) : (describe.pods.map(({ podName, nodeName, phase, containers }) => {
16037
+ React.createElement(NoDataFound, { subTitle: 'Check if you have any running pods and try again' }))) : (describe.pods.map(({ podName, nodeName, phase, agentInjected, runningLatestWorkloadRevision, containers }) => {
16038
16038
  const podHasErrors = phase.status !== StatusType.Success ||
16039
16039
  containers.findIndex(({ instrumentationInstances }) => instrumentationInstances.findIndex(({ healthy }) => healthy.status !== StatusType.Success) !== -1) !== -1;
16040
16040
  const podStatus = podHasErrors ? StatusType.Error : StatusType.Success;
16041
16041
  const divider = { type: DataCardFieldTypes.Divider };
16042
- return (React.createElement(DataCard, { key: `pod-${podName.value}`, title: `Pod: ${podName.value}`, withExtend: true, action: () => React.createElement(Status, { status: podStatus, title: podStatus, withIcon: true, withBorder: true }), data: [
16043
- {
16044
- type: DataCardFieldTypes.CopyText,
16045
- value: `kubectl get pod ${podName.value} -n ${describe?.namespace?.value || source.namespace}`,
16042
+ const data = [];
16043
+ data.push({
16044
+ type: DataCardFieldTypes.CopyText,
16045
+ value: `kubectl get pod ${podName.value} -n ${describe?.namespace?.value || source.namespace}`,
16046
+ });
16047
+ data.push(divider);
16048
+ data.push({
16049
+ type: DataCardFieldTypes.DescribeRow,
16050
+ value: JSON.stringify({
16051
+ title: nodeName.name,
16052
+ tooltip: nodeName.explain,
16053
+ value: {
16054
+ text: nodeName.value,
16055
+ status: undefined,
16046
16056
  },
16047
- divider,
16048
- {
16049
- type: DataCardFieldTypes.DescribeRow,
16050
- value: JSON.stringify({
16051
- title: nodeName.name,
16052
- tooltip: nodeName.explain,
16053
- value: {
16054
- text: nodeName.value,
16055
- status: undefined,
16056
- },
16057
- }),
16057
+ }),
16058
+ });
16059
+ data.push(divider);
16060
+ data.push({
16061
+ type: DataCardFieldTypes.DescribeRow,
16062
+ value: JSON.stringify({
16063
+ title: phase.name,
16064
+ tooltip: phase.explain,
16065
+ value: {
16066
+ text: phase.value,
16067
+ status: phase.status,
16058
16068
  },
16059
- divider,
16060
- {
16061
- type: DataCardFieldTypes.DescribeRow,
16062
- value: JSON.stringify({
16063
- title: phase.name,
16064
- tooltip: phase.explain,
16065
- value: {
16066
- text: phase.value,
16067
- status: phase.status,
16068
- },
16069
- }),
16069
+ }),
16070
+ });
16071
+ data.push(divider);
16072
+ data.push({
16073
+ type: DataCardFieldTypes.DescribeRow,
16074
+ value: JSON.stringify({
16075
+ title: agentInjected.name,
16076
+ tooltip: agentInjected.explain,
16077
+ value: {
16078
+ text: agentInjected.value,
16079
+ status: agentInjected.status,
16070
16080
  },
16071
- divider,
16072
- ...containers.map((container) => {
16073
- return {
16074
- type: DataCardFieldTypes.PodContainer,
16075
- value: JSON.stringify({
16076
- containerName: container.containerName.value,
16077
- actualDevice: {
16078
- title: container.actualDevices.name,
16079
- subTitle: container.actualDevices.value,
16080
- tooltip: container.actualDevices.explain,
16081
- },
16082
- processes: container.instrumentationInstances.map((instance) => ({
16083
- health: instance.healthy.status,
16084
- message: instance.message?.value || '',
16085
- identifyingAttributes: instance.identifyingAttributes || [],
16086
- })),
16087
- }),
16088
- };
16081
+ }),
16082
+ });
16083
+ data.push(divider);
16084
+ if (runningLatestWorkloadRevision?.name) {
16085
+ data.push({
16086
+ type: DataCardFieldTypes.DescribeRow,
16087
+ value: JSON.stringify({
16088
+ title: runningLatestWorkloadRevision?.name || '',
16089
+ tooltip: runningLatestWorkloadRevision?.explain || '',
16090
+ value: {
16091
+ text: runningLatestWorkloadRevision?.value || '',
16092
+ status: runningLatestWorkloadRevision?.status || '',
16093
+ },
16089
16094
  }),
16090
- ] }));
16095
+ });
16096
+ data.push(divider);
16097
+ }
16098
+ data.push(...containers.map((container) => {
16099
+ return {
16100
+ type: DataCardFieldTypes.PodContainer,
16101
+ value: JSON.stringify({
16102
+ containerName: container.containerName.value,
16103
+ actualDevice: {
16104
+ title: container.actualDevices.name,
16105
+ subTitle: container.actualDevices.value,
16106
+ tooltip: container.actualDevices.explain,
16107
+ },
16108
+ started: {
16109
+ title: container.started?.name || '',
16110
+ subTitle: container.started?.value || '',
16111
+ tooltip: container.started?.explain || '',
16112
+ },
16113
+ ready: {
16114
+ title: container.ready?.name || '',
16115
+ subTitle: container.ready?.value || '',
16116
+ tooltip: container.ready?.explain || '',
16117
+ },
16118
+ processes: container.instrumentationInstances.map((instance) => ({
16119
+ health: instance.healthy.status,
16120
+ message: instance.message?.value || '',
16121
+ identifyingAttributes: instance.identifyingAttributes || [],
16122
+ })),
16123
+ }),
16124
+ };
16125
+ }));
16126
+ return React.createElement(DataCard, { key: `pod-${podName.value}`, title: `Pod: ${podName.value}`, withExtend: true, action: () => React.createElement(Status, { status: podStatus, title: podStatus, withIcon: true, withBorder: true }), data: data });
16091
16127
  }))));
16092
16128
  };
16093
16129
 
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { _ as WarningModal } from './index-1BlMhN86.js';
2
+ import { _ as WarningModal } from './index-BuoxtJOI.js';
3
3
  import { StatusType, EntityTypes } from './types.js';
4
4
  import './index-BdZq2vdJ.js';
5
5
  import 'styled-components';
@@ -3988,7 +3988,7 @@ const Row = styled.div `
3988
3988
  align-items: center;
3989
3989
  gap: 12px;
3990
3990
  `;
3991
- const TextNoWrap = styled(Text) `
3991
+ const TextNoWrap$1 = styled(Text) `
3992
3992
  white-space: nowrap;
3993
3993
  `;
3994
3994
  const IconWrap$1 = styled(FlexColumn) `
@@ -4038,9 +4038,9 @@ const ConditionDetails = ({ conditions: c, headerLabelError = 'Something Failed'
4038
4038
  React.createElement(Icon, null)),
4039
4039
  React.createElement(FlexRow, { "$gap": 12, style: { width: '100%', justifyContent: 'space-between' } },
4040
4040
  React.createElement(Text, { color: color, size: 12 },
4041
- React.createElement(TextNoWrap, { color: boldColor, size: 12, weight: 700 }, type),
4041
+ React.createElement(TextNoWrap$1, { color: boldColor, size: 12, weight: 700 }, type),
4042
4042
  message || reason),
4043
- React.createElement(TextNoWrap, { color: color, size: 12 }, new Date(lastTransitionTime).toLocaleString()))));
4043
+ React.createElement(TextNoWrap$1, { color: color, size: 12 }, new Date(lastTransitionTime).toLocaleString()))));
4044
4044
  })))));
4045
4045
  };
4046
4046
 
@@ -4072,6 +4072,9 @@ const TextWrapper$1 = styled.div `
4072
4072
  display: flex;
4073
4073
  align-items: center;
4074
4074
  `;
4075
+ const TextNoWrap = styled(Text) `
4076
+ text-wrap: nowrap;
4077
+ `;
4075
4078
  const Status = ({ title, subtitle, size = 12, family = 'secondary', status = StatusType.Default, withIcon, withBorder, withBackground }) => {
4076
4079
  const theme = Theme.useTheme();
4077
4080
  const statusType = status === OtherStatus.Loading ? StatusType.Info : status;
@@ -4080,9 +4083,9 @@ const Status = ({ title, subtitle, size = 12, family = 'secondary', status = Sta
4080
4083
  withIcon && (React.createElement(IconWrapper$4, null,
4081
4084
  React.createElement(StatusIcon, null))),
4082
4085
  (!!title || !!subtitle) && (React.createElement(TextWrapper$1, null,
4083
- !!title && (React.createElement(Text, { size: size, family: family, color: theme.text[statusType] }, title)),
4086
+ !!title && (React.createElement(TextNoWrap, { size: size, family: family, color: theme.text[statusType] }, title)),
4084
4087
  !!title && !!subtitle && React.createElement(Divider, { orientation: 'vertical', length: `${size - 2}px`, type: statusType }),
4085
- !!subtitle && (React.createElement(Text, { size: size - 2, family: family, color: theme.text[`${statusType}_secondary`] }, subtitle))))));
4088
+ !!subtitle && (React.createElement(TextNoWrap, { size: size - 2, family: family, color: theme.text[`${statusType}_secondary`] }, subtitle))))));
4086
4089
  };
4087
4090
 
4088
4091
  const LimitedText = styled(Text) `
@@ -4303,7 +4306,7 @@ const SubText = styled(Text) `
4303
4306
  font-size: 10px;
4304
4307
  color: ${({ theme }) => theme.text.grey};
4305
4308
  `;
4306
- const DataTab = ({ title, subTitle, hoverText, onClick, renderActions, iconProps: { icon, icons, iconSrc, iconSrcs } = {}, visualProps: { status, faded, bgColor, bgColorHover, monitors, monitorsWithLabels } = {}, checkboxProps: { withCheckbox, isCheckboxDisabled, isChecked, onCheckboxChange } = {}, extendableProps: { withExtend, isExtended, renderExtended } = {}, ...props }) => {
4309
+ const DataTab = ({ title, subTitle, hoverText, onClick, renderActions, iconProps: { icon, icons, iconSrc, iconSrcs } = {}, visualProps: { status, faded, bgColor, bgColorHover, monitors, monitorsWithLabels, componentsUnderTitles } = {}, checkboxProps: { withCheckbox, isCheckboxDisabled, isChecked, onCheckboxChange } = {}, extendableProps: { withExtend, isExtended, renderExtended } = {}, ...props }) => {
4307
4310
  const theme = Theme.useTheme();
4308
4311
  const [extend, setExtend] = useState(isExtended || false);
4309
4312
  const [textMaxWidth, setTextMaxWidth] = useState(0);
@@ -4332,7 +4335,8 @@ const DataTab = ({ title, subTitle, hoverText, onClick, renderActions, iconProps
4332
4335
  subTitle && React.createElement(ScrollX, { maxWidth: textMaxWidth - (monitorsRef.current?.clientWidth || 0), text: subTitle, textSize: 10, textColor: theme.text.grey }),
4333
4336
  monitors && monitors.length > 0 && (React.createElement(FlexRow, { "$gap": 4, ref: monitorsRef },
4334
4337
  subTitle && React.createElement(SubText, null, "\u2022"),
4335
- React.createElement(MonitorsIcons, { monitors: monitors, withLabels: monitorsWithLabels, size: 10 }))))),
4338
+ React.createElement(MonitorsIcons, { monitors: monitors, withLabels: monitorsWithLabels, size: 10 })))),
4339
+ componentsUnderTitles && (React.createElement(FlexRow, { "$gap": 4 }, componentsUnderTitles?.map((component, i) => (React.createElement(Fragment, { key: `componentsUnderTitles-${i}` }, component)))))),
4336
4340
  React.createElement(ActionsWrapper, { ref: actionsRef },
4337
4341
  !!hoverText && (React.createElement(ControlledVisibility, null,
4338
4342
  React.createElement(HoverText, { size: 14, family: 'secondary' }, hoverText))),
@@ -4638,12 +4642,21 @@ const RenderValue = ({ type, value }) => {
4638
4642
  React.createElement("pre", null, str)));
4639
4643
  }
4640
4644
  case DataCardFieldTypes.PodContainer: {
4641
- const { containerName, actualDevice, processes } = safeJsonParse(value, {
4645
+ const { containerName, actualDevice, started, ready, processes } = safeJsonParse(value, {
4642
4646
  containerName: '',
4643
4647
  actualDevice: { title: '', subTitle: '', tooltip: '' },
4648
+ started: { title: '', subTitle: '', tooltip: '' },
4649
+ ready: { title: '', subTitle: '', tooltip: '' },
4644
4650
  processes: [{ health: StatusType.Info, message: '', identifyingAttributes: [] }],
4645
4651
  });
4646
- return (React.createElement(DataTab, { title: containerName, subTitle: processes.length ? `${processes.length} Instrumented Processes` : undefined, renderActions: () => {
4652
+ const componentsUnderTitles = [];
4653
+ if (started?.title)
4654
+ componentsUnderTitles.push(React.createElement(Status, { status: StatusType.Success, title: started.title, withIcon: true, withBorder: true, size: 8 }));
4655
+ if (ready?.title)
4656
+ componentsUnderTitles.push(React.createElement(Status, { status: StatusType.Error, title: ready.title, withIcon: true, withBorder: true, size: 8 }));
4657
+ return (React.createElement(DataTab, { title: containerName, subTitle: processes.length ? `${processes.length} Instrumented Processes` : undefined, visualProps: {
4658
+ componentsUnderTitles: componentsUnderTitles.length ? componentsUnderTitles : undefined,
4659
+ }, renderActions: () => {
4647
4660
  return React.createElement(Status, { status: StatusType.Info, title: 'Instrumentation Device', subtitle: !actualDevice.subTitle || actualDevice.subTitle === '[]' ? 'none' : actualDevice.subTitle, withBorder: true });
4648
4661
  }, extendableProps: {
4649
4662
  isExtended: !!processes.length,
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import { T as Theme, B as BUTTON_TEXTS, k as DISPLAY_TITLES } from './index-BdZq2vdJ.js';
3
3
  import { E as EditIcon } from './index-CDHYBh8C.js';
4
- import { B as Button, V as Text, J as NotificationNote } from './index-1BlMhN86.js';
4
+ import { B as Button, V as Text, J as NotificationNote } from './index-BuoxtJOI.js';
5
5
  import { StatusType } from './types.js';
6
6
  import 'styled-components';
7
7
  import { I as InfoIcon } from './index-BeVb1H9n.js';
package/lib/snippets.js CHANGED
@@ -1,5 +1,5 @@
1
- export { A as AddButton } from './index-1BlMhN86.js';
2
- export { E as EditButton, N as NoteBackToSummary } from './index-0AME5hOa.js';
1
+ export { A as AddButton } from './index-BuoxtJOI.js';
2
+ export { E as EditButton, N as NoteBackToSummary } from './index-CDljW3_P.js';
3
3
  import 'react';
4
4
  import './index-BdZq2vdJ.js';
5
5
  import './types.js';
@@ -76,12 +76,16 @@ interface InstrumentationInstanceAnalyze {
76
76
  interface PodContainerAnalyze {
77
77
  containerName: EntityProperty;
78
78
  actualDevices: EntityProperty;
79
+ started?: EntityProperty | null;
80
+ ready?: EntityProperty | null;
79
81
  instrumentationInstances: InstrumentationInstanceAnalyze[];
80
82
  }
81
83
  interface PodAnalyze {
82
84
  podName: EntityProperty;
83
85
  nodeName: EntityProperty;
84
86
  phase: EntityProperty;
87
+ agentInjected: EntityProperty;
88
+ runningLatestWorkloadRevision?: EntityProperty | null;
85
89
  containers: PodContainerAnalyze[];
86
90
  }
87
91
  export interface DescribeSource {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@odigos/ui-kit",
3
- "version": "0.0.39",
3
+ "version": "0.0.40",
4
4
  "author": "Odigos",
5
5
  "repository": {
6
6
  "type": "git",