@odigos/ui-kit 0.0.77 → 0.0.78

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,13 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.0.78](https://github.com/odigos-io/ui-kit/compare/ui-kit-v0.0.77...ui-kit-v0.0.78) (2025-08-06)
4
+
5
+
6
+ ### Features
7
+
8
+ * display loaders when namespaces are fetching ([#302](https://github.com/odigos-io/ui-kit/issues/302)) ([9916914](https://github.com/odigos-io/ui-kit/commit/99169143ae04bb479c7837b1f3b40c0af37146c4))
9
+ * show destination boolean in data flow nodes ([#300](https://github.com/odigos-io/ui-kit/issues/300)) ([7bb56be](https://github.com/odigos-io/ui-kit/commit/7bb56bedad94985e1333a980b66bead1e8321e51))
10
+
3
11
  ## [0.0.77](https://github.com/odigos-io/ui-kit/compare/ui-kit-v0.0.76...ui-kit-v0.0.77) (2025-08-06)
4
12
 
5
13
 
package/lib/components.js CHANGED
@@ -1,6 +1,6 @@
1
- import { B as Button } from './index-a1b59a38.js';
2
- export { A as AutocompleteInput, a as Badge, a6 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, a5 as FlexColumn, a4 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, a9 as ModalBody, z as MonitorsCheckboxes, G as MonitorsIcons, N as NavigationButtons, J as NoDataFound, L as NotificationNote, a8 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, Y as TabList, aa as TableContainer, ab as TableTitleWrap, ac as TableWrap, Z as Tag, _ as Text, $ as TextArea, a0 as Toggle, T as ToggleCodeComponent, a1 as Tooltip, a2 as TraceLoader, a7 as VerticalScroll, a3 as WarningModal } from './index-a1b59a38.js';
3
- export { C as CancelWarning, D as DeleteWarning } from './index-45ee08be.js';
1
+ import { B as Button } from './index-0a99fd0b.js';
2
+ export { A as AutocompleteInput, a as Badge, a6 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, a5 as FlexColumn, a4 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, a9 as ModalBody, z as MonitorsCheckboxes, G as MonitorsIcons, N as NavigationButtons, J as NoDataFound, L as NotificationNote, a8 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, Y as TabList, aa as TableContainer, ab as TableTitleWrap, ac as TableWrap, Z as Tag, _ as Text, $ as TextArea, a0 as Toggle, T as ToggleCodeComponent, a1 as Tooltip, a2 as TraceLoader, a7 as VerticalScroll, a3 as WarningModal } from './index-0a99fd0b.js';
3
+ export { C as CancelWarning, D as DeleteWarning } from './index-3a26952d.js';
4
4
  import React, { createContext, Component, createElement } from 'react';
5
5
  import { T as Theme } from './index-fdf3a268.js';
6
6
  import 'styled-components';
package/lib/containers.js CHANGED
@@ -2,14 +2,14 @@ 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, e as getProgrammingLanguageIcon, I as INSTRUMENTATION_RULE_OPTIONS, $ as useSelectedStore, j as ImageErrorIcon, a0 as useDarkMode } from './index-fdf3a268.js';
4
4
  import { ActionType, ActionKeyTypes, InputTypes, FieldTypes, EntityTypes, StatusType, Crud, OtherStatus, NodeTypes, EdgeTypes, AddNodeTypes, SignalType, HeadersCollectionKeyTypes, CustomInstrumentationsKeyTypes, CodeAttributesKeyTypes, PayloadCollectionKeyTypes, InstrumentationRuleType, K8sResourceKind, ProgrammingLanguages, MountMethod, AgentEnvVarsInjectionMethod, Profile, InstallationMethod } 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, _ 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, a5 as FlexColumn, M as Modal, N as NavigationButtons, a9 as ModalBody, L as NotificationNote, A as AutocompleteInput, i as Divider, W as Status, a4 as FlexRow, a1 as Tooltip, s as IconWrapped, G as MonitorsIcons, aa as TableContainer, ab as TableTitleWrap, r as IconTitleBadge, ac as TableWrap, y as InteractiveTable, a6 as CenterThis, J as NoDataFound, a2 as TraceLoader, a as Badge, E as ExtendArrow, a7 as VerticalScroll, U as SelectionButton, B as Button, n as Dropdown, ad as nodeConfig, ae as useNodesState, af as useEdgesState, ag as Flow, ah as applyNodeChanges, P as Popup, a0 as Toggle, I as IconButton, ai as AddButton, F as FadeLoader, g as DataTab, X as Stepper, d as DataCardFields, Z as Tag, aj as MarkerType, t as IconsNav, ak as CopyText, h as DescribeRow, al as PodContainer, am as SourceContainer, q as IconGroup, O as PopupForm } from './index-a1b59a38.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, _ 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, a5 as FlexColumn, M as Modal, N as NavigationButtons, a9 as ModalBody, L as NotificationNote, A as AutocompleteInput, i as Divider, W as Status, a4 as FlexRow, a1 as Tooltip, s as IconWrapped, G as MonitorsIcons, aa as TableContainer, ab as TableTitleWrap, r as IconTitleBadge, ac as TableWrap, y as InteractiveTable, a6 as CenterThis, J as NoDataFound, a2 as TraceLoader, a as Badge, E as ExtendArrow, a7 as VerticalScroll, U as SelectionButton, B as Button, n as Dropdown, ad as nodeConfig, ae as useNodesState, af as useEdgesState, ag as Flow, ah as applyNodeChanges, P as Popup, a0 as Toggle, I as IconButton, ai as AddButton, F as FadeLoader, g as DataTab, X as Stepper, d as DataCardFields, Z as Tag, aj as MarkerType, t as IconsNav, ak as CopyText, h as DescribeRow, al as PodContainer, am as SourceContainer, q as IconGroup, O as PopupForm } from './index-0a99fd0b.js';
6
6
  import { i as isEmpty, s as safeJsonParse, d as deepClone } from './index-5e5f7bda.js';
7
7
  import { C as CheckCircledIcon, O as OdigosLogo } from './index-1d5c06a0.js';
8
8
  import { C as CrossCircledIcon, O as OdigosLogoText, a as OverviewIcon, F as FilterIcon, D as DataStreamsIcon, A as ArrowIcon, R as RefreshLeftArrowIcon, N as NotificationIcon, U as UserIcon, S as SlackLogo, K as KeyIcon, T as TerminalIcon, G as GearIcon } from './index-b5b322ad.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-ba7b6d8a.js';
11
11
  import { E as EditIcon, T as TrashIcon, S as SearchIcon, h as CheckIcon, P as PlusIcon, a as CopyIcon } from './index-ba84d272.js';
12
- import { D as DeleteWarning, C as CancelWarning } from './index-45ee08be.js';
12
+ import { D as DeleteWarning, C as CancelWarning } from './index-3a26952d.js';
13
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-0d93b2b4.js';
14
14
  import { f as filterActions, l as getEntityLabel, k as getEntityIcon, v as sleep, n as getPlatformIcon, o as getPlatformLabel, g as formatBytes, i as getContainersIcons, p as getValueForRange, j as getDestinationIcon, e as filterSourcesByStream, d as filterSources, b as filterDestinationsByStream, a as filterDestinations, u as mapDestinationFieldsForDisplay, c as compareCondition, r as getYamlFieldsForDestination, m as getMetricForEntity, q as getWorkloadId, s as hasUnhealthyInstances, h as getContainersInstrumentedCount, t as isOverTime } from './index-c51fc6a4.js';
15
15
  import { m as mapExportedSignals } from './index-6a6bea6e.js';
@@ -1707,6 +1707,7 @@ const mapToNodeData$1 = (entity) => {
1707
1707
  icon,
1708
1708
  iconSrc,
1709
1709
  monitors: mapExportedSignals(entity.exportedSignals),
1710
+ isActive: !entity.disabled,
1710
1711
  raw: entity,
1711
1712
  };
1712
1713
  };
@@ -4043,7 +4044,7 @@ const NotSourcesWrapper = styled(CenterThis) `
4043
4044
  const SelectionCount = styled(Text) `
4044
4045
  width: 18px;
4045
4046
  `;
4046
- const SourceList = ({ isModal = false, withInstances = true, filteredNamespacesAndSources, selectedNamespace, onSelectNamespace, selectedSources, onSelectSource, selectedFutureApps, onSelectFutureApps, }) => {
4047
+ const SourceList = ({ isModal = false, withInstances = true, isFetchingEachNamespace, fetchedNamespaces, filteredNamespacesAndSources, selectedNamespace, onSelectNamespace, selectedSources, onSelectSource, selectedFutureApps, onSelectFutureApps, }) => {
4047
4048
  const theme = Theme.useTheme();
4048
4049
  const { namespacesLoading } = useEntityStore();
4049
4050
  const matrix = Object.entries(filteredNamespacesAndSources || {});
@@ -4051,39 +4052,41 @@ const SourceList = ({ isModal = false, withInstances = true, filteredNamespacesA
4051
4052
  return (React.createElement(CenterThis, null, namespacesLoading ? (React.createElement(FadeLoader, null)) : (React.createElement(NoDataFound, { title: DISPLAY_TITLES.NO_SOURCES, subTitle: onSelectNamespace ? DISPLAY_TITLES.PLEASE_MAKE_SURE_UNIGNORED_NAMESPACES : DISPLAY_TITLES.PLEASE_ADD_SOURCE }))));
4052
4053
  }
4053
4054
  const NamespaceIcon = getEntityIcon(EntityTypes.Namespace);
4054
- return (React.createElement(Container$4, { "$isModal": isModal }, matrix.map(([namespace, sources]) => {
4055
- const sourcesForNamespace = selectedSources?.[namespace] || [];
4056
- const futureAppsForNamespace = selectedFutureApps?.[namespace]?.selected || false;
4057
- const onlySelectedSources = sourcesForNamespace.filter(({ selected }) => selected);
4058
- const isNamespaceLoaded = sourcesForNamespace.length > 0;
4059
- const isNamespaceSelected = selectedNamespace === namespace;
4060
- const isNamespaceAllSourcesSelected = onlySelectedSources.length > 0 && onlySelectedSources.length === sources.length;
4061
- const isNamespacePartiallySourcesSelected = onlySelectedSources.length > 0 && onlySelectedSources.length !== sources.length;
4062
- const hasSources = sources.length > 0;
4063
- const onlyOneSource = sources.length === 1;
4064
- if (!onSelectNamespace && !hasSources)
4065
- return null;
4066
- return (React.createElement(Group, { key: `namespace-${namespace}`, "data-id": `namespace-${namespace}`, "$selected": isNamespaceAllSourcesSelected, "$isOpen": isNamespaceSelected },
4067
- React.createElement(NamespaceItem, { "$selected": isNamespaceAllSourcesSelected, "$withClick": !!onSelectNamespace, onClick: () => onSelectNamespace?.(namespace) },
4068
- React.createElement(FlexRow, { "$gap": 12 },
4069
- onSelectNamespace && React.createElement(Checkbox, { partiallyChecked: isNamespacePartiallySourcesSelected, value: isNamespaceAllSourcesSelected, onChange: (bool) => onSelectNamespace(namespace, bool) }),
4070
- React.createElement(NamespaceIcon, null),
4071
- React.createElement(Text, null, namespace)),
4072
- React.createElement(FlexRow, { "$gap": 12 },
4073
- onSelectFutureApps && (React.createElement(React.Fragment, null,
4074
- React.createElement(Toggle, { title: DISPLAY_TITLES.FUTURE_APPS_TITLE, tooltip: DISPLAY_TITLES.FUTURE_APPS_DESCRIPTION, initialValue: futureAppsForNamespace, onChange: (bool) => onSelectFutureApps(bool, namespace), flipHorizontally: true }),
4075
- React.createElement(Divider, { orientation: 'vertical', length: '12px', margin: '0' }))),
4076
- React.createElement(SelectionCount, { size: 10, color: theme.text.grey }, isNamespaceLoaded ? `${onlySelectedSources.length}/${sources.length}` : null),
4077
- onSelectNamespace && React.createElement(ExtendArrow, { extend: isNamespaceSelected }))),
4078
- (isNamespaceSelected || !onSelectNamespace) &&
4079
- (hasSources ? (React.createElement(RelativeWrapper, { "$addPadding": !onSelectSource },
4080
- React.createElement(AbsoluteWrapper, null,
4081
- React.createElement(Divider, { orientation: 'vertical', length: `${onlyOneSource ? 24 : sources.length * 34}px` })),
4082
- sources.map((source) => {
4083
- const isSourceSelected = onlySelectedSources.some(({ name }) => name === source.name);
4084
- return React.createElement(SourceRow, { key: `source-${source.name}`, withInstances: withInstances, source: source, namespace: namespace, isSelected: isSourceSelected, onSelect: onSelectSource });
4085
- }))) : (React.createElement(NotSourcesWrapper, { "$addPadding": !onSelectSource }, namespacesLoading ? React.createElement(FadeLoader, null) : React.createElement(NoDataFound, { title: DISPLAY_TITLES.NO_SOURCES_NAMESPACE, subTitle: DISPLAY_TITLES.TRY_SEARCH_OR_OTHER_NAMESPACE }))))));
4086
- })));
4055
+ return (React.createElement(Container$4, { "$isModal": isModal },
4056
+ matrix.map(([namespace, sources]) => {
4057
+ const sourcesForNamespace = selectedSources?.[namespace] || [];
4058
+ const futureAppsForNamespace = selectedFutureApps?.[namespace]?.selected || false;
4059
+ const onlySelectedSources = sourcesForNamespace.filter(({ selected }) => selected);
4060
+ const isNamespaceLoaded = sourcesForNamespace.length > 0;
4061
+ const isNamespaceSelected = selectedNamespace === namespace;
4062
+ const isNamespaceAllSourcesSelected = onlySelectedSources.length > 0 && onlySelectedSources.length === sources.length;
4063
+ const isNamespacePartiallySourcesSelected = onlySelectedSources.length > 0 && onlySelectedSources.length !== sources.length;
4064
+ const hasSources = sources.length > 0;
4065
+ const onlyOneSource = sources.length === 1;
4066
+ if (!onSelectNamespace && !hasSources)
4067
+ return null;
4068
+ return (React.createElement(Group, { key: `namespace-${namespace}`, "data-id": `namespace-${namespace}`, "$selected": isNamespaceAllSourcesSelected, "$isOpen": isNamespaceSelected },
4069
+ React.createElement(NamespaceItem, { "$selected": isNamespaceAllSourcesSelected, "$withClick": !!onSelectNamespace, onClick: () => onSelectNamespace?.(namespace) },
4070
+ React.createElement(FlexRow, { "$gap": 12 },
4071
+ onSelectNamespace && React.createElement(Checkbox, { partiallyChecked: isNamespacePartiallySourcesSelected, value: isNamespaceAllSourcesSelected, onChange: (bool) => onSelectNamespace(namespace, bool) }),
4072
+ React.createElement(NamespaceIcon, null),
4073
+ React.createElement(Text, null, namespace)),
4074
+ React.createElement(FlexRow, { "$gap": 12 },
4075
+ onSelectFutureApps && (React.createElement(React.Fragment, null,
4076
+ React.createElement(Toggle, { title: DISPLAY_TITLES.FUTURE_APPS_TITLE, tooltip: DISPLAY_TITLES.FUTURE_APPS_DESCRIPTION, initialValue: futureAppsForNamespace, onChange: (bool) => onSelectFutureApps(bool, namespace), flipHorizontally: true }),
4077
+ React.createElement(Divider, { orientation: 'vertical', length: '12px', margin: '0' }))),
4078
+ isFetchingEachNamespace && !fetchedNamespaces?.includes(namespace) ? (React.createElement(FadeLoader, { scale: 0.8 })) : (React.createElement(SelectionCount, { size: 10, color: theme.text.grey }, isNamespaceLoaded ? `${onlySelectedSources.length}/${sources.length}` : null)),
4079
+ onSelectNamespace && React.createElement(ExtendArrow, { extend: isNamespaceSelected }))),
4080
+ (isNamespaceSelected || !onSelectNamespace) &&
4081
+ (hasSources ? (React.createElement(RelativeWrapper, { "$addPadding": !onSelectSource },
4082
+ React.createElement(AbsoluteWrapper, null,
4083
+ React.createElement(Divider, { orientation: 'vertical', length: `${onlyOneSource ? 24 : sources.length * 34}px` })),
4084
+ sources.map((source) => {
4085
+ const isSourceSelected = onlySelectedSources.some(({ name }) => name === source.name);
4086
+ return React.createElement(SourceRow, { key: `source-${source.name}`, withInstances: withInstances, source: source, namespace: namespace, isSelected: isSourceSelected, onSelect: onSelectSource });
4087
+ }))) : (React.createElement(NotSourcesWrapper, { "$addPadding": !onSelectSource }, namespacesLoading || (isFetchingEachNamespace && !fetchedNamespaces?.includes(namespace)) ? (React.createElement(FadeLoader, null)) : (React.createElement(NoDataFound, { title: DISPLAY_TITLES.NO_SOURCES_NAMESPACE, subTitle: DISPLAY_TITLES.TRY_SEARCH_OR_OTHER_NAMESPACE })))))));
4088
+ }),
4089
+ isFetchingEachNamespace && React.createElement(FadeLoader, { scale: 1.2 })));
4087
4090
  };
4088
4091
  const SourceRow = ({ withInstances, source, namespace, isSelected, onSelect, }) => {
4089
4092
  return (React.createElement(SourceItem, { "data-id": `source-${source.name}`, "$selected": isSelected, "$withClick": !!onSelect, onClick: () => onSelect?.(source) },
@@ -6,6 +6,8 @@ interface UseSourceFormDataParams {
6
6
  fetchSingleNamespace: FetchSingleNamespace;
7
7
  }
8
8
  export interface UseSourceSelectionFormData {
9
+ isFetchingEachNamespace: boolean;
10
+ fetchedNamespaces: string[];
9
11
  availableSources: AvailableSourcesByNamespace;
10
12
  filteredNamespacesAndSources: AvailableSourcesByNamespace;
11
13
  getApiSourcesPayload: () => SourceSelectionFormData;
package/lib/hooks.js CHANGED
@@ -472,6 +472,8 @@ const useSourceSelectionFormData = (params) => {
472
472
  const { configuredSources, configuredFutureApps, availableSources: availableSourcesFromStore } = useSetupStore();
473
473
  // Keeps intial values fetched from API, so we can later filter the user-specific-selections, therebey minimizing the amount of data sent to the API on "persist sources".
474
474
  const [availableSources, setRecordedInitialSources] = useState(availableSourcesFromStore);
475
+ const [isFetchingEachNamespace, setIsFetchingEachNamespace] = useState(false);
476
+ const [fetchedNamespaces, setFetchedNamespaces] = useState([]);
475
477
  const [selectedNamespace, setSelectedNamespace] = useState('');
476
478
  const [selectedFutureApps, setSelectedFutureApps] = useState(configuredFutureApps);
477
479
  const [selectedSources, setSelectedSources] = useState(mergeAvailableAndSelectedSources(availableSourcesFromStore, configuredSources, selectedStreamName));
@@ -481,6 +483,7 @@ const useSourceSelectionFormData = (params) => {
481
483
  const { name, sources = [] } = data?.computePlatform?.k8sActualNamespace || {};
482
484
  if (!name)
483
485
  return;
486
+ setFetchedNamespaces((prev) => [...prev, name]);
484
487
  setRecordedInitialSources((prev) => ({
485
488
  ...prev,
486
489
  [name]: sources.map((s) => mapToAvailableSource(s, selectedStreamName)),
@@ -510,8 +513,10 @@ const useSourceSelectionFormData = (params) => {
510
513
  return payload;
511
514
  });
512
515
  (async () => {
516
+ setIsFetchingEachNamespace(true);
513
517
  for await (const ns of namespaces)
514
518
  await fetchAndSetThisNamespace(ns);
519
+ setIsFetchingEachNamespace(false);
515
520
  })();
516
521
  }
517
522
  }, [namespaces, selectedStreamName]);
@@ -591,6 +596,8 @@ const useSourceSelectionFormData = (params) => {
591
596
  return payload;
592
597
  };
593
598
  return {
599
+ isFetchingEachNamespace,
600
+ fetchedNamespaces,
594
601
  availableSources,
595
602
  filteredNamespacesAndSources,
596
603
  getApiSourcesPayload,
@@ -16522,7 +16522,7 @@ const BaseNode = memo(({ id: nodeId, data }) => {
16522
16522
  const isPending = isThisPending({ entityType, entityId });
16523
16523
  const renderActions = () => {
16524
16524
  const StatusIcon = hasActiveBoolean ? getStatusIcon(isActive ? StatusType.Success : StatusType.Info, theme) : status && getStatusIcon(status, theme);
16525
- const statusTooltipText = hasActiveBoolean ? `${entityType} is ${isActive ? 'active' : 'inactive'}` : undefined;
16525
+ const statusTooltipText = hasActiveBoolean ? `${entityType} is ${isActive ? 'enabled' : 'disabled'}` : undefined;
16526
16526
  const sourceIsInstrumenting = isSource && (!raw.conditions?.length || raw.conditions?.some(({ status }) => status === 'loading'));
16527
16527
  // TODO: handle action/icon to apply instrumentation-rules for individual sources (@Notion GEN-1650)
16528
16528
  return isPending ? (React.createElement(FadeLoader, null)) : StatusIcon ? (React.createElement(Tooltip, { text: statusTooltipText },
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { a3 as WarningModal } from './index-a1b59a38.js';
2
+ import { a3 as WarningModal } from './index-0a99fd0b.js';
3
3
  import { StatusType, EntityTypes } from './types.js';
4
4
  import './index-fdf3a268.js';
5
5
  import 'styled-components';
package/lib/snippets.js CHANGED
@@ -1,5 +1,5 @@
1
- import { B as Button, _ as Text, L as NotificationNote } from './index-a1b59a38.js';
2
- export { ai as AddButton, an as AddNode, ao as BaseNode, ak as CopyText, ap as EdgedNode, ag as Flow, aq as FrameNode, ar as HeaderNode, aw as LabeledEdge, as as MapItemNode, at as NoDataNode, al as PodContainer, au as ScrollNode, av as SkeletonNode, am as SourceContainer, ad as nodeConfig } from './index-a1b59a38.js';
1
+ import { B as Button, _ as Text, L as NotificationNote } from './index-0a99fd0b.js';
2
+ export { ai as AddButton, an as AddNode, ao as BaseNode, ak as CopyText, ap as EdgedNode, ag as Flow, aq as FrameNode, ar as HeaderNode, aw as LabeledEdge, as as MapItemNode, at as NoDataNode, al as PodContainer, au as ScrollNode, av as SkeletonNode, am as SourceContainer, ad as nodeConfig } from './index-0a99fd0b.js';
3
3
  import React from 'react';
4
4
  import { T as Theme, B as BUTTON_TEXTS, b as DISPLAY_TITLES } from './index-fdf3a268.js';
5
5
  import { E as EditIcon } from './index-ba84d272.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@odigos/ui-kit",
3
- "version": "0.0.77",
3
+ "version": "0.0.78",
4
4
  "author": "Odigos",
5
5
  "repository": {
6
6
  "type": "git",