@odigos/ui-kit 0.0.25 → 0.0.26

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.
Files changed (30) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/lib/components.js +8 -8
  3. package/lib/constants/strings/index.d.ts +8 -4
  4. package/lib/constants.js +3 -3
  5. package/lib/containers/data-flow-actions-menu/data-stream-select/index.d.ts +1 -1
  6. package/lib/containers/destination-modal/index.d.ts +0 -1
  7. package/lib/containers/destination-selection-form/index.d.ts +1 -2
  8. package/lib/containers/setup-summary/index.d.ts +1 -0
  9. package/lib/containers.js +145 -109
  10. package/lib/functions.js +4 -4
  11. package/lib/hooks.js +5 -5
  12. package/lib/icons.js +1 -1
  13. package/lib/{index-HOKGoci6.js → index-B6FywnIf.js} +10 -6
  14. package/lib/{index-BOkleuyi.js → index-BfatCMWq.js} +4 -4
  15. package/lib/{index-CTdoDQzG.js → index-ByO2rgKy.js} +2 -2
  16. package/lib/{index-C0N2DFBu.js → index-CFnxjzaW.js} +1 -1
  17. package/lib/{index-C2m4uddS.js → index-CJs4RDHU.js} +1 -1
  18. package/lib/{index-DE7A6Q_i.js → index-CWufhl9G.js} +3 -3
  19. package/lib/{index-CYUrArTm.js → index-C_LWKMnO.js} +4 -4
  20. package/lib/{index-CK8tITRA.js → index-DMXaEyAB.js} +27 -13
  21. package/lib/mock-data/sources/index.d.ts +1 -1
  22. package/lib/snippets.js +7 -7
  23. package/lib/store/useSetupStore.d.ts +4 -0
  24. package/lib/store.js +1 -1
  25. package/lib/theme.js +1 -1
  26. package/lib/types/destinations/index.d.ts +1 -1
  27. package/lib/types/sources/index.d.ts +1 -1
  28. package/lib/{useSourceSelectionFormData-Bxm0NBIy.js → useSourceSelectionFormData-plxXIM0Q.js} +4 -4
  29. package/lib/{useTransition-DvT5YNul.js → useTransition-BPxqZqXu.js} +2 -2
  30. package/package.json +14 -14
package/lib/functions.js CHANGED
@@ -1,7 +1,7 @@
1
- export { c as capitalizeFirstLetter, f as flattenObjectKeys, g as getMonitorIcon, a as getProgrammingLanguageIcon, b as getStatusIcon, m as mapConditions, p as parseJsonStringToPrettyString, r as removeEmptyValuesFromObject, s as safeJsonStringify, d as splitCamelString } from './index-C2m4uddS.js';
2
- export { c as compareCondition, d as deepClone, f as filterActions, a as filterDestinations, b as filterDestinationsByStream, e as filterSources, g as filterSourcesByStream, h as formatBytes, i as getConditionsBooleans, k as getContainersIcons, j as getContainersInstrumentedCount, l as getDestinationIcon, m as getEntityIcon, n as getEntityLabel, o as getMetricForEntity, p as getPlatformIcon, q as getPlatformLabel, r as getValueForRange, s as getWorkloadId, t as isOverTime, u as mapExportedSignals, v as sleep } from './index-BOkleuyi.js';
3
- export { g as getActionIcon, a as getInstrumentationRuleIcon } from './index-C0N2DFBu.js';
4
- export { k as getEntityId } from './index-CK8tITRA.js';
1
+ export { c as capitalizeFirstLetter, f as flattenObjectKeys, g as getMonitorIcon, a as getProgrammingLanguageIcon, b as getStatusIcon, m as mapConditions, p as parseJsonStringToPrettyString, r as removeEmptyValuesFromObject, s as safeJsonStringify, d as splitCamelString } from './index-CJs4RDHU.js';
2
+ export { c as compareCondition, d as deepClone, f as filterActions, a as filterDestinations, b as filterDestinationsByStream, e as filterSources, g as filterSourcesByStream, h as formatBytes, i as getConditionsBooleans, k as getContainersIcons, j as getContainersInstrumentedCount, l as getDestinationIcon, m as getEntityIcon, n as getEntityLabel, o as getMetricForEntity, p as getPlatformIcon, q as getPlatformLabel, r as getValueForRange, s as getWorkloadId, t as isOverTime, u as mapExportedSignals, v as sleep } from './index-BfatCMWq.js';
3
+ export { g as getActionIcon, a as getInstrumentationRuleIcon } from './index-CFnxjzaW.js';
4
+ export { k as getEntityId } from './index-DMXaEyAB.js';
5
5
  export { g as getIdFromSseTarget } from './index-7-KCQK-x.js';
6
6
  import { EntityTypes } from './types.js';
7
7
  export { i as isEmpty, s as safeJsonParse } from './index-BZS1ijMm.js';
package/lib/hooks.js CHANGED
@@ -1,12 +1,12 @@
1
- export { u as useActionFormData, a as useClickNode, b as useClickNotification, c as useDestinationFormData, d as useSourceFormData, e as useSourceSelectionFormData } from './useSourceSelectionFormData-Bxm0NBIy.js';
2
- export { u as useContainerSize, a as useCopy, b as useGenericForm, c as useInstrumentationRuleFormData, d as useKeyDown, e as useOnClickOutside, f as useTimeAgo, g as useTransition } from './useTransition-DvT5YNul.js';
1
+ export { u as useActionFormData, a as useClickNode, b as useClickNotification, c as useDestinationFormData, d as useSourceFormData, e as useSourceSelectionFormData } from './useSourceSelectionFormData-plxXIM0Q.js';
2
+ export { u as useContainerSize, a as useCopy, b as useGenericForm, c as useInstrumentationRuleFormData, d as useKeyDown, e as useOnClickOutside, f as useTimeAgo, g as useTransition } from './useTransition-BPxqZqXu.js';
3
3
  import './types.js';
4
4
  import 'react';
5
- import './index-CK8tITRA.js';
5
+ import './index-DMXaEyAB.js';
6
6
  import 'styled-components';
7
7
  import './index-BZS1ijMm.js';
8
- import './index-HOKGoci6.js';
9
- import './index-C0N2DFBu.js';
8
+ import './index-B6FywnIf.js';
9
+ import './index-CFnxjzaW.js';
10
10
  import './index-DGel4E-Z.js';
11
11
  import './theme.js';
12
12
  import './index-7-KCQK-x.js';
package/lib/icons.js CHANGED
@@ -6,7 +6,7 @@ import React from 'react';
6
6
  import Theme from './theme.js';
7
7
  export { E as EditIcon } from './index-CWbxXTof.js';
8
8
  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-BRW_Nl-n.js';
9
- import './index-CK8tITRA.js';
9
+ import './index-DMXaEyAB.js';
10
10
  import './types.js';
11
11
  import 'styled-components';
12
12
 
@@ -1,7 +1,7 @@
1
1
  import { SignalType, ActionType, InstrumentationRuleType } from './types.js';
2
- import { g as getActionIcon, a as getInstrumentationRuleIcon } from './index-C0N2DFBu.js';
2
+ import { g as getActionIcon, a as getInstrumentationRuleIcon } from './index-CFnxjzaW.js';
3
3
  import 'react';
4
- import './index-CK8tITRA.js';
4
+ import './index-DMXaEyAB.js';
5
5
  import 'styled-components';
6
6
 
7
7
  const ACTION_OPTIONS = [
@@ -141,6 +141,13 @@ const DISPLAY_TITLES = {
141
141
  KIND: 'Kind',
142
142
  CONNECTION: 'Connection',
143
143
  CONNECTIONS: 'Connections',
144
+ DATA_STREAM: 'Data Stream',
145
+ DATA_STREAMS: 'Data Streams',
146
+ STREAM_NAME: 'Data Stream Name',
147
+ NAME_YOUR_STREAM: 'Name your Data Stream',
148
+ NAME_YOUR_STREAM_PLACEHOLDER: 'e.g. Highest priority',
149
+ STREAM_DESCRIPTION: 'Provide a clear and descriptive name for your pipeline to ensure its purpose is easily understood by you and your team.',
150
+ STREAM_CONFIRM: 'Confirm your new Data Stream',
144
151
  ACTION: 'Action',
145
152
  ACTIONS: 'Actions',
146
153
  ADD_ACTION: 'Add Action',
@@ -169,6 +176,7 @@ const DISPLAY_TITLES = {
169
176
  NO_SOURCES_NAMESPACE: 'No sources available in this namespace',
170
177
  TRY_SEARCH_OR_OTHER_NAMESPACE: 'Try searching again or select another namespace.',
171
178
  PLEASE_MAKE_SURE_UNIGNORED_NAMESPACES: 'Please make sure your cluster has unignored namespaces',
179
+ INSTALLATION: 'Installation',
172
180
  SUMMARY: 'Summary',
173
181
  TYPE: 'Type',
174
182
  NOTES: 'Notes',
@@ -186,10 +194,6 @@ const DISPLAY_TITLES = {
186
194
  DETECTED_CONTAINERS_DESCRIPTION: 'The system automatically instruments the containers it detects with a supported programming language.',
187
195
  CONTAINER_NAME: 'Container Name',
188
196
  FILTERED_COUNT_TOOLTIP: 'Represents filtered amount, out of total amount',
189
- STREAM_NAME: 'Name your Data Stream',
190
- STREAM_NAME_PLACEHOLDER: 'e.g. Highest priority',
191
- STREAM_DESCRIPTION: 'Provide a clear and descriptive name for your pipeline to ensure its purpose is easily understood by you and your team.',
192
- STREAM_CONFIRM: 'Confirm your new Data Stream',
193
197
  SEARCH_NAMESPACES: 'Search Namespaces',
194
198
  SHOW_SELECTED_ONLY: 'Show selected only',
195
199
  TO_COLLECT_OTEL_DATA: 'To collect OpenTelemetry data',
@@ -1,7 +1,7 @@
1
1
  import { StatusType, OtherStatus, DestinationTypes, EntityTypes, PlatformType } from './types.js';
2
- import { a as getProgrammingLanguageIcon } from './index-C2m4uddS.js';
2
+ import { a as getProgrammingLanguageIcon } from './index-CJs4RDHU.js';
3
3
  import 'react';
4
- import './index-CK8tITRA.js';
4
+ import './index-DMXaEyAB.js';
5
5
  import 'styled-components';
6
6
  import { e as AwsXrayLogo, a2 as VictoriaMetricsLogo, a1 as UptraceLogo, a0 as TraceloopLogo, $ as TingyunLogo, _ as TempoLogo, Z as TelemetryHubLogo, Y as SumoLogicLogo, X as SplunkLogo, W as SignozLogo, U as SeqLogo, d as AwsS3Logo, T as QuickwitLogo, G as GigapipeLogo, S as QrynLogo, R as PrometheusLogo, F as OpenTelemetryLogo, Q as OracleLogo, P as OpsVerseLogo, z as OpenObserveLogo, y as OneUptimeLogo, O as ObserveLogo, N as NewRelicLogo, M as MiddlewareLogo, x as LumigoLogo, w as LokiLogo, v as LogzioLogo, u as LightstepLogo, L as Last9Logo, K as KloudmateLogo, J as JaegerLogo, I as InstanaLogo, t as HyperDxLogo, H as HoneycombLogo, s as GroundcoverLogo, r as GreptimeLogo, q as GrafanaLogo, p as GoogleCloudPlatformLogo, o as ElasticSearchLogo, E as ElasticApmLogo, n as DynatraceLogo, m as DatadogLogo, D as Dash0Logo, l as CoralogixLogo, c as AwsCloudwatchLogo, k as ClickhouseLogo, j as ChronosphereLogo, i as ChecklyLogo, C as CauselyLogo, h as BonreeLogo, B as BetterStackLogo, g as BlobStorageLogo, f as AxiomLogo, b as AppDynamicsLogo, a as AlibabaCloudLogo, A as AlaudaLogo, a6 as RulesIcon, a3 as ActionsIcon, a4 as DestinationsIcon, a7 as SourcesIcon, a5 as NamespacesIcon, V as VmLogo } from './index-BRW_Nl-n.js';
7
7
  import { K as KafkaLogo, O as OdigosLogo } from './index-IKusBlIE.js';
@@ -62,7 +62,7 @@ const filterDestinationsByStream = (destinations, streamName) => {
62
62
  if (!streamName)
63
63
  return [];
64
64
  // note: destinations can also not have any streams assigned, and we want to show them
65
- return destinations.filter((dest) => dest.streamNames.includes(streamName) || !dest.streamNames.length);
65
+ return destinations.filter((dest) => dest.dataStreamNames.includes(streamName) || !dest.dataStreamNames.length);
66
66
  };
67
67
 
68
68
  const filterSources = (sources, filters) => {
@@ -84,7 +84,7 @@ const filterSourcesByStream = (sources, streamName) => {
84
84
  // if no stream is selected, return nothing (to prevent glitchy rendering)
85
85
  if (!streamName)
86
86
  return [];
87
- return sources.filter((source) => source.streamNames.includes(streamName));
87
+ return sources.filter((source) => source.dataStreamNames.includes(streamName));
88
88
  };
89
89
 
90
90
  const formatBytes = (bytes) => {
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
- import { _ as WarningModal } from './index-CYUrArTm.js';
2
+ import { _ as WarningModal } from './index-C_LWKMnO.js';
3
3
  import { StatusType, EntityTypes } from './types.js';
4
- import './index-CK8tITRA.js';
4
+ import './index-DMXaEyAB.js';
5
5
  import 'styled-components';
6
6
 
7
7
  const CancelWarning = ({ isOpen, noOverlay, name, onApprove, onDeny }) => {
@@ -1,7 +1,7 @@
1
1
  import { ActionType, InstrumentationRuleType } from './types.js';
2
2
  import { S as SamplerIcon, P as PiiMaskingIcon, R as RenameAttributeIcon, D as DeleteAttributeIcon, A as AddClusterInfoIcon, K as K8sLogo, I as ImageErrorIcon, C as CodeAttributesIcon, a as PayloadCollectionIcon } from './index-DGel4E-Z.js';
3
3
  import 'react';
4
- import './index-CK8tITRA.js';
4
+ import './index-DMXaEyAB.js';
5
5
  import 'styled-components';
6
6
 
7
7
  const getActionIcon = (type) => {
@@ -1,6 +1,6 @@
1
1
  import { ProgrammingLanguages, SignalType, StatusType } from './types.js';
2
2
  import 'react';
3
- import './index-CK8tITRA.js';
3
+ import './index-DMXaEyAB.js';
4
4
  import 'styled-components';
5
5
  import { I as ImageErrorIcon } from './index-DGel4E-Z.js';
6
6
  import { K as KafkaLogo, R as RedisLogo, P as PostgresLogo, N as NginxLogo, M as MysqlLogo, E as ElixirLogo, S as SwiftLogo, a as RustLogo, b as RubyLogo, c as PhpLogo, C as CPlusPlusLogo, d as CSharpLogo, D as DotnetLogo, e as PythonLogo, f as NodejsLogo, G as GoLogo, J as JavaLogo, T as TracesIcon, g as MetricsIcon, L as LogsIcon, O as OdigosLogo, I as InfoIcon, W as WarningTriangleIcon, h as ErrorTriangleIcon, i as CheckCircledIcon } from './index-IKusBlIE.js';
@@ -1,10 +1,10 @@
1
1
  import React from 'react';
2
2
  import Theme from './theme.js';
3
3
  import { E as EditIcon } from './index-CWbxXTof.js';
4
- import { B as BUTTON_TEXTS, D as DISPLAY_TITLES } from './index-HOKGoci6.js';
5
- import { B as Button, V as Text, J as NotificationNote } from './index-CYUrArTm.js';
4
+ import { B as BUTTON_TEXTS, D as DISPLAY_TITLES } from './index-B6FywnIf.js';
5
+ import { B as Button, V as Text, J as NotificationNote } from './index-C_LWKMnO.js';
6
6
  import { StatusType } from './types.js';
7
- import './index-CK8tITRA.js';
7
+ import './index-DMXaEyAB.js';
8
8
  import 'styled-components';
9
9
  import { I as InfoIcon } from './index-IKusBlIE.js';
10
10
 
@@ -4,10 +4,10 @@ import styled, { css } from 'styled-components';
4
4
  import { M as MinusIcon, f as CheckIcon, L as ListIcon, C as CodeIcon, E as ExtendArrowIcon, c as SortArrowsIcon, a as CopyIcon, b as NotebookIcon, X as XIcon, d as EyeClosedIcon, e as EyeOpenIcon, N as NoDataIcon, g as CrossIcon, S as SearchIcon, P as PlusIcon, T as TrashIcon, A as ArrowIcon } from './index-BJxaoI0G.js';
5
5
  import { StatusType, OtherStatus, SortDirection, ProgrammingLanguages } from './types.js';
6
6
  import { s as safeJsonParse, i as isEmpty } from './index-BZS1ijMm.js';
7
- import { M as MONITORS_OPTIONS, B as BUTTON_TEXTS } from './index-HOKGoci6.js';
8
- import { b as getStatusIcon, r as removeEmptyValuesFromObject, s as safeJsonStringify, f as flattenObjectKeys, m as mapConditions, c as capitalizeFirstLetter, g as getMonitorIcon, p as parseJsonStringToPrettyString, a as getProgrammingLanguageIcon, d as splitCamelString } from './index-C2m4uddS.js';
9
- import './index-CK8tITRA.js';
10
- import { u as useContainerSize, a as useCopy, g as useTransition, d as useKeyDown, e as useOnClickOutside } from './useTransition-DvT5YNul.js';
7
+ import { M as MONITORS_OPTIONS, B as BUTTON_TEXTS } from './index-B6FywnIf.js';
8
+ import { b as getStatusIcon, r as removeEmptyValuesFromObject, s as safeJsonStringify, f as flattenObjectKeys, m as mapConditions, c as capitalizeFirstLetter, g as getMonitorIcon, p as parseJsonStringToPrettyString, a as getProgrammingLanguageIcon, d as splitCamelString } from './index-CJs4RDHU.js';
9
+ import './index-DMXaEyAB.js';
10
+ import { u as useContainerSize, a as useCopy, g as useTransition, d as useKeyDown, e as useOnClickOutside } from './useTransition-BPxqZqXu.js';
11
11
  import { I as ImageErrorIcon } from './index-DGel4E-Z.js';
12
12
  import ReactDOM from 'react-dom';
13
13
  import { I as InfoIcon } from './index-IKusBlIE.js';
@@ -57,7 +57,7 @@ function createJSONStorage(getStorage, options) {
57
57
  if (str2 === null) {
58
58
  return null;
59
59
  }
60
- return JSON.parse(str2, undefined );
60
+ return JSON.parse(str2, void 0 );
61
61
  };
62
62
  const str = (_a = storage.getItem(name)) != null ? _a : null;
63
63
  if (str instanceof Promise) {
@@ -67,7 +67,7 @@ function createJSONStorage(getStorage, options) {
67
67
  },
68
68
  setItem: (name, newValue) => storage.setItem(
69
69
  name,
70
- JSON.stringify(newValue, undefined )
70
+ JSON.stringify(newValue, void 0 )
71
71
  ),
72
72
  removeItem: (name) => storage.removeItem(name)
73
73
  };
@@ -155,7 +155,7 @@ const persistImpl = (config, baseOptions) => (set, get, api) => {
155
155
  var _a2;
156
156
  return cb((_a2 = get()) != null ? _a2 : configResult);
157
157
  });
158
- const postRehydrationCallback = ((_b = options.onRehydrateStorage) == null ? undefined : _b.call(options, (_a = get()) != null ? _a : configResult)) || undefined;
158
+ const postRehydrationCallback = ((_b = options.onRehydrateStorage) == null ? void 0 : _b.call(options, (_a = get()) != null ? _a : configResult)) || void 0;
159
159
  return toThenable(storage.getItem.bind(storage))(options.name).then((deserializedStorageValue) => {
160
160
  if (deserializedStorageValue) {
161
161
  if (typeof deserializedStorageValue.version === "number" && deserializedStorageValue.version !== options.version) {
@@ -176,7 +176,7 @@ const persistImpl = (config, baseOptions) => (set, get, api) => {
176
176
  return [false, deserializedStorageValue.state];
177
177
  }
178
178
  }
179
- return [false, undefined];
179
+ return [false, void 0];
180
180
  }).then((migrationResult) => {
181
181
  var _a2;
182
182
  const [migrated, migratedState] = migrationResult;
@@ -189,12 +189,12 @@ const persistImpl = (config, baseOptions) => (set, get, api) => {
189
189
  return setItem();
190
190
  }
191
191
  }).then(() => {
192
- postRehydrationCallback == null ? undefined : postRehydrationCallback(stateFromStorage, undefined);
192
+ postRehydrationCallback == null ? void 0 : postRehydrationCallback(stateFromStorage, void 0);
193
193
  stateFromStorage = get();
194
194
  hasHydrated = true;
195
195
  finishHydrationListeners.forEach((cb) => cb(stateFromStorage));
196
196
  }).catch((e) => {
197
- postRehydrationCallback == null ? undefined : postRehydrationCallback(undefined, e);
197
+ postRehydrationCallback == null ? void 0 : postRehydrationCallback(void 0, e);
198
198
  });
199
199
  };
200
200
  api.persist = {
@@ -208,7 +208,7 @@ const persistImpl = (config, baseOptions) => (set, get, api) => {
208
208
  }
209
209
  },
210
210
  clearStorage: () => {
211
- storage == null ? undefined : storage.removeItem(options.name);
211
+ storage == null ? void 0 : storage.removeItem(options.name);
212
212
  },
213
213
  getOptions: () => options,
214
214
  rehydrate: () => hydrate(),
@@ -241,13 +241,13 @@ const useDarkMode = create()(persist((set) => ({
241
241
  storage: typeof window !== 'undefined' ? createJSONStorage(() => localStorage) : undefined,
242
242
  }));
243
243
 
244
- const initialState = {
244
+ const initialState$1 = {
245
245
  dataStreamsLoading: false,
246
246
  dataStreams: [],
247
247
  selectedStreamName: '',
248
248
  };
249
249
  const useDataStreamStore = create((set) => ({
250
- ...initialState,
250
+ ...initialState$1,
251
251
  setDataStreamsLoading: (bool) => set({ dataStreamsLoading: bool }),
252
252
  setDataStreams: (dataStreams) => set({ dataStreams }),
253
253
  addDataStreams: (newStreams) => set((state) => {
@@ -261,7 +261,7 @@ const useDataStreamStore = create((set) => ({
261
261
  return { dataStreams: filtered };
262
262
  }),
263
263
  setSelectedStreamName: (streamName) => set({ selectedStreamName: streamName }),
264
- resetDataStreamStore: () => set(initialState),
264
+ resetDataStreamStore: () => set(initialState$1),
265
265
  }));
266
266
 
267
267
  const useDrawerStore = create((set) => ({
@@ -576,18 +576,32 @@ const useSelectedStore = create((set) => ({
576
576
  resetSelectedState: () => set(() => ({ selectedSources: {} })),
577
577
  }));
578
578
 
579
- const useSetupStore = create((set) => ({
579
+ const initialState = {
580
580
  availableSources: {},
581
581
  configuredSources: {},
582
582
  configuredFutureApps: {},
583
583
  configuredDestinations: [],
584
+ configuredDestinationsUpdateOnly: [],
585
+ };
586
+ const filterByType = (existingDest, compareDest) => existingDest.destinationType.type !== compareDest.destinationType.type;
587
+ const useSetupStore = create((set) => ({
588
+ ...initialState,
584
589
  setAvailableSources: (payload) => set({ availableSources: payload }),
585
590
  setConfiguredSources: (payload) => set({ configuredSources: payload }),
586
591
  setConfiguredFutureApps: (payload) => set({ configuredFutureApps: payload }),
587
592
  setConfiguredDestinations: (payload) => set({ configuredDestinations: payload }),
588
593
  addConfiguredDestination: (payload) => set((state) => ({ configuredDestinations: [...state.configuredDestinations, payload] })),
589
- removeConfiguredDestination: (payload) => set((state) => ({ configuredDestinations: state.configuredDestinations.filter((dest) => dest.destinationType.type !== payload.destinationType.type) })),
590
- resetState: () => set(() => ({ availableSources: {}, configuredSources: {}, configuredFutureApps: {}, configuredDestinations: [] })),
594
+ removeConfiguredDestination: (payload) => set((state) => ({ configuredDestinations: state.configuredDestinations.filter((dest) => filterByType(dest, payload)) })),
595
+ setConfiguredDestinationsUpdateOnly: (payload) => set({ configuredDestinationsUpdateOnly: payload }),
596
+ addConfiguredDestinationUpdateOnly: (payload) => set((state) => {
597
+ // For update-only cases, we have to prevent duplicates using the dest ID
598
+ const merged = [...state.configuredDestinationsUpdateOnly, payload];
599
+ const mapped = merged.map((d) => [d.id, d]);
600
+ const uniqueById = Array.from(new Map(mapped).values());
601
+ return { configuredDestinationsUpdateOnly: uniqueById };
602
+ }),
603
+ removeConfiguredDestinationUpdateOnly: (payload) => set((state) => ({ configuredDestinationsUpdateOnly: state.configuredDestinationsUpdateOnly.filter((dest) => filterByType(dest, payload)) })),
604
+ resetState: () => set(() => ({ ...initialState })),
591
605
  }));
592
606
 
593
607
  function styleInject(css, ref) {
@@ -4,7 +4,7 @@ export declare const MOCK_SOURCE_JAEGER: {
4
4
  namespace: string;
5
5
  name: string;
6
6
  kind: K8sResourceKind;
7
- streamNames: never[];
7
+ dataStreamNames: never[];
8
8
  selected: boolean;
9
9
  otelServiceName: string;
10
10
  numberOfInstances: number;
package/lib/snippets.js CHANGED
@@ -1,17 +1,17 @@
1
- export { A as AddButton } from './index-CYUrArTm.js';
2
- export { E as EditButton, N as NoteBackToSummary } from './index-DE7A6Q_i.js';
1
+ export { A as AddButton } from './index-C_LWKMnO.js';
2
+ export { E as EditButton, N as NoteBackToSummary } from './index-CWufhl9G.js';
3
3
  import 'react';
4
4
  import './theme.js';
5
- import './index-CK8tITRA.js';
5
+ import './index-DMXaEyAB.js';
6
6
  import './types.js';
7
7
  import 'styled-components';
8
8
  import './index-BJxaoI0G.js';
9
9
  import './index-BZS1ijMm.js';
10
- import './index-HOKGoci6.js';
11
- import './index-C0N2DFBu.js';
10
+ import './index-B6FywnIf.js';
11
+ import './index-CFnxjzaW.js';
12
12
  import './index-DGel4E-Z.js';
13
- import './index-C2m4uddS.js';
13
+ import './index-CJs4RDHU.js';
14
14
  import './index-IKusBlIE.js';
15
- import './useTransition-DvT5YNul.js';
15
+ import './useTransition-BPxqZqXu.js';
16
16
  import 'react-dom';
17
17
  import './index-CWbxXTof.js';
@@ -17,6 +17,7 @@ export interface ISetupState {
17
17
  configuredSources: SourceSelectionFormData;
18
18
  configuredFutureApps: NamespaceSelectionFormData;
19
19
  configuredDestinations: Destination[];
20
+ configuredDestinationsUpdateOnly: Destination[];
20
21
  }
21
22
  interface ISetupStateSetters {
22
23
  setAvailableSources: (payload: ISetupState['availableSources']) => void;
@@ -25,6 +26,9 @@ interface ISetupStateSetters {
25
26
  setConfiguredDestinations: (payload: ISetupState['configuredDestinations']) => void;
26
27
  addConfiguredDestination: (payload: Destination) => void;
27
28
  removeConfiguredDestination: (payload: Destination) => void;
29
+ setConfiguredDestinationsUpdateOnly: (payload: ISetupState['configuredDestinationsUpdateOnly']) => void;
30
+ addConfiguredDestinationUpdateOnly: (payload: Destination) => void;
31
+ removeConfiguredDestinationUpdateOnly: (payload: Destination) => void;
28
32
  resetState: () => void;
29
33
  }
30
34
  export declare const useSetupStore: import("zustand").UseBoundStore<import("zustand").StoreApi<ISetupState & ISetupStateSetters>>;
package/lib/store.js CHANGED
@@ -1,4 +1,4 @@
1
- export { u as useDarkMode, a as useDataStreamStore, b as useDrawerStore, c as useEntityStore, d as useFilterStore, e as useInstrumentStore, f as useModalStore, g as useNotificationStore, h as usePendingStore, i as useSelectedStore, j as useSetupStore } from './index-CK8tITRA.js';
1
+ export { u as useDarkMode, a as useDataStreamStore, b as useDrawerStore, c as useEntityStore, d as useFilterStore, e as useInstrumentStore, f as useModalStore, g as useNotificationStore, h as usePendingStore, i as useSelectedStore, j as useSetupStore } from './index-DMXaEyAB.js';
2
2
  import './types.js';
3
3
  import 'react';
4
4
  import 'styled-components';
package/lib/theme.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { u as useDarkMode, l as animations } from './index-CK8tITRA.js';
2
+ import { u as useDarkMode, l as animations } from './index-DMXaEyAB.js';
3
3
  import { ThemeProvider, useTheme } from 'styled-components';
4
4
  import './types.js';
5
5
 
@@ -67,7 +67,7 @@ export declare enum DestinationTypes {
67
67
  export interface Destination {
68
68
  id: string;
69
69
  name: string;
70
- streamNames: string[];
70
+ dataStreamNames: string[];
71
71
  exportedSignals: {
72
72
  traces: boolean;
73
73
  metrics: boolean;
@@ -14,7 +14,7 @@ export interface Source extends WorkloadId {
14
14
  selected: boolean;
15
15
  otelServiceName: string;
16
16
  numberOfInstances?: number;
17
- streamNames: string[];
17
+ dataStreamNames: string[];
18
18
  containers: {
19
19
  containerName: string;
20
20
  language: ProgrammingLanguages;
@@ -1,10 +1,10 @@
1
1
  import { ActionType, StatusType, AddNodeTypes, EntityTypes, FieldTypes } from './types.js';
2
2
  import { useState, useEffect, useMemo } from 'react';
3
- import { g as useNotificationStore, f as useModalStore, b as useDrawerStore, c as useEntityStore, a as useDataStreamStore, j as useSetupStore } from './index-CK8tITRA.js';
3
+ import { g as useNotificationStore, f as useModalStore, b as useDrawerStore, c as useEntityStore, a as useDataStreamStore, j as useSetupStore } from './index-DMXaEyAB.js';
4
4
  import 'styled-components';
5
5
  import { i as isEmpty, s as safeJsonParse } from './index-BZS1ijMm.js';
6
- import { F as FORM_ALERTS } from './index-HOKGoci6.js';
7
- import { b as useGenericForm } from './useTransition-DvT5YNul.js';
6
+ import { F as FORM_ALERTS } from './index-B6FywnIf.js';
7
+ import { b as useGenericForm } from './useTransition-BPxqZqXu.js';
8
8
  import { g as getIdFromSseTarget } from './index-7-KCQK-x.js';
9
9
 
10
10
  const INITIAL$2 = {
@@ -376,7 +376,7 @@ const mapSourceToAvailableSource = (source, selectedStreamName, selectAll) => {
376
376
  return {
377
377
  name: source.name,
378
378
  kind: source.kind,
379
- selected: typeof selectAll === 'boolean' ? selectAll : source.selected && source.streamNames?.includes(selectedStreamName) ? source.selected : false,
379
+ selected: typeof selectAll === 'boolean' ? selectAll : source.selected && source.dataStreamNames?.includes(selectedStreamName) ? source.selected : false,
380
380
  numberOfInstances: source.numberOfInstances,
381
381
  };
382
382
  };
@@ -1,6 +1,6 @@
1
1
  import React, { useState, useRef, useEffect, useCallback } from 'react';
2
- import './index-HOKGoci6.js';
3
- import { g as useNotificationStore } from './index-CK8tITRA.js';
2
+ import './index-B6FywnIf.js';
3
+ import { g as useNotificationStore } from './index-DMXaEyAB.js';
4
4
  import { CodeAttributesKeyTypes, PayloadCollectionKeyTypes } from './types.js';
5
5
  import styled from 'styled-components';
6
6
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@odigos/ui-kit",
3
- "version": "0.0.25",
3
+ "version": "0.0.26",
4
4
  "author": "Odigos",
5
5
  "repository": {
6
6
  "type": "git",
@@ -84,7 +84,7 @@
84
84
  "zustand": "^5.0.3"
85
85
  },
86
86
  "dependencies": {
87
- "@xyflow/react": "^12.5.5",
87
+ "@xyflow/react": "^12.6.3",
88
88
  "javascript-time-ago": "^2.5.11",
89
89
  "lottie-react": "^2.4.1",
90
90
  "prism-react-renderer": "^2.4.1",
@@ -92,13 +92,13 @@
92
92
  "react-dom": "^19.1.0",
93
93
  "react-error-boundary": "^5.0.0",
94
94
  "styled-components": "6.1.15",
95
- "zustand": "^5.0.3"
95
+ "zustand": "^5.0.4"
96
96
  },
97
97
  "devDependencies": {
98
- "@babel/core": "^7.26.10",
99
- "@babel/preset-env": "^7.26.9",
100
- "@babel/preset-react": "^7.26.3",
101
- "@babel/preset-typescript": "^7.27.0",
98
+ "@babel/core": "^7.27.1",
99
+ "@babel/preset-env": "^7.27.2",
100
+ "@babel/preset-react": "^7.27.1",
101
+ "@babel/preset-typescript": "^7.27.1",
102
102
  "@rollup/plugin-commonjs": "^28.0.3",
103
103
  "@rollup/plugin-json": "^6.1.0",
104
104
  "@rollup/plugin-node-resolve": "^16.0.1",
@@ -106,20 +106,20 @@
106
106
  "@storybook/addon-webpack5-compiler-babel": "^3.0.6",
107
107
  "@storybook/react": "^8.6.12",
108
108
  "@storybook/react-webpack5": "^8.6.12",
109
- "@types/node": "^22.14.0",
110
- "@types/react": "^19.1.0",
111
- "@types/react-dom": "^19.1.2",
109
+ "@types/node": "^22.15.18",
110
+ "@types/react": "^19.1.4",
111
+ "@types/react-dom": "^19.1.5",
112
112
  "@types/react-lottie": "^1.2.10",
113
- "@typescript-eslint/eslint-plugin": "^8.29.1",
114
- "@typescript-eslint/parser": "^8.29.1",
113
+ "@typescript-eslint/eslint-plugin": "^8.32.1",
114
+ "@typescript-eslint/parser": "^8.32.1",
115
115
  "babel-loader": "^10.0.0",
116
116
  "babel-plugin-styled-components": "^2.1.4",
117
- "eslint": "^9.24.0",
117
+ "eslint": "^9.26.0",
118
118
  "eslint-plugin-react": "^7.37.5",
119
119
  "eslint-plugin-storybook": "^0.12.0",
120
120
  "html-webpack-plugin": "^5.6.3",
121
121
  "postcss": "^8.5.3",
122
- "rollup": "^4.39.0",
122
+ "rollup": "^4.40.2",
123
123
  "rollup-plugin-postcss": "^4.0.2",
124
124
  "rollup-plugin-typescript2": "^0.36.0",
125
125
  "storybook": "^8.6.12",