@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 +9 -0
- package/lib/components.js +4 -4
- package/lib/containers.js +5 -5
- package/lib/functions/index.d.ts +1 -0
- package/lib/functions/is-string-a-boolean/index.d.ts +1 -0
- package/lib/functions.js +1 -1
- package/lib/{index-ff710eae.js → index-03c3e255.js} +9 -2
- package/lib/{index-d0c9f285.js → index-1de4c5cd.js} +1 -1
- package/lib/{index-cd2972ab.js → index-ad94963f.js} +11 -8
- package/lib/snippets.js +3 -3
- package/package.json +6 -6
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-
|
|
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-
|
|
3
|
-
export { C as CancelWarning, D as DeleteWarning } from './index-
|
|
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-
|
|
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-
|
|
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-
|
|
13
|
-
import { g as getConditionsBooleans, m as mapConditions, b as getStatusIcon,
|
|
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
|
]
|
package/lib/functions/index.d.ts
CHANGED
|
@@ -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,
|
|
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
|
-
|
|
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,
|
|
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 };
|
|
@@ -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,
|
|
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:
|
|
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,
|
|
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,
|
|
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-
|
|
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-
|
|
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-
|
|
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.
|
|
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.
|
|
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.
|
|
117
|
+
"eslint-config-next": "^15.4.1",
|
|
118
118
|
"eslint-plugin-storybook": "9.0.16",
|
|
119
|
-
"next": "^15.
|
|
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",
|