@odigos/ui-kit 0.0.55 → 0.0.56

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,14 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.0.56](https://github.com/odigos-io/ui-kit/compare/ui-kit-v0.0.55...ui-kit-v0.0.56) (2025-07-15)
4
+
5
+
6
+ ### Bug Fixes
7
+
8
+ * crash related to `parseBooleanFromString` ([#233](https://github.com/odigos-io/ui-kit/issues/233)) ([e8bbd5c](https://github.com/odigos-io/ui-kit/commit/e8bbd5cc07e88576c1997518da4d8447353dad35))
9
+ * icon button not clicking ([#236](https://github.com/odigos-io/ui-kit/issues/236)) ([5bcedd6](https://github.com/odigos-io/ui-kit/commit/5bcedd6be4e1de384c1d7efe221f22fca872b661))
10
+ * metric edges z-index ([#235](https://github.com/odigos-io/ui-kit/issues/235)) ([579093b](https://github.com/odigos-io/ui-kit/commit/579093b9261206a04c99491ea003d87eab1472da))
11
+
3
12
  ## [0.0.55](https://github.com/odigos-io/ui-kit/compare/ui-kit-v0.0.54...ui-kit-v0.0.55) (2025-07-14)
4
13
 
5
14
 
package/lib/components.js CHANGED
@@ -1,11 +1,11 @@
1
- import { B as Button } from './index-cd2972ab.js';
2
- export { A as AutocompleteInput, a as Badge, a5 as CenterThis, C as Checkbox, b as Code, c as ConditionDetails, D as DataCard, e as DataCardFieldTypes, d as DataCardFields, f as DataFinger, g as DataTab, h as DescribeRow, i as Divider, j as DocsButton, k as Drawer, m as DrawerFooter, l as DrawerHeader, n as Dropdown, E as ExtendArrow, F as FadeLoader, o as FieldError, p as FieldLabel, a4 as FlexColumn, a3 as FlexRow, H as Header, I as IconButton, q as IconGroup, r as IconTitleBadge, s as IconWrapped, t as IconsNav, u as ImageControlled, v as Input, w as InputList, x as InputTable, y as InteractiveTable, K as KeyValueInputsList, M as Modal, a8 as ModalBody, z as MonitorsCheckboxes, G as MonitorsIcons, N as NavigationButtons, J as NoDataFound, L as NotificationNote, a7 as Overlay, P as Popup, O as PopupForm, S as ScrollX, Q as SectionTitle, R as Segment, U as SelectionButton, V as SkeletonLoader, W as Status, X as Stepper, a9 as TableContainer, aa as TableTitleWrap, ab as TableWrap, Y as Tag, Z as Text, _ as TextArea, $ as Toggle, T as ToggleCodeComponent, a0 as Tooltip, a1 as TraceLoader, a6 as VerticalScroll, a2 as WarningModal } from './index-cd2972ab.js';
3
- export { C as CancelWarning, D as DeleteWarning } from './index-d0c9f285.js';
1
+ import { B as Button } from './index-ad94963f.js';
2
+ export { A as AutocompleteInput, a as Badge, a5 as CenterThis, C as Checkbox, b as Code, c as ConditionDetails, D as DataCard, e as DataCardFieldTypes, d as DataCardFields, f as DataFinger, g as DataTab, h as DescribeRow, i as Divider, j as DocsButton, k as Drawer, m as DrawerFooter, l as DrawerHeader, n as Dropdown, E as ExtendArrow, F as FadeLoader, o as FieldError, p as FieldLabel, a4 as FlexColumn, a3 as FlexRow, H as Header, I as IconButton, q as IconGroup, r as IconTitleBadge, s as IconWrapped, t as IconsNav, u as ImageControlled, v as Input, w as InputList, x as InputTable, y as InteractiveTable, K as KeyValueInputsList, M as Modal, a8 as ModalBody, z as MonitorsCheckboxes, G as MonitorsIcons, N as NavigationButtons, J as NoDataFound, L as NotificationNote, a7 as Overlay, P as Popup, O as PopupForm, S as ScrollX, Q as SectionTitle, R as Segment, U as SelectionButton, V as SkeletonLoader, W as Status, X as Stepper, a9 as TableContainer, aa as TableTitleWrap, ab as TableWrap, Y as Tag, Z as Text, _ as TextArea, $ as Toggle, T as ToggleCodeComponent, a0 as Tooltip, a1 as TraceLoader, a6 as VerticalScroll, a2 as WarningModal } from './index-ad94963f.js';
3
+ export { C as CancelWarning, D as DeleteWarning } from './index-1de4c5cd.js';
4
4
  import React, { createContext, Component, createElement } from 'react';
5
5
  import { T as Theme } from './index-cccea570.js';
6
6
  import './types.js';
7
7
  import './index-b08f2a91.js';
8
- import './index-ff710eae.js';
8
+ import './index-03c3e255.js';
9
9
  import 'styled-components';
10
10
  import './index-ad99c5fe.js';
11
11
  import './index-ec555530.js';
package/lib/containers.js CHANGED
@@ -2,15 +2,15 @@ import React, { useState, useEffect, forwardRef, useRef, useImperativeHandle, us
2
2
  import styled, { css } from 'styled-components';
3
3
  import { b as DISPLAY_TITLES, T as Theme, U as usePendingStore, V as useNotificationStore, O as useDrawerStore, B as BUTTON_TEXTS, W as useEntityStore, A as ACTION_OPTIONS, g as getActionIcon, z as useModalStore, F as FORM_ALERTS, X as useFilterStore, D as DISPLAY_LANGUAGES, M as MONITORS_OPTIONS, d as getInstrumentationRuleIcon, Y as useDataStreamStore, Z as useInstrumentStore, c as getEntityId, S as STORAGE_KEYS, a as DEFAULT_DATA_STREAM_NAME, _ as useSetupStore, I as INSTRUMENTATION_RULE_OPTIONS, $ as useSelectedStore, j as ImageErrorIcon, a0 as useDarkMode } from './index-cccea570.js';
4
4
  import { ActionType, ActionKeyTypes, InputTypes, FieldTypes, EntityTypes, StatusType, Crud, OtherStatus, NodeTypes, EdgeTypes, AddNodeTypes, SignalType, HeadersCollectionKeyTypes, CustomInstrumentationsKeyTypes, CodeAttributesKeyTypes, PayloadCollectionKeyTypes, InstrumentationRuleType, K8sResourceKind } from './types.js';
5
- import { e as DataCardFieldTypes, p as FieldLabel, C as Checkbox, o as FieldError, v as Input, x as InputTable, K as KeyValueInputsList, w as InputList, Z as Text, R as Segment, Q as SectionTitle, j as DocsButton, z as MonitorsCheckboxes, _ as TextArea, k as Drawer, c as ConditionDetails, D as DataCard, a4 as FlexColumn, M as Modal, N as NavigationButtons, a8 as ModalBody, L as NotificationNote, A as AutocompleteInput, i as Divider, W as Status, a3 as FlexRow, a0 as Tooltip, s as IconWrapped, G as MonitorsIcons, a9 as TableContainer, aa as TableTitleWrap, r as IconTitleBadge, ab as TableWrap, y as InteractiveTable, a5 as CenterThis, J as NoDataFound, a1 as TraceLoader, a as Badge, E as ExtendArrow, a6 as VerticalScroll, U as SelectionButton, B as Button, n as Dropdown, ac as nodeConfig, ad as useNodesState, ae as useEdgesState, af as Flow, ag as applyNodeChanges, P as Popup, $ as Toggle, I as IconButton, ah as AddButton, F as FadeLoader, g as DataTab, X as Stepper, d as DataCardFields, ai as MarkerType, t as IconsNav, aj as CopyText, h as DescribeRow, ak as PodContainer, al as SourceContainer, q as IconGroup, O as PopupForm } from './index-cd2972ab.js';
5
+ import { e as DataCardFieldTypes, p as FieldLabel, C as Checkbox, o as FieldError, v as Input, x as InputTable, K as KeyValueInputsList, w as InputList, Z as Text, R as Segment, Q as SectionTitle, j as DocsButton, z as MonitorsCheckboxes, _ as TextArea, k as Drawer, c as ConditionDetails, D as DataCard, a4 as FlexColumn, M as Modal, N as NavigationButtons, a8 as ModalBody, L as NotificationNote, A as AutocompleteInput, i as Divider, W as Status, a3 as FlexRow, a0 as Tooltip, s as IconWrapped, G as MonitorsIcons, a9 as TableContainer, aa as TableTitleWrap, r as IconTitleBadge, ab as TableWrap, y as InteractiveTable, a5 as CenterThis, J as NoDataFound, a1 as TraceLoader, a as Badge, E as ExtendArrow, a6 as VerticalScroll, U as SelectionButton, B as Button, n as Dropdown, ac as nodeConfig, ad as useNodesState, ae as useEdgesState, af as Flow, ag as applyNodeChanges, P as Popup, $ as Toggle, I as IconButton, ah as AddButton, F as FadeLoader, g as DataTab, X as Stepper, d as DataCardFields, ai as MarkerType, t as IconsNav, aj as CopyText, h as DescribeRow, ak as PodContainer, al as SourceContainer, q as IconGroup, O as PopupForm } from './index-ad94963f.js';
6
6
  import { i as isEmpty, s as safeJsonParse } from './index-ec555530.js';
7
7
  import { C as CheckCircledIcon, O as OdigosLogo } from './index-ad99c5fe.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, U as UserIcon, S as SlackLogo, K as KeyIcon, T as TerminalIcon } from './index-59f6374b.js';
9
9
  import { useActionFormData, useSessionStorage, useDataStreamFormData, useDestinationFormData, useClickNotification, useSourceFormData, useSourceSelectionFormData } from './hooks.js';
10
10
  import { u as useKeyDown, a as useOnClickOutside, b as useContainerSize, c as useClickNode, d as usePopup, e as useInstrumentationRuleFormData, f as useTransition, g as useTimeAgo, h as useCopy, i as useGenericForm } from './useTransition-d4c82b6e.js';
11
11
  import { E as EditIcon, T as TrashIcon, S as SearchIcon, h as CheckIcon, A as ArrowIcon, P as PlusIcon, a as CopyIcon } from './index-b08f2a91.js';
12
- import { D as DeleteWarning, C as CancelWarning } from './index-d0c9f285.js';
13
- import { g as getConditionsBooleans, m as mapConditions, b as getStatusIcon, e as splitCamelString, c as capitalizeFirstLetter, p as parseBooleanFromString } from './index-ff710eae.js';
12
+ import { D as DeleteWarning, C as CancelWarning } from './index-1de4c5cd.js';
13
+ import { g as getConditionsBooleans, m as mapConditions, b as getStatusIcon, h as splitCamelString, c as capitalizeFirstLetter, i as isStringABoolean, p as parseBooleanFromString } from './index-03c3e255.js';
14
14
  import { f as filterActions, m as getEntityLabel, l as getEntityIcon, w as sleep, o as getPlatformIcon, p as getPlatformLabel, h as formatBytes, j as getContainersIcons, q as getValueForRange, k as getDestinationIcon, g as filterSourcesByStream, e as filterSources, b as filterDestinationsByStream, a as filterDestinations, v as mapDestinationFieldsForDisplay, c as compareCondition, s as getYamlFieldsForDestination, d as deepClone, n as getMetricForEntity, r as getWorkloadId, t as hasUnhealthyInstances, i as getContainersInstrumentedCount, u as isOverTime } from './index-016ca5d0.js';
15
15
  import { m as mapExportedSignals } from './index-6a6bea6e.js';
16
16
  import { NoteBackToSummary, EditButton } from './snippets.js';
@@ -1073,7 +1073,7 @@ const ComputePlatformSelect = ({ connections, selected, onSelect, onViewAll }) =
1073
1073
  isOpen && withSelect && (React.createElement(AbsoluteContainer, null,
1074
1074
  React.createElement(HeadWrap, null,
1075
1075
  React.createElement(Input, { placeholder: 'Search...', icon: SearchIcon, value: searchText, onChange: (e) => setSearchText(e.target.value.toLowerCase()) })),
1076
- React.createElement(VerticalScroll, { style: { maxHeight: '240px' } }, filtered.map(({ id, type, name, status }, idx) => (React.createElement(SelectionButton, { key: `platform-${id}`, icon: () => getPlatformIcon(type)({ fill: status === StatusType.Success ? theme.text.success : theme.text.error }), label: `${!!name ? name : getPlatformLabel(type)} (${id})`, isSelected: selected?.id === id, onClick: () => {
1076
+ React.createElement(VerticalScroll, { style: { maxHeight: '240px' } }, filtered.map(({ id, type, name, status }, idx) => (React.createElement(SelectionButton, { key: `platform-${id}`, icon: () => getPlatformIcon(type)?.({ fill: status === StatusType.Success ? theme.text.success : theme.text.error }), label: `${!!name ? name : getPlatformLabel(type)} (${id})`, isSelected: selected?.id === id, onClick: () => {
1077
1077
  if (status === StatusType.Success) {
1078
1078
  onSelect(filtered[idx]);
1079
1079
  }
@@ -4680,7 +4680,7 @@ const Describe = ({ fetchDescribeOdigos }) => {
4680
4680
  ? [
4681
4681
  React.createElement(Divider, { key: `divider-${obj.name}` }),
4682
4682
  React.createElement(DescribeRow, { key: `describe-row-${obj.name}`, title: obj.name, subTitle: obj.explain || undefined, value: {
4683
- status: obj.status || parseBooleanFromString(obj.value) ? StatusType.Success : StatusType.Error,
4683
+ status: obj.status || (isStringABoolean(obj.value) ? (parseBooleanFromString(obj.value) ? StatusType.Success : StatusType.Error) : StatusType.Default),
4684
4684
  text: obj.value,
4685
4685
  } }),
4686
4686
  ]
@@ -34,6 +34,7 @@ export * from './has-unhealthy-instances';
34
34
  export * from './is-emtpy';
35
35
  export * from './is-legal-k8s-label';
36
36
  export * from './is-over-time';
37
+ export * from './is-string-a-boolean';
37
38
  export * from './is-time-elapsed';
38
39
  export * from './is-valid-version';
39
40
  export * from './map-conditions';
@@ -0,0 +1 @@
1
+ export declare const isStringABoolean: (value: boolean | string | number) => boolean;
package/lib/functions.js CHANGED
@@ -1,4 +1,4 @@
1
- export { c as capitalizeFirstLetter, f as flattenObjectKeys, g as getConditionsBooleans, a as getMonitorIcon, b as getStatusIcon, i as isValidVersion, m as mapConditions, n as numbersOnly, p as parseBooleanFromString, d as parseJsonStringToPrettyString, r as removeEmptyValuesFromObject, s as safeJsonStringify, e as splitCamelString } from './index-ff710eae.js';
1
+ export { c as capitalizeFirstLetter, f as flattenObjectKeys, g as getConditionsBooleans, a as getMonitorIcon, b as getStatusIcon, i as isStringABoolean, d as isValidVersion, m as mapConditions, n as numbersOnly, p as parseBooleanFromString, e as parseJsonStringToPrettyString, r as removeEmptyValuesFromObject, s as safeJsonStringify, h as splitCamelString } from './index-03c3e255.js';
2
2
  export { c as compareCondition, d as deepClone, f as filterActions, a as filterDestinations, b as filterDestinationsByStream, e as filterSources, g as filterSourcesByStream, h as formatBytes, j as getContainersIcons, i as getContainersInstrumentedCount, k as getDestinationIcon, l as getEntityIcon, m as getEntityLabel, n as getMetricForEntity, o as getPlatformIcon, p as getPlatformLabel, q as getValueForRange, r as getWorkloadId, s as getYamlFieldsForDestination, t as hasUnhealthyInstances, u as isOverTime, v as mapDestinationFieldsForDisplay, w as sleep } from './index-016ca5d0.js';
3
3
  export { g as getActionIcon, c as getEntityId, d as getInstrumentationRuleIcon, e as getProgrammingLanguageIcon } from './index-cccea570.js';
4
4
  export { g as getIdFromSseTarget, i as isLegalK8sLabel, m as mapExportedSignals } from './index-6a6bea6e.js';
@@ -113,6 +113,12 @@ const getStatusIcon = (type, theme) => {
113
113
  return LOGOS[type];
114
114
  };
115
115
 
116
+ const isStringABoolean = (value) => {
117
+ const normalizedValue = String(value).trim().toLowerCase();
118
+ const booleanValues = ['true', 'false', '1', '0'];
119
+ return booleanValues.includes(normalizedValue);
120
+ };
121
+
116
122
  const SEMVER_REGEX = /^(\d+\.)?(\d+\.)?(\*|\d+)$/;
117
123
  const isValidVersion = (version) => SEMVER_REGEX.test(version);
118
124
 
@@ -149,7 +155,8 @@ const parseBooleanFromString = (value) => {
149
155
  return false;
150
156
  }
151
157
  else {
152
- throw new Error(`Cannot parse boolean from string: "${value}"`);
158
+ console.warn(`Cannot parse boolean from string: "${value}"`);
159
+ return false;
153
160
  }
154
161
  };
155
162
 
@@ -215,4 +222,4 @@ const safeJsonStringify = (obj, indent = 2) => {
215
222
  return JSON.stringify(obj || {}, null, indent);
216
223
  };
217
224
 
218
- export { getMonitorIcon as a, getStatusIcon as b, capitalizeFirstLetter as c, parseJsonStringToPrettyString as d, splitCamelString as e, flattenObjectKeys as f, getConditionsBooleans as g, isValidVersion as i, mapConditions as m, numbersOnly as n, parseBooleanFromString as p, removeEmptyValuesFromObject as r, safeJsonStringify as s };
225
+ export { getMonitorIcon as a, getStatusIcon as b, capitalizeFirstLetter as c, isValidVersion as d, parseJsonStringToPrettyString as e, flattenObjectKeys as f, getConditionsBooleans as g, splitCamelString as h, isStringABoolean as i, mapConditions as m, numbersOnly as n, parseBooleanFromString as p, removeEmptyValuesFromObject as r, safeJsonStringify as s };
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { a2 as WarningModal } from './index-cd2972ab.js';
2
+ import { a2 as WarningModal } from './index-ad94963f.js';
3
3
  import { StatusType, EntityTypes } from './types.js';
4
4
  import './index-cccea570.js';
5
5
  import 'styled-components';
@@ -2,7 +2,7 @@ import React, { useState, useEffect, useRef, forwardRef, useMemo, createElement,
2
2
  import { T as Theme, B as BUTTON_TEXTS, j as ImageErrorIcon, M as MONITORS_OPTIONS, a1 as styleInject, U as usePendingStore, $ as useSelectedStore, Z as useInstrumentStore, Q as useActiveNodeStore, V as useNotificationStore, b as DISPLAY_TITLES, L as LANGUAGE_OPTIONS, F as FORM_ALERTS, D as DISPLAY_LANGUAGES, e as getProgrammingLanguageIcon } from './index-cccea570.js';
3
3
  import { StatusType, OtherStatus, EntityTypes, NodeTypes, AddNodeTypes, EdgeTypes, ProgrammingLanguages, IntrumentationStatus, SortDirection, InputTypes, FieldTypes } from './types.js';
4
4
  import { M as MinusIcon$1, h as CheckIcon, L as ListIcon, C as CodeIcon, c as ExtendArrowIcon, P as PlusIcon$1, a as CopyIcon, E as EditIcon, b as EditedIcon, e as SortArrowsIcon, d as NotebookIcon, X as XIcon, f as EyeClosedIcon, g as EyeOpenIcon, N as NoDataIcon, i as CrossIcon, S as SearchIcon, T as TrashIcon, A as ArrowIcon } from './index-b08f2a91.js';
5
- import { b as getStatusIcon, r as removeEmptyValuesFromObject, s as safeJsonStringify, f as flattenObjectKeys, m as mapConditions, g as getConditionsBooleans, c as capitalizeFirstLetter, a as getMonitorIcon, p as parseBooleanFromString, i as isValidVersion, e as splitCamelString, d as parseJsonStringToPrettyString, n as numbersOnly } from './index-ff710eae.js';
5
+ import { b as getStatusIcon, r as removeEmptyValuesFromObject, s as safeJsonStringify, f as flattenObjectKeys, m as mapConditions, g as getConditionsBooleans, c as capitalizeFirstLetter, a as getMonitorIcon, i as isStringABoolean, p as parseBooleanFromString, d as isValidVersion, h as splitCamelString, e as parseJsonStringToPrettyString, n as numbersOnly } from './index-03c3e255.js';
6
6
  import styled, { css } from 'styled-components';
7
7
  import { s as safeJsonParse, i as isEmpty } from './index-ec555530.js';
8
8
  import ReactDOM, { createPortal } from 'react-dom';
@@ -354,13 +354,15 @@ const Container$F = styled.div `
354
354
  ${({ $bottom }) => $bottom !== undefined && `bottom: ${$bottom}px;`}
355
355
  ${({ $left }) => $left !== undefined && `left: ${$left}px;`}
356
356
  ${({ $right }) => $right !== undefined && `right: ${$right}px;`}
357
- z-index: 99999;
357
+ z-index: 9999;
358
358
 
359
359
  background-color: ${({ theme }) => theme.colors.info};
360
360
  border: 1px solid ${({ theme }) => theme.colors.border};
361
361
  border-radius: ${({ $borderRadius }) => ($borderRadius !== undefined ? $borderRadius : '24px')};
362
362
  max-width: ${({ $maxWidth }) => ($maxWidth !== undefined ? $maxWidth : 'unset')};
363
363
  width: ${({ $width }) => ($width !== undefined ? $width : 'unset')};
364
+
365
+ ${({ $asPortal }) => $asPortal && `pointer-events: none;`}
364
366
  `;
365
367
  const Header$3 = styled.div `
366
368
  padding: ${({ $padding }) => ($padding !== undefined ? $padding : '12px')};
@@ -376,11 +378,11 @@ const Footer$1 = styled.div `
376
378
  const Popup = forwardRef(({ isOpen, asPortal, ...props }, ref) => {
377
379
  const Element = useMemo(() => {
378
380
  const { children, top, bottom, left, right, borderRadius, padding, maxWidth, width, header, footer } = props;
379
- return (React.createElement(Container$F, { ref: ref, "$top": top, "$bottom": bottom, "$left": left, "$right": right, "$borderRadius": borderRadius, "$padding": padding, "$maxWidth": maxWidth, "$width": width },
381
+ return (React.createElement(Container$F, { ref: ref, "$top": top, "$bottom": bottom, "$left": left, "$right": right, "$borderRadius": borderRadius, "$padding": padding, "$maxWidth": maxWidth, "$width": width, "$asPortal": asPortal },
380
382
  header && React.createElement(Header$3, { "$padding": padding }, header),
381
383
  React.createElement(Body$1, { "$padding": padding }, children),
382
384
  footer && React.createElement(Footer$1, { "$padding": padding }, footer)));
383
- }, [props, ref]);
385
+ }, [ref, props, asPortal]);
384
386
  if (!isOpen)
385
387
  return null;
386
388
  if (asPortal)
@@ -473,7 +475,7 @@ const Tooltip = ({ withIcon, titleIcon: TitleIcon, title, text, timestamp, child
473
475
  return (React.createElement(TooltipContainer, { onMouseEnter: handleMouseEvent, onMouseMove: handleMouseEvent, onMouseLeave: handleMouseEvent },
474
476
  children,
475
477
  withIcon && React.createElement(InfoIcon, null),
476
- React.createElement(Popup, { ref: popupRef, isOpen: popupOpen, ...popupPosition, asPortal: true, maxWidth: '270px', borderRadius: '16px', padding: '8px 12px' },
478
+ React.createElement(Popup, { ref: popupRef, isOpen: popupOpen, top: popupPosition.top, left: popupPosition.left, asPortal: true, maxWidth: '270px', borderRadius: '16px', padding: '8px 12px' },
477
479
  React.createElement(Text, { size: 12, color: theme.text.secondary },
478
480
  (!!TitleIcon || !!title) && (React.createElement(FlexRow, { style: { marginBottom: '4px' }, "$gap": 4 },
479
481
  TitleIcon && React.createElement(TitleIcon, { fill: theme.text.secondary, size: 12 }),
@@ -4098,7 +4100,7 @@ const Status = ({ title, subtitle, status = StatusType.Default, forceIcon: Force
4098
4100
  ? () => React.createElement(ForceIcon, { size: size + 2, fill: theme.text[statusType] })
4099
4101
  : status === OtherStatus.Loading
4100
4102
  ? () => React.createElement(FadeLoader, { scale: 0.8 })
4101
- : () => getStatusIcon(statusType, theme)({ size: size + 2 });
4103
+ : () => getStatusIcon(statusType, theme)?.({ size: size + 2 });
4102
4104
  return (React.createElement(Container$A, { "$status": statusType, "$width": width, "$size": size, "$withIcon": withIcon, "$withBorder": withBorder, "$withBackground": withBackground },
4103
4105
  withIcon && (React.createElement(IconWrapper$4, null,
4104
4106
  React.createElement(StatusIcon, null))),
@@ -4438,10 +4440,10 @@ const PodContainer = ({ containerName, actualDevices, started, ready, instrument
4438
4440
  const componentsUnderTitles = useMemo(() => {
4439
4441
  const arr = [];
4440
4442
  if (started?.name) {
4441
- arr.push(React.createElement(Status, { status: parseBooleanFromString(started.value) ? StatusType.Success : StatusType.Error, title: started.name, withIcon: true, withBorder: true, size: 8 }));
4443
+ arr.push(React.createElement(Status, { status: isStringABoolean(started.value) ? (parseBooleanFromString(started.value) ? StatusType.Success : StatusType.Error) : StatusType.Default, title: started.name, withIcon: true, withBorder: true, size: 8 }));
4442
4444
  }
4443
4445
  if (ready?.name) {
4444
- arr.push(React.createElement(Status, { status: parseBooleanFromString(ready.value) ? StatusType.Success : StatusType.Error, title: ready.name, withIcon: true, withBorder: true, size: 8 }));
4446
+ arr.push(React.createElement(Status, { status: isStringABoolean(ready.value) ? (parseBooleanFromString(ready.value) ? StatusType.Success : StatusType.Error) : StatusType.Default, title: ready.name, withIcon: true, withBorder: true, size: 8 }));
4445
4447
  }
4446
4448
  return arr;
4447
4449
  }, [started?.name, started?.value, ready?.name, ready?.value]);
@@ -16737,6 +16739,7 @@ NoDataNode.displayName = NoDataNode.name;
16737
16739
  const Label$1 = styled.div `
16738
16740
  position: absolute;
16739
16741
  transform: ${({ $labelX, $labelY }) => `translate(-50%, -50%) translate(${$labelX}px, ${$labelY}px)`};
16742
+ z-index: 1;
16740
16743
  width: 75px;
16741
16744
  padding: 2px 6px;
16742
16745
  background-color: ${({ theme }) => theme.colors.primary};
package/lib/snippets.js CHANGED
@@ -1,12 +1,12 @@
1
- import { B as Button, Z as Text, L as NotificationNote } from './index-cd2972ab.js';
2
- export { ah as AddButton, am as AddNode, an as BaseNode, aj as CopyText, ao as EdgedNode, af as Flow, ap as FrameNode, aq as HeaderNode, av as LabeledEdge, ar as MapItemNode, as as NoDataNode, ak as PodContainer, at as ScrollNode, au as SkeletonNode, al as SourceContainer, ac as nodeConfig } from './index-cd2972ab.js';
1
+ import { B as Button, Z as Text, L as NotificationNote } from './index-ad94963f.js';
2
+ export { ah as AddButton, am as AddNode, an as BaseNode, aj as CopyText, ao as EdgedNode, af as Flow, ap as FrameNode, aq as HeaderNode, av as LabeledEdge, ar as MapItemNode, as as NoDataNode, ak as PodContainer, at as ScrollNode, au as SkeletonNode, al as SourceContainer, ac as nodeConfig } from './index-ad94963f.js';
3
3
  import React from 'react';
4
4
  import { T as Theme, B as BUTTON_TEXTS, b as DISPLAY_TITLES } from './index-cccea570.js';
5
5
  import { E as EditIcon } from './index-b08f2a91.js';
6
6
  import { StatusType } from './types.js';
7
7
  import 'styled-components';
8
8
  import { I as InfoIcon } from './index-ad99c5fe.js';
9
- import './index-ff710eae.js';
9
+ import './index-03c3e255.js';
10
10
  import './index-ec555530.js';
11
11
  import 'react-dom';
12
12
  import './useTransition-d4c82b6e.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@odigos/ui-kit",
3
- "version": "0.0.55",
3
+ "version": "0.0.56",
4
4
  "author": "Odigos",
5
5
  "repository": {
6
6
  "type": "git",
@@ -81,7 +81,7 @@
81
81
  "react": "^19.1.0",
82
82
  "react-dom": "^19.1.0",
83
83
  "react-error-boundary": "^6.0.0",
84
- "styled-components": "6.1.19",
84
+ "styled-components": "^6.1.19",
85
85
  "zustand": "^5.0.6"
86
86
  },
87
87
  "dependencies": {
@@ -92,7 +92,7 @@
92
92
  "react": "^19.1.0",
93
93
  "react-dom": "^19.1.0",
94
94
  "react-error-boundary": "^6.0.0",
95
- "styled-components": "6.1.19",
95
+ "styled-components": "^6.1.19",
96
96
  "zustand": "^5.0.6"
97
97
  },
98
98
  "devDependencies": {
@@ -108,15 +108,15 @@
108
108
  "@storybook/addon-docs": "^9.0.16",
109
109
  "@storybook/addon-webpack5-compiler-babel": "^3.0.6",
110
110
  "@storybook/react-webpack5": "9.0.16",
111
- "@types/node": "^24.0.13",
111
+ "@types/node": "^24.0.14",
112
112
  "@types/react": "^19.1.8",
113
113
  "@types/react-dom": "^19.1.6",
114
114
  "babel-loader": "^10.0.0",
115
115
  "babel-plugin-styled-components": "^2.1.4",
116
116
  "eslint": "^9.31.0",
117
- "eslint-config-next": "^15.3.5",
117
+ "eslint-config-next": "^15.4.1",
118
118
  "eslint-plugin-storybook": "9.0.16",
119
- "next": "^15.3.5",
119
+ "next": "^15.4.1",
120
120
  "postcss": "^8.5.6",
121
121
  "rollup": "^3.29.4",
122
122
  "rollup-plugin-postcss": "^4.0.2",