@odigos/ui-kit 0.0.95 → 0.0.98
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 +28 -0
- package/lib/components/data-card/data-card-fields/index.d.ts +2 -1
- package/lib/components/data-card/index.d.ts +2 -1
- package/lib/components/drawer/drawer-header/index.d.ts +2 -1
- package/lib/components/drawer/index.d.ts +2 -2
- package/lib/components/text/index.d.ts +2 -1
- package/lib/components.js +8 -8
- package/lib/constants/strings/index.d.ts +1 -0
- package/lib/constants.js +1 -1
- package/lib/containers/trace-view/index.d.ts +1 -0
- package/lib/containers/trace-view/span/index.d.ts +5 -0
- package/lib/containers/trace-view/span-drawer/build-details-card.d.ts +3 -0
- package/lib/containers/trace-view/span-drawer/build-logs-card.d.ts +3 -0
- package/lib/containers/trace-view/span-drawer/build-process-card.d.ts +3 -0
- package/lib/containers/trace-view/span-drawer/build-tags-card.d.ts +3 -0
- package/lib/containers/trace-view/span-drawer/index.d.ts +9 -0
- package/lib/containers.js +175 -53
- package/lib/functions.js +7 -7
- package/lib/hooks/useSourceSelectionFormData.d.ts +2 -0
- package/lib/hooks.js +43 -18
- package/lib/icons.js +8 -15
- package/lib/{index-333086d8.js → index-0a77c1be.js} +1 -1
- package/lib/{index-b0883db6.js → index-195415d4.js} +1 -1
- package/lib/{index-a53852b3.js → index-77cf7846.js} +9 -2
- package/lib/{index-40dfa720.js → index-89edd01d.js} +1 -0
- package/lib/{index-d92ef50b.js → index-9475009f.js} +2 -2
- package/lib/{index-9a7beddb.js → index-a3c0cecd.js} +2 -2
- package/lib/{index-bf427e64.js → index-c823fbfb.js} +3 -3
- package/lib/{index-c529b896.js → index-c8b542d8.js} +30 -21
- package/lib/{index-1bc2b507.js → index-d8fb5fed.js} +1 -1
- package/lib/{index-eff01b3d.js → index-f18c8530.js} +1 -1
- package/lib/snippets.js +7 -7
- package/lib/store.js +1 -1
- package/lib/theme.js +1 -1
- package/lib/types/traces/index.d.ts +1 -1
- package/lib/{useTransition-2df374a9.js → useTransition-159c9af8.js} +1 -1
- package/package.json +1 -1
package/lib/icons.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { T as Theme } from './index-
|
|
2
|
-
export { i as AddClusterInfoIcon, o as CPlusPlusLogo, p as CSharpLogo, C as CodeAttributesIcon, m as CustomInstrumentationIcon, j as DeleteAttributeIcon, q as DotnetLogo, E as ElixirLogo, G as GoLogo, H as HeadersCollectionIcon, l as ImageErrorIcon, J as JavaLogo, K as K8sLogo, h as KafkaLogo, r as MysqlLogo, N as NginxLogo, s as NodejsLogo, n as PayloadCollectionIcon, t as PhpLogo, P as PiiMaskingIcon, u as PostgresLogo, v as PythonLogo, w as RedisLogo, R as RenameAttributeIcon, x as RubyLogo, y as RustLogo, k as SamplerIcon, z as SwiftLogo } from './index-
|
|
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-
|
|
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-
|
|
1
|
+
import { T as Theme } from './index-89edd01d.js';
|
|
2
|
+
export { i as AddClusterInfoIcon, o as CPlusPlusLogo, p as CSharpLogo, C as CodeAttributesIcon, m as CustomInstrumentationIcon, j as DeleteAttributeIcon, q as DotnetLogo, E as ElixirLogo, G as GoLogo, H as HeadersCollectionIcon, l as ImageErrorIcon, J as JavaLogo, K as K8sLogo, h as KafkaLogo, r as MysqlLogo, N as NginxLogo, s as NodejsLogo, n as PayloadCollectionIcon, t as PhpLogo, P as PiiMaskingIcon, u as PostgresLogo, v as PythonLogo, w as RedisLogo, R as RenameAttributeIcon, x as RubyLogo, y as RustLogo, k as SamplerIcon, z as SwiftLogo } from './index-89edd01d.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-f18c8530.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, b as TraceViewIcon, U as UserIcon } from './index-77cf7846.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-
|
|
7
|
-
export { V as VmLogo } from './index-
|
|
8
|
-
export { a5 as ActionsIcon, A as AlaudaLogo, a as AlibabaCloudLogo, b as AppDynamicsLogo, i as AwsCloudwatchLogo, S as AwsS3Logo, a1 as AwsXrayLogo, c as AxiomLogo, d as BetterStackLogo, B as BlobStorageLogo, e as BonreeLogo, C as CauselyLogo, f as ChecklyLogo, g as ChronosphereLogo, h as ClickhouseLogo, j as CoralogixLogo, D as Dash0Logo, k as DatadogLogo, a4 as DestinationsIcon, l as DynatraceLogo, E as ElasticApmLogo, m as ElasticSearchLogo, F as GigapipeLogo, G as GoogleCloudPlatformLogo, n as GrafanaLogo, o as GreptimeLogo, p as GroundcoverLogo, H as HoneycombLogo, q as HyperDxLogo, I as InstanaLogo, J as JaegerLogo, K as KloudmateLogo, L as Last9Logo, r as LightstepLogo, s as LogzioLogo, t as LokiLogo, u as LumigoLogo, M as MiddlewareLogo, a2 as NamespacesIcon, N as NewRelicLogo, v as ObserveLogo, w as OneUptimeLogo, x as OpenObserveLogo, O as OpenTelemetryLogo, y as OpsVerseLogo, z as OracleLogo, P as PrometheusLogo, Q as QrynLogo, R as QuickwitLogo, a6 as RulesIcon, T as SeqLogo, U as SignozLogo, a3 as SourcesIcon, V as SplunkLogo, W as SumoLogicLogo, X as TelemetryHubLogo, Y as TempoLogo, Z as TingyunLogo, _ as TraceloopLogo, $ as UptraceLogo, a0 as VictoriaMetricsLogo } from './index-
|
|
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-d8fb5fed.js';
|
|
7
|
+
export { V as VmLogo } from './index-0a77c1be.js';
|
|
8
|
+
export { a5 as ActionsIcon, A as AlaudaLogo, a as AlibabaCloudLogo, b as AppDynamicsLogo, i as AwsCloudwatchLogo, S as AwsS3Logo, a1 as AwsXrayLogo, c as AxiomLogo, d as BetterStackLogo, B as BlobStorageLogo, e as BonreeLogo, C as CauselyLogo, f as ChecklyLogo, g as ChronosphereLogo, h as ClickhouseLogo, j as CoralogixLogo, D as Dash0Logo, k as DatadogLogo, a4 as DestinationsIcon, l as DynatraceLogo, E as ElasticApmLogo, m as ElasticSearchLogo, F as GigapipeLogo, G as GoogleCloudPlatformLogo, n as GrafanaLogo, o as GreptimeLogo, p as GroundcoverLogo, H as HoneycombLogo, q as HyperDxLogo, I as InstanaLogo, J as JaegerLogo, K as KloudmateLogo, L as Last9Logo, r as LightstepLogo, s as LogzioLogo, t as LokiLogo, u as LumigoLogo, M as MiddlewareLogo, a2 as NamespacesIcon, N as NewRelicLogo, v as ObserveLogo, w as OneUptimeLogo, x as OpenObserveLogo, O as OpenTelemetryLogo, y as OpsVerseLogo, z as OracleLogo, P as PrometheusLogo, Q as QrynLogo, R as QuickwitLogo, a6 as RulesIcon, T as SeqLogo, U as SignozLogo, a3 as SourcesIcon, V as SplunkLogo, W as SumoLogicLogo, X as TelemetryHubLogo, Y as TempoLogo, Z as TingyunLogo, _ as TraceloopLogo, $ as UptraceLogo, a0 as VictoriaMetricsLogo } from './index-195415d4.js';
|
|
9
9
|
import './types.js';
|
|
10
10
|
import 'styled-components';
|
|
11
11
|
|
|
@@ -170,13 +170,6 @@ const ServiceMapIcon = ({ size = 16, fill: f, rotate = 0, onClick, strokeWidth =
|
|
|
170
170
|
React.createElement("path", { stroke: fill, strokeWidth: strokeWidth, strokeLinecap: 'round', strokeLinejoin: 'round', d: 'M4.67333 8.61735H4.66667M7.34667 8.61735H7.34M9.66667 7.61735L10.6668 8.61744M10.6668 8.61744L11.6667 9.61735M10.6668 8.61744L11.6668 7.61735M10.6668 8.61744L9.66684 9.61735M6.95406 3.76106L9.05573 4.81189C9.39594 4.982 9.56605 5.06705 9.74417 5.10188C9.91313 5.13491 10.0869 5.13491 10.2558 5.10188C10.434 5.06705 10.6041 4.982 10.9443 4.81189C11.9382 4.31494 12.4351 4.06646 12.8395 4.11932C13.2185 4.16887 13.5581 4.37871 13.7719 4.69556C14 5.0336 14 5.58921 14 6.70044V10.6322C14 11.1108 14 11.3501 13.9271 11.5614C13.8627 11.7482 13.7575 11.9184 13.6192 12.0596C13.4628 12.2193 13.2488 12.3263 12.8207 12.5403L10.9541 13.4737C10.6042 13.6486 10.4293 13.736 10.2459 13.7705C10.0834 13.8009 9.91663 13.8009 9.75414 13.7705C9.57067 13.736 9.39576 13.6486 9.04595 13.4737L6.94427 12.4228C6.60406 12.2527 6.43395 12.1677 6.25583 12.1328C6.08687 12.0998 5.91313 12.0998 5.74417 12.1328C5.56605 12.1677 5.39594 12.2527 5.05573 12.4228C4.06182 12.9198 3.56486 13.1683 3.16049 13.1154C2.78147 13.0658 2.44195 12.856 2.22812 12.5392C2 12.2011 2 11.6455 2 10.5343V6.6025C2 6.12389 2 5.88458 2.07287 5.67331C2.13732 5.48648 2.24249 5.31631 2.38078 5.17511C2.53715 5.01545 2.7512 4.90843 3.17928 4.69439L5.04594 3.76106C5.39576 3.58615 5.57067 3.49869 5.75414 3.46427C5.91663 3.43378 6.08337 3.43378 6.24586 3.46427C6.42933 3.49869 6.60424 3.58615 6.95406 3.76106Z' })));
|
|
171
171
|
};
|
|
172
172
|
|
|
173
|
-
const TraceViewIcon = ({ size = 16, fill: f, rotate = 0, onClick, strokeWidth = 1 }) => {
|
|
174
|
-
const theme = Theme.useTheme();
|
|
175
|
-
const fill = f || theme.text.secondary;
|
|
176
|
-
return (React.createElement("svg", { width: size * (16 / 17), height: size, viewBox: '0 0 16 17', xmlns: 'http://www.w3.org/2000/svg', fill: 'none', style: { transform: `rotate(${rotate}deg)` }, onClick: onClick },
|
|
177
|
-
React.createElement("path", { stroke: fill, strokeWidth: strokeWidth, strokeLinecap: 'round', strokeLinejoin: 'round', d: 'M2.66666 8.61719H6.66666M2.66666 12.6172H6.66666M2.66666 4.61719H13.3333M14 12.9505L13.0809 12.0315M13.0809 12.0315C13.4438 11.6686 13.6667 11.1686 13.6667 10.6172C13.6667 9.51147 12.7724 8.61719 11.6667 8.61719C10.5609 8.61719 9.66666 9.51147 9.66666 10.6172C9.66666 11.7229 10.5609 12.6172 11.6667 12.6172C12.2181 12.6172 12.7181 12.3943 13.0809 12.0315Z' })));
|
|
178
|
-
};
|
|
179
|
-
|
|
180
173
|
const ConnectionsIcon = ({ size = 16, fill: f, rotate = 0, onClick, strokeWidth = 1 }) => {
|
|
181
174
|
const theme = Theme.useTheme();
|
|
182
175
|
const fill = f || theme.text.secondary;
|
|
@@ -191,4 +184,4 @@ const ErrorRoundIcon = ({ size = 16, fill: f, rotate = 0, onClick, strokeWidth =
|
|
|
191
184
|
React.createElement("path", { stroke: fill, strokeWidth: strokeWidth, strokeLinecap: 'round', strokeLinejoin: 'round', d: 'M7 8.33673V6.00339M7 10.3055V10.3061M12.25 7.97266C12.25 10.8722 9.89949 13.2227 7 13.2227C4.1005 13.2227 1.75 10.8721 1.75 7.97265C1.75 5.07316 4.10051 2.72266 7 2.72266C9.8995 2.72266 12.25 5.07316 12.25 7.97266Z' })));
|
|
192
185
|
};
|
|
193
186
|
|
|
194
|
-
export { AvatarIcon, CodeBracketsIcon, CommandIcon, ConnectionsIcon, ErrorRoundIcon, FolderIcon, GoogleCloudStorageLogo, LightOffIcon, LightOnIcon, MinusCircledIcon, MoonIcon, OdigosDestinationLogo, PlusCircledIcon, RefreshArrowsIcon, RefreshRightArrowIcon, RotateArrowsIcon, SentryLogo, ServiceMapIcon, SunIcon,
|
|
187
|
+
export { AvatarIcon, CodeBracketsIcon, CommandIcon, ConnectionsIcon, ErrorRoundIcon, FolderIcon, GoogleCloudStorageLogo, LightOffIcon, LightOnIcon, MinusCircledIcon, MoonIcon, OdigosDestinationLogo, PlusCircledIcon, RefreshArrowsIcon, RefreshRightArrowIcon, RotateArrowsIcon, SentryLogo, ServiceMapIcon, SunIcon, UserGroupIcon, UserSettingsIcon };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { T as Theme } from './index-
|
|
2
|
+
import { T as Theme } from './index-89edd01d.js';
|
|
3
3
|
|
|
4
4
|
const AlaudaLogo = ({ size = 16, fill, rotate = 0, onClick }) => {
|
|
5
5
|
return (React.createElement("svg", { width: size, height: size, viewBox: '0 0 43 43', xmlns: 'http://www.w3.org/2000/svg', fill: 'none', style: { transform: `rotate(${rotate}deg)` }, onClick: onClick },
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { T as Theme } from './index-
|
|
2
|
+
import { T as Theme } from './index-89edd01d.js';
|
|
3
3
|
|
|
4
4
|
const OdigosLogoText = ({ size = 16, fill: f, rotate = 0, onClick }) => {
|
|
5
5
|
const theme = Theme.useTheme();
|
|
@@ -91,6 +91,13 @@ const OverviewIcon = ({ size = 16, fill: f, rotate = 0, onClick, strokeWidth = 1
|
|
|
91
91
|
React.createElement("path", { stroke: fill, strokeWidth: strokeWidth, strokeLinecap: 'round', strokeLinejoin: 'round', d: 'M9.33348 11.4667C9.33348 10.7199 9.33348 10.3466 9.47881 10.0613C9.60664 9.81046 9.81061 9.60649 10.0615 9.47866C10.3467 9.33333 10.7201 9.33333 11.4668 9.33333H11.8668C12.6136 9.33333 12.9869 9.33333 13.2721 9.47866C13.523 9.60649 13.727 9.81046 13.8548 10.0613C14.0002 10.3466 14.0002 10.7199 14.0002 11.4667V11.8667C14.0002 12.6134 14.0002 12.9868 13.8548 13.272C13.727 13.5229 13.523 13.7268 13.2721 13.8547C12.9869 14 12.6136 14 11.8668 14H11.4668C10.7201 14 10.3467 14 10.0615 13.8547C9.81061 13.7268 9.60664 13.5229 9.47881 13.272C9.33348 12.9868 9.33348 12.6134 9.33348 11.8667V11.4667Z' })));
|
|
92
92
|
};
|
|
93
93
|
|
|
94
|
+
const TraceViewIcon = ({ size = 16, fill: f, rotate = 0, onClick, strokeWidth = 1 }) => {
|
|
95
|
+
const theme = Theme.useTheme();
|
|
96
|
+
const fill = f || theme.text.secondary;
|
|
97
|
+
return (React.createElement("svg", { width: size * (16 / 17), height: size, viewBox: '0 0 16 17', xmlns: 'http://www.w3.org/2000/svg', fill: 'none', style: { transform: `rotate(${rotate}deg)` }, onClick: onClick },
|
|
98
|
+
React.createElement("path", { stroke: fill, strokeWidth: strokeWidth, strokeLinecap: 'round', strokeLinejoin: 'round', d: 'M2.66666 8.61719H6.66666M2.66666 12.6172H6.66666M2.66666 4.61719H13.3333M14 12.9505L13.0809 12.0315M13.0809 12.0315C13.4438 11.6686 13.6667 11.1686 13.6667 10.6172C13.6667 9.51147 12.7724 8.61719 11.6667 8.61719C10.5609 8.61719 9.66666 9.51147 9.66666 10.6172C9.66666 11.7229 10.5609 12.6172 11.6667 12.6172C12.2181 12.6172 12.7181 12.3943 13.0809 12.0315Z' })));
|
|
99
|
+
};
|
|
100
|
+
|
|
94
101
|
const DataStreamsIcon = ({ size = 16, fill: f, rotate = 0, onClick, strokeWidth = 1 }) => {
|
|
95
102
|
const theme = Theme.useTheme();
|
|
96
103
|
const fill = f || theme.text.secondary;
|
|
@@ -114,4 +121,4 @@ const CrossCircledIcon = ({ size = 16, fill: f, rotate = 0, onClick, strokeWidth
|
|
|
114
121
|
React.createElement("path", { stroke: fill, strokeWidth: strokeWidth, strokeLinecap: 'round', strokeLinejoin: 'round', d: 'M6.75049 10.0005L8.75049 8.00049M8.75049 8.00049L10.7505 6.00049M8.75049 8.00049L6.75049 6.00049M8.75049 8.00049L10.7505 10.0005M8.75039 14.1004C5.38145 14.1004 2.65039 11.3693 2.65039 8.00039C2.65039 4.63145 5.38145 1.90039 8.75039 1.90039C12.1193 1.90039 14.8504 4.63145 14.8504 8.00039C14.8504 11.3693 12.1193 14.1004 8.75039 14.1004Z' })));
|
|
115
122
|
};
|
|
116
123
|
|
|
117
|
-
export { ArrowIcon as A, CrossCircledIcon as C, DataStreamsIcon as D, FilterIcon as F, GearIcon as G, KeyIcon as K, NotificationIcon as N, OdigosLogoText as O, RefreshLeftArrowIcon as R, SlackLogo as S, TerminalIcon as T, UserIcon as U, OverviewIcon as a };
|
|
124
|
+
export { ArrowIcon as A, CrossCircledIcon as C, DataStreamsIcon as D, FilterIcon as F, GearIcon as G, KeyIcon as K, NotificationIcon as N, OdigosLogoText as O, RefreshLeftArrowIcon as R, SlackLogo as S, TerminalIcon as T, UserIcon as U, OverviewIcon as a, TraceViewIcon as b };
|
|
@@ -1051,6 +1051,7 @@ const DISPLAY_TITLES = {
|
|
|
1051
1051
|
FILTERED_COUNT_TOOLTIP: 'Represents filtered amount, out of total amount',
|
|
1052
1052
|
SEARCH_NAMESPACES: 'Search Namespaces',
|
|
1053
1053
|
SEARCH_SOURCES: 'Search Sources',
|
|
1054
|
+
SELECT_ALL: 'Select All',
|
|
1054
1055
|
ONLY_SELECTED: 'Only selected',
|
|
1055
1056
|
ONLY_RUNNING_INSTANCES: 'Only running instances',
|
|
1056
1057
|
TO_COLLECT_OTEL_DATA: 'To collect OpenTelemetry data',
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { StatusType, OtherStatus, SignalType } from './types.js';
|
|
2
2
|
import 'react';
|
|
3
|
-
import './index-
|
|
3
|
+
import './index-89edd01d.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-
|
|
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-f18c8530.js';
|
|
6
6
|
|
|
7
7
|
const capitalizeFirstLetter = (string) => {
|
|
8
8
|
return string.charAt(0).toUpperCase() + string.slice(1);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { a6 as WarningModal } from './index-
|
|
2
|
+
import { a6 as WarningModal } from './index-c8b542d8.js';
|
|
3
3
|
import { StatusType, EntityTypes } from './types.js';
|
|
4
|
-
import './index-
|
|
4
|
+
import './index-89edd01d.js';
|
|
5
5
|
import 'styled-components';
|
|
6
6
|
|
|
7
7
|
const CancelWarning = ({ isOpen, noOverlay, name, onApprove, onDeny }) => {
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { StatusType, DestinationTypes, EntityTypes } from './types.js';
|
|
2
|
-
import { a as DEFAULT_DATA_STREAM_NAME, f as getProgrammingLanguageIcon, h as KafkaLogo } from './index-
|
|
2
|
+
import { a as DEFAULT_DATA_STREAM_NAME, f as getProgrammingLanguageIcon, h as KafkaLogo } from './index-89edd01d.js';
|
|
3
3
|
import 'react';
|
|
4
4
|
import 'styled-components';
|
|
5
|
-
import { O as OdigosLogo } from './index-
|
|
6
|
-
import { A as AlaudaLogo, a as AlibabaCloudLogo, b as AppDynamicsLogo, c as AxiomLogo, B as BlobStorageLogo, d as BetterStackLogo, e as BonreeLogo, C as CauselyLogo, f as ChecklyLogo, g as ChronosphereLogo, h as ClickhouseLogo, i as AwsCloudwatchLogo, j as CoralogixLogo, D as Dash0Logo, k as DatadogLogo, O as OpenTelemetryLogo, l as DynatraceLogo, E as ElasticApmLogo, m as ElasticSearchLogo, G as GoogleCloudPlatformLogo, n as GrafanaLogo, o as GreptimeLogo, p as GroundcoverLogo, H as HoneycombLogo, q as HyperDxLogo, I as InstanaLogo, J as JaegerLogo, K as KloudmateLogo, L as Last9Logo, r as LightstepLogo, s as LogzioLogo, t as LokiLogo, u as LumigoLogo, M as MiddlewareLogo, N as NewRelicLogo, v as ObserveLogo, w as OneUptimeLogo, x as OpenObserveLogo, y as OpsVerseLogo, z as OracleLogo, P as PrometheusLogo, Q as QrynLogo, F as GigapipeLogo, R as QuickwitLogo, S as AwsS3Logo, T as SeqLogo, U as SignozLogo, V as SplunkLogo, W as SumoLogicLogo, X as TelemetryHubLogo, Y as TempoLogo, Z as TingyunLogo, _ as TraceloopLogo, $ as UptraceLogo, a0 as VictoriaMetricsLogo, a1 as AwsXrayLogo, a2 as NamespacesIcon, a3 as SourcesIcon, a4 as DestinationsIcon, a5 as ActionsIcon, a6 as RulesIcon } from './index-
|
|
5
|
+
import { O as OdigosLogo } from './index-f18c8530.js';
|
|
6
|
+
import { A as AlaudaLogo, a as AlibabaCloudLogo, b as AppDynamicsLogo, c as AxiomLogo, B as BlobStorageLogo, d as BetterStackLogo, e as BonreeLogo, C as CauselyLogo, f as ChecklyLogo, g as ChronosphereLogo, h as ClickhouseLogo, i as AwsCloudwatchLogo, j as CoralogixLogo, D as Dash0Logo, k as DatadogLogo, O as OpenTelemetryLogo, l as DynatraceLogo, E as ElasticApmLogo, m as ElasticSearchLogo, G as GoogleCloudPlatformLogo, n as GrafanaLogo, o as GreptimeLogo, p as GroundcoverLogo, H as HoneycombLogo, q as HyperDxLogo, I as InstanaLogo, J as JaegerLogo, K as KloudmateLogo, L as Last9Logo, r as LightstepLogo, s as LogzioLogo, t as LokiLogo, u as LumigoLogo, M as MiddlewareLogo, N as NewRelicLogo, v as ObserveLogo, w as OneUptimeLogo, x as OpenObserveLogo, y as OpsVerseLogo, z as OracleLogo, P as PrometheusLogo, Q as QrynLogo, F as GigapipeLogo, R as QuickwitLogo, S as AwsS3Logo, T as SeqLogo, U as SignozLogo, V as SplunkLogo, W as SumoLogicLogo, X as TelemetryHubLogo, Y as TempoLogo, Z as TingyunLogo, _ as TraceloopLogo, $ as UptraceLogo, a0 as VictoriaMetricsLogo, a1 as AwsXrayLogo, a2 as NamespacesIcon, a3 as SourcesIcon, a4 as DestinationsIcon, a5 as ActionsIcon, a6 as RulesIcon } from './index-195415d4.js';
|
|
7
7
|
import { s as safeJsonParse } from './index-5e5f7bda.js';
|
|
8
8
|
|
|
9
9
|
const filterActions = (actions, filters) => {
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import React, { Fragment, useMemo, useState, useEffect, useRef, forwardRef, createElement, useCallback, createContext, memo, useContext, useLayoutEffect } from 'react';
|
|
2
|
-
import { T as Theme, B as BUTTON_TEXTS, l as ImageErrorIcon, M as MONITORS_OPTIONS, a2 as styleInject, V as usePendingStore, a0 as useSelectedStore, _ as useInstrumentStore, U as useActiveNodeStore, W as useNotificationStore, b as DISPLAY_TITLES, L as LANGUAGE_OPTIONS, F as FORM_ALERTS, D as DISPLAY_LANGUAGES, f as getProgrammingLanguageIcon } from './index-
|
|
2
|
+
import { T as Theme, B as BUTTON_TEXTS, l as ImageErrorIcon, M as MONITORS_OPTIONS, a2 as styleInject, V as usePendingStore, a0 as useSelectedStore, _ as useInstrumentStore, U as useActiveNodeStore, W as useNotificationStore, b as DISPLAY_TITLES, L as LANGUAGE_OPTIONS, F as FORM_ALERTS, D as DISPLAY_LANGUAGES, f as getProgrammingLanguageIcon } from './index-89edd01d.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-
|
|
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-d8fb5fed.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-
|
|
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-9475009f.js';
|
|
8
8
|
import ReactDOM, { createPortal } from 'react-dom';
|
|
9
|
-
import { c as usePopup, h as useCopy, b as useClickNode, i as useGenericForm, a as useContainerSize, f as useTransition, u as useKeyDown, d as useOnClickOutside } from './useTransition-
|
|
10
|
-
import { I as InfoIcon } from './index-
|
|
9
|
+
import { c as usePopup, h as useCopy, b as useClickNode, i as useGenericForm, a as useContainerSize, f as useTransition, u as useKeyDown, d as useOnClickOutside } from './useTransition-159c9af8.js';
|
|
10
|
+
import { I as InfoIcon } from './index-f18c8530.js';
|
|
11
11
|
|
|
12
12
|
const TextWrapper$2 = styled.div `
|
|
13
13
|
color: ${({ $color, theme }) => $color || theme.text.secondary};
|
|
@@ -16,7 +16,7 @@ const TextWrapper$2 = styled.div `
|
|
|
16
16
|
text-align: ${({ $align }) => $align || 'left'};
|
|
17
17
|
opacity: ${({ $opacity }) => ($opacity !== undefined ? $opacity : 1)};
|
|
18
18
|
text-decoration: ${({ $decoration }) => $decoration || 'none'};
|
|
19
|
-
text-transform: ${({ $family }) => ($family === 'secondary' ? 'uppercase' : 'none')};
|
|
19
|
+
text-transform: ${({ $transform, $family }) => $transform || ($family === 'secondary' ? 'uppercase' : 'none')};
|
|
20
20
|
font-family: ${({ theme, $family = 'primary' }) => theme.font_family[$family]};
|
|
21
21
|
`;
|
|
22
22
|
const getLinksFromText = (text) => {
|
|
@@ -69,7 +69,7 @@ const renderText = (text, theme) => {
|
|
|
69
69
|
});
|
|
70
70
|
return mappedText;
|
|
71
71
|
};
|
|
72
|
-
const Text = ({ children, color, size, weight, align, family, opacity, decoration, ...props }) => {
|
|
72
|
+
const Text = ({ children, color, size, weight, align, family, opacity, decoration, transform, ...props }) => {
|
|
73
73
|
const theme = Theme.useTheme();
|
|
74
74
|
const textArray = useMemo(() => {
|
|
75
75
|
const str = !children
|
|
@@ -85,7 +85,7 @@ const Text = ({ children, color, size, weight, align, family, opacity, decoratio
|
|
|
85
85
|
: '';
|
|
86
86
|
return str.split('\n');
|
|
87
87
|
}, [children]);
|
|
88
|
-
return (React.createElement(TextWrapper$2, { "$color": color, "$size": size, "$weight": weight, "$align": align, "$family": family, "$opacity": opacity, "$decoration": decoration, ...props }, textArray.length
|
|
88
|
+
return (React.createElement(TextWrapper$2, { "$color": color, "$size": size, "$weight": weight, "$align": align, "$family": family, "$opacity": opacity, "$decoration": decoration, "$transform": transform, ...props }, textArray.length
|
|
89
89
|
? textArray.map((str, i) => (React.createElement(Fragment, { key: `text-${i}-${str}` },
|
|
90
90
|
renderText(str, theme),
|
|
91
91
|
i !== textArray.length - 1 ? React.createElement("br", null) : null)))
|
|
@@ -3783,6 +3783,10 @@ const Title$c = styled(Text) `
|
|
|
3783
3783
|
const CodeLineToken = styled.span `
|
|
3784
3784
|
white-space: ${({ $noWrap }) => ($noWrap ? 'nowrap' : 'pre-wrap')};
|
|
3785
3785
|
overflow-wrap: break-word;
|
|
3786
|
+
word-break: break-word;
|
|
3787
|
+
word-wrap: break-word;
|
|
3788
|
+
/* Fallback for older browsers */
|
|
3789
|
+
-ms-word-break: break-all;
|
|
3786
3790
|
font-size: 12px;
|
|
3787
3791
|
`;
|
|
3788
3792
|
const Code = ({ language, code, flatten, pretty }) => {
|
|
@@ -3857,7 +3861,7 @@ const PrettyJsonCode = ({ darkMode, str }) => {
|
|
|
3857
3861
|
React.createElement(TableData, null))));
|
|
3858
3862
|
return (React.createElement(Fragment, null, rows.map((R, i) => (React.createElement(R, { key: `empty-row-${idx}-${i}`, style: i === 0 ? { borderBottom: `1px solid ${theme.colors.border}` } : {} })))));
|
|
3859
3863
|
};
|
|
3860
|
-
return (React.createElement(Highlight2, { theme: darkMode ? themes_exports.palenight : themes_exports.vsLight, language: 'json', code: str }, ({ getLineProps, tokens }) => (React.createElement(Table$1, null,
|
|
3864
|
+
return (React.createElement(Highlight2, { theme: darkMode ? themes_exports.palenight : themes_exports.vsLight, language: 'json', code: str }, ({ getLineProps, getTokenProps, tokens }) => (React.createElement(Table$1, null,
|
|
3861
3865
|
React.createElement(TableBody$1, null, tokens.map((line, i) => {
|
|
3862
3866
|
const formattedLine = formatLineForPrettyMode(line);
|
|
3863
3867
|
const lineProps = getLineProps({ line: formattedLine });
|
|
@@ -3876,7 +3880,7 @@ const PrettyJsonCode = ({ darkMode, str }) => {
|
|
|
3876
3880
|
return (React.createElement(TableData, { key: `line-${i}-token-${ii}` },
|
|
3877
3881
|
React.createElement(FlexRow, null,
|
|
3878
3882
|
React.createElement(FlexRow, null, components),
|
|
3879
|
-
React.createElement(CodeLineToken, { "$noWrap": isRowTitle }, text))));
|
|
3883
|
+
React.createElement(CodeLineToken, { "$noWrap": isRowTitle, ...getTokenProps({ token }) }, text))));
|
|
3880
3884
|
})));
|
|
3881
3885
|
}
|
|
3882
3886
|
else {
|
|
@@ -17273,12 +17277,15 @@ const PreWrap = styled(Text) `
|
|
|
17273
17277
|
white-space: pre-wrap;
|
|
17274
17278
|
`;
|
|
17275
17279
|
const DataCardFields = ({ data }) => {
|
|
17276
|
-
return (React.createElement(ListContainer$3, null, data?.map(({ type, title, tooltip, value }, idx) => (React.createElement(ListItem, { key: `data-field-${title || (!!value ? JSON.stringify(value) : idx)}`, "$width": !!type && [DataCardFieldTypes.Code, DataCardFieldTypes.Table].includes(type)
|
|
17280
|
+
return (React.createElement(ListContainer$3, null, data?.map(({ type, title, titleIcon: TitleIcon, tooltip, value }, idx) => (React.createElement(ListItem, { key: `data-field-${title || (!!value ? JSON.stringify(value) : idx)}`, "$width": !!type && [DataCardFieldTypes.Code, DataCardFieldTypes.Table].includes(type)
|
|
17277
17281
|
? 'inherit'
|
|
17278
17282
|
: !!type && [DataCardFieldTypes.Loader, DataCardFieldTypes.Divider, DataCardFieldTypes.CopyText].includes(type)
|
|
17279
17283
|
? '100%'
|
|
17280
17284
|
: 'unset' },
|
|
17281
|
-
React.createElement(Tooltip, { text: tooltip, withIcon: true },
|
|
17285
|
+
React.createElement(Tooltip, { text: tooltip, withIcon: true },
|
|
17286
|
+
React.createElement(FlexRow, { "$alignItems": 'center', "$gap": 4 },
|
|
17287
|
+
TitleIcon && React.createElement(TitleIcon, { size: 14 }),
|
|
17288
|
+
!!title && React.createElement(ItemTitle, { transform: 'capitalize' }, title))),
|
|
17282
17289
|
React.createElement(RenderValue, { type: type, value: value }))))));
|
|
17283
17290
|
};
|
|
17284
17291
|
// We need to maintain this with new components every time we add a new type to "DataCardFieldTypes"
|
|
@@ -17357,15 +17364,17 @@ const ActionWrapper = styled(FlexRow) `
|
|
|
17357
17364
|
margin-left: auto;
|
|
17358
17365
|
gap: 8px;
|
|
17359
17366
|
`;
|
|
17360
|
-
const DataCard = ({ title = 'Details', titleBadge, description, action: Action, withExtend, initialExtended = false, data, children }) => {
|
|
17367
|
+
const DataCard = ({ title = 'Details', titleBadge, titleIcon: TitleIcon, description, action: Action, withExtend, initialExtended = false, data, children }) => {
|
|
17361
17368
|
const [extend, setExtend] = useState(initialExtended);
|
|
17362
17369
|
const [hovered, setHovered] = useState(false);
|
|
17363
17370
|
return (React.createElement(CardContainer, { "$hovered": hovered },
|
|
17364
|
-
!!title || !!description || !!Action ? (React.createElement(Header$1, { "$clickable": withExtend || false, onClick: () => withExtend && setExtend((prev) => !prev), onMouseEnter: () => withExtend && setHovered(true), onMouseLeave: () => withExtend && setHovered(false) },
|
|
17371
|
+
!!title || !!TitleIcon || !!description || !!Action ? (React.createElement(Header$1, { "$clickable": withExtend || false, onClick: () => withExtend && setExtend((prev) => !prev), onMouseEnter: () => withExtend && setHovered(true), onMouseLeave: () => withExtend && setHovered(false) },
|
|
17365
17372
|
React.createElement(FlexRow, null,
|
|
17366
|
-
|
|
17367
|
-
|
|
17368
|
-
|
|
17373
|
+
React.createElement(FlexRow, { "$alignItems": 'center', "$gap": 8 },
|
|
17374
|
+
TitleIcon && (React.createElement(FlexRow, { "$alignItems": 'center' },
|
|
17375
|
+
React.createElement(TitleIcon, { size: 20 }))),
|
|
17376
|
+
!!title && React.createElement(Title$7, { transform: 'capitalize' }, title),
|
|
17377
|
+
titleBadge === OtherStatus.Loading ? React.createElement(FadeLoader, null) : titleBadge !== undefined && React.createElement(Badge, { label: titleBadge })),
|
|
17369
17378
|
(!!Action || withExtend) && (React.createElement(ActionWrapper, null,
|
|
17370
17379
|
typeof Action === 'function' ? React.createElement(Action, null) : Action,
|
|
17371
17380
|
withExtend && React.createElement(ExtendArrow, { extend: extend })))),
|
|
@@ -17488,7 +17497,7 @@ const SectionItemsWrapper = styled.div `
|
|
|
17488
17497
|
const Title$6 = styled(Text) `
|
|
17489
17498
|
font-size: 18px;
|
|
17490
17499
|
line-height: 26px;
|
|
17491
|
-
max-width:
|
|
17500
|
+
max-width: ${({ $maxWidth }) => $maxWidth};
|
|
17492
17501
|
overflow: hidden;
|
|
17493
17502
|
white-space: nowrap;
|
|
17494
17503
|
text-overflow: ellipsis;
|
|
@@ -17497,7 +17506,7 @@ const ActionButton$3 = styled(Button$4) `
|
|
|
17497
17506
|
gap: 8px;
|
|
17498
17507
|
`;
|
|
17499
17508
|
const CloseButton = styled(Button$4) ``;
|
|
17500
|
-
const DrawerHeader = ({ onClose, icons, iconSrcs, title, titleTooltip, replaceTitleWith: ReplaceTitleWith, actions, actionButtons = [], tabs }) => {
|
|
17509
|
+
const DrawerHeader = ({ onClose, width, icons, iconSrcs, title, titleTooltip, replaceTitleWith: ReplaceTitleWith, actions, actionButtons = [], tabs }) => {
|
|
17501
17510
|
const renderReplaceTitleWith = () => {
|
|
17502
17511
|
if (typeof ReplaceTitleWith === 'function') {
|
|
17503
17512
|
return React.createElement(ReplaceTitleWith, null);
|
|
@@ -17511,7 +17520,7 @@ const DrawerHeader = ({ onClose, icons, iconSrcs, title, titleTooltip, replaceTi
|
|
|
17511
17520
|
React.createElement(TopRow, null,
|
|
17512
17521
|
React.createElement(SectionItemsWrapper, null,
|
|
17513
17522
|
icons?.length || iconSrcs?.length ? React.createElement(IconGroup, { icons: icons, iconSrcs: iconSrcs, id: `drawer-header-${title}` }) : null,
|
|
17514
|
-
renderReplaceTitleWith() || (React.createElement(Tooltip, { text: titleTooltip, withIcon:
|
|
17523
|
+
renderReplaceTitleWith() || (React.createElement(Tooltip, { text: titleTooltip || title, withIcon: !!titleTooltip }, title && React.createElement(Title$6, { "$maxWidth": `calc(${width} ${actions || actionButtons.length ? '/ 5' : '- 192px'})` }, title)))),
|
|
17515
17524
|
React.createElement(SectionItemsWrapper, { "$gap": 2 },
|
|
17516
17525
|
actions,
|
|
17517
17526
|
actionButtons.map((btn, i) => (React.createElement(ActionButton$3, { key: `header-action-button-${i}`, ...btn }))),
|
|
@@ -17591,7 +17600,7 @@ const Drawer = ({ isOpen, onClose, closeOnEscape = true, position = 'right', wid
|
|
|
17591
17600
|
React.createElement(Overlay, { hidden: !isOpen, onClick: onClose }),
|
|
17592
17601
|
React.createElement(Transition, { "data-id": 'drawer', enter: isOpen, "$position": position, "$width": width },
|
|
17593
17602
|
React.createElement(DrawerBody, null,
|
|
17594
|
-
React.createElement(DrawerHeader, { onClose: onClose, ...headerProps }),
|
|
17603
|
+
React.createElement(DrawerHeader, { onClose: onClose, width: width, ...headerProps }),
|
|
17595
17604
|
React.createElement(Content$4, null, children),
|
|
17596
17605
|
React.createElement(DrawerFooter, { ...footerProps })))), document.body);
|
|
17597
17606
|
};
|
package/lib/snippets.js
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import { B as Button, _ as Text, L as NotificationNote } from './index-
|
|
2
|
-
export { al as AddButton, aq as AddNode, ar as BaseNode, an as CopyText, as as EdgedNode, aj as Flow, at as FrameNode, au as HeaderNode, az as LabeledEdge, av as MapItemNode, aw as NoDataNode, ao as PodContainer, ax as ScrollNode, ay as SkeletonNode, ap as SourceContainer, ag as nodeConfig } from './index-
|
|
1
|
+
import { B as Button, _ as Text, L as NotificationNote } from './index-c8b542d8.js';
|
|
2
|
+
export { al as AddButton, aq as AddNode, ar as BaseNode, an as CopyText, as as EdgedNode, aj as Flow, at as FrameNode, au as HeaderNode, az as LabeledEdge, av as MapItemNode, aw as NoDataNode, ao as PodContainer, ax as ScrollNode, ay as SkeletonNode, ap as SourceContainer, ag as nodeConfig } from './index-c8b542d8.js';
|
|
3
3
|
import React from 'react';
|
|
4
|
-
import { T as Theme, B as BUTTON_TEXTS, b as DISPLAY_TITLES } from './index-
|
|
5
|
-
import { E as EditIcon } from './index-
|
|
4
|
+
import { T as Theme, B as BUTTON_TEXTS, b as DISPLAY_TITLES } from './index-89edd01d.js';
|
|
5
|
+
import { E as EditIcon } from './index-d8fb5fed.js';
|
|
6
6
|
import { StatusType } from './types.js';
|
|
7
7
|
import 'styled-components';
|
|
8
|
-
import { I as InfoIcon } from './index-
|
|
8
|
+
import { I as InfoIcon } from './index-f18c8530.js';
|
|
9
9
|
import './index-5e5f7bda.js';
|
|
10
|
-
import './index-
|
|
10
|
+
import './index-9475009f.js';
|
|
11
11
|
import 'react-dom';
|
|
12
|
-
import './useTransition-
|
|
12
|
+
import './useTransition-159c9af8.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 { U as useActiveNodeStore, a1 as useDarkMode, Z as useDataStreamStore, Q as useDrawerStore, X as useEntityStore, Y as useFilterStore, _ as useInstrumentStore, O as useModalStore, W as useNotificationStore, V as usePendingStore, a0 as useSelectedStore, $ as useSetupStore } from './index-
|
|
1
|
+
export { U as useActiveNodeStore, a1 as useDarkMode, Z as useDataStreamStore, Q as useDrawerStore, X as useEntityStore, Y as useFilterStore, _ as useInstrumentStore, O as useModalStore, W as useNotificationStore, V as usePendingStore, a0 as useSelectedStore, $ as useSetupStore } from './index-89edd01d.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
|
-
import { O as useModalStore, Q as useDrawerStore, U as useActiveNodeStore } from './index-
|
|
1
|
+
import { O as useModalStore, Q as useDrawerStore, U as useActiveNodeStore } from './index-89edd01d.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';
|