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