@odigos/ui-kit 0.0.78 → 0.0.80

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,27 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.0.80](https://github.com/odigos-io/ui-kit/compare/ui-kit-v0.0.79...ui-kit-v0.0.80) (2025-08-10)
4
+
5
+
6
+ ### Features
7
+
8
+ * align no-data to center ([#315](https://github.com/odigos-io/ui-kit/issues/315)) ([158e3f8](https://github.com/odigos-io/ui-kit/commit/158e3f831a1edc1d8ca6547c1901cf639db0314c))
9
+ * enhance tooltip rendering to support strong text formatting ([#305](https://github.com/odigos-io/ui-kit/issues/305)) ([f6e0e20](https://github.com/odigos-io/ui-kit/commit/f6e0e20120dbdaef3ce98d1471e0c18d2a8fe273))
10
+ * **search:** integrate search results into action, destination, instrumentation rule, and source tables ([#314](https://github.com/odigos-io/ui-kit/issues/314)) ([c3d6f8c](https://github.com/odigos-io/ui-kit/commit/c3d6f8c93afcc74dd87aef31ca533799325de9e7))
11
+
12
+
13
+ ### Bug Fixes
14
+
15
+ * **search:** state management for search input and results display ([#308](https://github.com/odigos-io/ui-kit/issues/308)) ([68a9006](https://github.com/odigos-io/ui-kit/commit/68a9006a9c9346904f071bff9f54167f22176d0a))
16
+ * **source-drawer:** prevent fetching source if already fetched and reset state on delete/update ([#307](https://github.com/odigos-io/ui-kit/issues/307)) ([094d791](https://github.com/odigos-io/ui-kit/commit/094d79170a8a6b717e7837ab20fb306655c8e921))
17
+
18
+ ## [0.0.79](https://github.com/odigos-io/ui-kit/compare/ui-kit-v0.0.78...ui-kit-v0.0.79) (2025-08-06)
19
+
20
+
21
+ ### Bug Fixes
22
+
23
+ * general fixes ([#303](https://github.com/odigos-io/ui-kit/issues/303)) ([abd1e7e](https://github.com/odigos-io/ui-kit/commit/abd1e7e8e64f97536c5d99593a1c77f19e22a4ce))
24
+
3
25
  ## [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
26
 
5
27
 
@@ -11,12 +11,14 @@ export declare const FlexColumn: import("styled-components/dist/types").IStyledC
11
11
  $justifyContent?: CSSProperties["justifyContent"];
12
12
  $wrap?: CSSProperties["flexWrap"];
13
13
  }>> & string;
14
- export declare const CenterThis: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "$gap" | "$alignItems" | "$justifyContent" | "$wrap"> & {
14
+ export declare const CenterThis: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "$gap" | "$alignItems" | "$justifyContent" | "$wrap"> & {
15
15
  $gap?: number;
16
16
  $alignItems?: CSSProperties["alignItems"];
17
17
  $justifyContent?: CSSProperties["justifyContent"];
18
18
  $wrap?: CSSProperties["flexWrap"];
19
- }, never>> & string;
19
+ }, {
20
+ $height?: CSSProperties["height"];
21
+ }>> & string;
20
22
  export declare const VerticalScroll: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
21
23
  export declare const Overlay: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
22
24
  export declare const ModalBody: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {
@@ -1,4 +1,5 @@
1
1
  import { type DetailedHTMLProps, type FC, type HTMLAttributes, type ReactNode } from 'react';
2
+ import { DefaultTheme } from 'styled-components';
2
3
  interface TextProps extends DetailedHTMLProps<HTMLAttributes<HTMLDivElement>, HTMLDivElement> {
3
4
  children?: ReactNode;
4
5
  color?: string;
@@ -9,5 +10,15 @@ interface TextProps extends DetailedHTMLProps<HTMLAttributes<HTMLDivElement>, HT
9
10
  opacity?: number;
10
11
  decoration?: string;
11
12
  }
13
+ declare const getLinksFromText: (text: string) => {
14
+ original: string;
15
+ href: string;
16
+ label: string;
17
+ }[] | undefined;
18
+ declare const getStrongsFromText: (text: string) => {
19
+ original: string;
20
+ label: string;
21
+ }[] | undefined;
22
+ declare const renderText: (text: string, theme: DefaultTheme) => ReactNode;
12
23
  declare const Text: FC<TextProps>;
13
- export { Text, type TextProps };
24
+ export { Text, type TextProps, getLinksFromText, getStrongsFromText, renderText };
package/lib/components.js CHANGED
@@ -1,16 +1,16 @@
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';
1
+ import { B as Button } from './index-192794e8.js';
2
+ export { A as AutocompleteInput, a as Badge, a9 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, a8 as FlexColumn, a7 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, ac as ModalBody, z as MonitorsCheckboxes, G as MonitorsIcons, N as NavigationButtons, J as NoDataFound, L as NotificationNote, ab 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, ad as TableContainer, ae as TableTitleWrap, af as TableWrap, Z as Tag, _ as Text, a2 as TextArea, a3 as Toggle, T as ToggleCodeComponent, a4 as Tooltip, a5 as TraceLoader, aa as VerticalScroll, a6 as WarningModal, $ as getLinksFromText, a0 as getStrongsFromText, a1 as renderText } from './index-192794e8.js';
3
+ export { C as CancelWarning, D as DeleteWarning } from './index-e4e75973.js';
4
4
  import React, { createContext, Component, createElement } from 'react';
5
- import { T as Theme } from './index-fdf3a268.js';
5
+ import { T as Theme } from './index-90ccd949.js';
6
6
  import 'styled-components';
7
- import './index-ba84d272.js';
7
+ import './index-19b8f8bc.js';
8
8
  import './types.js';
9
9
  import './index-5e5f7bda.js';
10
- import './index-0d93b2b4.js';
11
- import './index-1d5c06a0.js';
10
+ import './index-a067d6e9.js';
11
+ import './index-6034549d.js';
12
12
  import 'react-dom';
13
- import './useTransition-ba7b6d8a.js';
13
+ import './useTransition-807be8bc.js';
14
14
 
15
15
  const ErrorBoundaryContext = createContext(null);
16
16
 
@@ -101,6 +101,10 @@ export declare const DISPLAY_TITLES: {
101
101
  OVERIDDEN: string;
102
102
  OVERRIDE_RUNTIME_DETAILS: string;
103
103
  OVERRIDE_RUNTIME_WARNING: string;
104
+ ACTIVE: string;
105
+ INACTIVE: string;
106
+ ENABLED: string;
107
+ DISABLED: string;
104
108
  };
105
109
  export declare const BUTTON_TEXTS: {
106
110
  ADD: string;
package/lib/constants.js CHANGED
@@ -1,4 +1,4 @@
1
- export { A as ACTION_OPTIONS, B as BUTTON_TEXTS, a as DEFAULT_DATA_STREAM_NAME, D as DISPLAY_LANGUAGES, b as DISPLAY_TITLES, F as FORM_ALERTS, I as INSTRUMENTATION_RULE_OPTIONS, L as LANGUAGE_OPTIONS, M as MONITORS_OPTIONS, S as STORAGE_KEYS } from './index-fdf3a268.js';
1
+ export { A as ACTION_OPTIONS, B as BUTTON_TEXTS, a as DEFAULT_DATA_STREAM_NAME, D as DISPLAY_LANGUAGES, b as DISPLAY_TITLES, F as FORM_ALERTS, I as INSTRUMENTATION_RULE_OPTIONS, L as LANGUAGE_OPTIONS, M as MONITORS_OPTIONS, S as STORAGE_KEYS } from './index-90ccd949.js';
2
2
  export { D as DESTINATION_CATEGORIES } from './index-1cb4f9e2.js';
3
3
  import 'react';
4
4
  import './types.js';
@@ -3,6 +3,7 @@ import { EntityTypes } from '@/types';
3
3
  import { DataStreamSelectProps } from './data-stream-select';
4
4
  interface DataFlowActionsMenuProps extends DataStreamSelectProps {
5
5
  addEntity?: EntityTypes;
6
+ preventSearchPopup?: boolean;
6
7
  }
7
8
  declare const DataFlowActionsMenu: React.FC<DataFlowActionsMenuProps>;
8
9
  export { DataFlowActionsMenu, type DataFlowActionsMenuProps };
@@ -1,4 +1,6 @@
1
1
  import React from 'react';
2
- type SearchProps = object;
2
+ interface SearchProps {
3
+ preventPopup?: boolean;
4
+ }
3
5
  export declare const Search: React.FC<SearchProps>;
4
6
  export {};
@@ -16,7 +16,7 @@ export declare const buildSearchResults: ({ instrumentationRules, sources, actio
16
16
  entities: InstrumentationRule[] | Source[] | Action[] | Destination[];
17
17
  }[];
18
18
  searchResults: {
19
- entities: Source[] | Destination[] | Action[] | InstrumentationRule[];
19
+ entities: Action[] | Destination[] | Source[] | InstrumentationRule[];
20
20
  category: Category;
21
21
  label: string;
22
22
  count: number;
@@ -1,6 +1,5 @@
1
1
  import { type FC } from 'react';
2
2
  interface Props {
3
- searchText: string;
4
3
  onClose: () => void;
5
4
  }
6
5
  export declare const SearchResults: FC<Props>;
package/lib/containers.js CHANGED
@@ -1,21 +1,21 @@
1
1
  import React, { useState, useEffect, forwardRef, useRef, useImperativeHandle, useMemo, Fragment, useCallback, Children } from 'react';
2
2
  import styled, { css } from 'styled-components';
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';
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-90ccd949.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-0a99fd0b.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, a2 as TextArea, k as Drawer, c as ConditionDetails, D as DataCard, a8 as FlexColumn, M as Modal, N as NavigationButtons, ac as ModalBody, L as NotificationNote, A as AutocompleteInput, i as Divider, W as Status, a7 as FlexRow, a4 as Tooltip, s as IconWrapped, G as MonitorsIcons, ad as TableContainer, ae as TableTitleWrap, r as IconTitleBadge, af as TableWrap, y as InteractiveTable, a9 as CenterThis, J as NoDataFound, a5 as TraceLoader, a as Badge, E as ExtendArrow, aa as VerticalScroll, U as SelectionButton, B as Button, n as Dropdown, ag as nodeConfig, ah as useNodesState, ai as useEdgesState, aj as Flow, ak as applyNodeChanges, P as Popup, a3 as Toggle, I as IconButton, al as AddButton, F as FadeLoader, g as DataTab, X as Stepper, d as DataCardFields, Z as Tag, am as MarkerType, t as IconsNav, an as CopyText, h as DescribeRow, ao as PodContainer, ap as SourceContainer, q as IconGroup, O as PopupForm } from './index-192794e8.js';
6
6
  import { i as isEmpty, s as safeJsonParse, d as deepClone } from './index-5e5f7bda.js';
7
- import { C as CheckCircledIcon, O as OdigosLogo } from './index-1d5c06a0.js';
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';
7
+ import { C as CheckCircledIcon, O as OdigosLogo } from './index-6034549d.js';
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-c8aab9c4.js';
9
9
  import { useActionFormData, useSessionStorage, useDataStreamFormData, useDestinationFormData, useClickNotification, useSourceFormData, useSourceSelectionFormData } from './hooks.js';
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
- 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-3a26952d.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-0d93b2b4.js';
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';
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-807be8bc.js';
11
+ import { E as EditIcon, T as TrashIcon, S as SearchIcon, h as CheckIcon, P as PlusIcon, a as CopyIcon } from './index-19b8f8bc.js';
12
+ import { D as DeleteWarning, C as CancelWarning } from './index-e4e75973.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-a067d6e9.js';
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-ba4f9a19.js';
15
15
  import { m as mapExportedSignals } from './index-6a6bea6e.js';
16
16
  import { NoteBackToSummary, EditButton } from './snippets.js';
17
17
  import { D as DESTINATION_CATEGORIES } from './index-1cb4f9e2.js';
18
- import { a6 as RulesIcon, a7 as SourcesIcon, a3 as ActionsIcon, a4 as DestinationsIcon } from './index-59aacfd1.js';
18
+ import { a6 as RulesIcon, a7 as SourcesIcon, a3 as ActionsIcon, a4 as DestinationsIcon } from './index-b9d7a992.js';
19
19
  import 'react-dom';
20
20
 
21
21
  const buildCard$3 = (action) => {
@@ -518,8 +518,8 @@ const ActionForm = ({ isUpdate, action, formData, formErrors, handleFormChange }
518
518
  isUpdate && (React.createElement("div", null,
519
519
  React.createElement(FieldTitle$2, null, "Status"),
520
520
  React.createElement(Segment, { options: [
521
- { icon: CheckCircledIcon, label: 'active', value: false, selectedBgColor: theme.text.success + Theme.opacity.hex['050'] },
522
- { icon: CrossCircledIcon, label: 'inactive', value: true, selectedBgColor: theme.text.error + Theme.opacity.hex['050'] },
521
+ { icon: CheckCircledIcon, label: DISPLAY_TITLES.ENABLED, value: false, selectedBgColor: theme.text.success + Theme.opacity.hex['050'] },
522
+ { icon: CrossCircledIcon, label: DISPLAY_TITLES.DISABLED, value: true, selectedBgColor: theme.text.error + Theme.opacity.hex['050'] },
523
523
  ], selected: formData.disabled, setSelected: (bool) => handleFormChange('disabled', bool) }))),
524
524
  !isUpdate && React.createElement(SectionTitle, { title: '', description: action.docsDescription, actionButton: React.createElement(DocsButton, { endpoint: action.docsEndpoint }) }),
525
525
  React.createElement(MonitorsCheckboxes, { title: 'Signals for Processing', required: true, allowedSignals: action.allowedSignals, selectedSignals: formData['signals'], setSelectedSignals: (value) => handleFormChange('signals', value), errorMessage: formErrors['signals'] }),
@@ -875,6 +875,64 @@ const ConditionsStatuses = ({ conditions, id }) => {
875
875
  })));
876
876
  };
877
877
 
878
+ const buildSearchResults = ({ instrumentationRules, sources, actions, destinations, searchText, selectedCategory }) => {
879
+ const filteredRules = !searchText ? instrumentationRules : instrumentationRules.filter((rule) => rule.type?.toLowerCase().includes(searchText) || rule.ruleName?.toLowerCase().includes(searchText));
880
+ const filteredSources = !searchText
881
+ ? sources
882
+ : sources.filter((source) => source.name?.toLowerCase().includes(searchText) || source.otelServiceName?.toLowerCase().includes(searchText) || source.namespace?.toLowerCase().includes(searchText));
883
+ const filteredActions = !searchText ? actions : actions.filter((action) => action.type?.toLowerCase().includes(searchText) || action.spec.actionName?.toLowerCase().includes(searchText));
884
+ const filteredDestinations = !searchText
885
+ ? destinations
886
+ : destinations.filter((destination) => destination.destinationType.displayName?.toLowerCase().includes(searchText) || destination.name?.toLowerCase().includes(searchText));
887
+ const categories = [
888
+ {
889
+ category: EntityTypes.Source,
890
+ label: 'Sources',
891
+ count: filteredSources.length,
892
+ entities: [],
893
+ },
894
+ {
895
+ category: EntityTypes.Action,
896
+ label: 'Actions',
897
+ count: filteredActions.length,
898
+ entities: [],
899
+ },
900
+ {
901
+ category: EntityTypes.Destination,
902
+ label: 'Destinations',
903
+ count: filteredDestinations.length,
904
+ entities: [],
905
+ },
906
+ {
907
+ category: EntityTypes.InstrumentationRule,
908
+ label: 'Instrumentation Rules',
909
+ count: filteredRules.length,
910
+ entities: [],
911
+ },
912
+ ];
913
+ categories.unshift({
914
+ category: 'all',
915
+ label: 'All',
916
+ count: filteredRules.length + filteredSources.length + filteredActions.length + filteredDestinations.length,
917
+ entities: [],
918
+ });
919
+ const searchResults = categories
920
+ .filter(({ count, category }) => !!count && category !== 'all' && ['all', category].includes(selectedCategory))
921
+ .map((item) => ({
922
+ ...item,
923
+ entities: item.category === EntityTypes.InstrumentationRule
924
+ ? filteredRules
925
+ : item.category === EntityTypes.Source
926
+ ? filteredSources
927
+ : item.category === EntityTypes.Action
928
+ ? filteredActions
929
+ : item.category === EntityTypes.Destination
930
+ ? filteredDestinations
931
+ : [],
932
+ }));
933
+ return { categories, searchResults };
934
+ };
935
+
878
936
  const columns$3 = [
879
937
  { key: 'icon', title: '' },
880
938
  { key: 'name', title: DISPLAY_TITLES.NAME, sortable: true },
@@ -890,7 +948,14 @@ const ActionTable = ({ maxHeight, maxWidth }) => {
890
948
  const filters = useFilterStore();
891
949
  const { actions, actionsLoading } = useEntityStore();
892
950
  const { setDrawerType, setDrawerEntityId } = useDrawerStore();
893
- const filtered = useMemo(() => filterActions(actions, filters), [actions, filters]);
951
+ const filtered = useMemo(() => (buildSearchResults({
952
+ instrumentationRules: [],
953
+ sources: [],
954
+ actions: filterActions(actions, filters),
955
+ destinations: [],
956
+ searchText: filters.searchText,
957
+ selectedCategory: EntityTypes.Action,
958
+ }).searchResults.find(({ category }) => category === EntityTypes.Action)?.entities || []), [actions, filters]);
894
959
  const rows = useMemo(() => filtered.map((act) => {
895
960
  const { hasErrors, hasWarnings, hasDisableds } = getConditionsBooleans(act.conditions || []);
896
961
  return {
@@ -937,13 +1002,23 @@ const ActionTable = ({ maxHeight, maxWidth }) => {
937
1002
  {
938
1003
  columnKey: 'active-status',
939
1004
  component: () => (React.createElement("div", { style: { lineHeight: 1 } },
940
- React.createElement(Status, { status: act.spec.disabled ? StatusType.Error : StatusType.Success, title: act.spec.disabled ? 'Inactive' : 'Active', withIcon: true, withBorder: true }))),
1005
+ React.createElement(Status, { status: act.spec.disabled ? StatusType.Error : StatusType.Success, title: act.spec.disabled ? DISPLAY_TITLES.DISABLED : DISPLAY_TITLES.ENABLED, withIcon: true, withBorder: true }))),
941
1006
  },
942
1007
  ],
943
1008
  };
944
1009
  }), [filtered]);
945
- const badge = useMemo(() => (filtered.length !== actions.length ? `${filtered.length}/${actions.length}` : actions.length), [filtered, actions]);
946
- const badgeTooltip = useMemo(() => (filtered.length !== actions.length ? DISPLAY_TITLES.FILTERED_COUNT_TOOLTIP : undefined), [filtered, actions]);
1010
+ const { badge, badgeTooltip } = useMemo(() => {
1011
+ if (filtered.length !== actions.length) {
1012
+ return {
1013
+ badge: `${filtered.length}/${actions.length}`,
1014
+ badgeTooltip: DISPLAY_TITLES.FILTERED_COUNT_TOOLTIP,
1015
+ };
1016
+ }
1017
+ return {
1018
+ badge: actions.length,
1019
+ badgeTooltip: undefined,
1020
+ };
1021
+ }, [filtered, actions]);
947
1022
  return (React.createElement(TableContainer, { "$maxWidth": maxWidth },
948
1023
  React.createElement(TableTitleWrap, null,
949
1024
  React.createElement(IconTitleBadge, { icon: getEntityIcon(EntityTypes.Action), title: DISPLAY_TITLES.ACTIONS, badge: badge, badgeTooltip: badgeTooltip, loading: actionsLoading })),
@@ -1902,72 +1977,15 @@ styled.div `
1902
1977
  border-radius: 24px;
1903
1978
  `;
1904
1979
 
1905
- const buildSearchResults = ({ instrumentationRules, sources, actions, destinations, searchText, selectedCategory }) => {
1906
- const filteredRules = !searchText ? instrumentationRules : instrumentationRules.filter((rule) => rule.type?.toLowerCase().includes(searchText) || rule.ruleName?.toLowerCase().includes(searchText));
1907
- const filteredSources = !searchText
1908
- ? sources
1909
- : sources.filter((source) => source.name?.toLowerCase().includes(searchText) || source.otelServiceName?.toLowerCase().includes(searchText) || source.namespace?.toLowerCase().includes(searchText));
1910
- const filteredActions = !searchText ? actions : actions.filter((action) => action.type?.toLowerCase().includes(searchText) || action.spec.actionName?.toLowerCase().includes(searchText));
1911
- const filteredDestinations = !searchText
1912
- ? destinations
1913
- : destinations.filter((destination) => destination.destinationType.displayName?.toLowerCase().includes(searchText) || destination.name?.toLowerCase().includes(searchText));
1914
- const categories = [
1915
- {
1916
- category: EntityTypes.Source,
1917
- label: 'Sources',
1918
- count: filteredSources.length,
1919
- entities: [],
1920
- },
1921
- {
1922
- category: EntityTypes.Action,
1923
- label: 'Actions',
1924
- count: filteredActions.length,
1925
- entities: [],
1926
- },
1927
- {
1928
- category: EntityTypes.Destination,
1929
- label: 'Destinations',
1930
- count: filteredDestinations.length,
1931
- entities: [],
1932
- },
1933
- {
1934
- category: EntityTypes.InstrumentationRule,
1935
- label: 'Instrumentation Rules',
1936
- count: filteredRules.length,
1937
- entities: [],
1938
- },
1939
- ];
1940
- categories.unshift({
1941
- category: 'all',
1942
- label: 'All',
1943
- count: filteredRules.length + filteredSources.length + filteredActions.length + filteredDestinations.length,
1944
- entities: [],
1945
- });
1946
- const searchResults = categories
1947
- .filter(({ count, category }) => !!count && category !== 'all' && ['all', category].includes(selectedCategory))
1948
- .map((item) => ({
1949
- ...item,
1950
- entities: item.category === EntityTypes.InstrumentationRule
1951
- ? filteredRules
1952
- : item.category === EntityTypes.Source
1953
- ? filteredSources
1954
- : item.category === EntityTypes.Action
1955
- ? filteredActions
1956
- : item.category === EntityTypes.Destination
1957
- ? filteredDestinations
1958
- : [],
1959
- }));
1960
- return { categories, searchResults };
1961
- };
1962
-
1963
1980
  const HorizontalScroll = styled.div `
1964
1981
  display: flex;
1965
1982
  align-items: center;
1966
1983
  overflow-x: scroll;
1967
1984
  `;
1968
- const SearchResults = ({ searchText, onClose }) => {
1985
+ const SearchResults = ({ onClose }) => {
1969
1986
  const theme = Theme.useTheme();
1970
1987
  const { onClickNode } = useClickNode();
1988
+ const { searchText } = useFilterStore();
1971
1989
  const { selectedStreamName } = useDataStreamStore();
1972
1990
  const { sources, destinations, actions, instrumentationRules } = useEntityStore();
1973
1991
  const { popupRef, popupOpen, setPopupOpen, popupPosition, handlePosition } = usePopup();
@@ -2002,19 +2020,20 @@ const SearchResults = ({ searchText, onClose }) => {
2002
2020
  React.createElement(Divider, { thickness: catIdx === searchResults.length - 1 ? 0 : 1, length: '90%', margin: '8px auto' }))))));
2003
2021
  };
2004
2022
 
2005
- const Search = () => {
2006
- const [input, setInput] = useState('');
2023
+ const Search = ({ preventPopup = false }) => {
2024
+ const { searchText, setSearchText } = useFilterStore();
2007
2025
  const [focused, setFocused] = useState(false);
2026
+ const isOpen = !!searchText || focused;
2008
2027
  const onClose = () => {
2009
- setInput('');
2028
+ setSearchText('');
2010
2029
  setFocused(false);
2011
2030
  };
2012
2031
  const containerRef = useRef(null);
2013
- useOnClickOutside(containerRef, () => setFocused(false));
2014
- useKeyDown({ key: 'Escape', active: !!input || focused }, onClose);
2032
+ useOnClickOutside(containerRef, onClose);
2033
+ useKeyDown({ key: 'Escape', active: isOpen }, onClose);
2015
2034
  return (React.createElement(RelativeContainer$2, { ref: containerRef },
2016
- React.createElement(Input, { placeholder: 'Search', icon: SearchIcon, value: input, onChange: (e) => setInput(e.target.value.toLowerCase()), onFocus: () => setFocused(true) }),
2017
- !!input || focused ? React.createElement(SearchResults, { searchText: input, onClose: onClose }) : null));
2035
+ React.createElement(Input, { placeholder: 'Search', icon: SearchIcon, value: searchText, onChange: (e) => setSearchText(e.target.value.toLowerCase()), onFocus: () => setFocused(true) }),
2036
+ isOpen && !preventPopup ? React.createElement(SearchResults, { onClose: onClose }) : null));
2018
2037
  };
2019
2038
 
2020
2039
  const FormWrapper = styled.div `
@@ -2248,11 +2267,11 @@ const Container$c = styled.div `
2248
2267
  const PushToEnd = styled.div `
2249
2268
  margin-left: auto;
2250
2269
  `;
2251
- const DataFlowActionsMenu = ({ addEntity, onClickNewDataStream, updateDataStream, deleteDataStream }) => {
2270
+ const DataFlowActionsMenu = ({ addEntity, preventSearchPopup, onClickNewDataStream, updateDataStream, deleteDataStream }) => {
2252
2271
  const { setCurrentModal } = useModalStore();
2253
2272
  return (React.createElement(Container$c, null,
2254
2273
  React.createElement(DataStreamSelect, { onClickNewDataStream: onClickNewDataStream, updateDataStream: updateDataStream, deleteDataStream: deleteDataStream }),
2255
- React.createElement(Search, null),
2274
+ React.createElement(Search, { preventPopup: preventSearchPopup }),
2256
2275
  React.createElement(Filters$1, null),
2257
2276
  addEntity && (React.createElement(PushToEnd, null,
2258
2277
  React.createElement(AddButton, { "data-id": `add-${addEntity}`, onClick: () => setCurrentModal(addEntity), label: `${BUTTON_TEXTS.ADD} ${addEntity}`, variant: 'primary' })))));
@@ -2277,11 +2296,12 @@ const buildMonitorsList = (exportedSignals) => Object.keys(exportedSignals)
2277
2296
  .filter((key) => exportedSignals[key])
2278
2297
  .join(', ');
2279
2298
  const buildCard$2 = (destination, yamlFields) => {
2280
- const { exportedSignals, destinationType } = destination;
2299
+ const { destinationType, disabled, exportedSignals } = destination;
2281
2300
  const arr = [
2282
- { title: DISPLAY_TITLES.NAME, value: destinationType.displayName },
2283
2301
  { title: DISPLAY_TITLES.TYPE, value: destinationType.type },
2302
+ { type: DataCardFieldTypes.ActiveStatus, title: DISPLAY_TITLES.STATUS, value: String(!disabled) },
2284
2303
  { type: DataCardFieldTypes.Monitors, title: DISPLAY_TITLES.MONITORS, value: buildMonitorsList(exportedSignals) },
2304
+ { title: DISPLAY_TITLES.NAME, value: destinationType.displayName },
2285
2305
  ];
2286
2306
  const mappedFields = mapDestinationFieldsForDisplay(destination, yamlFields);
2287
2307
  const mappedFieldsForConditionCompare = mappedFields.map((field) => ({ name: field.key, value: field.value }));
@@ -2492,8 +2512,8 @@ const DestinationForm = ({ isUpdate, categoryItem, formData, formErrors, validat
2492
2512
  isUpdate && (React.createElement("div", null,
2493
2513
  React.createElement(FieldTitle$1, null, "Status"),
2494
2514
  React.createElement(Segment, { options: [
2495
- { icon: CheckCircledIcon, label: 'active', value: false, selectedBgColor: theme.text.success + Theme.opacity.hex['050'] },
2496
- { icon: CrossCircledIcon, label: 'inactive', value: true, selectedBgColor: theme.text.error + Theme.opacity.hex['050'] },
2515
+ { icon: CheckCircledIcon, label: DISPLAY_TITLES.ENABLED, value: false, selectedBgColor: theme.text.success + Theme.opacity.hex['050'] },
2516
+ { icon: CrossCircledIcon, label: DISPLAY_TITLES.DISABLED, value: true, selectedBgColor: theme.text.error + Theme.opacity.hex['050'] },
2497
2517
  ], selected: formData.disabled, setSelected: (bool) => handleFormChange('disabled', bool) }))),
2498
2518
  !isUpdate && (React.createElement(Input, { title: 'Destination name', placeholder: 'Enter destination name', value: formData['name'], onChange: (e) => {
2499
2519
  dirtyForm();
@@ -2960,6 +2980,7 @@ const columns$2 = [
2960
2980
  { key: 'name', title: DISPLAY_TITLES.NAME, sortable: true },
2961
2981
  { key: 'type', title: DISPLAY_TITLES.TYPE, sortable: true },
2962
2982
  { key: 'signals', title: DISPLAY_TITLES.MONITORS },
2983
+ { key: 'active-status', title: DISPLAY_TITLES.STATUS },
2963
2984
  { key: 'conditions', title: 'Conditions' },
2964
2985
  { key: 'throughput', title: 'Throughput', sortable: true },
2965
2986
  ];
@@ -2970,8 +2991,15 @@ const DestinationTable = ({ metrics, maxHeight, maxWidth }) => {
2970
2991
  const { setDrawerType, setDrawerEntityId } = useDrawerStore();
2971
2992
  const { destinations, destinationsLoading } = useEntityStore();
2972
2993
  const destinationsByStream = useMemo(() => filterDestinationsByStream(destinations, selectedStreamName), [destinations, selectedStreamName]);
2973
- const filteredDestinations = useMemo(() => filterDestinations(destinationsByStream, filters), [destinationsByStream, filters]);
2974
- const rows = useMemo(() => filteredDestinations.map((dest) => {
2994
+ const filtered = useMemo(() => (buildSearchResults({
2995
+ instrumentationRules: [],
2996
+ sources: [],
2997
+ actions: [],
2998
+ destinations: filterDestinations(destinationsByStream, filters),
2999
+ searchText: filters.searchText,
3000
+ selectedCategory: EntityTypes.Destination,
3001
+ }).searchResults.find(({ category }) => category === EntityTypes.Destination)?.entities || []), [destinationsByStream, filters]);
3002
+ const rows = useMemo(() => filtered.map((dest) => {
2975
3003
  const { hasErrors, hasWarnings, hasDisableds } = getConditionsBooleans(dest.conditions || []);
2976
3004
  const { icon, iconSrc } = getDestinationIcon(dest.destinationType.type);
2977
3005
  return {
@@ -3000,21 +3028,26 @@ const DestinationTable = ({ metrics, maxHeight, maxWidth }) => {
3000
3028
  value: formatBytes(getMetricForEntity(metrics, EntityTypes.Destination, dest.id).throughput),
3001
3029
  textColor: theme.text.info,
3002
3030
  },
3031
+ {
3032
+ columnKey: 'signals',
3033
+ component: () => React.createElement(MonitorsIcons, { withLabels: true, monitors: mapExportedSignals(dest.exportedSignals) }),
3034
+ },
3003
3035
  {
3004
3036
  columnKey: 'conditions',
3005
3037
  component: () => (dest.conditions?.length ? React.createElement(TableCellConditions, { conditions: dest.conditions, id: dest.id }) : null),
3006
3038
  },
3007
3039
  {
3008
- columnKey: 'signals',
3009
- component: () => React.createElement(MonitorsIcons, { withLabels: true, monitors: mapExportedSignals(dest.exportedSignals) }),
3040
+ columnKey: 'active-status',
3041
+ component: () => (React.createElement("div", { style: { lineHeight: 1 } },
3042
+ React.createElement(Status, { status: dest.disabled ? StatusType.Error : StatusType.Success, title: dest.disabled ? DISPLAY_TITLES.DISABLED : DISPLAY_TITLES.ENABLED, withIcon: true, withBorder: true }))),
3010
3043
  },
3011
3044
  ],
3012
3045
  };
3013
- }), [filteredDestinations, metrics]);
3046
+ }), [filtered, metrics]);
3014
3047
  const { badge, badgeTooltip } = useMemo(() => {
3015
- if (filteredDestinations.length !== destinationsByStream.length) {
3048
+ if (filtered.length !== destinationsByStream.length) {
3016
3049
  return {
3017
- badge: `${filteredDestinations.length}/${destinationsByStream.length}`,
3050
+ badge: `${filtered.length}/${destinationsByStream.length}`,
3018
3051
  badgeTooltip: DISPLAY_TITLES.FILTERED_COUNT_TOOLTIP,
3019
3052
  };
3020
3053
  }
@@ -3022,13 +3055,13 @@ const DestinationTable = ({ metrics, maxHeight, maxWidth }) => {
3022
3055
  badge: destinationsByStream.length,
3023
3056
  badgeTooltip: undefined,
3024
3057
  };
3025
- }, [filteredDestinations, destinationsByStream]);
3058
+ }, [filtered, destinationsByStream]);
3026
3059
  return (React.createElement(TableContainer, { "$maxWidth": maxWidth },
3027
3060
  React.createElement(TableTitleWrap, null,
3028
3061
  React.createElement(IconTitleBadge, { icon: getEntityIcon(EntityTypes.Destination), title: DISPLAY_TITLES.DESTINATIONS, badge: badge, badgeTooltip: badgeTooltip, loading: destinationsLoading })),
3029
3062
  React.createElement(TableWrap, { "$maxHeight": maxHeight },
3030
3063
  React.createElement(InteractiveTable, { columns: columns$2, rows: rows })),
3031
- !filteredDestinations.length && (React.createElement(CenterThis, { style: { marginTop: '2rem' } },
3064
+ !filtered.length && (React.createElement(CenterThis, { style: { marginTop: '2rem' } },
3032
3065
  React.createElement(NoDataFound, null)))));
3033
3066
  };
3034
3067
 
@@ -3310,8 +3343,8 @@ const InstrumentationRuleForm = ({ isUpdate, rule, formData, formErrors, handleF
3310
3343
  isUpdate ? (React.createElement("div", null,
3311
3344
  React.createElement(FieldTitle, null, "Status"),
3312
3345
  React.createElement(Segment, { options: [
3313
- { icon: CheckCircledIcon, label: 'active', value: false, selectedBgColor: theme.text.success + Theme.opacity.hex['050'] },
3314
- { icon: CrossCircledIcon, label: 'inactive', value: true, selectedBgColor: theme.text.error + Theme.opacity.hex['050'] },
3346
+ { icon: CheckCircledIcon, label: DISPLAY_TITLES.ENABLED, value: false, selectedBgColor: theme.text.success + Theme.opacity.hex['050'] },
3347
+ { icon: CrossCircledIcon, label: DISPLAY_TITLES.DISABLED, value: true, selectedBgColor: theme.text.error + Theme.opacity.hex['050'] },
3315
3348
  ], selected: formData.disabled, setSelected: (bool) => handleFormChange('disabled', bool) }))) : (React.createElement(React.Fragment, null,
3316
3349
  React.createElement(SectionTitle, { title: '', description: rule.docsDescription, actionButton: React.createElement(DocsButton, { endpoint: rule.docsEndpoint }) }),
3317
3350
  React.createElement(Input, { title: 'Rule name', placeholder: 'Use a name that describes the rule', value: formData['ruleName'], onChange: ({ target: { value } }) => handleFormChange('ruleName', value), errorMessage: formErrors['ruleName'] }))),
@@ -3489,11 +3522,20 @@ const columns$1 = [
3489
3522
  ];
3490
3523
  const InstrumentationRuleTable = ({ maxHeight, maxWidth }) => {
3491
3524
  const theme = Theme.useTheme();
3525
+ const filters = useFilterStore();
3492
3526
  const { setDrawerType, setDrawerEntityId } = useDrawerStore();
3493
3527
  const { instrumentationRules, instrumentationRulesLoading } = useEntityStore();
3528
+ const filtered = useMemo(() => (buildSearchResults({
3529
+ instrumentationRules,
3530
+ sources: [],
3531
+ actions: [],
3532
+ destinations: [],
3533
+ searchText: filters.searchText,
3534
+ selectedCategory: EntityTypes.InstrumentationRule,
3535
+ }).searchResults.find(({ category }) => category === EntityTypes.InstrumentationRule)?.entities || []), [instrumentationRules, filters]);
3494
3536
  const rows = useMemo(() =>
3495
3537
  // note: rules do not have filters yet
3496
- instrumentationRules.map((rule) => {
3538
+ filtered.map((rule) => {
3497
3539
  return {
3498
3540
  onClick: () => {
3499
3541
  setDrawerType(EntityTypes.InstrumentationRule);
@@ -3533,7 +3575,7 @@ const InstrumentationRuleTable = ({ maxHeight, maxWidth }) => {
3533
3575
  {
3534
3576
  columnKey: 'active-status',
3535
3577
  component: () => (React.createElement("div", { style: { lineHeight: 1 } },
3536
- React.createElement(Status, { status: rule.disabled ? StatusType.Error : StatusType.Success, title: rule.disabled ? 'Inactive' : 'Active', withIcon: true, withBorder: true }))),
3578
+ React.createElement(Status, { status: rule.disabled ? StatusType.Error : StatusType.Success, title: rule.disabled ? DISPLAY_TITLES.DISABLED : DISPLAY_TITLES.ENABLED, withIcon: true, withBorder: true }))),
3537
3579
  },
3538
3580
  {
3539
3581
  columnKey: 'source-count',
@@ -3542,13 +3584,25 @@ const InstrumentationRuleTable = ({ maxHeight, maxWidth }) => {
3542
3584
  },
3543
3585
  ],
3544
3586
  };
3545
- }), [instrumentationRules]);
3587
+ }), [filtered]);
3588
+ const { badge, badgeTooltip } = useMemo(() => {
3589
+ if (filtered.length !== instrumentationRules.length) {
3590
+ return {
3591
+ badge: `${filtered.length}/${instrumentationRules.length}`,
3592
+ badgeTooltip: DISPLAY_TITLES.FILTERED_COUNT_TOOLTIP,
3593
+ };
3594
+ }
3595
+ return {
3596
+ badge: instrumentationRules.length,
3597
+ badgeTooltip: undefined,
3598
+ };
3599
+ }, [filtered, instrumentationRules]);
3546
3600
  return (React.createElement(TableContainer, { "$maxWidth": maxWidth },
3547
3601
  React.createElement(TableTitleWrap, null,
3548
- React.createElement(IconTitleBadge, { icon: getEntityIcon(EntityTypes.Action), title: DISPLAY_TITLES.INSTRUMENTATION_RULES, badge: instrumentationRules.length, loading: instrumentationRulesLoading })),
3602
+ React.createElement(IconTitleBadge, { icon: getEntityIcon(EntityTypes.Action), title: DISPLAY_TITLES.INSTRUMENTATION_RULES, badge: badge, badgeTooltip: badgeTooltip, loading: instrumentationRulesLoading })),
3549
3603
  React.createElement(TableWrap, { "$maxHeight": maxHeight },
3550
3604
  React.createElement(InteractiveTable, { columns: columns$1, rows: rows })),
3551
- !instrumentationRules.length && (React.createElement(CenterThis, { style: { marginTop: '2rem' } },
3605
+ !filtered.length && (React.createElement(CenterThis, { style: { marginTop: '2rem' } },
3552
3606
  React.createElement(NoDataFound, null)))));
3553
3607
  };
3554
3608
 
@@ -4255,11 +4309,11 @@ const Describe$1 = ({ source, fetchSourceDescribe }) => {
4255
4309
  });
4256
4310
  }, [fetchSourceDescribe, source]);
4257
4311
  if (!describe && !failed) {
4258
- return (React.createElement(CenterThis, null,
4312
+ return (React.createElement(CenterThis, { "$height": '70vh' },
4259
4313
  React.createElement(FadeLoader, null)));
4260
4314
  }
4261
- return (React.createElement(FlexColumn, { "$gap": 12 }, failed ? (React.createElement(CenterThis, null,
4262
- React.createElement(NoDataFound, { subTitle: 'Could not fetch describe for this source' }))) : !describe?.pods?.length ? (React.createElement(CenterThis, null,
4315
+ return (React.createElement(FlexColumn, { "$gap": 12 }, failed ? (React.createElement(CenterThis, { "$height": '70vh' },
4316
+ React.createElement(NoDataFound, { subTitle: 'Could not fetch describe for this source' }))) : !describe?.pods?.length ? (React.createElement(CenterThis, { "$height": '70vh' },
4263
4317
  React.createElement(NoDataFound, { subTitle: 'Check if you have any running pods and try again' }))) : (describe.pods.map(({ podName, nodeName, phase, agentInjected, runningLatestWorkloadRevision, containers }) => {
4264
4318
  const podHasErrors = phase.status !== StatusType.Success || hasUnhealthyInstances(containers);
4265
4319
  const podStatus = podHasErrors ? StatusType.Error : StatusType.Success;
@@ -4323,11 +4377,11 @@ const Libraries = ({ source, fetchSourceLibraries }) => {
4323
4377
  });
4324
4378
  }, [fetchSourceLibraries, source]);
4325
4379
  if (!libraries && !failed) {
4326
- return (React.createElement(CenterThis, null,
4380
+ return (React.createElement(CenterThis, { "$height": '70vh' },
4327
4381
  React.createElement(FadeLoader, null)));
4328
4382
  }
4329
- return (React.createElement(FlexColumn, { "$gap": 12 }, failed ? (React.createElement(CenterThis, null,
4330
- React.createElement(NoDataFound, { subTitle: 'Could not fetch libraries for this source' }))) : !libraries?.length ? (React.createElement(CenterThis, { "$gap": 12 },
4383
+ return (React.createElement(FlexColumn, { "$gap": 12 }, failed ? (React.createElement(CenterThis, { "$height": '70vh' },
4384
+ React.createElement(NoDataFound, { subTitle: 'Could not fetch libraries for this source' }))) : !libraries?.length ? (React.createElement(CenterThis, { "$height": '70vh', "$gap": 12 },
4331
4385
  React.createElement(NoDataFound, { title: 'No libraries found', subTitle: '' }),
4332
4386
  React.createElement(NotificationNote, { type: StatusType.Warning, message: 'This feature is in early development, and has very limited support' }))) : (React.createElement(DataCard, { title: 'Instrumented Libraries' }, libraries.map(({ name, nonIdentifyingAttributes }, i) => (React.createElement(Fragment, { key: `library-${name}` },
4333
4387
  React.createElement(Row, null,
@@ -4373,20 +4427,20 @@ const SourceDrawer = ({ persistSources, updateSource, restartWorkloads, fetchSou
4373
4427
  const { drawerType, drawerEntityId } = useDrawerStore();
4374
4428
  const sourcesByStream = useMemo(() => filterSourcesByStream(sources, selectedStreamName), [sources, selectedStreamName]);
4375
4429
  const drawerRef = useRef(null);
4376
- const isOpen = drawerType !== EntityTypes.Source;
4430
+ const isOpen = drawerType === EntityTypes.Source;
4377
4431
  const [isEditing, setIsEditing] = useState(false);
4378
4432
  const [isFormDirty, setIsFormDirty] = useState(false);
4379
4433
  const [selectedTab, setSelectedTab] = useState(Tabs.Overview);
4380
4434
  const [fetchedSource, setFetchedSource] = useState(null);
4381
4435
  // this is used to fetch the source on drawer open, so we ensure we have the latest data
4382
4436
  useEffect(() => {
4383
- if (!drawerEntityId)
4437
+ if (!isOpen || !drawerEntityId || !!fetchedSource)
4384
4438
  return;
4385
4439
  fetchSourceById(drawerEntityId).then((source) => setFetchedSource(source || null));
4386
- }, [drawerEntityId]);
4440
+ }, [isOpen, drawerEntityId, fetchedSource]);
4387
4441
  const { formData, handleFormChange, resetFormData, loadFormWithDrawerItem } = useSourceFormData();
4388
4442
  const thisItem = useMemo(() => {
4389
- if (isOpen)
4443
+ if (!isOpen)
4390
4444
  return null;
4391
4445
  const found = fetchedSource ||
4392
4446
  sourcesByStream?.find((x) => x.namespace === drawerEntityId.namespace && x.name === drawerEntityId.name && x.kind === drawerEntityId.kind);
@@ -4439,6 +4493,7 @@ const SourceDrawer = ({ persistSources, updateSource, restartWorkloads, fetchSou
4439
4493
  const handleDelete = async () => {
4440
4494
  const { namespace } = thisItem;
4441
4495
  persistSources({ [namespace]: [{ ...thisItem, selected: false, currentStreamName: selectedStreamName }] }, {});
4496
+ setFetchedSource(null);
4442
4497
  setIsFormDirty(false);
4443
4498
  setIsEditing(false);
4444
4499
  resetFormData();
@@ -4449,6 +4504,7 @@ const SourceDrawer = ({ persistSources, updateSource, restartWorkloads, fetchSou
4449
4504
  const title = formData.otelServiceName !== thisItem.name ? formData.otelServiceName : '';
4450
4505
  handleFormChange('otelServiceName', title);
4451
4506
  await updateSource(drawerEntityId, { ...formData, otelServiceName: title });
4507
+ setFetchedSource(null);
4452
4508
  setIsFormDirty(false);
4453
4509
  setIsEditing(false);
4454
4510
  };
@@ -4560,7 +4616,14 @@ const SourceTable = ({ metrics, maxHeight, maxWidth }) => {
4560
4616
  return 1;
4561
4617
  }, [sourcesToCreate, sourcesCreated, sourcesToDelete, sourcesDeleted]);
4562
4618
  const sourcesByStream = useMemo(() => filterSourcesByStream(sources, selectedStreamName), [sources, selectedStreamName]);
4563
- const filteredSources = useMemo(() => filterSources(sourcesByStream, filters), [sourcesByStream, filters]);
4619
+ const filtered = useMemo(() => (buildSearchResults({
4620
+ instrumentationRules: [],
4621
+ sources: filterSources(sourcesByStream, filters),
4622
+ actions: [],
4623
+ destinations: [],
4624
+ searchText: filters.searchText,
4625
+ selectedCategory: EntityTypes.Source,
4626
+ }).searchResults.find(({ category }) => category === EntityTypes.Source)?.entities || []), [sourcesByStream, filters]);
4564
4627
  const [hasSelected, totalSelectedSources] = useMemo(() => {
4565
4628
  let num = 0;
4566
4629
  Object.values(selectedSources).forEach((selectedSources) => {
@@ -4571,7 +4634,7 @@ const SourceTable = ({ metrics, maxHeight, maxWidth }) => {
4571
4634
  const onSelectAll = useCallback((bool) => {
4572
4635
  if (bool) {
4573
4636
  const payload = {};
4574
- filteredSources.forEach((source) => {
4637
+ filtered.forEach((source) => {
4575
4638
  const id = { namespace: source.namespace, name: source.name, kind: source.kind };
4576
4639
  const isPending = isThisPending({ entityType: EntityTypes.Source, entityId: id });
4577
4640
  if (!isPending) {
@@ -4588,7 +4651,7 @@ const SourceTable = ({ metrics, maxHeight, maxWidth }) => {
4588
4651
  else {
4589
4652
  setSelectedSources({});
4590
4653
  }
4591
- }, [filteredSources]);
4654
+ }, [filtered]);
4592
4655
  const onSelectOne = useCallback((source) => {
4593
4656
  const { namespace, name, kind } = source;
4594
4657
  const payload = { ...selectedSources };
@@ -4603,7 +4666,7 @@ const SourceTable = ({ metrics, maxHeight, maxWidth }) => {
4603
4666
  }
4604
4667
  setSelectedSources(payload);
4605
4668
  }, [selectedSources]);
4606
- const rows = useMemo(() => filteredSources.map((source) => {
4669
+ const rows = useMemo(() => filtered.map((source) => {
4607
4670
  const id = getWorkloadId(source);
4608
4671
  const idString = JSON.stringify(id);
4609
4672
  const { hasErrors, hasWarnings, hasDisableds } = getConditionsBooleans(source.conditions || []);
@@ -4653,11 +4716,11 @@ const SourceTable = ({ metrics, maxHeight, maxWidth }) => {
4653
4716
  },
4654
4717
  ],
4655
4718
  };
4656
- }), [filteredSources, selectedSources, metrics, onSelectOne]);
4719
+ }), [filtered, selectedSources, metrics, onSelectOne]);
4657
4720
  const { badge, badgeTooltip } = useMemo(() => {
4658
- if (filteredSources.length !== sourcesByStream.length) {
4721
+ if (filtered.length !== sourcesByStream.length) {
4659
4722
  return {
4660
- badge: `${filteredSources.length}/${sourcesByStream.length}`,
4723
+ badge: `${filtered.length}/${sourcesByStream.length}`,
4661
4724
  badgeTooltip: DISPLAY_TITLES.FILTERED_COUNT_TOOLTIP,
4662
4725
  };
4663
4726
  }
@@ -4665,10 +4728,10 @@ const SourceTable = ({ metrics, maxHeight, maxWidth }) => {
4665
4728
  badge: sourcesByStream.length,
4666
4729
  badgeTooltip: undefined,
4667
4730
  };
4668
- }, [filteredSources, sourcesByStream]);
4731
+ }, [filtered, sourcesByStream]);
4669
4732
  return (React.createElement(TableContainer, { "$maxWidth": maxWidth },
4670
4733
  React.createElement(TableTitleWrap, null,
4671
- React.createElement(Checkbox, { partiallyChecked: hasSelected && filteredSources?.length !== totalSelectedSources, value: hasSelected && filteredSources?.length === totalSelectedSources, onChange: onSelectAll, disabled: !filteredSources?.length }),
4734
+ React.createElement(Checkbox, { partiallyChecked: hasSelected && filtered?.length !== totalSelectedSources, value: hasSelected && filtered?.length === totalSelectedSources, onChange: onSelectAll, disabled: !filtered?.length }),
4672
4735
  React.createElement(IconTitleBadge, { icon: getEntityIcon(EntityTypes.Source), title: DISPLAY_TITLES.SOURCES, badge: badge, badgeTooltip: badgeTooltip, loading: sourcesLoading && !isAwaitingInstrumentation })),
4673
4736
  React.createElement(TableWrap, { "$maxHeight": maxHeight },
4674
4737
  React.createElement(InteractiveTable, { columns: columns, rows: isAwaitingInstrumentation ? [] : rows })),
@@ -4678,7 +4741,7 @@ const SourceTable = ({ metrics, maxHeight, maxWidth }) => {
4678
4741
  React.createElement(Text, { color: theme.text.info },
4679
4742
  !!sourcesToCreate ? 'Instrumenting' : 'Uninstrumenting',
4680
4743
  " workloads..."),
4681
- React.createElement(Badge, { label: `${instrumentingPercent}%` })))) : !filteredSources.length ? (React.createElement(CenterThis, { style: { marginTop: '2rem' } },
4744
+ React.createElement(Badge, { label: `${instrumentingPercent}%` })))) : !filtered.length ? (React.createElement(CenterThis, { style: { marginTop: '2rem' } },
4682
4745
  React.createElement(NoDataFound, null))) : null));
4683
4746
  };
4684
4747
 
package/lib/functions.js CHANGED
@@ -1,13 +1,13 @@
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-0d93b2b4.js';
2
- export { c as compareCondition, f as filterActions, a as filterDestinations, b as filterDestinationsByStream, d as filterSources, e as filterSourcesByStream, g as formatBytes, i as getContainersIcons, h as getContainersInstrumentedCount, j as getDestinationIcon, k as getEntityIcon, l as getEntityLabel, m as getMetricForEntity, n as getPlatformIcon, o as getPlatformLabel, p as getValueForRange, q as getWorkloadId, r as getYamlFieldsForDestination, s as hasUnhealthyInstances, t as isOverTime, u as mapDestinationFieldsForDisplay, v as sleep } from './index-c51fc6a4.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-a067d6e9.js';
2
+ export { c as compareCondition, f as filterActions, a as filterDestinations, b as filterDestinationsByStream, d as filterSources, e as filterSourcesByStream, g as formatBytes, i as getContainersIcons, h as getContainersInstrumentedCount, j as getDestinationIcon, k as getEntityIcon, l as getEntityLabel, m as getMetricForEntity, n as getPlatformIcon, o as getPlatformLabel, p as getValueForRange, q as getWorkloadId, r as getYamlFieldsForDestination, s as hasUnhealthyInstances, t as isOverTime, u as mapDestinationFieldsForDisplay, v as sleep } from './index-ba4f9a19.js';
3
3
  export { d as deepClone, i as isEmpty, s as safeJsonParse } from './index-5e5f7bda.js';
4
- export { g as getActionIcon, c as getEntityId, d as getInstrumentationRuleIcon, e as getProgrammingLanguageIcon } from './index-fdf3a268.js';
4
+ export { g as getActionIcon, c as getEntityId, d as getInstrumentationRuleIcon, e as getProgrammingLanguageIcon } from './index-90ccd949.js';
5
5
  export { g as getIdFromSseTarget, i as isLegalK8sLabel, m as mapExportedSignals } from './index-6a6bea6e.js';
6
6
  import { ProgrammingLanguages, EntityTypes } from './types.js';
7
7
  import 'react';
8
8
  import 'styled-components';
9
- import './index-1d5c06a0.js';
10
- import './index-59aacfd1.js';
9
+ import './index-6034549d.js';
10
+ import './index-b9d7a992.js';
11
11
 
12
12
  const cleanObjectEmptyStringsValues = (obj) => {
13
13
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
package/lib/hooks.js CHANGED
@@ -1,10 +1,10 @@
1
1
  import { ActionKeyTypes, ActionType, StatusType, EntityTypes, FieldTypes } from './types.js';
2
- import { V as useNotificationStore, F as FORM_ALERTS, O as useDrawerStore, W as useEntityStore, Y as useDataStreamStore, _ as useSetupStore } from './index-fdf3a268.js';
2
+ import { V as useNotificationStore, F as FORM_ALERTS, O as useDrawerStore, W as useEntityStore, Y as useDataStreamStore, _ as useSetupStore } from './index-90ccd949.js';
3
3
  import { useState, useEffect, useMemo } from 'react';
4
4
  import 'styled-components';
5
5
  import { i as isEmpty, s as safeJsonParse } from './index-5e5f7bda.js';
6
- import { i as useGenericForm } from './useTransition-ba7b6d8a.js';
7
- export { c as useClickNode, b as useContainerSize, h as useCopy, e as useInstrumentationRuleFormData, u as useKeyDown, a as useOnClickOutside, d as usePopup, g as useTimeAgo, f as useTransition } from './useTransition-ba7b6d8a.js';
6
+ import { i as useGenericForm } from './useTransition-807be8bc.js';
7
+ export { c as useClickNode, b as useContainerSize, h as useCopy, e as useInstrumentationRuleFormData, u as useKeyDown, a as useOnClickOutside, d as usePopup, g as useTimeAgo, f as useTransition } from './useTransition-807be8bc.js';
8
8
  import { g as getIdFromSseTarget, i as isLegalK8sLabel, m as mapExportedSignals } from './index-6a6bea6e.js';
9
9
 
10
10
  const INITIAL$2 = {
package/lib/icons.js CHANGED
@@ -1,10 +1,10 @@
1
- import { T as Theme } from './index-fdf3a268.js';
2
- export { f as AddClusterInfoIcon, n as CPlusPlusLogo, o as CSharpLogo, C as CodeAttributesIcon, l as CustomInstrumentationIcon, h as DeleteAttributeIcon, p as DotnetLogo, E as ElixirLogo, G as GoLogo, H as HeadersCollectionIcon, j as ImageErrorIcon, J as JavaLogo, K as K8sLogo, k as KafkaLogo, q as MysqlLogo, N as NginxLogo, r as NodejsLogo, m as PayloadCollectionIcon, s as PhpLogo, P as PiiMaskingIcon, t as PostgresLogo, u as PythonLogo, v as RedisLogo, R as RenameAttributeIcon, w as RubyLogo, x as RustLogo, i as SamplerIcon, y as SwiftLogo } from './index-fdf3a268.js';
3
- export { C as CheckCircledIcon, E as ErrorTriangleIcon, I as InfoIcon, L as LogsIcon, M as MetricsIcon, O as OdigosLogo, T as TracesIcon, W as WarningTriangleIcon } from './index-1d5c06a0.js';
4
- export { A as ArrowIcon, C as CrossCircledIcon, D as DataStreamsIcon, F as FilterIcon, G as GearIcon, K as KeyIcon, N as NotificationIcon, O as OdigosLogoText, a as OverviewIcon, R as RefreshLeftArrowIcon, S as SlackLogo, T as TerminalIcon, U as UserIcon } from './index-b5b322ad.js';
1
+ import { T as Theme } from './index-90ccd949.js';
2
+ export { f as AddClusterInfoIcon, n as CPlusPlusLogo, o as CSharpLogo, C as CodeAttributesIcon, l as CustomInstrumentationIcon, h as DeleteAttributeIcon, p as DotnetLogo, E as ElixirLogo, G as GoLogo, H as HeadersCollectionIcon, j as ImageErrorIcon, J as JavaLogo, K as K8sLogo, k as KafkaLogo, q as MysqlLogo, N as NginxLogo, r as NodejsLogo, m as PayloadCollectionIcon, s as PhpLogo, P as PiiMaskingIcon, t as PostgresLogo, u as PythonLogo, v as RedisLogo, R as RenameAttributeIcon, w as RubyLogo, x as RustLogo, i as SamplerIcon, y as SwiftLogo } from './index-90ccd949.js';
3
+ export { C as CheckCircledIcon, E as ErrorTriangleIcon, I as InfoIcon, L as LogsIcon, M as MetricsIcon, O as OdigosLogo, T as TracesIcon, W as WarningTriangleIcon } from './index-6034549d.js';
4
+ export { A as ArrowIcon, C as CrossCircledIcon, D as DataStreamsIcon, F as FilterIcon, G as GearIcon, K as KeyIcon, N as NotificationIcon, O as OdigosLogoText, a as OverviewIcon, R as RefreshLeftArrowIcon, S as SlackLogo, T as TerminalIcon, U as UserIcon } from './index-c8aab9c4.js';
5
5
  import React from 'react';
6
- export { h as CheckIcon, C as CodeIcon, a as CopyIcon, i as CrossIcon, E as EditIcon, b as EditedIcon, c as ExtendArrowIcon, f as EyeClosedIcon, g as EyeOpenIcon, L as ListIcon, M as MinusIcon, N as NoDataIcon, d as NotebookIcon, P as PlusIcon, S as SearchIcon, e as SortArrowsIcon, T as TrashIcon, X as XIcon } from './index-ba84d272.js';
7
- export { a3 as ActionsIcon, A as AlaudaLogo, a as AlibabaCloudLogo, b as AppDynamicsLogo, c as AwsCloudwatchLogo, d as AwsS3Logo, e as AwsXrayLogo, f as AxiomLogo, B as BetterStackLogo, g as BlobStorageLogo, h as BonreeLogo, C as CauselyLogo, i as ChecklyLogo, j as ChronosphereLogo, k as ClickhouseLogo, l as CoralogixLogo, D as Dash0Logo, m as DatadogLogo, a4 as DestinationsIcon, n as DynatraceLogo, E as ElasticApmLogo, o as ElasticSearchLogo, G as GigapipeLogo, p as GoogleCloudPlatformLogo, q as GrafanaLogo, r as GreptimeLogo, s as GroundcoverLogo, H as HoneycombLogo, t as HyperDxLogo, I as InstanaLogo, J as JaegerLogo, K as KloudmateLogo, L as Last9Logo, u as LightstepLogo, v as LogzioLogo, w as LokiLogo, x as LumigoLogo, M as MiddlewareLogo, a5 as NamespacesIcon, N as NewRelicLogo, O as ObserveLogo, y as OneUptimeLogo, z as OpenObserveLogo, F as OpenTelemetryLogo, P as OpsVerseLogo, Q as OracleLogo, R as PrometheusLogo, S as QrynLogo, T as QuickwitLogo, a6 as RulesIcon, U as SeqLogo, W as SignozLogo, a7 as SourcesIcon, X as SplunkLogo, Y as SumoLogicLogo, Z as TelemetryHubLogo, _ as TempoLogo, $ as TingyunLogo, a0 as TraceloopLogo, a1 as UptraceLogo, a2 as VictoriaMetricsLogo, V as VmLogo } from './index-59aacfd1.js';
6
+ export { h as CheckIcon, C as CodeIcon, a as CopyIcon, i as CrossIcon, E as EditIcon, b as EditedIcon, c as ExtendArrowIcon, f as EyeClosedIcon, g as EyeOpenIcon, L as ListIcon, M as MinusIcon, N as NoDataIcon, d as NotebookIcon, P as PlusIcon, S as SearchIcon, e as SortArrowsIcon, T as TrashIcon, X as XIcon } from './index-19b8f8bc.js';
7
+ export { a3 as ActionsIcon, A as AlaudaLogo, a as AlibabaCloudLogo, b as AppDynamicsLogo, c as AwsCloudwatchLogo, d as AwsS3Logo, e as AwsXrayLogo, f as AxiomLogo, B as BetterStackLogo, g as BlobStorageLogo, h as BonreeLogo, C as CauselyLogo, i as ChecklyLogo, j as ChronosphereLogo, k as ClickhouseLogo, l as CoralogixLogo, D as Dash0Logo, m as DatadogLogo, a4 as DestinationsIcon, n as DynatraceLogo, E as ElasticApmLogo, o as ElasticSearchLogo, G as GigapipeLogo, p as GoogleCloudPlatformLogo, q as GrafanaLogo, r as GreptimeLogo, s as GroundcoverLogo, H as HoneycombLogo, t as HyperDxLogo, I as InstanaLogo, J as JaegerLogo, K as KloudmateLogo, L as Last9Logo, u as LightstepLogo, v as LogzioLogo, w as LokiLogo, x as LumigoLogo, M as MiddlewareLogo, a5 as NamespacesIcon, N as NewRelicLogo, O as ObserveLogo, y as OneUptimeLogo, z as OpenObserveLogo, F as OpenTelemetryLogo, P as OpsVerseLogo, Q as OracleLogo, R as PrometheusLogo, S as QrynLogo, T as QuickwitLogo, a6 as RulesIcon, U as SeqLogo, W as SignozLogo, a7 as SourcesIcon, X as SplunkLogo, Y as SumoLogicLogo, Z as TelemetryHubLogo, _ as TempoLogo, $ as TingyunLogo, a0 as TraceloopLogo, a1 as UptraceLogo, a2 as VictoriaMetricsLogo, V as VmLogo } from './index-b9d7a992.js';
8
8
  import './types.js';
9
9
  import 'styled-components';
10
10
 
@@ -1,13 +1,13 @@
1
- import React, { useState, useEffect, useRef, forwardRef, useMemo, Fragment, createElement, useCallback, createContext, memo, useContext, useLayoutEffect } from 'react';
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-fdf3a268.js';
1
+ import React, { Fragment, useMemo, useState, useEffect, useRef, forwardRef, createElement, useCallback, createContext, memo, useContext, useLayoutEffect } from 'react';
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-90ccd949.js';
3
3
  import styled, { css } from 'styled-components';
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 } from './index-ba84d272.js';
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 } from './index-19b8f8bc.js';
5
5
  import { StatusType, OtherStatus, EntityTypes, NodeTypes, AddNodeTypes, EdgeTypes, ProgrammingLanguages, IntrumentationStatus, SortDirection, InputTypes, FieldTypes } from './types.js';
6
6
  import { s as safeJsonParse, i as isEmpty } from './index-5e5f7bda.js';
7
- 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-0d93b2b4.js';
7
+ 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-a067d6e9.js';
8
8
  import ReactDOM, { createPortal } from 'react-dom';
9
- import { d as usePopup, h as useCopy, c as useClickNode, i as useGenericForm, b as useContainerSize, f as useTransition, u as useKeyDown, a as useOnClickOutside } from './useTransition-ba7b6d8a.js';
10
- import { I as InfoIcon } from './index-1d5c06a0.js';
9
+ import { d as usePopup, h as useCopy, c as useClickNode, i as useGenericForm, b as useContainerSize, f as useTransition, u as useKeyDown, a as useOnClickOutside } from './useTransition-807be8bc.js';
10
+ import { I as InfoIcon } from './index-6034549d.js';
11
11
 
12
12
  const TextWrapper$2 = styled.div `
13
13
  color: ${({ $color, theme }) => $color || theme.text.secondary};
@@ -19,8 +19,73 @@ const TextWrapper$2 = styled.div `
19
19
  text-transform: ${({ $family }) => ($family === 'secondary' ? 'uppercase' : 'none')};
20
20
  font-family: ${({ theme, $family = 'primary' }) => theme.font_family[$family]};
21
21
  `;
22
+ const getLinksFromText = (text) => {
23
+ const links = text.match(/<a[^>]*href="([^"]*)"[^>]*>(.*?)<\/a>/g);
24
+ return links?.map((link) => {
25
+ const [_, href, label] = link.split('"');
26
+ const labelWithoutTags = label.replace('</a>', '').replace('>', '');
27
+ return {
28
+ original: link,
29
+ href,
30
+ label: labelWithoutTags,
31
+ };
32
+ });
33
+ };
34
+ const getStrongsFromText = (text) => {
35
+ const strongs = text.match(/<strong[^>]*>(.*?)<\/strong>/g);
36
+ return strongs?.map((strong) => {
37
+ const label = strong.replace(/<strong[^>]*>/, '').replace(/<\/strong>/, '');
38
+ return {
39
+ original: strong,
40
+ label,
41
+ };
42
+ });
43
+ };
44
+ const renderText = (text, theme) => {
45
+ const links = getLinksFromText(text);
46
+ links?.forEach((link, i) => {
47
+ text = text.replace(link.original, `LINK-${i}###`);
48
+ });
49
+ const strongs = getStrongsFromText(text);
50
+ strongs?.forEach((strong, i) => {
51
+ text = text.replace(strong.original, `STRONG-${i}###`);
52
+ });
53
+ const mappedText = text.split(' ').map((word) => {
54
+ if (word.includes('LINK-')) {
55
+ const [linkId, postLabel] = word.split('###');
56
+ const entry = links?.[parseInt(linkId.replace('LINK-', ''))];
57
+ return (React.createElement(Fragment, { key: word },
58
+ React.createElement("a", { href: entry?.href, target: '_blank', style: { color: theme.colors.majestic_blue_soft } }, entry?.label),
59
+ postLabel ? `${postLabel} ` : ' '));
60
+ }
61
+ if (word.includes('STRONG-')) {
62
+ const [strongId, postLabel] = word.split('###');
63
+ const entry = strongs?.[parseInt(strongId.replace('STRONG-', ''))];
64
+ return (React.createElement(Fragment, { key: word },
65
+ React.createElement("strong", { style: { fontWeight: 600 } }, entry?.label),
66
+ postLabel ? `${postLabel} ` : ' '));
67
+ }
68
+ return word + ' ';
69
+ });
70
+ return mappedText;
71
+ };
22
72
  const Text = ({ children, color, size, weight, align, family, opacity, decoration, ...props }) => {
23
- return (React.createElement(TextWrapper$2, { "$color": color, "$size": size, "$weight": weight, "$align": align, "$family": family, "$opacity": opacity, "$decoration": decoration, ...props }, children));
73
+ const theme = Theme.useTheme();
74
+ const textArray = useMemo(() => {
75
+ const str = typeof children === 'string'
76
+ ? children
77
+ : Array.isArray(children)
78
+ ? // eslint-disable-next-line @typescript-eslint/no-explicit-any
79
+ children
80
+ .map((x) => (typeof x === 'object' && Object.hasOwn(x, 'props') ? x.props.children : x))
81
+ .filter((x) => x && typeof x === 'string')
82
+ .join(' ')
83
+ : '';
84
+ return str.split('\n');
85
+ }, [children]);
86
+ return (React.createElement(TextWrapper$2, { "$color": color, "$size": size, "$weight": weight, "$align": align, "$family": family, "$opacity": opacity, "$decoration": decoration, ...props }, textArray.map((str, i) => (React.createElement(Fragment, { key: `text-${i}-${str}` },
87
+ renderText(str, theme),
88
+ i !== textArray.length - 1 ? React.createElement("br", null) : null)))));
24
89
  };
25
90
 
26
91
  const ErrorWrapper = styled.div `
@@ -409,6 +474,7 @@ const FlexColumn = styled.div `
409
474
  `;
410
475
  const CenterThis = styled(FlexColumn) `
411
476
  width: 100%;
477
+ height: ${({ $height }) => $height || 'unset'};
412
478
  align-items: center;
413
479
  justify-content: center;
414
480
  `;
@@ -463,42 +529,13 @@ const TextBreakWord = styled(Text) `
463
529
  word-break: break-word;
464
530
  white-space: pre-wrap;
465
531
  `;
466
- const getLinksFromText = (text) => {
467
- const links = text.match(/<a[^>]*href="([^"]*)"[^>]*>(.*?)<\/a>/g);
468
- return links?.map((link) => {
469
- const [_, href, label] = link.split('"');
470
- const labelWithoutTags = label.replace('</a>', '').replace('>', '');
471
- return {
472
- original: link,
473
- href,
474
- label: labelWithoutTags,
475
- };
476
- });
477
- };
478
- const renderText = (text, theme) => {
479
- const links = getLinksFromText(text);
480
- links?.forEach((link, i) => {
481
- text = text.replace(link.original, `LINK-${i}###`);
482
- });
483
- const mappedText = text.split(' ').map((word) => {
484
- if (word.includes('LINK-')) {
485
- const [linkId, postLabel] = word.split('###');
486
- const entry = links?.[parseInt(linkId.replace('LINK-', ''))];
487
- return (React.createElement(Fragment, { key: word },
488
- React.createElement("a", { href: entry?.href, target: '_blank', style: { color: theme.colors.majestic_blue_soft } }, entry?.label),
489
- postLabel ? `${postLabel} ` : ''));
490
- }
491
- return word + ' ';
492
- });
493
- return { mappedText, hasLinks: !!links?.length };
494
- };
495
532
  const Tooltip = ({ withIcon, titleIcon: TitleIcon, title, text, timestamp, children }) => {
496
533
  const theme = Theme.useTheme();
497
534
  const { popupRef, popupOpen, setPopupOpen, popupPosition, handlePosition } = usePopup({
498
535
  defaultClientHeight: 40,
499
536
  defaultClientwidth: Math.min((text?.length || 0) * 7.5, 300),
500
537
  });
501
- const { mappedText, hasLinks } = useMemo(() => renderText(text || '', theme), [text, theme]);
538
+ const hasLinks = useMemo(() => !!getLinksFromText(text || '')?.length, [text]);
502
539
  const handleMouseEvent = (e) => {
503
540
  const { type, clientX, clientY } = e;
504
541
  if (hasLinks) {
@@ -521,7 +558,7 @@ const Tooltip = ({ withIcon, titleIcon: TitleIcon, title, text, timestamp, child
521
558
  title && React.createElement(React.Fragment, null,
522
559
  title,
523
560
  "\u00A0-\u00A0"))),
524
- React.createElement(TextBreakWord, { size: 12, color: theme.text.info }, mappedText),
561
+ React.createElement(TextBreakWord, { size: 12, color: theme.text.info }, text),
525
562
  !!timestamp && (React.createElement(Text, { size: 10, color: theme.text.darker_grey, family: 'secondary', style: { marginTop: '8px' } }, new Date(timestamp).toLocaleString()))))));
526
563
  };
527
564
 
@@ -17245,7 +17282,7 @@ const RenderValue = ({ type, value }) => {
17245
17282
  return React.createElement(InteractiveTable, { columns: columns, rows: rows, ...rest });
17246
17283
  }
17247
17284
  case DataCardFieldTypes.ActiveStatus: {
17248
- return React.createElement(Status, { status: value == 'true' ? StatusType.Success : StatusType.Error, title: value == 'true' ? 'Active' : 'Inactive', size: 10, withIcon: true, withBorder: true });
17285
+ return React.createElement(Status, { status: value == 'true' ? StatusType.Success : StatusType.Error, title: value == 'true' ? DISPLAY_TITLES.ENABLED : DISPLAY_TITLES.DISABLED, size: 10, withIcon: true, withBorder: true });
17249
17286
  }
17250
17287
  case DataCardFieldTypes.CopyText: {
17251
17288
  const str = typeof value === 'string' ? value : JSON.stringify(value);
@@ -38449,4 +38486,4 @@ const WarningModal = ({ isOpen, noOverlay, title = '', description = '', note, a
38449
38486
  React.createElement(FooterButton, { "data-id": 'deny', variant: denyButton.variant || 'secondary', onClick: onDeny }, denyButton.text)))));
38450
38487
  };
38451
38488
 
38452
- export { TextArea as $, AutocompleteInput as A, Button$4 as B, Checkbox as C, DataCard as D, ExtendArrow as E, FadeLoader as F, MonitorsIcons as G, Header as H, IconButton as I, NoDataFound as J, KeyValueInputsList as K, NotificationNote as L, Modal as M, NavigationButtons as N, PopupForm as O, Popup as P, SectionTitle as Q, Segment as R, ScrollX as S, ToggleCodeComponent as T, SelectionButton as U, SkeletonLoader as V, Status as W, Stepper as X, TabList as Y, Tag as Z, Text as _, Badge as a, Toggle as a0, Tooltip as a1, TraceLoader as a2, WarningModal as a3, FlexRow as a4, FlexColumn as a5, CenterThis as a6, VerticalScroll as a7, Overlay as a8, ModalBody as a9, TableContainer as aa, TableTitleWrap as ab, TableWrap as ac, nodeConfig as ad, useNodesState as ae, useEdgesState as af, Flow as ag, applyNodeChanges as ah, AddButton$1 as ai, MarkerType as aj, CopyText as ak, PodContainer as al, SourceContainer as am, AddNode as an, BaseNode as ao, EdgedNode as ap, FrameNode as aq, HeaderNode as ar, MapItemNode as as, NoDataNode as at, ScrollNode as au, SkeletonNode as av, LabeledEdge as aw, Code as b, ConditionDetails as c, DataCardFields as d, DataCardFieldTypes as e, DataFinger as f, DataTab as g, DescribeRow as h, Divider as i, DocsButton as j, Drawer as k, DrawerHeader as l, DrawerFooter as m, Dropdown as n, FieldError as o, FieldLabel as p, IconGroup as q, IconTitleBadge as r, IconWrapped as s, IconsNav as t, ImageControlled as u, Input as v, InputList as w, InputTable as x, InteractiveTable as y, MonitorsCheckboxes as z };
38489
+ export { getLinksFromText as $, AutocompleteInput as A, Button$4 as B, Checkbox as C, DataCard as D, ExtendArrow as E, FadeLoader as F, MonitorsIcons as G, Header as H, IconButton as I, NoDataFound as J, KeyValueInputsList as K, NotificationNote as L, Modal as M, NavigationButtons as N, PopupForm as O, Popup as P, SectionTitle as Q, Segment as R, ScrollX as S, ToggleCodeComponent as T, SelectionButton as U, SkeletonLoader as V, Status as W, Stepper as X, TabList as Y, Tag as Z, Text as _, Badge as a, getStrongsFromText as a0, renderText as a1, TextArea as a2, Toggle as a3, Tooltip as a4, TraceLoader as a5, WarningModal as a6, FlexRow as a7, FlexColumn as a8, CenterThis as a9, VerticalScroll as aa, Overlay as ab, ModalBody as ac, TableContainer as ad, TableTitleWrap as ae, TableWrap as af, nodeConfig as ag, useNodesState as ah, useEdgesState as ai, Flow as aj, applyNodeChanges as ak, AddButton$1 as al, MarkerType as am, CopyText as an, PodContainer as ao, SourceContainer as ap, AddNode as aq, BaseNode as ar, EdgedNode as as, FrameNode as at, HeaderNode as au, MapItemNode as av, NoDataNode as aw, ScrollNode as ax, SkeletonNode as ay, LabeledEdge as az, Code as b, ConditionDetails as c, DataCardFields as d, DataCardFieldTypes as e, DataFinger as f, DataTab as g, DescribeRow as h, Divider as i, DocsButton as j, Drawer as k, DrawerHeader as l, DrawerFooter as m, Dropdown as n, FieldError as o, FieldLabel as p, IconGroup as q, IconTitleBadge as r, IconWrapped as s, IconsNav as t, ImageControlled as u, Input as v, InputList as w, InputTable as x, InteractiveTable as y, MonitorsCheckboxes as z };
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { T as Theme } from './index-fdf3a268.js';
2
+ import { T as Theme } from './index-90ccd949.js';
3
3
 
4
4
  const CodeIcon = ({ size = 16, fill: f, rotate = 0, onClick, strokeWidth = 1 }) => {
5
5
  const theme = Theme.useTheme();
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { T as Theme } from './index-fdf3a268.js';
2
+ import { T as Theme } from './index-90ccd949.js';
3
3
 
4
4
  const OdigosLogo = ({ size = 16, fill: f, rotate = 0, onClick }) => {
5
5
  const theme = Theme.useTheme();
@@ -1017,6 +1017,10 @@ const DISPLAY_TITLES = {
1017
1017
  OVERIDDEN: 'Overridden',
1018
1018
  OVERRIDE_RUNTIME_DETAILS: 'Override Runtime Details',
1019
1019
  OVERRIDE_RUNTIME_WARNING: 'This is an advanced configuration. If the selected programming language is incorrect, data collection may be incomplete or may not occur at all.',
1020
+ ACTIVE: 'Active',
1021
+ INACTIVE: 'Inactive',
1022
+ ENABLED: 'Enabled',
1023
+ DISABLED: 'Disabled',
1020
1024
  };
1021
1025
  const BUTTON_TEXTS = {
1022
1026
  ADD: 'Add',
@@ -1,8 +1,8 @@
1
1
  import { StatusType, OtherStatus, SignalType } from './types.js';
2
2
  import 'react';
3
- import './index-fdf3a268.js';
3
+ import './index-90ccd949.js';
4
4
  import 'styled-components';
5
- import { L as LogsIcon, M as MetricsIcon, T as TracesIcon, C as CheckCircledIcon, E as ErrorTriangleIcon, W as WarningTriangleIcon, I as InfoIcon, O as OdigosLogo } from './index-1d5c06a0.js';
5
+ import { L as LogsIcon, M as MetricsIcon, T as TracesIcon, C as CheckCircledIcon, E as ErrorTriangleIcon, W as WarningTriangleIcon, I as InfoIcon, O as OdigosLogo } from './index-6034549d.js';
6
6
 
7
7
  const capitalizeFirstLetter = (string) => {
8
8
  return string.charAt(0).toUpperCase() + string.slice(1);
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { T as Theme } from './index-fdf3a268.js';
2
+ import { T as Theme } from './index-90ccd949.js';
3
3
 
4
4
  const VmLogo = ({ size = 16, fill: f, rotate = 0, onClick, strokeWidth = 1 }) => {
5
5
  const theme = Theme.useTheme();
@@ -1,9 +1,9 @@
1
1
  import { StatusType, DestinationTypes, EntityTypes, PlatformType } from './types.js';
2
- import { a as DEFAULT_DATA_STREAM_NAME, e as getProgrammingLanguageIcon, k as KafkaLogo, K as K8sLogo } from './index-fdf3a268.js';
2
+ import { a as DEFAULT_DATA_STREAM_NAME, e as getProgrammingLanguageIcon, k as KafkaLogo, K as K8sLogo } from './index-90ccd949.js';
3
3
  import 'react';
4
4
  import 'styled-components';
5
- import { A as AlaudaLogo, a as AlibabaCloudLogo, b as AppDynamicsLogo, f as AxiomLogo, g as BlobStorageLogo, B as BetterStackLogo, h as BonreeLogo, C as CauselyLogo, i as ChecklyLogo, j as ChronosphereLogo, k as ClickhouseLogo, c as AwsCloudwatchLogo, l as CoralogixLogo, D as Dash0Logo, m as DatadogLogo, F as OpenTelemetryLogo, n as DynatraceLogo, E as ElasticApmLogo, o as ElasticSearchLogo, p as GoogleCloudPlatformLogo, q as GrafanaLogo, r as GreptimeLogo, s as GroundcoverLogo, H as HoneycombLogo, t as HyperDxLogo, I as InstanaLogo, J as JaegerLogo, K as KloudmateLogo, L as Last9Logo, u as LightstepLogo, v as LogzioLogo, w as LokiLogo, x as LumigoLogo, M as MiddlewareLogo, N as NewRelicLogo, O as ObserveLogo, y as OneUptimeLogo, z as OpenObserveLogo, P as OpsVerseLogo, Q as OracleLogo, R as PrometheusLogo, S as QrynLogo, G as GigapipeLogo, T as QuickwitLogo, d as AwsS3Logo, U as SeqLogo, W as SignozLogo, X as SplunkLogo, Y as SumoLogicLogo, Z as TelemetryHubLogo, _ as TempoLogo, $ as TingyunLogo, a0 as TraceloopLogo, a1 as UptraceLogo, a2 as VictoriaMetricsLogo, e as AwsXrayLogo, a5 as NamespacesIcon, a7 as SourcesIcon, a4 as DestinationsIcon, a3 as ActionsIcon, a6 as RulesIcon, V as VmLogo } from './index-59aacfd1.js';
6
- import { O as OdigosLogo } from './index-1d5c06a0.js';
5
+ import { A as AlaudaLogo, a as AlibabaCloudLogo, b as AppDynamicsLogo, f as AxiomLogo, g as BlobStorageLogo, B as BetterStackLogo, h as BonreeLogo, C as CauselyLogo, i as ChecklyLogo, j as ChronosphereLogo, k as ClickhouseLogo, c as AwsCloudwatchLogo, l as CoralogixLogo, D as Dash0Logo, m as DatadogLogo, F as OpenTelemetryLogo, n as DynatraceLogo, E as ElasticApmLogo, o as ElasticSearchLogo, p as GoogleCloudPlatformLogo, q as GrafanaLogo, r as GreptimeLogo, s as GroundcoverLogo, H as HoneycombLogo, t as HyperDxLogo, I as InstanaLogo, J as JaegerLogo, K as KloudmateLogo, L as Last9Logo, u as LightstepLogo, v as LogzioLogo, w as LokiLogo, x as LumigoLogo, M as MiddlewareLogo, N as NewRelicLogo, O as ObserveLogo, y as OneUptimeLogo, z as OpenObserveLogo, P as OpsVerseLogo, Q as OracleLogo, R as PrometheusLogo, S as QrynLogo, G as GigapipeLogo, T as QuickwitLogo, d as AwsS3Logo, U as SeqLogo, W as SignozLogo, X as SplunkLogo, Y as SumoLogicLogo, Z as TelemetryHubLogo, _ as TempoLogo, $ as TingyunLogo, a0 as TraceloopLogo, a1 as UptraceLogo, a2 as VictoriaMetricsLogo, e as AwsXrayLogo, a5 as NamespacesIcon, a7 as SourcesIcon, a4 as DestinationsIcon, a3 as ActionsIcon, a6 as RulesIcon, V as VmLogo } from './index-b9d7a992.js';
6
+ import { O as OdigosLogo } from './index-6034549d.js';
7
7
  import { s as safeJsonParse } from './index-5e5f7bda.js';
8
8
 
9
9
  const compareCondition = (renderCondition, fields) => {
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { T as Theme } from './index-fdf3a268.js';
2
+ import { T as Theme } from './index-90ccd949.js';
3
3
 
4
4
  const OdigosLogoText = ({ size = 16, fill: f, rotate = 0, onClick }) => {
5
5
  const theme = Theme.useTheme();
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
- import { a3 as WarningModal } from './index-0a99fd0b.js';
2
+ import { a6 as WarningModal } from './index-192794e8.js';
3
3
  import { StatusType, EntityTypes } from './types.js';
4
- import './index-fdf3a268.js';
4
+ import './index-90ccd949.js';
5
5
  import 'styled-components';
6
6
 
7
7
  const CancelWarning = ({ isOpen, noOverlay, name, onApprove, onDeny }) => {
package/lib/snippets.js CHANGED
@@ -1,15 +1,15 @@
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';
1
+ import { B as Button, _ as Text, L as NotificationNote } from './index-192794e8.js';
2
+ export { al as AddButton, aq as AddNode, ar as BaseNode, an as CopyText, as as EdgedNode, aj as Flow, at as FrameNode, au as HeaderNode, az as LabeledEdge, av as MapItemNode, aw as NoDataNode, ao as PodContainer, ax as ScrollNode, ay as SkeletonNode, ap as SourceContainer, ag as nodeConfig } from './index-192794e8.js';
3
3
  import React from 'react';
4
- import { T as Theme, B as BUTTON_TEXTS, b as DISPLAY_TITLES } from './index-fdf3a268.js';
5
- import { E as EditIcon } from './index-ba84d272.js';
4
+ import { T as Theme, B as BUTTON_TEXTS, b as DISPLAY_TITLES } from './index-90ccd949.js';
5
+ import { E as EditIcon } from './index-19b8f8bc.js';
6
6
  import { StatusType } from './types.js';
7
7
  import 'styled-components';
8
- import { I as InfoIcon } from './index-1d5c06a0.js';
8
+ import { I as InfoIcon } from './index-6034549d.js';
9
9
  import './index-5e5f7bda.js';
10
- import './index-0d93b2b4.js';
10
+ import './index-a067d6e9.js';
11
11
  import 'react-dom';
12
- import './useTransition-ba7b6d8a.js';
12
+ import './useTransition-807be8bc.js';
13
13
 
14
14
  const EditButton = ({ label, onClick, variant = 'tertiary', ...props }) => {
15
15
  const theme = Theme.useTheme();
@@ -1,6 +1,6 @@
1
1
  import type { DropdownProps } from '@/components';
2
2
  export interface FiltersState {
3
- searchText?: string;
3
+ searchText: string;
4
4
  statuses?: DropdownProps['options'];
5
5
  platformTypes?: DropdownProps['options'];
6
6
  namespaces?: DropdownProps['options'];
package/lib/store.js CHANGED
@@ -1,4 +1,4 @@
1
- export { Q as useActiveNodeStore, a0 as useDarkMode, Y as useDataStreamStore, O as useDrawerStore, W as useEntityStore, X as useFilterStore, Z as useInstrumentStore, z as useModalStore, V as useNotificationStore, U as usePendingStore, $ as useSelectedStore, _ as useSetupStore } from './index-fdf3a268.js';
1
+ export { Q as useActiveNodeStore, a0 as useDarkMode, Y as useDataStreamStore, O as useDrawerStore, W as useEntityStore, X as useFilterStore, Z as useInstrumentStore, z as useModalStore, V as useNotificationStore, U as usePendingStore, $ as useSelectedStore, _ as useSetupStore } from './index-90ccd949.js';
2
2
  import 'react';
3
3
  import './types.js';
4
4
  import 'styled-components';
package/lib/theme.js CHANGED
@@ -1,4 +1,4 @@
1
- export { T as default } from './index-fdf3a268.js';
1
+ export { T as default } from './index-90ccd949.js';
2
2
  import 'styled-components';
3
3
  import 'react';
4
4
  import './types.js';
@@ -1,4 +1,4 @@
1
- import { z as useModalStore, O as useDrawerStore, Q as useActiveNodeStore } from './index-fdf3a268.js';
1
+ import { z as useModalStore, O as useDrawerStore, Q as useActiveNodeStore } from './index-90ccd949.js';
2
2
  import { AddNodeTypes, EntityTypes, PayloadCollectionKeyTypes, CodeAttributesKeyTypes, CustomInstrumentationsKeyTypes } from './types.js';
3
3
  import React, { useState, useMemo, useEffect, useRef, useCallback } from 'react';
4
4
  import styled from 'styled-components';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@odigos/ui-kit",
3
- "version": "0.0.78",
3
+ "version": "0.0.80",
4
4
  "author": "Odigos",
5
5
  "repository": {
6
6
  "type": "git",
@@ -108,7 +108,7 @@
108
108
  "@storybook/addon-docs": "^9.1.1",
109
109
  "@storybook/addon-webpack5-compiler-babel": "^3.0.6",
110
110
  "@storybook/react-webpack5": "9.1.1",
111
- "@types/node": "^24.2.0",
111
+ "@types/node": "^24.2.1",
112
112
  "@types/react": "^19.1.9",
113
113
  "@types/react-dom": "^19.1.7",
114
114
  "babel-loader": "^10.0.0",