@odigos/ui-kit 0.0.71 → 0.0.73

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,19 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.0.73](https://github.com/odigos-io/ui-kit/compare/ui-kit-v0.0.72...ui-kit-v0.0.73) (2025-08-06)
4
+
5
+
6
+ ### Features
7
+
8
+ * source-drawer libraries ([#289](https://github.com/odigos-io/ui-kit/issues/289)) ([fd46802](https://github.com/odigos-io/ui-kit/commit/fd468023aeb5a44a322eb28720020946943c47e9))
9
+
10
+ ## [0.0.72](https://github.com/odigos-io/ui-kit/compare/ui-kit-v0.0.71...ui-kit-v0.0.72) (2025-08-05)
11
+
12
+
13
+ ### Bug Fixes
14
+
15
+ * remove local font files ([#287](https://github.com/odigos-io/ui-kit/issues/287)) ([0f79849](https://github.com/odigos-io/ui-kit/commit/0f798498cb85bf4ba92ee4df428e6905d5f96070))
16
+
3
17
  ## [0.0.71](https://github.com/odigos-io/ui-kit/compare/ui-kit-v0.0.70...ui-kit-v0.0.71) (2025-08-05)
4
18
 
5
19
 
package/lib/components.js CHANGED
@@ -1,16 +1,16 @@
1
- import { B as Button } from './index-232ab6d4.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-232ab6d4.js';
3
- export { C as CancelWarning, D as DeleteWarning } from './index-e6d9809c.js';
1
+ import { B as Button } from './index-a1b59a38.js';
2
+ export { A as AutocompleteInput, a as Badge, a6 as CenterThis, C as Checkbox, b as Code, c as ConditionDetails, D as DataCard, e as DataCardFieldTypes, d as DataCardFields, f as DataFinger, g as DataTab, h as DescribeRow, i as Divider, j as DocsButton, k as Drawer, m as DrawerFooter, l as DrawerHeader, n as Dropdown, E as ExtendArrow, F as FadeLoader, o as FieldError, p as FieldLabel, a5 as FlexColumn, a4 as FlexRow, H as Header, I as IconButton, q as IconGroup, r as IconTitleBadge, s as IconWrapped, t as IconsNav, u as ImageControlled, v as Input, w as InputList, x as InputTable, y as InteractiveTable, K as KeyValueInputsList, M as Modal, a9 as ModalBody, z as MonitorsCheckboxes, G as MonitorsIcons, N as NavigationButtons, J as NoDataFound, L as NotificationNote, a8 as Overlay, P as Popup, O as PopupForm, S as ScrollX, Q as SectionTitle, R as Segment, U as SelectionButton, V as SkeletonLoader, W as Status, X as Stepper, Y as TabList, aa as TableContainer, ab as TableTitleWrap, ac as TableWrap, Z as Tag, _ as Text, $ as TextArea, a0 as Toggle, T as ToggleCodeComponent, a1 as Tooltip, a2 as TraceLoader, a7 as VerticalScroll, a3 as WarningModal } from './index-a1b59a38.js';
3
+ export { C as CancelWarning, D as DeleteWarning } from './index-45ee08be.js';
4
4
  import React, { createContext, Component, createElement } from 'react';
5
- import { T as Theme } from './index-cddd3ca2.js';
5
+ import { T as Theme } from './index-fdf3a268.js';
6
6
  import 'styled-components';
7
- import './index-9f31ac90.js';
7
+ import './index-ba84d272.js';
8
8
  import './types.js';
9
9
  import './index-5e5f7bda.js';
10
- import './index-fd7a7b89.js';
11
- import './index-3250fb71.js';
10
+ import './index-0d93b2b4.js';
11
+ import './index-1d5c06a0.js';
12
12
  import 'react-dom';
13
- import './useTransition-53e8d81c.js';
13
+ import './useTransition-ba7b6d8a.js';
14
14
 
15
15
  const ErrorBoundaryContext = createContext(null);
16
16
 
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-cddd3ca2.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-fdf3a268.js';
2
2
  export { D as DESTINATION_CATEGORIES } from './index-1cb4f9e2.js';
3
3
  import 'react';
4
4
  import './types.js';
@@ -2,7 +2,7 @@ import { type FC } from 'react';
2
2
  import { type DescribeSource, type Source, type WorkloadId } from '@/types';
3
3
  interface DescribeProps {
4
4
  source: Source;
5
- fetchDescribeSource: (req: {
5
+ fetchSourceDescribe: (req: {
6
6
  variables: WorkloadId;
7
7
  }) => Promise<{
8
8
  data?: {
@@ -1,16 +1,14 @@
1
1
  import { type FC } from 'react';
2
- import { type DescribeSource, type PersistSources, type SourceFormData, type WorkloadId } from '@/types';
2
+ import { type DescribeProps } from './describe';
3
+ import { type LibrariesProps } from './libraries';
4
+ import { type PersistSources, type SourceFormData, type WorkloadId, type Source } from '@/types';
3
5
  interface SourceDrawerProps {
4
6
  persistSources: PersistSources;
5
7
  updateSource: (sourceId: WorkloadId, payload: SourceFormData) => Promise<void>;
6
- fetchDescribeSource: (req: {
7
- variables: WorkloadId;
8
- }) => Promise<{
9
- data?: {
10
- describeSource: DescribeSource;
11
- };
12
- }>;
13
8
  restartWorkloads: (sourceIds: WorkloadId[]) => Promise<void>;
9
+ fetchSourceById: (id: WorkloadId, bypassPaginationLoader?: boolean) => Promise<Source | undefined>;
10
+ fetchSourceDescribe: DescribeProps['fetchSourceDescribe'];
11
+ fetchSourceLibraries: LibrariesProps['fetchSourceLibraries'];
14
12
  }
15
13
  declare const SourceDrawer: FC<SourceDrawerProps>;
16
14
  export { SourceDrawer, type SourceDrawerProps };
@@ -0,0 +1,14 @@
1
+ import { type FC } from 'react';
2
+ import { type InstrumentationInstanceComponent, type Source, type WorkloadId } from '@/types';
3
+ interface LibrariesProps {
4
+ source: Source;
5
+ fetchSourceLibraries: (req: {
6
+ variables: WorkloadId;
7
+ }) => Promise<{
8
+ data?: {
9
+ instrumentationInstanceComponents: InstrumentationInstanceComponent[];
10
+ };
11
+ }>;
12
+ }
13
+ declare const Libraries: FC<LibrariesProps>;
14
+ export { Libraries, type LibrariesProps };
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-cddd3ca2.js';
4
- import { ActionType, ActionKeyTypes, InputTypes, FieldTypes, EntityTypes, StatusType, Crud, OtherStatus, NodeTypes, EdgeTypes, AddNodeTypes, SignalType, HeadersCollectionKeyTypes, CustomInstrumentationsKeyTypes, CodeAttributesKeyTypes, PayloadCollectionKeyTypes, InstrumentationRuleType, K8sResourceKind, 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-232ab6d4.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-fdf3a268.js';
4
+ import { ActionType, ActionKeyTypes, InputTypes, FieldTypes, EntityTypes, StatusType, Crud, OtherStatus, NodeTypes, EdgeTypes, AddNodeTypes, SignalType, HeadersCollectionKeyTypes, CustomInstrumentationsKeyTypes, CodeAttributesKeyTypes, PayloadCollectionKeyTypes, InstrumentationRuleType, MountMethod, AgentEnvVarsInjectionMethod, Profile, InstallationMethod } from './types.js';
5
+ import { e as DataCardFieldTypes, p as FieldLabel, C as Checkbox, o as FieldError, v as Input, x as InputTable, K as KeyValueInputsList, w as InputList, _ as Text, R as Segment, Q as SectionTitle, j as DocsButton, z as MonitorsCheckboxes, $ as TextArea, k as Drawer, c as ConditionDetails, D as DataCard, a5 as FlexColumn, M as Modal, N as NavigationButtons, a9 as ModalBody, L as NotificationNote, A as AutocompleteInput, i as Divider, W as Status, a4 as FlexRow, a1 as Tooltip, s as IconWrapped, G as MonitorsIcons, aa as TableContainer, ab as TableTitleWrap, r as IconTitleBadge, ac as TableWrap, y as InteractiveTable, a6 as CenterThis, J as NoDataFound, a2 as TraceLoader, a as Badge, E as ExtendArrow, a7 as VerticalScroll, U as SelectionButton, B as Button, n as Dropdown, ad as nodeConfig, ae as useNodesState, af as useEdgesState, ag as Flow, ah as applyNodeChanges, P as Popup, a0 as Toggle, I as IconButton, ai as AddButton, F as FadeLoader, g as DataTab, X as Stepper, d as DataCardFields, Z as Tag, aj as MarkerType, t as IconsNav, ak as CopyText, h as DescribeRow, al as PodContainer, am as SourceContainer, q as IconGroup, O as PopupForm } from './index-a1b59a38.js';
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-3250fb71.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-7735fec0.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';
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-53e8d81c.js';
11
- import { E as EditIcon, T as TrashIcon, S as SearchIcon, h as CheckIcon, P as PlusIcon, a as CopyIcon } from './index-9f31ac90.js';
12
- import { D as DeleteWarning, C as CancelWarning } from './index-e6d9809c.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-fd7a7b89.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-bd0f07ee.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-45ee08be.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';
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-e332a81f.js';
18
+ import { a6 as RulesIcon, a7 as SourcesIcon, a3 as ActionsIcon, a4 as DestinationsIcon } from './index-59aacfd1.js';
19
19
  import 'react-dom';
20
20
 
21
21
  const buildCard$3 = (action) => {
@@ -4193,26 +4193,59 @@ const SlackInvite = ({}) => {
4193
4193
  React.createElement(SlackLogo, null)));
4194
4194
  };
4195
4195
 
4196
- const Describe$1 = ({ source, fetchDescribeSource }) => {
4196
+ const buildCard = (source) => {
4197
+ const { name, kind, namespace } = source;
4198
+ const arr = [
4199
+ { title: DISPLAY_TITLES.NAMESPACE, value: namespace },
4200
+ { title: DISPLAY_TITLES.KIND, value: kind },
4201
+ { title: DISPLAY_TITLES.NAME, value: name, tooltip: 'K8s resource name' },
4202
+ { type: DataCardFieldTypes.Divider },
4203
+ {
4204
+ type: DataCardFieldTypes.CopyText,
4205
+ value: `kubectl get ${kind} ${name} -n ${namespace}`.toLowerCase(),
4206
+ },
4207
+ ];
4208
+ return arr;
4209
+ };
4210
+
4211
+ const Container$2 = styled.div `
4212
+ display: flex;
4213
+ flex-direction: column;
4214
+ gap: 24px;
4215
+ padding: 4px;
4216
+ `;
4217
+ const SourceForm = ({ formData, handleFormChange }) => {
4218
+ return (React.createElement(Container$2, null,
4219
+ React.createElement(Input, { name: 'sourceName', title: 'Source name', tooltip: 'This overrides the default service name that runs in your cluster.', placeholder: 'Use a name that overrides the source name', value: formData.otelServiceName, onChange: ({ target: { value } }) => handleFormChange('otelServiceName', value) })));
4220
+ };
4221
+
4222
+ const Describe$1 = ({ source, fetchSourceDescribe }) => {
4223
+ const [failed, setFailed] = useState(false);
4197
4224
  const [describe, setDescribe] = useState(null);
4198
4225
  useEffect(() => {
4199
4226
  if (!source)
4200
4227
  return;
4201
- fetchDescribeSource({
4228
+ fetchSourceDescribe({
4202
4229
  variables: {
4203
4230
  namespace: source.namespace,
4204
4231
  name: source.name,
4205
4232
  kind: source.kind,
4206
4233
  },
4207
4234
  }).then(({ data }) => {
4208
- setDescribe(data?.describeSource || null);
4235
+ if (data?.describeSource) {
4236
+ setDescribe(data.describeSource);
4237
+ }
4238
+ else {
4239
+ setFailed(true);
4240
+ }
4209
4241
  });
4210
- }, [fetchDescribeSource, source]);
4211
- if (!describe) {
4242
+ }, [fetchSourceDescribe, source]);
4243
+ if (!describe && !failed) {
4212
4244
  return (React.createElement(CenterThis, null,
4213
4245
  React.createElement(FadeLoader, null)));
4214
4246
  }
4215
- return (React.createElement(FlexColumn, { "$gap": 12 }, !describe.pods?.length ? (React.createElement(CenterThis, null,
4247
+ return (React.createElement(FlexColumn, { "$gap": 12 }, failed ? (React.createElement(CenterThis, null,
4248
+ React.createElement(NoDataFound, { subTitle: 'Could not fetch describe for this source' }))) : !describe?.pods?.length ? (React.createElement(CenterThis, null,
4216
4249
  React.createElement(NoDataFound, { subTitle: 'Check if you have any running pods and try again' }))) : (describe.pods.map(({ podName, nodeName, phase, agentInjected, runningLatestWorkloadRevision, containers }) => {
4217
4250
  const podHasErrors = phase.status !== StatusType.Success || hasUnhealthyInstances(containers);
4218
4251
  const podStatus = podHasErrors ? StatusType.Error : StatusType.Success;
@@ -4248,36 +4281,65 @@ const Describe$1 = ({ source, fetchDescribeSource }) => {
4248
4281
  }))));
4249
4282
  };
4250
4283
 
4251
- const buildCard = (source) => {
4252
- const { name, kind, namespace } = source;
4253
- const arr = [
4254
- { title: DISPLAY_TITLES.NAMESPACE, value: namespace },
4255
- { title: DISPLAY_TITLES.KIND, value: kind },
4256
- { title: DISPLAY_TITLES.NAME, value: name, tooltip: 'K8s resource name' },
4257
- { type: DataCardFieldTypes.Divider },
4258
- {
4259
- type: DataCardFieldTypes.CopyText,
4260
- value: `kubectl get ${kind} ${name} -n ${namespace}`.toLowerCase(),
4261
- },
4262
- ];
4263
- return arr;
4264
- };
4265
-
4266
- const Container$2 = styled.div `
4267
- display: flex;
4268
- flex-direction: column;
4269
- gap: 24px;
4270
- padding: 4px;
4284
+ const Row = styled(FlexRow) `
4285
+ width: 100%;
4286
+ align-items: center;
4287
+ justify-content: space-between;
4271
4288
  `;
4272
- const SourceForm = ({ formData, handleFormChange }) => {
4273
- return (React.createElement(Container$2, null,
4274
- React.createElement(Input, { name: 'sourceName', title: 'Source name', tooltip: 'This overrides the default service name that runs in your cluster.', placeholder: 'Use a name that overrides the source name', value: formData.otelServiceName, onChange: ({ target: { value } }) => handleFormChange('otelServiceName', value) })));
4289
+ const Libraries = ({ source, fetchSourceLibraries }) => {
4290
+ const theme = Theme.useTheme();
4291
+ const [failed, setFailed] = useState(false);
4292
+ const [libraries, setLibraries] = useState(null);
4293
+ useEffect(() => {
4294
+ if (!source)
4295
+ return;
4296
+ fetchSourceLibraries({
4297
+ variables: {
4298
+ namespace: source.namespace,
4299
+ name: source.name,
4300
+ kind: source.kind,
4301
+ },
4302
+ }).then(({ data }) => {
4303
+ if (data?.instrumentationInstanceComponents) {
4304
+ setLibraries(data.instrumentationInstanceComponents);
4305
+ }
4306
+ else {
4307
+ setFailed(true);
4308
+ }
4309
+ });
4310
+ }, [fetchSourceLibraries, source]);
4311
+ if (!libraries && !failed) {
4312
+ return (React.createElement(CenterThis, null,
4313
+ React.createElement(FadeLoader, null)));
4314
+ }
4315
+ return (React.createElement(FlexColumn, { "$gap": 12 }, failed ? (React.createElement(CenterThis, null,
4316
+ React.createElement(NoDataFound, { subTitle: 'Could not fetch libraries for this source' }))) : !libraries?.length ? (React.createElement(CenterThis, { "$gap": 12 },
4317
+ React.createElement(NoDataFound, { title: 'No libraries found', subTitle: '' }),
4318
+ 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
4319
+ .sort((a, b) => a.name.localeCompare(b.name))
4320
+ .map(({ name, nonIdentifyingAttributes }, i) => (React.createElement(Fragment, { key: `library-${name}` },
4321
+ React.createElement(Row, null,
4322
+ React.createElement(Text, { size: 12, color: theme.text.grey }, name),
4323
+ React.createElement(FlexRow, { "$gap": 4 }, nonIdentifyingAttributes.map(({ key, value }) => {
4324
+ if (isStringABoolean(value) && parseBooleanFromString(value)) {
4325
+ switch (key) {
4326
+ case 'is_standard_lib':
4327
+ return React.createElement(Status, { key: `${name}-${key}`, status: StatusType.Default, title: 'STANDARD', withBorder: true });
4328
+ default:
4329
+ console.warn(`Unhandled non-identifying attribute: ${key}`);
4330
+ return null;
4331
+ }
4332
+ }
4333
+ return null;
4334
+ }))),
4335
+ i !== libraries.length - 1 && React.createElement(Divider, { length: '100%', margin: '0' }))))))));
4275
4336
  };
4276
4337
 
4277
4338
  var Tabs;
4278
4339
  (function (Tabs) {
4279
4340
  Tabs["Overview"] = "Overview";
4280
4341
  Tabs["Pods"] = "Pods";
4342
+ Tabs["Libraries"] = "Libraries";
4281
4343
  })(Tabs || (Tabs = {}));
4282
4344
  const FormContainer = styled.div `
4283
4345
  width: 100%;
@@ -4291,7 +4353,7 @@ const DataContainer$2 = styled.div `
4291
4353
  flex-direction: column;
4292
4354
  gap: 12px;
4293
4355
  `;
4294
- const SourceDrawer = ({ persistSources, updateSource, fetchDescribeSource, restartWorkloads }) => {
4356
+ const SourceDrawer = ({ persistSources, updateSource, restartWorkloads, fetchSourceById, fetchSourceDescribe, fetchSourceLibraries }) => {
4295
4357
  const { sources } = useEntityStore();
4296
4358
  const { selectedStreamName } = useDataStreamStore();
4297
4359
  const { drawerType, drawerEntityId } = useDrawerStore();
@@ -4301,15 +4363,23 @@ const SourceDrawer = ({ persistSources, updateSource, fetchDescribeSource, resta
4301
4363
  const [isEditing, setIsEditing] = useState(false);
4302
4364
  const [isFormDirty, setIsFormDirty] = useState(false);
4303
4365
  const [selectedTab, setSelectedTab] = useState(Tabs.Overview);
4366
+ const [fetchedSource, setFetchedSource] = useState(null);
4367
+ // this is used to fetch the source on drawer open, so we ensure we have the latest data
4368
+ useEffect(() => {
4369
+ if (!drawerEntityId)
4370
+ return;
4371
+ fetchSourceById(drawerEntityId).then((source) => setFetchedSource(source || null));
4372
+ }, [drawerEntityId]);
4304
4373
  const { formData, handleFormChange, resetFormData, loadFormWithDrawerItem } = useSourceFormData();
4305
4374
  const thisItem = useMemo(() => {
4306
4375
  if (isOpen)
4307
4376
  return null;
4308
- const found = sourcesByStream?.find((x) => x.namespace === drawerEntityId.namespace && x.name === drawerEntityId.name && x.kind === drawerEntityId.kind);
4377
+ const found = fetchedSource ||
4378
+ sourcesByStream?.find((x) => x.namespace === drawerEntityId.namespace && x.name === drawerEntityId.name && x.kind === drawerEntityId.kind);
4309
4379
  if (!!found)
4310
4380
  loadFormWithDrawerItem(found);
4311
4381
  return found;
4312
- }, [isOpen, drawerEntityId, sourcesByStream]);
4382
+ }, [isOpen, drawerEntityId, sourcesByStream, fetchedSource]);
4313
4383
  const containersData = useMemo(() => {
4314
4384
  const runtimeCondition = thisItem?.conditions?.find(({ type }) => type === 'RuntimeDetection');
4315
4385
  return {
@@ -4318,23 +4388,6 @@ const SourceDrawer = ({ persistSources, updateSource, fetchDescribeSource, resta
4318
4388
  containers: thisItem?.containers || [],
4319
4389
  };
4320
4390
  }, [thisItem]);
4321
- const tabs = useMemo(() => {
4322
- const arr = [
4323
- {
4324
- label: Tabs.Overview,
4325
- onClick: () => setSelectedTab(Tabs.Overview),
4326
- selected: selectedTab === Tabs.Overview,
4327
- },
4328
- ];
4329
- if (thisItem?.kind !== K8sResourceKind.CronJob) {
4330
- arr.push({
4331
- label: Tabs.Pods,
4332
- onClick: () => setSelectedTab(Tabs.Pods),
4333
- selected: selectedTab === Tabs.Pods,
4334
- });
4335
- }
4336
- return arr;
4337
- }, [thisItem?.kind, selectedTab]);
4338
4391
  if (!thisItem)
4339
4392
  return null;
4340
4393
  const handleEdit = (bool) => {
@@ -4361,7 +4414,23 @@ const SourceDrawer = ({ persistSources, updateSource, fetchDescribeSource, resta
4361
4414
  setIsFormDirty(false);
4362
4415
  setIsEditing(false);
4363
4416
  };
4364
- return (React.createElement(OverviewDrawer, { ref: drawerRef, title: thisItem.otelServiceName || thisItem.name, titleTooltip: 'This attribute is used to identify the name of the service (service.name) that is generating telemetry data.', hideEditTitleFromEdit: true, icons: getContainersIcons(thisItem.containers), isEdit: isEditing, isFormDirty: isFormDirty, onEdit: selectedTab === Tabs.Overview ? handleEdit : undefined, onSave: handleSave, onDelete: selectedTab === Tabs.Overview ? handleDelete : undefined, onCancel: handleCancel, isLastItem: sourcesByStream.length === 1, tabs: tabs, headerActionButtons: [
4417
+ return (React.createElement(OverviewDrawer, { ref: drawerRef, title: thisItem.otelServiceName || thisItem.name, titleTooltip: 'This attribute is used to identify the name of the service (service.name) that is generating telemetry data.', hideEditTitleFromEdit: true, icons: getContainersIcons(thisItem.containers), isEdit: isEditing, isFormDirty: isFormDirty, onEdit: selectedTab === Tabs.Overview ? handleEdit : undefined, onSave: handleSave, onDelete: selectedTab === Tabs.Overview ? handleDelete : undefined, onCancel: handleCancel, isLastItem: sourcesByStream.length === 1, tabs: [
4418
+ {
4419
+ label: Tabs.Overview,
4420
+ onClick: () => setSelectedTab(Tabs.Overview),
4421
+ selected: selectedTab === Tabs.Overview,
4422
+ },
4423
+ {
4424
+ label: Tabs.Pods,
4425
+ onClick: () => setSelectedTab(Tabs.Pods),
4426
+ selected: selectedTab === Tabs.Pods,
4427
+ },
4428
+ {
4429
+ label: Tabs.Libraries,
4430
+ onClick: () => setSelectedTab(Tabs.Libraries),
4431
+ selected: selectedTab === Tabs.Libraries,
4432
+ },
4433
+ ], headerActionButtons: [
4365
4434
  {
4366
4435
  'data-id': 'rollout-restart',
4367
4436
  variant: 'tertiary',
@@ -4378,7 +4447,7 @@ const SourceDrawer = ({ persistSources, updateSource, fetchDescribeSource, resta
4378
4447
  } }))) : (React.createElement(DataContainer$2, null,
4379
4448
  React.createElement(ConditionDetails, { conditions: thisItem.conditions || [] }),
4380
4449
  React.createElement(DataCard, { title: DISPLAY_TITLES.SOURCE_DETAILS, data: !!thisItem ? buildCard(thisItem) : [] }),
4381
- React.createElement(DataCard, { title: DISPLAY_TITLES.DETECTED_CONTAINERS, titleBadge: containersData.isLoading ? OtherStatus.Loading : containersData.containers.length, description: containersData.description || DISPLAY_TITLES.DETECTED_CONTAINERS_DESCRIPTION }, containersData.containers.map((container) => (React.createElement(SourceContainer, { key: `source-container-${container.containerName}`, ...container, callbackRuntimeOverride: async (payload) => await updateSource(drawerEntityId, payload) }))))))) : (React.createElement(Describe$1, { source: thisItem, fetchDescribeSource: fetchDescribeSource }))));
4450
+ React.createElement(DataCard, { title: DISPLAY_TITLES.DETECTED_CONTAINERS, titleBadge: containersData.isLoading ? OtherStatus.Loading : containersData.containers.length, description: containersData.description || DISPLAY_TITLES.DETECTED_CONTAINERS_DESCRIPTION }, containersData.containers.map((container) => (React.createElement(SourceContainer, { key: `source-container-${container.containerName}`, ...container, callbackRuntimeOverride: async (payload) => await updateSource(drawerEntityId, payload) }))))))) : selectedTab === Tabs.Pods ? (React.createElement(Describe$1, { source: thisItem, fetchSourceDescribe: fetchSourceDescribe })) : (React.createElement(Libraries, { source: thisItem, fetchSourceLibraries: fetchSourceLibraries }))));
4382
4451
  };
4383
4452
 
4384
4453
  const SearchWrapper = styled.div `
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-fd7a7b89.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-bd0f07ee.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-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';
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-cddd3ca2.js';
4
+ export { g as getActionIcon, c as getEntityId, d as getInstrumentationRuleIcon, e as getProgrammingLanguageIcon } from './index-fdf3a268.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-3250fb71.js';
10
- import './index-e332a81f.js';
9
+ import './index-1d5c06a0.js';
10
+ import './index-59aacfd1.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-cddd3ca2.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';
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-53e8d81c.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-53e8d81c.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';
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-cddd3ca2.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-cddd3ca2.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-3250fb71.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-7735fec0.js';
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';
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-9f31ac90.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-e332a81f.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-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';
8
8
  import './types.js';
9
9
  import 'styled-components';
10
10
 
@@ -1,8 +1,8 @@
1
1
  import { StatusType, OtherStatus, SignalType } from './types.js';
2
2
  import 'react';
3
- import './index-cddd3ca2.js';
3
+ import './index-fdf3a268.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-3250fb71.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-1d5c06a0.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-cddd3ca2.js';
2
+ import { T as Theme } from './index-fdf3a268.js';
3
3
 
4
4
  const OdigosLogo = ({ 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-232ab6d4.js';
2
+ import { a3 as WarningModal } from './index-a1b59a38.js';
3
3
  import { StatusType, EntityTypes } from './types.js';
4
- import './index-cddd3ca2.js';
4
+ import './index-fdf3a268.js';
5
5
  import 'styled-components';
6
6
 
7
7
  const CancelWarning = ({ isOpen, noOverlay, name, onApprove, onDeny }) => {
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { T as Theme } from './index-cddd3ca2.js';
2
+ import { T as Theme } from './index-fdf3a268.js';
3
3
 
4
4
  const VmLogo = ({ size = 16, fill: f, rotate = 0, onClick, strokeWidth = 1 }) => {
5
5
  const theme = Theme.useTheme();
@@ -1,13 +1,13 @@
1
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-cddd3ca2.js';
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';
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-9f31ac90.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-ba84d272.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-fd7a7b89.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';
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-53e8d81c.js';
10
- import { I as InfoIcon } from './index-3250fb71.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-ba7b6d8a.js';
10
+ import { I as InfoIcon } from './index-1d5c06a0.js';
11
11
 
12
12
  const TextWrapper$2 = styled.div `
13
13
  color: ${({ $color, theme }) => $color || theme.text.secondary};
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { T as Theme } from './index-cddd3ca2.js';
2
+ import { T as Theme } from './index-fdf3a268.js';
3
3
 
4
4
  const OdigosLogoText = ({ size = 16, fill: f, rotate = 0, onClick }) => {
5
5
  const theme = Theme.useTheme();
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { T as Theme } from './index-cddd3ca2.js';
2
+ import { T as Theme } from './index-fdf3a268.js';
3
3
 
4
4
  const CodeIcon = ({ 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-cddd3ca2.js';
2
+ import { a as DEFAULT_DATA_STREAM_NAME, e as getProgrammingLanguageIcon, k as KafkaLogo, K as K8sLogo } from './index-fdf3a268.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-e332a81f.js';
6
- import { O as OdigosLogo } from './index-3250fb71.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-59aacfd1.js';
6
+ import { O as OdigosLogo } from './index-1d5c06a0.js';
7
7
  import { s as safeJsonParse } from './index-5e5f7bda.js';
8
8
 
9
9
  const compareCondition = (renderCondition, fields) => {
@@ -1709,7 +1709,7 @@ function styleInject(css, ref) {
1709
1709
  }
1710
1710
  }
1711
1711
 
1712
- var css_248z = "/* Inter Font */\n@font-face {\n font-family: 'Inter';\n src: url('../fonts/Inter/Inter-VariableFont_opsz,wght.ttf') format('truetype');\n font-weight: 100 200 300 400 500 600 700 800 900;\n font-style: normal;\n font-display: swap;\n}\n@font-face {\n font-family: 'Inter';\n src: url('../fonts/Inter/Inter-Italic-VariableFont_opsz,wght.ttf') format('truetype');\n font-weight: 100 200 300 400 500 600 700 800 900;\n font-style: italic;\n font-display: swap;\n}\n\n/* Kode Mono Font */\n@font-face {\n font-family: 'Kode Mono';\n src: url('../fonts/Kode_Mono/KodeMono-VariableFont_wght.ttf') format('truetype');\n font-weight: 100 200 300 400 500 600 700 800 900;\n font-style: normal;\n font-display: swap;\n}\n\n/* IBM Plex Mono Font */\n@font-face {\n font-family: 'IBM Plex Mono';\n src: url('../fonts/IBM_Plex_Mono/IBMPlexMono-Regular.ttf') format('truetype');\n font-weight: 100 200 300 400 500 600 700 800 900;\n font-style: normal;\n font-display: swap;\n}\n\n* {\n -ms-overflow-style: none; /* IE, Edge */\n scrollbar-width: none; /* Firefox */\n}\n*::-webkit-scrollbar {\n display: none; /* Chrome, Safari, Opera */\n}\n\nsvg {\n transition: all 0.3s;\n}\n\n/*\n The input styles below are to override the browser \":-webkit-autofill\" default style declarations.\n The issue is when someone autocompletes an input field, the browser will apply its own styles (and the browser applies \"!important\" preventing direct overrides).\n With the following, we're able to delay the browser styles to be applied for 50000s (13.8 hours), so the user will not see the browser styles applied.\n*/\n\ninput {\n all: unset;\n}\n\ninput:-webkit-autofill,\ninput:-webkit-autofill:hover,\ninput:-webkit-autofill:focus,\ninput:-webkit-autofill:active {\n -webkit-transition: all 50000s ease-in-out 0s;\n transition: all 50000s ease-in-out 0s;\n}\n";
1712
+ var css_248z = "@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;700&display=swap');\n@import url('https://fonts.googleapis.com/css2?family=Kode+Mono:wght@100;200;300;400;500;600;700&display=swap');\n@import url('https://fonts.googleapis.com/css2?family=Inter+Tight:wght@400;700&display=swap');\n@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;1,100;1,200;1,300;1,400;1,500;1,600;1,700&display=swap');\n\n* {\n -ms-overflow-style: none; /* IE, Edge */\n scrollbar-width: none; /* Firefox */\n}\n*::-webkit-scrollbar {\n display: none; /* Chrome, Safari, Opera */\n}\n\nsvg {\n transition: all 0.3s;\n}\n\n/*\n The input styles below are to override the browser \":-webkit-autofill\" default style declarations.\n The issue is when someone autocompletes an input field, the browser will apply its own styles (and the browser applies \"!important\" preventing direct overrides).\n With the following, we're able to delay the browser styles to be applied for 50000s (13.8 hours), so the user will not see the browser styles applied.\n*/\n\ninput {\n all: unset;\n}\n\ninput:-webkit-autofill,\ninput:-webkit-autofill:hover,\ninput:-webkit-autofill:focus,\ninput:-webkit-autofill:active {\n -webkit-transition: all 50000s ease-in-out 0s;\n transition: all 50000s ease-in-out 0s;\n}\n";
1713
1713
  styleInject(css_248z);
1714
1714
 
1715
1715
  const Provider = ({ children }) => {
@@ -2,6 +2,7 @@ export * from './actions';
2
2
  export * from './config';
3
3
  export * from './describe';
4
4
  export * from './destinations';
5
+ export * from './instrumentation-instances';
5
6
  export * from './instrumentation-rules';
6
7
  export * from './namespaces';
7
8
  export * from './service-map';
@@ -0,0 +1,2 @@
1
+ import type { InstrumentationInstanceComponent } from '@/types';
2
+ export declare const MOCK_INSTRUMENTATION_INSTANCE_COMPONENTS: InstrumentationInstanceComponent[];
package/lib/snippets.js CHANGED
@@ -1,15 +1,15 @@
1
- import { B as Button, _ as Text, L as NotificationNote } from './index-232ab6d4.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-232ab6d4.js';
1
+ import { B as Button, _ as Text, L as NotificationNote } from './index-a1b59a38.js';
2
+ export { ai as AddButton, an as AddNode, ao as BaseNode, ak as CopyText, ap as EdgedNode, ag as Flow, aq as FrameNode, ar as HeaderNode, aw as LabeledEdge, as as MapItemNode, at as NoDataNode, al as PodContainer, au as ScrollNode, av as SkeletonNode, am as SourceContainer, ad as nodeConfig } from './index-a1b59a38.js';
3
3
  import React from 'react';
4
- import { T as Theme, B as BUTTON_TEXTS, b as DISPLAY_TITLES } from './index-cddd3ca2.js';
5
- import { E as EditIcon } from './index-9f31ac90.js';
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';
6
6
  import { StatusType } from './types.js';
7
7
  import 'styled-components';
8
- import { I as InfoIcon } from './index-3250fb71.js';
8
+ import { I as InfoIcon } from './index-1d5c06a0.js';
9
9
  import './index-5e5f7bda.js';
10
- import './index-fd7a7b89.js';
10
+ import './index-0d93b2b4.js';
11
11
  import 'react-dom';
12
- import './useTransition-53e8d81c.js';
12
+ import './useTransition-ba7b6d8a.js';
13
13
 
14
14
  const EditButton = ({ label, onClick, variant = 'tertiary', ...props }) => {
15
15
  const theme = Theme.useTheme();
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-cddd3ca2.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-fdf3a268.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-cddd3ca2.js';
1
+ export { T as default } from './index-fdf3a268.js';
2
2
  import 'styled-components';
3
3
  import 'react';
4
4
  import './types.js';
@@ -6,6 +6,7 @@ export * from './data-flow';
6
6
  export * from './data-streams';
7
7
  export * from './describe';
8
8
  export * from './destinations';
9
+ export * from './instrumentation-instances';
9
10
  export * from './instrumentation-rules';
10
11
  export * from './metrics';
11
12
  export * from './namespaces';
@@ -0,0 +1,7 @@
1
+ export interface InstrumentationInstanceComponent {
2
+ name: string;
3
+ nonIdentifyingAttributes: {
4
+ key: string;
5
+ value: string;
6
+ }[];
7
+ }
@@ -1,4 +1,4 @@
1
- import { z as useModalStore, O as useDrawerStore, Q as useActiveNodeStore } from './index-cddd3ca2.js';
1
+ import { z as useModalStore, O as useDrawerStore, Q as useActiveNodeStore } from './index-fdf3a268.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.71",
3
+ "version": "0.0.73",
4
4
  "author": "Odigos",
5
5
  "repository": {
6
6
  "type": "git",