@odigos/ui-kit 0.0.288 → 0.0.290

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/lib/chunks/{helpers-BCSEuuKh.js → helpers-esDVvrTt.js} +1 -1
  3. package/lib/chunks/{index-Cy84opXf.js → index-lV6RFSE-.js} +14 -14
  4. package/lib/chunks/source-instrument-form-context-B9BHhgvw.js +5 -0
  5. package/lib/chunks/ui-components-DvoeDBMI.js +1958 -0
  6. package/lib/components/badge/index.d.ts +1 -1
  7. package/lib/components/input/index.d.ts +2 -0
  8. package/lib/components/input-list/index.d.ts +1 -0
  9. package/lib/components/radio-card/index.d.ts +4 -0
  10. package/lib/components/table/types.d.ts +2 -2
  11. package/lib/components/trace-view/styled.d.ts +51 -34
  12. package/lib/components/trace-view/types.d.ts +4 -0
  13. package/lib/components.js +1 -1
  14. package/lib/constants/strings/index.d.ts +2 -0
  15. package/lib/constants/url-templatization/index.d.ts +176 -31
  16. package/lib/constants.js +1 -1
  17. package/lib/containers/_drawers/create-cloud-connector-drawer/steps/setup-credentials/methods.d.ts +7 -1
  18. package/lib/containers/_drawers/url-templatization-custom-template-drawer/destination-step.d.ts +7 -4
  19. package/lib/containers/_drawers/url-templatization-custom-template-drawer/index.d.ts +5 -1
  20. package/lib/containers/_drawers/url-templatization-custom-template-drawer/templates-step-summary.d.ts +10 -0
  21. package/lib/containers/_drawers/url-templatization-default-rule-drawer/index.d.ts +2 -0
  22. package/lib/containers/_drawers/url-templatization-template-view-drawer/index.d.ts +5 -0
  23. package/lib/containers/_modals/sampling-onboarding-modal/common/chrome.d.ts +14 -10
  24. package/lib/containers/_modals/sampling-onboarding-modal/common/section.d.ts +9 -3
  25. package/lib/containers/insights/findings/drawer/anomaly/risk-breakdown/helpers.d.ts +23 -0
  26. package/lib/containers/insights/findings/drawer/anomaly/risk-breakdown/index.d.ts +9 -0
  27. package/lib/containers/insights/operation-identity.d.ts +22 -0
  28. package/lib/containers/insights/overview/contained-table-and-heading/index.d.ts +2 -1
  29. package/lib/containers/insights/settings-and-configurations/panels/detection/create-override-panel.d.ts +1 -1
  30. package/lib/containers/insights/settings-and-configurations/panels/learning/mappers.d.ts +2 -1
  31. package/lib/containers/insights/settings-and-configurations/panels/storage/layout.d.ts +12 -4
  32. package/lib/containers/insights/settings-and-configurations/panels/system/constants.d.ts +16 -0
  33. package/lib/containers/insights/transactions/helpers.d.ts +15 -3
  34. package/lib/containers/url-templatization/advanced-config-section.d.ts +12 -0
  35. package/lib/containers/url-templatization/automatic-templatization-enable-card.d.ts +6 -0
  36. package/lib/containers/url-templatization/converters.d.ts +15 -0
  37. package/lib/containers/url-templatization/custom-templates-empty-card.d.ts +5 -0
  38. package/lib/containers/url-templatization/custom-templates-list.d.ts +0 -1
  39. package/lib/containers/url-templatization/default-normalization-card.d.ts +11 -0
  40. package/lib/containers/url-templatization/default-rules-list.d.ts +8 -5
  41. package/lib/containers/url-templatization/disabled-scopes-table.d.ts +8 -0
  42. package/lib/containers/url-templatization/helpers.d.ts +30 -1
  43. package/lib/containers/url-templatization/managed-action-badge.d.ts +11 -0
  44. package/lib/containers/url-templatization/onboarding-empty.d.ts +7 -0
  45. package/lib/containers/url-templatization/skip-policies-table.d.ts +8 -0
  46. package/lib/containers/url-templatization/template-path.d.ts +2 -0
  47. package/lib/containers.js +1044 -684
  48. package/lib/contexts/odigos-api/hooks/use-insights-api.d.ts +12 -1
  49. package/lib/contexts/odigos-api/index.d.ts +1 -1
  50. package/lib/contexts/odigos-api/types.d.ts +25 -1
  51. package/lib/contexts.js +1 -1
  52. package/lib/functions.js +1 -1
  53. package/lib/hooks.js +1 -1
  54. package/lib/snippets/sampling-rule-form-sections/source-scope.d.ts +16 -1
  55. package/lib/snippets/sampling-rule-form-sections/styled.d.ts +6 -2
  56. package/lib/snippets.js +1 -1
  57. package/lib/store.js +1 -1
  58. package/lib/theme/palettes/index.d.ts +1 -0
  59. package/lib/theme.js +1 -1
  60. package/lib/types/cloud-connectors/index.d.ts +1 -0
  61. package/lib/types/insights/index.d.ts +57 -2
  62. package/lib/types.js +1 -1
  63. package/lib/visuals.js +1 -1
  64. package/package.json +27 -24
  65. package/lib/chunks/source-instrument-form-context-D6pVu22G.js +0 -5
  66. package/lib/chunks/ui-components-D8rTJS7r.js +0 -1943
@@ -1,4 +1,5 @@
1
1
  import { type FC } from 'react';
2
+ import type { AutocompleteOption } from '../../../components/autocomplete';
2
3
  import { type CustomTemplateActionOption, type CustomTemplateGroupOption, type UrlTemplatizationCustomTemplateFormState } from '../../url-templatization/converters';
3
4
  interface DestinationStepProps {
4
5
  formState: UrlTemplatizationCustomTemplateFormState;
@@ -6,11 +7,13 @@ interface DestinationStepProps {
6
7
  templatizationActions: CustomTemplateActionOption[];
7
8
  defaultActionId?: string | null;
8
9
  defaultActionName?: string;
9
- groupSearch: string;
10
- advancedOpen: boolean;
11
- onGroupSearchChange: (value: string) => void;
12
- onAdvancedOpenChange: (open: boolean) => void;
13
10
  onChange: (patch: Partial<UrlTemplatizationCustomTemplateFormState>) => void;
11
+ /** Opens the selected matching group in edit mode (templates step). */
12
+ onAddToExistingGroup: (index: number, patch?: Partial<UrlTemplatizationCustomTemplateFormState>) => void;
13
+ /** Opens templates step for a new group under the currently selected action. */
14
+ onCreateNewGroup: () => void;
15
+ sourceOptions?: AutocompleteOption[];
16
+ namespaceOptions?: AutocompleteOption[];
14
17
  }
15
18
  export declare const DestinationStep: FC<DestinationStepProps>;
16
19
  export {};
@@ -1,8 +1,11 @@
1
1
  import { type FC } from 'react';
2
2
  import type { AutocompleteOption } from '../../../components/autocomplete';
3
3
  import { type CustomTemplateActionOption, type CustomTemplateGroupOption, type UrlTemplatizationCustomTemplateFormState } from '../../url-templatization/converters';
4
- export type CustomTemplateDrawerPrefill = Partial<Pick<UrlTemplatizationCustomTemplateFormState, 'destination' | 'groupMode' | 'existingGroupIndex' | 'targetActionId' | 'createNewAction'>> & {
4
+ export type CustomTemplateDrawerPrefill = Partial<Pick<UrlTemplatizationCustomTemplateFormState, 'destination' | 'groupMode' | 'existingGroupIndex' | 'targetActionId' | 'createNewAction' | 'replaceExistingGroupTemplates'>> & {
5
5
  step?: 1 | 2;
6
+ loadExistingGroupTemplates?: boolean;
7
+ /** When opening an existing group, select this template for Try a URL. */
8
+ focusTemplate?: string;
6
9
  };
7
10
  export interface UrlTemplatizationCustomTemplateDrawerProps {
8
11
  isOpen: boolean;
@@ -12,6 +15,7 @@ export interface UrlTemplatizationCustomTemplateDrawerProps {
12
15
  existingGroups?: CustomTemplateGroupOption[];
13
16
  onClose: () => void;
14
17
  onSubmit: (state: UrlTemplatizationCustomTemplateFormState) => void | Promise<void>;
18
+ onDelete?: (state: UrlTemplatizationCustomTemplateFormState) => void | Promise<void>;
15
19
  sourceOptions?: AutocompleteOption[];
16
20
  namespaceOptions?: AutocompleteOption[];
17
21
  }
@@ -0,0 +1,10 @@
1
+ import { type FC } from 'react';
2
+ import type { SourcesScopes } from '../../../types';
3
+ export interface TemplatesStepSummaryProps {
4
+ actionName: string;
5
+ /** New actions created in the UI are UI-owned even before save. */
6
+ uiManaged?: boolean;
7
+ scopes: SourcesScopes;
8
+ 'data-id'?: string;
9
+ }
10
+ export declare const TemplatesStepSummary: FC<TemplatesStepSummaryProps>;
@@ -5,6 +5,8 @@ export interface UrlTemplatizationDefaultRuleDrawerProps {
5
5
  isOpen: boolean;
6
6
  submitting?: boolean;
7
7
  mode?: 'create' | 'edit';
8
+ disableForScope?: boolean;
9
+ skipPolicyForScope?: boolean;
8
10
  initialFormState?: UrlTemplatizationDefaultRuleFormState;
9
11
  onClose: () => void;
10
12
  onSubmit: (state: UrlTemplatizationDefaultRuleFormState) => void | Promise<void>;
@@ -1,9 +1,14 @@
1
1
  import { type FC } from 'react';
2
+ import type { SourcesScopes } from '../../../types';
2
3
  export interface UrlTemplatizationTemplateViewDrawerProps {
3
4
  isOpen: boolean;
4
5
  template: string;
5
6
  actionName?: string | null;
6
7
  actionId?: string | null;
8
+ scopes?: SourcesScopes | null;
9
+ groupTemplates?: string[];
7
10
  onClose: () => void;
11
+ onEdit?: (template: string) => void;
12
+ onEditGroup?: () => void;
8
13
  }
9
14
  export declare const UrlTemplatizationTemplateViewDrawer: FC<UrlTemplatizationTemplateViewDrawerProps>;
@@ -1,12 +1,16 @@
1
- export declare const HeaderBar: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "$hasBack"> & {
1
+ export declare const HeaderBar: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Merged<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "style"> & {
2
+ style?: import("react").CSSProperties | import("styled-components/dist/types").CSSPropertiesWithVars | undefined;
3
+ }, {
2
4
  $hasBack: boolean;
3
- }, never> & Partial<Pick<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "$hasBack"> & {
4
- $hasBack: boolean;
5
- }, never>>> & string;
6
- export declare const BackArrow: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never> & Partial<Pick<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>>> & string;
7
- export declare const HeaderSpacer: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never> & Partial<Pick<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>>> & string;
8
- export declare const Body: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "$width"> & {
9
- $width: number;
10
- }, never> & Partial<Pick<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "$width"> & {
5
+ }>> & string;
6
+ export declare const BackArrow: import("styled-components/dist/types").IStyledComponentBase<"web", Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "style"> & {
7
+ style?: import("react").CSSProperties | import("styled-components/dist/types").CSSPropertiesWithVars | undefined;
8
+ }> & string;
9
+ export declare const HeaderSpacer: import("styled-components/dist/types").IStyledComponentBase<"web", Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "style"> & {
10
+ style?: import("react").CSSProperties | import("styled-components/dist/types").CSSPropertiesWithVars | undefined;
11
+ }> & string;
12
+ export declare const Body: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Merged<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "style"> & {
13
+ style?: import("react").CSSProperties | import("styled-components/dist/types").CSSPropertiesWithVars | undefined;
14
+ }, {
11
15
  $width: number;
12
- }, never>>> & string;
16
+ }>> & string;
@@ -1,3 +1,9 @@
1
- export declare const SectionWithHeader: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never> & Partial<Pick<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>>> & string;
2
- export declare const SectionHeaderRow: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never> & Partial<Pick<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>>> & string;
3
- export declare const SectionInner: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never> & Partial<Pick<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>>> & string;
1
+ export declare const SectionWithHeader: import("styled-components/dist/types").IStyledComponentBase<"web", Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "style"> & {
2
+ style?: import("react").CSSProperties | import("styled-components/dist/types").CSSPropertiesWithVars | undefined;
3
+ }> & string;
4
+ export declare const SectionHeaderRow: import("styled-components/dist/types").IStyledComponentBase<"web", Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "style"> & {
5
+ style?: import("react").CSSProperties | import("styled-components/dist/types").CSSPropertiesWithVars | undefined;
6
+ }> & string;
7
+ export declare const SectionInner: import("styled-components/dist/types").IStyledComponentBase<"web", Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "style"> & {
8
+ style?: import("react").CSSProperties | import("styled-components/dist/types").CSSPropertiesWithVars | undefined;
9
+ }> & string;
@@ -0,0 +1,23 @@
1
+ import type { InsightsCatalog, InsightsRiskAssessment } from '../../../../../../types';
2
+ export type RiskBreakdownSignalRow = {
3
+ source: string;
4
+ name: string;
5
+ rationale?: string | null;
6
+ category: string;
7
+ weight: number;
8
+ confidence: number;
9
+ contribution: number;
10
+ isEnricher: boolean;
11
+ };
12
+ export type RiskBreakdownGroup = {
13
+ categoryId: string;
14
+ label: string;
15
+ mitre?: string | null;
16
+ owasp?: string | null;
17
+ signals: RiskBreakdownSignalRow[];
18
+ };
19
+ /** Fold risk signals into kill-chain category groups (debug-UI / Figma order). */
20
+ export declare const buildRiskBreakdownGroups: (risk: InsightsRiskAssessment, catalog?: InsightsCatalog | null) => RiskBreakdownGroup[];
21
+ export declare const formatConfidence: (confidence: number) => string;
22
+ export declare const RISK_BREAKDOWN_TITLE = "Risk breakdown";
23
+ export declare const RISK_BREAKDOWN_TOOLTIP = "How this anomaly score was computed from weighted signals, confidence, and optional multi-category correlation.";
@@ -0,0 +1,9 @@
1
+ import { type FC } from 'react';
2
+ import type { InsightsCatalog, InsightsRiskAssessment } from '../../../../../../types';
3
+ import { RISK_BREAKDOWN_TITLE, RISK_BREAKDOWN_TOOLTIP } from './helpers';
4
+ export interface RiskBreakdownProps {
5
+ risk?: InsightsRiskAssessment | null;
6
+ catalog?: InsightsCatalog | null;
7
+ }
8
+ export declare const RiskBreakdown: FC<RiskBreakdownProps>;
9
+ export { RISK_BREAKDOWN_TITLE, RISK_BREAKDOWN_TOOLTIP };
@@ -0,0 +1,22 @@
1
+ import { type FC } from 'react';
2
+ import { TagVariants } from '../../components';
3
+ import { type InsightsTransactionIdentityValue, type InsightsTransactionStat } from '../../types';
4
+ export declare const identityDimensionDisplayLabel: (key: string, value: string) => string;
5
+ export type OperationIdentityFields = {
6
+ operationName?: string | null;
7
+ identityDimensions?: InsightsTransactionIdentityValue[] | null;
8
+ };
9
+ /** Plain-text label: `POST /buy · 200` (or with gRPC / custom dim labels). */
10
+ export declare const formatOperationIdentityLabel: ({ operationName, identityDimensions }: OperationIdentityFields) => string;
11
+ /**
12
+ * Guardrail allowlist entries are opaque `KIND\\toperation` strings (canonical operation may
13
+ * include [key=value] suffixes). Split only enough to show kind + clean name + dim labels.
14
+ */
15
+ export declare const formatGuardrailTransactionIdentity: (item: string) => string;
16
+ export declare const formatTransactionScopeLabel: (tx: Pick<InsightsTransactionStat, "namespace" | "service" | "operationName" | "identityDimensions">) => string;
17
+ export interface OperationIdentityDisplayProps extends OperationIdentityFields {
18
+ tagVariant?: TagVariants;
19
+ fallback?: string;
20
+ }
21
+ /** Tag for the clean operation name + badges for identity dimensions (status codes, etc.). */
22
+ export declare const OperationIdentityDisplay: FC<OperationIdentityDisplayProps>;
@@ -1,6 +1,6 @@
1
1
  import { type ReactNode, type CSSProperties, type FC } from 'react';
2
2
  import { ActionsProps, type RichTitleProps } from '../../../../snippets';
3
- import { type TableColumn, type TableRow, type TextCardProps, type TableProps } from '../../../../components';
3
+ import { type TableColumn, type TableRow, type TextCardProps, type TableProps, NoDataProps } from '../../../../components';
4
4
  interface ContainedTableAndHeadingProps {
5
5
  richTitle: RichTitleProps;
6
6
  textCards: TextCardProps[];
@@ -11,6 +11,7 @@ interface ContainedTableAndHeadingProps {
11
11
  tableKey?: string | number;
12
12
  tableMaxHeight?: CSSProperties['maxHeight'];
13
13
  tableWithCheckboxes?: boolean;
14
+ tableNoDataProps?: NoDataProps;
14
15
  isLoading?: boolean;
15
16
  actions?: ActionsProps['actions'];
16
17
  children?: ReactNode;
@@ -1,6 +1,6 @@
1
1
  import { type FC } from 'react';
2
- import type { InsightsServiceStat, InsightsTransactionStat } from '../../../../../types';
3
2
  import { DetectionPolicyScope } from './types';
3
+ import type { InsightsServiceStat, InsightsTransactionStat } from '../../../../../types';
4
4
  export interface CreateOverridePanelProps {
5
5
  services: InsightsServiceStat[];
6
6
  transactions: InsightsTransactionStat[];
@@ -1,5 +1,7 @@
1
1
  import { InsightsLearningConditionType, InsightsLearningMode, type InsightsLearningCondition, type InsightsLearningConditionInput, type InsightsLearningPolicy, type InsightsLearningPolicyInput, type InsightsPolicyScope, type InsightsTransactionStat } from '../../../../../types';
2
2
  import { DurationUnit, InsightsDeviationClass, InsightsPolicyScope as PolicyScope, isGlobalPolicy, type LearningConditionDraft, type LearningPolicyListItem } from './types';
3
+ import { formatTransactionScopeLabel } from '../../../operation-identity';
4
+ export { formatTransactionScopeLabel };
3
5
  export declare const nextConditionKey: () => string;
4
6
  export declare const buildPolicyId: (scope: InsightsPolicyScope | string, scopeKey: string, deviationClass: InsightsDeviationClass) => string;
5
7
  export declare const minutesFromUnit: (value: number, unit: DurationUnit) => number;
@@ -21,7 +23,6 @@ export declare const apiConditionToDraft: (condition: InsightsLearningCondition)
21
23
  export declare const draftConditionToApi: (condition: LearningConditionDraft) => InsightsLearningConditionInput;
22
24
  export declare const createDefaultCondition: (type?: InsightsLearningConditionType) => LearningConditionDraft;
23
25
  export declare const insightsLearningPolicyToListItem: (policy: InsightsLearningPolicy) => LearningPolicyListItem;
24
- export declare const formatTransactionScopeLabel: (tx: InsightsTransactionStat) => string;
25
26
  /** Prefer human-readable transaction labels when stats are available. */
26
27
  export declare const withResolvedOverrideNames: (policies: LearningPolicyListItem[], transactions: InsightsTransactionStat[]) => LearningPolicyListItem[];
27
28
  export declare const listItemToInsightsLearningPolicyInput: (policy: LearningPolicyListItem) => InsightsLearningPolicyInput;
@@ -6,13 +6,21 @@ interface SectionProps {
6
6
  children: ReactNode;
7
7
  }
8
8
  export declare const Section: FC<SectionProps>;
9
- export declare const StatsRow: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never> & Partial<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>>> & string;
9
+ export declare const StatsRow: import("styled-components/dist/types").IStyledComponentBase<"web", Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "style"> & {
10
+ style?: React.CSSProperties | import("styled-components/dist/types").CSSPropertiesWithVars | undefined;
11
+ }> & string;
10
12
  interface StatTileProps {
11
13
  label: string;
12
14
  value: string;
13
15
  }
14
16
  export declare const StatTile: FC<StatTileProps>;
15
- export declare const EmptyNote: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never> & Partial<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>>> & string;
16
- export declare const TableFrame: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never> & Partial<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>>> & string;
17
- export declare const VizFrame: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never> & Partial<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>>> & string;
17
+ export declare const EmptyNote: import("styled-components/dist/types").IStyledComponentBase<"web", Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "style"> & {
18
+ style?: React.CSSProperties | import("styled-components/dist/types").CSSPropertiesWithVars | undefined;
19
+ }> & string;
20
+ export declare const TableFrame: import("styled-components/dist/types").IStyledComponentBase<"web", Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "style"> & {
21
+ style?: React.CSSProperties | import("styled-components/dist/types").CSSPropertiesWithVars | undefined;
22
+ }> & string;
23
+ export declare const VizFrame: import("styled-components/dist/types").IStyledComponentBase<"web", Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "style"> & {
24
+ style?: React.CSSProperties | import("styled-components/dist/types").CSSPropertiesWithVars | undefined;
25
+ }> & string;
18
26
  export {};
@@ -3,6 +3,7 @@ export declare const TITLE_RETENTION = "Retention";
3
3
  export declare const TITLE_MEMORY_LIMITS = "Memory limits";
4
4
  export declare const TITLE_DATABASE_WRITEBACK = "Database writeback";
5
5
  export declare const TITLE_TRANSACTION_GUARDRAILS = "Transaction guardrails";
6
+ export declare const TITLE_TRANSACTION_IDENTITY = "Transaction identity dimensions";
6
7
  export declare const LABEL_MAX_EXAMPLE_TRACES = "Maximum example traces";
7
8
  export declare const HELPER_MAX_EXAMPLE_TRACES = "Maximum number of example traces collected per transaction.";
8
9
  export declare const UNIT_TRACES = "traces";
@@ -24,6 +25,16 @@ export declare const HELPER_FLUSH_INTERVAL = "How often pending learning data an
24
25
  export declare const HINT_FLUSH_INTERVAL = "Default: 5 \u00B7 Maximum: 300";
25
26
  export declare const LABEL_AUTO_TRANSACTION_GUARDRAIL = "Auto-enable transaction guardrail when a service is promoted";
26
27
  export declare const HELPER_AUTO_TRANSACTION_GUARDRAIL = "When a service finishes promoting (every transaction leaves learning), automatically create an enforced allowed_transactions guardrail. Applies only from that moment forward \u2014 services already promoted are not backfilled; enable their guardrail from the by-service transactions menu.";
28
+ export declare const HELPER_IDENTITY_DIMENSIONS = "Low-cardinality only. Each enabled dimension multiplies transaction count, resident memory, and baseline rows. Good: http.response.status_code, rpc.grpc.status_code. Bad: user.id, URLs, request ids. Values come from the entry span only.";
29
+ export declare const HINT_IDENTITY_DIMENSIONS = "Up to 5 enabled at once. Changing dimensions creates new transaction identities.";
30
+ export declare const LABEL_IDENTITY_EMPTY = "No dimensions configured \u2014 transactions use the entry span name only.";
31
+ export declare const BTN_ADD_IDENTITY_DIMENSION = "Add dimension";
32
+ export declare const PLACEHOLDER_IDENTITY_KEY = "e.g. http.response.status_code";
33
+ export declare const LABEL_IDENTITY_ENABLED = "On";
34
+ export declare const TITLE_IDENTITY_CHANGED = "Identity dimensions changed";
35
+ export declare const DESC_IDENTITY_CHANGED = "New traffic will mint new transaction identities. Existing transactions stop receiving volume and become stale.\nReset deletes every transaction and related baselines/samples/findings, then relearns from new traffic. Keep only saves the new dimension config.";
36
+ export declare const BTN_RESET_TRANSACTIONS = "Reset all transactions";
37
+ export declare const BTN_KEEP_TRANSACTIONS = "Keep existing transactions";
27
38
  export declare const NOTE_EVIDENCE_SAMPLES = "Anomaly and guardrail evidence each keep a single write-once sample; occurrences are counted separately.";
28
39
  export declare const BTN_SAVE_SETTINGS = "Save settings";
29
40
  export declare const BTN_DISCARD_CHANGES = "Discard changes";
@@ -31,3 +42,8 @@ export declare const LABEL_SYSTEM_UNAVAILABLE = "System settings are not availab
31
42
  export declare const MIN_SETTING = 1;
32
43
  export declare const MAX_OBSERVATION_RETENTION_DAYS = 90;
33
44
  export declare const MAX_FLUSH_INTERVAL_SECONDS = 300;
45
+ export declare const MAX_ENABLED_IDENTITY_DIMENSIONS = 5;
46
+ export declare const DEFAULT_IDENTITY_DIMENSIONS: {
47
+ key: string;
48
+ enabled: boolean;
49
+ }[];
@@ -21,7 +21,19 @@ export type TransactionsServiceGroup = {
21
21
  volume: number;
22
22
  transactions: InsightsTransactionStat[];
23
23
  };
24
- export declare const getTransactionsRowActions: (row: TableRow, openDrawer: OpenInsightsDrawer) => HoverAction[];
24
+ export type TransactionsSelectionHandlers = {
25
+ selectedIds: string[];
26
+ toggleSelection: (transactionId: string, selected: boolean) => void;
27
+ };
28
+ export type TransactionsPromoteHandlers = {
29
+ onPromote: (transactionId: string) => void;
30
+ canPromote: boolean;
31
+ };
32
+ export type TransactionsDeleteHandlers = {
33
+ onDelete: (transactionId: string) => void;
34
+ canDelete: boolean;
35
+ };
36
+ export declare const getTransactionsRowActions: (row: TableRow, openDrawer: OpenInsightsDrawer, promote?: TransactionsPromoteHandlers, remove?: TransactionsDeleteHandlers) => HoverAction[];
25
37
  export declare const TRANSACTIONS_TABLE_COLUMNS: TableColumn[];
26
38
  export declare const TRANSACTIONS_GROUP_BY_SERVICE_COLUMNS: TableColumn[];
27
39
  export declare const getCountsForTransactions: (transactions?: InsightsTransactionStat[]) => {
@@ -31,5 +43,5 @@ export declare const getCountsForTransactions: (transactions?: InsightsTransacti
31
43
  promoted: number;
32
44
  learning: number;
33
45
  };
34
- export declare const getTableRowsForTransactions: (theme: DefaultTheme, formatDurationAgo: FormatDurationAgo, transactions?: InsightsTransactionStat[], limit?: number) => TableRow[];
35
- export declare const getTableRowsForTransactionsGroupedByService: (theme: DefaultTheme, formatDurationAgo: FormatDurationAgo, openDrawer: OpenInsightsDrawer, groups: TransactionsServiceGroup[], protectedScopeKeys?: Set<string>) => TableRow[];
46
+ export declare const getTableRowsForTransactions: (theme: DefaultTheme, formatDurationAgo: FormatDurationAgo, transactions?: InsightsTransactionStat[], limit?: number, selection?: TransactionsSelectionHandlers) => TableRow[];
47
+ export declare const getTableRowsForTransactionsGroupedByService: (theme: DefaultTheme, formatDurationAgo: FormatDurationAgo, openDrawer: OpenInsightsDrawer, groups: TransactionsServiceGroup[], protectedScopeKeys?: Set<string>, selection?: TransactionsSelectionHandlers, promote?: TransactionsPromoteHandlers, remove?: TransactionsDeleteHandlers) => TableRow[];
@@ -0,0 +1,12 @@
1
+ import { type FC, type ReactNode } from 'react';
2
+ export interface AdvancedConfigSectionProps {
3
+ label: string;
4
+ /** Shown next to the label when the section is collapsed. */
5
+ summary?: string;
6
+ /** Shown under the label when the section is collapsed. */
7
+ description?: string;
8
+ children: ReactNode;
9
+ defaultOpen?: boolean;
10
+ 'data-id'?: string;
11
+ }
12
+ export declare const AdvancedConfigSection: FC<AdvancedConfigSectionProps>;
@@ -0,0 +1,6 @@
1
+ import { type FC } from 'react';
2
+ export interface AutomaticTemplatizationEnableCardProps {
3
+ onEnableDefault?: () => unknown | Promise<unknown>;
4
+ onDismiss?: () => void;
5
+ }
6
+ export declare const AutomaticTemplatizationEnableCard: FC<AutomaticTemplatizationEnableCardProps>;
@@ -31,13 +31,28 @@ export interface UrlTemplatizationCustomTemplateFormState {
31
31
  newActionName: string;
32
32
  scopes: SourcesScopes;
33
33
  templates: string[];
34
+ /** When true, save replaces the existing group's full template list (edit-group mode). */
35
+ replaceExistingGroupTemplates: boolean;
34
36
  }
35
37
  export declare function getCustomTemplateFormState(options?: {
36
38
  hasExistingGroups?: boolean;
37
39
  defaultActionId?: string | null;
38
40
  }): UrlTemplatizationCustomTemplateFormState;
39
41
  export declare function rulesGroupToScopes(group: UrlTemplatizationRulesGroup): SourcesScopes;
42
+ export declare function areScopesEqual(a: SourcesScopes | null | undefined, b: SourcesScopes | null | undefined): boolean;
43
+ export declare function findGroupsMatchingScopes(existingGroups: CustomTemplateGroupOption[], scopes: SourcesScopes, options?: {
44
+ uiManagedOnly?: boolean;
45
+ }): Array<{
46
+ option: CustomTemplateGroupOption;
47
+ index: number;
48
+ }>;
49
+ /** Entire-cluster group under the default UI action, if one already exists. */
50
+ export declare function findDefaultEntireClusterGroupIndex(existingGroups: CustomTemplateGroupOption[], options?: {
51
+ defaultActionId?: string | null;
52
+ defaultActionName?: string;
53
+ }): number;
40
54
  export declare function formStateToRulesGroup(state: UrlTemplatizationCustomTemplateFormState): UrlTemplatizationRulesGroup;
41
55
  export declare function appendTemplatesToGroup(group: UrlTemplatizationRulesGroup, templates: string[]): UrlTemplatizationRulesGroup;
42
56
  export declare function groupMatchesQuery(group: UrlTemplatizationRulesGroup, query: string, actionName?: string): boolean;
43
57
  export declare function hasNonEmptyTemplate(templates: string[]): boolean;
58
+ export declare function canSaveCustomTemplateFormState(state: UrlTemplatizationCustomTemplateFormState): boolean;
@@ -0,0 +1,5 @@
1
+ import { type FC } from 'react';
2
+ export interface CustomTemplatesEmptyCardProps {
3
+ onCreateCustomRule?: () => void;
4
+ }
5
+ export declare const CustomTemplatesEmptyCard: FC<CustomTemplatesEmptyCardProps>;
@@ -8,7 +8,6 @@ export interface CustomTemplatesListAction {
8
8
  interface CustomTemplatesListProps {
9
9
  actions: CustomTemplatesListAction[];
10
10
  onCreateGroup?: (actionId: string) => void;
11
- onAddTemplate?: (option: CustomTemplateGroupOption) => void;
12
11
  onEditGroup?: (option: CustomTemplateGroupOption) => void;
13
12
  onViewTemplate?: (option: CustomTemplateGroupOption, template: string) => void;
14
13
  }
@@ -0,0 +1,11 @@
1
+ import { type FC } from 'react';
2
+ import { type DisabledDefaultRuleOption, type SkipPolicyRuleOption } from './helpers';
3
+ export interface DefaultNormalizationCardProps {
4
+ disabledRules?: DisabledDefaultRuleOption[];
5
+ skipPolicyRules?: SkipPolicyRuleOption[];
6
+ onDisableForScope?: () => void;
7
+ onAddSkipPolicy?: () => void;
8
+ onDeleteDisabledRule?: (rule: DisabledDefaultRuleOption) => void;
9
+ onDeleteSkipPolicyRule?: (rule: SkipPolicyRuleOption) => void;
10
+ }
11
+ export declare const DefaultNormalizationCard: FC<DefaultNormalizationCardProps>;
@@ -1,10 +1,13 @@
1
1
  import { type FC } from 'react';
2
- import { type UrlTemplatizationDefaultGroup } from '../../types';
2
+ import { type DefaultTemplatizationStatus, type DisabledDefaultRuleOption, type SkipPolicyRuleOption } from './helpers';
3
3
  interface DefaultRulesListProps {
4
- actionName?: string | null;
5
- groups: UrlTemplatizationDefaultGroup[];
6
- onAddRule?: () => void;
7
- onEditRule?: (index: number) => void;
4
+ disabledRules?: DisabledDefaultRuleOption[];
5
+ skipPolicyRules?: SkipPolicyRuleOption[];
6
+ status: DefaultTemplatizationStatus;
7
+ onDeleteDisabledRule?: (rule: DisabledDefaultRuleOption) => void;
8
+ onAddDisabledRule?: () => void;
9
+ onDeleteSkipPolicyRule?: (rule: SkipPolicyRuleOption) => void;
10
+ onAddSkipPolicyRule?: () => void;
8
11
  }
9
12
  export declare const DefaultRulesList: FC<DefaultRulesListProps>;
10
13
  export {};
@@ -0,0 +1,8 @@
1
+ import { type FC } from 'react';
2
+ import { type DisabledDefaultRuleOption } from './helpers';
3
+ export interface DisabledScopesTableProps {
4
+ rules: DisabledDefaultRuleOption[];
5
+ onDelete?: (rule: DisabledDefaultRuleOption) => void;
6
+ onAdd?: () => void;
7
+ }
8
+ export declare const DisabledScopesTable: FC<DisabledScopesTableProps>;
@@ -1,8 +1,35 @@
1
- import { type Action } from '../../types';
1
+ import { type Action, type UrlTemplatizationDefaultGroup } from '../../types';
2
2
  export declare const findUrlTemplatizationActions: (actions: Action[]) => Action[];
3
3
  export declare const findUrlTemplatizationAction: (actions: Action[]) => Action | null;
4
+ /** True for the canonical action created and edited through the URL templatization UI. */
5
+ export declare function isUrlTemplatizationUiManagedAction(actionName: string | null | undefined): boolean;
4
6
  export declare const hasDefaultTemplatizationRules: (action: Action | null) => boolean;
5
7
  export declare const isDefaultTemplatizationEnabled: (action: Action | null) => boolean;
8
+ export type DefaultTemplatizationStatus = 'unset' | 'enabled-globally' | 'disabled';
9
+ export interface DisabledDefaultRuleOption {
10
+ actionId: string;
11
+ actionName: string;
12
+ groupIndex: number;
13
+ group: UrlTemplatizationDefaultGroup;
14
+ }
15
+ /**
16
+ * Aggregate default-templatization status across URL templatization actions:
17
+ * - disabled: entire-cluster rule with disabled: true
18
+ * - enabled-globally: at least one enabled action has a default group that is not disabled
19
+ * - unset: no relevant (enabled) actions, or no default groups / all default groups disabled
20
+ */
21
+ export declare function getDefaultTemplatizationStatus(actions: Action[]): DefaultTemplatizationStatus;
22
+ export declare function getDisabledDefaultRuleOptions(actions: Action[]): DisabledDefaultRuleOption[];
23
+ export type SkipPolicyRuleOption = DisabledDefaultRuleOption;
24
+ export declare function hasEffectiveSkipPolicy(group: UrlTemplatizationDefaultGroup): boolean;
25
+ /**
26
+ * Skip policy is disabled globally unless a non-disabled action has any default
27
+ * group with an effective (non-nil / configured) skipPolicy.
28
+ */
29
+ export declare function getSkipPolicyRuleOptions(actions: Action[]): SkipPolicyRuleOption[];
30
+ export type SkipPolicyStatus = 'disabled-globally' | 'configured';
31
+ export declare function getSkipPolicyStatus(actions: Action[]): SkipPolicyStatus;
32
+ export declare function getDefaultGroupStatus(group: UrlTemplatizationDefaultGroup): DefaultTemplatizationStatus | 'enabled';
6
33
  export declare const hasCustomUrlTemplates: (action: Action | null) => boolean;
7
34
  export declare const hasAnyCustomUrlTemplates: (actions: Action[]) => boolean;
8
35
  export declare function normalizeUrlPath(input: string): string;
@@ -13,5 +40,7 @@ export interface TemplateMatchCapture {
13
40
  export interface TemplateMatchResult {
14
41
  matched: boolean;
15
42
  captures: TemplateMatchCapture[];
43
+ templatedPath: string;
44
+ mismatchReason?: string;
16
45
  }
17
46
  export declare function matchTemplate(template: string, urlInput: string): TemplateMatchResult;
@@ -0,0 +1,11 @@
1
+ import { type FC } from 'react';
2
+ import { type DefaultTheme } from 'styled-components';
3
+ import { type BadgeProps } from '../../components';
4
+ export declare function getManagedActionBadgeProps(actionName: string | null | undefined, theme: DefaultTheme, uiManagedOverride?: boolean): BadgeProps;
5
+ interface ManagedActionBadgeProps {
6
+ actionName?: string | null;
7
+ /** New actions created in the UI are UI-owned even before save. */
8
+ uiManaged?: boolean;
9
+ }
10
+ export declare const ManagedActionBadge: FC<ManagedActionBadgeProps>;
11
+ export {};
@@ -0,0 +1,7 @@
1
+ import { type FC } from 'react';
2
+ export interface UrlTemplatizationOnboardingEmptyProps {
3
+ docsUrl?: string;
4
+ onEnableDefault: () => unknown | Promise<unknown>;
5
+ onCreateCustomRule: () => void;
6
+ }
7
+ export declare const UrlTemplatizationOnboardingEmpty: FC<UrlTemplatizationOnboardingEmptyProps>;
@@ -0,0 +1,8 @@
1
+ import { type FC } from 'react';
2
+ import { type SkipPolicyRuleOption } from './helpers';
3
+ export interface SkipPoliciesTableProps {
4
+ rules: SkipPolicyRuleOption[];
5
+ onDelete?: (rule: SkipPolicyRuleOption) => void;
6
+ onAdd?: () => void;
7
+ }
8
+ export declare const SkipPoliciesTable: FC<SkipPoliciesTableProps>;
@@ -3,6 +3,8 @@ import { TypographySize } from '../../components';
3
3
  interface TemplatePathProps {
4
4
  template: string;
5
5
  size?: TypographySize;
6
+ copyable?: boolean;
7
+ 'data-id'?: string;
6
8
  }
7
9
  export declare const TemplatePath: FC<TemplatePathProps>;
8
10
  export {};